aboutsummaryrefslogtreecommitdiff
path: root/macos
diff options
context:
space:
mode:
authorJacob Janzen <jjanzenn@proton.me>2024-08-09 22:11:23 -0500
committerJacob Janzen <jjanzenn@proton.me>2024-08-09 22:11:23 -0500
commite6e8ebe10aa40e5a3be2b94cdf3b324f3d3e52e0 (patch)
treeaca3b279520b76d918ce603d47981f1d23dbd1af /macos
parent40f02bc8088ca93224bf65f083c4ab3b17eaf435 (diff)
split-dotfiles
Diffstat (limited to 'macos')
-rw-r--r--macos/.config/alacritty/alacritty.org55
l---------macos/.config/emacs1
l---------macos/.config/fastfetch1
l---------macos/.config/nvim1
-rw-r--r--macos/.config/skhd/skhdrc.org80
-rw-r--r--macos/.config/yabai/yabairc.org63
-rw-r--r--macos/.local/bin/launcher.org13
l---------macos/.local/share/fonts1
-rw-r--r--macos/.ssh/config.org12
l---------macos/.wallpaper1
-rw-r--r--macos/Applications/Emacs.app/Contents/MacOS/Emacs.org7
-rw-r--r--macos/Library/LaunchAgents/gnu.emacs.daemon.org23
l---------macos/clang-format.org1
l---------macos/gitconfig.org1
-rw-r--r--macos/profile.org7
-rw-r--r--macos/zshrc.org106
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