Slack: Difference between revisions
imported>Patryk27 mNo edit summary |
imported>Patryk27 No edit summary |
||
Line 5: | Line 5: | ||
=== NixOS === | === NixOS === | ||
< | <syntaxHighlight lang="nix"> | ||
environment.systemPackages = with pkgs; [ slack ]; | environment.systemPackages = with pkgs; [ slack ]; | ||
</ | </syntaxHighlight> | ||
=== Non-NixOS === | === Non-NixOS === | ||
Line 19: | Line 19: | ||
=== Wayland === | === Wayland === | ||
If you're using recent nixpkgs (from 2022-01-27), you can enable native Wayland support by launching Slack as: | |||
<syntaxHighlight lang="console"> | |||
$ NIXOS_OZONE_WL=1 slack | |||
</syntaxHighlight> | |||
... or by simply specifying this option globally: | |||
<syntaxHighlight lang="nix"> | |||
environment.sessionVariables.NIXOS_OZONE_WL = "1"; | |||
</syntaxHighlight> | |||
If that doesn't work for you, you might be using an older nixpkgs where the <code>NIXOS_OZONE_WL</code> option didn't exist yet - in that case, you can launch Slack via: | |||
<syntaxHighlight lang="console"> | <syntaxHighlight lang="console"> | ||
Line 25: | Line 37: | ||
</syntaxHighlight> | </syntaxHighlight> | ||
... or, which is a bit more convenient, | ... or, which is a bit more convenient, patch its derivation: | ||
< | <syntaxHighlight lang="nix"> | ||
{ lib, pkgs, ... }: | { lib, pkgs, ... }: | ||
let | let | ||
Line 47: | Line 59: | ||
</syntaxHighlight> | </syntaxHighlight> | ||
In | In all of the cases, if you want to use screen-sharing, you'll have to enable <code>xdg-desktop-portal</code>, too: | ||
< | <syntaxHighlight lang="nix"> | ||
xdg = { | xdg = { | ||
portal = { | portal = { | ||
Line 60: | Line 72: | ||
}; | }; | ||
}; | }; | ||
</ | </syntaxHighlight> |
Revision as of 19:43, 6 February 2022
Slack is a communication platform with a desktop application based on Electron.
Installation
NixOS
environment.systemPackages = with pkgs; [ slack ];
Non-NixOS
$ nix-env -iA nixos.slack
Tips
Wayland
If you're using recent nixpkgs (from 2022-01-27), you can enable native Wayland support by launching Slack as:
$ NIXOS_OZONE_WL=1 slack
... or by simply specifying this option globally:
environment.sessionVariables.NIXOS_OZONE_WL = "1";
If that doesn't work for you, you might be using an older nixpkgs where the NIXOS_OZONE_WL
option didn't exist yet - in that case, you can launch Slack via:
$ slack --ozone-platform=wayland --enable-features=UseOzonePlatform,WebRTCPipeWireCapturer
... or, which is a bit more convenient, patch its derivation:
{ lib, pkgs, ... }:
let
slack = pkgs.slack.overrideAttrs (old: {
installPhase = old.installPhase + ''
rm $out/bin/slack
makeWrapper $out/lib/slack/slack $out/bin/slack \
--prefix XDG_DATA_DIRS : $GSETTINGS_SCHEMAS_PATH \
--prefix PATH : ${lib.makeBinPath [pkgs.xdg-utils]} \
--add-flags "--ozone-platform=wayland --enable-features=UseOzonePlatform,WebRTCPipeWireCapturer"
'';
});
in
{
environment.systemPackages = [ slack ];
}
In all of the cases, if you want to use screen-sharing, you'll have to enable xdg-desktop-portal
, too:
xdg = {
portal = {
enable = true;
extraPortals = with pkgs; [
xdg-desktop-portal-wlr
xdg-desktop-portal-gtk
];
gtkUsePortal = true;
};
};