{ pkgs, lib, config, ... }: let modifier = config.wayland.windowManager.sway.config.modifier; term = config.wayland.windowManager.sway.config.terminal; in { imports = [ ./swaylock.nix ./waybar.nix ./gtk.nix ./dunst.nix ./rofi.nix ]; home.packages = with pkgs; [ pipewire wireplumber wl-clipboard swayimg brightnessctl ]; programs.rofi.package = pkgs.rofi-wayland; wayland.windowManager.sway = { enable = true; config = { input."*".xkb_layout = "gb"; output."*".bg = "~/nixos/wallpaper.jpg fill"; fonts = { names = ["FiraCode Nerd Font" "FiraCode Nerd Font Mono"]; size = 12.0; }; gaps = { inner = lib.mkDefault 5; outer = lib.mkDefault 20; }; bars = [{command = "${pkgs.waybar}/bin/waybar";}]; colors = { focused = { border = "#4c7899"; background = "#285577"; text = "#ffffff"; indicator = "#2e9ef4"; childBorder = "#285577"; }; focusedInactive = { border = "#333333"; background = "#5f676a"; text = "#ffffff"; indicator = "#484e50"; childBorder = "#5f676a"; }; unfocused = { border = "#333333"; background = "#222222"; text = "#888888"; indicator = "#292d2e"; childBorder = "#222222"; }; urgent = { border = "#2f343a"; background = "#900000"; text = "#ffffff"; indicator = "#900000"; childBorder = "#900000"; }; placeholder = { border = "#000000"; background = "#0c0c0c"; text = "#ffffff"; indicator = "#000000"; childBorder = "#0c0c0c"; }; background = "#ffffff"; }; assigns = { "1" = [{app_id = "org.wezfurlong.wezterm";}]; "2" = [{app_id = "firefox";}]; "3" = [ {app_id = "Signal";} {app_id = "fractal";} {app_id = "discord";} {class = "teams-for-linux";} ]; "4" = [{class = "Nxplayer.bin";}]; }; floating.criteria = [ {app_id = "foot";} {app_id = "pavucontrol";} {app_id = ".blueman-manager-wrapped";} {app_id = "otpclient";} {app_id = "thunar";} {class = "Nxplayer.bin";} ]; startup = [{command = "dunst";}]; modifier = lib.mkDefault "Mod1"; terminal = lib.mkDefault "${pkgs.wezterm}/bin/wezterm"; window.titlebar = false; workspaceAutoBackAndForth = true; keybindings = lib.mkOptionDefault { "${modifier}+Return" = "exec ${term}"; "${modifier}+Shift+Return" = "exec ${pkgs.foot}/bin/foot"; "${modifier}+q" = "kill"; "${modifier}+e" = "exec power-profiles"; "${modifier}+p" = "exec powermenu"; "${modifier}+v" = "floating toggle"; "${modifier}+space" = "exec ${pkgs.rofi}/bin/rofi -show drun"; "${modifier}+F1" = "exec ${pkgs.swaylock}/bin/swaylock"; "${modifier}+w" = "exec ${pkgs.firefox}/bin/firefox"; "${modifier}+f" = "exec ${pkgs.xfce.thunar}/bin/thunar"; "${modifier}+m" = "fullscreen toggle"; "${modifier}+c" = "scratchpad show"; "${modifier}+Shift+c" = "move scratchpad"; }; }; }; }