1
0
Fork 0
forked from Bun/nixos-config

The big variable overhaul

This commit is contained in:
Jimbo 2024-09-23 16:22:01 -04:00
parent 3f0a235dc8
commit 6dab8fc029
36 changed files with 269 additions and 326 deletions

View file

@ -1,12 +1,7 @@
{config, pkgs, ...}: {
{config, pkgs, outputs, ...}: {
wayland.windowManager.sway = {
config = let
border = import ../common/border.nix;
colors = import ../common/colors.nix;
displays = import ../common/displays.nix;
nixcfg = import ../common/nixcfg.nix;
ws = import ./workspaces.nix;
# Set default modifier and variables
primeMod = "Mod4";
secMod = "Mod1";
@ -21,9 +16,9 @@
# Get the current border style of the focused window
current_style=$(swaymsg -t get_tree | jq -r '.. | select(.focused?).border')
# Toggle between "normal" (default) and "pixel ${border.weight}" border styles
# Toggle between "normal" (default) and "pixel ${outputs.look.border.string}" border styles
if [ "$current_style" == "none" ]; then
swaymsg "sticky disable, border pixel ${border.weight}"
swaymsg "sticky disable, border pixel ${outputs.look.border.string}"
else
swaymsg "sticky enable, border none"
fi
@ -33,7 +28,7 @@
swayTools = pkgs.writeScript "swaytools" ''
# List the app name and whether or not it uses wayland
swayprop() {
selected_window=$(swaymsg -t get_tree | jq -r '.. | select(.pid? and .visible?) | "\(.rect.x),\(.rect.y) \(.rect.width)x\(.rect.height)"' | slurp -r -c ${colors.prime} -B 00000066 -b 00000000)
selected_window=$(swaymsg -t get_tree | jq -r '.. | select(.pid? and .visible?) | "\(.rect.x),\(.rect.y) \(.rect.width)x\(.rect.height)"' | slurp -r -c ${outputs.look.colors.prime} -B 00000066 -b 00000000)
if [ -n "$selected_window" ]; then
app_id=$(swaymsg -t get_tree | jq -r '.. | select(.pid? and .visible?) | select("\(.rect.x),\(.rect.y) \(.rect.width)x\(.rect.height)" == "'"$selected_window"'") | .app_id')
system=$(sed 's/xdg_shell/Wayland/g; s/xwayland/Xorg/g' < <(swaymsg -t get_tree | jq -r '.. | select(.pid? and .visible?) | select("\(.rect.x),\(.rect.y) \(.rect.width)x\(.rect.height)" == "'"$selected_window"'") | .shell'))
@ -43,7 +38,7 @@
# Kill a selected window
swaykill() {
selected_window=$(swaymsg -t get_tree | jq -r '.. | select(.pid? and .visible?) | "\(.rect.x),\(.rect.y) \(.rect.width)x\(.rect.height)"' | slurp -r -c ${colors.prime} -B 00000066 -b 00000000)
selected_window=$(swaymsg -t get_tree | jq -r '.. | select(.pid? and .visible?) | "\(.rect.x),\(.rect.y) \(.rect.width)x\(.rect.height)"' | slurp -r -c ${outputs.look.colors.prime} -B 00000066 -b 00000000)
if [ -n "$selected_window" ]; then
pid=$(swaymsg -t get_tree | jq -r '.. | select(.pid? and .visible?) | select("\(.rect.x),\(.rect.y) \(.rect.width)x\(.rect.height)" == "'"$selected_window"'") | .pid')
kill -9 "$pid"
@ -83,7 +78,7 @@
"${primeMod}+${secMod}+Ctrl+r" = ''exec rofiscripts --resolutions'';
# Open NixOS configuration files
"${primeMod}+F12" = ''exec foot ${nixcfg.open} | ${sendNotif} "Nix Config"'';
"${primeMod}+F12" = ''exec foot ${outputs.cmd.nixcfg} | ${sendNotif} "Nix Config"'';
# Terminal, rofi, clipmenu, media script, power menu, show/hide waybar
"${primeMod}+Return" = ''exec foot'';
@ -164,50 +159,50 @@
"${primeMod}+Shift+r" = ''reload'';
# Switch to workspaces
"${primeMod}+grave" = ''workspace ${ws.w0}'';
"${primeMod}+1" = ''workspace ${ws.w1}'';
"${primeMod}+2" = ''workspace ${ws.w2}'';
"${primeMod}+3" = ''workspace ${ws.w3}'';
"${primeMod}+4" = ''workspace ${ws.w4}'';
"${primeMod}+5" = ''workspace ${ws.w5}'';
"${primeMod}+6" = ''workspace ${ws.w6}'';
"${primeMod}+7" = ''workspace ${ws.w7}'';
"${primeMod}+8" = ''workspace ${ws.w8}'';
"${primeMod}+9" = ''workspace ${ws.w9}'';
"${primeMod}+grave" = ''workspace ${outputs.ws.w0}'';
"${primeMod}+1" = ''workspace ${outputs.ws.w1}'';
"${primeMod}+2" = ''workspace ${outputs.ws.w2}'';
"${primeMod}+3" = ''workspace ${outputs.ws.w3}'';
"${primeMod}+4" = ''workspace ${outputs.ws.w4}'';
"${primeMod}+5" = ''workspace ${outputs.ws.w5}'';
"${primeMod}+6" = ''workspace ${outputs.ws.w6}'';
"${primeMod}+7" = ''workspace ${outputs.ws.w7}'';
"${primeMod}+8" = ''workspace ${outputs.ws.w8}'';
"${primeMod}+9" = ''workspace ${outputs.ws.w9}'';
# Switch to alternate workspaces
"${secMod}+F1" = ''workspace ${ws.w1a}'';
"${secMod}+F2" = ''workspace ${ws.w2a}'';
"${secMod}+F3" = ''workspace ${ws.w3a}'';
"${secMod}+F4" = ''workspace ${ws.w4a}'';
"${secMod}+F5" = ''workspace ${ws.w5a}'';
"${secMod}+F6" = ''workspace ${ws.w6a}'';
"${secMod}+F7" = ''workspace ${ws.w7a}'';
"${secMod}+F8" = ''workspace ${ws.w8a}'';
"${secMod}+F9" = ''workspace ${ws.w9a}'';
"${secMod}+F1" = ''workspace ${outputs.ws.w1a}'';
"${secMod}+F2" = ''workspace ${outputs.ws.w2a}'';
"${secMod}+F3" = ''workspace ${outputs.ws.w3a}'';
"${secMod}+F4" = ''workspace ${outputs.ws.w4a}'';
"${secMod}+F5" = ''workspace ${outputs.ws.w5a}'';
"${secMod}+F6" = ''workspace ${outputs.ws.w6a}'';
"${secMod}+F7" = ''workspace ${outputs.ws.w7a}'';
"${secMod}+F8" = ''workspace ${outputs.ws.w8a}'';
"${secMod}+F9" = ''workspace ${outputs.ws.w9a}'';
# Move window to and focus new workspace
"${primeMod}+Shift+grave" = ''move container to workspace ${ws.w0}; workspace ${ws.w0}'';
"${primeMod}+Shift+1" = ''move container to workspace ${ws.w1}; workspace ${ws.w1}'';
"${primeMod}+Shift+2" = ''move container to workspace ${ws.w2}; workspace ${ws.w2}'';
"${primeMod}+Shift+3" = ''move container to workspace ${ws.w3}; workspace ${ws.w3}'';
"${primeMod}+Shift+4" = ''move container to workspace ${ws.w4}; workspace ${ws.w4}'';
"${primeMod}+Shift+5" = ''move container to workspace ${ws.w5}; workspace ${ws.w5}'';
"${primeMod}+Shift+6" = ''move container to workspace ${ws.w6}; workspace ${ws.w6}'';
"${primeMod}+Shift+7" = ''move container to workspace ${ws.w7}; workspace ${ws.w7}'';
"${primeMod}+Shift+8" = ''move container to workspace ${ws.w8}; workspace ${ws.w8}'';
"${primeMod}+Shift+9" = ''move container to workspace ${ws.w9}; workspace ${ws.w9}'';
"${primeMod}+Shift+grave" = ''move container to workspace ${outputs.ws.w0}; workspace ${outputs.ws.w0}'';
"${primeMod}+Shift+1" = ''move container to workspace ${outputs.ws.w1}; workspace ${outputs.ws.w1}'';
"${primeMod}+Shift+2" = ''move container to workspace ${outputs.ws.w2}; workspace ${outputs.ws.w2}'';
"${primeMod}+Shift+3" = ''move container to workspace ${outputs.ws.w3}; workspace ${outputs.ws.w3}'';
"${primeMod}+Shift+4" = ''move container to workspace ${outputs.ws.w4}; workspace ${outputs.ws.w4}'';
"${primeMod}+Shift+5" = ''move container to workspace ${outputs.ws.w5}; workspace ${outputs.ws.w5}'';
"${primeMod}+Shift+6" = ''move container to workspace ${outputs.ws.w6}; workspace ${outputs.ws.w6}'';
"${primeMod}+Shift+7" = ''move container to workspace ${outputs.ws.w7}; workspace ${outputs.ws.w7}'';
"${primeMod}+Shift+8" = ''move container to workspace ${outputs.ws.w8}; workspace ${outputs.ws.w8}'';
"${primeMod}+Shift+9" = ''move container to workspace ${outputs.ws.w9}; workspace ${outputs.ws.w9}'';
# Move window to and focus new alternate workspace
"${secMod}+Shift+F1" = ''move container to workspace ${ws.w1a}; workspace ${ws.w1a}'';
"${secMod}+Shift+F2" = ''move container to workspace ${ws.w2a}; workspace ${ws.w2a}'';
"${secMod}+Shift+F3" = ''move container to workspace ${ws.w3a}; workspace ${ws.w3a}'';
"${secMod}+Shift+F4" = ''move container to workspace ${ws.w4a}; workspace ${ws.w4a}'';
"${secMod}+Shift+F5" = ''move container to workspace ${ws.w5a}; workspace ${ws.w5a}'';
"${secMod}+Shift+F6" = ''move container to workspace ${ws.w6a}; workspace ${ws.w6a}'';
"${secMod}+Shift+F7" = ''move container to workspace ${ws.w7a}; workspace ${ws.w7a}'';
"${secMod}+Shift+F8" = ''move container to workspace ${ws.w8a}; workspace ${ws.w8a}'';
"${secMod}+Shift+F9" = ''move container to workspace ${ws.w9a}; workspace ${ws.w9a}'';
"${secMod}+Shift+F1" = ''move container to workspace ${outputs.ws.w1a}; workspace ${outputs.ws.w1a}'';
"${secMod}+Shift+F2" = ''move container to workspace ${outputs.ws.w2a}; workspace ${outputs.ws.w2a}'';
"${secMod}+Shift+F3" = ''move container to workspace ${outputs.ws.w3a}; workspace ${outputs.ws.w3a}'';
"${secMod}+Shift+F4" = ''move container to workspace ${outputs.ws.w4a}; workspace ${outputs.ws.w4a}'';
"${secMod}+Shift+F5" = ''move container to workspace ${outputs.ws.w5a}; workspace ${outputs.ws.w5a}'';
"${secMod}+Shift+F6" = ''move container to workspace ${outputs.ws.w6a}; workspace ${outputs.ws.w6a}'';
"${secMod}+Shift+F7" = ''move container to workspace ${outputs.ws.w7a}; workspace ${outputs.ws.w7a}'';
"${secMod}+Shift+F8" = ''move container to workspace ${outputs.ws.w8a}; workspace ${outputs.ws.w8a}'';
"${secMod}+Shift+F9" = ''move container to workspace ${outputs.ws.w9a}; workspace ${outputs.ws.w9a}'';
# Change focus across windows
"${primeMod}+Up" = ''focus up'';
@ -216,9 +211,9 @@
"${primeMod}+Right" = ''focus right'';
# Switch focus across outputs
"${primeMod}+j" = ''focus output ${displays.d2}'';
"${primeMod}+k" = ''focus output ${displays.d1}'';
"${primeMod}+l" = ''focus output ${displays.d3}'';
"${primeMod}+j" = ''focus output ${outputs.displays.d2}'';
"${primeMod}+k" = ''focus output ${outputs.displays.d1}'';
"${primeMod}+l" = ''focus output ${outputs.displays.d3}'';
# Move focused window
"${primeMod}+Shift+Up" = ''move up ${resizeAmount} px'';
@ -227,9 +222,9 @@
"${primeMod}+Shift+Right" = ''move right ${resizeAmount} px'';
# Move window across outputs
"${primeMod}+Shift+j" = ''move output ${displays.d2}; focus output ${displays.d2}'';
"${primeMod}+Shift+k" = ''move output ${displays.d1}; focus output ${displays.d1}'';
"${primeMod}+Shift+l" = ''move output ${displays.d3}; focus output ${displays.d3}'';
"${primeMod}+Shift+j" = ''move output ${outputs.displays.d2}; focus output ${outputs.displays.d2}'';
"${primeMod}+Shift+k" = ''move output ${outputs.displays.d1}; focus output ${outputs.displays.d1}'';
"${primeMod}+Shift+l" = ''move output ${outputs.displays.d3}; focus output ${outputs.displays.d3}'';
# Change focus between floating/tiled, toggle floating
"${primeMod}+space" = ''focus mode_toggle'';