From 83cf37032916aed87b8e1b15a95e55b34f1cf353 Mon Sep 17 00:00:00 2001 From: Daniel Flanagan Date: Fri, 6 Nov 2020 10:56:39 -0600 Subject: [PATCH] Sway workspace/output pinning is broken on desktop again --- apps/{ => de}/kanshi/config | 2 +- apps/de/kanshi/desktop-H-workspaces.sh | 36 ++++++ apps/de/sway/config | 2 +- apps/kanshi/desktop-H-workspaces.sh | 17 --- apps/rofi/config | 6 - apps/rofi/theme | 172 ------------------------- bin/setup-dotfiles | 2 +- 7 files changed, 39 insertions(+), 198 deletions(-) rename apps/{ => de}/kanshi/config (86%) create mode 100755 apps/de/kanshi/desktop-H-workspaces.sh delete mode 100755 apps/kanshi/desktop-H-workspaces.sh delete mode 100644 apps/rofi/config delete mode 100644 apps/rofi/theme diff --git a/apps/kanshi/config b/apps/de/kanshi/config similarity index 86% rename from apps/kanshi/config rename to apps/de/kanshi/config index 1092d09..f2edfbb 100644 --- a/apps/kanshi/config +++ b/apps/de/kanshi/config @@ -2,7 +2,7 @@ profile desktop-H { output "Samsung Electric Company CF791 HTRJ500315" enable mode 3440x1440@100Hz position 1440,560 scale 1 transform normal output "Dell Inc. DELL U2719DC 5DL4QS2" enable mode 2560x1440@60Hz position 0,0 scale 1 transform 270 output "Dell Inc. DELL U2719DC 9DL4QS2" enable mode 2560x1440@60Hz position 4880,0 scale 1 transform 90 - exec "$HOME/.config/lytedev-dotfiles/apps/kanshi/desktop-H-workspaces.sh" + exec "$HOME/.config/lytedev-dotfiles/apps/de/kanshi/desktop-H-workspaces.sh" } profile laptop-solo { diff --git a/apps/de/kanshi/desktop-H-workspaces.sh b/apps/de/kanshi/desktop-H-workspaces.sh new file mode 100755 index 0000000..b7514d2 --- /dev/null +++ b/apps/de/kanshi/desktop-H-workspaces.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env bash + +# kanshi will potentially run this more than once +LOCKFILE="/tmp/lytedev-kanshi-workspace-arranging.lock" +if ! [[ -f $LOCKFILE ]]; then + touch "$LOCKFILE" + sleep 0.1 + echo "L: $(date)" >> /tmp/kanshilog + # TODO: some way to ensure the lock file is cleaned up? + # maybe check if the file is older than a minute? + + move_workspace() { swaymsg workspace "$1"; swaymsg move workspace to "'$2'"; } + setup_output() { out="$1"; shift; while (($#)); do move_workspace "$1" "$out"; shift; done; } + + set -x + # setup_output 'Dell Inc. DELL U2719DC 9DL4QS2' 7 8 9 + # setup_output 'Dell Inc. DELL U2719DC 5DL4QS2' 4 5 6 + # setup_output 'Samsung Electric Company CF791 HTRJ500315' 1 2 3 + + setup_output 'Dell Inc. DELL U2719DC 9DL4QS2' 9 8 + setup_output 'Dell Inc. DELL U2719DC 5DL4QS2' 6 5 + setup_output 'Samsung Electric Company CF791 HTRJ500315' 3 2 + setup_output 'Dell Inc. DELL U2719DC 9DL4QS2' 7 + setup_output 'Dell Inc. DELL U2719DC 5DL4QS2' 4 + setup_output 'Samsung Electric Company CF791 HTRJ500315' 1 + + # setup_output 'Dell Inc. DELL U2719DC 9DL4QS2' 8 9 7 + # setup_output 'Dell Inc. DELL U2719DC 5DL4QS2' 5 6 4 + # setup_output 'Samsung Electric Company CF791 HTRJ500315' 2 3 1 + + rm "$LOCKFILE" +else + echo "F: $(date)" >> /tmp/kanshilog + echo "Already locked: $LOCKFILE" >&2 + exit 1 +fi diff --git a/apps/de/sway/config b/apps/de/sway/config index 1e5b5f8..dab9471 100644 --- a/apps/de/sway/config +++ b/apps/de/sway/config @@ -154,7 +154,7 @@ client.focused #66d9ef #66d9ef #66d9ef #66d9ef #66d9ef client.focused_inactive #111111 #111111 #ffffff #111111 #111111 client.unfocused #111111 #111111 #ffffff #111111 #111111 -exec_always kanshi +exec_always 'killall kanshi; kanshi &>/tmp/kanshilog2' exec mako exec_always notify-send -a "Sway" -i ~/.wallpaper "Sway configuration loaded." diff --git a/apps/kanshi/desktop-H-workspaces.sh b/apps/kanshi/desktop-H-workspaces.sh deleted file mode 100755 index 520959a..0000000 --- a/apps/kanshi/desktop-H-workspaces.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env bash - -# kanshi will potentially run this more than once -LOCKFILE="/tmp/kanshi-workspace-arranging.lock" -if ! (set -o noclobber; echo > "$LOCKFILE" &>/dev/null) &>/dev/null; then echo "Already locked: $LOCKFILE" >&2; exit 0; fi -touch "$LOCKFILE" -# TODO: some way to ensure the lock file is cleaned up? -# maybe check if the file is older than a minute? - -move_workspace() { swaymsg workspace "$1"; swaymsg move workspace to "'$2'"; } -setup_output() { out="$1"; shift; while (($#)); do move_workspace "$1" "$out"; shift; done; } - -setup_output 'Dell Inc. DELL U2719DC 9DL4QS2' 9 8 7 -setup_output 'Dell Inc. DELL U2719DC 5DL4QS2' 6 5 4 -setup_output 'Samsung Electric Company CF791 HTRJ500315' 3 2 1 - -rm "$LOCKFILE" diff --git a/apps/rofi/config b/apps/rofi/config deleted file mode 100644 index c44c453..0000000 --- a/apps/rofi/config +++ /dev/null @@ -1,6 +0,0 @@ -rofi.lines: 10 -rofi.width: 25 -rofi.matching: fuzzy -rofi.separator-style: none -rofi.hide-scrollbar: true -rofi.line-margin: 5 diff --git a/apps/rofi/theme b/apps/rofi/theme deleted file mode 100644 index e5a7355..0000000 --- a/apps/rofi/theme +++ /dev/null @@ -1,172 +0,0 @@ -/** - * rofi -dump-theme output. - * Rofi version: 1.6.0 - **/ -* { - red: rgba ( 220, 50, 47, 100 % ); - selected-active-foreground: var(background); - lightfg: rgba ( 88, 104, 117, 100 % ); - separatorcolor: var(foreground); - urgent-foreground: var(red); - alternate-urgent-background: var(lightbg); - lightbg: rgba ( 238, 232, 213, 100 % ); - background-color: rgba ( 0, 0, 0, 0 % ); - border-color: var(foreground); - normal-background: var(background); - selected-urgent-background: var(red); - alternate-active-background: var(lightbg); - spacing: 2; - blue: rgba ( 38, 139, 210, 100 % ); - alternate-normal-foreground: var(foreground); - urgent-background: var(background); - selected-normal-foreground: var(lightbg); - active-foreground: var(blue); - background: rgba ( 253, 246, 227, 100 % ); - selected-active-background: var(blue); - active-background: var(background); - selected-normal-background: var(lightfg); - alternate-normal-background: var(lightbg); - foreground: rgba ( 0, 43, 54, 100 % ); - selected-urgent-foreground: var(background); - normal-foreground: var(foreground); - alternate-urgent-foreground: var(red); - alternate-active-foreground: var(blue); -} -element { - padding: 1px ; - spacing: 5px ; - border: 0; -} -element normal.normal { - background-color: var(normal-background); - text-color: var(normal-foreground); -} -element normal.urgent { - background-color: var(urgent-background); - text-color: var(urgent-foreground); -} -element normal.active { - background-color: var(active-background); - text-color: var(active-foreground); -} -element selected.normal { - background-color: var(selected-normal-background); - text-color: var(selected-normal-foreground); -} -element selected.urgent { - background-color: var(selected-urgent-background); - text-color: var(selected-urgent-foreground); -} -element selected.active { - background-color: var(selected-active-background); - text-color: var(selected-active-foreground); -} -element alternate.normal { - background-color: var(alternate-normal-background); - text-color: var(alternate-normal-foreground); -} -element alternate.urgent { - background-color: var(alternate-urgent-background); - text-color: var(alternate-urgent-foreground); -} -element alternate.active { - background-color: var(alternate-active-background); - text-color: var(alternate-active-foreground); -} -element-text { - background-color: rgba ( 0, 0, 0, 0 % ); - highlight: inherit; - text-color: inherit; -} -element-icon { - background-color: rgba ( 0, 0, 0, 0 % ); - size: 1.2000ch ; - text-color: inherit; -} -window { - padding: 0; - background-color: var(background); - border: 0; - font: 'Iosevka Term'; -} -mainbox { - padding: 0; - border: 0; -} -message { - padding: 1px ; - border-color: var(separatorcolor); - border: 0px ; -} -textbox { - text-color: var(foreground); -} -listview { - padding: 2px 0px 0px ; - scrollbar: false; - border-color: var(separatorcolor); - spacing: 5px ; - fixed-height: 0; - border: 0px ; -} -scrollbar { - width: 4px ; - padding: 0; - handle-width: 8px ; - border: 0; - handle-color: var(normal-foreground); -} -sidebar { - border-color: var(separatorcolor); - border: 2px dash 0px 0px ; -} -button { - spacing: 0; - text-color: var(normal-foreground); -} -button selected { - background-color: var(selected-normal-background); - text-color: var(selected-normal-foreground); -} -num-filtered-rows { - expand: false; - text-color: rgba ( 128, 128, 128, 100 % ); -} -num-rows { - expand: false; - text-color: rgba ( 128, 128, 128, 100 % ); -} -textbox-num-sep { - expand: false; - str: "/"; - text-color: rgba ( 128, 128, 128, 100 % ); -} -inputbar { - padding: 1px ; - spacing: 0px ; - text-color: var(normal-foreground); - children: [ prompt,textbox-prompt-colon,entry,num-filtered-rows,textbox-num-sep,num-rows,case-indicator ]; -} -case-indicator { - spacing: 0; - text-color: var(normal-foreground); -} -entry { - placeholder-color: rgba ( 128, 128, 128, 100 % ); - spacing: 0; - placeholder: "Type to filter"; - text-color: var(normal-foreground); -} -prompt { - spacing: 0; - text-color: var(normal-foreground); -} -textbox-prompt-colon { - margin: 0px 0.3000em 0.0000em 0.0000em ; - expand: false; - str: ":"; - text-color: inherit; -} -mode-switcher { - border: 0px ; -} diff --git a/bin/setup-dotfiles b/bin/setup-dotfiles index aeac6c4..8344469 100755 --- a/bin/setup-dotfiles +++ b/bin/setup-dotfiles @@ -124,7 +124,7 @@ links=( "env/nix/pkgs" "$XDG_CONFIG_HOME/nixpkgs" # Kanshi configuration - "apps/kanshi" "$XDG_CONFIG_HOME/kanshi" + "apps/de/kanshi" "$XDG_CONFIG_HOME/kanshi" ) # TODO: pass interactive?