Skip to content

Commit

Permalink
update yabai v4.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
kvaps committed Feb 2, 2022
1 parent 9eaa8a4 commit 92f9f64
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 27 deletions.
49 changes: 26 additions & 23 deletions skhd/.config/skhd/skhdrc
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,17 @@ f12: skhd -k 'delete'
cmd - return : open -n -a "/Applications/Alacritty.app"
alt - return : open -n -a "/Applications/Alacritty.app"

### alt - 0x32: open -a Telegram
### alt - 1: open -a Firefox
### #alt - 2: open -a Alacritty
### alt - 2: open -a iTerm
### alt - 3: open -a Finder
### alt - 4: open -a KeepassXC

# Switch sticky windows
# 0x32: ` (tilde)
#alt - 0x32: yabai -m window --focus "$(yabai -m query --windows | jq -re "[sort_by(.id) | .[] | select(.app == (\"Firefox\", \"Telegram\")) | .id] | nth(1 + index($(yabai -m query --windows --window | jq '.id'))) // first")"
cmd - 0x32: yabai -m window --focus "$(yabai -m query --windows | jq -re "[ [.[] | select(.sticky==1)] | unique_by(.id) | sort_by(.id)[] | .id ] | nth(1 + index($(yabai -m query --windows --window | jq '.id'))) // first")"
cmd - 0x32: yabai -m window --focus "$(yabai -m query --windows --space | jq -re "[ [.[] | select(.\"is-sticky\")] | unique_by(.id) | sort_by(.id)[] | .id ] | nth(1 + index($(yabai -m query --windows --window | jq '.id'))) // first")"



Expand Down Expand Up @@ -50,36 +56,33 @@ ralt + shift - z : skhd -t 'Ž'


# fast focus desktop
#cmd - left : yabai -m space --focus $(yabai -m query --spaces --display | jq -r 'sort_by(.index) | (.[] | select(.focused==1)).index as $cur | [(.[]|select(.index == $cur-1)), last] | first.index')
#cmd - right : yabai -m space --focus $(yabai -m query --spaces --display | jq -r 'sort_by(.index) | (.[] | select(.focused==1)).index as $cur | [(.[]|select(.index == $cur+1)), first] | first.index')
#cmd - left : yabai -m space --focus $(yabai -m query --spaces --display | jq -r 'sort_by(.index) | (.[] | select(."has-focus"==true)).index as $cur | [(.[]|select(.index == $cur-1)), last] | first.index')
#cmd - right : yabai -m space --focus $(yabai -m query --spaces --display | jq -r 'sort_by(.index) | (.[] | select(."has-focus"==true)).index as $cur | [(.[]|select(.index == $cur+1)), first] | first.index')
#cmd - down : yabai -m display --focus prev || yabai -m display --focus last
#cmd - up : yabai -m display --focus next || yabai -m display --focus first
cmd - escape : yabai -m display --focus next || yabai -m display --focus first

# Move focus between unsticky windows
cmd - 1 : yabai -m space --focus $(yabai -m query --displays --display | jq '.spaces[0]'); yabai -m window --focus $(yabai -m query --windows --space | jq -r '[.[]|select(.sticky==0)] | sort_by(.id) | to_entries | (.[]|select(.value.focused==1)).key as $cur | [(.[]|select(.key==$cur)), first] | first.value.id')
cmd - 2 : yabai -m space --focus $(yabai -m query --displays --display | jq '.spaces[1]'); yabai -m window --focus $(yabai -m query --windows --space | jq -r '[.[]|select(.sticky==0)] | sort_by(.id) | to_entries | (.[]|select(.value.focused==1)).key as $cur | [(.[]|select(.key==$cur)), first] | first.value.id')
cmd - 1 : yabai -m space --focus $(yabai -m query --displays --display | jq '.spaces[0]'); yabai -m window --focus $(yabai -m query --windows --space | jq -r '[.[]|select(."is-sticky"==true)] | sort_by(.id) | to_entries | (.[]|select(.value."has-focus"==true)).key as $cur | [(.[]|select(.key==$cur)), first] | first.value.id')
cmd - 2 : yabai -m space --focus $(yabai -m query --displays --display | jq '.spaces[1]'); yabai -m window --focus $(yabai -m query --windows --space | jq -r '[.[]|select(."is-sticky"==true)] | sort_by(.id) | to_entries | (.[]|select(.value."has-focus"==true)).key as $cur | [(.[]|select(.key==$cur)), first] | first.value.id')

cmd - 3 : yabai -m space --focus $(yabai -m query --displays --display | jq '.spaces[2]'); yabai -m window --focus $(yabai -m query --windows --space | jq -r '[.[]|select(.sticky==0)] | sort_by(.id) | to_entries | (.[]|select(.value.focused==1)).key as $cur | [(.[]|select(.key==$cur)), first] | first.value.id')
cmd - 3 : yabai -m space --focus $(yabai -m query --displays --display | jq '.spaces[2]'); yabai -m window --focus $(yabai -m query --windows --space | jq -r '[.[]|select(."is-sticky"==true)] | sort_by(.id) | to_entries | (.[]|select(.value."has-focus"==true)).key as $cur | [(.[]|select(.key==$cur)), first] | first.value.id')

cmd - 4 : yabai -m space --focus $(yabai -m query --displays --display | jq '.spaces[3]'); yabai -m window --focus $(yabai -m query --windows --space | jq -r '[.[]|select(.sticky==0)] | sort_by(.id) | to_entries | (.[]|select(.value.focused==1)).key as $cur | [(.[]|select(.key==$cur)), first] | first.value.id')
cmd - 4 : yabai -m space --focus $(yabai -m query --displays --display | jq '.spaces[3]'); yabai -m window --focus $(yabai -m query --windows --space | jq -r '[.[]|select(."is-sticky"==true)] | sort_by(.id) | to_entries | (.[]|select(.value."has-focus"==true)).key as $cur | [(.[]|select(.key==$cur)), first] | first.value.id')

cmd - 5 : yabai -m space --focus $(yabai -m query --displays --display | jq '.spaces[4]'); yabai -m window --focus $(yabai -m query --windows --space | jq -r '[.[]|select(.sticky==0)] | sort_by(.id) | to_entries | (.[]|select(.value.focused==1)).key as $cur | [(.[]|select(.key==$cur)), first] | first.value.id')
cmd - 5 : yabai -m space --focus $(yabai -m query --displays --display | jq '.spaces[4]'); yabai -m window --focus $(yabai -m query --windows --space | jq -r '[.[]|select(."is-sticky"==true)] | sort_by(.id) | to_entries | (.[]|select(.value."has-focus"==true)).key as $cur | [(.[]|select(.key==$cur)), first] | first.value.id')

cmd - 6 : yabai -m space --focus $(yabai -m query --displays --display | jq '.spaces[5]'); yabai -m window --focus $(yabai -m query --windows --space | jq -r '[.[]|select(.sticky==0)] | sort_by(.id) | to_entries | (.[]|select(.value.focused==1)).key as $cur | [(.[]|select(.key==$cur)), first] | first.value.id')
cmd - 6 : yabai -m space --focus $(yabai -m query --displays --display | jq '.spaces[5]'); yabai -m window --focus $(yabai -m query --windows --space | jq -r '[.[]|select(."is-sticky"==true)] | sort_by(.id) | to_entries | (.[]|select(.value."has-focus"==true)).key as $cur | [(.[]|select(.key==$cur)), first] | first.value.id')

cmd - 7 : yabai -m space --focus $(yabai -m query --displays --display | jq '.spaces[6]'); yabai -m window --focus $(yabai -m query --windows --space | jq -r '[.[]|select(.sticky==0)] | sort_by(.id) | to_entries | (.[]|select(.value.focused==1)).key as $cur | [(.[]|select(.key==$cur)), first] | first.value.id')
cmd - 7 : yabai -m space --focus $(yabai -m query --displays --display | jq '.spaces[6]'); yabai -m window --focus $(yabai -m query --windows --space | jq -r '[.[]|select(."is-sticky"==true)] | sort_by(.id) | to_entries | (.[]|select(.value."has-focus"==true)).key as $cur | [(.[]|select(.key==$cur)), first] | first.value.id')

cmd - 8 : yabai -m space --focus $(yabai -m query --displays --display | jq '.spaces[7]'); yabai -m window --focus $(yabai -m query --windows --space | jq -r '[.[]|select(.sticky==0)] | sort_by(.id) | to_entries | (.[]|select(.value.focused==1)).key as $cur | [(.[]|select(.key==$cur)), first] | first.value.id')

cmd - 9 : yabai -m space --focus $(yabai -m query --displays --display | jq '.spaces[8]'); yabai -m window --focus $(yabai -m query --windows --space | jq -r '[.[]|select(.sticky==0)] | sort_by(.id) | to_entries | (.[]|select(.value.focused==1)).key as $cur | [(.[]|select(.key==$cur)), first] | first.value.id')
cmd - 8 : yabai -m space --focus $(yabai -m query --displays --display | jq '.spaces[7]'); yabai -m window --focus $(yabai -m query --windows --space | jq -r '[.[]|select(."is-sticky"==true)] | sort_by(.id) | to_entries | (.[]|select(.value."has-focus"==true)).key as $cur | [(.[]|select(.key==$cur)), first] | first.value.id')

cmd - 9 : yabai -m space --focus $(yabai -m query --displays --display | jq '.spaces[8]'); yabai -m window --focus $(yabai -m query --windows --space | jq -r '[.[]|select(."is-sticky"==true)] | sort_by(.id) | to_entries | (.[]|select(.value."has-focus"==true)).key as $cur | [(.[]|select(.key==$cur)), first] | first.value.id')

# Navigation
cmd - tab : yabai -m window --focus $(yabai -m query --windows --space | jq -r '[.[]|select(.sticky==0)] | sort_by(.id) | to_entries | (.[]|select(.value.focused==1)).key as $cur | [(.[]|select(.key==$cur+1)), first] | first.value.id') || \
yabai -m window --focus $(yabai -m query --windows --space | jq -r 'sort_by(.sticky, .id) | first.id')
cmd - f19 : yabai -m window --focus $(yabai -m query --windows --space | jq -r '[.[]|select(.sticky==0)] | sort_by(.id) | to_entries | (.[]|select(.value.focused==1)).key as $cur | [(.[]|select(.key==$cur-1)), last] | first.value.id') || \
yabai -m window --focus $(yabai -m query --windows --space | jq -r 'sort_by(.sticky, -.id) | first.id')
cmd - tab : yabai -m window --focus $(yabai -m query --windows --space | jq -er '[.[]|select(."is-sticky"==false)] | sort_by(.id) | to_entries | (.[]|select(.value."has-focus"==true)).key as $cur | [(.[]|select(.key==$cur+1)), first] | first.value.id' || yabai -m query --windows --space | jq -r 'sort_by(."is-sticky", .id) | first.id')
cmd - f19 : yabai -m window --focus $(yabai -m query --windows --space | jq -er '[.[]|select(not(."is-sticky"))] | sort_by(.id) | to_entries | (.[]|select(.value."has-focus"==true)).key as $cur | [(.[]|select(.key==$cur-1)), last] | first.value.id' || yabai -m query --windows --space | jq -r 'sort_by(."is-sticky", -.id) | first.id')
lctrl - f19 : skhd -k "lctrl - tab"
alt - left : yabai -m window --focus west
alt - down : yabai -m window --focus south
Expand All @@ -93,8 +96,8 @@ lctrl + alt - up : yabai -m window --warp north
lctrl + alt - right : yabai -m window --warp east

# Move window to workspace or display
cmd + lctrl - left : yabai -m window --space $(yabai -m query --spaces --display | jq -r 'sort_by(.index) | (.[] | select(.focused==1)).index as $cur | [(.[]|select(.index == $cur-1)), last] | first.index')
cmd + lctrl - right : yabai -m window --space $(yabai -m query --spaces --display | jq -r 'sort_by(.index) | (.[] | select(.focused==1)).index as $cur | [(.[]|select(.index == $cur+1)), first] | first.index')
cmd + lctrl - left : yabai -m window --space $(yabai -m query --spaces --display | jq -r 'sort_by(.index) | (.[] | select(."has-focus"==true)).index as $cur | [(.[]|select(.index == $cur-1)), last] | first.index')
cmd + lctrl - right : yabai -m window --space $(yabai -m query --spaces --display | jq -r 'sort_by(.index) | (.[] | select(."has-focus"==true)).index as $cur | [(.[]|select(.index == $cur+1)), first] | first.index')
cmd + lctrl - down : yabai -m window --display prev || yabai -m window --display last ; yabai -m display --focus prev || yabai -m display --focus last
cmd + lctrl - up : yabai -m window --display next || yabai -m window --display first ; yabai -m display --focus next || yabai -m display --focus first

Expand Down Expand Up @@ -142,14 +145,14 @@ shift + lctrl + alt - right : yabai -m window --insert east
# Create / Destroy space
# TODO: remove this ugly workaround
cmd + lctrl - return : yabai -m space --create; yabai -m space --focus $(yabai -m query --spaces --display | jq -r 'sort_by(.index) | last.index'); \
yabai -m query --spaces | jq -e '([.[].display]|sort|last) as $lastmon | .[]| select(.focused==1).display != $lastmon' || exit 0; \
yabai -m query --spaces | jq -e '([.[].display]|sort|last) as $lastmon | .[]| select(."has-focus"==true).display != $lastmon' || exit 0; \
osascript -e 'tell application id "tracesOf.Uebersicht" to set hidden of widget id "simple-bar-spaces-jsx" to true'; \
sleep 0.1; \
osascript -e 'tell application id "tracesOf.Uebersicht" to set hidden of widget id "simple-bar-spaces-jsx" to false'

cmd + lctrl - w : yabai -m space --focus $(yabai -m query --spaces --display | jq -r 'sort_by(.index) | (.[] | select(.focused==1)).index as $cur | .[]|select(.index == $cur-1).index'); \
yabai -m space $(yabai -m query --spaces --display | jq -r 'sort_by(.index) | (.[] | select(.focused==1)).index as $cur | .[]|select(.index == $cur+1).index') --destroy; \
yabai -m query --spaces | jq -e '([.[].display]|sort|last) as $lastmon | .[]| select(.focused==1).display != $lastmon' || exit 0; \
cmd + lctrl - w : yabai -m space --focus $(yabai -m query --spaces --display | jq -r 'sort_by(.index) | (.[] | select(."has-focus"==true)).index as $cur | .[]|select(.index == $cur-1).index'); \
yabai -m space $(yabai -m query --spaces --display | jq -r 'sort_by(.index) | (.[] | select(."has-focus"==true)).index as $cur | .[]|select(.index == $cur+1).index') --destroy; \
yabai -m query --spaces | jq -e '([.[].display]|sort|last) as $lastmon | .[]| select(."has-focus"==true).display != $lastmon' || exit 0; \
osascript -e 'tell application id "tracesOf.Uebersicht" to set hidden of widget id "simple-bar-spaces-jsx" to true'; \
sleep 0.1; \
osascript -e 'tell application id "tracesOf.Uebersicht" to set hidden of widget id "simple-bar-spaces-jsx" to false'
Expand Down
11 changes: 11 additions & 0 deletions yabai/.config/yabai/floating_windows
Original file line number Diff line number Diff line change
@@ -1,2 +1,13 @@
yabai -m rule --add app="^Finder$" title="^Recents$" manage=off
yabai -m rule --add app="^Finder$" title="^kvaps$" manage=off
yabai -m rule --add app="^Firefox$" title="^Inbox (352) - kvapss@gmail.com - Gmail$" manage=off
yabai -m rule --add app="^Firefox$" title="^Slack | Обсуждения | Flant$" manage=off
yabai -m rule --add app="^Firefox$" title="^where is my device - Поиск в Google$" manage=off
yabai -m rule --add app="^Firefox$" title="^Запросы на добавление в друзья | Facebook$" manage=off
yabai -m rule --add app="^Google Chrome$" title="^Meet – Discuss Linstor - Google Chrome – Andrey (flant.com)$" manage=off
yabai -m rule --add app="^QuickTime Player$" title="^output.mp4$" manage=off
yabai -m rule --add app="^System Preferences$" title="^C34J79x$" manage=off
yabai -m rule --add app="^Telegram$" title="^$" manage=off
yabai -m rule --add app="^UTM$" title="^Windows 7$" manage=off
yabai -m rule --add app="^VLC$" title="^Ruxpin - Marglyttan$" manage=off
yabai -m rule --add app="^wine32on64-preloader$" title="^FlatOut 2$" manage=off
13 changes: 9 additions & 4 deletions yabai/.config/yabai/yabairc
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ yabai -m config mouse_drop_action swap
yabai -m config layout bsp
yabai -m config top_padding 06
yabai -m config bottom_padding 06
yabai -m config left_padding $(yabai -m query --displays --display | jq '.frame | if (.w > 2000) then .w/2 else 06 end')
yabai -m config left_padding 06
yabai -m config right_padding 06
yabai -m config window_gap 06

Expand All @@ -55,9 +55,14 @@ yabai -m signal --add event=window_destroyed action="yabai -m query --windows --
yabai -m signal --add event=application_terminated action="yabai -m query --windows --window &> /dev/null || yabai -m window --focus mouse"


# These applications are always sticky
yabai -m rule --add app="^Firefox$" manage=off sticky=on
yabai -m rule --add app="^Telegram$" manage=off sticky=on
# WQHD Setup
if $(yabai -m query --displays --display | jq '.frame | .w > 2000'); then
# Add area for sticky apps
yabai -m config left_padding $(yabai -m query --displays --display | jq '.frame.w/2')
# These applications are always sticky
yabai -m rule --add app="^Firefox$" manage=off sticky=on
yabai -m rule --add app="^Telegram$" manage=off sticky=on
fi

# Floating windows configuration
yabai -m rule --add app="^Firefox$" title="^Opening " manage=off
Expand Down

0 comments on commit 92f9f64

Please sign in to comment.