Compare commits

..

40 Commits

Author SHA1 Message Date
eb3ca0a023 aerospace: Updated config 2025-01-23 23:05:02 +01:00
c8eb8caad0 Ghostty: Updated config 2025-01-23 23:04:40 +01:00
f9f9bfd00b Brew: Updated Brewfile 2024-12-28 22:17:31 +01:00
7a34d51e4f karabiner: Updated config 2024-12-28 22:16:27 +01:00
5effd669c5 Ghostty: Add config 2024-12-28 22:15:46 +01:00
70a5e6eeb7 brew: Remove Hyperkey and added Karabiner Elements 2024-12-05 09:21:30 +01:00
5996e6116e Karabiner: Added config 2024-12-05 09:19:58 +01:00
669935cb7d brew: Updated Brewfile 2024-12-04 23:37:44 +01:00
d17a407787 aerospace: Updated config 2024-12-04 23:37:05 +01:00
885897bec5 aerospace: Updated config 2024-12-02 09:40:43 +01:00
d9f261a637 aerospace: Added config 2024-12-01 09:30:44 +01:00
395c670241 git: Added config 2024-11-28 22:52:12 +01:00
fe07298506 tmux: Replace $HOME with ~in pane titles 2024-11-08 23:50:04 +01:00
67832c2ac9 ZSH: Add plugin for renaming tmux panes by path or command 2024-11-08 23:49:36 +01:00
c3df9f22af tmux: Fixed window index for startup command 2024-11-05 21:41:55 +01:00
e593ca2c50 tmux: Fixed wrong color for status indicator and window title 2024-11-05 21:31:22 +01:00
87673142e3 tmux: Redid config again without external dependencies 2024-11-05 20:53:10 +01:00
1f6bf9e9c8 tmux: Changed loading of plugins 2024-11-05 01:02:29 +01:00
836e9ccd56 tmux: Updated config to use tpm and catppucin theme 2024-11-05 00:54:53 +01:00
3506f405d3 ZSH: Add config for autosuggestions 2024-11-03 18:18:57 +01:00
ed3eeb9459 Removed youtube-dl config 2024-10-29 14:00:02 +01:00
384dcae932 ZSH: Linted files 2024-10-29 13:59:15 +01:00
864f0805ba ZSH: Added prepend-sudo plugin 2024-10-29 13:58:26 +01:00
0fc43e1563 ZSH: Changed loading order of plugins 2024-10-28 22:29:28 +01:00
7014435399 ZSH: Restructured path settings 2024-10-28 22:28:56 +01:00
360e82abe9 ZSH: Restructured history settings 2024-10-28 22:28:10 +01:00
a768bf308f ZSH: Sort results by path in dc function 2024-10-28 22:27:06 +01:00
5310a56996 Makefile: Fixed SSH deployment 2024-10-28 18:48:35 +01:00
5014d03d55 Removed duti config, added eza 2024-10-28 18:47:34 +01:00
66693e6aee ZSH: Added ENV for eza 2024-10-28 18:34:34 +01:00
b8109bc096 ZSH: Update config for ez-compinit 2024-10-28 18:33:42 +01:00
4448cf6596 ZSH: Added config for ez-compinit 2024-10-28 18:32:28 +01:00
6b61b3efc4 ZSH: Moved settings for history-substring-search to it's own config file. 2024-10-28 18:31:52 +01:00
275793ea16 ZSH: Updated aliases 2024-10-28 18:30:37 +01:00
b40d4c840c htop: Updated config again 2024-10-28 17:23:26 +01:00
b8ca504419 htop: Updated config 2024-10-28 16:54:19 +01:00
b0ea8cfff7 ZSH: Add config for z plugin 2024-10-28 16:40:32 +01:00
32bbe1a983 Fix Makefile 2024-10-28 15:07:01 +01:00
74b725ff89 ZSH: Fix dc function 2024-10-28 15:03:39 +01:00
f7baa29734 ZSH: Fix zwcautocompile function 2024-10-28 15:02:52 +01:00
36 changed files with 811 additions and 481 deletions

View File

@ -2,154 +2,137 @@
cask_args appdir: "/Applications" cask_args appdir: "/Applications"
cask_args language: "de,deu,en,eng" cask_args language: "de,deu,en,eng"
## Taps # ## Taps
tap "buo/cask-upgrade" # tap "homebrew/bundle"
tap "fabianishere/personal" # tap "homebrew/cask"
tap "homebrew/bundle" # tap "homebrew/cask-drivers"
tap "homebrew/cask" # tap "homebrew/cask-fonts"
tap "homebrew/cask-drivers" # tap "homebrew/cask-versions"
tap "homebrew/cask-fonts" # tap "homebrew/core"
tap "homebrew/cask-versions" # tap "homebrew/services"
tap "homebrew/core" # tap "microsoft/git"
tap "homebrew/services" tap "nikitabobko/tap"
tap "hudochenkov/sshpass" tap "FelixKratz/formulae"
tap "khanhas/tap"
tap "koekeishiya/formulae"
## brew formulae ## brew formulae
brew "arping" brew "FelixKratz/formulae/borders"
brew "node"
brew "bitwarden-cli"
brew "brew-cask-completion" brew "brew-cask-completion"
brew "python@3.9" brew "arping"
brew "checkbashisms" brew "checkbashisms"
brew "convmv" brew "eza"
brew "duti"
brew "exiftool"
brew "tesseract"
brew "ffmpeg", args: ["HEAD"]
brew "git" brew "git"
brew "git-secret" brew "git-secret"
brew "go" brew "go"
brew "htop" brew "htop"
brew "hugo" brew "hugo"
brew "ipmitool" brew "iperf"
brew "iperf3"
brew "jq" brew "jq"
brew "mas"
brew "mosh" brew "mosh"
brew "nmap" brew "nmap"
brew "node"
brew "ocrmypdf" brew "ocrmypdf"
brew "pandoc" brew "python3"
brew "reattach-to-user-namespace"
brew "rsync" brew "rsync"
brew "rclone"
brew "restic"
brew "shfmt" brew "shfmt"
brew "subversion"
brew "tesseract-lang" brew "tesseract-lang"
brew "tmux" brew "tmux"
brew "topgrade" brew "topgrade"
brew "tree" brew "tree"
brew "vim" brew "vim"
brew "youtube-dl" brew "yt-dlp"
#brew "trippy"
brew "zsh" brew "zsh"
brew "zsh-completions" brew "zsh-completions"
brew "fabianishere/personal/pam_reattach"
brew "hudochenkov/sshpass/sshpass"
brew "koekeishiya/formulae/skhd"
brew "koekeishiya/formulae/yabai", args: ["HEAD"]
## cask formulae # Fonts
cask "airbuddy" cask "font-meslo-lg-nerd-font"
cask "alfred"
cask "amethyst"
cask "arduino"
cask "arq"
cask "balenaetcher"
cask "bartender"
cask "bonjeff"
cask "calibre"
cask "coconutbattery"
cask "coolterm"
cask "dbeaver-community"
cask "drawio"
cask "fantastical"
cask "filebot"
cask "firefox"
cask "font-fira-code" cask "font-fira-code"
cask "font-source-code-pro" cask "font-source-code-pro"
# Casks
cask "adobe-creative-cloud"
cask "airbuddy"
cask "minecraft"
cask "filebot"
cask "firefox"
cask "ghostty"
cask "birdfont"
cask "balenaetcher"
cask "bettertouchtool"
cask "bonjeff"
cask "fork" cask "fork"
cask "fujitsu-scansnap-manager"
cask "google-chrome" cask "google-chrome"
# cask "hyperkey"
cask "raspberry-pi-imager"
cask "hammerspoon"
cask "hazel" cask "hazel"
cask "hex-fiend" cask "curseforge"
cask "istat-menus" cask "obs"
cask "iterm2" # cask "hiddenbar"
cask "keyboardcleantool" cask "jordanbaird-ice"
cask "little-snitch" cask "karabiner-elements"
cask "logitech-camera-settings"
cask "mactex-no-gui"
cask "marked" cask "marked"
cask "moneymoney"
cask "pdf-expert"
# cask "sequel-ace"
# cask "thor"
cask "transmit"
# cask "whichspace"
cask "calibre"
cask "coconutbattery"
cask "vscodium"
cask "itsycal"
cask "stats"
# cask "iterm2"
cask "dbeaver-community"
cask "discord"
cask "inkscape"
cask "joplin"
cask "mediathekview" cask "mediathekview"
cask "microsoft-teams" cask "microsoft-teams"
cask "moneymoney"
cask "monitorcontrol" cask "monitorcontrol"
cask "nextcloud" cask "nextcloud"
cask "numi" cask "numi"
cask "onyx" cask "raycast"
cask "oracle-jdk" # cask "rectangle"
cask "pdf-expert"
cask "plex"
cask "pocket-casts"
cask "portfolioperformance"
cask "qlcommonmark"
cask "raspberry-pi-imager"
cask "sequel-ace"
cask "silicon-info"
cask "sonos"
cask "spotify" cask "spotify"
cask "transmission"
cask "transmit"
cask "unclack"
cask "vlc" cask "vlc"
cask "vnc-viewer" cask "vnc-viewer"
cask "vscodium" cask "nikitabobko/tap/aerospace"
cask "webex"
cask "whichspace"
cask "wireshark"
## Mac AppStore ## Mac AppStore
mas "AdGuard for Safari", id: 1440147259 mas "AdGuard for Safari", id: 1440147259;
mas "Affinity Designer", id: 824171161 mas "Affinity Designer", id: 824171161;
mas "Affinity Photo", id: 824183456 mas "Affinity Photo", id: 824183456;
mas "Affinity Publisher", id: 881418622 mas "Affinity Publisher", id: 881418622;
mas "Amphetamine", id: 937984704 mas "Amphetamine", id: 937984704;
mas "AudioBookBinder", id: 413969927 mas "AudioBookBinder", id: 413969927;
mas "Bitwarden", id: 1352778147 mas "Bitwarden", id: 1352778147;
mas "Cardhop", id: 1290358394 mas "Cardhop", id: 1290358394;
mas "ColorSlurp", id: 1287239339 mas "ColorSlurp", id: 1287239339;
mas "Controller", id: 1198176727 mas "Create Booklet", id: 943029046;
mas "Create Booklet", id: 943029046 mas "DaisyDisk", id: 411643860;
mas "DaisyDisk", id: 411643860 mas "Drafts", id: 1435957248;
mas "Drafts", id: 1435957248 mas "Draw Things", id: 6444050820;
mas "Final Cut Pro", id: 424389933 mas "Final Cut Pro", id: 424389933;
mas "iA Writer", id: 775737590 mas "iA Writer", id: 775737590;
mas "Interact Scratchpad", id: 1199660222 mas "Ice Cubes", id: 6444915884;
mas "Keynote", id: 409183694 mas "Interact Scratchpad", id: 1199660222;
mas "Mactracker", id: 430255202 mas "Microsoft Excel", id: 462058435;
mas "Microsoft Excel", id: 462058435 mas "Microsoft PowerPoint", id: 462062816;
mas "Microsoft PowerPoint", id: 462062816 mas "Microsoft Word", id: 462054704;
mas "Microsoft Word", id: 462054704 mas "Mindcad Tiler", id: 432460453;
mas "Mindcad Tiler", id: 432460453 mas "Moom Classic", id: 419330170;
mas "MindNode", id: 992076693 mas "MQTT Explorer", id: 1455214828;
mas "MQTT Explorer", id: 1455214828 mas "Parcel", id: 639968404;
mas "Numbers", id: 409203825 mas "Reeder", id: 1529448980;
mas "Pages", id: 409201541 mas "RSS Button for Safari", id: 1437501942;
mas "Parcel", id: 639968404 mas "The Unarchiver", id: 425424353;
mas "Reeder", id: 1529448980 mas "Todoist", id: 585829637;
mas "RSS Button for Safari", id: 1437501942 mas "WireGuard", id: 1451685025;
mas "Scenecuts Helper", id: 1540491573 mas "WhatsApp", id: 310633997;
mas "SerialTools", id: 611021963
mas "The Unarchiver", id: 425424353
mas "Todoist", id: 585829637
mas "Turn Off the Lights for Safari", id: 1273998507
mas "Tweetbot", id: 557168941
mas "WhatsApp", id: 1147396723
mas "WireGuard", id: 1451685025
mas "Xcode", id: 497799835

View File

@ -0,0 +1,292 @@
# This needs jankyborders and hyperkey installed.
# Hyperkey must configured configured to use caps lock as hyperkey und must not include shift in hyperkey.
# Place a copy of this config to ~/.aerospace.toml
# After that, you can edit ~/.aerospace.toml to your liking
# 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
# JankyBorders has a built-in detection of already running process,
# so it won't be run twice on AeroSpace restart
after-startup-command = [
'exec-and-forget borders active_color=0xffeff1f5 inactive_color=0xff8c8fa1 width=10.0'
]
# 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'
# Mouse follows focus when focused monitor changes
# Drop it from your config, if you don't like this behavior
# See https://nikitabobko.github.io/AeroSpace/guide#on-focus-changed-callbacks
# See https://nikitabobko.github.io/AeroSpace/commands#move-mouse
# Fallback value (if you omit the key): on-focused-monitor-changed = []“¡”¬””
on-focused-monitor-changed = ['move-mouse monitor-lazy-center']
# You can effectively turn off macOS "Hide application" (cmd-h) feature by toggling this flag
# Useful if you don't use this macOS feature, but accidentally hit cmd-h or cmd-alt-h key
# Also see: https://nikitabobko.github.io/AeroSpace/goodies#disable-hide-app
automatically-unhide-macos-hidden-apps = true
# 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 = 16
inner.vertical = 16
outer.left = 16
outer.bottom = 16
outer.top = 16
outer.right = 16
# 'main' binding mode declaration
# See: https://nikitabobko.github.io/AeroSpace/guide#binding-modes
# 'main' binding mode must be always presented
# Fallback value (if you omit the key): mode.main.binding = {}
[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
# See: https://nikitabobko.github.io/AeroSpace/commands#exec-and-forget
# You can uncomment the following lines to open up terminal with alt + enter shortcut (like in i3)
# alt-enter = '''exec-and-forget osascript -e '
# tell application "Terminal"
# do script
# activate
# end tell'
# '''
# See: https://nikitabobko.github.io/AeroSpace/commands#layout
cmd-ctrl-alt-period = 'layout tiles horizontal vertical'
cmd-ctrl-alt-comma = 'layout accordion horizontal vertical'
cmd-ctrl-alt-f = 'fullscreen'
# See: https://nikitabobko.github.io/AeroSpace/commands#focus
cmd-ctrl-alt-left = 'focus left'
cmd-ctrl-alt-down = 'focus down'
cmd-ctrl-alt-up = 'focus up'
cmd-ctrl-alt-right = 'focus right'
# See: https://nikitabobko.github.io/AeroSpace/commands#move
cmd-ctrl-alt-shift-h = 'move left'
cmd-ctrl-alt-shift-j = 'move down'
cmd-ctrl-alt-shift-k = 'move up'
cmd-ctrl-alt-shift-l = 'move right'
# See: https://nikitabobko.github.io/AeroSpace/commands#resize
cmd-ctrl-alt-shift-down = 'resize smart -50'
cmd-ctrl-alt-shift-up = 'resize smart +50'
# See: https://nikitabobko.github.io/AeroSpace/commands#workspace
cmd-ctrl-alt-1 = 'workspace 1'
cmd-ctrl-alt-2 = 'workspace 2'
cmd-ctrl-alt-3 = 'workspace 3'
cmd-ctrl-alt-4 = 'workspace 4'
cmd-ctrl-alt-5 = 'workspace 5'
cmd-ctrl-alt-6 = 'workspace 6'
cmd-ctrl-alt-7 = 'workspace 7'
# cmd-ctrl-alt-8 = 'workspace 8'
# cmd-ctrl-alt-9 = 'workspace 9'
# See: https://nikitabobko.github.io/AeroSpace/commands#move-node-to-workspace
cmd-ctrl-alt-shift-1 = 'move-node-to-workspace 1'
cmd-ctrl-alt-shift-2 = 'move-node-to-workspace 2'
cmd-ctrl-alt-shift-3 = 'move-node-to-workspace 3'
cmd-ctrl-alt-shift-4 = 'move-node-to-workspace 4'
cmd-ctrl-alt-shift-5 = 'move-node-to-workspace 5'
cmd-ctrl-alt-shift-6 = 'move-node-to-workspace 6'
cmd-ctrl-alt-shift-7 = 'move-node-to-workspace 7'
# cmd-ctrl-alt-shift-8 = 'move-node-to-workspace 8'
# cmd-ctrl-alt-shift-9 = 'move-node-to-workspace 9'
# alt-shift-a = 'move-node-to-workspace A'
# alt-shift-b = 'move-node-to-workspace B'
# alt-shift-c = 'move-node-to-workspace C'
# alt-shift-d = 'move-node-to-workspace D'
# alt-shift-e = 'move-node-to-workspace E'
# alt-shift-f = 'move-node-to-workspace F'
# alt-shift-g = 'move-node-to-workspace G'
# alt-shift-i = 'move-node-to-workspace I'
# alt-shift-m = 'move-node-to-workspace M'
# alt-shift-n = 'move-node-to-workspace N'
# alt-shift-o = 'move-node-to-workspace O'
# alt-shift-p = 'move-node-to-workspace P'
# alt-shift-q = 'move-node-to-workspace Q'
# alt-shift-r = 'move-node-to-workspace R'
# alt-shift-s = 'move-node-to-workspace S'
# alt-shift-t = 'move-node-to-workspace T'
# alt-shift-u = 'move-node-to-workspace U'
# alt-shift-v = 'move-node-to-workspace V'
# alt-shift-w = 'move-node-to-workspace W'
# alt-shift-x = 'move-node-to-workspace X'
# alt-shift-y = 'move-node-to-workspace Y'
# alt-shift-z = 'move-node-to-workspace Z'
# See: https://nikitabobko.github.io/AeroSpace/commands#workspace-back-and-forth
cmd-ctrl-alt-tab = 'workspace-back-and-forth'
# See: https://nikitabobko.github.io/AeroSpace/commands#move-workspace-to-monitor
cmd-ctrl-alt-shift-tab = 'move-workspace-to-monitor --wrap-around next'
# See: https://nikitabobko.github.io/AeroSpace/commands#mode
# alt-shift-sfemicolon = 'mode service'
cmd-ctrl-alt-s = 'mode service'
# 'service' binding mode declaration.
# See: https://nikitabobko.github.io/AeroSpace/guide#binding-modes
[mode.service.binding]
esc = ['reload-config', 'mode main']
r = ['flatten-workspace-tree', 'mode main'] # reset layout
f = ['layout floating tiling', 'mode main'] # Toggle between floating and tiling layout
backspace = ['close-all-windows-but-current', 'mode main']
# sticky is not yet supported https://github.com/nikitabobko/AeroSpace/issues/2
#s = ['layout sticky tiling', 'mode main']
cmd-ctrl-alt-shift-h = ['join-with left', 'mode main']
cmd-ctrl-alt-shift-j = ['join-with down', 'mode main']
cmd-ctrl-alt-shift-k = ['join-with up', 'mode main']
cmd-ctrl-alt-shift-l = ['join-with right', 'mode main']
## Workspace 1: Main
[[on-window-detected]]
if.app-id = 'org.mozilla.firefox'
run = 'move-node-to-workspace 1'
[[on-window-detected]]
if.app-id = 'com.reederapp.5.macOS'
run = 'move-node-to-workspace 1'
[[on-window-detected]]
if.app-id = 'com.apple.Safari'
run = 'move-node-to-workspace 1'
[[on-window-detected]]
if.app-id = 'com.google.Chrome'
run = 'move-node-to-workspace 1'
## Workspace 2: Mail
[[on-window-detected]]
if.app-id = 'com.apple.mail'
run = 'move-node-to-workspace 2'
[[on-window-detected]]
if.app-id = 'org.mozilla.thunderbird'
run = 'move-node-to-workspace 2'
## Workspace 3: Messaging
[[on-window-detected]]
if.app-id = 'com.apple.MobileSMS'
run = 'move-node-to-workspace 3'
[[on-window-detected]]
if.app-id = 'net.whatsapp.WhatsApp'
run = 'move-node-to-workspace 3'
## Workspace 4: PIM
[[on-window-detected]]
if.app-id = 'com.apple.iCal'
run = 'move-node-to-workspace 4'
[[on-window-detected]]
if.app-id = 'com.apple.AddressBook'
run = 'move-node-to-workspace 4'
## Workspace 5: Shell
[[on-window-detected]]
if.app-id = 'com.googlecode.iterm2'
run = 'move-node-to-workspace 5'
[[on-window-detected]]
if.app-id = 'com.mitchellh.ghostty'
run = 'move-node-to-workspace 5'
## Workspace 6: Code
[[on-window-detected]]
if.app-id = 'com.vscodium'
run = 'move-node-to-workspace 6'
[[on-window-detected]]
if.app-id = 'com.DanPristupov.Fork'
run = 'move-node-to-workspace 6'
## Workspace 7: Misc
[[on-window-detected]]
if.app-id = 'com.hnc.Discord'
run = 'move-node-to-workspace 7'
[[on-window-detected]]
if.app-id = 'com.mojang.minecraftlauncher'
run = 'move-node-to-workspace 7'
[[on-window-detected]]
if.app-id = 'com.moneymoney-app.retail'
run = 'move-node-to-workspace 7'
[[on-window-detected]]
if.app-name-regex-substring = 'Actual Budget'
run = 'move-node-to-workspace 7'
## Floating apps
[[on-window-detected]]
if.app-id = 'com.jordanbaird.Ice'
run = 'layout floating'
[[on-window-detected]]
if.app-name-regex-substring = 'ntfy.sh'
run = 'layout floating'
[[on-window-detected]]
if.app-name-regex-substring = 'Home Assistant'
run = 'layout floating'
[exec]
inherit-env-vars = true
## Add homebrew prefix to path
[exec.env-vars]
PATH = '$(brew --prefix)/bin:/$(brew --prefix)/sbin:${PATH}'

View File

@ -1,10 +0,0 @@
com.apple.Preview .ai all
com.apple.Preview .bmp all
com.apple.Preview .jpeg all
com.apple.Preview .jpg all
com.apple.Preview .pdf all
com.apple.Preview .png all
com.apple.Preview .ps all
com.apple.Preview .psd all
com.apple.Preview .tif all
com.apple.Preview .tiff all

View File

@ -1,15 +0,0 @@
com.brettterpstra.marked2 csstore viewer
com.brettterpstra.marked2 markdown viewer
com.brettterpstra.marked2 md viewer
com.brettterpstra.marked2 mdml viewer
com.brettterpstra.marked2 mdown viewer
com.brettterpstra.marked2 mdtext viewer
com.brettterpstra.marked2 mdtxt viewer
com.brettterpstra.marked2 mdwn viewer
com.brettterpstra.marked2 mkd viewer
com.brettterpstra.marked2 mkdn viewer
com.brettterpstra.marked2 mmd viewer
com.brettterpstra.marked2 multimarkdown viewer
com.brettterpstra.marked2 text viewer
com.brettterpstra.marked2 textbundle viewer
com.brettterpstra.marked2 txt viewer

View File

@ -1,15 +0,0 @@
com.colliderli.iina .3gp all
com.colliderli.iina .asf all
com.colliderli.iina .asx all
com.colliderli.iina .avi all
com.colliderli.iina .flv all
com.colliderli.iina .mkv all
com.colliderli.iina .mov all
com.colliderli.iina .mp4 all
com.colliderli.iina .mpg all
com.colliderli.iina .ogm all
com.colliderli.iina .rm all
com.colliderli.iina .swf all
com.colliderli.iina .vob all
com.colliderli.iina .webm all
com.colliderli.iina .wmv all

View File

@ -1,3 +0,0 @@
com.flexibits.fantastical2.mac ics all
com.flexibits.fantastical2.mac vcal all
com.flexibits.fantastical2.mac vcs all

View File

@ -1,15 +0,0 @@
com.microsoft.Excel csv all
com.microsoft.Excel xla all
com.microsoft.Excel xlam all
com.microsoft.Excel xlb all
com.microsoft.Excel xld all
com.microsoft.Excel xll all
com.microsoft.Excel xlm all
com.microsoft.Excel xls all
com.microsoft.Excel xlsb all
com.microsoft.Excel xlsm all
com.microsoft.Excel xlsx all
com.microsoft.Excel xltm all
com.microsoft.Excel xltx all
com.microsoft.Excel xlw all
com.microsoft.Excel xml all

View File

@ -1,10 +0,0 @@
com.microsoft.Powerpoint pot all
com.microsoft.Powerpoint potm all
com.microsoft.Powerpoint potx all
com.microsoft.Powerpoint pps all
com.microsoft.Powerpoint ppsm all
com.microsoft.Powerpoint ppsx all
com.microsoft.Powerpoint ppt all
com.microsoft.Powerpoint pptm all
com.microsoft.Powerpoint pptx all
com.microsoft.Powerpoint thmx all

View File

@ -1,6 +0,0 @@
com.microsoft.Word doc all
com.microsoft.Word docm all
com.microsoft.Word docx all
com.microsoft.Word dot all
com.microsoft.Word dotm all
com.microsoft.Word dotx all

View File

@ -1,62 +0,0 @@
com.visualstudio.code.oss asp all
com.visualstudio.code.oss bat all
com.visualstudio.code.oss c all
com.visualstudio.code.oss cc all
com.visualstudio.code.oss cfg all
com.visualstudio.code.oss cgi all
com.visualstudio.code.oss coffee all
com.visualstudio.code.oss conf all
com.visualstudio.code.oss config all
com.visualstudio.code.oss cpp all
com.visualstudio.code.oss cs all
com.visualstudio.code.oss css all
com.visualstudio.code.oss csv all
com.visualstudio.code.oss dat all
com.visualstudio.code.oss dtd all
com.visualstudio.code.oss duti all
com.visualstudio.code.oss erl all
com.visualstudio.code.oss h all
com.visualstudio.code.oss hpp all
com.visualstudio.code.oss hrl all
com.visualstudio.code.oss htm editor
com.visualstudio.code.oss html editor
com.visualstudio.code.oss ini all
com.visualstudio.code.oss java all
com.visualstudio.code.oss js all
com.visualstudio.code.oss json all
com.visualstudio.code.oss jsp editor
com.visualstudio.code.oss less all
com.visualstudio.code.oss lisp all
com.visualstudio.code.oss log all
com.visualstudio.code.oss m all
com.visualstudio.code.oss Makefile all
com.visualstudio.code.oss pch all
com.visualstudio.code.oss php all
com.visualstudio.code.oss pl all
com.visualstudio.code.oss plist editor
com.visualstudio.code.oss public.plain-text all
com.visualstudio.code.oss public.shell-script all
com.visualstudio.code.oss public.unix-executable all
com.visualstudio.code.oss py all
com.visualstudio.code.oss Rakefile all
com.visualstudio.code.oss rb all
com.visualstudio.code.oss README all
com.visualstudio.code.oss rst all
com.visualstudio.code.oss S all
com.visualstudio.code.oss scss all
com.visualstudio.code.oss sh editor
com.visualstudio.code.oss sh all
com.visualstudio.code.oss sql editor
com.visualstudio.code.oss tex all
com.visualstudio.code.oss txt all
com.visualstudio.code.oss xhtml editor
com.visualstudio.code.oss xml editor
com.visualstudio.code.oss xml all
com.visualstudio.code.oss yaml editor
com.visualstudio.code.oss yml editor
com.visualstudio.code.oss zlogin editor
com.visualstudio.code.oss zlogout editor
com.visualstudio.code.oss zprofile editor
com.visualstudio.code.oss zsh editor
com.visualstudio.code.oss zshenv editor
com.visualstudio.code.oss zshrc editor

View File

@ -1,14 +0,0 @@
cx.c3.theunarchiver .7z all
cx.c3.theunarchiver .cab all
cx.c3.theunarchiver .gtar all
cx.c3.theunarchiver .gz all
cx.c3.theunarchiver .hqx all
cx.c3.theunarchiver .jar all
cx.c3.theunarchiver .msi all
cx.c3.theunarchiver .rar all
cx.c3.theunarchiver .sit all
cx.c3.theunarchiver .sit all
cx.c3.theunarchiver .tar all
cx.c3.theunarchiver .tar.gz all
cx.c3.theunarchiver .tgz all
cx.c3.theunarchiver .zip all

View File

@ -1,11 +0,0 @@
org.videolan.vlc .aac all
org.videolan.vlc .aif all
org.videolan.vlc .flac all
org.videolan.vlc .iff all
org.videolan.vlc .m3u all
org.videolan.vlc .mid all
org.videolan.vlc .mp3 all
org.videolan.vlc .mpa all
org.videolan.vlc .ogg all
org.videolan.vlc .ra all
org.videolan.vlc .wav all

102
.config/eza/theme.yml Normal file
View File

@ -0,0 +1,102 @@
colourful: true
filekinds:
normal: {foreground: "#BAC2DE"}
directory: {foreground: "#89B4FA"}
symlink: {foreground: "#89DCEB"}
pipe: {foreground: "#7F849C"}
block_device: {foreground: "#EBA0AC"}
char_device: {foreground: "#EBA0AC"}
socket: {foreground: "#585B70"}
special: {foreground: "#CBA6F7"}
executable: {foreground: "#A6E3A1"}
mount_point: {foreground: "#74C7EC"}
perms:
user_read: {foreground: "#CDD6F4"}
user_write: {foreground: "#F9E2AF"}
user_execute_file: {foreground: "#A6E3A1"}
user_execute_other: {foreground: "#A6E3A1"}
group_read: {foreground: "#BAC2DE"}
group_write: {foreground: "#F9E2AF"}
group_execute: {foreground: "#A6E3A1"}
other_read: {foreground: "#A6ADC8"}
other_write: {foreground: "#F9E2AF"}
other_execute: {foreground: "#A6E3A1"}
special_user_file: {foreground: "#CBA6F7"}
special_other: {foreground: "#585B70"}
attribute: {foreground: "#A6ADC8"}
size:
major: {foreground: "#A6ADC8"}
minor: {foreground: "#89DCEB"}
number_byte: {foreground: "#CDD6F4"}
number_kilo: {foreground: "#BAC2DE"}
number_mega: {foreground: "#89B4FA"}
number_giga: {foreground: "#CBA6F7"}
number_huge: {foreground: "#CBA6F7"}
unit_byte: {foreground: "#A6ADC8"}
unit_kilo: {foreground: "#89B4FA"}
unit_mega: {foreground: "#CBA6F7"}
unit_giga: {foreground: "#CBA6F7"}
unit_huge: {foreground: "#74C7EC"}
users:
user_you: {foreground: "#CDD6F4"}
user_root: {foreground: "#F38BA8"}
user_other: {foreground: "#CBA6F7"}
group_yours: {foreground: "#BAC2DE"}
group_other: {foreground: "#7F849C"}
group_root: {foreground: "#F38BA8"}
links:
normal: {foreground: "#89DCEB"}
multi_link_file: {foreground: "#74C7EC"}
git:
new: {foreground: "#A6E3A1"}
modified: {foreground: "#F9E2AF"}
deleted: {foreground: "#F38BA8"}
renamed: {foreground: "#94E2D5"}
typechange: {foreground: "#F5C2E7"}
ignored: {foreground: "#7F849C"}
conflicted: {foreground: "#EBA0AC"}
git_repo:
branch_main: {foreground: "#CDD6F4"}
branch_other: {foreground: "#CBA6F7"}
git_clean: {foreground: "#A6E3A1"}
git_dirty: {foreground: "#F38BA8"}
security_context:
colon: {foreground: "#7F849C"}
user: {foreground: "#BAC2DE"}
role: {foreground: "#CBA6F7"}
typ: {foreground: "#585B70"}
range: {foreground: "#CBA6F7"}
file_type:
image: {foreground: "#F9E2AF"}
video: {foreground: "#F38BA8"}
music: {foreground: "#A6E3A1"}
lossless: {foreground: "#94E2D5"}
crypto: {foreground: "#585B70"}
document: {foreground: "#CDD6F4"}
compressed: {foreground: "#F5C2E7"}
temp: {foreground: "#EBA0AC"}
compiled: {foreground: "#74C7EC"}
build: {foreground: "#585B70"}
source: {foreground: "#89B4FA"}
punctuation: {foreground: "#7F849C"}
date: {foreground: "#F9E2AF"}
inode: {foreground: "#A6ADC8"}
blocks: {foreground: "#9399B2"}
header: {foreground: "#CDD6F4"}
octal: {foreground: "#94E2D5"}
flags: {foreground: "#CBA6F7"}
symlink_path: {foreground: "#89DCEB"}
control_char: {foreground: "#74C7EC"}
broken_symlink: {foreground: "#F38BA8"}
broken_path_overlay: {foreground: "#585B70"}

14
.config/ghostty/config Normal file
View File

@ -0,0 +1,14 @@
font-family = MesloLGM Nerd Font Mono
font-thicken = true
font-size = 15
theme = catppuccin-mocha
cursor-opacity = 0.5
cursor-style-blink = true
background-opacity = 0.9
background-blur-radius = 20
initial-command = /opt/homebrew/bin/tmux a -d
quit-after-last-window-closed = true

7
.config/git/config Normal file
View File

@ -0,0 +1,7 @@
[init]
defaultBranch = main
[user]
name = Christian Baer
email = chris@debilux.org
[core]
editor = vim

54
.config/htop/htoprc Normal file → Executable file
View File

@ -1,16 +1,17 @@
# Beware! This file is rewritten by htop when settings are changed in the interface. # Beware! This file is rewritten by htop when settings are changed in the interface.
# The parser is also very primitive, and not human-friendly. # The parser is also very primitive, and not human-friendly.
fields=0 47 38 39 2 46 47 1 htop_version=3.2.2
sort_key=46 config_reader_min_version=3
sort_direction=1 fields=0 48 17 18 38 39 40 2 46 47 49 1
tree_sort_key=0
tree_sort_direction=1
hide_kernel_threads=1 hide_kernel_threads=1
hide_userland_threads=0 hide_userland_threads=0
hide_running_in_container=0
shadow_other_users=0 shadow_other_users=0
show_thread_names=1 show_thread_names=0
show_program_path=1 show_program_path=1
highlight_base_name=1 highlight_base_name=1
highlight_deleted_exe=1
shadow_distribution_path_prefix=0
highlight_megabytes=1 highlight_megabytes=1
highlight_threads=1 highlight_threads=1
highlight_changes=0 highlight_changes=0
@ -18,20 +19,45 @@ highlight_changes_delay_secs=5
find_comm_in_cmdline=1 find_comm_in_cmdline=1
strip_exe_from_cmdline=1 strip_exe_from_cmdline=1
show_merged_command=0 show_merged_command=0
tree_view=0 header_margin=1
tree_view_always_by_pid=0 screen_tabs=1
header_margin=0
detailed_cpu_time=0 detailed_cpu_time=0
cpu_count_from_one=0 cpu_count_from_one=0
show_cpu_usage=1 show_cpu_usage=1
show_cpu_frequency=0 show_cpu_frequency=0
show_cpu_temperature=0
degree_fahrenheit=0
update_process_names=0 update_process_names=0
account_guest_in_cpu_meter=0 account_guest_in_cpu_meter=0
color_scheme=6 color_scheme=0
enable_mouse=1 enable_mouse=1
delay=15 delay=15
left_meters=CPU Memory Swap
left_meter_modes=1 1 1
right_meters=Hostname Uptime Tasks LoadAverage
right_meter_modes=2 2 2 2
hide_function_bar=0 hide_function_bar=0
header_layout=two_50_50
column_meters_0=CPU Memory Swap DiskIO NetworkIO
column_meter_modes_0=1 1 1 2 2
column_meters_1=Hostname System Tasks LoadAverage Uptime
column_meter_modes_1=2 2 2 2 2
tree_view=1
sort_key=46
tree_sort_key=0
sort_direction=-1
tree_sort_direction=1
tree_view_always_by_pid=0
all_branches_collapsed=1
screen:Main=PID USER PRIORITY NICE M_VIRT M_RESIDENT M_SHARE STATE PERCENT_CPU PERCENT_MEM TIME Command
.sort_key=PERCENT_CPU
.tree_sort_key=PID
.tree_view=1
.tree_view_always_by_pid=0
.sort_direction=-1
.tree_sort_direction=1
.all_branches_collapsed=1
screen:I/O=PID USER IO_PRIORITY IO_RATE IO_READ_RATE IO_WRITE_RATE PERCENT_SWAP_DELAY PERCENT_IO_DELAY Command
.sort_key=IO_RATE
.tree_sort_key=PID
.tree_view=0
.tree_view_always_by_pid=0
.sort_direction=-1
.tree_sort_direction=1
.all_branches_collapsed=0

View File

@ -1,37 +0,0 @@
# Beware! This file is rewritten by htop when settings are changed in the interface.
# The parser is also very primitive, and not human-friendly.
fields=0 47 38 39 2 46 47 1
sort_key=46
sort_direction=1
tree_sort_key=0
tree_sort_direction=1
hide_kernel_threads=1
hide_userland_threads=0
shadow_other_users=0
show_thread_names=1
show_program_path=1
highlight_base_name=1
highlight_megabytes=1
highlight_threads=1
highlight_changes=0
highlight_changes_delay_secs=5
find_comm_in_cmdline=1
strip_exe_from_cmdline=1
show_merged_command=0
tree_view=0
tree_view_always_by_pid=0
header_margin=0
detailed_cpu_time=0
cpu_count_from_one=0
show_cpu_usage=1
show_cpu_frequency=0
update_process_names=0
account_guest_in_cpu_meter=0
color_scheme=6
enable_mouse=1
delay=15
left_meters=CPU Memory Swap
left_meter_modes=1 1 1
right_meters=Hostname Uptime Tasks LoadAverage
right_meter_modes=2 2 2 2
hide_function_bar=0

View File

@ -0,0 +1,80 @@
{
"profiles": [
{
"complex_modifications": {
"rules": [
{
"description": "Hyperkey",
"manipulators": [
{
"from": {
"key_code": "caps_lock",
"modifiers": {
"mandatory": ["shift"],
"optional": ["caps_lock"]
}
},
"to": [
{
"key_code": "left_shift",
"modifiers": ["left_command", "left_control", "left_option"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "caps_lock",
"modifiers": { "optional": ["any"] }
},
"to": [
{
"key_code": "left_command",
"modifiers": ["left_control", "left_option"]
}
],
"type": "basic"
}
]
},
{
"description": "Play/Pause controls spotify only when it's running",
"manipulators": [
{
"from": { "key_code": "f8" },
"to": [
{
"halt": true,
"repeat": false,
"shell_command": "osascript ~/.config/karabiner/scripts/spotify_playpause.scpt"
}
],
"type": "basic"
}
]
}
]
},
"devices": [
{
"identifiers": {
"is_keyboard": true,
"is_pointing_device": true,
"product_id": 45091,
"vendor_id": 1133
},
"ignore": false
}
],
"name": "Default profile",
"selected": true,
"simple_modifications": [
{
"from": { "consumer_key_code": "play_or_pause" },
"to": [{ "key_code": "vk_none" }]
}
],
"virtual_hid_keyboard": { "keyboard_type_v2": "iso" }
}
]
}

View File

@ -0,0 +1,6 @@
-- If Spotify is running, toggle play/pause. Otherwise do nothing
if application "Spotify" is running then
using terms from application "Spotify"
tell application "Spotify" to playpause
end using terms from
end if

View File

@ -1,99 +1,95 @@
# Start a session if none exists ### General Settings
# Enable mouse support in tmux
set -g mouse on
# Set the default terminal type to "tmux-256color" for better color support
set -g default-terminal "tmux-256color"
# Set the base index for windows to 1 (instead of the default 0)
set -g base-index 1
# Set the base index for panes to 1 (instead of the default 0)
setw -g pane-base-index 1
# Increase the history limit (useful for longer command histories)
set-option -g history-limit 10000
### Startup Configuration
# Start a new session named "main" if none exists
new-session -s main new-session -s main
# Start htop and split window
set-hook -t main session-created 'send-keys -t main:0 "sudo htop" C-m; split-window' # Start htop and split the window when the session "main" is created
# remap prefix from 'C-b' to 'C-a' set-hook -t main session-created 'send-keys -t main:1 "sudo htop" C-m; split-window'
### Key Bindings
# Remap the prefix key from 'C-b' (Ctrl-b) to 'C-a' (Ctrl-a)
unbind C-b unbind C-b
set-option -g prefix C-a set-option -g prefix C-a
bind-key C-a send-prefix bind-key C-a send-prefix
# Use C-b to send prefix twice so it acts on nested session # Split panes using 'h' for horizontal and 'v' for vertical splits
bind-key -n C-b send-prefix bind "h" split-window -h
bind "v" split-window -v
# split panes using # and -
bind "#" split-window -h
bind "-" split-window -v
unbind '"' unbind '"'
unbind % unbind %
# reload config file # Reload the tmux configuration file with 'r'
bind r source-file $XDG_CONFIG_HOME/tmux/tmux.conf bind r source-file $XDG_CONFIG_HOME/tmux/tmux.conf
# switch panes using Alt-arrow without prefix ### Status and Window Configuration
bind -n M-Left select-pane -L # Set the status bar update interval to 1 second
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D
# start windows and panes at 1, not 0,
set -g base-index 1
set -g pane-base-index 1
# Enable mouse mode
set -g mouse on
#+---------+
#+ Options +
#+---------+
set -g status-interval 1
set -g status on
set -g aggressive-resize on
#+--------+
#+ Status +
#+--------+
#+--- Layout ---+
set -g status-justify left
#+--- Colors ---+
set -g status-bg black
set -g status-fg white
#+-------+
#+ Panes +
#+-------+
set -g pane-border-style bg=black,fg=brightblack
set -g pane-active-border-style bg=black,fg=magenta
set -g display-panes-colour black
set -g display-panes-active-colour brightblack
#+------------+
#+ Clock Mode +
#+------------+
setw -g clock-mode-colour cyan
#+----------+
#+ Messages +
#+---------+
set -g message-style fg=cyan,bg=brightblack
set -g message-command-style fg=cyan,bg=brightblack
######################
### DESIGN CHANGES ###
######################
## Status bar design
# status line
set -g status-justify left
set -g status-interval 1 set -g status-interval 1
set -g default-terminal "screen-256color" # Enable automatic renaming of windows
set-option -g automatic-rename on
#+--- Bars ---+ # Set window title to the current directory if the process is zsh, otherwise show the process name with arguments
set-option -g automatic-rename-format '#{?#{==:#{pane_current_command},zsh},#(echo #{pane_current_path} | sed "s|^$HOME|~|"),#{pane_current_command}}'
# Set the color of the clock mode
set -g clock-mode-colour "#8bd5ca"
# Set the style for copy mode (foreground black, background a specific color, bold text)
set -g mode-style 'fg=black bg=#ed8796 bold'
# Set the style for pane borders
set -g pane-border-style 'fg=white'
set -g pane-active-border-style 'fg=#8bd5ca'
### Status Bar Configuration
# Position the status bar at the bottom
set -g status-position bottom
# Align status bar items to the left
set -g status-justify left
# Set the style for the status bar
set -g status-style 'fg=white,bg=#262626'
# Clear the default left status
set -g status-left '' set -g status-left ''
## Indicate if prefix has been pressed
set -ga status-left '#[bg=#white]#[fg=#brightblack]#{?client_prefix,#[fg=red] ◯ , ◯ }'
## Session name
set -ga status-left "#S"
set -g status-right '' # Set the maximum length for the left status
# Date and time set -g status-left-length 30
set -ga status-right "#[fg=white,bg=brightblack] %Y-%m-%d |#[fg=white,bg=brightblack] %H:%M"
# Hostname
set -ga status-right "#[fg=cyan,bg=brightblack,nobold,noitalics,nounderscore] #[fg=black,bg=blue,bold] #h "
#+--- Windows ---+ ## Session name in the status bar
set -g window-status-format " #[fg=white,bg=brightblack] #I #[fg=white,bg=brightblack]#W #F " set -ga status-left "#[bg=#444444,fg=white] #S "
set -g window-status-current-format " #[fg=black,bg=cyan] #I #[fg=black,bg=cyan]#W #F "
set -g window-status-separator "" # Display different colors for the session name based on whether the prefix is active
set -ga status-left '#[fg=black]#{?client_prefix,#[bg=#ed8796] S ,#[bg=#a6da95] S }'
set -ga status-left '#[bg=#262626] '
# Set window status format to include the current directory or command
setw -g window-status-format '#[bg=#8787AF,fg=black] #I #[bg=#585B70,fg=white] #W #F '
# Set the current window status format to include the current directory or command
setw -g window-status-current-format '#[bg=#c6a0f6,fg=black] #I #[bg=#585B70,fg=white] #W #F '
# Set the separator between window statuses
set -g window-status-separator " "
# Status bar right settings (display host information)
set -g status-right "#[fg=black,bg=#7dc4e4] H #[fg=white,bg=brightblack] #H "
# Set the maximum length for the right status
set -g status-right-length 40

View File

@ -1,5 +0,0 @@
-o "%(title)s [%(id)s].%(ext)s"
-f "bestvideo[ext=mp4]+bestaudio[ext=m4a]/best"
--add-metadata
--geo-bypass
--continue

View File

@ -1,4 +1,21 @@
# Search for docker-compose files in the current and all sub direcotries and run docker compose with provided arguments
function dc() { function dc() {
DOCKER_PARAMS="$@" if [ -z "$1" ]; then
find . -maxdepth 2 -type f -regextype posix-extended -regex '.*(docker-compose|compose)\.ya?ml' -execdir "docker compose ${DOCKER_PARAMS}" \; # display usage if no parameters given
echo "Search for docker-compose files in the current and all sub direcotries and run docker compose with provided arguments"
echo "Usage: dc <docker compose commands>"
return 1
else
# Save current working directory
CURRENT_DIR="${PWD}"
for file in $(find ${PWD} -maxdepth 2 -type f -regextype posix-extended -regex '.*(docker-compose|compose)\.ya?ml' | sort); do
cd $(dirname "$file")
docker compose $@
done
# Change back to saved working directory
cd ${CURRENT_DIR}
fi
} }

View File

@ -1,21 +1,21 @@
## Automatically compile all compilable files to zwc ## Automatically compile all compilable files to zwc
function zwcautocompile () { function zwcautocompile() {
autoload -Uz zrecompile autoload -Uz zrecompile
for zsh_file in $(find ${ZDOTDIR} -type f -maxdepth 3 \( -name "*.zsh" -o -name ".zlogin" -o -name ".zshrc" \) ! -name "*.zwc" ! -name "*.zwc.old"); do for f in $(find ${ZDOTDIR} -maxdepth 3 -type f \( -name "*.zsh" -o -name ".zlogin" -o -name ".zshrc" \) ! -name "*.zwc" ! -name "*.zwc.old"); do
zrecompile -pq $zsh_file && rm -f $zsh_file.zwc.old zrecompile -pq ${f} && rm -f ${f}.zwc.old
done done
if [[ -d ${ZAUTOLOADDIR} ]]; then if [[ -d ${ZAUTOLOADDIR} ]]; then
for f in ${ZAUTOLOADDIR}/*; do for f in ${ZAUTOLOADDIR}/*; do
zrecompile -pq $f && rm -f $f.zwc.old zrecompile -pq ${f} && rm -f ${f}.zwc.old
done done
fi fi
if [[ -d ${ZLIBDIR} ]]; then if [[ -d ${ZLIBDIR} ]]; then
for f in ${ZLIBDIR}/*; do for f in ${ZLIBDIR}/*; do
zrecompile -pq $f && rm -f $f.zwc.old zrecompile -pq ${f} && rm -f ${f}.zwc.old
done done
fi fi
} }

View File

@ -1,8 +1,8 @@
## Purge all compiled zwc files ## Purge all compiled zwc files
function zwcpurge () { function zwcpurge() {
autoload -Uz zrecompile autoload -Uz zrecompile
for zsh_file in $(find ${ZDOTDIR} -maxdepth 3 -type f \( -name "*.zwc" -o -name "*.zwc.old" \)); do for zsh_file in $(find ${ZDOTDIR} -maxdepth 3 -type f \( -name "*.zwc" -o -name "*.zwc.old" \)); do
rm -f ${zsh_file} rm -f ${zsh_file}
done done
} }

View File

@ -1,19 +1,18 @@
# Set $PATH # Set $PATH
# Put only directories in $PATH that exist and remove duplicates # Put only directories in $PATH that exist and remove duplicates
typeset -U path # No duplicates typeset -U path # No duplicates
path=() path=()
_prepath() { _prepath() {
for dir in "$@"; do for dir in "$@"; do
dir=${dir:A} dir=${dir:A}
[[ ! -d "$dir" ]] && return [[ ! -d "$dir" ]] && return
#path=("$dir" $path[@]) path=("$dir" $path)
path=("$dir" $path) done
done
} }
_prepath /usr/bin /bin /usr/sbin /sbin /usr/local/bin /usr/local/sbin # BSD and macOS _prepath /usr/bin /bin /usr/sbin /sbin /usr/local/bin /usr/local/sbin # BSD and macOS
_prepath /opt/homebrew/bin /opt/homebrew/sbin /usr/local/bin # Homebrew on macOS _prepath /opt/homebrew/bin /opt/homebrew/sbin /usr/local/bin # Homebrew on macOS
_prepath ~/bin ~/.local/bin # $HOME _prepath ~/bin ~/.local/bin # $HOME
unfunction _prepath unfunction _prepath

View File

@ -2,19 +2,35 @@ _exists() { (( $+commands[$1] )) }
_exists less && export PAGER=less _exists less && export PAGER=less
# vim
if _exists vim; then if _exists vim; then
export EDITOR=vim export EDITOR=vim
alias vim="vim -p" alias vim="vim -p"
fi fi
## ls/eza # ls/eza
if _exists eza; then if _exists eza; then
alias eza="eza --color --icons --git" alias eza="eza --color --icons --git"
alias ls="eza" alias ls="eza"
fi fi
unfunction _exists # fetch
if ! _exists fetch; then
if _exists curl; then
alias fetch="curl -O"
elif _exists curl; then
alias fetch="wget"
else
echo "fetch not found."
fi
fi
# htop
if _exists htop; then
alias htop="sudo htop"
fi
unfunction _exists
alias mkdir="mkdir -p" alias mkdir="mkdir -p"
alias ..="cd .." alias ..="cd .."
@ -22,16 +38,12 @@ alias ...="cd ../.."
alias ....="cd ../../.." alias ....="cd ../../.."
alias google="ping -c 10240000 google.com" alias google="ping -c 10240000 google.com"
alias history="history -i" alias history="history -i"
alias sulast="sudo $(history -p !-1)"
alias ydl="youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best'"
alias htop="sudo htop"
case `uname` in case `uname` in
Darwin) Darwin)
# commands for OS X go here # commands for OS X go here
alias flushdns="sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder" alias flushdns="sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder"
alias r="open -a" alias r="open -a"
alias fetch="curl -O"
;; ;;
Linux) Linux)
# commands for Linux go here # commands for Linux go here

View File

@ -2,10 +2,10 @@
if [[ -d "${ZAUTOLOADDIR}" ]]; then if [[ -d "${ZAUTOLOADDIR}" ]]; then
fpath=($fpath ${ZAUTOLOADDIR}) fpath=($fpath ${ZAUTOLOADDIR})
# Load functions # Load functions
for func in ${ZAUTOLOADDIR}/*; do for func in ${ZAUTOLOADDIR}/*; do
autoload -Uz ${func:t} autoload -Uz ${func:t}
done done
fi fi

View File

@ -1,7 +1,8 @@
## Command history configuration ## Command history configuration
HISTFILE="${ZCACHE}/history" export HISTFILE="${ZCACHE}/history"
HISTSIZE=1000000000 export HISTSIZE=1000000000
SAVEHIST=1000000000 export SAVEHIST=${HISTSIZE}
export HISTORY_IGNORE="([bf]g *|disown|cd ..|cd -)"
export HISTTIMEFORMAT="[%F %T] " export HISTTIMEFORMAT="[%F %T] "
setopt INC_APPEND_HISTORY setopt INC_APPEND_HISTORY
@ -13,12 +14,3 @@ setopt incappendhistory
setopt histignorespace setopt histignorespace
setopt histnostore setopt histnostore
setopt share_history setopt share_history
export HISTORY_IGNORE="([bf]g *|disown|cd ..|cd -)"
HISTORY_SUBSTRING_SEARCH_ENSURE_UNIQUE=1
# # Make up and down arrow take whats typed on the commandline in to account.
# autoload -Uz up-line-or-beginning-search down-line-or-beginning-search
# zle -N up-line-or-beginning-search
# zle -N down-line-or-beginning-search

View File

@ -1,3 +0,0 @@
# Search
bindkey '^[[A' history-substring-search-up # Up arrow
bindkey '^[[B' history-substring-search-down # down arrow

View File

@ -20,3 +20,6 @@ export GOPATH="${XDG_DATA_HOME}/go"
export PYTHONUSERBASE=${HOME}/.local export PYTHONUSERBASE=${HOME}/.local
export INPUTRC="${XDG_CONFIG_HOME}/readline/inputrc" export INPUTRC="${XDG_CONFIG_HOME}/readline/inputrc"
export MANPATH="${MANPATH-$(manpath)}:${HOME}/.local/share/man" export MANPATH="${MANPATH-$(manpath)}:${HOME}/.local/share/man"
# EZA
EZA_CONFIG_DIR=${XDG_CONFIG_HOME}/eza

View File

@ -0,0 +1 @@
ZSH_AUTOSUGGEST_STRATEGY=(history completion)

View File

@ -0,0 +1,5 @@
# Available completion styles: gremlin, ohmy, prez, zshzoo
# You can add your own too. To see all available completion styles
# run 'compstyle -l'
ZSH_COMPDUMP=${ZCACHE}/zcompdump
zstyle ':plugin:ez-compinit' 'compstyle' 'zshzoo'

View File

@ -0,0 +1,5 @@
# Keybindings
bindkey '^[[A' history-substring-search-up # or '\eOA'
bindkey '^[[B' history-substring-search-down # or '\eOB'
HISTORY_SUBSTRING_SEARCH_ENSURE_UNIQUE=1

View File

@ -0,0 +1 @@
export _Z_DATA=${ZCACHE}/z

View File

@ -19,9 +19,11 @@ plugin_repos=(
rupa/z # Tracks your most used directories, based on 'frecency'. rupa/z # Tracks your most used directories, based on 'frecency'.
Skylor-Tang/auto-venv # Automatically activates the Python virtual environment in the current directory or its parent directories. Skylor-Tang/auto-venv # Automatically activates the Python virtual environment in the current directory or its parent directories.
zsh-users/zsh-syntax-highlighting
zsh-users/zsh-history-substring-search
zsh-users/zsh-autosuggestions zsh-users/zsh-autosuggestions
zsh-users/zsh-syntax-highlighting
kulynyak/zsh.prepend-sudo
zsh-users/zsh-history-substring-search
amyreese/zsh-titles
) )
# load plugins # load plugins

View File

@ -16,11 +16,11 @@ all: git-fetch git-secrets-reveal deploy-macos ## Update repo, decrypt secrets a
install: git-fetch deploy-base ## Update repor and run deploy-base install: git-fetch deploy-base ## Update repor and run deploy-base
deploy-base: deploy-htop-zfs deploy-tmux deploy-vim deploy-zsh deploy-ssh deploy-hushlogin ## Only deploy basic conf files for shell usage deploy-base: deploy-eza deploy-tmux deploy-vim deploy-zsh deploy-ssh deploy-hushlogin ## Only deploy basic conf files for shell usage
deploy-workstation: deploy-base deploy-vscodium deploy-youtubedl ## Deploy workstation specific config files (inherits deploy-shell) deploy-workstation: deploy-base deploy-vscodium deploy-youtubedl ## Deploy workstation specific config files (inherits deploy-shell)
deploy-macos: deploy-htop deploy-workstation deploy-duti deploy-brewfile ## Deploy macOS specific config files (inherits deploy-workstation) deploy-macos: deploy-htop deploy-workstation deploy-brewfile ## Deploy macOS specific config files (inherits deploy-workstation)
gen-vscodium-plugin-list: ## Update the list of VSCodium plugins gen-vscodium-plugin-list: ## Update the list of VSCodium plugins
@echo "\033[1;32m>>>\033[1;0m Updating the list of VSCodium plugins at .config/VSCodium/UserUser/extensions.list" @echo "\033[1;32m>>>\033[1;0m Updating the list of VSCodium plugins at .config/VSCodium/UserUser/extensions.list"
@ -59,23 +59,16 @@ brew-bundle-cleanup: ## Removew all appplications that are not listed in Brewfil
@echo "\033[1;32m>>>\033[1;0m Removing applications that are not listed in .config/Brewfile" @echo "\033[1;32m>>>\033[1;0m Removing applications that are not listed in .config/Brewfile"
@brew bundle cleanup --zap --force --file .config/Brewfile @brew bundle cleanup --zap --force --file .config/Brewfile
deploy-duti: ## Deploy duti config deploy-eza: ## Deploy eza config
@echo "\033[1;32m>>>\033[1;0m Deploy duti config to ${HOMEDIR}/.config/duti" @echo "\033[1;32m>>>\033[1;0m Deploy eza config to ${HOMEDIR}/.config/eza"
@mkdir -p ${HOMEDIR}/.config/duti @mkdir -p ${HOMEDIR}/.config/eza
@cp .config/duti/* ${HOMEDIR}/.config/duti @cp .config/eza/* ${HOMEDIR}/.config/eza
@echo "\033[1;32m>>>\033[1;0m Processing duti config from ${HOMEDIR}/.config/duti"
@duti ${HOMEDIR}/.config/duti
deploy-htop: ## Deploy htop config deploy-htop: ## Deploy htop config
@echo "\033[1;32m>>>\033[1;0m Deploy htop config to ${HOMEDIR}/.config/htop" @echo "\033[1;32m>>>\033[1;0m Deploy htop config to ${HOMEDIR}/.config/htop"
@mkdir -p ${HOMEDIR}/.config/htop @mkdir -p ${HOMEDIR}/.config/htop
@cp .config/htop/htoprc ${HOMEDIR}/.config/htop/htoprc @cp .config/htop/htoprc ${HOMEDIR}/.config/htop/htoprc
deploy-htop-zfs: ## Deploy htop config with zfs
@echo "\033[1;32m>>>\033[1;0m Deploy htop config to ${HOMEDIR}/.config/htop"
@mkdir -p ${HOMEDIR}/.config/htop
@cp .config/htop/htoprc.zfs ${HOMEDIR}/.config/htop/htoprc
deploy-tmux: ## Deploy tmux config deploy-tmux: ## Deploy tmux config
@echo "\033[1;32m>>>\033[1;0m Deploy tmux config to ${HOMEDIR}/.config/tmux" @echo "\033[1;32m>>>\033[1;0m Deploy tmux config to ${HOMEDIR}/.config/tmux"
@mkdir -p ${HOMEDIR}/.config/tmux @mkdir -p ${HOMEDIR}/.config/tmux
@ -112,8 +105,8 @@ deploy-zsh: ## Deploy zsh config
@mkdir -p ${HOMEDIR}/.config/zsh/conf.d @mkdir -p ${HOMEDIR}/.config/zsh/conf.d
@cp .zshenv ${HOMEDIR}/ @cp .zshenv ${HOMEDIR}/
@cp .config/zsh/.z* ${HOMEDIR}/.config/zsh @cp .config/zsh/.z* ${HOMEDIR}/.config/zsh
@cp .config/zsh/functions/* ${HOMEDIR}/.config/zsh/autoload @cp .config/zsh/autoload/* ${HOMEDIR}/.config/zsh/autoload
@cp .config/zsh/lib/*.zsh ${HOMEDIR}/.config/zsh/conf.d @cp .config/zsh/conf.d/*.zsh ${HOMEDIR}/.config/zsh/conf.d
deploy-brewfile: ## Deploy Brewfile deploy-brewfile: ## Deploy Brewfile
@echo "\033[1;32m>>>\033[1;0m Deploy Brewfile to ${HOMEDIR}/.config/" @echo "\033[1;32m>>>\033[1;0m Deploy Brewfile to ${HOMEDIR}/.config/"
@ -125,7 +118,7 @@ deploy-ssh: ## Deploy SSH config
@mkdir -p ${HOMEDIR}/.ssh/master @mkdir -p ${HOMEDIR}/.ssh/master
@mkdir -p ${HOMEDIR}/.ssh/conf.d @mkdir -p ${HOMEDIR}/.ssh/conf.d
@cp .ssh/config ${HOMEDIR}/.ssh/ @cp .ssh/config ${HOMEDIR}/.ssh/
-@cp .ssh/conf.d/*.conf ${HOMEDIR}/.ssh/conf.d -@cp .ssh/conf.d/* ${HOMEDIR}/.ssh/conf.d
deploy-hushlogin: ## Deploy .hushlogin deploy-hushlogin: ## Deploy .hushlogin
@echo "\033[1;32m>>>\033[1;0m Deploy .hushlogin to ${HOMEDIR}" @echo "\033[1;32m>>>\033[1;0m Deploy .hushlogin to ${HOMEDIR}"