diff options
| author | Alejandro Soto <alejandro@34project.org> | 2024-12-03 21:19:39 -0600 |
|---|---|---|
| committer | Alejandro Soto <alejandro@34project.org> | 2024-12-03 21:49:54 -0600 |
| commit | 61f3db56410f41d5249c88e44db60d9713dae26d (patch) | |
| tree | 49c2d5d5e4da331d139cfdc6034c0dba5980271b /home/desktop/sway.nix | |
| parent | 854f5ee287eb66db5a0713e2f4fac56794e3d735 (diff) | |
home: big refactor
Diffstat (limited to 'home/desktop/sway.nix')
| -rw-r--r-- | home/desktop/sway.nix | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/home/desktop/sway.nix b/home/desktop/sway.nix new file mode 100644 index 0000000..1162e87 --- /dev/null +++ b/home/desktop/sway.nix @@ -0,0 +1,117 @@ +{ config, lib, pkgs, ... }: +with lib; let + cfg = config.local.desktop; +in +{ + config = mkIf cfg.enable { + programs = { + swaylock = { + enable = true; + + settings = { + color = "222222"; + font-size = 24; + show-failed-attempts = true; + }; + }; + + waybar.enable = true; + + wofi.enable = true; + }; + + services = { + swayidle = { + enable = true; + + timeouts = [ + { timeout = 600; command = "${getExe config.programs.swaylock.package} -fF"; } + ]; + }; + }; + + 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; + + inherit (pkgs.local) st tmux-lift; + + 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 config.programs.swaylock.package} -fF"; + "${mod}+Return" = "exec ${getExe st} -e ${getExe tmux-lift}"; + "${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; + }; + }; +} |
