Compare commits
3 Commits
bf097481d4
...
3b2507b3c9
Author | SHA1 | Date | |
---|---|---|---|
3b2507b3c9 | |||
6c7ffd7cee | |||
350c400f65 |
23
README.md
23
README.md
@ -3,12 +3,27 @@
|
|||||||
### prerequisites
|
### prerequisites
|
||||||
- when running on a fresh system, ensure package manager is configured
|
- when running on a fresh system, ensure package manager is configured
|
||||||
- i.e. source repos, mirrors, etc. are configured
|
- i.e. source repos, mirrors, etc. are configured
|
||||||
- if on macOS, have to first install the package manager, [homebrew](https://brew.sh/)
|
|
||||||
- zsh is installed (scripts are written for zsh)
|
- zsh is installed (scripts are written for zsh)
|
||||||
- ensure sudo access is configured for the current user (2025-01-27, not needed on macos)
|
- ensure sudo access is configured for the current user (2025-01-27, not needed on macos)
|
||||||
- export the env var `BOX_SETUP_OS` to indicate the operating system
|
- export the env var `BOX_SETUP_OS` to indicate the operating system
|
||||||
- options defined in `set_script_env_vars` file
|
- options defined in `set_script_env_vars` file
|
||||||
|
|
||||||
|
##### prereqs, os specific, zxcv-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)
|
||||||
|
- create 9 spaces/desktops
|
||||||
|
- set keyboard shortcuts to switch between spaces manually in system settings
|
||||||
|
- in system settings for desktop/dock/mission-ctrl:
|
||||||
|
- `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
|
||||||
|
- `when switch to app... switch to space with open windows of app`: disabled
|
||||||
|
- `displays have separate spaces`: disabled
|
||||||
|
|
||||||
|
|
||||||
### script run
|
### script run
|
||||||
- git clone this repo (TODO: consider adding logic to handle automatically)
|
- git clone this repo (TODO: consider adding logic to handle automatically)
|
||||||
- from the repo's root directory, run `./box_setup`
|
- from the repo's root directory, run `./box_setup`
|
||||||
@ -23,8 +38,12 @@
|
|||||||
- set things in gtkrc only? still need to nest that within a sub dir?
|
- set things in gtkrc only? still need to nest that within a sub dir?
|
||||||
- or maybe just configure in gimp's gui, copy the whole resulting dir into
|
- or maybe just configure in gimp's gui, copy the whole resulting dir into
|
||||||
`src_files/.config/GIMP` (edit out and delete what i don't need) and call it a day
|
`src_files/.config/GIMP` (edit out and delete what i don't need) and call it a day
|
||||||
- decide on window managers, then do config (for each OS; macos will likely be different)
|
- for whatever is causing it, editor/terminal/other, git rid of ligatures/name?
|
||||||
|
- for example, `>=` is two chars (`>` then `=`), not one char/symbol
|
||||||
|
- decide on window manager for linux, then do config
|
||||||
- look into xquartz for macos (x/xorg emulation or something?)
|
- look into xquartz for macos (x/xorg emulation or something?)
|
||||||
|
- build in flags/logic for skipping certain installs/builds (and maybe configs?) on a
|
||||||
|
given system (i.e. don't install on a company box, on a server, etc.)
|
||||||
- decide on and implement approach for languages and versioning
|
- decide on and implement approach for languages and versioning
|
||||||
- docker? or alternatives like podman? any license concerns?
|
- docker? or alternatives like podman? any license concerns?
|
||||||
- asdf, or language-specific version managers?
|
- asdf, or language-specific version managers?
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
source set_script_env_vars
|
source set_script_env_vars
|
||||||
source ./src_files/.config/zsh/.zshenv
|
source ./src_files/.config/zsh/.zshenv
|
||||||
./install_programs
|
|
||||||
./make_config_dirs
|
./make_config_dirs
|
||||||
./copy_configs
|
./copy_configs
|
||||||
source $ZDOTDIR/.zshenv ; source $ZDOTDIR/.zshrc
|
source $ZDOTDIR/.zshenv ; source $ZDOTDIR/.zshrc
|
||||||
./make_org_structure_dirs
|
./make_org_structure_dirs
|
||||||
|
./install_programs # TODO: moved this to after config copy, but does this work?
|
||||||
|
@ -1,4 +1,18 @@
|
|||||||
#!/bin/zsh
|
#!/bin/zsh
|
||||||
|
|
||||||
# TODO: pick wm; linux options: dwm, i3, others? macos options: yabai, others?
|
local linux_wm_and_utils() {
|
||||||
# ${=BOX_SETUP_INSTALL_COMMAND} zxcv-placeholder
|
# TODO: pick wm for linux; options: dwm, i3, others?
|
||||||
|
echo "linux_wm_and_utils not yet implemented"
|
||||||
|
}
|
||||||
|
|
||||||
|
local macos_wm_and_utils() {
|
||||||
|
brew install koekeishiya/formulae/yabai
|
||||||
|
brew install koekeishiya/formulae/skhd
|
||||||
|
skhd --start-service
|
||||||
|
yabai --start-service
|
||||||
|
sleep 14 # time to give permission in accessibility settings
|
||||||
|
skhd --restart-service
|
||||||
|
yabai --restart-service
|
||||||
|
}
|
||||||
|
|
||||||
|
[[ "$BOX_SETUP_OS" = "macos" ]] && macos_wm_and_utils || linux_wm_and_utils
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
.tool-versions
|
.tool-versions
|
||||||
*.swp
|
*.swp
|
||||||
*.swo
|
*.swo
|
||||||
|
.npmrc
|
||||||
.tmux-session-hydrate
|
.tmux-session-hydrate
|
||||||
zxcv*
|
zxcv*
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
45
src_files/.config/skhd/skhdrc
Executable file
45
src_files/.config/skhd/skhdrc
Executable file
@ -0,0 +1,45 @@
|
|||||||
|
# list of built-in keywords at https://github.com/koekeishiya/skhd/issues/1
|
||||||
|
# staring file was at /opt/homebrew/opt/yabai/share/yabai/examples
|
||||||
|
|
||||||
|
##########################################################################################
|
||||||
|
# yabai
|
||||||
|
|
||||||
|
# in managed mode: swap current window
|
||||||
|
shift + cmd - k : yabai -m window --swap north
|
||||||
|
shift + cmd - j : yabai -m window --swap south
|
||||||
|
shift + cmd - h : yabai -m window --swap west
|
||||||
|
shift + cmd - l : yabai -m window --swap east
|
||||||
|
|
||||||
|
# move focused window to the given space
|
||||||
|
shift + cmd - 1 : yabai -m window --space 1
|
||||||
|
shift + cmd - 2 : yabai -m window --space 2
|
||||||
|
shift + cmd - 3 : yabai -m window --space 3
|
||||||
|
shift + cmd - 4 : yabai -m window --space 4
|
||||||
|
shift + cmd - 5 : yabai -m window --space 5
|
||||||
|
shift + cmd - 6 : yabai -m window --space 6
|
||||||
|
shift + cmd - 7 : yabai -m window --space 7
|
||||||
|
shift + cmd - 8 : yabai -m window --space 8
|
||||||
|
shift + cmd - 9 : yabai -m window --space 9
|
||||||
|
|
||||||
|
# balance window sizes
|
||||||
|
shift + cmd - 0 : yabai -m space --balance
|
||||||
|
# all windows in a space back to the grid (managed)
|
||||||
|
shift + cmd - g : yabai -m space --layout bsp
|
||||||
|
# all windows in a space to float and each fill screen
|
||||||
|
shift + cmd - f : yabai -m space --layout float \
|
||||||
|
| yabai -m query --windows --space | jq '.[].id' \
|
||||||
|
| xargs -I % yabai -m window % --grid 1:1:0:0:1:1
|
||||||
|
|
||||||
|
# managed layout, focus on next/previous window
|
||||||
|
shift + cmd - x : yabai -m window --focus next # TODO: figure out better key option
|
||||||
|
shift + cmd - z : yabai -m window --focus prev # TODO: figure out better key option
|
||||||
|
# float layout, focus on next/previous window; hacky, but it seems to work for now
|
||||||
|
shift + cmd - n : 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 %
|
||||||
|
shift + cmd - p : 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 %
|
||||||
|
|
35
src_files/.config/yabai/yabairc
Executable file
35
src_files/.config/yabai/yabairc
Executable file
@ -0,0 +1,35 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
|
# global settings
|
||||||
|
yabai -m config \
|
||||||
|
external_bar off:40:0 \
|
||||||
|
menubar_opacity 1.0 \
|
||||||
|
mouse_follows_focus off \
|
||||||
|
focus_follows_mouse off \
|
||||||
|
display_arrangement_order default \
|
||||||
|
window_origin_display default \
|
||||||
|
window_placement second_child \
|
||||||
|
window_insertion_point focused \
|
||||||
|
window_zoom_persist on \
|
||||||
|
window_shadow on \
|
||||||
|
window_animation_duration 0.0 \
|
||||||
|
window_animation_easing ease_out_circ \
|
||||||
|
window_opacity_duration 0.0 \
|
||||||
|
active_window_opacity 1.0 \
|
||||||
|
normal_window_opacity 0.90 \
|
||||||
|
window_opacity off \
|
||||||
|
insert_feedback_color 0xffd75f5f \
|
||||||
|
split_ratio 0.70 \
|
||||||
|
split_type auto \
|
||||||
|
auto_balance off \
|
||||||
|
top_padding 00 \
|
||||||
|
bottom_padding 00 \
|
||||||
|
left_padding 00 \
|
||||||
|
right_padding 00 \
|
||||||
|
window_gap 00 \
|
||||||
|
layout bsp \
|
||||||
|
mouse_modifier fn \
|
||||||
|
mouse_action1 move \
|
||||||
|
mouse_action2 resize \
|
||||||
|
mouse_drop_action swap
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user