Slack: Difference between revisions

imported>Patryk27
No edit summary
m Removed xdg.portal.gtkUsePortal option due to it no longer having any effect. (The feature was removed due to being unsupported and discouraged by GTK devs)
 
(8 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{tip/unfree}}
[https://slack.com/ Slack] is a communication platform with a desktop application based on Electron.
[https://slack.com/ Slack] is a communication platform with a desktop application based on Electron.


Line 4: Line 6:


=== NixOS ===
=== NixOS ===
 
<syntaxHighlight lang="nix">
<syntaxhighlight lang="nix">
environment.systemPackages = with pkgs; [ slack ];
environment.systemPackages = with pkgs; [ slack ];
</syntaxhighlight>
=== Non-NixOS ===
<syntaxHighlight lang="console">
$ nix-env -iA nixos.slack
</syntaxHighlight>
</syntaxHighlight>


Line 19: Line 14:
=== Wayland ===
=== Wayland ===


Since Electron's support for Wayland is of somewhat beta-quality, by default Slack will run through Xwayland, making it hard to share-screen and use it comfortably on 4k+ screens - fortunately, it's possible to run it natively by specifying a few parameters:
You can enable native Wayland support by launching Slack as:


<syntaxHighlight lang="console">
<syntaxHighlight lang="console">
$ slack --ozone-platform=wayland --enable-features=UseOzonePlatform,WebRTCPipeWireCapturer
$ NIXOS_OZONE_WL=1 slack
</syntaxHighlight>
</syntaxHighlight>


... or, which is a bit more convenient, by patching the derivation:
... or by simply specifying this option globally:
 
<syntaxhighlight lang="nix">
{ 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
<syntaxHighlight lang="nix">
{
environment.sessionVariables.NIXOS_OZONE_WL = "1";
  environment.systemPackages = [ slack ];
}
</syntaxHighlight>
</syntaxHighlight>


In either of the cases, if you want to use screen-sharing, you'll have to enable xdg-desktop-portal, too:
If you want to use screen-sharing, you'll have to enable <code>xdg-desktop-portal</code>, too:


<syntaxhighlight lang="nix">
<syntaxhighlight lang="nix">
Line 57: Line 36:
       xdg-desktop-portal-gtk
       xdg-desktop-portal-gtk
     ];
     ];
    gtkUsePortal = true;
   };
   };
};
};
</syntaxhighlight>
</syntaxhighlight>
==== Window decorations ====
If the above configuration leaves you without window decorations you may want to enable this feature as well:
<syntaxHighlight lang="console">
WaylandWindowDecorations
</syntaxHighlight>
[[Category:Applications]]