diff options
Diffstat (limited to 'home/desktop/sway.nix')
| -rw-r--r-- | home/desktop/sway.nix | 124 |
1 files changed, 124 insertions, 0 deletions
diff --git a/home/desktop/sway.nix b/home/desktop/sway.nix new file mode 100644 index 0000000..40fd83a --- /dev/null +++ b/home/desktop/sway.nix @@ -0,0 +1,124 @@ +{ + config, + lib, + pkgs, + ... +}: +with lib; let + cfg = config.local.desktop; +in { + config = mkIf cfg.enable { + local = { + waybar = { + enable = true; + + battery = cfg.portable; + + fontSize = "24px"; + fontFamily = "Hack Nerd Font"; + }; + }; + + home.packages = [ + pkgs.wlr-randr + ]; + + programs = { + wofi.enable = true; + }; + + services = { + swayidle = { + enable = true; + + timeouts = [ + { + timeout = 600; + command = "${getExe pkgs.gtklock} -d"; + } + ]; + }; + }; + + systemd.user.services.wl-gammarelay-rs = { + Unit.After = ["sway-session.target"]; + Install.WantedBy = ["sway-session.target"]; + + Service.ExecStart = getExe pkgs.wl-gammarelay-rs; + }; + + wayland.windowManager.sway = { + enable = true; + + config = { + modifier = "Mod4"; + focus.followMouse = false; + + fonts = { + size = 11.0; + names = ["DejaVu Sans Mono"]; + style = "Bold Semi-Condensed"; + }; + + bars = singleton { + command = "waybar"; + position = "top"; + }; + + keybindings = let + mod = config.wayland.windowManager.sway.config.modifier; + wofi = config.programs.wofi.package; + + grimshot = getExe pkgs.sway-contrib.grimshot; + in + mkOptionDefault { + "${mod}+a" = "focus parent"; + "${mod}+c" = "focus child"; + "${mod}+d" = "exec --no-startup-id ${getExe wofi} -S run"; + "${mod}+i" = "exec busctl --user call rs.wl-gammarelay / rs.wl.gammarelay ToggleInverted"; + "${mod}+o" = "exec ${getExe pkgs.gtklock} -d"; + "${mod}+Return" = "exec ${getExe pkgs.local.st} -e ${getExe pkgs.local.tmux-lift} ${getExe pkgs.local.tmux-open}"; + "${mod}+Shift+e" = "input * xkb_layout latam"; + "${mod}+Shift+u" = "input * xkb_layout us"; + "${mod}+p" = "exec ${grimshot} copy active"; + "${mod}+Shift+p" = "exec ${grimshot} copy area"; + "${mod}+Ctrl+p" = "exec ${grimshot} copy window"; + }; + + startup = [ + #{ + # command = "${getExe pkgs.xautolock} -time 10 -locker '${pkgs.i3lock-color}/bin/i3lock-color -fe -c222222'"; + #} + ]; + + window.commands = [ + # (No) Title Bars + { + command = "border pixel 5"; + criteria.class = "^.*"; + } + + { + command = "floating enabled"; + criteria.class = "floating"; + } + ]; + }; + + extraSessionCommands = '' + 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 + ''; + + swaynag.enable = true; + systemd.enable = true; + + xwayland = true; + }; + }; +} |
