{ config, pkgs, lib, tree, ... }: { # import default terminal imports = with tree; [home.apps.kitty home.apps.rofi]; home.sessionVariables = { XDG_CURRENT_DESKTOP = "sway"; XDG_SESSION_TYPE = "wayland"; #WLR_DRM_DEVICES = "/dev/dri/card0"; SDL_VIDEODRIVER = "wayland"; QT_QPA_PLATFORM = "wayland"; QT_WAYLAND_DISABLE_WINDOWDECORATION = 1; # For Ghidra to make windows work properly _JAVA_AWT_WM_NONREPARENTING = 1; XCURSOR_SIZE = 64; QT_AUTO_SCREEN_SCALE_FACTOR = 1; }; home.pointerCursor = { package = pkgs.gnome.adwaita-icon-theme; name = "Adwaita"; size = 24; gtk.enable = true; x11 = { enable = true; defaultCursor = "Adwaita"; }; }; home.packages = with pkgs; [ grim slurp wl-clipboard jq wofi wmctrl libnotify light gobar libdbusmenu-gtk3 ]; wayland.windowManager.sway = { enable = true; wrapperFeatures.base = true; wrapperFeatures.gtk = true; config = let terminal = "${pkgs.kitty}/bin/kitty"; menu = "${pkgs.rofi}/bin/rofi -show run"; cfg = config.wayland.windowManager.sway.config; pactl = "${pkgs.pulseaudio}/bin/pactl"; in { bars = [ { position = "top"; fonts = { names = ["Comic Code"]; size = 14.0; }; statusCommand = lib.escapeShellArgs [ "${pkgs.gobar}/bin/gobar" "-config" "cpu\\|mem\\|weather\\(Leighton\\ Buzzard\\)\\|bat\\(BAT0\\)\\|time" ]; } {command = "${pkgs.waybar}/bin/waybar";} ]; output = {"*" = {bg = "${pkgs.nixos-artwork.wallpapers.simple-dark-gray.gnomeFilePath} fill";};}; input = {"*" = {xkb_layout = "gb";};}; fonts = { names = ["Comic Code"]; size = 18.0; }; modifier = "Mod1"; terminal = "${pkgs.kitty}/bin/kitty"; startup = [ # gets blueman applet working for some reason { command = "dbus-update-activation-environment DISPLAY"; always = true; } { command = "nm-applet"; always = true; } ]; seat = {"*" = {"xcursor_theme" = "Adwaita 24";};}; gaps = { top = 10; bottom = 10; left = 10; right = 10; inner = 20; outer = 20; smartGaps = true; }; window = { border = 0; titlebar = false; }; keybindings = { "${cfg.modifier}+Return" = "exec ${cfg.terminal}"; "${cfg.modifier}+Left" = "focus left"; "${cfg.modifier}+Down" = "focus down"; "${cfg.modifier}+Up" = "focus up"; "${cfg.modifier}+Right" = "focus right"; "${cfg.modifier}+Shift+Left" = "move left"; "${cfg.modifier}+Shift+Down" = "move down"; "${cfg.modifier}+Shift+Up" = "move up"; "${cfg.modifier}+Shift+Right" = "move right"; "${cfg.modifier}+Shift+space" = "floating toggle"; "${cfg.modifier}+space" = "focus mode_toggle"; "XF86AudioRaiseVolume" = "exec ${pactl} set-sink-volume @DEFAULT_SINK@ +5%"; "XF86AudioLowerVolume" = "exec ${pactl} set-sink-volume @DEFAULT_SINK@ -5%"; "XF86AudioMute" = "exec ${pactl} set-sink-mute @DEFAULT_SINK@ toggle"; "XF86AudioMicMute" = "exec ${pactl} set-source-mute @DEFAULT_SOURCE@ toggle"; "XF86MonBrightnessDown" = "exec sudo xbacklight -time 1 -dec +5"; "XF86MonBrightnessUp" = "exec sudo xbacklight -time 1 -inc +5"; "Print" = '' exec ${pkgs.grim}/bin/grim -t png -g "$(${pkgs.slurp}/bin/slurp -d)" - | ${pkgs.wl-clipboard}/bin/wl-copy -t image/png''; "Shift+Print" = "exec ${pkgs.grim}/bin/grim -t png - | ${pkgs.wl-clipboard}/bin/wl-copy -t image/png"; "${cfg.modifier}+d" = "exec ${menu}"; "${cfg.modifier}+f" = "fullscreen"; "${cfg.modifier}+Shift+q" = "kill"; "${cfg.modifier}+Shift+c" = "reload"; "${cfg.modifier}+r" = "mode resize"; } // (lib.foldl lib.recursiveUpdate {} (map (workspace: { "${cfg.modifier}+${workspace}" = "workspace ${workspace}"; "${cfg.modifier}+Shift+${workspace}" = "move container to workspace ${workspace}"; }) ["1" "2" "3" "4" "5" "6" "7" "8" "9"])); }; }; }