summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorgnidorah <gnidorah@users.noreply.github.com>2018-11-03 20:27:40 +0300
committergnidorah <gnidorah@users.noreply.github.com>2018-11-03 20:27:40 +0300
commit15c2fb7ba17b80dad588b8a885f6411881e2684a (patch)
tree0da1317dca869c307fcb9406a781fce97c86b1eb /nixos
parentc64624b8435af07d95effbb928d955963a5fa859 (diff)
downloadnixlib-15c2fb7ba17b80dad588b8a885f6411881e2684a.tar
nixlib-15c2fb7ba17b80dad588b8a885f6411881e2684a.tar.gz
nixlib-15c2fb7ba17b80dad588b8a885f6411881e2684a.tar.bz2
nixlib-15c2fb7ba17b80dad588b8a885f6411881e2684a.tar.lz
nixlib-15c2fb7ba17b80dad588b8a885f6411881e2684a.tar.xz
nixlib-15c2fb7ba17b80dad588b8a885f6411881e2684a.tar.zst
nixlib-15c2fb7ba17b80dad588b8a885f6411881e2684a.zip
sway-beta module: add missing pieces
Diffstat (limited to 'nixos')
-rw-r--r--nixos/modules/programs/sway-beta.nix33
1 files changed, 29 insertions, 4 deletions
diff --git a/nixos/modules/programs/sway-beta.nix b/nixos/modules/programs/sway-beta.nix
index 04f2e0662b86..e651ea4cca33 100644
--- a/nixos/modules/programs/sway-beta.nix
+++ b/nixos/modules/programs/sway-beta.nix
@@ -5,6 +5,15 @@ with lib;
 let
   cfg = config.programs.sway-beta;
   swayPackage = cfg.package;
+
+  swayWrapped = pkgs.writeShellScriptBin "sway" ''
+    ${cfg.extraSessionCommands}
+    exec ${pkgs.dbus.dbus-launch} --exit-with-session ${swayPackage}/bin/sway
+  '';
+  swayJoined = pkgs.symlinkJoin {
+    name = "sway-joined";
+    paths = [ swayWrapped swayPackage ];
+  };
 in {
   options.programs.sway-beta = {
     enable = mkEnableOption ''
@@ -20,13 +29,30 @@ in {
       '';
     };
 
+    extraSessionCommands = mkOption {
+      type = types.lines;
+      default = "";
+      example = ''
+        export SDL_VIDEODRIVER=wayland
+        # needs qt5.qtwayland in systemPackages
+        export QT_QPA_PLATFORM=wayland
+        export QT_WAYLAND_DISABLE_WINDOWDECORATION="1"
+        # Fix for some Java AWT applications (e.g. Android Studio),
+        # use this if they aren't displayed properly:
+        export _JAVA_AWT_WM_NONREPARENTING=1
+      '';
+      description = ''
+        Shell commands executed just before Sway is started.
+      '';
+    };
+
     extraPackages = mkOption {
       type = with types; listOf package;
       default = with pkgs; [
-        xwayland dmenu
+        xwayland rxvt_unicode dmenu
       ];
       defaultText = literalExample ''
-        with pkgs; [ xwayland dmenu ];
+        with pkgs; [ xwayland rxvt_unicode dmenu ];
       '';
       example = literalExample ''
         with pkgs; [
@@ -42,7 +68,7 @@ in {
   };
 
   config = mkIf cfg.enable {
-    environment.systemPackages = [ swayPackage ] ++ cfg.extraPackages;
+    environment.systemPackages = [ swayJoined ] ++ cfg.extraPackages;
     security.pam.services.swaylock = {};
     hardware.opengl.enable = mkDefault true;
     fonts.enableDefaultFonts = mkDefault true;
@@ -51,4 +77,3 @@ in {
 
   meta.maintainers = with lib.maintainers; [ gnidorah primeos colemickens ];
 }
-