diff --git a/README.md b/README.md index 9a360ad..0c0170d 100644 --- a/README.md +++ b/README.md @@ -1,22 +1,27 @@ # repo containing configs and scripts to set up a box +### script run +- [prerequisites below are fulfilled] +- git clone this repo +- from the repo's root directory, run `./box_setup` + ### prerequisites -- when running on a fresh system, ensure package manager is configured - - i.e. source repos, mirrors, etc. are configured +- package manager is configured (i.e. source repos, mirrors, etc. configured) - zsh is installed (scripts are written for zsh) -- ensure sudo access is configured for the current user (2025-01-27, not needed on macos) +- sudo access is configured for current user (2025-01-27, not needed on macos) - export the env var `BOX_SETUP_OS` to indicate the operating system - options defined in `set_script_env_vars` file +- system-specific items below are fulfilled ##### prereqs, os specific, linux-placeholder - (currently none) ##### prereqs, os specific, macos -- have to first install the package manager, [homebrew](https://brew.sh/) -- for yabai window manager (at least for now, so as to not mess with SIP settings) +- install the package manager, [homebrew](https://brew.sh/) +- for yabai window manager (so as to not mess with SIP settings) - create 9 spaces/desktops - - in system settings, manually set keyboard shortcuts to switch between spaces - - in system settings, for desktop/dock/mission-ctrl: + - system settings > keyboard shortcuts: set keys to switch between spaces/desktops + - system settings > desktop/dock/mission-control: - `click wallpaper to reveal desktop`: set to "only in stage manager" - all `drag windows to corner/edge/place` types of options: disabled - `rearrange spaces based on recent use`: disabled @@ -24,11 +29,9 @@ - `displays have separate spaces`: enabled - `show files on desktop`: enabled -### script run -- git clone this repo (TODO: consider adding logic to handle automatically) -- from the repo's root directory, run `./box_setup` - ### todo items +- add logic to the main run script to handle cloning of this repo +- add logic to the main run script to set `BOX_SETUP_OS` var, either input param or detect - config for nvim - config for mpd, mpc, ncmpcpp - config for ghostty diff --git a/src_files/.config/ghostty/config b/src_files/.config/ghostty/config new file mode 100644 index 0000000..ba2ba99 --- /dev/null +++ b/src_files/.config/ghostty/config @@ -0,0 +1 @@ +font-feature = -calt, -liga, -dlig diff --git a/src_files/.config/skhd/skhdrc b/src_files/.config/skhd/skhdrc index a4f1d86..3f30fe8 100755 --- a/src_files/.config/skhd/skhdrc +++ b/src_files/.config/skhd/skhdrc @@ -1,52 +1,44 @@ # list of built-in keywords at https://github.com/koekeishiya/skhd/issues/1 # staring file was at /opt/homebrew/opt/yabai/share/yabai/examples +# notes, stacks: https://github.com/koekeishiya/yabai/issues/203#issuecomment-650642142 ########################################################################################## # yabai -# general idea: alt navigates (move my view); shift+alt modifies (move/change windows) +# general idea: alt navigates (move my view); alt+shift modifies (move/change the window) # switch to space (to leave SIP in place, configure these in macos system settings) # alt - 1 // switch to space 1 (and similar for other numbers) -# in managed mode: swap current window -shift + alt - k : yabai -m window --swap north -shift + alt - j : yabai -m window --swap south -shift + alt - h : yabai -m window --swap west # TODO: remove, only have j/k (just stack) -shift + alt - l : yabai -m window --swap east # TODO: remove, only have j/k (just stack) - # move focused window to the given space -shift + alt - 1 : yabai -m window --space 1 -shift + alt - 2 : yabai -m window --space 2 -shift + alt - 3 : yabai -m window --space 3 -shift + alt - 4 : yabai -m window --space 4 -shift + alt - 5 : yabai -m window --space 5 -shift + alt - 6 : yabai -m window --space 6 -shift + alt - 7 : yabai -m window --space 7 -shift + alt - 8 : yabai -m window --space 8 -shift + alt - 9 : yabai -m window --space 9 +alt + shift - 1 : yabai -m window --space 1 --focus +alt + shift - 2 : yabai -m window --space 2 --focus +alt + shift - 3 : yabai -m window --space 3 --focus +alt + shift - 4 : yabai -m window --space 4 --focus +alt + shift - 5 : yabai -m window --space 5 --focus +alt + shift - 6 : yabai -m window --space 6 --focus +alt + shift - 7 : yabai -m window --space 7 --focus +alt + shift - 8 : yabai -m window --space 8 --focus +alt + shift - 9 : yabai -m window --space 9 --focus -# all windows in a space to float and each fill screen (idea: stack mode) -shift + alt - s : yabai -m space --layout float \ - | yabai -m query --windows --space | jq '.[].id' \ - | xargs -I % yabai -m window % --grid 1:1:0:0:1:1 -# toggle float on/off for the focused window -shift + alt - f : yabai -m window --toggle float +# all windows in a space to fullscreen in a single stack +alt + shift - s : yabai -m space --layout stack # all windows in a space back to the grid (managed) -shift + alt - g : yabai -m space --layout bsp +alt + shift - g : yabai -m space --layout bsp +# toggle float on/off for the focused window +alt + shift - f : yabai -m window --toggle float # balance window sizes -shift + alt - 0 : yabai -m space --balance # TODO: figure out better key option +alt + shift - 0 : yabai -m space --balance # TODO: figure out better key option -# managed layout, focus on next/previous window -#alt - x : yabai -m window --focus next # TODO: delete or figure out better key option -#alt - z : yabai -m window --focus prev # TODO: delete or figure out better key option -# focus on next/previous window; hacky, but it seems to work for now -alt - k : yabai -m query --windows --space | jq '.[].id' | sort | tr "\r\n" " " \ - | sed "s/\(.*\)/ \1 \n/" \ - | sed "s/.* $(yabai -m query --windows --window | jq '.id') \([0-9]*\) .*/\1/" \ - | xargs -I % yabai -m window --focus % -alt - j : yabai -m query --windows --space | jq '.[].id' | sort | tr "\r\n" " " \ - | sed "s/\(.*\)/ \1 \n/" \ - | sed "s/.* \([0-9]*\) $(yabai -m query --windows --window | jq '.id') .*/\1/" \ - | xargs -I % yabai -m window --focus % +# focus on next/previous window +alt - j : yabai -m window --focus \ + $(yabai -m query --spaces --space | jq '.type' | tr -d "\"" | sed "s/stack/stack./" | sed "s/.*[^.]\$//")prev +alt - k : yabai -m window --focus \ + $(yabai -m query --spaces --space | jq '.type' | tr -d "\"" | sed "s/stack/stack./" | sed "s/.*[^.]\$//")next + +# move current window up/down in stack +alt + shift - k : yabai -m window --swap \ + $(yabai -m query --spaces --space | jq '.type' | tr -d "\"" | sed "s/stack/stack./" | sed "s/.*[^.]\$//")next +alt + shift - j : yabai -m window --swap \ + $(yabai -m query --spaces --space | jq '.type' | tr -d "\"" | sed "s/stack/stack./" | sed "s/.*[^.]\$//")prev diff --git a/src_files/.config/yabai/yabairc b/src_files/.config/yabai/yabairc index c8445ba..e8b82e0 100755 --- a/src_files/.config/yabai/yabairc +++ b/src_files/.config/yabai/yabairc @@ -11,7 +11,7 @@ yabai -m config \ window_placement first_child \ window_insertion_point focused \ window_zoom_persist on \ - window_shadow on \ + window_shadow off \ window_animation_duration 0.0 \ window_animation_easing ease_out_circ \ window_opacity_duration 0.0 \ @@ -19,7 +19,7 @@ yabai -m config \ normal_window_opacity 0.90 \ window_opacity off \ insert_feedback_color 0xffd75f5f \ - split_ratio 0.70 \ + split_ratio 0.0 \ split_type auto \ auto_balance off \ top_padding 00 \