From dbe515a0b1b3eeb1c8c8df0bed7e4f2d76c85b0d Mon Sep 17 00:00:00 2001 From: TheWanderingCrow Date: Mon, 23 Sep 2024 21:38:36 -0400 Subject: [PATCH] Sway config --- modules/default.nix | 1 + modules/sway/default.nix | 17 +++ modules/users/crow/home.nix | 11 +- modules/users/crow/sway/sway.conf | 196 ++++++++++++++++++++++++++++++ 4 files changed, 220 insertions(+), 5 deletions(-) create mode 100644 modules/sway/default.nix create mode 100644 modules/users/crow/sway/sway.conf diff --git a/modules/default.nix b/modules/default.nix index 74d9d4e..a7e823d 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -6,5 +6,6 @@ ./programs.nix ./users ./hypr + ./sway ]; } diff --git a/modules/sway/default.nix b/modules/sway/default.nix new file mode 100644 index 0000000..a88d142 --- /dev/null +++ b/modules/sway/default.nix @@ -0,0 +1,17 @@ +{ inputs, pkgs, lib, config, ...}: { + options.sway.enable = lib.mkEnableOption "enables sway"; + + config = { + programs.sway = lib.mkIf config.sway.enable { + enable = true; + xwayland.enable = true; + }; + }; + + + config.environment = lib.mkIf config.sway.enable { + sessionVariables = { + NIXOS_OZONE_WL = "1"; + }; + }; +} diff --git a/modules/users/crow/home.nix b/modules/users/crow/home.nix index 3a9e395..c501110 100644 --- a/modules/users/crow/home.nix +++ b/modules/users/crow/home.nix @@ -1,6 +1,6 @@ {osConfig, config, inputs, pkgs, lib, ...}: let - monitorConfig = if osConfig.networking.hostName == "Parzival" then ./hypr/parzival-monitors.conf + hyprMonitorConfig = if osConfig.networking.hostName == "Parzival" then ./hypr/parzival-monitors.conf else if osConfig.networking.hostName == "Parzival-Mobile" then ./hypr/parzival_mobile-monitors.conf else null; in @@ -9,8 +9,9 @@ in username = "crow"; homeDirectory = "/home/crow"; stateVersion = "24.05"; - file.".config/hypr/hyprland.conf".source = ./hypr/hyprland.conf; - file.".config/hypr/monitors.conf".source = lib.mkIf (monitorConfig != null) monitorConfig; +# file.".config/hypr/hyprland.conf".source = ./hypr/hyprland.conf; +# file.".config/hypr/monitors.conf".source = lib.mkIf (monitorConfig != null) hyprMonitorConfig; + file.".config/sway/config".source = ./sway/sway.conf; }; xdg = { @@ -30,13 +31,13 @@ in spacing = 4; mode = "dock"; margin = "10"; - modules-left = [ "hyprland/workspaces" ]; + modules-left = [ "sway/workspaces" ]; modules-center = [ "clock" ]; modules-right = [ "network" "battery" "backlight" "pulseaudio" "tray" ]; tray = { spacing = 10; }; - "hyprland/workspaces" = { + "sway/workspaces" = { format = "{icon}"; format-icons = { active = ""; diff --git a/modules/users/crow/sway/sway.conf b/modules/users/crow/sway/sway.conf new file mode 100644 index 0000000..bae862d --- /dev/null +++ b/modules/users/crow/sway/sway.conf @@ -0,0 +1,196 @@ +################### +### MY PROGRAMS ### +################### + +set $term foot +set $menu wofi --show run | xargs swaymsg exec -- + +exec waybar +exec swaync +exec udiskie +exec /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 + +################### +### IDLE CONFIG ### +################### + +exec swayidle -w timeout 300 'swaylock --screenshots --effect-blur 10x7 --effect-pixelate 20 --clock --indicator --indicator-thickness 6 --ring-color 6F6AB5' timeout 600 'swaymsg "output * power off"' resume 'swaysmg "output * power on"' before-sleep 'swaylock --screenshots --effect-blur 10x7 --effect-pixelate 20 --clock --indicator --indicator-thickness 6 --ring-color 6F6AB5' + +#set $lock 'swaylock -f -c 000000' +#bindswitch --reload --locked lid:on exec $lock +#for_window [app_id="firefox"] inhibit_idle fullscreen +#bindsym $mod+Shift+z exec $lock + +### Input configuration +# +# Example configuration: +# +# input "2:14:SynPS/2_Synaptics_TouchPad" { +# dwt enabled +# tap enabled +# natural_scroll enabled +# middle_emulation enabled +# } +# +# You can get the names of your inputs by running: swaymsg -t get_inputs +# Read `man 5 sway-input` for more information about this section. + +################### +### KEYBINDINGS ### +################### + +set $mod Mod4 + +bindsym $mod+Return exec $term +bindsym $mod+Shift+q kill +bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit' +bindsym $mod+Shift+n exec networkmanager_dmenu +bindsym $mod+n exec swaync-client -t -sw +bindsym $mod+d exec $menu +bindsym $mod+Shift+d exec UDISKIE_DMENU_LAUNCHER="wofi" udiskie-dmenu -matching regex -dmenu -i -no-custom -multi-select +# Reload the configuration file +bindsym $mod+Shift+c reload + +floating_modifier $mod normal + +bindsym $mod+$left focus left +bindsym $mod+$down focus down +bindsym $mod+$up focus up +bindsym $mod+$right focus right + # Or use $mod+[up|down|left|right] + bindsym $mod+Left focus left + bindsym $mod+Down focus down + bindsym $mod+Up focus up + bindsym $mod+Right focus right + + # Move the focused window with the same, but add Shift + bindsym $mod+Shift+$left move left + bindsym $mod+Shift+$down move down + bindsym $mod+Shift+$up move up + bindsym $mod+Shift+$right move right + # Ditto, with arrow keys + bindsym $mod+Shift+Left move left + bindsym $mod+Shift+Down move down + bindsym $mod+Shift+Up move up + bindsym $mod+Shift+Right move right +# +# Workspaces: +# + # Switch to workspace + bindsym $mod+1 workspace number 1 + bindsym $mod+2 workspace number 2 + bindsym $mod+3 workspace number 3 + bindsym $mod+4 workspace number 4 + bindsym $mod+5 workspace number 5 + bindsym $mod+6 workspace number 6 + bindsym $mod+7 workspace number 7 + bindsym $mod+8 workspace number 8 + bindsym $mod+9 workspace number 9 + bindsym $mod+0 workspace number 10 + # Move focused container to workspace + bindsym $mod+Shift+1 move container to workspace number 1 + bindsym $mod+Shift+2 move container to workspace number 2 + bindsym $mod+Shift+3 move container to workspace number 3 + bindsym $mod+Shift+4 move container to workspace number 4 + bindsym $mod+Shift+5 move container to workspace number 5 + bindsym $mod+Shift+6 move container to workspace number 6 + bindsym $mod+Shift+7 move container to workspace number 7 + bindsym $mod+Shift+8 move container to workspace number 8 + bindsym $mod+Shift+9 move container to workspace number 9 + bindsym $mod+Shift+0 move container to workspace number 10 + # Note: workspaces can have any name you want, not just numbers. + # We just use 1-10 as the default. +# +# Layout stuff: +# + # You can "split" the current object of your focus with + # $mod+b or $mod+v, for horizontal and vertical splits + # respectively. + bindsym $mod+b splith + bindsym $mod+v splitv + + # Switch the current container between different layout styles + bindsym $mod+s layout stacking + bindsym $mod+w layout tabbed + bindsym $mod+e layout toggle split + + # Make the current focus fullscreen + bindsym $mod+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+space focus mode_toggle + + # Move focus to the parent container + bindsym $mod+a focus parent +# +# Scratchpad: +# + # Sway has a "scratchpad", which is a bag of holding for windows. + # You can send windows there and get them back later. + + # 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 +# +# Resizing containers: +# +mode "resize" { + # left will shrink the containers width + # right will grow the containers width + # up will shrink the containers height + # down will grow the containers height + bindsym $left resize shrink width 10px + bindsym $down resize grow height 10px + bindsym $up resize shrink height 10px + bindsym $right resize grow width 10px + + # Ditto, with arrow keys + bindsym Left resize shrink width 10px + bindsym Down resize grow height 10px + bindsym Up resize shrink height 10px + bindsym Right resize grow width 10px + + # Return to default mode + bindsym Return mode "default" + bindsym Escape mode "default" +} +bindsym $mod+r mode "resize" + +# +# Status Bar: +# +# Read `man 5 sway-bar` for more information about this section. +# bar { +# position top +# +# # When the status_command prints a new line to stdout, swaybar updates. +# # The default just shows the current date and time. +# status_command while date +'%Y-%m-%d %I:%M:%S %p'; do sleep 1; done +# +# colors { +# statusline #ffffff +# background #323232 +# inactive_workspace #32323200 #32323200 #5c5c5c +# } +#} + +# Media controls: +bindsym XF86AudioRaiseVolume exec pulseaudio-ctl up +bindsym XF86AudioLowerVolume exec pulseaudio-ctl down +bindsym XF86AudioMute exec pulseaudio-ctl mute +bindsym XF86AudioMicMute exec pulseaudio-ctl mute-input +bindsym XF86AudioPlay exec playerctl play-pause +bindsym XF86AudioNext exec playerctl next +bindsym XF86AudioPrev exec playerctl previous +bindsym XF86MonBrightnessUp exec brightnessctl s +5% +bindsym XF86MonBrightnessDown exec brightnessctl s 5%- +bindsym Print exec grimshot --cursor copy area + +include /etc/sway/config.d/* +