Compare commits

..

38 commits

Author SHA1 Message Date
d157b2b25a feat: add Asahi reboot script 2026-02-01 11:46:50 +01:00
8c180d126c feat(brew) update package list 2026-01-30 07:36:05 +01:00
195d89db1f feat: add pi 2026-01-29 16:28:09 +01:00
d887d06089 feat: add presenterm 2026-01-29 16:22:31 +01:00
2cc7a82586 feat(gitconfig): nvdimdiff > vimdiff 2026-01-20 13:54:37 +01:00
b7d0087156 feat(yabai): autofocus and smaller gaps 2026-01-20 13:53:28 +01:00
90966e9faa fix(ghostty): use Berkeley font, fix theme name 2025-11-04 09:19:10 +01:00
7563030c06 fix(alacritty): disable blur as not working on Sway 2025-10-17 08:56:37 +02:00
877c629fbc style(alacritty): properly align imports so macOS toggle script works 2025-10-17 08:52:39 +02:00
d04a6f767e fix(alacritty): import syntax 2025-10-17 08:47:34 +02:00
43b1430606 refactor(alacritty): import OS/system-specific configs, archive unused themes 2025-10-17 08:45:01 +02:00
5d193545de feat(git): extend credential cache helper timeout 2025-10-17 07:47:23 +02:00
f797ec1b46 fix(alacritty): add keybind for search on Linux 2025-10-05 13:38:04 +02:00
62cade5ce5 feat(alacritty): reintroduce Vi mode, set custom colors for it 2025-08-25 15:05:03 +02:00
2ab264b228 feat(alacritty): green it is now 2025-08-25 12:30:26 +02:00
d3f7170b1d feat(alacritty): switch to Berkeley Mono 2025-08-25 11:49:26 +02:00
80e0763379 feat(alacritty): custom config for TODO.md 2025-08-13 10:00:16 +02:00
cc21cdf45e feat(yabai): add keymaps to toggle splits and force splits
vertically/horizontally
2025-07-10 13:34:35 +02:00
358c24a3da refactor(yabai,skhd): remove clutter, use meh/hyper shortcuts for definitions 2025-07-10 12:55:04 +02:00
2273a2adc9 feat(git): only use pager if output is more than one screen 2025-07-03 10:31:34 +02:00
973ae4b49b feat: VSCodium>VSCode 2025-07-02 10:16:59 +02:00
45b0d86ff7 fix: update yabai/ghostty config 2025-06-03 09:41:35 +02:00
65cbb16299 fix: ghostty color scheme changes 2025-05-27 09:02:14 +02:00
0dd91c70a1 fix: ghostty color scheme changes 2025-05-27 08:11:41 +02:00
295ece76e8 fix(skhd): fix resize keymaps 2025-05-08 10:16:25 +02:00
e45aafb455 fix(skhd): re-enable split 2025-05-08 09:55:52 +02:00
692cd90af0 fix(yabai): disable auto_balance again, make newer windows bigger 2025-05-08 09:55:16 +02:00
660f539026 feat: use yabai and skhd again 2025-05-06 14:48:59 +02:00
0605282dd4 feat: try fancier gaps 2025-03-27 08:03:01 +01:00
902c4b8c2d feat: try transparency 2025-03-27 08:02:08 +01:00
874b1dba2d feat: brew (almost) spring cleaning 2025-02-24 14:48:38 +01:00
c6df537dfd feat: add .psqlrc 2025-02-20 11:08:39 +01:00
14bd1bf475 feat: ghostty shaders to gitignore 2025-02-17 10:24:32 +01:00
2721ed0302 feat(aerospace): workspace next/prev shortcuts 2025-02-17 10:04:38 +01:00
febb6f5a78 feat(brew) update package list 2025-02-05 13:59:34 +01:00
bc1ab2b67c docs: link to "good software" blog post 2025-02-05 09:03:26 +01:00
8755c4f079 feat: move to workspace 2 if moving a window there 2025-01-21 09:42:12 +01:00
0c98d68d86 refactor(aerospace): remove obsolete borders parameter 2025-01-14 09:15:29 +01:00
32 changed files with 697 additions and 469 deletions

View file

@ -7,7 +7,10 @@ after-login-command = []
# 'after-startup-command' is run after 'after-login-command' # 'after-startup-command' is run after 'after-login-command'
# Available commands : https://nikitabobko.github.io/AeroSpace/commands # Available commands : https://nikitabobko.github.io/AeroSpace/commands
after-startup-command = [ 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', # 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 start-at-login = true
@ -54,12 +57,12 @@ preset = 'qwerty'
# Monitor pattern is the same as for 'workspace-to-monitor-force-assignment'. # Monitor pattern is the same as for 'workspace-to-monitor-force-assignment'.
# See: https://nikitabobko.github.io/AeroSpace/guide#assign-workspaces-to-monitors # See: https://nikitabobko.github.io/AeroSpace/guide#assign-workspaces-to-monitors
[gaps] [gaps]
inner.horizontal = 0 inner.horizontal = 10
inner.vertical = 0 inner.vertical = 10
outer.left = 0 outer.left = 14
outer.bottom = 0 outer.bottom = 14
outer.top = 0 outer.top = 14
outer.right = 0 outer.right = 14
# 'main' binding mode declaration # 'main' binding mode declaration
# See: https://nikitabobko.github.io/AeroSpace/guide#binding-modes # See: https://nikitabobko.github.io/AeroSpace/guide#binding-modes
@ -121,7 +124,8 @@ ctrl-shift-alt-6 = 'workspace 6'
# See: https://nikitabobko.github.io/AeroSpace/commands#move-node-to-workspace # See: https://nikitabobko.github.io/AeroSpace/commands#move-node-to-workspace
cmd-1 = 'move-node-to-workspace 1' 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-3 = 'move-node-to-workspace 3'
cmd-4 = 'move-node-to-workspace 4' cmd-4 = 'move-node-to-workspace 4'
cmd-5 = 'move-node-to-workspace 5' cmd-5 = 'move-node-to-workspace 5'
@ -132,6 +136,11 @@ alt-shift-j = ['join-with down', 'mode main']
alt-shift-k = ['join-with up', 'mode main'] alt-shift-k = ['join-with up', 'mode main']
alt-shift-l = ['join-with right', '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 # See: https://nikitabobko.github.io/AeroSpace/commands#workspace-back-and-forth
alt-tab = 'workspace-back-and-forth' alt-tab = 'workspace-back-and-forth'
# See: https://nikitabobko.github.io/AeroSpace/commands#move-workspace-to-monitor # See: https://nikitabobko.github.io/AeroSpace/commands#move-workspace-to-monitor
@ -178,11 +187,6 @@ if.app-id = 'com.mitchellh.ghostty'
if.during-aerospace-startup = true if.during-aerospace-startup = true
run = 'move-node-to-workspace 2' 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 # Orga
[[on-window-detected]] [[on-window-detected]]
if.app-id = 'com.culturedcode.ThingsMac' if.app-id = 'com.culturedcode.ThingsMac'
@ -203,12 +207,13 @@ run = 'move-node-to-workspace 3'
[[on-window-detected]] [[on-window-detected]]
if.app-id = 'com.microsoft.teams2' if.app-id = 'com.microsoft.teams2'
if.during-aerospace-startup = true if.during-aerospace-startup = true
run = 'move-node-to-workspace 4' check-further-callbacks = true
run = 'move-node-to-workspace 5'
[[on-window-detected]] [[on-window-detected]]
if.app-id = 'com.tinyspeck.slackmacgap' if.app-id = 'com.tinyspeck.slackmacgap'
if.during-aerospace-startup = true if.during-aerospace-startup = true
run = 'move-node-to-workspace 4' run = 'move-node-to-workspace 5'
[[on-window-detected]] [[on-window-detected]]
if.app-id = 'com.apple.MobileSMS' if.app-id = 'com.apple.MobileSMS'

View file

@ -1,26 +1,4 @@
# Alacritty Windows config # Alacritty config
``` Delete the `alacrity-<systemdescr>.toml` files you will not need. Those contain
import = [ OS/system-dependant preferences like font size etc.
"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" }]
```

View file

@ -0,0 +1,6 @@
[font]
size = 18
[window]
opacity = 0.85
blur = true

View file

@ -0,0 +1,9 @@
[font]
size = 14
[window]
opacity = 0.9
blur = false # does not work in Sway
[general]
import = ["~/.config/alacritty/rose-pine-moon.toml"]

View file

@ -1,36 +1,40 @@
[font] [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" } bold = { style = "Bold" }
italic = { style = "Italic" } italic = { style = "Oblique" }
bold_italic = { style = "Bold Italic" } bold_italic = { style = "Bold Oblique" }
size = 17 #offset = { x = 0, y = 0 }
[window] [window]
option_as_alt = "Both" # option_as_alt = "Both"
option_as_alt = "None"
decorations = "None" decorations = "None"
padding = { x = 12, y = 5 } padding = { x = 12, y = 5 }
dynamic_padding = true dynamic_padding = true
# opacity = 0.8
# blur = true # blur = true
[bell] [bell]
duration = 10 duration = 0
color = "#3a3a3a" color = "#3a3a3a"
[cursor] [cursor]
style = { shape = "Block", blinking = "Always" } style = { shape = "Block", blinking = "Always" }
[colors.search] [colors.search]
matches = { foreground = "#f4d03f", background = "#273746" } matches = { foreground = "#007a61", background = "#dedede" }
focused_match = { foreground = "#273746", background = "#f4d03f" } focused_match = { foreground = "#dedede", background = "#007a61" }
[colors.footer_bar] [colors.footer_bar]
background = "#f4d03f" background = "#007a61"
foreground = "#273746" foreground = "#00dcaf"
[colors.vi_mode_cursor]
text = "#dedede"
cursor = "#007a61"
[keyboard] [keyboard]
bindings = [ bindings = [
# Required to make Ctrl+/ work on macOS (used in Telescope) # Required to make Ctrl+/ work on macOS (used in Telescope)
{ chars = "\u001F", key = "Slash", mods = "Control" }, { chars = "\u001F", key = "Slash", mods = "Control" },
@ -42,6 +46,8 @@ bindings = [
{ key = "PageDown", mods = "Shift", action = "ScrollPageDown" }, { key = "PageDown", mods = "Shift", action = "ScrollPageDown" },
# Disable Cmd+w to avoid accidental closing. Disabling Cmd+q needs more work # Disable Cmd+w to avoid accidental closing. Disabling Cmd+q needs more work
{ key = "w", mods = "Command", action = "None" }, { key = "w", mods = "Command", action = "None" },
{ key = "v", mods = "Alt", action="ToggleViMode" },
{ key = "f", mods = "Control", action = "SearchForward" },
] ]
[general] [general]
@ -59,7 +65,11 @@ bindings = [
# selection (Ctrl v). You can also toggle between them while the selection is # selection (Ctrl v). You can also toggle between them while the selection is
# still active. # still active.
import = ["~/.config/alacritty/rose-pine-dawn.toml"] import = [
"~/.config/alacritty/rose-pine-moon.toml",
"~/.config/alacritty/alacritty-macos.toml",
"~/.config/alacritty/alacritty-minix.toml"
]
#[mouse] #[mouse]
#hide_when_typing = true #hide_when_typing = true

View file

@ -1,12 +1,6 @@
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 # 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 shell-integration-features = no-cursor
@ -14,8 +8,12 @@ cursor-style = "block"
cursor-style-blink = true cursor-style-blink = true
cursor-color = #b4637a cursor-color = #b4637a
cursor-opacity = 0.6 cursor-opacity = 0.6
# cursor-invert-fg-bg = true
cursor-invert-fg-bg = false
font-family = "JetBrainsMono Nerd Font" # background-opacity = 0.9
font-family = "BerkeleyMono Nerd Font Mono"
# font-style depends on the font's features # font-style depends on the font's features
font-style = "Regular" font-style = "Regular"
font-style-bold = "Bold" font-style-bold = "Bold"
@ -26,7 +24,7 @@ font-feature = "-calt"
font-size = 17 font-size = 17
# Reduce letter spacing # Reduce letter spacing
adjust-cell-width = -8% adjust-cell-width = -8%
adjust-cell-height = -1 #adjust-cell-height = -1
window-padding-x = 8 window-padding-x = 8
window-padding-y = 4 window-padding-y = 4
@ -39,8 +37,11 @@ window-colorspace = display-p3
auto-update = off 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 = global:ctrl+grave_accent=toggle_quick_terminal
keybind = page_up=scroll_page_up keybind = page_up=scroll_page_up
keybind = page_down=scroll_page_down keybind = page_down=scroll_page_down
quick-terminal-animation-duration = 0 quick-terminal-animation-duration = 0
# Disable secure input to not interfere with skhd
macos-auto-secure-input = false

@ -1 +1 @@
Subproject commit fd31bd4211784f1e199091bccd080092ae27cf35 Subproject commit 3f458157b0d7b9e70eeb19bd27102dc9f8dae80c

View file

@ -1,5 +1,7 @@
[core] [core]
editor = nvim editor = nvim
# Only page if more than one screen
pager = "less -FX"
[color] [color]
branch = auto branch = auto
@ -8,10 +10,12 @@
status = auto status = auto
[credential] [credential]
helper = cache --timeout 43200 helper = cache --timeout=604800
[diff] [diff]
tool = vimdiff tool = nvimdiff
[difftool "nvimdiff"]
cmd = "nvim -d \"$LOCAL\" \"$REMOTE\""
[http] [http]
postBuffer = 524288000 postBuffer = 524288000
@ -23,8 +27,16 @@
[init] [init]
defaultBranch = main defaultBranch = main
[merge] [merge]
tool = "nvim"
conflictstyle = diff3 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 # Set a correct user.name and user.email for work projects
[includeIf "gitdir:~/git/work/"] [includeIf "gitdir:~/git/work/"]
path = ~/git/work/gitconfig path = ~/git/work/gitconfig

View file

@ -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.).

View file

@ -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

View file

@ -0,0 +1,4 @@
defaults:
theme: catppuccin-mocha
# validate_overflows: always

View file

@ -4,39 +4,70 @@
# the Ctrl+Shift+Alt key combo which helps here to have unique skhd shortcuts # the Ctrl+Shift+Alt key combo which helps here to have unique skhd shortcuts
# that don't clash with macOS/Neovim/... # that don't clash with macOS/Neovim/...
# meh = shift + alt + ctrl
# hyper = cmd + shift + alt + ctrl
# Focus a window # Focus a window
alt - h : yabai -m window --focus west alt - h : yabai -m window --focus west
alt - j : yabai -m window --focus south alt - j : yabai -m window --focus south
alt - k : yabai -m window --focus north alt - k : yabai -m window --focus north
alt - l : yabai -m window --focus east alt - l : yabai -m window --focus east
# Zoom a window # Focus a space
ctrl + shift + alt - f : yabai -m window --toggle zoom-fullscreen 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')"
# Swap windows # Zoom a window. `--toggle float` would be nicer, but results
ctrl + shift + alt - h : yabai -m window --swap west # in the window brought back to the wrong place after toggling
ctrl + shift + alt - j : yabai -m window --swap south meh - f : yabai -m window --toggle zoom-fullscreen
ctrl + shift + alt - k : yabai -m window --swap north
ctrl + shift + alt - l : yabai -m window --swap east
# split # Move/swap windows
ctrl + shift + alt + cmd - h : yabai -m window --warp west meh - h : yabai -m window --swap west
ctrl + shift + alt + cmd - j : yabai -m window --warp south meh - j : yabai -m window --swap south
ctrl + shift + alt + cmd - k : yabai -m window --warp north meh - k : yabai -m window --swap north
ctrl + shift + alt + cmd - l : yabai -m window --warp east meh - l : yabai -m window --swap east
# Split
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
# 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
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 # Move window to other desktop and focus desktop
ctrl + shift + alt - 1 : yabai -m window --space 1; yabai -m space --focus 1 # FIXME: does not work with SIP enabled since macOS 15.?
ctrl + shift + alt - 2 : yabai -m window --space 2; yabai -m space --focus 2 hyper - 1 : yabai -m window --space 1
ctrl + shift + alt - 3 : yabai -m window --space 3; yabai -m space --focus 3 hyper - 2 : yabai -m window --space 2
ctrl + shift + alt - 4 : yabai -m window --space 4; yabai -m space --focus 4 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 # Move window to display left and right
ctrl + shift + alt - r : yabai -m window --display west; yabai -m display --focus west; meh - 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 - u : yabai -m window --display east; yabai -m display --focus east
# Revert resized windows to default # Revert resized windows to default
ctrl + shift + alt - 0 : yabai -m space --balance meh - 0 : yabai -m space --balance
# Rotate windows clockwise # 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
#hyper - o: yabai -m window --opacity 0.1 && sleep $(yabai -m config window_opacity_duration) && yabai -m window --opacity 0.0

View file

@ -4,18 +4,23 @@
# /tmp/yabai_$USER.err.log # /tmp/yabai_$USER.err.log
# /tmp/yabai_$USER.out.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 layout bsp
yabai -m config window_placement second_child
# Global # Global
yabai -m config focus_follows_mouse off yabai -m config focus_follows_mouse autofocus
yabai -m config mouse_follows_focus off yabai -m config mouse_follows_focus on
yabai -m config layout bsp yabai -m config layout bsp
yabai -m config top_padding 0 #yabai -m config auto_balance on
yabai -m config bottom_padding 0 yabai -m config split_ratio 0.4
yabai -m config left_padding 0 yabai -m config top_padding 8
yabai -m config right_padding 0 yabai -m config bottom_padding 8
yabai -m config window_gap 0 yabai -m config left_padding 8
yabai -m config right_padding 8
yabai -m config window_gap 12
yabai -m config mouse_action1 move yabai -m config mouse_action1 move
yabai -m config mouse_action2 resize yabai -m config mouse_action2 resize
@ -25,15 +30,16 @@ yabai -m config mouse_modifier ctrl
#yabai -m config --space 2 window_gap #yabai -m config --space 2 window_gap
# Floating (unmanaged) apps # Floating (unmanaged) apps
yabai -m rule --add app=Finder manage=off #yabai -m rule --add app=".*" sub-layer=normal
yabai -m rule --add app=Calculator manage=off 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 # yabai -m rule --add app="^Firefox$" space=1
# https://github.com/FelixKratz/JankyBorders/issues/37#issuecomment-1871262622 yabai -m rule --add app="^Ghostty$" space=2
#borders order=above active_color=0xff007777 inactive_color=0xff004444 width=8.0 style=square & yabai -m rule --add app="^Things$" space=3
#borders order=above active_color=0xffffd700 inactive_color=0xff004444 width=8.0 style=square & yabai -m rule --add app="^Calendar$" space=3
#borders order=above active_color=0xffffd700 inactive_color=0xff897400 width=8.0 style=square & yabai -m rule --add app="^Microsoft Teams$" space=5
borders order=above active_color=0xffffd700 background_color=0xee897400 width=8.0 style=square blacklist="firefox" ax_focus=true & yabai -m rule --add app="^Slack$" space=5
yabai -m rule --add app="^Signal$" space=5
echo "$(date) yabai config $0 loaded" echo "$(date) yabai config $0 loaded"

1
.gitignore vendored
View file

@ -1,3 +1,4 @@
# vim # vim
.vim/.netrwhist .vim/.netrwhist
.DS_Store .DS_Store
.config/ghostty/shaders/ghostty-shaders

4
.psqlrc Normal file
View file

@ -0,0 +1,4 @@
\set PROMPT1 '%[%033[1;33;40m%]%n@%/%R%[%033[0m%]%# '
\x auto
\set COMP_KEYWORD_CASE upper
\timing

View file

@ -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"
}

View file

@ -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
}

View file

@ -12,18 +12,7 @@ This `README` also kind of documents my macOS "setup".
## Essential macOS software ## Essential macOS software
- Package management: [Homebrew](http://brew.sh) See [this blog post](https://lugh.ch/good-software.html)
- 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)~
### Work related software ### Work related software

5
bin/bootasahi.sh Executable file
View file

@ -0,0 +1,5 @@
#!/usr/bin/env bash
#
# Rebot into Asahi on next boot
sudo bless -mount /Volumes/asahi --setBoot --nextonly && reboot

177
brew.txt
View file

@ -1,32 +1,59 @@
abseil
angle-grinder angle-grinder
ansible ansible
aom aom
apache-arrow
aribb24 aribb24
asdf
assimp 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-elasticbeanstalk
aws-sdk-cpp
awscli awscli
azure-cli azure-cli
bash
bicep bicep
bind bind
borders boost
brotli brotli
btop
c-ares c-ares
ca-certificates ca-certificates
cairo cairo
ceres-solver
certifi certifi
cffi cffi
cgns
checkov
cjson cjson
cloc
cmake cmake
cryptography cryptography
datasette
dav1d dav1d
dbus dbus
deno
diff-pdf
diffutils diffutils
dive dive
dos2unix dos2unix
dotnet
dotnet@8 dotnet@8
double-conversion double-conversion
dust
dvdrtools dvdrtools
eigen
elixir elixir
erlang erlang
fd fd
@ -36,18 +63,25 @@ findutils
flac flac
flyctl flyctl
fontconfig fontconfig
fortune
freetype freetype
freeze
frei0r frei0r
fribidi fribidi
fx
fzf
gcc
gd gd
gdbm gdbm
gdk-pixbuf gdk-pixbuf
geoip geoip
gettext gettext
ghostscript gflags
giflib giflib
git git
glew
glib glib
glog
glow glow
gmp gmp
gnupg gnupg
@ -55,34 +89,49 @@ gnuplot
gnutls gnutls
go go
gpgme gpgme
gpgmepp
graphicsmagick graphicsmagick
graphite2 graphite2
graphviz graphviz
grpc
gts gts
gum gum
gumbo-parser
harfbuzz harfbuzz
harlequin
hcledit
hdf5
highway highway
htop htop
httrack
hunspell hunspell
hurl
hwloc
icu4c@76 icu4c@76
icu4c@77
icu4c@78
imagemagick imagemagick
imath imath
infracost
ipcalc ipcalc
iperf3
isl
jasper jasper
jbig2dec
jemalloc jemalloc
jpeg
jpeg-turbo jpeg-turbo
jpeg-xl jpeg-xl
jq jq
json-c json-c
jsoncpp
k9s k9s
kind
krb5 krb5
kubectx kubectx
kubernetes-cli kubernetes-cli
lame lame
lazygit lazygit
leptonica leptonica
libaec
libarchive libarchive
libass libass
libassuan libassuan
@ -94,24 +143,30 @@ libcerf
libde265 libde265
libdeflate libdeflate
libdicom libdicom
libedit
libevent libevent
libexif libexif
libfido2 libfido2
libgcrypt libgcrypt
libgit2 libgit2
libgpg-error libgpg-error
libharu
libheif libheif
libidn
libidn2 libidn2
libksba libksba
liblinear liblinear
liblqr liblqr
libmaxminddb
libmicrohttpd libmicrohttpd
libmng libmng
libmpc
libnghttp2 libnghttp2
libnghttp3
libngtcp2
libogg libogg
libomp libomp
libpng libpng
libpq
libraw libraw
librist librist
librsvg librsvg
@ -125,6 +180,8 @@ libssh2
libtasn1 libtasn1
libtiff libtiff
libtool libtool
libudfread
libultrahdr
libunibreak libunibreak
libunistring libunistring
libusb libusb
@ -133,7 +190,6 @@ libvidstab
libvmaf libvmaf
libvorbis libvorbis
libvpx libvpx
libvterm
libwebsockets libwebsockets
libx11 libx11
libxau libxau
@ -143,100 +199,177 @@ libxext
libxml2 libxml2
libxrender libxrender
libyaml libyaml
libzip
litehtml
little-cms2 little-cms2
llvm llvm
lolcat lolcat
lpeg lpeg
lua lua
luajit luajit
luarocks
luv luv
lz4 lz4
lzo lzo
m1ddc
m4 m4
macism macism
marksman marksman
mbedtls mbedtls
mbedtls@3
md4c md4c
md5sha1sum md5sha1sum
metis
midnight-commander midnight-commander
minicom minicom
mmdbinspect
mpdecimal mpdecimal
mpfr
mpg123 mpg123
msgpack
mysql-client mysql-client
mysql-client@8.0 mysql-client@8.0
ncdu ncdu
ncurses ncurses
neovide neovide
neovim neovim
netcdf
netpbm netpbm
nettle nettle
nlohmann-json
nmap nmap
node node
npth npth
nspr nspr
nss nss
numpy
oh-my-posh
oniguruma oniguruma
onnx
openblas
opencore-amr opencore-amr
opencv
openexr openexr
openjdk openjdk
openjpeg openjpeg
openjph
openslide openslide
openssl@1.1 openssl@1.1
openssl@3 openssl@3
openstackclient openstackclient
opentofu opentofu
openvino
opus opus
osv-scanner
p11-kit p11-kit
p7zip
packer packer
pandoc pandoc
pango pango
parallel
pcre2 pcre2
pinentry pinentry
pixman pixman
pkgconf pkgconf
pnpm
podman
poppler poppler
postgresql@14 posting
presenterm
prettyping prettyping
proj
proselint
protobuf
pssh
pugixml
pwgen pwgen
pycparser pycparser
pydantic
python-certifi python-certifi
python-cryptography python-cryptography
python-packaging python-packaging
python-setuptools
python-typing-extensions python-typing-extensions
python@3.10 python@3.10
python@3.11 python@3.11
python@3.12 python@3.12
python@3.13 python@3.13
python@3.14
qt 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 rav1e
re2
readline readline
ripgrep ripgrep
rpds-py
rpm2cpio rpm2cpio
rubberband rubberband
rust rust
s-lang s-lang
sdl2 sdl2
shared-mime-info shared-mime-info
skhd simdjson
skhd-zig
snappy snappy
speedtest-cli speedtest-cli
speex speex
sqlite sqlite
sqlite-utils
srt srt
sslyze sslyze
stress-ng stress-ng
suite-sparse
svt-av1 svt-av1
swaks swaks
switchaudio-osx switchaudio-osx
task task
taskwarrior-tui taskwarrior-tui
tbb
telnet telnet
termshot termshot
terraform terraform
terraform-docs
terrascan
tesseract tesseract
tflint tflint
tfsec
tfupdate
theora theora
thrift
tig tig
timg timg
tmux tmux
@ -244,50 +377,64 @@ tmux-mem-cpu-load
tokei tokei
tree tree
tree-sitter tree-sitter
trivy
ttyd ttyd
unbound unbound
unibilium unibilium
unixodbc unixodbc
userspace-rcu userspace-rcu
utf8cpp
utf8proc utf8proc
uthash uthash
uv
uvwasi
vhs vhs
vtk
watch watch
wdc
webp webp
wget wget
wxwidgets wireguard-go
wireguard-tools
wxwidgets@3.2
x264 x264
x265 x265
xan
xorgproto xorgproto
xvid xvid
xz xz
yabai yabai
yt-dlp
z3 z3
zeromq zeromq
zimg zimg
zlib zlib
zsh-autosuggestions zsh-autosuggestions
zsh-completions zsh-completions
zsh-syntax-highlighting
zstd zstd
aerospace aerospace
alacritty alacritty
basictex basictex
betterdisplay betterdisplay
bruno
cool-retro-term cool-retro-term
cyberduck cyberduck
db-browser-for-sqlite
disk-inventory-x disk-inventory-x
forklift forklift
ghostty ghostty
gramps
hot hot
kitty karabiner-elements
krita krita
librewolf
maccy maccy
marta
microsoft-auto-update microsoft-auto-update
microsoft-teams microsoft-teams
mqtt-explorer mqtt-explorer
mysqlworkbench mysqlworkbench
openscad openscad
pixelorama
powershell powershell
skype-for-business vscodium
wezterm