Sway workspace/output pinning is broken on desktop again
This commit is contained in:
parent
4195d86788
commit
83cf370329
|
@ -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 {
|
36
apps/de/kanshi/desktop-H-workspaces.sh
Executable file
36
apps/de/kanshi/desktop-H-workspaces.sh
Executable file
|
@ -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
|
|
@ -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."
|
||||
|
||||
|
|
|
@ -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"
|
|
@ -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
|
172
apps/rofi/theme
172
apps/rofi/theme
|
@ -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 ;
|
||||
}
|
|
@ -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?
|
||||
|
|
Reference in a new issue