diff --git a/data/pubkeys.nix b/data/pubkeys.nix index ef18801a..0a8f75ab 100644 --- a/data/pubkeys.nix +++ b/data/pubkeys.nix @@ -7,6 +7,7 @@ let "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKZ0hlF6EFQXpw74kkpoA8vxMX6vVDTnpM41rCDXRMuo" # daedalusvm "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC6xx1IWlRoSQvCUZ+iyzekjFjoXBKmDT4Kxww4Tl+63" # iPad "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJmN2QRbwQyeUChQ0ZxNzjNnUZTOUVbM4kDEGfEtmufc" # iPhone + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID/oMAi5jyQsNohfhcSH2ItisTpBGB0WtYTVxJYKKqhj" # theseus ]; server = user ++ hosts.ds9 ++ hosts.picard; client = user; diff --git a/hosts/theseus/default.nix b/hosts/theseus/default.nix index 75fc690b..0723940c 100644 --- a/hosts/theseus/default.nix +++ b/hosts/theseus/default.nix @@ -16,12 +16,21 @@ boot.initrd.luks.devices.cryptroot.device = "/dev/disk/by-uuid/4cd8dbb3-8eea-48ff-87b1-92945be291ac"; programs.fuse.userAllowOther = true; programs.sway.enable = true; + programs.sway.extraSessionCommands = '' + export NIXOS_OZONE_WL=1 + ''; + # start bt + hardware.bluetooth.enable = true; + services.blueman.enable = true; + + # end bt + programs.light.enable = true; networking.networkmanager.enable = true; networking.networkmanager.wifi.backend = "iwd"; services.displayManager.sddm.enable = true; services.displayManager.sddm.wayland.enable = true; services.upower.enable = true; - users.users.ragon.extraGroups = [ "networkmanager" ]; + users.users.ragon.extraGroups = [ "networkmanager" "video" ]; environment.systemPackages = [ pkgs.wezterm ]; @@ -41,6 +50,8 @@ ../../hm-modules/zellij ../../hm-modules/cli.nix ./swaycfg.nix + ./river.nix + ./kanshi.nix ../../hm-modules/files.nix ]; ragon.helix.enable = true; @@ -64,6 +75,11 @@ config.color_scheme = 'Gruvbox Dark (Gogh)' -- and finally, return the configuration to wezterm return config ''; + home.packages = [ + pkgs.element-desktop # this is not a place of honor + pkgs.plexamp + pkgs.firefox + ]; # home.persistence."/persistent/home/ragon" = diff --git a/hosts/theseus/kanshi.nix b/hosts/theseus/kanshi.nix new file mode 100644 index 00000000..4d509f26 --- /dev/null +++ b/hosts/theseus/kanshi.nix @@ -0,0 +1,55 @@ +{ pkgs, inputs, options, lib, ... }: +let + # TODO: have a list of workspaces and operate on that + moveWs = output: workspaceStart: workspaceEnd: map + (x: ''${pkgs.sway}/bin/swaymsg workspace ${toString x}:${toString x} ouptut "${output}", workspace ${toString x}:${toString x}, move workspace to "${output}"'') + (lib.range workspaceStart workspaceEnd); +in +{ + services.kanshi = { + enable = true; + settings = [ + { + profile.name = "undocked"; + profile.outputs = [ + { + criteria = "eDP-1"; + adaptiveSync = true; + scale = 1.25; + mode = "2880x1920@120Hz"; + } + ]; + } + { + profile.name = "docked_home"; + profile.outputs = [ + { + criteria = "eDP-1"; + adaptiveSync = true; + scale = 2.0; + mode = "2880x1920@120Hz"; + } + { + criteria = "Dell Inc. Dell S2716DG #ASM2LrMXJiXd"; + adaptiveSync = true; + position = "1440,0"; + scale = 1.0; + mode = "2560x1440@119.998Hz"; + } + { + criteria = "Acer Technologies KG271U TATEE0018511"; + adaptiveSync = true; + position = "4000,0"; + scale = 1.0; + mode = "2560x1440@74.924Hz"; + } + ]; + profile.exec = lib.flatten [ + (moveWs "eDP-1" 1 3) + (moveWs "Dell Inc. Dell S2716DG #ASM2LrMXJiXd" 4 7) + (moveWs "Acer Technologies KG271U TATEE0018511" 8 10) + ]; + } + ]; + }; +} diff --git a/hosts/theseus/river.nix b/hosts/theseus/river.nix new file mode 100644 index 00000000..6dccf8d7 --- /dev/null +++ b/hosts/theseus/river.nix @@ -0,0 +1,214 @@ +{ lib, pkgs, config, inputs, ... }: { + home.packages = with pkgs; [ + helvum + brightnessctl + dconf + ]; + + dconf = { + enable = true; + settings = { + "org/gnome/desktop/interface" = { + color-scheme = "prefer-dark"; + }; + }; + }; + + gtk = { + enable = true; + theme = { + name = "Adwaita-dark"; + package = pkgs.gnome.gnome-themes-extra; + }; + iconTheme = { + name = "Adwaita"; + package = pkgs.gnome.adwaita-icon-theme; + }; + cursorTheme = { + name = "Adwaita"; + package = pkgs.gnome.adwaita-icon-theme; + }; + }; + # qt = { + # enable = true; + # platformTheme = "gnome"; + # style = "adwaita-dark"; + # }; + programs.waybar = { + enable = true; + systemd.enable = true; + settings = { + mainBar = { + layer = "top"; + position = "top"; + height = 20; + modules-left = [ "river/tags" "river/mode" "river/layout" ]; + modules-center = [ "river/window" ]; + modules-right = [ "wireplumber" "upower" "backlight" "cpu" "temperature" "memory" "disk" "network" "clock" ]; + wireplumber = { + "format" = "{volume}% {icon}"; + "format-muted" = ""; + "on-click" = "helvum"; + "format-icons" = [ "" "" "" ]; + }; + "backlight" = { + "device" = "amdgpu_bl1"; + "format" = "{percent}% {icon}"; + "format-icons" = [ "" "" ]; + }; + "cpu" = { + "interval" = 10; + "format" = "{}% "; + "max-length" = 10; + }; + "temperature" = { + "format" = "{temperatureC}°C "; + }; + memory = { + interval = 30; + format = "{used:0.0f}/{total:0.0f} GB "; + }; + clock = { + interval = 1; + format = "{:%Y-%m-%dT%H:%M:%S%z}"; + }; + disk = { + format = "{specific_used:0.0f}/{specific_total:0.0f} GB 󰋊"; + unit = "GB"; + path = "/persistent"; + }; + "network" = { + "format" = "{ifname}"; + "format-wifi" = "{essid} ({signalStrength}%) "; + "format-ethernet" = "{ipaddr}/{cidr} 󰊗"; + "format-disconnected" = ""; + "tooltip-format" = "{ifname} via {gwaddr} 󰊗"; + "tooltip-format-wifi" = "{essid} ({signalStrength}%) "; + "tooltip-format-ethernet" = "{ifname} "; + "tooltip-format-disconnected" = "Disconnected"; + "max-length" = 50; + }; + }; + }; + }; + wayland.windowManager.river = { + enable = true; + systemd.enable = true; + xwayland.enable = true; + settings = { + map = { + normal = { + "Super Q" = "close"; + "Super J" = "focus-view next"; + "Super K" = "focus-view previous"; + "Super Up" = "focus-view next"; + "Super Down" = "focus-view previous"; + "Super+Shift J" = "swap next"; + "Super+Shift K" = "swap previous"; + "Super+Shift Up" = "swap next"; + "Super+Shift Down" = "swap previous"; + "Super Period" = "focus-output right"; + "Super Comma" = "focus-output left"; + "Super+Control Period" = "send-to-output right"; + "Super+Control Comma" = "send-to-output left"; + "Super Return" = "zoom"; + "Super H" = ''send-layout-cmd rivertile "main-ratio -0.05"''; + "Super L" = ''send-layout-cmd rivertile "main-ratio +0.05"''; + "Super Left" = ''send-layout-cmd rivertile "main-ratio -0.05"''; + "Super Right" = ''send-layout-cmd rivertile "main-ratio +0.05"''; + "Super+Shift H" = ''send-layout-cmd rivertile "main-count -1"''; + "Super+Shift L" = ''send-layout-cmd rivertile "main-count +1"''; + "Super+Shift Left" = ''send-layout-cmd rivertile main-count -1"''; + "Super+Shift Right" = ''send-layout-cmd rivertile main-count +1"''; + # Super+Alt+{H,J,K,L} to move views + "Super+Alt H" = "move left 100"; + "Super+Alt J" = "move down 100"; + "Super+Alt K" = "move up 100"; + "Super+Alt L" = "move right 100"; + + # Super+Alt+Control+{H,J,K,L} to snap views to screen edges + "Super+Alt+Control H" = "snap left"; + "Super+Alt+Control J" = "snap down"; + "Super+Alt+Control K" = "snap up"; + "Super+Alt+Control L" = "snap right"; + + # Super+Alt+Shift+{H,J,K,L} to resize views + "Super+Alt+Shift H" = "resize horizontal -100"; + "Super+Alt+Shift J" = "resize vertical 100"; + "Super+Alt+Shift K" = "resize vertical -100"; + "Super+Alt+Shift L" = "resize horizontal 100"; + + } // (lib.zipAttrs (map + (x_int: + let + pow = n: i: + if i == 1 then n + else if i == 0 then 1 + else n * pow n (i - 1); + tags = toString (pow 2 (x_int - 1)); + x = toString x_int; + + in + { + "Super ${x}" = "set-focused-tags ${tags}"; + "Super+Shift ${x}" = "set-view-tags ${tags}"; + "Super+Control ${x}" = "toggle-focused-tags ${tags}"; + "Super+Shift+Control ${x}" = "toggle-view-tags ${tags}"; + } + ) + (lib.range 1 9))) + // { + "Super 0" = "set-focused-tags 4294967295"; # $(((1 << 32) - 1)) + "Super+Shift 0" = "set-view-tags 4294967295"; # $(((1 << 32) - 1)) + # Super+Space to toggle float + "Super Space" = "toggle-float"; + + # Super+F to toggle fullscreen + "Super F" = "toggle-fullscreen"; + + # Super+{Up,Right,Down,Left} to change layout orientation + "Super Up" = ''send-layout-cmd rivertile "main-location top"''; + "Super Right" = ''send-layout-cmd rivertile "main-location right"''; + "Super Down" = ''send-layout-cmd rivertile "main-location bottom"''; + "Super Left" = ''send-layout-cmd rivertile "main-location left"''; + # Control pulse audio volume with pamixer (https://github.com/cdemoulins/pamixer) + "None XF86AudioRaiseVolume" = "spawn 'pamixer -i 5'"; + "None XF86AudioLowerVolume" = "spawn 'pamixer -d 5'"; + "None XF86AudioMute" = "spawn 'pamixer --toggle-mute'"; + + # Control MPRIS aware media players with playerctl (https://github.com/altdesktop/playerctl) + "None XF86AudioMedia" = "spawn 'playerctl play-pause'"; + "None XF86AudioPlay" = "spawn 'playerctl play-pause'"; + "None XF86AudioPrev" = "spawn 'playerctl previous'"; + "None XF86AudioNext" = "spawn 'playerctl next'"; + + # Control screen backlight brightness with brightnessctl (https://github.com/Hummer12007/brightnessctl) + "None XF86MonBrightnessUp" = "spawn 'brightnessctl set +5%'"; + "None XF86MonBrightnessDown" = "spawn 'brightnessctl set 5%-'"; + } + ; + }; + map-pointer.normal = { + # Super + Left Mouse Button to move views + "Super BTN_LEFT" = "move-view"; + + # Super + Right Mouse Button to resize views + "Super BTN_RIGHT" = "resize-view"; + + # Super + Middle Mouse Button to toggle float + "Super BTN_MIDDLE" = "toggle-float"; + }; + border-color-focused = "0x7c6f64"; # bg4 + border-color-unfocused = "0x3c3836"; # bg1 + focus-follows-cursor = "normal"; + input = { + "pointer-2362-628-PIXA3854:00_093A:0274_Touchpad" = "tap enabled"; + }; + xcursor-theme = "Adwaita"; + default-layout = "rivertile"; + }; + extraConfig = '' + rivertile -view-padding 3 -outer-padding 3 & + ''; + }; +} diff --git a/hosts/theseus/swaycfg.nix b/hosts/theseus/swaycfg.nix index cf7fc657..d3bc8044 100644 --- a/hosts/theseus/swaycfg.nix +++ b/hosts/theseus/swaycfg.nix @@ -1,20 +1,11 @@ { pkgs, config, inputs, ... }: { imports = [ inputs.ironbar.homeManagerModules.default ]; - gtk = { - enable = true; - # font.size = 10; - theme.name = "adwaita-dark"; - }; - qt = { - enable = true; - style.name = "adwaita-dark"; - }; home.packages = with pkgs; [ slurp grim mako firefox - light + # light installed via programs.light playerctl jq rofi @@ -123,195 +114,195 @@ ]; }; }; + + # TODO: change to home-manager module somehow home.file.".config/sway/config".text = '' - set $mod Mod4 - set $term wezterm - set $screenclip slurp | grim -g - ~/Images/screenshots/scrn-$(date +"%Y-%m-%d-%H-%M-%S").png - set $screenshot grim ~/Images/screenshots/scrn-$(date +"%Y-%m-%d-%H-%M-%S").png - set $menu rofi -show drun -run-command 'swaymsg exec -- {cmd}' - set $lock swaylock -c 000000 + set $mod Mod4 + set $term wezterm + set $screenclip slurp | grim -g - ~/Images/screenshots/scrn-$(date +"%Y-%m-%d-%H-%M-%S").png + set $screenshot grim ~/Images/screenshots/scrn-$(date +"%Y-%m-%d-%H-%M-%S").png + set $menu rofi -show drun -run-command 'swaymsg exec -- {cmd}' + set $lock swaylock -c 000000 - set $cl_high #009ddc - set $cl_indi #d9d8d8 - set $cl_back #231f20 - set $cl_fore #d9d8d8 - set $cl_urge #ee2e24 - # Colors border bg text indi childborder - client.focused $cl_high $cl_high $cl_fore $cl_indi $cl_high - client.focused_inactive $cl_back $cl_back $cl_fore $cl_back $cl_back - client.unfocused $cl_back $cl_back $cl_fore $cl_back $cl_back - client.urgent $cl_urge $cl_urge $cl_fore $cl_urge $cl_urge + exec --no-statup-id ${pkgs.kanshi}/bin/kanshi - # workspaces - set $ws1 1:1 - set $ws2 2:2 - set $ws3 3:3 - set $ws4 4:4 - set $ws5 5:5 - set $ws6 6:6 - set $ws7 7:7 - set $ws8 8:8 - set $ws9 9:9 - set $ws0 10:10 + set $cl_high #009ddc + set $cl_indi #d9d8d8 + set $cl_back #231f20 + set $cl_fore #d9d8d8 + set $cl_urge #ee2e24 + # Colors border bg text indi childborder + client.focused $cl_high $cl_high $cl_fore $cl_indi $cl_high + client.focused_inactive $cl_back $cl_back $cl_fore $cl_back $cl_back + client.unfocused $cl_back $cl_back $cl_fore $cl_back $cl_back + client.urgent $cl_urge $cl_urge $cl_fore $cl_urge $cl_urge - exec --no-startup-id mako - exec --no-startup-id ironbar - input 12951:6505:ZSA_Technology_Labs_Moonlander_Mark_I { - xkb_layout eu + # workspaces + set $ws1 1:1 + set $ws2 2:2 + set $ws3 3:3 + set $ws4 4:4 + set $ws5 5:5 + set $ws6 6:6 + set $ws7 7:7 + set $ws8 8:8 + set $ws9 9:9 + set $ws0 10:10 + + exec --no-startup-id mako + exec --no-startup-id ironbar + input * { + xkb_layout eu + } + input 12972:6:FRMW0004:00_32AC:0006_Consumer_Control { + xkb_layout us + xkb_variant colemak_dh_iso + xkb_options caps:escape + } + input type:touchpad { + tap enabled + } + bindsym $mod+Shift+Return exec $term + bindsym $mod+Space exec $menu + bindsym $mod+Print exec $screenshot + bindsym $mod+Shift+Print exec $screenclip + bindsym $mod+Shift+q kill + bindsym $mod+Shift+c reload + # Brightness controls + bindsym --locked XF86MonBrightnessUp exec --no-startup-id light -A 10 + bindsym --locked XF86MonBrightnessDown exec --no-startup-id light -U 10 + # Multimedia + bindsym --locked XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume $(pacmd list-sinks |awk '/* index:/{print $3}') +5% + bindsym --locked XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume $(pacmd list-sinks |awk '/* index:/{print $3}') -5% + bindsym --locked XF86AudioMute exec --no-startup-id pactl set-sink-mute $(pacmd list-sinks |awk '/* index:/{print $3}') toggle + bindsym --locked XF86AudioPlay exec playerctl play-pause + bindsym --locked XF86AudioNext exec playerctl next + bindsym --locked XF86AudioPrev exec playerctl previous + + # Idle configuration + exec swayidle \ + timeout 300 'exec $lock' \ + timeout 600 'swaymsg "output * dpms off"' \ + after-resume 'swaymsg "output * dpms on"' \ + before-sleep 'exec $lock' + # switch to workspace + bindsym $mod+1 workspace $ws1 + bindsym $mod+2 workspace $ws2 + bindsym $mod+3 workspace $ws3 + bindsym $mod+4 workspace $ws4 + bindsym $mod+5 workspace $ws5 + bindsym $mod+6 workspace $ws6 + bindsym $mod+7 workspace $ws7 + bindsym $mod+8 workspace $ws8 + bindsym $mod+9 workspace $ws9 + bindsym $mod+0 workspace $ws0 + + # move focused container to workspace + bindsym $mod+Shift+1 move container to workspace $ws1 + bindsym $mod+Shift+2 move container to workspace $ws2 + bindsym $mod+Shift+3 move container to workspace $ws3 + bindsym $mod+Shift+4 move container to workspace $ws4 + bindsym $mod+Shift+5 move container to workspace $ws5 + bindsym $mod+Shift+6 move container to workspace $ws6 + bindsym $mod+Shift+7 move container to workspace $ws7 + bindsym $mod+Shift+8 move container to workspace $ws8 + bindsym $mod+Shift+9 move container to workspace $ws9 + bindsym $mod+Shift+0 move container to workspace $ws0 + # Layout stuff: + + # Make the current focus fullscreen + bindsym $mod+Shift+f fullscreen + + # Toggle the current focus between tiling and floating mode + bindsym $mod+Shift+space floating toggle + # Swap focus between the tiling area and the floating area + # bindsym $mod+f focus mode_toggle + + # Move the currently focused window to the scratchpad + bindsym $mod+Shift+minus move scratchpad + # Show the next scratchpad window or hide the focused scratchpad window. + # If there are multiple scratchpad windows, this command cycles through them. + bindsym $mod+minus scratchpad show + + set $mode_system System: (l) lock, (e) logout, (s) suspend, (r) reboot, (S) shutdown, (R) UEFI + mode "$mode_system" { + bindsym l exec $lock, mode "default" + bindsym e exit + bindsym s exec --no-startup-id systemctl suspend, mode "default" + bindsym r exec --no-startup-id systemctl reboot, mode "default" + bindsym Shift+s exec --no-startup-id systemctl poweroff -i, mode "default" + bindsym Shift+r exec --no-startup-id systemctl reboot --firmware-setup, mode "default" + + # return to default mode + bindsym Return mode "default" + bindsym Escape mode "default" + } + bindsym $mod+Shift+e mode "$mode_system" + + exec_always "pkill -f 'python3? .+/swaymonad.py'; swaymonad" + bindsym $mod+Return nop promote_window + + bindsym $mod+j nop focus_next_window + bindsym $mod+k nop focus_prev_window + bindsym $mod+Down nop focus_next_window + bindsym $mod+Up nop focus_prev_window + + bindsym $mod+Shift+Left nop move left + bindsym $mod+Shift+Down nop move down + bindsym $mod+Shift+Up nop move up + bindsym $mod+Shift+Right nop move right + + bindsym $mod+Shift+j nop swap_with_next_window + bindsym $mod+Shift+k nop swap_with_prev_window + + bindsym $mod+x nop reflectx + bindsym $mod+y nop reflecty + bindsym $mod+t nop transpose + + bindsym $mod+f nop fullscreen + + bindsym $mod+Comma nop increment_masters + bindsym $mod+Period nop decrement_masters + + mode "resize" { + bindsym Left resize shrink width 10px + bindsym Down resize grow height 10px + bindsym Up resize shrink height 10px + bindsym Right resize grow width 10px + + bindsym Shift+Left nop resize_master shrink width 10px + bindsym Shift+Down nop resize_master grow height 10px + bindsym Shift+Up nop resize_master shrink height 10px + bindsym Shift+Right nop resize_master grow width 10px + + # bindsym n resize set width (n-1/n) + bindsym 2 resize set width 50ppt # 1/2, 1/2 + bindsym 3 resize set width 66ppt # 2/3, 1/3 + bindsym 4 resize set width 75ppt # 3/4, 1/4 + + bindsym Shift+2 nop resize_master set width 50ppt + bindsym Shift+3 nop resize_master set width 66ppt + bindsym Shift+4 nop resize_master set width 75ppt + + bindsym Return mode "default" + bindsym Escape mode "default" } - input * { - xkb_layout us - xkb_variant colemak_dh_iso - xkb_options caps:escape + bindsym $mod+r mode "resize" + + mode "layout" { + bindsym t nop set_layout tall + bindsym 2 nop set_layout 2_col + bindsym 3 nop set_layout 3_col + bindsym n nop set_layout nop + + bindsym Return mode "default" + bindsym Escape mode "default" } - input type:touchpad { - tap enabled - } - output eDP-1 { - scale 1 - adaptive_sync on - } - bindsym $mod+Shift+Return exec $term - bindsym $mod+Space exec $menu - bindsym $mod+Print exec $screenshot - bindsym $mod+Shift+Print exec $screenclip - bindsym $mod+Shift+q kill - bindsym $mod+Shift+c reload - # Brightness controls - bindsym --locked XF86MonBrightnessUp exec --no-startup-id light -A 10 - bindsym --locked XF86MonBrightnessDown exec --no-startup-id light -U 10 - # Multimedia - bindsym --locked XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume $(pacmd list-sinks |awk '/* index:/{print $3}') +5% - bindsym --locked XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume $(pacmd list-sinks |awk '/* index:/{print $3}') -5% - bindsym --locked XF86AudioMute exec --no-startup-id pactl set-sink-mute $(pacmd list-sinks |awk '/* index:/{print $3}') toggle - bindsym --locked XF86AudioPlay exec playerctl play-pause - bindsym --locked XF86AudioNext exec playerctl next - bindsym --locked XF86AudioPrev exec playerctl previous + # nop set_layout 2_col + bindsym $mod+l mode "layout" - # Idle configuration - exec swayidle \ - timeout 300 'exec $lock' \ - timeout 600 'swaymsg "output * dpms off"' \ - after-resume 'swaymsg "output * dpms on"' \ - before-sleep 'exec $lock' - # switch to workspace - bindsym $mod+1 workspace $ws1 - bindsym $mod+2 workspace $ws2 - bindsym $mod+3 workspace $ws3 - bindsym $mod+4 workspace $ws4 - bindsym $mod+5 workspace $ws5 - bindsym $mod+6 workspace $ws6 - bindsym $mod+7 workspace $ws7 - bindsym $mod+8 workspace $ws8 - bindsym $mod+9 workspace $ws9 - bindsym $mod+0 workspace $ws0 - - # move focused container to workspace - bindsym $mod+Shift+1 move container to workspace $ws1 - bindsym $mod+Shift+2 move container to workspace $ws2 - bindsym $mod+Shift+3 move container to workspace $ws3 - bindsym $mod+Shift+4 move container to workspace $ws4 - bindsym $mod+Shift+5 move container to workspace $ws5 - bindsym $mod+Shift+6 move container to workspace $ws6 - bindsym $mod+Shift+7 move container to workspace $ws7 - bindsym $mod+Shift+8 move container to workspace $ws8 - bindsym $mod+Shift+9 move container to workspace $ws9 - bindsym $mod+Shift+0 move container to workspace $ws0 - # Layout stuff: - - # Make the current focus fullscreen - bindsym $mod+Shift+f fullscreen - - # Toggle the current focus between tiling and floating mode - bindsym $mod+Shift+space floating toggle - # Swap focus between the tiling area and the floating area - # bindsym $mod+f focus mode_toggle - - # Move the currently focused window to the scratchpad - bindsym $mod+Shift+minus move scratchpad - # Show the next scratchpad window or hide the focused scratchpad window. - # If there are multiple scratchpad windows, this command cycles through them. - bindsym $mod+minus scratchpad show - - set $mode_system System: (l) lock, (e) logout, (s) suspend, (r) reboot, (S) shutdown, (R) UEFI - mode "$mode_system" { - bindsym l exec $lock, mode "default" - bindsym e exit - bindsym s exec --no-startup-id systemctl suspend, mode "default" - bindsym r exec --no-startup-id systemctl reboot, mode "default" - bindsym Shift+s exec --no-startup-id systemctl poweroff -i, mode "default" - bindsym Shift+r exec --no-startup-id systemctl reboot --firmware-setup, mode "default" - - # return to default mode - bindsym Return mode "default" - bindsym Escape mode "default" - } - bindsym $mod+Shift+e mode "$mode_system" - - exec_always "pkill -f 'python3? .+/swaymonad.py'; swaymonad" -bindsym $mod+Return nop promote_window - -bindsym $mod+j nop focus_next_window -bindsym $mod+k nop focus_prev_window -bindsym $mod+Down nop focus_next_window -bindsym $mod+Up nop focus_prev_window - -bindsym $mod+Shift+Left nop move left -bindsym $mod+Shift+Down nop move down -bindsym $mod+Shift+Up nop move up -bindsym $mod+Shift+Right nop move right - -bindsym $mod+Shift+j nop swap_with_next_window -bindsym $mod+Shift+k nop swap_with_prev_window - -bindsym $mod+x nop reflectx -bindsym $mod+y nop reflecty -bindsym $mod+t nop transpose - -bindsym $mod+f nop fullscreen - -bindsym $mod+Comma nop increment_masters -bindsym $mod+Period nop decrement_masters - -mode "resize" { - bindsym Left resize shrink width 10px - bindsym Down resize grow height 10px - bindsym Up resize shrink height 10px - bindsym Right resize grow width 10px - - bindsym Shift+Left nop resize_master shrink width 10px - bindsym Shift+Down nop resize_master grow height 10px - bindsym Shift+Up nop resize_master shrink height 10px - bindsym Shift+Right nop resize_master grow width 10px - - # bindsym n resize set width (n-1/n) - bindsym 2 resize set width 50ppt # 1/2, 1/2 - bindsym 3 resize set width 66ppt # 2/3, 1/3 - bindsym 4 resize set width 75ppt # 3/4, 1/4 - - bindsym Shift+2 nop resize_master set width 50ppt - bindsym Shift+3 nop resize_master set width 66ppt - bindsym Shift+4 nop resize_master set width 75ppt - - bindsym Return mode "default" - bindsym Escape mode "default" -} -bindsym $mod+r mode "resize" - -mode "layout" { - bindsym t nop set_layout tall - bindsym 2 nop set_layout 2_col - bindsym 3 nop set_layout 3_col - bindsym n nop set_layout nop - - bindsym Return mode "default" - bindsym Escape mode "default" -} -# nop set_layout 2_col -bindsym $mod+l mode "layout" - -mouse_warping container -focus_wrapping no + mouse_warping container + focus_wrapping no ''; }