Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
164 changes: 164 additions & 0 deletions .aerospace.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,164 @@

# After that, you can edit ~/.aerospace.toml to your liking

# Feel free to omit keys that you don't use in your config.
# If the key is absent in your config the default value is taken from this config

# You can use it to add commands that run after login to macOS user session.
# 'start-at-login' needs to be 'true' for 'after-login-command' to work
# Available commands: https://nikitabobko.github.io/AeroSpace/commands
after-login-command = []

# You can use it to add commands that run after AeroSpace startup.
# 'after-startup-command' is run after 'after-login-command'
# Available commands : https://nikitabobko.github.io/AeroSpace/commands
after-startup-command = [
'exec-and-forget /bin/bash -c "sleep 3 && /Users/robray/.config/sketchybar/plugins/aerospace_update_all.sh"'
]

exec-on-workspace-change = ['/bin/bash', '-c',
'/Users/robray/.config/sketchybar/plugins/aerospace_update_all.sh $AEROSPACE_FOCUSED_WORKSPACE'
]

# Start AeroSpace at login
start-at-login = true

# Normalizations. See: https://nikitabobko.github.io/AeroSpace/guide#normalization
enable-normalization-flatten-containers = true
enable-normalization-opposite-orientation-for-nested-containers = true

# See: https://nikitabobko.github.io/AeroSpace/guide#layouts
# The 'accordion-padding' specifies the size of accordion padding
# You can set 0 to disable the padding feature
accordion-padding = 30

# Possible values: tiles|accordion
default-root-container-layout = 'tiles'

# Possible values: horizontal|vertical|auto
# 'auto' means: wide monitor (anything wider than high) gets horizontal orientation,
# tall monitor (anything higher than wide) gets vertical orientation
default-root-container-orientation = 'auto'

# Possible values: (qwerty|dvorak)
# See https://nikitabobko.github.io/AeroSpace/guide#key-mapping
key-mapping.preset = 'qwerty'

# Gaps between windows (inner-*) and between monitor edges (outer-*).
# Possible values:
# - Constant: gaps.outer.top = 8
# - Per monitor: gaps.outer.top = [{ monitor.main = 16 }, { monitor."some-pattern" = 32 }, 24]
# In this example, 24 is a default value when there is no match.
# 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 = 10
# inner.vertical = 10
# outer.left = 10
# outer.bottom = 10
# outer.top = 10
# outer.right = 10
[gaps]
inner.horizontal = 20
inner.vertical = 20
outer.left = 20
outer.bottom = 20
outer.top = 40
outer.right = 20

[workspace-to-monitor-force-assignment]
7 = 'secondary'

# See https://nikitabobko.github.io/AeroSpace/guide#exec-env-vars
[exec]
inherit-env-vars = true
[exec.env-vars]
PATH = '/opt/homebrew/bin:/opt/homebrew/sbin:${PATH}'

# 'main' binding mode declaration
# See: https://nikitabobko.github.io/AeroSpace/guide#binding-modes
# 'main' binding mode must be always presented
[mode.main.binding]

# All possible keys:
# - Letters. a, b, c, ..., z
# - Numbers. 0, 1, 2, ..., 9
# - Keypad numbers. keypad0, keypad1, keypad2, ..., keypad9
# - F-keys. f1, f2, ..., f20
# - Special keys. minus, equal, period, comma, slash, backslash, quote, semicolon, backtick,
# leftSquareBracket, rightSquareBracket, space, enter, esc, backspace, tab
# - Keypad special. keypadClear, keypadDecimalMark, keypadDivide, keypadEnter, keypadEqual,
# keypadMinus, keypadMultiply, keypadPlus
# - Arrows. left, down, up, right

# All possible modifiers: cmd, alt, ctrl, shift

# All possible commands: https://nikitabobko.github.io/AeroSpace/commands

# You can uncomment this line to open up terminal with alt + enter shortcut
# See: https://nikitabobko.github.io/AeroSpace/commands#exec-and-forget
# alt-enter = 'exec-and-forget open -n /System/Applications/Utilities/Terminal.app'

# See: https://nikitabobko.github.io/AeroSpace/commands#layout
alt-slash = 'layout tiles horizontal vertical'
alt-comma = 'layout accordion horizontal vertical'

# See: https://nikitabobko.github.io/AeroSpace/commands#focus
alt-left = 'focus left'
alt-down = 'focus down'
alt-up = 'focus up'
alt-right = 'focus right'

# See: https://nikitabobko.github.io/AeroSpace/commands#move
alt-shift-left = 'move left'
alt-shift-down = 'move down'
alt-shift-up = 'move up'
alt-shift-right = 'move right'

# See: https://nikitabobko.github.io/AeroSpace/commands#resize
alt-shift-minus = 'resize smart -50'
alt-shift-equal = 'resize smart +50'

# See: https://nikitabobko.github.io/AeroSpace/commands#workspace
alt-ctrl-1 = 'workspace 1'
alt-ctrl-2 = 'workspace 2'
alt-ctrl-3 = 'workspace 3'
alt-ctrl-4 = 'workspace 4'
alt-ctrl-5 = 'workspace 5'
alt-ctrl-6 = 'workspace 6'
alt-ctrl-7 = 'workspace 7'
alt-shift-1 = 'move-node-to-workspace 1'
alt-shift-2 = 'move-node-to-workspace 2'
alt-shift-3 = 'move-node-to-workspace 3'
alt-shift-4 = 'move-node-to-workspace 4'
alt-shift-5 = 'move-node-to-workspace 5'
alt-shift-6 = 'move-node-to-workspace 6'
alt-shift-7 = 'move-node-to-workspace 7'
# 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
alt-shift-tab = 'move-workspace-to-monitor --wrap-around next'

# See: https://nikitabobko.github.io/AeroSpace/commands#mode
alt-shift-semicolon = 'mode service'

# 'service' binding mode declaration.
# See: https://nikitabobko.github.io/AeroSpace/guide#binding-modes
[mode.service.binding]
shift-esc = ['reload-config', 'mode main']
# shift-ctrl-r = ['flatten-workspace-tree', 'mode main'] # reset layout
#s = ['layout sticky tiling', 'mode main'] # sticky is not yet supported https://github.com/nikitabobko/AeroSpace/issues/2
# shift-ctrl-f = ['layout floating tiling', 'mode main'] # Toggle between floating and tiling layout
# shift-backspace = ['close-all-windows-but-current', 'mode main']

alt-shift-h = ['join-with left', 'mode main']
alt-shift-j = ['join-with down', 'mode main']
alt-shift-k = ['join-with up', 'mode main']
alt-shift-l = ['join-with right', 'mode main']

[[on-window-detected]]
if.app-id="com.mitchellh.ghostty"
run= [
"layout floating",
]

2 changes: 2 additions & 0 deletions .gitconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[core]
editor = hx
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
.secrets.fish
.DS_Store
.backup/

# Claude directory ignores
.claude/
88 changes: 88 additions & 0 deletions .wezterm.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
local wezterm = require 'wezterm'
local config = wezterm.config_builder()

-- General
config.default_prog = { '/run/current-system/sw/bin/fish', '-l' }
config.font_size = 19
config.line_height = 1.1
config.font = wezterm.font "BlexMono Nerd Font Mono"
config.color_scheme = 'tokyonight_night'
config.window_close_confirmation = 'NeverPrompt' -- For quitting WezTerm

-- Performance Hack
config.max_fps = 120
config.animation_fps = 120

-- Cursor
config.colors = {
cursor_bg = '#7aa2f7',
cursor_border = '#7aa2f7',
}

config.inactive_pane_hsb = {
saturation = 0.5,
brightness = 0.3,
}

-- Appearance
config.window_decorations = "RESIZE"
config.enable_tab_bar = false
-- config.tab_bar_at_bottom = true
config.window_padding = {
bottom = 0
}

-- Key bindings
config.keys = {
{
key = 'w',
mods = 'CMD',
action = wezterm.action.CloseCurrentPane { confirm = false },
},
{
key = 'd',
mods = 'CMD',
action = wezterm.action.SplitHorizontal { domain = 'CurrentPaneDomain' },
},
{
key = 'd',
mods = 'CMD|SHIFT',
action = wezterm.action.SplitVertical { domain = 'CurrentPaneDomain' },
},
{
key = 'k',
mods = 'CMD',
action = wezterm.action.SendString 'clear\n'
},
{
key = '+',
mods = 'CTRL',
action = wezterm.action.Multiple {
wezterm.action.IncreaseFontSize,
wezterm.action.EmitEvent('show-zoom'),
},
},
{
key = '-',
mods = 'CTRL',
action = wezterm.action.Multiple {
wezterm.action.DecreaseFontSize,
wezterm.action.EmitEvent('show-zoom'),
},
},
{
key = '0',
mods = 'CTRL',
action = wezterm.action.Multiple {
wezterm.action.ResetFontSize,
wezterm.action.EmitEvent('show-zoom'),
},
},
}


-- Ensure Option key sends composed characters (e.g., #)
config.send_composed_key_when_left_alt_is_pressed = true

return config

3 changes: 3 additions & 0 deletions .zshrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@

# bun completions
[ -s "/Users/robray/.bun/_bun" ] && source "/Users/robray/.bun/_bun"
14 changes: 14 additions & 0 deletions config/fish/conf.d/fish_frozen_key_bindings.fish
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# This file was created by fish when upgrading to version 4.3, to migrate
# the 'fish_key_bindings' variable from its old default scope (universal)
# to its new default scope (global). We recommend you delete this file
# and configure key bindings in ~/.config/fish/config.fish if needed.

set --global fish_key_bindings fish_vi_key_bindings

# Prior to version 4.3, fish shipped an event handler that runs
# `set --universal fish_key_bindings fish_default_key_bindings`
# whenever the fish_key_bindings variable is erased.
# This means that as long as any fish < 4.3 is still running on this system,
# we cannot complete the migration.
# As a workaround, erase the universal variable at every shell startup.
set --erase --universal fish_key_bindings
37 changes: 37 additions & 0 deletions config/fish/conf.d/fish_frozen_theme.fish
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# This file was created by fish when upgrading to version 4.3, to migrate
# theme variables from universal to global scope.
# Don't edit this file, as it will be written by the web-config tool (`fish_config`).
# To customize your theme, delete this file and see
# help interactive#syntax-highlighting
# or
# man fish-interactive | less +/^SYNTAX.HIGHLIGHTING
# for appropriate commands to add to ~/.config/fish/config.fish instead.
# See also the release notes for fish 4.3.0 (run `help relnotes`).

set --global fish_color_autosuggestion brblack
set --global fish_color_cancel -r
set --global fish_color_command normal
set --global fish_color_comment red
set --global fish_color_cwd green
set --global fish_color_cwd_root red
set --global fish_color_end green
set --global fish_color_error brred
set --global fish_color_escape brcyan
set --global fish_color_history_current --bold
set --global fish_color_host normal
set --global fish_color_host_remote yellow
set --global fish_color_normal normal
set --global fish_color_operator brcyan
set --global fish_color_param cyan
set --global fish_color_quote yellow
set --global fish_color_redirection cyan --bold
set --global fish_color_search_match white --background=brblack
set --global fish_color_selection white --bold --background=brblack
set --global fish_color_status red
set --global fish_color_user brgreen
set --global fish_color_valid_path --underline
set --global fish_pager_color_completion normal
set --global fish_pager_color_description yellow -i
set --global fish_pager_color_prefix normal --bold --underline
set --global fish_pager_color_progress brwhite --background=cyan
set --global fish_pager_color_selected_background -r
6 changes: 3 additions & 3 deletions config/fish/config.fish
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,7 @@ eval "$(/opt/homebrew/bin/brew shellenv)"
zoxide init fish | source
mise activate fish | source

# Add Bun global bin directory to PATH for Gemini CLI
fish_add_path "/Users/richardoliverbray/.bun/bin"

fish_add_path ~/.opencode/bin
# Add WezTerm to PATH
fish_add_path -a "/Applications/WezTerm.app/Contents/MacOS"

Expand Down Expand Up @@ -81,3 +79,5 @@ set -gx PATH /run/current-system/sw/bin $PATH
set -gx NIX_PATH darwin=$HOME/.nix-defexpr/channels/nixpkgs-darwin:darwin-config=$HOME/.nixpkgs/darwin-configuration.nix $NIX_PATH
set -gx NIX_PATH darwin=$HOME/.config/nix:$NIX_PATH
set -x EZA_CONFIG_DIR /Users/richardoliverbray/.config/eza
functions -e spf
set -gx PATH $HOME/.local/bin $PATH
32 changes: 2 additions & 30 deletions config/fish/fish_variables
Original file line number Diff line number Diff line change
@@ -1,33 +1,5 @@
# This file contains fish universal variable definitions.
# VERSION: 3.0
SETUVAR __fish_initialized:3800
SETUVAR __fish_initialized:4300
SETUVAR _fisher_upgraded_to_4_4:\x1d
SETUVAR fish_color_autosuggestion:brblack
SETUVAR fish_color_cancel:\x2dr
SETUVAR fish_color_command:normal
SETUVAR fish_color_comment:red
SETUVAR fish_color_cwd:green
SETUVAR fish_color_cwd_root:red
SETUVAR fish_color_end:green
SETUVAR fish_color_error:brred
SETUVAR fish_color_escape:brcyan
SETUVAR fish_color_history_current:\x2d\x2dbold
SETUVAR fish_color_host:normal
SETUVAR fish_color_host_remote:yellow
SETUVAR fish_color_normal:normal
SETUVAR fish_color_operator:brcyan
SETUVAR fish_color_param:cyan
SETUVAR fish_color_quote:yellow
SETUVAR fish_color_redirection:cyan\x1e\x2d\x2dbold
SETUVAR fish_color_search_match:white\x1e\x2d\x2dbackground\x3dbrblack
SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
SETUVAR fish_color_status:red
SETUVAR fish_color_user:brgreen
SETUVAR fish_color_valid_path:\x2d\x2dunderline
SETUVAR fish_key_bindings:fish_vi_key_bindings
SETUVAR fish_pager_color_completion:normal
SETUVAR fish_pager_color_description:yellow\x1e\x2di
SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
SETUVAR fish_pager_color_selected_background:\x2dr
SETUVAR fish_user_paths:/run/current\x2dsystem/sw/bin\x1e/Users/richardoliverbray/\x2ebun/bin\x1e/Applications/WezTerm\x2eapp/Contents/MacOS
SETUVAR fish_user_paths:/Users/robray/\x2eopencode/bin\x1e/run/current\x2dsystem/sw/bin\x1e/Users/richardoliverbray/\x2ebun/bin\x1e/Applications/WezTerm\x2eapp/Contents/MacOS
Loading