about summary refs log tree commit diff
path: root/modules/workstation/windowing
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2019-03-11 00:37:07 +0000
committerAlyssa Ross <hi@alyssa.is>2019-03-11 00:38:51 +0000
commit8779e0045c9f218caeb1dd1bcdc87e2715ed5be5 (patch)
tree0af4a2bee81f6b49507c7c7d97be9cdb63a6ef20 /modules/workstation/windowing
parent1318b9a2f3fc7f7f5dfc3bc8d4a2f243a7306de3 (diff)
downloadnixlib-8779e0045c9f218caeb1dd1bcdc87e2715ed5be5.tar
nixlib-8779e0045c9f218caeb1dd1bcdc87e2715ed5be5.tar.gz
nixlib-8779e0045c9f218caeb1dd1bcdc87e2715ed5be5.tar.bz2
nixlib-8779e0045c9f218caeb1dd1bcdc87e2715ed5be5.tar.lz
nixlib-8779e0045c9f218caeb1dd1bcdc87e2715ed5be5.tar.xz
nixlib-8779e0045c9f218caeb1dd1bcdc87e2715ed5be5.tar.zst
nixlib-8779e0045c9f218caeb1dd1bcdc87e2715ed5be5.zip
modules/sway: fix broken config
Diffstat (limited to 'modules/workstation/windowing')
-rw-r--r--modules/workstation/windowing/sway/config.in4
-rw-r--r--modules/workstation/windowing/sway/default.nix4
-rw-r--r--modules/workstation/windowing/sway/status_command.in14
3 files changed, 16 insertions, 6 deletions
diff --git a/modules/workstation/windowing/sway/config.in b/modules/workstation/windowing/sway/config.in
index 8c76eb877ce8..7b4e44f5c350 100644
--- a/modules/workstation/windowing/sway/config.in
+++ b/modules/workstation/windowing/sway/config.in
@@ -46,8 +46,8 @@ bindsym $mod+Shift+$down move down
 bindsym $mod+Shift+$up move up
 bindsym $mod+Shift+$right move right
 
-bindsym $mod+g exec swaymsg workspace @choose_workspace@
-bindsym $mod+Shift+g exec swaymsg move container to workspace @choose_workspace@
+bindsym $mod+g exec swaymsg workspace "$(@choose_workspace@)"
+bindsym $mod+Shift+g exec swaymsg move container to workspace "$(@choose_workspace@)"
 
 bindsym $mod+b splith
 bindsym $mod+v splitv
diff --git a/modules/workstation/windowing/sway/default.nix b/modules/workstation/windowing/sway/default.nix
index 53287ec5c5e5..4959b5164f01 100644
--- a/modules/workstation/windowing/sway/default.nix
+++ b/modules/workstation/windowing/sway/default.nix
@@ -1,7 +1,9 @@
 { pkgs, ... }:
 
 let
-  config = pkgs.runCommand "sway-config" { inherit status_command; } ''
+  config = pkgs.runCommand "sway-config" {
+    inherit status_command choose_workspace;
+  } ''
     substituteAll ${./config.in} $out
   '';
 
diff --git a/modules/workstation/windowing/sway/status_command.in b/modules/workstation/windowing/sway/status_command.in
index 58a77bcdfa6d..15c1142cac37 100644
--- a/modules/workstation/windowing/sway/status_command.in
+++ b/modules/workstation/windowing/sway/status_command.in
@@ -1,6 +1,10 @@
 #! @execline@/bin/execlineb
 
-loopwhilex {
+loopwhilex
+
+# We need to capture the whole status line, and then echo it all at
+# once, to work around https://github.com/swaywm/sway/issues/3857.
+backtick -i -n line {
   foreground {
     backtick -i -n status { cat /sys/class/power_supply/BAT0/status }
     importas -i -u status status
@@ -8,6 +12,7 @@ loopwhilex {
     ifelse { test $status = Charging }
     { printf "↑" }
 
+    if { test $status = Discharging }
     printf "↓"
   }
 
@@ -19,6 +24,9 @@ loopwhilex {
   foreground { printf "%%  " }
 
   foreground { date "+%Y-%m-%d %H:%M:%S" }
-
-  sleep 1
 }
+importas -i -u line line
+
+foreground { echo $line }
+
+sleep 1