diff options
author | Jacob Janzen <jjanzenn@proton.me> | 2024-08-09 22:11:23 -0500 |
---|---|---|
committer | Jacob Janzen <jjanzenn@proton.me> | 2024-08-09 22:11:23 -0500 |
commit | e6e8ebe10aa40e5a3be2b94cdf3b324f3d3e52e0 (patch) | |
tree | aca3b279520b76d918ce603d47981f1d23dbd1af /macos | |
parent | 40f02bc8088ca93224bf65f083c4ab3b17eaf435 (diff) |
split-dotfiles
Diffstat (limited to 'macos')
-rw-r--r-- | macos/.config/alacritty/alacritty.org | 55 | ||||
l--------- | macos/.config/emacs | 1 | ||||
l--------- | macos/.config/fastfetch | 1 | ||||
l--------- | macos/.config/nvim | 1 | ||||
-rw-r--r-- | macos/.config/skhd/skhdrc.org | 80 | ||||
-rw-r--r-- | macos/.config/yabai/yabairc.org | 63 | ||||
-rw-r--r-- | macos/.local/bin/launcher.org | 13 | ||||
l--------- | macos/.local/share/fonts | 1 | ||||
-rw-r--r-- | macos/.ssh/config.org | 12 | ||||
l--------- | macos/.wallpaper | 1 | ||||
-rw-r--r-- | macos/Applications/Emacs.app/Contents/MacOS/Emacs.org | 7 | ||||
-rw-r--r-- | macos/Library/LaunchAgents/gnu.emacs.daemon.org | 23 | ||||
l--------- | macos/clang-format.org | 1 | ||||
l--------- | macos/gitconfig.org | 1 | ||||
-rw-r--r-- | macos/profile.org | 7 | ||||
-rw-r--r-- | macos/zshrc.org | 106 |
16 files changed, 373 insertions, 0 deletions
diff --git a/macos/.config/alacritty/alacritty.org b/macos/.config/alacritty/alacritty.org new file mode 100644 index 0000000..992ed63 --- /dev/null +++ b/macos/.config/alacritty/alacritty.org @@ -0,0 +1,55 @@ +#+title: Alacritty Configuration + +Remove window decorations. +#+begin_src conf :tangle ~/.config/alacritty/alacritty.toml :mkdirp yes + [window] + decorations = "None" +#+end_src + +Make the window slightly transparent. +#+begin_src conf :tangle ~/.config/alacritty/alacritty.toml :mkdirp yes + opacity = 0.9 +#+end_src + +Add slight padding around the text. +#+begin_src conf :tangle ~/.config/alacritty/alacritty.toml :mkdirp yes + padding = { x = 6, y = 6 } +#+end_src + +Allow use of option as an alt key on Mac OS. +#+begin_src conf :tangle ~/.config/alacritty/alacritty.toml :mkdirp yes + option_as_alt = "Both" +#+end_src + +Use the same font as normal. +#+begin_src conf :tangle ~/.config/alacritty/alacritty.toml :mkdirp yes + [font] + normal = { family = "SauceCodePro Nerd Font", style = "Regular" } + size = 14 +#+end_src + +#+begin_src conf :tangle ~/.config/alacritty/alacritty.toml :mkdirp yes + [colors.primary] + background = '#ece0c9' + foreground = '#191916' + + [colors.normal] + black = '#191916' + red = '#ac4438' + green = '#354d52' + yellow = '#ba9151' + blue = '#465b91' + magenta = '#5b5489' + cyan = '#4e6062' + white = '#c9ad7a' + + [colors.bright] + black = '#293c3c' + red = '#d8611c' + green = '#4b7b53' + yellow = '#d8974b' + blue = '#2f3d91' + magenta = '#735e82' + cyan = '#6b8f92' + white = '#ece0c9' +#+end_src diff --git a/macos/.config/emacs b/macos/.config/emacs new file mode 120000 index 0000000..f4e5e56 --- /dev/null +++ b/macos/.config/emacs @@ -0,0 +1 @@ +../../common/.config/emacs
\ No newline at end of file diff --git a/macos/.config/fastfetch b/macos/.config/fastfetch new file mode 120000 index 0000000..a73d684 --- /dev/null +++ b/macos/.config/fastfetch @@ -0,0 +1 @@ +../../common/.config/fastfetch
\ No newline at end of file diff --git a/macos/.config/nvim b/macos/.config/nvim new file mode 120000 index 0000000..a0abd03 --- /dev/null +++ b/macos/.config/nvim @@ -0,0 +1 @@ +../../common/.config/nvim
\ No newline at end of file diff --git a/macos/.config/skhd/skhdrc.org b/macos/.config/skhd/skhdrc.org new file mode 100644 index 0000000..0d83fce --- /dev/null +++ b/macos/.config/skhd/skhdrc.org @@ -0,0 +1,80 @@ +#+title: =skhd= Configuration + +Add keybinding to open a terminal emulator. +#+begin_src conf :tangle ~/.config/skhd/skhdrc :mkdirp yes + cmd - return : /opt/homebrew/bin/alacritty +#+end_src + +Add keybinding for killing a window. +#+begin_src conf :tangle ~/.config/skhd/skhdrc :mkdirp yes + cmd + shift - q : yabai -m window --close +#+end_src + +Add keybinding for opening an app launcher. +#+begin_src conf :tangle ~/.config/skhd/skhdrc :mkdirp yes + cmd - d : ~/.local/bin/launcher +#+end_src + +Add keybinding for reloading the configuration. +#+begin_src conf :tangle ~/.config/skhd/skhdrc :mkdirp yes + cmd + shift - c : yabai --restart-service && skhd --restart-service +#+end_src + +Change focus keybindings. +#+begin_src conf :tangle ~/.config/skhd/skhdrc :mkdirp yes + cmd - h : yabai -m window --focus west || yabai -m display --focus west + cmd - j : yabai -m window --focus south || yabai -m display --focus south + cmd - k : yabai -m window --focus north || yabai -m display --focus north + cmd - l : yabai -m window --focus east || yabai -m display --focus east +#+end_src + +Move window keybindings. +#+begin_src conf :tangle ~/.config/skhd/skhdrc :mkdirp yes + shift + cmd - h : yabai -m window --warp west + shift + cmd - j : yabai -m window --warp south + shift + cmd - k : yabai -m window --warp north + shift + cmd - l : yabai -m window --warp east +#+end_src + +Change workspace keybindings. +#+begin_src conf :tangle ~/.config/skhd/skhdrc :mkdirp yes + cmd - 1 : yabai -m space --focus 1 + cmd - 2 : yabai -m space --focus 2 + cmd - 3 : yabai -m space --focus 3 + cmd - 4 : yabai -m space --focus 4 + cmd - 5 : yabai -m space --focus 5 + cmd - 6 : yabai -m space --focus 6 + cmd - 7 : yabai -m space --focus 7 + cmd - 8 : yabai -m space --focus 8 + cmd - 9 : yabai -m space --focus 9 + cmd - 0 : yabai -m space --focus 10 +#+end_src + +Move window to workspace keybindings. +#+begin_src conf :tangle ~/.config/skhd/skhdrc :mkdirp yes + cmd + shift - 1 : yabai -m window --space 1 + cmd + shift - 2 : yabai -m window --space 2 + cmd + shift - 3 : yabai -m window --space 3 + cmd + shift - 4 : yabai -m window --space 4 + cmd + shift - 5 : yabai -m window --space 5 + cmd + shift - 6 : yabai -m window --space 6 + cmd + shift - 7 : yabai -m window --space 7 + cmd + shift - 8 : yabai -m window --space 8 + cmd + shift - 9 : yabai -m window --space 9 + cmd + shift - 0 : yabai -m window --space 10 +#+end_src + +Define full screen keybinding. +#+begin_src conf :tangle ~/.config/skhd/skhdrc :mkdirp yes + cmd + shift - f : yabai -m window --toggle zoom-fullscreen +#+end_src + +Define toggle floating keybinding. +#+begin_src conf :tangle ~/.config/skhd/skhdrc :mkdirp yes + cmd + shift - space : yabai -m window --toggle float +#+end_src + +Add screenshot keybinding. +#+begin_src conf :tangle ~/.config/skhd/skhdrc :mkdirp yes + shift + ctrl - s : open /System/Applications/Utilities/Screenshot.app +#+end_src diff --git a/macos/.config/yabai/yabairc.org b/macos/.config/yabai/yabairc.org new file mode 100644 index 0000000..47f728f --- /dev/null +++ b/macos/.config/yabai/yabairc.org @@ -0,0 +1,63 @@ +#+title: Yabai Configuration + +Load script additions automatically. +#+begin_src sh :tangle ~/.config/yabai/yabairc :mkdirp yes + yabai -m signal --add event=dock_did_restart action="sudo /opt/homebrew/bin/yabai --load-sa" + sudo /opt/homebrew/bin/yabai --load-sa +#+end_src + +Tile the windows. +#+begin_src sh :tangle ~/.config/yabai/yabairc :mkdirp yes + yabai -m config layout bsp +#+end_src + +Automatically balance window sizes. +#+begin_src sh :tangle ~/.config/yabai/yabairc :mkdirp yes + yabai -m config auto_balance on +#+end_src + +Use 10 pixel gaps. +#+begin_src sh :tangle ~/.config/yabai/yabairc :mkdirp yes + yabai -m config top_padding 10 + yabai -m config bottom_padding 10 + yabai -m config left_padding 10 + yabai -m config right_padding 10 + yabai -m config window_gap 10 +#+end_src + +Remove window shadows unless the window is floating. +#+begin_src sh :tangle ~/.config/yabai/yabairc :mkdirp yes + yabai -m config window_shadow float +#+end_src + +Move mouse to focused window anad focus on the window that the mouse is on. +#+begin_src sh :tangle ~/.config/yabai/yabairc :mkdirp yes + yabai -m config focus_follows_mouse autoraise + yabai -m config mouse_follows_focus on +#+end_src + +Control windows if =cmd= is held. +#+begin_src sh :tangle ~/.config/yabai/yabairc :mkdirp yes + yabai -m config mouse_modifier cmd +#+end_src + +Move windows with left click. +#+begin_src sh :tangle ~/.config/yabai/yabairc :mkdirp yes + yabai -m config mouse_action1 move +#+end_src + +Resize windows with right click. +#+begin_src sh :tangle ~/.config/yabai/yabairc :mkdirp yes + yabai -m config mouse_action2 resize +#+end_src + +Update Positions when the window is dropped. +#+begin_src sh :tangle ~/.config/yabai/yabairc :mkdirp yes + yabai -m mouse_drop_action swap +#+end_src + +Don't manage some apps. +#+begin_src sh :tangle ~/.config/yabai/yabairc :mkdirp yes + yabai -m rule --add app="^System Settings$" manage=off + yabai -m rule --add app="^Calculator$" manage=off +#+end_src diff --git a/macos/.local/bin/launcher.org b/macos/.local/bin/launcher.org new file mode 100644 index 0000000..f74d094 --- /dev/null +++ b/macos/.local/bin/launcher.org @@ -0,0 +1,13 @@ +#+title: Application Launcher Script + +Search several locations for applications with =choose=. +#+begin_src sh :tangle ~/.local/bin/launcher :mkdirp yes :tangle-mode o755 + #!/bin/sh + app="$(ls /Applications/ /Applications/Utilities/ /System/Applications/ /System/Applications/Utilities/ ~/Applications/ | grep '\.app$' | sed 's/\.app$//g' | choose -f "SauceCodePro Nerd Font" -s 15 -b ece0c9).app" +#+end_src + +Try opening the app in each location. +#+begin_src sh :tangle ~/.local/bin/launcher :mkdirp yes :tangle-mode o755 + open -n "$HOME/Applications/$app" || open -n "/Applications/$app" || open -n "/System/Applications/Utilities/$app" || open -n "/System/Applications/$app" || open -n "/Applications/Utilities/$app" + +#+end_src diff --git a/macos/.local/share/fonts b/macos/.local/share/fonts new file mode 120000 index 0000000..9ab89c4 --- /dev/null +++ b/macos/.local/share/fonts @@ -0,0 +1 @@ +../../../common/.local/share/fonts
\ No newline at end of file diff --git a/macos/.ssh/config.org b/macos/.ssh/config.org new file mode 100644 index 0000000..e78c4fb --- /dev/null +++ b/macos/.ssh/config.org @@ -0,0 +1,12 @@ +#+title: SSH Configuration +Keys should be added to the SSH agent. +#+begin_src conf :tangle ~/.ssh/config :mkdirp yes + Host * + UseKeychain yes + AddKeysToAgent yes + IdentityFile ~/.ssh/id_ed25519 + + Host aviary + HostName aviary.cs.umanitoba.ca + User janzenj2 +#+end_src diff --git a/macos/.wallpaper b/macos/.wallpaper new file mode 120000 index 0000000..ec41b94 --- /dev/null +++ b/macos/.wallpaper @@ -0,0 +1 @@ +../common/.wallpaper
\ No newline at end of file diff --git a/macos/Applications/Emacs.app/Contents/MacOS/Emacs.org b/macos/Applications/Emacs.app/Contents/MacOS/Emacs.org new file mode 100644 index 0000000..c46a713 --- /dev/null +++ b/macos/Applications/Emacs.app/Contents/MacOS/Emacs.org @@ -0,0 +1,7 @@ +#+title: Emacs Client Application + +#+begin_src sh :tangle ~/Applications/Emacs.app/Contents/MacOS/Emacs :mkdirp yes :tangle-mode o755 + #!/bin/sh + /opt/homebrew/bin/emacsclient -c &> /dev/null & + disown +#+end_src diff --git a/macos/Library/LaunchAgents/gnu.emacs.daemon.org b/macos/Library/LaunchAgents/gnu.emacs.daemon.org new file mode 100644 index 0000000..f595c93 --- /dev/null +++ b/macos/Library/LaunchAgents/gnu.emacs.daemon.org @@ -0,0 +1,23 @@ +#+title: Emacs Daemon =launchd= Entry + +Create a =launchd= entry for Emacs daemon to run at login. +#+begin_src xml :tangle ~/Library/LaunchAgents/gnu.emacs.daemon.plist :mkdirp yes + <?xml version="1.0" encoding="UTF-8"?> + <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" + "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> + <plist version="1.0"> + <dict> + <key>Label</key> + <string>gnu.emacs.daemon</string> + <key>ProgramArguments</key> + <array> + <string>/opt/homebrew/bin/emacs</string> + <string>--daemon</string> + </array> + <key>RunAtLoad</key> + <true/> + <key>ServiceDescription</key> + <string>Gnu Emacs Daemon</string> + </dict> + </plist> +#+end_src diff --git a/macos/clang-format.org b/macos/clang-format.org new file mode 120000 index 0000000..960b79e --- /dev/null +++ b/macos/clang-format.org @@ -0,0 +1 @@ +../common/clang-format.org
\ No newline at end of file diff --git a/macos/gitconfig.org b/macos/gitconfig.org new file mode 120000 index 0000000..e4e5534 --- /dev/null +++ b/macos/gitconfig.org @@ -0,0 +1 @@ +../common/gitconfig.org
\ No newline at end of file diff --git a/macos/profile.org b/macos/profile.org new file mode 100644 index 0000000..2827dd8 --- /dev/null +++ b/macos/profile.org @@ -0,0 +1,7 @@ +#+TITLE: =.profile= Settings +* Path +Add items to the path. +#+begin_src sh :tangle ~/.profile + export PATH="$HOME/.local/share/fzf-zsh-plugin/bin:$HOME/node_modules/.bin:$HOME/gems/bin:$HOME/.local/bin:$HOME/go/bin:$PATH" + export PATH="/Users/jjanzen/Library/Python/3.12/bin:/opt/local/libexec/gnubin:/opt/local/bin:/opt/local/sbin:$PATH" +#+end_src diff --git a/macos/zshrc.org b/macos/zshrc.org new file mode 100644 index 0000000..fc261f5 --- /dev/null +++ b/macos/zshrc.org @@ -0,0 +1,106 @@ +#+title: ZSH Configuration +Set up completions. +#+begin_src sh :tangle ~/.zshrc :mkdirp yes + zstyle ':completion:*' completer _expand _complete _ignored _approximate + zstyle ':completion:*' matcher-list '' 'm:{[:lower:]}={[:upper:]}' 'r:|[._-]=** r:|=**' 'l:|=* r:|=*' + zstyle :compinstall filename '/home/jjanzen/.zshrc' + autoload -U compinit promptinit + compinit + promptinit +#+end_src + +Set up the history with 1000 entries and ignored duplicate commands. +#+begin_src sh :tangle ~/.zshrc :mkdirp yes + HISTFILE=~/.histfile + HISTSIZE=1000 + SAVEHIST=1000 + setopt hist_ignore_all_dups +#+end_src + +Enable automatic =cd=. +#+begin_src sh :tangle ~/.zshrc :mkdirp yes + setopt autocd +#+end_src + +Enable extended glob. +#+begin_src sh :tangle ~/.zshrc :mkdirp yes + setopt extendedglob +#+end_src + +If a glob returns nothing, don't keep the =*=. +#+begin_src sh :tangle ~/.zshrc :mkdirp yes + setopt nullglob +#+end_src + +Report the status of background jobs immediately. +#+begin_src sh :tangle ~/.zshrc :mkdirp yes + setopt notify +#+end_src + +Disable the beep. +#+begin_src sh :tangle ~/.zshrc :mkdirp yes + unsetopt beep +#+end_src + +Use =vi= keybindings. +#+begin_src sh :tangle ~/.zshrc :mkdirp yes + bindkey -v +#+end_src + +Use =lesspipe= back end for =less= if it is installed. +#+begin_src sh :tangle ~/.zshrc :mkdirp yes + which lesspipe.sh &> /dev/null && export LESSOPEN="|lesspipe.sh %s" +#+end_src + +Use =eza= as my =ls= command if it is installed. +#+begin_src sh :tangle ~/.zshrc :mkdirp yes + which eza &> /dev/null && alias ls=eza +#+end_src + +Use Neovim as my =vi= and =vim= application if it is installed. +#+begin_src sh :tangle ~/.zshrc :mkdirp yes + which nvim &> /dev/null && alias vi=nvim && alias vim=nvim +#+end_src + +If the Firefox binary is called =firefox-bin=, let =firefox= also run =firefox-bin=. +#+begin_src sh :tangle ~/.zshrc :mkdirp yes + which firefox-bin &> /dev/null && alias firefox=firefox-bin +#+end_src + +Lazy =ls= shortcuts. +#+begin_src sh :tangle ~/.zshrc :mkdirp yes + alias ll='ls -alF' + alias la='ls -a' + alias l='ls -F' + alias sl='ls' +#+end_src + +*** Prompt +Define function to write out icons for the git status. +#+begin_src sh :tangle ~/.zshrc :mkdirp yes + parse_git_dirty() { + git_status="$(git status 2> /dev/null)" + [[ "$git_status" =~ "use \"git push\" to publish your local commits" ]] && echo -n " %F{green}%f" + [[ "$git_status" =~ "Changes to be committed:" ]] && echo -n " %F{magenta}%f" + [[ "$git_status" =~ "Changes not staged for commit:" ]] && echo -n " %F{yellow}%f" + [[ "$git_status" =~ "Untracked files:" ]] && echo -n " %F{red}%f" + } +#+end_src + +Enable git status in the prompt. +#+begin_src sh :tangle ~/.zshrc :mkdirp yes + setopt prompt_subst + autoload -Uz vcs_info + precmd () { vcs_info } + zstyle ':vcs_info:*' formats ' %F{blue}%b%f' # git(main) +#+end_src + +Define the prompt as follows: +- Error code (if applicable) +- Path using =~= for the home directory and truncating if too long +- Git branch +- Git status +- =$= to mark the start of the prompt +#+begin_src sh :tangle ~/.zshrc :mkdirp yes + PS1='%(?..%B%F{red}[%?%\]%f%b )%F{green}%20<...<%~%<<%f$vcs_info_msg_0_$(parse_git_dirty) $ ' +#+end_src |