{ config, lib, pkgs, ... }: { imports = [ ./bar.nix ./gammastep.nix ./launcher.nix ./notification.nix ./screenlock.nix ./screenshot.nix ]; home.packages = [ pkgs.pavucontrol pkgs.wev pkgs.wf-recorder pkgs.wofi pkgs.wlogout ]; home.sessionVariables = { MOZ_ENABLE_WAYLAND = true; XDG_CURRENT_DESKTOP = "sway"; XDG_SESSION_TYPE = "wayland"; }; wayland.windowManager.sway = { enable = true; systemdIntegration = true; extraSessionCommands = '' export XDG_SESSION_TYPE=wayland export XDG_CURRENT_DESKTOP=sway export MOZ_ENABLE_WAYLAND=1 ''; config = rec { modifier = "Mod4"; terminal = "${config.programs.alacritty.package}/bin/alacritty"; menu = ''${pkgs.wofi}/bin/wofi -S drun -p "app:" -L 10''; bars = [{ position = "top"; fonts = { names = [ "Source Code Pro" "FontAwesome5Free" ]; style = "Regular"; size = 11.0; }; statusCommand = "${pkgs.i3status-rust}/bin/i3status-rs ~/.config/i3status-rust/config-default.toml"; colors = { background = "#2E3440AA"; statusline = "#88C0D0"; separator = "#3B4252"; focusedWorkspace = { border = "#88C0D0"; background = "#88C0D0"; text = "#2E3440"; }; activeWorkspace = { border = "#4C566ADD"; background = "#4C566ADD"; text = "#D8DEE9"; }; inactiveWorkspace = { border = "#3B4252DD"; background = "#3B4252DD"; text = "#E5E9F0"; }; urgentWorkspace = { border = "#B48EAD"; background = "#B48EAD"; text = "#ECEFF4"; }; bindingMode = { border = "#BF616A"; background = "#BF616A"; text = "#E5E9F0"; }; }; }]; fonts = { names = [ "Source Code Pro" ]; size = 10.0; }; keybindings = lib.mkOptionDefault { "XF86AudioRaiseVolume" = "exec ${pkgs.pulseaudio}/bin/pactl set-sink-volume @DEFAULT_SINK@ +5%"; "XF86AudioLowerVolume" = "exec ${pkgs.pulseaudio}/bin/pactl set-sink-volume @DEFAULT_SINK@ -5%"; "XF86AudioMute" = "exec ${pkgs.pulseaudio}/bin/pactl set-sink-mute @DEFAULT_SINK@ toggle"; "XF86AudioMicMute" = "exec ${pkgs.pulseaudio}/bin/pactl set-source-mute @DEFAULT_SOURCE@ toggle"; "XF86MonBrightnessDown" = "exec ${pkgs.brightnessctl}/bin/brightnessctl set 5%-"; "XF86MonBrightnessUp" = "exec ${pkgs.brightnessctl}/bin/brightnessctl set +5%"; "${modifier}+Escape" = "exec ${pkgs.wlogout}/bin/wlogout"; "${modifier}+s" = "exec ${pkgs.grim}/bin/grim $(xdg-user-dir DOCUMENTS)/screenshots/$(date +'%Y-%m-%d-%H%M%S_screenshot.png')"; "${modifier}+Shift+s" = "exec ${pkgs.slurp}/bin/slurp | ${pkgs.grim}/bin/grim -g - $(xdg-user-dir DOCUMENTS)/screenshots/$(date +'%Y-%m-%d-%H%M%S_screenshot.png')"; }; window.commands = [{ command = "floating enable"; criteria.app_id = "pavucontrol"; }]; input = { "*" = { "xkb_layout" = "us,fr"; # map capslock to ctrl, and switch layout using shift+caps "xkb_options" = "ctrl:nocaps,grp:shift_caps_toggle"; }; }; assigns = { "1" = [{ app_id = "emacs"; }]; "2" = [{ app_id = "Alacritty"; }]; "3" = [{ app_id = "firefox"; }]; "4" = [{ class = "Element"; }]; }; output = { "*" = { scale = "1.5"; bg = "#2E3440 solid_color"; }; # This is for aptos "eDP-1" = { scale = "1.3"; }; }; startup = [{ command = '' exec "systemctl --user import-environment; systemctl --user start sway-session.target"''; }]; }; }; }