From 37b79824a151abc91be025aa62c1604afa02162b Mon Sep 17 00:00:00 2001 From: Aria Nolan Date: Mon, 13 Nov 2023 23:51:19 -0500 Subject: [PATCH] switched to sway --- flake.lock | 18 +- hosts/JWST/configuration.nix | 1 + users/tacocat/home.nix | 3 +- users/tacocat/shell/fish.nix | 1 - users/tacocat/wayland/default.nix | 9 + users/tacocat/wayland/sway/config | 281 ++++++++++++++++++ users/tacocat/wayland/sway/config.d/autostart | 7 + users/tacocat/wayland/sway/config.d/windows | 3 + users/tacocat/wayland/waybar/default.nix | 6 +- users/tacocat/wayland/waybar/style.css | 8 +- 10 files changed, 319 insertions(+), 18 deletions(-) create mode 100755 users/tacocat/wayland/sway/config create mode 100755 users/tacocat/wayland/sway/config.d/autostart create mode 100755 users/tacocat/wayland/sway/config.d/windows diff --git a/flake.lock b/flake.lock index c55a275..f4fd57d 100644 --- a/flake.lock +++ b/flake.lock @@ -74,11 +74,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1699520217, - "narHash": "sha256-+b4R/GUQrRBGGpmDXna8w28ueeK7FhIYhQTSHqFJuqo=", + "lastModified": 1699826676, + "narHash": "sha256-L7816eSomVqG1lw07eTMBexHo6F5XxpSiSER+8GXGgU=", "owner": "helix-editor", "repo": "helix", - "rev": "6ab774da0b473c36a437d90abcdac3558353d32e", + "rev": "23fea46815371a8e1a0fa340be34d80624cd9bcc", "type": "github" }, "original": { @@ -95,11 +95,11 @@ ] }, "locked": { - "lastModified": 1699748018, - "narHash": "sha256-28rwXnxgscLkeII6wj44cuP6RuiynhzZSa424ZwGt/s=", + "lastModified": 1699783872, + "narHash": "sha256-4zTwLT2LL45Nmo6iwKB3ls3hWodVP9DiSWxki/oewWE=", "owner": "nix-community", "repo": "home-manager", - "rev": "50e582b9f91e409ffd2e134017445d376659b32e", + "rev": "280721186ab75a76537713ec310306f0eba3e407", "type": "github" }, "original": { @@ -142,11 +142,11 @@ }, "nur": { "locked": { - "lastModified": 1699767986, - "narHash": "sha256-STR4kVOxM6Aok859j3otvpMhoa4Sve0VGB3ms5J3CrE=", + "lastModified": 1699907094, + "narHash": "sha256-9Brl2FJ+xIBRk3CNYsFWzx4pvRYUuM5fSps+GVswTzE=", "owner": "nix-community", "repo": "nur", - "rev": "d6e9e184834f3a6eda244f43443b43955f4ba237", + "rev": "9693ccc6b8835a960224c57cb1eb2faceabeda14", "type": "github" }, "original": { diff --git a/hosts/JWST/configuration.nix b/hosts/JWST/configuration.nix index be1ea96..5e7b78a 100644 --- a/hosts/JWST/configuration.nix +++ b/hosts/JWST/configuration.nix @@ -69,6 +69,7 @@ hardware.opengl = { enable = true; + driSupport32Bit = true; extraPackages = with pkgs; [ intel-compute-runtime ]; diff --git a/users/tacocat/home.nix b/users/tacocat/home.nix index cd2bced..cd2a744 100644 --- a/users/tacocat/home.nix +++ b/users/tacocat/home.nix @@ -23,7 +23,7 @@ zathura pyocd screen - wineWowPackages.unstable + wineWowPackages.stable comic-mono maple-mono jetbrains-mono @@ -33,6 +33,7 @@ gnupg pandoc jdk20 + maven pdftk git lua diff --git a/users/tacocat/shell/fish.nix b/users/tacocat/shell/fish.nix index 1bf8db8..6050a16 100644 --- a/users/tacocat/shell/fish.nix +++ b/users/tacocat/shell/fish.nix @@ -2,7 +2,6 @@ programs.fish = { enable = true; interactiveShellInit = '' - fish_vi_key_bindings set -g fish_greeting ''; }; diff --git a/users/tacocat/wayland/default.nix b/users/tacocat/wayland/default.nix index 6abfc50..1f07dc8 100644 --- a/users/tacocat/wayland/default.nix +++ b/users/tacocat/wayland/default.nix @@ -12,6 +12,15 @@ xdg.configFile."river/background.jpg".source = ../background.jpg; + + xdg.configFile."sway" = { + source = ./sway; + executable = true; + recursive = true; + }; + + xdg.configFile."sway/background.jpg".source = ../background.jpg; + home.packages = with pkgs; [ wl-clipboard # swaylock diff --git a/users/tacocat/wayland/sway/config b/users/tacocat/wayland/sway/config new file mode 100755 index 0000000..8a8e620 --- /dev/null +++ b/users/tacocat/wayland/sway/config @@ -0,0 +1,281 @@ +# Default config for sway + +include ~/.config/sway/config.d/* +include /etc/sway/config.d/* + +# +# Copy this to ~/.config/sway/config and edit it to your liking. +# +# Read `man 5 sway` for a complete reference. + +### Variables +# +# Logo key. Use Mod1 for Alt. +set $mod Mod4 +# Home row direction keys, like vim +set $left h +set $down j +set $up k +set $right l +# Your preferred terminal emulator +set $term foot +set $browser firefox + +# Your preferred application launcher +# Note: pass the final command to swaymsg so that the resulting window can be opened +# on the original workspace that the command was run on. +set $menu rofi -show drun | xargs swaymsg exec -- +set $menu2 rofi -show run | xargs swaymsg exec -- + +default_border pixel 3 +default_floating_border pixel 3 +font pango:"FiraCode Nerd Font" 10 +# smart_borders on +titlebar_padding 1 +titlebar_border_thickness 0 + +gaps inner 5 +gaps outer 5 +smart_gaps off + +# corner_radius 10 +# smart_corner_radius on + +set $focus "#ea9a97" +set $unfocus "#393552" +set $indicator "#3e8fb0" + +client.focused $focus $focus $focus $indicator +client.unfocused $unfocus $unfocus $unfocus $unfocus + +### Output configuration +# +# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/) +output * bg ~/.config/sway/background.jpg fill + +bar swaybar_command waybar +# +# Example configuration: +# +# output HDMI-A-1 resolution 1920x1080 position 1920,0 +# +# You can get the names of your outputs by running: swaymsg -t get_outputs + +### Idle configuration +# +# Example configuration: +# +exec swayidle -w \ + timeout 300 'swaylock -f -c D3869B' \ + timeout 600 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \ + before-sleep 'swaylock -f -c 000000' + +# +# This will lock your screen after 300 seconds of inactivity, then turn off +# your displays after another 300 seconds, and turn your screens back on when +# resumed. It will also lock your screen before your computer goes to sleep. + +### Input configuration +# +# Example configuration: +# + input "1267:12572:VEN_04F3:00_04F3:311C_Touchpad" { + dwt enabled + tap enabled + middle_emulation enabled + } + + input "1:1:AT_Translated_Set_2_keyboard" { + repeat_delay 200 + repeat_rate 35 + } + +# +# 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. + +### Key bindings +# +# Basics: +# + # Start a terminal + bindsym $mod+Return exec $term + + # Kill focused window + bindsym $mod+Shift+q kill + + # Start your launcher + bindsym $mod+d exec $menu + bindsym $mod+Shift+d exec $menu2 + + bindsym $mod+Shift+f exec $browser + + # Drag floating windows by holding down $mod and left mouse button. + # Resize them with right mouse button + $mod. + # Despite the name, also works for non-floating windows. + # Change normal to inverse to use left mouse button for resizing and right + # mouse button for dragging. + floating_modifier $mod normal + + # Reload the configuration file + bindsym $mod+Shift+c reload + + # Exit sway (logs you out of your Wayland session) + 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' +# +# Moving around: +# + # Move your focus around + 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. +# 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 +# } +# } + +# +# Player +# + bindsym XF86AudioPlay exec playerctl play-pause + bindsym XF86AudioNext exec playerctl next + bindsym XF86AudioPrev exec playerctl previous + +# Volume +# + bindsym XF86AudioRaiseVolume exec pamixer -ui 2 && pamixer --get-volume > $SWAYSOCK.wob + bindsym XF86AudioLowerVolume exec pamixer -ud 2 && pamixer --get-volume > $SWAYSOCK.wob + bindsym XF86AudioMute exec pamixer --toggle-mute && ( pamixer --get-mute && echo 0 > $SWAYSOCK.wob ) || pamixer --get-volume > $SWAYSOCK.wob + +# Bitwarden +# + # bindsym $mod+p exec $term2 -T "rbw unlock" -w 700x300 -f monospace:size=11 rbw unlock && rofi-rbw --clear-after 60 + +# Backlight +# + # bindsym XF86MonBrightnessUp exec light -A 5 && light -G | cut -d'.' -f1 > $SWAYSOCK.wob + # bindsym XF86MonBrightnessDown exec light -U 5 && light -G | cut -d'.' -f1 > $SWAYSOCK.wob +# + +# SwayFX +# blur on + +# xwayland enable diff --git a/users/tacocat/wayland/sway/config.d/autostart b/users/tacocat/wayland/sway/config.d/autostart new file mode 100755 index 0000000..ef2e24b --- /dev/null +++ b/users/tacocat/wayland/sway/config.d/autostart @@ -0,0 +1,7 @@ +exec nm-applet +# exec waybar +exec gammastep-indicator +exec dunst +#exec swayidle -w \ +# timeout 600 'swaylock -f -c 14171d' \ +# before-sleep 'swaylock -f -c 14171d' diff --git a/users/tacocat/wayland/sway/config.d/windows b/users/tacocat/wayland/sway/config.d/windows new file mode 100755 index 0000000..3a9bca9 --- /dev/null +++ b/users/tacocat/wayland/sway/config.d/windows @@ -0,0 +1,3 @@ +for_window [window_role="pop-up"] floating enable +for_window [window_role="bubble"] floating enable +for_window [window_type="dialog"] floating enable diff --git a/users/tacocat/wayland/waybar/default.nix b/users/tacocat/wayland/waybar/default.nix index 9382ed1..0dd7995 100644 --- a/users/tacocat/wayland/waybar/default.nix +++ b/users/tacocat/wayland/waybar/default.nix @@ -7,10 +7,10 @@ layer = "top"; position = "top"; modules-left = [ - "river/mode" - "river/tags" + "sway/mode" + "sway/workspaces" "custom/arrow10" - "river/window" + "sway/window" ]; modules-right = [ "custom/arrow9" diff --git a/users/tacocat/wayland/waybar/style.css b/users/tacocat/wayland/waybar/style.css index 7b297bc..ae44ba5 100644 --- a/users/tacocat/wayland/waybar/style.css +++ b/users/tacocat/wayland/waybar/style.css @@ -148,7 +148,7 @@ color: @white; } -#tags button { +#workspaces button { /*font-weight: bold;*/ padding-left: 1pt; padding-right: 1pt; @@ -161,12 +161,12 @@ background: @inactive; } -#tags button.focused { +#workspaces button.focused { color: @black; - background: @focused; + background: @inactive; } -#tags button.urgent { +#workspaces button.urgent { color: @black; background: @warning; }