From f242b3edf135eb7a14ab4759709dccf901c6db23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Max=20K=C3=A4nner?= Date: Tue, 9 Sep 2025 16:49:53 +0200 Subject: [PATCH] simplify kanshi config --- modules/home/sway/kanshi.nix | 73 ++++++++++++++++++++++++------------ 1 file changed, 48 insertions(+), 25 deletions(-) diff --git a/modules/home/sway/kanshi.nix b/modules/home/sway/kanshi.nix index 8d29ef7..09470f8 100644 --- a/modules/home/sway/kanshi.nix +++ b/modules/home/sway/kanshi.nix @@ -17,6 +17,12 @@ in { bg1080 = bgdir + "/bg1080.png"; bg1080vert = bgdir + "/bg1080vert.png"; bg4k = bgdir + "/bg4k.png"; + sway_commands = commands: "${pkgs.sway}/bin/swaymsg '${lib.strings.concatStringsSep ", " commands}'"; + workspace = workspace: monitor: [ + ''workspace "${workspace}" output "${monitor}"'' + ''workspace --no-auto-back-and-forth ${workspace}'' + ''move workspace to "${monitor}"'' + ]; luhbots_workstation = settings: { profile.outputs = [ { @@ -43,15 +49,19 @@ in { } ]; profile.exec = [ - "${pkgs.sway}/bin/swaymsg 'workspace \"main\" output \"${settings.horizontal.name}\", workspace --no-auto-back-and-forth main, move workspace to \"${settings.horizontal.name}\", workspace back_and_forth'" - "${pkgs.sway}/bin/swaymsg 'workspace \"term\" output \"${settings.vertical.name}\", workspace --no-auto-back-and-forth term, move workspace to \"${settings.vertical.name}\", workspace back_and_forth'" - "${pkgs.sway}/bin/swaymsg 'workspace \"msg\" output eDP-1, workspace --no-auto-back-and-forth msg, move workspace to eDP-1, workspace back_and_forth'" - "${pkgs.sway}/bin/swaymsg 'workspace \"msg\" output eDP-1, workspace --no-auto-back-and-forth music, move workspace to eDP-1, workspace back_and_forth'" - "${pkgs.sway}/bin/swaymsg 'workspace \"5\" output \"${settings.horizontal.name}\", workspace --no-auto-back-and-forth 5, move workspace to \"${settings.horizontal.name}\", workspace back_and_forth'" - "${pkgs.sway}/bin/swaymsg 'output \"eDP-1\" bg ${bg1080} fit'" - "${pkgs.sway}/bin/swaymsg 'output \"${settings.horizontal.name}\" bg ${bg4k} fit'" - "${pkgs.sway}/bin/swaymsg 'output \"${settings.vertical.name}\" bg ${bg1080vert} fit'" - "${pkgs.sway}/bin/swaymsg 'workspace --no-auto-back-and-forth msg, workspace --no-auto-back-and-forth term, workspace --no-auto-back-and-forth main'" + (sway_commands ( + [ + "output eDP-1 bg ${bg1080} fit" + "output \"${settings.horizontal.name}\" bg ${bg4k} fit" + "output \"${settings.vertical.name}\" bg ${bg1080vert} fit" + ] + ++ (workspace "obsidian" settings.horizontal.name) + ++ (workspace "5" settings.horizontal.name) + ++ (workspace "music" "eDP-1") + ++ (workspace "msg" "eDP-1") + ++ (workspace "term" settings.vertical.name) + ++ (workspace "main" settings.horizontal.name) + )) ]; }; in { @@ -153,11 +163,15 @@ in { } ]; profile.exec = [ - "${pkgs.sway}/bin/swaymsg workspace main; move workspace to HDMI-A-1; workspace back_and_forth" - "${pkgs.sway}/bin/swaymsg workspace term; move workspace to eDP-1; workspace back_and_forth" - "${pkgs.sway}/bin/swaymsg workspace msg; move workspace to eDP-1; workspace back_and_forth" - "${pkgs.sway}/bin/swaymsg workspace music; move workspace to eDP-1; workspace back_and_forth" - "${pkgs.sway}/bin/swaymsg workspace 5; move workspace to HDMI-A-1; workspace back_and_forth" + (sway_commands + ( + (workspace "obsidian" "HDMI-A-1") + ++ (workspace "5" "HDMI-A-1") + ++ (workspace "music" "eDP-1") + ++ (workspace "msg" "eDP-1") + ++ (workspace "term" "eDP-1") + ++ (workspace "main" "HDMI-A-1") + )) ]; } { @@ -172,12 +186,17 @@ in { } ]; profile.exec = [ - "${pkgs.sway}/bin/swaymsg workspace --no-auto-back-and-forth main; move workspace to eDP-1; workspace back_and_forth" - "${pkgs.sway}/bin/swaymsg workspace --no-auto-back-and-forth term; move workspace to eDP-1; workspace back_and_forth" - "${pkgs.sway}/bin/swaymsg workspace --no-auto-back-and-forth msg; move workspace to eDP-1; workspace back_and_forth" - "${pkgs.sway}/bin/swaymsg workspace --no-auto-back-and-forth music; move workspace to eDP-1; workspace back_and_forth" - "${pkgs.sway}/bin/swaymsg workspace --no-auto-back-and-forth 5; move workspace to eDP-1; workspace back_and_forth" - "${pkgs.sway}/bin/swaymsg workspace --no-auto-back-and-forth mirror; move workspace to HDMI-A-1; exec ${pkgs.wl-mirror}/bin/wl-mirror eDP-1; workspace back_and_forth" + (sway_commands + ( + (workspace "mirror" "HDMI-A-1") + ++ ["exec ${pkgs.wl-mirror}/bin/wl-present mirror eDP-1 --fullscreen-output HDMI-A-1 --fullscreen"] + ++ (workspace "obsidian" "eDP-1") + ++ (workspace "5" "eDP-1") + ++ (workspace "music" "eDP-1") + ++ (workspace "msg" "eDP-1") + ++ (workspace "term" "eDP-1") + ++ (workspace "main" "eDP-1") + )) ]; } { @@ -192,11 +211,15 @@ in { } ]; profile.exec = [ - "${pkgs.sway}/bin/swaymsg workspace --no-auto-back-and-forth main; move workspace to '\"ViewSonic Corporation VG2448 V5E201864188\"'; workspace back_and_forth" - "${pkgs.sway}/bin/swaymsg workspace --no-auto-back-and-forth term; move workspace to eDP-1; workspace back_and_forth" - "${pkgs.sway}/bin/swaymsg workspace --no-auto-back-and-forth msg; move workspace to eDP-1; workspace back_and_forth" - "${pkgs.sway}/bin/swaymsg workspace --no-auto-back-and-forth music; move workspace to eDP-1; workspace back_and_forth" - "${pkgs.sway}/bin/swaymsg workspace --no-auto-back-and-forth 5; move workspace to '\"ViewSonic Corporation VG2448 V5E201864188\"'; workspace back_and_forth" + (sway_commands + ( + (workspace "obsidian" "ViewSonic Corporation VG2448 V5E201864188") + ++ (workspace "5" "ViewSonic Corporation VG2448 V5E201864188") + ++ (workspace "music" "eDP-1") + ++ (workspace "msg" "eDP-1") + ++ (workspace "term" "eDP-1") + ++ (workspace "main" "ViewSonic Corporation VG2448 V5E201864188") + )) ]; } ];