From 0c98d68d86bfbf4db17962a62b0ba5fbcb7a15d9 Mon Sep 17 00:00:00 2001 From: Oliver Ladner Date: Tue, 14 Jan 2025 09:15:29 +0100 Subject: [PATCH 01/38] refactor(aerospace): remove obsolete borders parameter --- .config/aerospace/aerospace.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/aerospace/aerospace.toml b/.config/aerospace/aerospace.toml index 7d1b9bc..12f876d 100644 --- a/.config/aerospace/aerospace.toml +++ b/.config/aerospace/aerospace.toml @@ -7,7 +7,7 @@ after-login-command = [] # 'after-startup-command' is run after 'after-login-command' # Available commands : https://nikitabobko.github.io/AeroSpace/commands after-startup-command = [ - 'exec-and-forget borders order=above active_color=0xff483D8B inactive_color=0xffCDCDCD width=8.0 style=square blacklist="firefox" ax_focus=true', + 'exec-and-forget borders order=above active_color=0xff483D8B inactive_color=0xffCDCDCD width=8.0 style=square blacklist="firefox"', ] start-at-login = true From 8755c4f07916348f657c44b5beedd32ce6c565ac Mon Sep 17 00:00:00 2001 From: Oliver Ladner Date: Tue, 21 Jan 2025 09:42:12 +0100 Subject: [PATCH 02/38] feat: move to workspace 2 if moving a window there --- .config/aerospace/aerospace.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.config/aerospace/aerospace.toml b/.config/aerospace/aerospace.toml index 12f876d..d1e39a4 100644 --- a/.config/aerospace/aerospace.toml +++ b/.config/aerospace/aerospace.toml @@ -121,7 +121,8 @@ ctrl-shift-alt-6 = 'workspace 6' # See: https://nikitabobko.github.io/AeroSpace/commands#move-node-to-workspace cmd-1 = 'move-node-to-workspace 1' -cmd-2 = 'move-node-to-workspace 2' +# I often want to see documentation along a terminal window +cmd-2 = 'move-node-to-workspace 2 --focus-follows-window' cmd-3 = 'move-node-to-workspace 3' cmd-4 = 'move-node-to-workspace 4' cmd-5 = 'move-node-to-workspace 5' From bc1ab2b67c0f1855cdc05de47fec2ef65d31e9b0 Mon Sep 17 00:00:00 2001 From: Oliver Ladner Date: Wed, 5 Feb 2025 09:03:26 +0100 Subject: [PATCH 03/38] docs: link to "good software" blog post --- .config/ghostty/config | 2 +- README.md | 13 +------------ 2 files changed, 2 insertions(+), 13 deletions(-) diff --git a/.config/ghostty/config b/.config/ghostty/config index ff7165e..518c4d2 100644 --- a/.config/ghostty/config +++ b/.config/ghostty/config @@ -39,7 +39,7 @@ window-colorspace = display-p3 auto-update = off -keybind = super+f=write_screen_file:open +# keybind = super+f=write_screen_file:open keybind = global:ctrl+grave_accent=toggle_quick_terminal keybind = page_up=scroll_page_up keybind = page_down=scroll_page_down diff --git a/README.md b/README.md index 4a30d7c..b1a1c99 100644 --- a/README.md +++ b/README.md @@ -12,18 +12,7 @@ This `README` also kind of documents my macOS "setup". ## Essential macOS software -- Package management: [Homebrew](http://brew.sh) -- Mouseless navigation: [Shortcat](https://shortcat.app) -- OpenVPN: [Tunnelblick](https://tunnelblick.net) -- Terminal: [Alacritty](https://alacritty.org) -- Terminal: [cool-retro-term](https://github.com/Swordfish90/cool-retro-term) -- Clipboard manager: [Maccy](https://maccy.app) -- Tasks: [Things](https://culturedcode.com/things/) -- Fonts with glyphs: [Nerd Fonts](https://www.nerdfonts.com) -- Screen arrangement: [displayplacer](https://github.com/jakehilborn/displayplacer) -- Note-taking: [heynote](https://heynote.com) -- Tiling window manager: [AeroSpace](https://github.com/nikitabobko/AeroSpace) ~[yabai](https://github.com/koekeishiya/yabai)~ -- ~Custom hotkeys: [skhd](https://github.com/koekeishiya/skhd)~ +See [this blog post](https://lugh.ch/good-software.html) ### Work related software From febb6f5a7891c45c649a9a803ffbd571f20599cc Mon Sep 17 00:00:00 2001 From: Oliver Ladner Date: Wed, 5 Feb 2025 13:59:34 +0100 Subject: [PATCH 04/38] feat(brew) update package list --- brew.txt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/brew.txt b/brew.txt index c405d32..39a0ca4 100644 --- a/brew.txt +++ b/brew.txt @@ -98,7 +98,7 @@ libevent libexif libfido2 libgcrypt -libgit2 +libgit2@1.8 libgpg-error libheif libidn @@ -198,6 +198,7 @@ pkgconf poppler postgresql@14 prettyping +pugixml pwgen pycparser python-certifi @@ -253,6 +254,7 @@ utf8proc uthash vhs watch +wdc webp wget wxwidgets @@ -280,9 +282,10 @@ forklift ghostty gramps hot -kitty +karabiner-elements krita maccy +marta microsoft-auto-update microsoft-teams mqtt-explorer @@ -290,4 +293,3 @@ mysqlworkbench openscad powershell skype-for-business -wezterm From 2721ed030222052b47d02a58860ed80e74cc8032 Mon Sep 17 00:00:00 2001 From: Oliver Ladner Date: Mon, 17 Feb 2025 10:04:38 +0100 Subject: [PATCH 05/38] feat(aerospace): workspace next/prev shortcuts --- .config/aerospace/aerospace.toml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/.config/aerospace/aerospace.toml b/.config/aerospace/aerospace.toml index d1e39a4..5fc3f57 100644 --- a/.config/aerospace/aerospace.toml +++ b/.config/aerospace/aerospace.toml @@ -133,6 +133,11 @@ alt-shift-j = ['join-with down', 'mode main'] alt-shift-k = ['join-with up', 'mode main'] alt-shift-l = ['join-with right', 'mode main'] +# Scroll through workspaces +# https://nikitabobko.github.io/AeroSpace/commands#workspace +ctrl-shift-alt-n = 'workspace next' +ctrl-shift-alt-p = 'workspace prev' + # See: https://nikitabobko.github.io/AeroSpace/commands#workspace-back-and-forth alt-tab = 'workspace-back-and-forth' # See: https://nikitabobko.github.io/AeroSpace/commands#move-workspace-to-monitor @@ -179,11 +184,6 @@ if.app-id = 'com.mitchellh.ghostty' if.during-aerospace-startup = true run = 'move-node-to-workspace 2' -[[on-window-detected]] -if.app-id = 'org.alacritty' -if.during-aerospace-startup = true -run = 'move-node-to-workspace 2' - # Orga [[on-window-detected]] if.app-id = 'com.culturedcode.ThingsMac' @@ -204,12 +204,13 @@ run = 'move-node-to-workspace 3' [[on-window-detected]] if.app-id = 'com.microsoft.teams2' if.during-aerospace-startup = true -run = 'move-node-to-workspace 4' +check-further-callbacks = true +run = 'move-node-to-workspace 5' [[on-window-detected]] if.app-id = 'com.tinyspeck.slackmacgap' if.during-aerospace-startup = true -run = 'move-node-to-workspace 4' +run = 'move-node-to-workspace 5' [[on-window-detected]] if.app-id = 'com.apple.MobileSMS' From 14bd1bf47575db0e2ba4bddbe8ce10e90d207cb8 Mon Sep 17 00:00:00 2001 From: Oliver Ladner Date: Mon, 17 Feb 2025 10:24:32 +0100 Subject: [PATCH 06/38] feat: ghostty shaders to gitignore --- .config/ghostty/shaders/ghostty-shaders | 2 +- .gitignore | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.config/ghostty/shaders/ghostty-shaders b/.config/ghostty/shaders/ghostty-shaders index fd31bd4..3f45815 160000 --- a/.config/ghostty/shaders/ghostty-shaders +++ b/.config/ghostty/shaders/ghostty-shaders @@ -1 +1 @@ -Subproject commit fd31bd4211784f1e199091bccd080092ae27cf35 +Subproject commit 3f458157b0d7b9e70eeb19bd27102dc9f8dae80c diff --git a/.gitignore b/.gitignore index 41fe2da..d93e80f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ # vim .vim/.netrwhist .DS_Store +.config/ghostty/shaders/ghostty-shaders From c6df537dfdddbd1867492dbb83a2fdfb57c82c75 Mon Sep 17 00:00:00 2001 From: Oliver Ladner Date: Thu, 20 Feb 2025 11:08:39 +0100 Subject: [PATCH 07/38] feat: add .psqlrc --- .psqlrc | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 .psqlrc diff --git a/.psqlrc b/.psqlrc new file mode 100644 index 0000000..e66ac5c --- /dev/null +++ b/.psqlrc @@ -0,0 +1,4 @@ +\set PROMPT1 '%[%033[1;33;40m%]%n@%/%R%[%033[0m%]%# ' +\x auto +\set COMP_KEYWORD_CASE upper +\timing From 874b1dba2d572fd83738723506881ef9082279f1 Mon Sep 17 00:00:00 2001 From: Oliver Ladner Date: Mon, 24 Feb 2025 14:48:38 +0100 Subject: [PATCH 08/38] feat: brew (almost) spring cleaning --- brew.txt | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/brew.txt b/brew.txt index 39a0ca4..7aa9b46 100644 --- a/brew.txt +++ b/brew.txt @@ -10,7 +10,6 @@ bicep bind borders brotli -btop c-ares ca-certificates cairo @@ -27,8 +26,6 @@ dos2unix dotnet@8 double-conversion dvdrtools -elixir -erlang fd ffmpeg figlet @@ -76,7 +73,6 @@ jpeg-xl jq json-c k9s -kind krb5 kubectx kubernetes-cli @@ -112,6 +108,7 @@ libnghttp2 libogg libomp libpng +libpq libraw librist librsvg @@ -196,7 +193,6 @@ pinentry pixman pkgconf poppler -postgresql@14 prettyping pugixml pwgen @@ -248,7 +244,6 @@ tree-sitter ttyd unbound unibilium -unixodbc userspace-rcu utf8proc uthash @@ -257,7 +252,6 @@ watch wdc webp wget -wxwidgets x264 x265 xorgproto @@ -280,7 +274,6 @@ cyberduck disk-inventory-x forklift ghostty -gramps hot karabiner-elements krita @@ -292,4 +285,3 @@ mqtt-explorer mysqlworkbench openscad powershell -skype-for-business From 902c4b8c2d2bb07c205e47f56320fc97f628bbcd Mon Sep 17 00:00:00 2001 From: Oliver Ladner Date: Thu, 27 Mar 2025 08:02:08 +0100 Subject: [PATCH 09/38] feat: try transparency --- .config/ghostty/config | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.config/ghostty/config b/.config/ghostty/config index 518c4d2..a3fd59b 100644 --- a/.config/ghostty/config +++ b/.config/ghostty/config @@ -14,6 +14,9 @@ cursor-style = "block" cursor-style-blink = true cursor-color = #b4637a cursor-opacity = 0.6 +cursor-invert-fg-bg = true + +background-opacity = 0.85 font-family = "JetBrainsMono Nerd Font" # font-style depends on the font's features From 0605282dd476ae635d57f33edf44cb833e598281 Mon Sep 17 00:00:00 2001 From: Oliver Ladner Date: Thu, 27 Mar 2025 08:03:01 +0100 Subject: [PATCH 10/38] feat: try fancier gaps --- .config/aerospace/aerospace.toml | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/.config/aerospace/aerospace.toml b/.config/aerospace/aerospace.toml index 5fc3f57..63b606e 100644 --- a/.config/aerospace/aerospace.toml +++ b/.config/aerospace/aerospace.toml @@ -7,7 +7,10 @@ after-login-command = [] # 'after-startup-command' is run after 'after-login-command' # Available commands : https://nikitabobko.github.io/AeroSpace/commands after-startup-command = [ - 'exec-and-forget borders order=above active_color=0xff483D8B inactive_color=0xffCDCDCD width=8.0 style=square blacklist="firefox"', + # 0xff = fully opaque + # 0x00 = fully transparent + # 'exec-and-forget borders order=above active_color=0xff483D8B inactive_color=0xffCDCDCD width=8.0 style=square blacklist="firefox"', + 'exec-and-forget borders order=above active_color=0xbbeec400 inactive_color=0x0005a3ad width=8.0 style=square blacklist="firefox"', ] start-at-login = true @@ -54,12 +57,12 @@ preset = 'qwerty' # Monitor pattern is the same as for 'workspace-to-monitor-force-assignment'. # See: https://nikitabobko.github.io/AeroSpace/guide#assign-workspaces-to-monitors [gaps] -inner.horizontal = 0 -inner.vertical = 0 -outer.left = 0 -outer.bottom = 0 -outer.top = 0 -outer.right = 0 +inner.horizontal = 10 +inner.vertical = 10 +outer.left = 14 +outer.bottom = 14 +outer.top = 14 +outer.right = 14 # 'main' binding mode declaration # See: https://nikitabobko.github.io/AeroSpace/guide#binding-modes From 660f53902688a81c6bf5a4deddf1f94a9b774059 Mon Sep 17 00:00:00 2001 From: Oliver Ladner Date: Tue, 6 May 2025 14:48:59 +0200 Subject: [PATCH 11/38] feat: use yabai and skhd again --- .config/skhd/skhdrc | 49 +++++++++++++++++++++++++++++++------------ .config/yabai/yabairc | 23 +++++++++++--------- 2 files changed, 49 insertions(+), 23 deletions(-) diff --git a/.config/skhd/skhdrc b/.config/skhd/skhdrc index e4b15ff..ae86795 100755 --- a/.config/skhd/skhdrc +++ b/.config/skhd/skhdrc @@ -10,33 +10,56 @@ alt - j : yabai -m window --focus south alt - k : yabai -m window --focus north alt - l : yabai -m window --focus east -# Zoom a window +# Focus a space +ctrl + shift + alt - 1 : index=1; eval "$(yabai -m query --spaces | jq --argjson index "${index}" -r '(.[] | select(.index == $index).windows[0]) as $wid | if $wid then "yabai -m window --focus \"" + ($wid | tostring) + "\"" else "skhd --key \"ctrl - " + (map(select(."is-native-fullscreen" == false)) | index(map(select(.index == $index))) + 1 % 10 | tostring) + "\"" end')" +ctrl + shift + alt - 2 : index=2; eval "$(yabai -m query --spaces | jq --argjson index "${index}" -r '(.[] | select(.index == $index).windows[0]) as $wid | if $wid then "yabai -m window --focus \"" + ($wid | tostring) + "\"" else "skhd --key \"ctrl - " + (map(select(."is-native-fullscreen" == false)) | index(map(select(.index == $index))) + 1 % 10 | tostring) + "\"" end')" +ctrl + shift + alt - 3 : index=3; eval "$(yabai -m query --spaces | jq --argjson index "${index}" -r '(.[] | select(.index == $index).windows[0]) as $wid | if $wid then "yabai -m window --focus \"" + ($wid | tostring) + "\"" else "skhd --key \"ctrl - " + (map(select(."is-native-fullscreen" == false)) | index(map(select(.index == $index))) + 1 % 10 | tostring) + "\"" end')" +ctrl + shift + alt - 4 : index=4; eval "$(yabai -m query --spaces | jq --argjson index "${index}" -r '(.[] | select(.index == $index).windows[0]) as $wid | if $wid then "yabai -m window --focus \"" + ($wid | tostring) + "\"" else "skhd --key \"ctrl - " + (map(select(."is-native-fullscreen" == false)) | index(map(select(.index == $index))) + 1 % 10 | tostring) + "\"" end')" +ctrl + shift + alt - 5 : index=5; eval "$(yabai -m query --spaces | jq --argjson index "${index}" -r '(.[] | select(.index == $index).windows[0]) as $wid | if $wid then "yabai -m window --focus \"" + ($wid | tostring) + "\"" else "skhd --key \"ctrl - " + (map(select(."is-native-fullscreen" == false)) | index(map(select(.index == $index))) + 1 % 10 | tostring) + "\"" end')" + +# Zoom a window. `--toggle float` would be nicer, but results +# in the window brought back to the wrong place after toggling ctrl + shift + alt - f : yabai -m window --toggle zoom-fullscreen -# Swap windows +# Move/swap windows ctrl + shift + alt - h : yabai -m window --swap west ctrl + shift + alt - j : yabai -m window --swap south ctrl + shift + alt - k : yabai -m window --swap north ctrl + shift + alt - l : yabai -m window --swap east -# split -ctrl + shift + alt + cmd - h : yabai -m window --warp west -ctrl + shift + alt + cmd - j : yabai -m window --warp south -ctrl + shift + alt + cmd - k : yabai -m window --warp north -ctrl + shift + alt + cmd - l : yabai -m window --warp east +# Split +#ctrl + shift + alt + cmd - h : yabai -m window --warp west +#ctrl + shift + alt + cmd - j : yabai -m window --warp south +#ctrl + shift + alt + cmd - k : yabai -m window --warp north +#ctrl + shift + alt + cmd - l : yabai -m window --warp east # Move window to other desktop and focus desktop -ctrl + shift + alt - 1 : yabai -m window --space 1; yabai -m space --focus 1 -ctrl + shift + alt - 2 : yabai -m window --space 2; yabai -m space --focus 2 -ctrl + shift + alt - 3 : yabai -m window --space 3; yabai -m space --focus 3 -ctrl + shift + alt - 4 : yabai -m window --space 4; yabai -m space --focus 4 +cmd - 1 : yabai -m window --space 1 +cmd - 2 : yabai -m window --space 2; yabai -m space --focus 2 +cmd - 3 : yabai -m window --space 3 +cmd - 4 : yabai -m window --space 4 +cmd - 5 : yabai -m window --space 5 # Move window to display left and right -ctrl + shift + alt - r : yabai -m window --display west; yabai -m display --focus west; -ctrl + shift + alt - u : yabai -m window --display east; yabai -m display --focus east; +ctrl + shift + alt - r : yabai -m window --display west; yabai -m display --focus west +ctrl + shift + alt - u : yabai -m window --display east; yabai -m display --focus east # Revert resized windows to default ctrl + shift + alt - 0 : yabai -m space --balance # Rotate windows clockwise ctrl + shift + alt - y : yabai -m space --rotate 270 + +# Resize window +# Custom keys can be checked with `skhd --observe` +#ctrl + shift + alt - 0x18 : yabai -m window --resize bottom_left:50:50; yabai -m window --resize right:50:50 +#ctrl + shift + alt - 0x1B : yabai -m window --resize bottom_left:-50:-50; yabai -m window --resize right:-50:-50 + +ctrl + shift + alt + cmd - h : yabai -m window --resize left:-50:0; yabai -m window --resize right:-50:0 +ctrl + shift + alt + cmd - j : yabai -m window --resize bottom:0:50; yabai -m window --resize top:0:50 +ctrl + shift + alt + cmd - k : yabai -m window --resize top:0:-50; yabai -m window --resize bottom:0:-50 +ctrl + shift + alt + cmd - l : yabai -m window --resize right:50:0; yabai -m window --resize left:50:0 + +# Indicate focus +# Needs scripting/protetion off +#ctrl + shift + alt - m : yabai -m window --opacity 0.1 && sleep $(yabai -m config window_opacity_duration) && yabai -m window --opacity 0.0 diff --git a/.config/yabai/yabairc b/.config/yabai/yabairc index 715468f..f20c68f 100755 --- a/.config/yabai/yabairc +++ b/.config/yabai/yabairc @@ -5,17 +5,19 @@ # /tmp/yabai_$USER.out.log yabai -m config layout bsp +yabai -m config window_placement second_child # Global yabai -m config focus_follows_mouse off -yabai -m config mouse_follows_focus off +yabai -m config mouse_follows_focus on yabai -m config layout bsp -yabai -m config top_padding 0 -yabai -m config bottom_padding 0 -yabai -m config left_padding 0 -yabai -m config right_padding 0 -yabai -m config window_gap 0 +yabai -m config auto_balance on +yabai -m config top_padding 8 +yabai -m config bottom_padding 8 +yabai -m config left_padding 8 +yabai -m config right_padding 8 +yabai -m config window_gap 16 yabai -m config mouse_action1 move yabai -m config mouse_action2 resize @@ -25,15 +27,16 @@ yabai -m config mouse_modifier ctrl #yabai -m config --space 2 window_gap # Floating (unmanaged) apps -yabai -m rule --add app=Finder manage=off -yabai -m rule --add app=Calculator manage=off -yabai -m rule --add app=VLC manage=off +yabai -m rule --add app="^Calculator$" manage=off +yabai -m rule --add app"^=VLC$" manage=off +yabai -m rule --add app="^System Settings$" manage=off # Launch borders # https://github.com/FelixKratz/JankyBorders/issues/37#issuecomment-1871262622 #borders order=above active_color=0xff007777 inactive_color=0xff004444 width=8.0 style=square & #borders order=above active_color=0xffffd700 inactive_color=0xff004444 width=8.0 style=square & #borders order=above active_color=0xffffd700 inactive_color=0xff897400 width=8.0 style=square & -borders order=above active_color=0xffffd700 background_color=0xee897400 width=8.0 style=square blacklist="firefox" ax_focus=true & +#borders order=above active_color=0xffffd700 background_color=0xee897400 width=8.0 style=square blacklist="firefox" & +#borders order=above active_color=0xffffd700 background_color=0xee897400 width=8.0 style=square & echo "$(date) yabai config $0 loaded" From 692cd90af0f72fde97f43ce8fde771c9c18e9d04 Mon Sep 17 00:00:00 2001 From: Oliver Ladner Date: Thu, 8 May 2025 09:55:16 +0200 Subject: [PATCH 12/38] fix(yabai): disable auto_balance again, make newer windows bigger --- .config/yabai/yabairc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.config/yabai/yabairc b/.config/yabai/yabairc index f20c68f..f2dd07c 100755 --- a/.config/yabai/yabairc +++ b/.config/yabai/yabairc @@ -12,7 +12,8 @@ yabai -m config focus_follows_mouse off yabai -m config mouse_follows_focus on yabai -m config layout bsp -yabai -m config auto_balance on +#yabai -m config auto_balance on +yabai -m config split_ratio 0.4 yabai -m config top_padding 8 yabai -m config bottom_padding 8 yabai -m config left_padding 8 From e45aafb4550f14aa376cc9a87579c763abf0350a Mon Sep 17 00:00:00 2001 From: Oliver Ladner Date: Thu, 8 May 2025 09:55:52 +0200 Subject: [PATCH 13/38] fix(skhd): re-enable split --- .config/skhd/skhdrc | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/.config/skhd/skhdrc b/.config/skhd/skhdrc index ae86795..a5e4653 100755 --- a/.config/skhd/skhdrc +++ b/.config/skhd/skhdrc @@ -28,12 +28,13 @@ ctrl + shift + alt - k : yabai -m window --swap north ctrl + shift + alt - l : yabai -m window --swap east # Split -#ctrl + shift + alt + cmd - h : yabai -m window --warp west -#ctrl + shift + alt + cmd - j : yabai -m window --warp south -#ctrl + shift + alt + cmd - k : yabai -m window --warp north -#ctrl + shift + alt + cmd - l : yabai -m window --warp east +ctrl + shift + alt + cmd - h : yabai -m window --warp west +ctrl + shift + alt + cmd - j : yabai -m window --warp south +ctrl + shift + alt + cmd - k : yabai -m window --warp north +ctrl + shift + alt + cmd - l : yabai -m window --warp east # Move window to other desktop and focus desktop +# FIXME: doesn't work with cmd only cmd - 1 : yabai -m window --space 1 cmd - 2 : yabai -m window --space 2; yabai -m space --focus 2 cmd - 3 : yabai -m window --space 3 @@ -51,15 +52,12 @@ ctrl + shift + alt - 0 : yabai -m space --balance ctrl + shift + alt - y : yabai -m space --rotate 270 # Resize window -# Custom keys can be checked with `skhd --observe` -#ctrl + shift + alt - 0x18 : yabai -m window --resize bottom_left:50:50; yabai -m window --resize right:50:50 -#ctrl + shift + alt - 0x1B : yabai -m window --resize bottom_left:-50:-50; yabai -m window --resize right:-50:-50 - +# NOTE: Custom keys can be checked with `skhd --observe` ctrl + shift + alt + cmd - h : yabai -m window --resize left:-50:0; yabai -m window --resize right:-50:0 ctrl + shift + alt + cmd - j : yabai -m window --resize bottom:0:50; yabai -m window --resize top:0:50 ctrl + shift + alt + cmd - k : yabai -m window --resize top:0:-50; yabai -m window --resize bottom:0:-50 ctrl + shift + alt + cmd - l : yabai -m window --resize right:50:0; yabai -m window --resize left:50:0 # Indicate focus -# Needs scripting/protetion off +# NOTE: Needs scripting/protection off #ctrl + shift + alt - m : yabai -m window --opacity 0.1 && sleep $(yabai -m config window_opacity_duration) && yabai -m window --opacity 0.0 From 295ece76e8dd94fc01c120065c81f60eab02a6d1 Mon Sep 17 00:00:00 2001 From: Oliver Ladner Date: Thu, 8 May 2025 10:16:25 +0200 Subject: [PATCH 14/38] fix(skhd): fix resize keymaps --- .config/skhd/skhdrc | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/.config/skhd/skhdrc b/.config/skhd/skhdrc index a5e4653..54ec690 100755 --- a/.config/skhd/skhdrc +++ b/.config/skhd/skhdrc @@ -33,6 +33,13 @@ ctrl + shift + alt + cmd - j : yabai -m window --warp south ctrl + shift + alt + cmd - k : yabai -m window --warp north ctrl + shift + alt + cmd - l : yabai -m window --warp east +# Resize window +# NOTE: Custom keys can be checked with `skhd --observe` +ctrl + shift + alt - a : yabai -m window --resize left:-50:0; yabai -m window --resize right:-50:0 +ctrl + shift + alt - s : yabai -m window --resize bottom:0:50; yabai -m window --resize top:0:50 +ctrl + shift + alt - w: yabai -m window --resize top:0:-50; yabai -m window --resize bottom:0:-50 +ctrl + shift + alt - d : yabai -m window --resize right:50:0; yabai -m window --resize left:50:0 + # Move window to other desktop and focus desktop # FIXME: doesn't work with cmd only cmd - 1 : yabai -m window --space 1 @@ -51,12 +58,6 @@ ctrl + shift + alt - 0 : yabai -m space --balance # Rotate windows clockwise ctrl + shift + alt - y : yabai -m space --rotate 270 -# Resize window -# NOTE: Custom keys can be checked with `skhd --observe` -ctrl + shift + alt + cmd - h : yabai -m window --resize left:-50:0; yabai -m window --resize right:-50:0 -ctrl + shift + alt + cmd - j : yabai -m window --resize bottom:0:50; yabai -m window --resize top:0:50 -ctrl + shift + alt + cmd - k : yabai -m window --resize top:0:-50; yabai -m window --resize bottom:0:-50 -ctrl + shift + alt + cmd - l : yabai -m window --resize right:50:0; yabai -m window --resize left:50:0 # Indicate focus # NOTE: Needs scripting/protection off From 0dd91c70a187a0008cb2cdd5d747305d8884f809 Mon Sep 17 00:00:00 2001 From: Oliver Ladner Date: Tue, 27 May 2025 08:11:41 +0200 Subject: [PATCH 15/38] fix: ghostty color scheme changes --- .config/ghostty/config | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/.config/ghostty/config b/.config/ghostty/config index a3fd59b..82e9698 100644 --- a/.config/ghostty/config +++ b/.config/ghostty/config @@ -1,12 +1,5 @@ theme = light:rose-pine-dawn,dark:rose-pine-moon # FIXME: https://github.com/mbadolato/iTerm2-Color-Schemes/issues/442 -# green -palette = 2=#286983 -palette = 10=#286983 -# blue -palette = 4=#56949f -palette = 12=#56949f -selection-background = #dfdad9 shell-integration-features = no-cursor @@ -14,9 +7,10 @@ cursor-style = "block" cursor-style-blink = true cursor-color = #b4637a cursor-opacity = 0.6 -cursor-invert-fg-bg = true +# cursor-invert-fg-bg = true +cursor-invert-fg-bg = false -background-opacity = 0.85 +# background-opacity = 0.9 font-family = "JetBrainsMono Nerd Font" # font-style depends on the font's features From 65cbb16299f31afbe60ed7cec20f3169af4c35b6 Mon Sep 17 00:00:00 2001 From: Oliver Ladner Date: Tue, 27 May 2025 09:02:14 +0200 Subject: [PATCH 16/38] fix: ghostty color scheme changes --- .config/ghostty/config.ini | 50 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 .config/ghostty/config.ini diff --git a/.config/ghostty/config.ini b/.config/ghostty/config.ini new file mode 100644 index 0000000..d77d5c8 --- /dev/null +++ b/.config/ghostty/config.ini @@ -0,0 +1,50 @@ +theme = light:rose-pine-dawn,dark:rose-pine-moon +# FIXME: https://github.com/mbadolato/iTerm2-Color-Schemes/issues/442 +# green +palette = 2=#286983 +palette = 10=#286983 +# blue +palette = 4=#56949f +palette = 12=#56949f +selection-background = #dfdad9 + +shell-integration-features = no-cursor + +cursor-style = "block" +cursor-style-blink = true +cursor-color = #b4637a +cursor-opacity = 0.6 +# cursor-invert-fg-bg = true +cursor-invert-fg-bg = false + +background-opacity = 0.9 + +font-family = "JetBrainsMono Nerd Font" +# font-style depends on the font's features +font-style = "Regular" +font-style-bold = "Bold" +font-style-italic = "Italic" +font-style-bold-italic = "Bold Italic" +# Disable programming ligatures +font-feature = "-calt" +font-size = 17 +# Reduce letter spacing +adjust-cell-width = -8% +adjust-cell-height = -1 + +window-padding-x = 8 +window-padding-y = 4 +window-decoration = false +window-colorspace = display-p3 + +# custom-shader = /Users/oliver.ladner/.config/ghostty/shaders/ghostty-shaders/just-snow.glsl +# custom-shader = /Users/oliver.ladner/.config/ghostty/shaders/ghostty-shaders/retro-terminal.glsl +# custom-shader = /Users/oliver.ladner/.config/ghostty/shaders/ghostty-shaders/cubes.glsl + +auto-update = off + +# keybind = super+f=write_screen_file:open +keybind = global:ctrl+grave_accent=toggle_quick_terminal +keybind = page_up=scroll_page_up +keybind = page_down=scroll_page_down +quick-terminal-animation-duration = 0 From 45b0d86ff7acb7ebc706426d514a9e0b38fff4de Mon Sep 17 00:00:00 2001 From: Oliver Ladner Date: Tue, 3 Jun 2025 09:41:35 +0200 Subject: [PATCH 17/38] fix: update yabai/ghostty config --- .config/ghostty/config | 3 +++ .config/ghostty/config.ini | 50 -------------------------------------- .config/yabai/yabairc | 1 + 3 files changed, 4 insertions(+), 50 deletions(-) delete mode 100644 .config/ghostty/config.ini diff --git a/.config/ghostty/config b/.config/ghostty/config index 82e9698..d614fd5 100644 --- a/.config/ghostty/config +++ b/.config/ghostty/config @@ -41,3 +41,6 @@ keybind = global:ctrl+grave_accent=toggle_quick_terminal keybind = page_up=scroll_page_up keybind = page_down=scroll_page_down quick-terminal-animation-duration = 0 + +# Disable secure input to not interfere with skhd +macos-auto-secure-input = false diff --git a/.config/ghostty/config.ini b/.config/ghostty/config.ini deleted file mode 100644 index d77d5c8..0000000 --- a/.config/ghostty/config.ini +++ /dev/null @@ -1,50 +0,0 @@ -theme = light:rose-pine-dawn,dark:rose-pine-moon -# FIXME: https://github.com/mbadolato/iTerm2-Color-Schemes/issues/442 -# green -palette = 2=#286983 -palette = 10=#286983 -# blue -palette = 4=#56949f -palette = 12=#56949f -selection-background = #dfdad9 - -shell-integration-features = no-cursor - -cursor-style = "block" -cursor-style-blink = true -cursor-color = #b4637a -cursor-opacity = 0.6 -# cursor-invert-fg-bg = true -cursor-invert-fg-bg = false - -background-opacity = 0.9 - -font-family = "JetBrainsMono Nerd Font" -# font-style depends on the font's features -font-style = "Regular" -font-style-bold = "Bold" -font-style-italic = "Italic" -font-style-bold-italic = "Bold Italic" -# Disable programming ligatures -font-feature = "-calt" -font-size = 17 -# Reduce letter spacing -adjust-cell-width = -8% -adjust-cell-height = -1 - -window-padding-x = 8 -window-padding-y = 4 -window-decoration = false -window-colorspace = display-p3 - -# custom-shader = /Users/oliver.ladner/.config/ghostty/shaders/ghostty-shaders/just-snow.glsl -# custom-shader = /Users/oliver.ladner/.config/ghostty/shaders/ghostty-shaders/retro-terminal.glsl -# custom-shader = /Users/oliver.ladner/.config/ghostty/shaders/ghostty-shaders/cubes.glsl - -auto-update = off - -# keybind = super+f=write_screen_file:open -keybind = global:ctrl+grave_accent=toggle_quick_terminal -keybind = page_up=scroll_page_up -keybind = page_down=scroll_page_down -quick-terminal-animation-duration = 0 diff --git a/.config/yabai/yabairc b/.config/yabai/yabairc index f2dd07c..996b391 100755 --- a/.config/yabai/yabairc +++ b/.config/yabai/yabairc @@ -28,6 +28,7 @@ yabai -m config mouse_modifier ctrl #yabai -m config --space 2 window_gap # Floating (unmanaged) apps +yabai -m rule --add app=".*" sub-layer=normal yabai -m rule --add app="^Calculator$" manage=off yabai -m rule --add app"^=VLC$" manage=off yabai -m rule --add app="^System Settings$" manage=off From 973ae4b49bc8d50f449574998b7c3ade90fd8d5b Mon Sep 17 00:00:00 2001 From: Oliver Ladner Date: Wed, 2 Jul 2025 10:16:59 +0200 Subject: [PATCH 18/38] feat: VSCodium>VSCode --- .../Code/User/settings.json | 21 ------------------- .../VSCodium/User/settings.json | 17 +++++++++++++++ 2 files changed, 17 insertions(+), 21 deletions(-) delete mode 100644 Library/Application Support/Code/User/settings.json create mode 100644 Library/Application Support/VSCodium/User/settings.json diff --git a/Library/Application Support/Code/User/settings.json b/Library/Application Support/Code/User/settings.json deleted file mode 100644 index 094e140..0000000 --- a/Library/Application Support/Code/User/settings.json +++ /dev/null @@ -1,21 +0,0 @@ -// Place your settings in this file to overwrite the default settings -{ - "window.zoomLevel": 1, - "editor.renderWhitespace": "none", - "editor.renderControlCharacters": true, - "editor.minimap.enabled": false, - "workbench.startupEditor": "none", - "workbench.editor.enablePreview": false, - "workbench.colorTheme": "Soup (rainglow)", - "files.trimTrailingWhitespace": true, - "files.trimFinalNewlines": true, - "files.insertFinalNewline": true, - "editor.rulers": [ - 80 - 120 - ], - "workbench.iconTheme": "material-icon-theme", - "editor.scrollBeyondLastLine": false, - "workbench.statusBar.feedback.visible": false, - "python.pythonPath": "/Users/oliver.ladner/envs/ansible2-latest/bin/python" -} diff --git a/Library/Application Support/VSCodium/User/settings.json b/Library/Application Support/VSCodium/User/settings.json new file mode 100644 index 0000000..020c15c --- /dev/null +++ b/Library/Application Support/VSCodium/User/settings.json @@ -0,0 +1,17 @@ +{ + "workbench.colorTheme": "Rosé Pine", + "editor.minimap.enabled": false, + "editor.fontSize": 16, + "editor.fontFamily": "JetBrainsMono Nerd Font", + "editor.autoClosingBrackets": "never", + "editor.folding": false, + "workbench.preferredDarkColorTheme": "Rosé Pine Moon", + "workbench.preferredLightColorTheme": "Rosé Pine Dawn", + "window.autoDetectColorScheme": true, + "extensions.experimental.affinity": { + "asvetliakov.vscode-neovim": 1 + }, + "editor.lineNumbers": "relative", + "editor.accessibilitySupport": "off", + "editor.cursorSurroundingLines": 5 +} \ No newline at end of file From 2273a2adc9ed035bf1d061373994380a07d88757 Mon Sep 17 00:00:00 2001 From: Oliver Ladner Date: Thu, 3 Jul 2025 10:31:34 +0200 Subject: [PATCH 19/38] feat(git): only use pager if output is more than one screen --- .config/git/config | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.config/git/config b/.config/git/config index cc68988..1188a61 100644 --- a/.config/git/config +++ b/.config/git/config @@ -1,5 +1,7 @@ [core] - editor = nvim + editor = nvim + # Only page if more than one screen + pager = "less -FX" [color] branch = auto From 358c24a3da1b94e76ad469d874c082a728ee6ff5 Mon Sep 17 00:00:00 2001 From: Oliver Ladner Date: Thu, 10 Jul 2025 12:55:04 +0200 Subject: [PATCH 20/38] refactor(yabai,skhd): remove clutter, use meh/hyper shortcuts for definitions --- .config/skhd/skhdrc | 62 ++++++++++++++++++++++--------------------- .config/yabai/yabairc | 21 ++++++++------- 2 files changed, 43 insertions(+), 40 deletions(-) diff --git a/.config/skhd/skhdrc b/.config/skhd/skhdrc index 54ec690..1cbf6af 100755 --- a/.config/skhd/skhdrc +++ b/.config/skhd/skhdrc @@ -4,6 +4,9 @@ # the Ctrl+Shift+Alt key combo which helps here to have unique skhd shortcuts # that don't clash with macOS/Neovim/... +# meh = shift + alt + ctrl +# hyper = cmd + shift + alt + ctrl + # Focus a window alt - h : yabai -m window --focus west alt - j : yabai -m window --focus south @@ -11,54 +14,53 @@ alt - k : yabai -m window --focus north alt - l : yabai -m window --focus east # Focus a space -ctrl + shift + alt - 1 : index=1; eval "$(yabai -m query --spaces | jq --argjson index "${index}" -r '(.[] | select(.index == $index).windows[0]) as $wid | if $wid then "yabai -m window --focus \"" + ($wid | tostring) + "\"" else "skhd --key \"ctrl - " + (map(select(."is-native-fullscreen" == false)) | index(map(select(.index == $index))) + 1 % 10 | tostring) + "\"" end')" -ctrl + shift + alt - 2 : index=2; eval "$(yabai -m query --spaces | jq --argjson index "${index}" -r '(.[] | select(.index == $index).windows[0]) as $wid | if $wid then "yabai -m window --focus \"" + ($wid | tostring) + "\"" else "skhd --key \"ctrl - " + (map(select(."is-native-fullscreen" == false)) | index(map(select(.index == $index))) + 1 % 10 | tostring) + "\"" end')" -ctrl + shift + alt - 3 : index=3; eval "$(yabai -m query --spaces | jq --argjson index "${index}" -r '(.[] | select(.index == $index).windows[0]) as $wid | if $wid then "yabai -m window --focus \"" + ($wid | tostring) + "\"" else "skhd --key \"ctrl - " + (map(select(."is-native-fullscreen" == false)) | index(map(select(.index == $index))) + 1 % 10 | tostring) + "\"" end')" -ctrl + shift + alt - 4 : index=4; eval "$(yabai -m query --spaces | jq --argjson index "${index}" -r '(.[] | select(.index == $index).windows[0]) as $wid | if $wid then "yabai -m window --focus \"" + ($wid | tostring) + "\"" else "skhd --key \"ctrl - " + (map(select(."is-native-fullscreen" == false)) | index(map(select(.index == $index))) + 1 % 10 | tostring) + "\"" end')" -ctrl + shift + alt - 5 : index=5; eval "$(yabai -m query --spaces | jq --argjson index "${index}" -r '(.[] | select(.index == $index).windows[0]) as $wid | if $wid then "yabai -m window --focus \"" + ($wid | tostring) + "\"" else "skhd --key \"ctrl - " + (map(select(."is-native-fullscreen" == false)) | index(map(select(.index == $index))) + 1 % 10 | tostring) + "\"" end')" +meh - 1 : index=1; eval "$(yabai -m query --spaces | jq --argjson index "${index}" -r '(.[] | select(.index == $index).windows[0]) as $wid | if $wid then "yabai -m window --focus \"" + ($wid | tostring) + "\"" else "skhd --key \"ctrl - " + (map(select(."is-native-fullscreen" == false)) | index(map(select(.index == $index))) + 1 % 10 | tostring) + "\"" end')" +meh - 2 : index=2; eval "$(yabai -m query --spaces | jq --argjson index "${index}" -r '(.[] | select(.index == $index).windows[0]) as $wid | if $wid then "yabai -m window --focus \"" + ($wid | tostring) + "\"" else "skhd --key \"ctrl - " + (map(select(."is-native-fullscreen" == false)) | index(map(select(.index == $index))) + 1 % 10 | tostring) + "\"" end')" +meh - 3 : index=3; eval "$(yabai -m query --spaces | jq --argjson index "${index}" -r '(.[] | select(.index == $index).windows[0]) as $wid | if $wid then "yabai -m window --focus \"" + ($wid | tostring) + "\"" else "skhd --key \"ctrl - " + (map(select(."is-native-fullscreen" == false)) | index(map(select(.index == $index))) + 1 % 10 | tostring) + "\"" end')" +meh - 4 : index=4; eval "$(yabai -m query --spaces | jq --argjson index "${index}" -r '(.[] | select(.index == $index).windows[0]) as $wid | if $wid then "yabai -m window --focus \"" + ($wid | tostring) + "\"" else "skhd --key \"ctrl - " + (map(select(."is-native-fullscreen" == false)) | index(map(select(.index == $index))) + 1 % 10 | tostring) + "\"" end')" +meh - 5 : index=5; eval "$(yabai -m query --spaces | jq --argjson index "${index}" -r '(.[] | select(.index == $index).windows[0]) as $wid | if $wid then "yabai -m window --focus \"" + ($wid | tostring) + "\"" else "skhd --key \"ctrl - " + (map(select(."is-native-fullscreen" == false)) | index(map(select(.index == $index))) + 1 % 10 | tostring) + "\"" end')" # Zoom a window. `--toggle float` would be nicer, but results # in the window brought back to the wrong place after toggling -ctrl + shift + alt - f : yabai -m window --toggle zoom-fullscreen +meh - f : yabai -m window --toggle zoom-fullscreen # Move/swap windows -ctrl + shift + alt - h : yabai -m window --swap west -ctrl + shift + alt - j : yabai -m window --swap south -ctrl + shift + alt - k : yabai -m window --swap north -ctrl + shift + alt - l : yabai -m window --swap east +meh - h : yabai -m window --swap west +meh - j : yabai -m window --swap south +meh - k : yabai -m window --swap north +meh - l : yabai -m window --swap east # Split -ctrl + shift + alt + cmd - h : yabai -m window --warp west -ctrl + shift + alt + cmd - j : yabai -m window --warp south -ctrl + shift + alt + cmd - k : yabai -m window --warp north -ctrl + shift + alt + cmd - l : yabai -m window --warp east +hyper - h : yabai -m window --warp west +hyper - j : yabai -m window --warp south +hyper - k : yabai -m window --warp north +hyper - l : yabai -m window --warp east # Resize window # NOTE: Custom keys can be checked with `skhd --observe` -ctrl + shift + alt - a : yabai -m window --resize left:-50:0; yabai -m window --resize right:-50:0 -ctrl + shift + alt - s : yabai -m window --resize bottom:0:50; yabai -m window --resize top:0:50 -ctrl + shift + alt - w: yabai -m window --resize top:0:-50; yabai -m window --resize bottom:0:-50 -ctrl + shift + alt - d : yabai -m window --resize right:50:0; yabai -m window --resize left:50:0 +meh - a : yabai -m window --resize left:-50:0; yabai -m window --resize right:-50:0 +meh - s : yabai -m window --resize bottom:0:50; yabai -m window --resize top:0:50 +meh - w: yabai -m window --resize top:0:-50; yabai -m window --resize bottom:0:-50 +meh - d : yabai -m window --resize right:50:0; yabai -m window --resize left:50:0 # Move window to other desktop and focus desktop -# FIXME: doesn't work with cmd only -cmd - 1 : yabai -m window --space 1 -cmd - 2 : yabai -m window --space 2; yabai -m space --focus 2 -cmd - 3 : yabai -m window --space 3 -cmd - 4 : yabai -m window --space 4 -cmd - 5 : yabai -m window --space 5 +# FIXME: doesn't work, maybe needs SIP off? +hyper - 1 : yabai -m window --space 1 +hyper - 2 : yabai -m window --space 2 +hyper - 3 : yabai -m window --space 3 +hyper - 4 : yabai -m window --space 4 +hyper - 5 : yabai -m window --space 5 # Move window to display left and right -ctrl + shift + alt - r : yabai -m window --display west; yabai -m display --focus west -ctrl + shift + alt - u : yabai -m window --display east; yabai -m display --focus east +meh - r : yabai -m window --display west; yabai -m display --focus west +meh - u : yabai -m window --display east; yabai -m display --focus east # Revert resized windows to default -ctrl + shift + alt - 0 : yabai -m space --balance +meh - 0 : yabai -m space --balance # Rotate windows clockwise -ctrl + shift + alt - y : yabai -m space --rotate 270 - +meh - y : yabai -m space --rotate 270 # Indicate focus # NOTE: Needs scripting/protection off -#ctrl + shift + alt - m : yabai -m window --opacity 0.1 && sleep $(yabai -m config window_opacity_duration) && yabai -m window --opacity 0.0 +#hyper - o: yabai -m window --opacity 0.1 && sleep $(yabai -m config window_opacity_duration) && yabai -m window --opacity 0.0 diff --git a/.config/yabai/yabairc b/.config/yabai/yabairc index 996b391..ce60924 100755 --- a/.config/yabai/yabairc +++ b/.config/yabai/yabairc @@ -4,6 +4,8 @@ # /tmp/yabai_$USER.err.log # /tmp/yabai_$USER.out.log +yabai -m window --opacity 0.1 && sleep $(yabai -m config window_opacity_duration) && yabai -m window --opacity 0.0 + yabai -m config layout bsp yabai -m config window_placement second_child @@ -28,17 +30,16 @@ yabai -m config mouse_modifier ctrl #yabai -m config --space 2 window_gap # Floating (unmanaged) apps -yabai -m rule --add app=".*" sub-layer=normal +#yabai -m rule --add app=".*" sub-layer=normal yabai -m rule --add app="^Calculator$" manage=off -yabai -m rule --add app"^=VLC$" manage=off +yabai -m rule --add app="^VLC$" manage=off yabai -m rule --add app="^System Settings$" manage=off - -# Launch borders -# https://github.com/FelixKratz/JankyBorders/issues/37#issuecomment-1871262622 -#borders order=above active_color=0xff007777 inactive_color=0xff004444 width=8.0 style=square & -#borders order=above active_color=0xffffd700 inactive_color=0xff004444 width=8.0 style=square & -#borders order=above active_color=0xffffd700 inactive_color=0xff897400 width=8.0 style=square & -#borders order=above active_color=0xffffd700 background_color=0xee897400 width=8.0 style=square blacklist="firefox" & -#borders order=above active_color=0xffffd700 background_color=0xee897400 width=8.0 style=square & +# yabai -m rule --add app="^Firefox$" space=1 +yabai -m rule --add app="^Ghostty$" space=2 +yabai -m rule --add app="^Things$" space=3 +yabai -m rule --add app="^Calendar$" space=3 +yabai -m rule --add app="^Microsoft Teams$" space=5 +yabai -m rule --add app="^Slack$" space=5 +yabai -m rule --add app="^Signal$" space=5 echo "$(date) yabai config $0 loaded" From cc21cdf45e9568c176febd7651b9c295f31402c3 Mon Sep 17 00:00:00 2001 From: Oliver Ladner Date: Thu, 10 Jul 2025 13:34:35 +0200 Subject: [PATCH 21/38] feat(yabai): add keymaps to toggle splits and force splits vertically/horizontally --- .config/skhd/skhdrc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.config/skhd/skhdrc b/.config/skhd/skhdrc index 1cbf6af..188e154 100755 --- a/.config/skhd/skhdrc +++ b/.config/skhd/skhdrc @@ -36,6 +36,13 @@ hyper - j : yabai -m window --warp south hyper - k : yabai -m window --warp north hyper - l : yabai -m window --warp east +# toggle split +meh - t : yabai -m window --toggle split +# split vertically +meh - v : yabai -m window --insert east +# split horizontally +meh - x : yabai -m window --insert south + # Resize window # NOTE: Custom keys can be checked with `skhd --observe` meh - a : yabai -m window --resize left:-50:0; yabai -m window --resize right:-50:0 @@ -44,7 +51,7 @@ meh - w: yabai -m window --resize top:0:-50; yabai -m window --resize bottom:0 meh - d : yabai -m window --resize right:50:0; yabai -m window --resize left:50:0 # Move window to other desktop and focus desktop -# FIXME: doesn't work, maybe needs SIP off? +# FIXME: does not work with SIP enabled since macOS 15.? hyper - 1 : yabai -m window --space 1 hyper - 2 : yabai -m window --space 2 hyper - 3 : yabai -m window --space 3 From 80e076337922d3c4be20775a584264ed84167033 Mon Sep 17 00:00:00 2001 From: Oliver Ladner Date: Wed, 13 Aug 2025 10:00:16 +0200 Subject: [PATCH 22/38] feat(alacritty): custom config for TODO.md --- .config/alacritty/alacritty-todo.toml | 65 +++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 .config/alacritty/alacritty-todo.toml diff --git a/.config/alacritty/alacritty-todo.toml b/.config/alacritty/alacritty-todo.toml new file mode 100644 index 0000000..8f81d5e --- /dev/null +++ b/.config/alacritty/alacritty-todo.toml @@ -0,0 +1,65 @@ +# Used for TODO.txt +[font] +normal = { family = "JetBrainsMono Nerd Font", style = "Thin" } +bold = { style = "Bold" } +italic = { style = "Italic" } +bold_italic = { style = "Bold Italic" } +size = 17 + +[window] +option_as_alt = "Both" +decorations = "None" +padding = { x = 12, y = 5 } +dynamic_padding = true +# opacity = 0.8 +# blur = true + +[bell] +duration = 10 +color = "#3a3a3a" + +[cursor] +style = { shape = "Block", blinking = "Always" } + +[colors.search] +matches = { foreground = "#f4d03f", background = "#273746" } +focused_match = { foreground = "#273746", background = "#f4d03f" } + +[colors.footer_bar] +background = "#f4d03f" +foreground = "#273746" + +[keyboard] + +bindings = [ + # Required to make Ctrl+/ work on macOS (used in Telescope) + { chars = "\u001F", key = "Slash", mods = "Control" }, + { key = "Key0", mods = "Command", action = "ResetFontSize" }, + { key = "0", mods = "Command", action = "ResetFontSize" }, + { key = "Plus", mods = "Command", action = "IncreaseFontSize" }, + { key = "Minus", mods = "Command", action = "DecreaseFontSize" }, + { key = "PageUp", mods = "Shift", action = "ScrollPageUp" }, + { key = "PageDown", mods = "Shift", action = "ScrollPageDown" }, + # Disable Cmd+w to avoid accidental closing. Disabling Cmd+q needs more work + { key = "w", mods = "Command", action = "None" }, +] + +[general] +# Vi Mode +# The vi mode allows moving around Alacritty's viewport and scrollback using +# the keyboard. It also serves as a jump-off point for other features like +# search and opening URLs with the keyboard. By default you can launch it +# using Ctrl Shift Space. + +# Selection +# One useful feature of vi mode is the ability to make selections and copy text +# to the clipboard. By default you can start a selection using v and copy it +# using y. All selection modes that are available with the mouse can be accessed +# from vi mode, including the semantic (Alt v), line (Shift v) and block +# selection (Ctrl v). You can also toggle between them while the selection is +# still active. + +import = ["~/.config/alacritty/rose-pine-moon.toml"] + +#[mouse] +#hide_when_typing = true From d3f7170b1dcb780506c2e4e33d3e844d4ac965b7 Mon Sep 17 00:00:00 2001 From: Oliver Ladner Date: Mon, 25 Aug 2025 11:49:26 +0200 Subject: [PATCH 23/38] feat(alacritty): switch to Berkeley Mono --- .config/alacritty/alacritty-todo.toml | 8 ++++---- .config/alacritty/alacritty.toml | 10 ++++++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/.config/alacritty/alacritty-todo.toml b/.config/alacritty/alacritty-todo.toml index 8f81d5e..6dd9f61 100644 --- a/.config/alacritty/alacritty-todo.toml +++ b/.config/alacritty/alacritty-todo.toml @@ -1,10 +1,10 @@ # Used for TODO.txt [font] -normal = { family = "JetBrainsMono Nerd Font", style = "Thin" } +normal = { family = "BerkeleyMono Nerd Font Mono", style = "Regular" } bold = { style = "Bold" } -italic = { style = "Italic" } -bold_italic = { style = "Bold Italic" } -size = 17 +italic = { style = "Oblique" } +bold_italic = { style = "Bold Oblique" } +size = 15 [window] option_as_alt = "Both" diff --git a/.config/alacritty/alacritty.toml b/.config/alacritty/alacritty.toml index 2a9496c..45f2da3 100644 --- a/.config/alacritty/alacritty.toml +++ b/.config/alacritty/alacritty.toml @@ -1,10 +1,12 @@ [font] -normal = { family = "JetBrainsMono Nerd Font", style = "Thin" } +normal = { family = "BerkeleyMono Nerd Font Mono", style = "Regular" } +# NOTE: if font seems to bold, disable font smoothing for Alacritty +# defaults write org.alacritty AppleFontSmoothing -int 0 bold = { style = "Bold" } -italic = { style = "Italic" } -bold_italic = { style = "Bold Italic" } -size = 17 +italic = { style = "Oblique" } +bold_italic = { style = "Bold Oblique" } +size = 18 [window] option_as_alt = "Both" From 2ab264b22801871a1d052695fed9cc296ee81506 Mon Sep 17 00:00:00 2001 From: Oliver Ladner Date: Mon, 25 Aug 2025 12:30:26 +0200 Subject: [PATCH 24/38] feat(alacritty): green it is now --- .config/alacritty/alacritty.toml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.config/alacritty/alacritty.toml b/.config/alacritty/alacritty.toml index 45f2da3..0d5b13a 100644 --- a/.config/alacritty/alacritty.toml +++ b/.config/alacritty/alacritty.toml @@ -1,4 +1,3 @@ - [font] normal = { family = "BerkeleyMono Nerd Font Mono", style = "Regular" } # NOTE: if font seems to bold, disable font smoothing for Alacritty @@ -7,6 +6,7 @@ bold = { style = "Bold" } italic = { style = "Oblique" } bold_italic = { style = "Bold Oblique" } size = 18 +# offset = { x = 0, y = 0 } [window] option_as_alt = "Both" @@ -17,19 +17,19 @@ dynamic_padding = true # blur = true [bell] -duration = 10 +duration = 0 color = "#3a3a3a" [cursor] style = { shape = "Block", blinking = "Always" } [colors.search] -matches = { foreground = "#f4d03f", background = "#273746" } -focused_match = { foreground = "#273746", background = "#f4d03f" } +matches = { foreground = "#007a61", background = "#dedede" } +focused_match = { foreground = "#dedede", background = "#007a61" } [colors.footer_bar] -background = "#f4d03f" -foreground = "#273746" +background = "#007a61" +foreground = "#00dcaf" [keyboard] From 62cade5ce50c92a74f9a10d4ac8d2b553e224624 Mon Sep 17 00:00:00 2001 From: Oliver Ladner Date: Mon, 25 Aug 2025 15:05:03 +0200 Subject: [PATCH 25/38] feat(alacritty): reintroduce Vi mode, set custom colors for it --- .config/alacritty/alacritty.toml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.config/alacritty/alacritty.toml b/.config/alacritty/alacritty.toml index 0d5b13a..8a8b478 100644 --- a/.config/alacritty/alacritty.toml +++ b/.config/alacritty/alacritty.toml @@ -9,7 +9,8 @@ size = 18 # offset = { x = 0, y = 0 } [window] -option_as_alt = "Both" +# option_as_alt = "Both" +option_as_alt = "None" decorations = "None" padding = { x = 12, y = 5 } dynamic_padding = true @@ -31,8 +32,11 @@ focused_match = { foreground = "#dedede", background = "#007a61" } background = "#007a61" foreground = "#00dcaf" -[keyboard] +[colors.vi_mode_cursor] +text = "#dedede" +cursor = "#007a61" +[keyboard] bindings = [ # Required to make Ctrl+/ work on macOS (used in Telescope) { chars = "\u001F", key = "Slash", mods = "Control" }, @@ -44,6 +48,7 @@ bindings = [ { key = "PageDown", mods = "Shift", action = "ScrollPageDown" }, # Disable Cmd+w to avoid accidental closing. Disabling Cmd+q needs more work { key = "w", mods = "Command", action = "None" }, + { key = "v", mods = "Alt", action="ToggleViMode" }, ] [general] From f797ec1b4684e6865b204dced2b57f62a1e47268 Mon Sep 17 00:00:00 2001 From: Oliver Ladner Date: Sun, 5 Oct 2025 13:38:04 +0200 Subject: [PATCH 26/38] fix(alacritty): add keybind for search on Linux --- .config/alacritty/alacritty.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/.config/alacritty/alacritty.toml b/.config/alacritty/alacritty.toml index 8a8b478..1decd0b 100644 --- a/.config/alacritty/alacritty.toml +++ b/.config/alacritty/alacritty.toml @@ -49,6 +49,7 @@ bindings = [ # Disable Cmd+w to avoid accidental closing. Disabling Cmd+q needs more work { key = "w", mods = "Command", action = "None" }, { key = "v", mods = "Alt", action="ToggleViMode" }, + { key = "f", mods = "Control", action = "SearchForward" }, ] [general] From 5d193545de5d3c0bf86d3ab40a7b20f73b4dcb49 Mon Sep 17 00:00:00 2001 From: Oliver Ladner Date: Fri, 17 Oct 2025 07:47:23 +0200 Subject: [PATCH 27/38] feat(git): extend credential cache helper timeout --- .config/git/config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/git/config b/.config/git/config index 1188a61..267e6da 100644 --- a/.config/git/config +++ b/.config/git/config @@ -10,7 +10,7 @@ status = auto [credential] - helper = cache --timeout 43200 + helper = cache --timeout=604800 [diff] tool = vimdiff From 43b143060613cbcedaf553fe7ee115bf06edcfe4 Mon Sep 17 00:00:00 2001 From: Oliver Ladner Date: Fri, 17 Oct 2025 08:45:01 +0200 Subject: [PATCH 28/38] refactor(alacritty): import OS/system-specific configs, archive unused themes --- .config/alacritty/README.md | 28 +------- .config/alacritty/alacritty-macos.toml | 6 ++ .config/alacritty/alacritty-minix.toml | 9 +++ .config/alacritty/alacritty-todo.toml | 65 ------------------- .config/alacritty/alacritty.toml | 8 +-- .../{ => archive}/catppuccin-latte.toml | 0 .../{ => archive}/catppuccin-macchiato.toml | 0 .../{ => archive}/tokyonight_day.toml | 0 .../{ => archive}/tokyonight_moon.toml | 0 .../{ => archive}/tokyonight_night.toml | 0 .../{ => archive}/tokyonight_storm.toml | 0 11 files changed, 22 insertions(+), 94 deletions(-) create mode 100644 .config/alacritty/alacritty-macos.toml create mode 100644 .config/alacritty/alacritty-minix.toml delete mode 100644 .config/alacritty/alacritty-todo.toml rename .config/alacritty/{ => archive}/catppuccin-latte.toml (100%) rename .config/alacritty/{ => archive}/catppuccin-macchiato.toml (100%) rename .config/alacritty/{ => archive}/tokyonight_day.toml (100%) rename .config/alacritty/{ => archive}/tokyonight_moon.toml (100%) rename .config/alacritty/{ => archive}/tokyonight_night.toml (100%) rename .config/alacritty/{ => archive}/tokyonight_storm.toml (100%) diff --git a/.config/alacritty/README.md b/.config/alacritty/README.md index 8eee598..ddc0acc 100644 --- a/.config/alacritty/README.md +++ b/.config/alacritty/README.md @@ -1,26 +1,4 @@ -# Alacritty Windows config +# Alacritty config -``` -import = [ - "C:/Users/foobar/AppData/Roaming/alacritty/tokyonight_moon.toml" -] - -[font] -normal = { family = "JetBrainsMono Nerd Font", style = "Regular" } -size = 16 - -[window] -decorations = "Full" -padding = { x = 5, y = 5 } -dynamic_padding = true - -[bell] -duration = 10 -color = "#3a3a3a" - -[cursor] -style = { shape = "Block", blinking = "Always" } - -[keyboard] -bindings = [{ key = "T", mods = "Control", action = "CreateNewWindow" }] -``` +Delete the `alacrity-.toml` files you will not need. Those contain +OS/system-dependant preferences like font size etc. diff --git a/.config/alacritty/alacritty-macos.toml b/.config/alacritty/alacritty-macos.toml new file mode 100644 index 0000000..d217a6a --- /dev/null +++ b/.config/alacritty/alacritty-macos.toml @@ -0,0 +1,6 @@ +[font] +size = 18 + +[window] +opacity = 0.85 +blur = true diff --git a/.config/alacritty/alacritty-minix.toml b/.config/alacritty/alacritty-minix.toml new file mode 100644 index 0000000..c3d9f60 --- /dev/null +++ b/.config/alacritty/alacritty-minix.toml @@ -0,0 +1,9 @@ +[font] +size = 14 + +[window] +opacity = 0.9 +blur = true + +[general] +import = ["~/.config/alacritty/rose-pine-moon.toml"] diff --git a/.config/alacritty/alacritty-todo.toml b/.config/alacritty/alacritty-todo.toml deleted file mode 100644 index 6dd9f61..0000000 --- a/.config/alacritty/alacritty-todo.toml +++ /dev/null @@ -1,65 +0,0 @@ -# Used for TODO.txt -[font] -normal = { family = "BerkeleyMono Nerd Font Mono", style = "Regular" } -bold = { style = "Bold" } -italic = { style = "Oblique" } -bold_italic = { style = "Bold Oblique" } -size = 15 - -[window] -option_as_alt = "Both" -decorations = "None" -padding = { x = 12, y = 5 } -dynamic_padding = true -# opacity = 0.8 -# blur = true - -[bell] -duration = 10 -color = "#3a3a3a" - -[cursor] -style = { shape = "Block", blinking = "Always" } - -[colors.search] -matches = { foreground = "#f4d03f", background = "#273746" } -focused_match = { foreground = "#273746", background = "#f4d03f" } - -[colors.footer_bar] -background = "#f4d03f" -foreground = "#273746" - -[keyboard] - -bindings = [ - # Required to make Ctrl+/ work on macOS (used in Telescope) - { chars = "\u001F", key = "Slash", mods = "Control" }, - { key = "Key0", mods = "Command", action = "ResetFontSize" }, - { key = "0", mods = "Command", action = "ResetFontSize" }, - { key = "Plus", mods = "Command", action = "IncreaseFontSize" }, - { key = "Minus", mods = "Command", action = "DecreaseFontSize" }, - { key = "PageUp", mods = "Shift", action = "ScrollPageUp" }, - { key = "PageDown", mods = "Shift", action = "ScrollPageDown" }, - # Disable Cmd+w to avoid accidental closing. Disabling Cmd+q needs more work - { key = "w", mods = "Command", action = "None" }, -] - -[general] -# Vi Mode -# The vi mode allows moving around Alacritty's viewport and scrollback using -# the keyboard. It also serves as a jump-off point for other features like -# search and opening URLs with the keyboard. By default you can launch it -# using Ctrl Shift Space. - -# Selection -# One useful feature of vi mode is the ability to make selections and copy text -# to the clipboard. By default you can start a selection using v and copy it -# using y. All selection modes that are available with the mouse can be accessed -# from vi mode, including the semantic (Alt v), line (Shift v) and block -# selection (Ctrl v). You can also toggle between them while the selection is -# still active. - -import = ["~/.config/alacritty/rose-pine-moon.toml"] - -#[mouse] -#hide_when_typing = true diff --git a/.config/alacritty/alacritty.toml b/.config/alacritty/alacritty.toml index 1decd0b..9312cf3 100644 --- a/.config/alacritty/alacritty.toml +++ b/.config/alacritty/alacritty.toml @@ -5,8 +5,7 @@ normal = { family = "BerkeleyMono Nerd Font Mono", style = "Regular" } bold = { style = "Bold" } italic = { style = "Oblique" } bold_italic = { style = "Bold Oblique" } -size = 18 -# offset = { x = 0, y = 0 } +#offset = { x = 0, y = 0 } [window] # option_as_alt = "Both" @@ -14,7 +13,6 @@ option_as_alt = "None" decorations = "None" padding = { x = 12, y = 5 } dynamic_padding = true -# opacity = 0.8 # blur = true [bell] @@ -67,7 +65,9 @@ bindings = [ # selection (Ctrl v). You can also toggle between them while the selection is # still active. -import = ["~/.config/alacritty/rose-pine-dawn.toml"] +import = ["~/.config/alacritty/rose-pine-moon.toml"] +import = ["~/.config/alacritty/alacritty-macos.toml"] +import = ["~/.config/alacritty/alacritty-minix.toml"] #[mouse] #hide_when_typing = true diff --git a/.config/alacritty/catppuccin-latte.toml b/.config/alacritty/archive/catppuccin-latte.toml similarity index 100% rename from .config/alacritty/catppuccin-latte.toml rename to .config/alacritty/archive/catppuccin-latte.toml diff --git a/.config/alacritty/catppuccin-macchiato.toml b/.config/alacritty/archive/catppuccin-macchiato.toml similarity index 100% rename from .config/alacritty/catppuccin-macchiato.toml rename to .config/alacritty/archive/catppuccin-macchiato.toml diff --git a/.config/alacritty/tokyonight_day.toml b/.config/alacritty/archive/tokyonight_day.toml similarity index 100% rename from .config/alacritty/tokyonight_day.toml rename to .config/alacritty/archive/tokyonight_day.toml diff --git a/.config/alacritty/tokyonight_moon.toml b/.config/alacritty/archive/tokyonight_moon.toml similarity index 100% rename from .config/alacritty/tokyonight_moon.toml rename to .config/alacritty/archive/tokyonight_moon.toml diff --git a/.config/alacritty/tokyonight_night.toml b/.config/alacritty/archive/tokyonight_night.toml similarity index 100% rename from .config/alacritty/tokyonight_night.toml rename to .config/alacritty/archive/tokyonight_night.toml diff --git a/.config/alacritty/tokyonight_storm.toml b/.config/alacritty/archive/tokyonight_storm.toml similarity index 100% rename from .config/alacritty/tokyonight_storm.toml rename to .config/alacritty/archive/tokyonight_storm.toml From d04a6f767e63a0ec199903d94de7801bec24dc9e Mon Sep 17 00:00:00 2001 From: Oliver Ladner Date: Fri, 17 Oct 2025 08:47:34 +0200 Subject: [PATCH 29/38] fix(alacritty): import syntax --- .config/alacritty/alacritty.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.config/alacritty/alacritty.toml b/.config/alacritty/alacritty.toml index 9312cf3..e723e3a 100644 --- a/.config/alacritty/alacritty.toml +++ b/.config/alacritty/alacritty.toml @@ -65,9 +65,9 @@ bindings = [ # selection (Ctrl v). You can also toggle between them while the selection is # still active. -import = ["~/.config/alacritty/rose-pine-moon.toml"] -import = ["~/.config/alacritty/alacritty-macos.toml"] -import = ["~/.config/alacritty/alacritty-minix.toml"] +import = ["~/.config/alacritty/rose-pine-moon.toml", +"~/.config/alacritty/alacritty-macos.toml", +"~/.config/alacritty/alacritty-minix.toml"] #[mouse] #hide_when_typing = true From 877c629fbc3cc94f8469dceb24f5bce436cb0379 Mon Sep 17 00:00:00 2001 From: Oliver Ladner Date: Fri, 17 Oct 2025 08:52:39 +0200 Subject: [PATCH 30/38] style(alacritty): properly align imports so macOS toggle script works --- .config/alacritty/alacritty.toml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.config/alacritty/alacritty.toml b/.config/alacritty/alacritty.toml index e723e3a..fd75251 100644 --- a/.config/alacritty/alacritty.toml +++ b/.config/alacritty/alacritty.toml @@ -65,9 +65,11 @@ bindings = [ # selection (Ctrl v). You can also toggle between them while the selection is # still active. -import = ["~/.config/alacritty/rose-pine-moon.toml", +import = [ +"~/.config/alacritty/rose-pine-moon.toml", "~/.config/alacritty/alacritty-macos.toml", -"~/.config/alacritty/alacritty-minix.toml"] +"~/.config/alacritty/alacritty-minix.toml" +] #[mouse] #hide_when_typing = true From 7563030c0616489ec750e82fd7fdb365e595d444 Mon Sep 17 00:00:00 2001 From: Oliver Ladner Date: Fri, 17 Oct 2025 08:56:37 +0200 Subject: [PATCH 31/38] fix(alacritty): disable blur as not working on Sway --- .config/alacritty/alacritty-minix.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/alacritty/alacritty-minix.toml b/.config/alacritty/alacritty-minix.toml index c3d9f60..26a2a8f 100644 --- a/.config/alacritty/alacritty-minix.toml +++ b/.config/alacritty/alacritty-minix.toml @@ -3,7 +3,7 @@ size = 14 [window] opacity = 0.9 -blur = true +blur = false # does not work in Sway [general] import = ["~/.config/alacritty/rose-pine-moon.toml"] From 90966e9faae42bdb11417f6632bb7344f8008aea Mon Sep 17 00:00:00 2001 From: Oliver Ladner Date: Tue, 4 Nov 2025 09:19:10 +0100 Subject: [PATCH 32/38] fix(ghostty): use Berkeley font, fix theme name --- .config/ghostty/config | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.config/ghostty/config b/.config/ghostty/config index d614fd5..97f1a62 100644 --- a/.config/ghostty/config +++ b/.config/ghostty/config @@ -1,4 +1,5 @@ -theme = light:rose-pine-dawn,dark:rose-pine-moon +# theme = light:Rose Pine Dawn,dark:Rose Pine Moon +theme = light:Rose Pine,dark:Rose Pine # FIXME: https://github.com/mbadolato/iTerm2-Color-Schemes/issues/442 shell-integration-features = no-cursor @@ -12,7 +13,7 @@ cursor-invert-fg-bg = false # background-opacity = 0.9 -font-family = "JetBrainsMono Nerd Font" +font-family = "BerkeleyMono Nerd Font Mono" # font-style depends on the font's features font-style = "Regular" font-style-bold = "Bold" @@ -23,7 +24,7 @@ font-feature = "-calt" font-size = 17 # Reduce letter spacing adjust-cell-width = -8% -adjust-cell-height = -1 +#adjust-cell-height = -1 window-padding-x = 8 window-padding-y = 4 From b7d00871569cd08a4348d5d21d51f243c9f9b17c Mon Sep 17 00:00:00 2001 From: Oliver Ladner Date: Tue, 20 Jan 2026 13:53:28 +0100 Subject: [PATCH 33/38] feat(yabai): autofocus and smaller gaps --- .config/yabai/yabairc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.config/yabai/yabairc b/.config/yabai/yabairc index ce60924..9717393 100755 --- a/.config/yabai/yabairc +++ b/.config/yabai/yabairc @@ -10,7 +10,7 @@ yabai -m config layout bsp yabai -m config window_placement second_child # Global -yabai -m config focus_follows_mouse off +yabai -m config focus_follows_mouse autofocus yabai -m config mouse_follows_focus on yabai -m config layout bsp @@ -20,7 +20,7 @@ yabai -m config top_padding 8 yabai -m config bottom_padding 8 yabai -m config left_padding 8 yabai -m config right_padding 8 -yabai -m config window_gap 16 +yabai -m config window_gap 12 yabai -m config mouse_action1 move yabai -m config mouse_action2 resize From 2cc7a82586c9398d3863c8df1e1e11264212feaf Mon Sep 17 00:00:00 2001 From: Oliver Ladner Date: Tue, 20 Jan 2026 13:54:37 +0100 Subject: [PATCH 34/38] feat(gitconfig): nvdimdiff > vimdiff --- .config/git/config | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/.config/git/config b/.config/git/config index 267e6da..0cc0a01 100644 --- a/.config/git/config +++ b/.config/git/config @@ -13,7 +13,9 @@ helper = cache --timeout=604800 [diff] - tool = vimdiff + tool = nvimdiff +[difftool "nvimdiff"] + cmd = "nvim -d \"$LOCAL\" \"$REMOTE\"" [http] postBuffer = 524288000 @@ -25,8 +27,16 @@ [init] defaultBranch = main [merge] + tool = "nvim" conflictstyle = diff3 +[mergetool] + keepBackup = false + prompt = true + +[mergetool "nvim"] + cmd = "nvim -d -c \"wincmd l\" -c \"norm ]c\" \"$LOCAL\" \"$MERGED\" \"$REMOTE\"" + # Set a correct user.name and user.email for work projects [includeIf "gitdir:~/git/work/"] path = ~/git/work/gitconfig From d887d06089c4a3f577c06598a64f8788de79cfea Mon Sep 17 00:00:00 2001 From: Oliver Ladner Date: Thu, 29 Jan 2026 16:22:31 +0100 Subject: [PATCH 35/38] feat: add presenterm --- .config/presenterm/config.yaml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 .config/presenterm/config.yaml diff --git a/.config/presenterm/config.yaml b/.config/presenterm/config.yaml new file mode 100644 index 0000000..6b1d2bf --- /dev/null +++ b/.config/presenterm/config.yaml @@ -0,0 +1,4 @@ +defaults: + theme: catppuccin-mocha + + # validate_overflows: always From 195d89db1faa185de69059f9785bac7e7346f1ad Mon Sep 17 00:00:00 2001 From: Oliver Ladner Date: Thu, 29 Jan 2026 16:28:09 +0100 Subject: [PATCH 36/38] feat: add pi --- .config/pi/agent/AGENTS.md | 20 ++++++++++++++++++++ .config/pi/agent/APPEND_SYSTEM.md | 4 ++++ 2 files changed, 24 insertions(+) create mode 100644 .config/pi/agent/AGENTS.md create mode 100644 .config/pi/agent/APPEND_SYSTEM.md diff --git a/.config/pi/agent/AGENTS.md b/.config/pi/agent/AGENTS.md new file mode 100644 index 0000000..78d6a1d --- /dev/null +++ b/.config/pi/agent/AGENTS.md @@ -0,0 +1,20 @@ +# Git instructions + +- Adhere to https://www.conventionalcommits.org for commit messages +- Maintain a `CHANGELOG.md` file adhering to https://keepachangelog.com and try + to map the conventional commit messages to the respective sections of keep a + changelog +- When creating branches, prefix them with "pi-" + +# Test instructions + +- Write tests in the natural tooling for the used programming language +- When doing HTTP tests, use Cypress + +# Style instructions + +- Avoid emojis in code outputs unless it adds significant visual help +- Use `NOTE:`, `FIXME:`, `XXX:` markers in comments where beneficial +- Never use emojis in Markdown files +- Keep line length to 80 characters in Markdown files, but do not split URLs or + code fragments (variable/function names etc.). diff --git a/.config/pi/agent/APPEND_SYSTEM.md b/.config/pi/agent/APPEND_SYSTEM.md new file mode 100644 index 0000000..e81d63d --- /dev/null +++ b/.config/pi/agent/APPEND_SYSTEM.md @@ -0,0 +1,4 @@ +Additional preferences: + +- If something is potentially dangerous, mention it by prefixing it with "[DANGER] [DANGER] [DANGER] " +- When doing Node code, use pnpm instead of npm From 8c180d126c31f6573c31b64b7230d035ddeb238a Mon Sep 17 00:00:00 2001 From: Oliver Ladner Date: Fri, 30 Jan 2026 07:36:05 +0100 Subject: [PATCH 37/38] feat(brew) update package list --- brew.txt | 169 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 161 insertions(+), 8 deletions(-) diff --git a/brew.txt b/brew.txt index 7aa9b46..3c5bc00 100644 --- a/brew.txt +++ b/brew.txt @@ -1,31 +1,61 @@ +abseil angle-grinder ansible aom +apache-arrow aribb24 +asdf assimp +assimp@5 +aws-c-auth +aws-c-cal +aws-c-common +aws-c-compression +aws-c-event-stream +aws-c-http +aws-c-io +aws-c-mqtt +aws-c-s3 +aws-c-sdkutils +aws-checksums +aws-crt-cpp aws-elasticbeanstalk +aws-sdk-cpp awscli azure-cli +bash bicep bind -borders +boost brotli c-ares ca-certificates cairo +ceres-solver certifi cffi +cgns +checkov cjson +cloc cmake cryptography +datasette dav1d dbus +deno +diff-pdf diffutils dive dos2unix +dotnet dotnet@8 double-conversion +dust dvdrtools +eigen +elixir +erlang fd ffmpeg figlet @@ -33,18 +63,25 @@ findutils flac flyctl fontconfig +fortune freetype +freeze frei0r fribidi +fx +fzf +gcc gd gdbm gdk-pixbuf geoip gettext -ghostscript +gflags giflib git +glew glib +glog glow gmp gnupg @@ -52,26 +89,41 @@ gnuplot gnutls go gpgme +gpgmepp graphicsmagick graphite2 graphviz +grpc gts gum +gumbo-parser harfbuzz +harlequin +hcledit +hdf5 highway htop +httrack hunspell +hurl +hwloc icu4c@76 +icu4c@77 +icu4c@78 imagemagick imath +infracost ipcalc +iperf3 +isl jasper -jbig2dec jemalloc +jpeg jpeg-turbo jpeg-xl jq json-c +jsoncpp k9s krb5 kubectx @@ -79,6 +131,7 @@ kubernetes-cli lame lazygit leptonica +libaec libarchive libass libassuan @@ -90,21 +143,26 @@ libcerf libde265 libdeflate libdicom +libedit libevent libexif libfido2 libgcrypt -libgit2@1.8 +libgit2 libgpg-error +libharu libheif -libidn libidn2 libksba liblinear liblqr +libmaxminddb libmicrohttpd libmng +libmpc libnghttp2 +libnghttp3 +libngtcp2 libogg libomp libpng @@ -122,6 +180,8 @@ libssh2 libtasn1 libtiff libtool +libudfread +libultrahdr libunibreak libunistring libusb @@ -130,7 +190,6 @@ libvidstab libvmaf libvorbis libvpx -libvterm libwebsockets libx11 libxau @@ -140,100 +199,177 @@ libxext libxml2 libxrender libyaml +libzip +litehtml little-cms2 llvm lolcat lpeg lua luajit +luarocks luv lz4 lzo +m1ddc m4 macism marksman mbedtls +mbedtls@3 md4c md5sha1sum +metis midnight-commander minicom +mmdbinspect mpdecimal +mpfr mpg123 -msgpack mysql-client mysql-client@8.0 ncdu ncurses neovide neovim +netcdf netpbm nettle +nlohmann-json nmap node npth nspr nss +numpy +oh-my-posh oniguruma +onnx +openblas opencore-amr +opencv openexr openjdk openjpeg +openjph openslide openssl@1.1 openssl@3 openstackclient opentofu +openvino opus +osv-scanner p11-kit +p7zip packer pandoc pango +parallel pcre2 pinentry pixman pkgconf +pnpm +podman poppler +posting +presenterm prettyping +proj +proselint +protobuf +pssh pugixml pwgen pycparser +pydantic python-certifi python-cryptography python-packaging +python-setuptools python-typing-extensions python@3.10 python@3.11 python@3.12 python@3.13 +python@3.14 qt +qt3d +qt5compat +qtbase +qtcharts +qtconnectivity +qtdatavis3d +qtdeclarative +qtgraphs +qtgrpc +qthttpserver +qtimageformats +qtlanguageserver +qtlocation +qtlottie +qtmultimedia +qtnetworkauth +qtpositioning +qtquick3d +qtquick3dphysics +qtquickeffectmaker +qtquicktimeline +qtremoteobjects +qtscxml +qtsensors +qtserialbus +qtserialport +qtshadertools +qtspeech +qtsvg +qttools +qttranslations +qtvirtualkeyboard +qtwebchannel +qtwebengine +qtwebsockets +qtwebview rav1e +re2 readline ripgrep +rpds-py rpm2cpio rubberband rust s-lang sdl2 shared-mime-info -skhd +simdjson +skhd-zig snappy speedtest-cli speex sqlite +sqlite-utils srt sslyze stress-ng +suite-sparse svt-av1 swaks switchaudio-osx task taskwarrior-tui +tbb telnet termshot terraform +terraform-docs +terrascan tesseract tflint +tfsec +tfupdate theora +thrift tig timg tmux @@ -241,42 +377,57 @@ tmux-mem-cpu-load tokei tree tree-sitter +trivy ttyd unbound unibilium +unixodbc userspace-rcu +utf8cpp utf8proc uthash +uv +uvwasi vhs +vtk watch wdc webp wget +wireguard-go +wireguard-tools +wxwidgets@3.2 x264 x265 +xan xorgproto xvid xz yabai +yt-dlp z3 zeromq zimg zlib zsh-autosuggestions zsh-completions +zsh-syntax-highlighting zstd aerospace alacritty basictex betterdisplay +bruno cool-retro-term cyberduck +db-browser-for-sqlite disk-inventory-x forklift ghostty hot karabiner-elements krita +librewolf maccy marta microsoft-auto-update @@ -284,4 +435,6 @@ microsoft-teams mqtt-explorer mysqlworkbench openscad +pixelorama powershell +vscodium From d157b2b25a84483f0496e2805c7b36e520116def Mon Sep 17 00:00:00 2001 From: Oliver Ladner Date: Sun, 1 Feb 2026 11:46:50 +0100 Subject: [PATCH 38/38] feat: add Asahi reboot script --- bin/bootasahi.sh | 5 +++++ 1 file changed, 5 insertions(+) create mode 100755 bin/bootasahi.sh diff --git a/bin/bootasahi.sh b/bin/bootasahi.sh new file mode 100755 index 0000000..5b9d429 --- /dev/null +++ b/bin/bootasahi.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +# +# Rebot into Asahi on next boot + +sudo bless -mount /Volumes/asahi --setBoot --nextonly && reboot