├── .editorconfig ├── .gitignore ├── .gitmodules ├── .vscode └── settings.json ├── CHANGELOG.md ├── Makefile ├── README.md ├── bootstrap.sh ├── config ├── .config │ ├── aerospace │ │ └── aerospace.toml │ ├── alacritty │ │ ├── alacritty.toml │ │ ├── keybindings.toml │ │ └── themes │ │ │ ├── atelier-cave-dark.toml │ │ │ ├── atelier-lakeside-dark.toml │ │ │ ├── better-solarized-dark-hc.toml │ │ │ └── eldritch.toml │ ├── bat │ │ ├── config │ │ └── themes │ │ │ └── Eldritch.tmTheme │ ├── borders │ │ └── bordersrc │ ├── broot │ │ ├── conf.hjson │ │ ├── launcher │ │ │ ├── bash │ │ │ │ └── br │ │ │ └── installed-v4 │ │ ├── skins │ │ │ ├── catppuccin-macchiato.hjson │ │ │ ├── catppuccin-mocha.hjson │ │ │ ├── dark-blue.hjson │ │ │ ├── dark-gruvbox.hjson │ │ │ ├── dark-orange.hjson │ │ │ ├── solarized-dark.hjson │ │ │ ├── solarized-light.hjson │ │ │ └── white.hjson │ │ └── verbs.hjson │ ├── btop │ │ ├── btop.conf │ │ └── themes │ │ │ └── eldritch.theme │ ├── fastfetch │ │ ├── config.jsonc │ │ └── eldritch.png │ ├── gh │ │ └── config.yml │ ├── karabiner │ │ ├── .editorconfig │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── .scrub.sh │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── automatic_backups │ │ │ ├── karabiner_20250501.json │ │ │ ├── karabiner_20250513.json │ │ │ ├── karabiner_20250516.json │ │ │ ├── karabiner_20250521.json │ │ │ ├── karabiner_20250522.json │ │ │ └── karabiner_20250527.json │ │ ├── bun.lockb │ │ ├── karabiner.json │ │ ├── package.json │ │ ├── rules.ts │ │ ├── tsconfig.json │ │ ├── types.ts │ │ └── utils.ts │ ├── kitty │ │ ├── current-theme.conf │ │ ├── keybindings.conf │ │ ├── kitty-dark.icns │ │ ├── kitty-light.icns │ │ ├── kitty.conf │ │ ├── layout.conf │ │ ├── neue_azure.icns │ │ ├── os-tweaks.conf │ │ ├── quick-access-terminal.conf │ │ └── themes │ │ │ ├── atelier-cave-dark.conf │ │ │ ├── atelier-lakeside-dark.conf │ │ │ ├── better-solarized-dark-hc.conf │ │ │ ├── eldritch-dark.conf │ │ │ ├── eldritch.conf │ │ │ └── tokyonight.conf │ ├── lazygit │ │ └── config.yml │ ├── raycast │ │ ├── Raycast 2025-05-25 09.05.09.rayconfig │ │ ├── Raycast 2025-05-28 22.26.13.rayconfig │ │ ├── Raycast 2025-06-01 09.35.39.rayconfig │ │ ├── Raycast 2025-06-01 10.59.16.rayconfig │ │ ├── _enabled-commands │ │ │ ├── battery-info.sh │ │ │ ├── disk-free.sh │ │ │ ├── dismiss-notifications.applescript │ │ │ ├── edit-dotfiles.sh │ │ │ ├── empty-downloads.sh │ │ │ ├── flush-dns.sh │ │ │ ├── generate-wp-salt.sh │ │ │ ├── images │ │ │ │ ├── justfocus.png │ │ │ │ ├── kill-finder.png │ │ │ │ ├── kill-the-dock.png │ │ │ │ ├── wp-salt.png │ │ │ │ └── zip-icon.png │ │ │ ├── justfocus.applescript │ │ │ ├── kill-finder.sh │ │ │ ├── kill-the-dock.sh │ │ │ ├── kill-window-server.sh │ │ │ └── run-topgrade.sh │ │ └── config.json │ ├── sketchybar │ │ ├── bar.lua │ │ ├── colors.lua │ │ ├── default.lua │ │ ├── helpers │ │ │ ├── .gitignore │ │ │ ├── app_icons.lua │ │ │ ├── default_font.lua │ │ │ ├── event_providers │ │ │ │ ├── cpu_load │ │ │ │ │ ├── cpu.h │ │ │ │ │ ├── cpu_load.c │ │ │ │ │ └── makefile │ │ │ │ ├── makefile │ │ │ │ ├── network_load │ │ │ │ │ ├── makefile │ │ │ │ │ ├── network.h │ │ │ │ │ └── network_load.c │ │ │ │ └── sketchybar.h │ │ │ ├── init.lua │ │ │ ├── install │ │ │ ├── install.sh │ │ │ ├── makefile │ │ │ └── menus │ │ │ │ ├── makefile │ │ │ │ └── menus.c │ │ ├── icons.lua │ │ ├── init.lua │ │ ├── items │ │ │ ├── aerospace.lua │ │ │ ├── apple.lua │ │ │ ├── calendar.lua │ │ │ ├── front_app.lua │ │ │ ├── init.lua │ │ │ ├── media.lua │ │ │ ├── menus.lua │ │ │ ├── spaces.lua │ │ │ └── widgets │ │ │ │ ├── battery.lua │ │ │ │ ├── cpu.lua │ │ │ │ ├── init.lua │ │ │ │ ├── volume.lua │ │ │ │ └── wifi.lua │ │ ├── settings.lua │ │ └── sketchybarrc │ ├── starship-ish.omp.json │ ├── starship.toml │ ├── topgrade.toml │ ├── wezterm │ │ ├── colors │ │ │ └── eldritch.toml │ │ ├── keymaps.lua │ │ ├── wezterm.lua │ │ └── wezterm.png │ ├── yazi │ │ ├── keymap.toml │ │ ├── theme.toml │ │ └── yazi.toml │ └── zellij │ │ └── config.kdl └── .stow-local-ignore ├── dots ├── .ackrc ├── .gemrc ├── .gitnow ├── .hushlogin ├── .npmrc ├── .profile ├── .stow-global-ignore ├── .tigrc ├── .tmux.conf └── .wgetrc ├── duti ├── com.adobe.illustrator ├── com.aone.keka ├── com.apple.Preview ├── com.colliderli.iina ├── com.figma.Desktop ├── com.microsoft.VSCode ├── com.seriflabs.affinitydesigner2 ├── com.shapr3d.shapr ├── com.softfever3d.orca-slicer ├── duti.sh └── org.openscad.OpenSCAD ├── fish └── .config │ └── fish │ ├── completions │ └── alacritty.fish │ ├── conf.d │ ├── abbr.fish │ ├── colors.fish │ ├── exports.fish │ ├── fnm.fish │ ├── keys.fish │ ├── paths.fish │ ├── tmux.fish │ └── variables.fish │ ├── config.fish │ ├── fish_plugins │ ├── functions │ ├── _aliases.fish │ ├── _backup_restore.fish │ ├── _utils.fish │ ├── abbrex.fish │ ├── cd.fish │ ├── center_window.fish │ ├── cpwd.fish │ ├── fish_greeting.fish │ ├── flashEthernet.fish │ ├── imgcon.fish │ ├── killws.fish │ ├── mkd.fish │ ├── pubkey.fish │ ├── reload.fish │ ├── setup.fish │ ├── speed.fish │ └── weather.fish │ └── utils │ ├── color-map.sh │ ├── iterm2_shell_integration.fish │ └── matrix.sh ├── git ├── .gitconfig ├── .gitconfig.local ├── .gitignore_global ├── .stow-local-ignore ├── git.sh ├── gitconfig-bigmac.local └── gitconfig-macdaddy.local ├── install.sh ├── local ├── .local │ ├── __repoImages │ │ ├── install-vscode-in-path.png │ │ ├── iterm2_dankmono_font_settings.png │ │ ├── verified.png │ │ └── workspace-setup.png │ └── share │ │ ├── cspell │ │ └── global-dictionary.txt │ │ ├── gh │ │ └── extensions │ │ │ ├── gh-changelog │ │ │ ├── gh-changelog │ │ │ └── manifest.yml │ │ │ └── gh-dash │ │ │ ├── gh-dash │ │ │ └── manifest.yml │ │ ├── keyboards │ │ ├── 2025-02-14-ErgoMade_custom-Corne_v4_1.layout.vil │ │ ├── 2025-04-24-elecom-exg-pro-default_profile.json │ │ ├── 2025-04-24-kensington-expert-mouse-default-profile.db │ │ ├── 2025-05-15--keychron_q11_ansi_knob.layout.json │ │ └── 2025-05-21--keychron_q11_ansi_knob.layout.json │ │ └── misc_random │ │ ├── my-ublock-backup_2023-02-10_09.06.28.txt │ │ ├── vimium-options-2025-05-08.json │ │ └── zen-themes-export.json └── .stow-local-ignore ├── macos ├── 01-preferences.sh ├── 02-apps.sh ├── 03-security.sh └── macos.sh ├── nvim ├── .config │ ├── nvim.old.bak │ │ ├── .gitignore │ │ ├── .neoconf.json │ │ ├── LICENSE │ │ ├── README.md │ │ ├── init.lua │ │ ├── lazy-lock.json │ │ ├── lazyvim.json │ │ ├── lua │ │ │ ├── config │ │ │ │ ├── autocmds.lua │ │ │ │ ├── keymaps.lua │ │ │ │ ├── lazy.lua │ │ │ │ └── options.lua │ │ │ └── plugins │ │ │ │ ├── coding.lua │ │ │ │ ├── colorscheme.lua │ │ │ │ ├── dap.lua │ │ │ │ ├── disabled.lua │ │ │ │ ├── lsp.lua │ │ │ │ ├── lualine.lua │ │ │ │ ├── luasnip.lua │ │ │ │ ├── mason.lua │ │ │ │ ├── mini-move.lua │ │ │ │ ├── neotree.lua │ │ │ │ ├── nvim-cmp.lua │ │ │ │ ├── package-info.lua │ │ │ │ ├── supermaven.lua │ │ │ │ ├── test.lua │ │ │ │ ├── tmux-nvim.lua │ │ │ │ ├── tmux.lua │ │ │ │ ├── treesitter.lua │ │ │ │ ├── twilight.lua │ │ │ │ ├── ui.lua │ │ │ │ ├── visual-multi.lua │ │ │ │ ├── which-key.lua │ │ │ │ ├── window-picker.lua │ │ │ │ └── zenmode.lua │ │ └── stylua.toml │ └── nvim │ │ ├── .config │ │ └── nvim │ │ │ └── lua │ │ │ └── configneotree.lua │ │ ├── .gitignore │ │ ├── .neoconf.json │ │ ├── LICENSE │ │ ├── README.md │ │ ├── init.lua │ │ ├── lazyvim.json │ │ ├── lua │ │ ├── config │ │ │ ├── autocmds.lua │ │ │ ├── keymaps.lua │ │ │ ├── lazy.lua │ │ │ └── options.lua │ │ └── plugins │ │ │ ├── colorscheme.lua │ │ │ ├── example.lua │ │ │ ├── neotree.lua │ │ │ ├── supermaven.lua │ │ │ └── which-key.lua │ │ └── stylua.toml └── .stow-local-ignore ├── packages ├── Brewfile ├── node_packages.txt ├── packages.sh ├── pipx_packages.txt ├── pnpm_packages.txt ├── ruby_packages.txt └── rust_packages.txt ├── private └── .gitkeep ├── scripts ├── functions.sh └── nvim.sh └── vscode └── Library └── Application Support └── Code └── User ├── customStuff ├── projects.json ├── vscode-insiders.icns ├── vscode-scripts.js ├── vscode-styles.css └── vscode.icns ├── keybindings.json └── settings.json /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 2 6 | end_of_line = lf 7 | charset = utf-8 8 | trim_trailing_whitespace = false 9 | insert_final_newline = true 10 | 11 | [*Makefile] 12 | indent_style = tab 13 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ### OSX ### 2 | .DS_Store 3 | 4 | ### Git ### 5 | #git/.gitconfig-local 6 | 7 | ### Helix Editor ### 8 | config/.config/helix/runtime 9 | 10 | ### VSCode ### 11 | .vsce 12 | 13 | ### VIM ### 14 | NetrwTreeListing* 15 | nvim/.config/nvim/lazy-lock.json 16 | # 17 | ### LazyVim ### 18 | tt.* 19 | .tests 20 | doc/tags 21 | debug 22 | .repro 23 | foo.* 24 | *.log 25 | data 26 | ### LazyGit ### 27 | config/.config/lazygit/state.yml 28 | 29 | ### Karabiner ### 30 | karabiner/automatic_backups/ 31 | 32 | ### Raycast Extensions ### 33 | config/raycast/extensions/ 34 | 35 | ### AI shit ### 36 | .claude/ 37 | 38 | ### REPOS ### 39 | repos/work.list 40 | repos/playground.list 41 | 42 | ### PRIVATE ### 43 | private/ssh/ 44 | .gitsecret/keys/random_seed 45 | !*.secret 46 | 47 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edheltzel/dotfiles/80c2a070d17ef7cf39b5e6761a24af88eecefdf2/.gitmodules -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "workbench.colorCustomizations": { 3 | "titleBar.activeForeground": "#6b6bb8" 4 | }, 5 | "files.associations": { 6 | "*.conf": "shellscript" 7 | }, 8 | "cSpell.words": [ 9 | "abbrex", 10 | "AFPS", 11 | "Astro", 12 | "Backhaul", 13 | "Bambu", 14 | "Capslock", 15 | "Clickup", 16 | "connrefused", 17 | "csrutil", 18 | "daneel", 19 | "danhper", 20 | "dotfiles", 21 | "Duti", 22 | "Elegoo", 23 | "emptytrash", 24 | "ffitch", 25 | "fishfile", 26 | "forrepos", 27 | "frontmost", 28 | "getdropbox", 29 | "Ghostty", 30 | "gpgsign", 31 | "HJKL", 32 | "indesign", 33 | "jakewiesler", 34 | "jordanbaird", 35 | "jorgebucaran", 36 | "Karabiner", 37 | "Keychron", 38 | "keyid", 39 | "Keymap", 40 | "keymaps", 41 | "killws", 42 | "kovidgoyal", 43 | "Lissy", 44 | "luanchctl", 45 | "Mbps", 46 | "MSIE", 47 | "Numlock", 48 | "nvim", 49 | "Photoshop", 50 | "pqrs", 51 | "prereq", 52 | "procs", 53 | "quicklinks", 54 | "ripgrep", 55 | "Shapr", 56 | "Shortcat", 57 | "shottr", 58 | "sketchybar", 59 | "softwardupdate", 60 | "spacebar", 61 | "spctl", 62 | "terminalfont", 63 | "tigrc", 64 | "timestamping", 65 | "tldr", 66 | "tmol", 67 | "todesktop", 68 | "toggl", 69 | "typora", 70 | "UIOP", 71 | "unhide", 72 | "Unstowing", 73 | "wmtheme", 74 | "zoxide" 75 | ], 76 | } 77 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | 2 | # Changelog 3 | 4 | All notable changes to this project will be documented in this file. 5 | 6 | The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org). 7 | 8 | ## [v2.0](https://github.com/edheltzel/dotfiles/tree/v2.0) - 2024-07-16 9 | 10 | [Full Changelog](https://github.com/edheltzel/dotfiles/compare/create...v2.0) 11 | 12 | ### Other 13 | 14 | - feature/zsh [#39](https://github.com/edheltzel/dotfiles/pull/39) ([edheltzel](https://github.com/edheltzel)) 15 | - feature/zsh [#38](https://github.com/edheltzel/dotfiles/pull/38) ([edheltzel](https://github.com/edheltzel)) 16 | - feature/zsh [#37](https://github.com/edheltzel/dotfiles/pull/37) ([edheltzel](https://github.com/edheltzel)) 17 | - Update fish shell configuration with multiple prompts [#36](https://github.com/edheltzel/dotfiles/pull/36) ([edheltzel](https://github.com/edheltzel)) 18 | - stow [#35](https://github.com/edheltzel/dotfiles/pull/35) ([edheltzel](https://github.com/edheltzel)) 19 | - feature/xdg [#34](https://github.com/edheltzel/dotfiles/pull/34) ([edheltzel](https://github.com/edheltzel)) 20 | - Feature/xdg [#33](https://github.com/edheltzel/dotfiles/pull/33) ([edheltzel](https://github.com/edheltzel)) 21 | - hotfix/randomUpdates [#28](https://github.com/edheltzel/dotfiles/pull/28) ([edheltzel](https://github.com/edheltzel)) 22 | - adds fig [#27](https://github.com/edheltzel/dotfiles/pull/27) ([edheltzel](https://github.com/edheltzel)) 23 | - hotfix/randomUpdates [#26](https://github.com/edheltzel/dotfiles/pull/26) ([edheltzel](https://github.com/edheltzel)) 24 | - hotfix/randomUpdates [#25](https://github.com/edheltzel/dotfiles/pull/25) ([edheltzel](https://github.com/edheltzel)) 25 | - hotfix/randomUpdates [#24](https://github.com/edheltzel/dotfiles/pull/24) ([edheltzel](https://github.com/edheltzel)) 26 | - fish key bindings are good resolves #22 [#23](https://github.com/edheltzel/dotfiles/pull/23) ([edheltzel](https://github.com/edheltzel)) 27 | - global dictionary update [#21](https://github.com/edheltzel/dotfiles/pull/21) ([edheltzel](https://github.com/edheltzel)) 28 | - hotfix/randomUpdates [#20](https://github.com/edheltzel/dotfiles/pull/20) ([edheltzel](https://github.com/edheltzel)) 29 | - hotfix/randomUpdates [#19](https://github.com/edheltzel/dotfiles/pull/19) ([edheltzel](https://github.com/edheltzel)) 30 | - dictionary update [#18](https://github.com/edheltzel/dotfiles/pull/18) ([edheltzel](https://github.com/edheltzel)) 31 | - feature/packages [#15](https://github.com/edheltzel/dotfiles/pull/15) ([edheltzel](https://github.com/edheltzel)) 32 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | STOW_PACKAGES := dots git fish nvim config vscode local 2 | YELLOW := \033[33m 3 | GREEN := \033[32m 4 | WHITE := \033[37m 5 | CLR := \033[0m 6 | 7 | .PHONY: default 8 | default: help 9 | 10 | .PHONY: help 11 | help: ## Show this help message (default) 12 | @awk 'BEGIN {FS = ":.*?## "}; \ 13 | /^[^\t][a-zA-Z0-9_-]+:.*?##/ \ 14 | { printf "\033[36m%-24s$(CLR) %s\n", $$1, $$2 } \ 15 | /^##/ { printf "$(YELLOW)%s$(CLR)\n", substr($$0, 4) }' $(MAKEFILE_LIST) 16 | 17 | .PHONY: install 18 | install: ## Bootstraps a new machine 19 | @echo "$(YELLOW)Running bootstrap to provision the system...$(CLR)" 20 | @./install.sh 21 | @echo "$(GREEN)System provisioning complete!$(CLR)" 22 | 23 | .PHONY: run 24 | run: ## Symlink all dotfiles w/Stow 25 | @for pkg in $(STOW_PACKAGES); do \ 26 | stow $$pkg; \ 27 | done 28 | @echo "Dotfiles stowed successfully" 29 | 30 | .PHONY: stow add 31 | stow: ## Add individual packages w/Stow 32 | @if [ -z "${pkg}" ]; then \ 33 | echo "Error: Please specify a package to stow. \n$(YELLOW)ie: $(YELLOW)make stow pkg=$(CLR) \n$(WHITE)Available packages:$(CLR) $(STOW_PACKAGES)"; \ 34 | exit 1; \ 35 | fi 36 | @if [[ ! " ${STOW_PACKAGES} " =~ " ${pkg} " ]]; then \ 37 | echo "Error: Package '${pkg}' not found in STOW_PACKAGES: $(STOW_PACKAGES)"; \ 38 | exit 1; \ 39 | fi 40 | stow ${pkg} 41 | @echo "${pkg} was added" 42 | 43 | .PHONY: unstow remove 44 | unstow: ## Remove individual packages w/Stow 45 | @if [ -z "${pkg}" ]; then \ 46 | echo "Error: Please specify a package to unstow. \n$(YELLOW)ie: $(YELLOW)make unstow pkg=$(CLR) \n$(WHITE)Available packages:$(CLR) $(STOW_PACKAGES)"; \ 47 | exit 1; \ 48 | fi 49 | @if [[ ! " ${STOW_PACKAGES} " =~ " ${pkg} " ]]; then \ 50 | echo "Error: Package '${pkg}' not found in STOW_PACKAGES: $(STOW_PACKAGES)"; \ 51 | exit 1; \ 52 | fi 53 | stow --delete ${pkg} 54 | @echo "${pkg} was removed" 55 | 56 | .PHONY: update up 57 | update: 58 | @for pkg in $(STOW_PACKAGES); do \ 59 | stow --restow $$pkg; \ 60 | done 61 | @echo "$(GREEN)Dotfiles updated successfully$(CLR) - run $(YELLOW)reload$(CLR) to apply changes to Fish" 62 | 63 | .PHONY: delete 64 | delete: ## Delete all dotfiles w/Stow 65 | @for pkg in $(STOW_PACKAGES); do \ 66 | stow --delete $$pkg; \ 67 | done 68 | @echo "$(WHITE)Dotfiles zapped! ⚡️" 69 | 70 | up: update ## Same as update command 71 | add: stow ## Same as stow command 72 | remove: unstow ## Same as unstow command 73 | -------------------------------------------------------------------------------- /bootstrap.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Define the source and target locations 4 | SOURCE="https://github.com/edheltzel/dotfiles" 5 | TARBALL="$SOURCE/tarball/master" 6 | TARGET="$HOME/.dotfiles" 7 | TAR_CMD="tar -xzv -C \"$TARGET\" --strip-components=1 --exclude='{.gitignore}'" 8 | 9 | # Function to check if a command is executable 10 | is_executable() { 11 | type "$1" >/dev/null 2>&1 12 | } 13 | 14 | # check for git, curl, or wget 15 | # Determine the download commands based on available tools 16 | if is_executable "git"; then 17 | CMD="git clone $SOURCE $TARGET" 18 | elif is_executable "curl"; then 19 | CMD="curl -#L $TARBALL | $TAR_CMD" 20 | elif is_executable "wget"; then 21 | CMD="wget --no-check-certificate -O - $TARBALL | $TAR_CMD" 22 | fi 23 | 24 | # Execute the download command or abort if no tools are available 25 | if [ -z "$CMD" ]; then 26 | echo "No git, curl, or wget available. Aborting." 27 | else 28 | echo "Installing dotfiles..." 29 | mkdir -p "$TARGET" 30 | eval "$CMD" 31 | 32 | # Check if install.sh exists 33 | if [ -f "$TARGET/install.sh" ]; then 34 | # Prompt the user for confirmation before proceeding 35 | read -p "Do you want to continue with the installation? [y/N] " -n 1 -r 36 | echo # Move to a new line 37 | if [[ $REPLY =~ ^[Yy]$ ]]; then 38 | echo "Running install script..." 39 | bash "$TARGET/install.sh" 40 | else 41 | echo "Installation aborted by user." 42 | exit 1 43 | fi 44 | else 45 | echo "Error: install.sh not found in the dotfiles repository." 46 | exit 1 47 | fi 48 | fi 49 | -------------------------------------------------------------------------------- /config/.config/alacritty/alacritty.toml: -------------------------------------------------------------------------------- 1 | general.import = [ 2 | "~/.config/alacritty/themes/eldritch.toml", 3 | "~/.config/alacritty/keybindings.toml", 4 | ] 5 | 6 | [env] 7 | TERM = "xterm-256color" 8 | 9 | [window] 10 | blur = true 11 | decorations = "Buttonless" 12 | opacity = 1 13 | option_as_alt = "Both" 14 | dimensions = { columns = 120, lines = 30 } 15 | padding = { x = 10, y = 5 } 16 | position = { x = 670, y = 413 } 17 | 18 | [scrolling] 19 | history = 25000 20 | 21 | [font] 22 | size = 16 23 | offset = { x = 1, y = 1 } 24 | normal = { family = "Lilex Nerd Font", style = "Regular" } 25 | bold.style = "Regular" 26 | italic.style = "Italic" 27 | 28 | [mouse] 29 | hide_when_typing = true 30 | [selection] 31 | save_to_clipboard = true 32 | 33 | [cursor] 34 | blink_interval = 500 35 | blink_timeout = 0 36 | style.blinking = "Always" 37 | style.shape = "Block" 38 | 39 | [debug] 40 | log_level = "Off" 41 | -------------------------------------------------------------------------------- /config/.config/alacritty/keybindings.toml: -------------------------------------------------------------------------------- 1 | ### keyboard bindings - MacOS natural text editing ### 2 | [keyboard] 3 | bindings = [ 4 | # new instance of alacritty in root 5 | { key = "N", mods = "Command|Shift", action = "SpawnNewInstance" }, 6 | # kill window 7 | { key = "=", mods = "Command|Control", action = "Quit" }, 8 | { key = "W", mods = "Command|Shift", action = "Quit" }, 9 | # open config with ⌘ + , 10 | # delete entire line with ⌘ + backspace 11 | { key = "Back", mods = "Command", chars = "\u0015" }, 12 | # jump to beginning/end of line with ⌘ + left/right 13 | { key = "Left", mods = "Command", chars = "\u001bOH" }, 14 | { key = "Right", mods = "Command", chars = "\u001bOF" }, 15 | ] 16 | -------------------------------------------------------------------------------- /config/.config/alacritty/themes/atelier-cave-dark.toml: -------------------------------------------------------------------------------- 1 | # modified atelier lakeside dark theme - @edheltzel 2 | [colors.primary] 3 | background = "#19171c" 4 | foreground = "#8b8792" 5 | bright_foreground = "#8b8792" 6 | 7 | [colors.selection] 8 | text = "#19171c" 9 | background = "#a06e3b" 10 | 11 | [colors.cursor] 12 | cursor = "#8b8792" 13 | text = "#19171c" 14 | 15 | [colors.normal] 16 | black = "#19171c" 17 | red = "#be4678" 18 | green = "#2a9292" 19 | yellow = "#a06e3b" 20 | blue = "#576ddb" 21 | magenta = "#955ae7" 22 | cyan = "#398bc6" 23 | white = "#8b8792" 24 | 25 | [colors.bright] 26 | black = "#655f6d" 27 | red = "#aa573c" 28 | green = "#26232a" 29 | yellow = "#7e7887" 30 | magenta = "#e2dfe7" 31 | cyan = "#bf40bf" 32 | white = "#8b8792" 33 | 34 | [colors.hints.end] 35 | background = "#8b8792" 36 | foreground = "#19171c" 37 | 38 | [colors.hints.start] 39 | background = "#e2dfe7" 40 | foreground = "#19171c" 41 | 42 | [colors.search.matches] 43 | background = "#a06e3b" 44 | foreground = "#26232a" 45 | -------------------------------------------------------------------------------- /config/.config/alacritty/themes/atelier-lakeside-dark.toml: -------------------------------------------------------------------------------- 1 | # modified atelier lakeside dark theme - @edheltzel 2 | [colors.primary] 3 | background = "#0b0d0e" 4 | foreground = "#7ea2b4" 5 | bright_foreground = "#7ea2b4" 6 | 7 | [colors.selection] 8 | text = "#0b0d0e" 9 | background = "#a06e3b" 10 | 11 | [colors.cursor] 12 | cursor = "#7ea2b4" 13 | text = "#161b1d" 14 | 15 | [colors.normal] 16 | black = "#1f292e" 17 | red = "#d22d72" 18 | green = "#568c3b" 19 | yellow = "#8a8a0f" 20 | blue = "#257fad" 21 | magenta = "#b72dd2" 22 | cyan = "#2d8f6f" 23 | white = "#c1e4f6" 24 | 25 | [colors.bright] 26 | black = "#516d7b" 27 | red = "#935c25" 28 | green = "#516d7b" 29 | yellow = "#5a7b8c" 30 | blue = "#7195a8" 31 | magenta = "#6b6bb8" 32 | cyan = "#7ea2b4" 33 | white = "#ebf8ff" 34 | 35 | [colors.hints.end] 36 | background = "#A6ADC8" 37 | foreground = "#1E1E2E" 38 | 39 | [colors.hints.start] 40 | background = "#e5edfc" 41 | foreground = "#1E1E2E" 42 | 43 | [colors.search.matches] 44 | background = "#F9E2AF" 45 | foreground = "#1E1E2E" 46 | -------------------------------------------------------------------------------- /config/.config/alacritty/themes/better-solarized-dark-hc.toml: -------------------------------------------------------------------------------- 1 | # modified solarized dark theme for higher contrast - @edheltzel 2 | 3 | [colors.primary] 4 | background = "#001e26" 5 | foreground = "#9bc1c2" 6 | bright_foreground = "#9bc1c2" 7 | 8 | [colors.selection] 9 | text = "#001e26" 10 | 11 | background = "#b17e28" 12 | 13 | [colors.cursor] 14 | cursor = "#f34a00" 15 | text = "#001e26" 16 | 17 | [colors.normal] 18 | black = "#002731" 19 | red = "#d01b24" 20 | green = "#6bbe6c" 21 | yellow = "#a57705" 22 | blue = "#2075c7" 23 | magenta = "#c61b6e" 24 | cyan = "#259185" 25 | white = "#e9e2cb" 26 | 27 | [colors.bright] 28 | black = "#006388" 29 | red = "#f4153b" 30 | green = "#50ee84" 31 | yellow = "#b17e28" 32 | blue = "#178dc7" 33 | magenta = "#e14d8e" 34 | cyan = "#00b29e" 35 | white = "#fcf4dc" 36 | 37 | [colors.hints.end] 38 | background = "#9bc1c2" 39 | foreground = "#001e26" 40 | 41 | [colors.hints.start] 42 | background = "#e2dfe7" 43 | foreground = "#001e26" 44 | 45 | [colors.search.matches] 46 | background = "#b17e28" 47 | foreground = "#001e26" 48 | -------------------------------------------------------------------------------- /config/.config/alacritty/themes/eldritch.toml: -------------------------------------------------------------------------------- 1 | [colors.primary] 2 | background = '#212337' 3 | foreground = '#ebfafa' 4 | 5 | [colors.cursor] 6 | cursor = '#37f499' 7 | text = '#f8f8f2' 8 | 9 | [colors.normal] 10 | black = '#21222c' 11 | blue = '#9071f4' 12 | cyan = '#04d1f9' 13 | green = '#37f499' 14 | magenta = '#f265b5' 15 | red = '#f9515d' 16 | white = '#ebfafa' 17 | yellow = '#e9f941' 18 | 19 | [colors.bright] 20 | black = '#7081d0' 21 | blue = '#a48cf2' 22 | cyan = '#66e4fd' 23 | green = '#69f8b3' 24 | magenta = '#fd92ce' 25 | red = '#f16c75' 26 | white = '#ffffff' 27 | yellow = '#f1fc79' 28 | 29 | [colors.selection] 30 | background = '#bf4f8e' 31 | text = '#ebfafa' 32 | -------------------------------------------------------------------------------- /config/.config/bat/config: -------------------------------------------------------------------------------- 1 | # This is `bat`s configuration file. Each line either contains a comment or 2 | # a command-line option that you want to pass to `bat` by default. You can 3 | # run `bat --help` to get a list of all possible configuration options. 4 | 5 | # Specify desired highlighting theme (e.g. "TwoDark"). Run `bat --list-themes` 6 | # for a list of all available themes 7 | --theme="Eldritch" 8 | 9 | # Enable this to use italic text on the terminal. This is not supported on all 10 | # terminal emulators (like tmux, by default): 11 | --italic-text=always 12 | 13 | # Uncomment the following line to disable automatic paging: 14 | --paging=never 15 | 16 | # Uncomment the following line if you are using less version >= 551 and want to 17 | # enable mouse scrolling support in `bat` when running inside tmux. This might 18 | # disable text selection, unless you press shift. 19 | #--pager="--RAW-CONTROL-CHARS --quit-if-one-screen --mouse" 20 | 21 | # Syntax mappings: map a certain filename pattern to a language. 22 | # Example 1: use the C++ syntax for .ino files 23 | # Example 2: Use ".gitignore"-style highlighting for ".ignore" files 24 | #--map-syntax "*.ino:C++" 25 | #--map-syntax ".ignore:Git Ignore" 26 | -------------------------------------------------------------------------------- /config/.config/borders/bordersrc: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Elbritch colors - https://github.com/eldritch-theme/eldritch 3 | # 0xff212337 = #212337 4 | # 0xff323449 = #323449 5 | # 0xffebfafa = #ebfafa 6 | # 0xff7081d0 = #7081d0 7 | # 0xff04d1f9 = #04d1f9 8 | # 0xff37f499 = #37f499 9 | # 0xfff7c67f = #f7c67f 10 | # 0xfff265b5 = #f265b5 11 | # 0xffa48cf2 = #a48cf2 12 | # 0xfff16c75 = #f16c75 13 | # 0xfff1fc79 = #f1fc79 14 | # Light mode use: 15 | # active_color=0xff212337 16 | # inactive_color=0xffebfafa 17 | # Dark mode use: 18 | # active_color=0xffa48cf2 19 | # inactive_color=0xff212337 20 | 21 | options=( 22 | style=round 23 | width=5.0 24 | active_color=0xffa48cf2 25 | inactive_color=0xff212337 26 | ) 27 | 28 | borders "${options[@]}" 29 | -------------------------------------------------------------------------------- /config/.config/broot/launcher/bash/br: -------------------------------------------------------------------------------- 1 | /Users/ed/Library/Application Support/org.dystroy.broot/launcher/bash/1 -------------------------------------------------------------------------------- /config/.config/broot/launcher/installed-v4: -------------------------------------------------------------------------------- 1 | 2 | This file tells broot the installation of the br function was done. 3 | If there's a problem and you want to install it again run 4 | broot -- install 5 | -------------------------------------------------------------------------------- /config/.config/broot/skins/white.hjson: -------------------------------------------------------------------------------- 1 | ############################################################### 2 | # A skin for a terminal with a white background 3 | # 4 | # To create your own skin, copy this file, change the entries 5 | # and import your skin file from the main conf file (look 6 | # for "imports") 7 | # 8 | # Doc at https://dystroy.org/broot/skins/ 9 | ############################################################### 10 | syntax_theme: base16-ocean.light 11 | 12 | skin: { 13 | default: gray(1) None 14 | tree: gray(7) None / gray(18) None 15 | file: gray(3) None / gray(8) None 16 | directory: ansi(25) None Bold / ansi(25) None 17 | exe: ansi(130) None 18 | link: Magenta None 19 | pruning: gray(12) None Italic 20 | perm__: gray(5) None 21 | perm_r: ansi(94) None 22 | perm_w: ansi(132) None 23 | perm_x: ansi(65) None 24 | owner: ansi(138) None 25 | group: ansi(131) None 26 | dates: ansi(66) None 27 | sparse: ansi(214) None 28 | git_branch: ansi(229) None 29 | git_insertions: ansi(28) None 30 | git_deletions: ansi(160) None 31 | git_status_current: gray(5) None 32 | git_status_modified: ansi(28) None 33 | git_status_new: ansi(94) None Bold 34 | git_status_ignored: gray(17) None 35 | git_status_conflicted: ansi(88) None 36 | git_status_other: ansi(88) None 37 | selected_line: None gray(19) / None gray(21) 38 | char_match: ansi(22) None 39 | file_error: Red None 40 | flag_label: gray(9) None 41 | flag_value: ansi(166) None Bold 42 | input: gray(1) None / gray(4) gray(20) 43 | status_error: gray(22) ansi(124) 44 | status_normal: gray(2) gray(20) 45 | status_job: ansi(220) gray(5) 46 | status_italic: ansi(166) gray(20) 47 | status_bold: ansi(166) gray(20) 48 | status_code: ansi(17) gray(20) 49 | status_ellipsis: gray(19) gray(15) 50 | purpose_normal: gray(20) gray(2) 51 | purpose_italic: ansi(178) gray(2) 52 | purpose_bold: ansi(178) gray(2) Bold 53 | purpose_ellipsis: gray(20) gray(2) 54 | scrollbar_track: gray(20) none 55 | scrollbar_thumb: ansi(238) none 56 | help_paragraph: gray(2) none 57 | help_bold: ansi(202) none bold 58 | help_italic: ansi(202) none italic 59 | help_code: gray(5) gray(22) 60 | help_headers: ansi(202) none 61 | help_table_border: ansi(239) None 62 | preview_title: gray(3) None / gray(5) None 63 | preview: gray(5) gray(23) / gray(7) gray(23) 64 | preview_line_number: gray(6) gray(20) 65 | preview_match: None ansi(29) Underlined 66 | hex_null: gray(15) None 67 | hex_ascii_graphic: gray(2) None 68 | hex_ascii_whitespace: ansi(143) None 69 | hex_ascii_other: ansi(215) None 70 | hex_non_ascii: ansi(167) None 71 | staging_area_title: gray(8) None / gray(13) None 72 | mode_command_mark: gray(15) ansi(204) Bold 73 | good_to_bad_0: ansi(28) 74 | good_to_bad_1: ansi(29) 75 | good_to_bad_2: ansi(29) 76 | good_to_bad_3: ansi(29) 77 | good_to_bad_4: ansi(29) 78 | good_to_bad_5: ansi(100) 79 | good_to_bad_6: ansi(136) 80 | good_to_bad_7: ansi(172) 81 | good_to_bad_8: ansi(166) 82 | good_to_bad_9: ansi(196) 83 | } 84 | -------------------------------------------------------------------------------- /config/.config/btop/themes/eldritch.theme: -------------------------------------------------------------------------------- 1 | # Main background, empty for terminal default, need to be empty if you want transparent background 2 | theme[main_bg]="#212337" 3 | 4 | # Main text color 5 | theme[main_fg]="#ebfafa 6 | 7 | # Title color for boxes 8 | theme[title]="#ebfafa 9 | 10 | # Highlight color for keyboard shortcuts 11 | theme[hi_fg]="#7081d0" 12 | 13 | # Background color of selected item in processes box 14 | theme[selected_bg]="#04d1f9" 15 | 16 | # Foreground color of selected item in processes box 17 | theme[selected_fg]="#ebfafa 18 | 19 | # Color of inactive/disabled text 20 | theme[inactive_fg]="#323449" 21 | 22 | # Color of text appearing on top of graphs, i.e uptime and current network graph scaling 23 | theme[graph_text]="#ebfafa 24 | 25 | # Background color of the percentage meters 26 | theme[meter_bg]="#323449" 27 | 28 | # Misc colors for processes box including mini cpu graphs, details memory graph and details status text 29 | theme[proc_misc]="#37f499" 30 | 31 | # Cpu box outline color 32 | theme[cpu_box]="#37f499" 33 | 34 | # Memory/disks box outline color 35 | theme[mem_box]="#a48cf2" 36 | 37 | # Net up/down box outline color 38 | theme[net_box]="#f16c75" 39 | 40 | # Processes box outline color 41 | theme[proc_box]="#f265b5" 42 | 43 | # Box divider line and small boxes line color 44 | theme[div_line]="#323449" 45 | 46 | # Temperature graph colors 47 | theme[temp_start]="#37f499" 48 | theme[temp_mid]="#04d1f9" 49 | theme[temp_end]="#ff33a8" 50 | 51 | # CPU graph colors 52 | theme[cpu_start]="#37f499" 53 | theme[cpu_mid]="#f265b5" 54 | theme[cpu_end]="#a48cf2" 55 | 56 | # Mem/Disk free meter 57 | theme[free_start]="#ffa6d9" 58 | theme[free_mid]="#04d1f9" 59 | theme[free_end]="#ff33a8" 60 | 61 | # Mem/Disk cached meter 62 | theme[cached_start]="#b1f0fd" 63 | theme[cached_mid]="#f265b5" 64 | theme[cached_end]="#26d7fd" 65 | 66 | # Mem/Disk available meter 67 | theme[available_start]="#ffd4a6" 68 | theme[available_mid]="#ffb86c" 69 | theme[available_end]="#ff9c33" 70 | 71 | # Mem/Disk used meter 72 | theme[used_start]="#96faaf" 73 | theme[used_mid]="#a48cf2" 74 | theme[used_end]="#0dfa49" 75 | 76 | # Download graph colors 77 | theme[download_start]="#37f499" 78 | theme[download_mid]="#a48cf2" 79 | theme[download_end]="#f265b5" 80 | 81 | # Upload graph colors 82 | theme[upload_start]="#8c42ab" 83 | theme[upload_mid]="#04d1f9" 84 | theme[upload_end]="#ff33a8" 85 | 86 | # Process box color gradient for threads, mem and cpu usage 87 | theme[process_start]="#a48cf2" 88 | theme[process_mid]="#59b690" 89 | theme[process_end]="#7081d0" 90 | -------------------------------------------------------------------------------- /config/.config/fastfetch/config.jsonc: -------------------------------------------------------------------------------- 1 | // _____ _____ _____ _____ _____ _____ _____ _____ _____ 2 | // | __| _ | __|_ _| __| __|_ _| | | | 3 | // | __| |__ | | | | __| __| | | | --| | 4 | // |__| |__|__|_____| |_| |__| |_____| |_| |_____|__|__| GROUPS 5 | // 6 | // by Bina 7 | { 8 | "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json", 9 | // "logo": { 10 | // "source": "~/.dotfiles/config/.config/fastfetch/eldritch.png", 11 | // "type": "kitty-direct", 12 | // "height": 20, 13 | // "padding": { 14 | // "top": 1 15 | // } 16 | // }, 17 | "display": { 18 | "separator": " ➜ " 19 | }, 20 | "modules": [ 21 | "break", 22 | "break", 23 | "break", 24 | { 25 | "type": "os", 26 | "key": "OS ", 27 | "keyColor": "35", // = color1 28 | }, 29 | { 30 | "type": "kernel", 31 | "key": " ├  ", 32 | "keyColor": "35", 33 | }, 34 | { 35 | "type": "packages", 36 | "format": "{} (homebrew)", 37 | "key": " ├ 󰏖 ", 38 | "keyColor": "35", 39 | }, 40 | { 41 | "type": "shell", 42 | "key": " └  ", 43 | "keyColor": "35", 44 | }, 45 | "break", 46 | { 47 | "type": "wm", 48 | "key": "WM ", 49 | "keyColor": "34", 50 | }, 51 | { 52 | "type": "wmtheme", 53 | "key": " ├ 󰉼 ", 54 | "keyColor": "34", 55 | }, 56 | { 57 | "type": "icons", 58 | "key": " ├ 󰀻 ", 59 | "keyColor": "34", 60 | }, 61 | { 62 | "type": "cursor", 63 | "key": " ├  ", 64 | "keyColor": "34", 65 | }, 66 | { 67 | "type": "terminal", 68 | "key": " ├  ", 69 | "keyColor": "34", 70 | }, 71 | { 72 | "type": "terminalfont", 73 | "key": " └  ", 74 | "keyColor": "34", 75 | }, 76 | "break", 77 | { 78 | "type": "host", 79 | "format": "{5} {1} Type {2}", 80 | "key": "PC ", 81 | "keyColor": "36", 82 | }, 83 | { 84 | "type": "cpu", 85 | "format": "{1} ({3})", 86 | "key": " ├  ", 87 | "keyColor": "36", 88 | }, 89 | { 90 | "type": "gpu", 91 | "format": "{1} {2} @ {12} GHz", 92 | "key": " ├ 󰢮 ", 93 | "keyColor": "36", 94 | }, 95 | { 96 | "type": "memory", 97 | "key": " ├  ", 98 | "keyColor": "36", 99 | }, 100 | { 101 | "type": "swap", 102 | "key": " ├ 󰓡 ", 103 | "keyColor": "36", 104 | }, 105 | { 106 | "type": "disk", 107 | "key": " ├ 󰋊 ", 108 | "keyColor": "36", 109 | }, 110 | { 111 | "type": "monitor", 112 | "key": " └  ", 113 | "keyColor": "36", 114 | }, 115 | "break", 116 | { 117 | "type": "custom", 118 | "format": "\u001b[90m \u001b[31m \u001b[32m \u001b[33m \u001b[34m \u001b[35m \u001b[36m \u001b[37m " 119 | }, 120 | ] 121 | } 122 | -------------------------------------------------------------------------------- /config/.config/fastfetch/eldritch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edheltzel/dotfiles/80c2a070d17ef7cf39b5e6761a24af88eecefdf2/config/.config/fastfetch/eldritch.png -------------------------------------------------------------------------------- /config/.config/gh/config.yml: -------------------------------------------------------------------------------- 1 | # What protocol to use when performing git operations. Supported values: ssh, https 2 | git_protocol: ssh 3 | # What editor gh should run when creating issues, pull requests, etc. If blank, will refer to environment. 4 | editor: code 5 | # When to interactively prompt. This is a global config that cannot be overridden by hostname. Supported values: enabled, disabled 6 | prompt: enabled 7 | # A pager program to send command output to, e.g. "less". Set the value to "cat" to disable the pager. 8 | pager: delta 9 | # Aliases allow you to create nicknames for gh commands 10 | aliases: 11 | co: pr checkout 12 | diff: pr diff 13 | merge: pr merge 14 | close: issue close 15 | add: issue create --title 16 | todo: issue create -a @me --title 17 | mine: issue list -a @me 18 | rel: release create --generate-notes --latest 19 | web: repo view --web 20 | mr: pr create -a "@me" --fill 21 | clog: changelog new 22 | 23 | # The path to a unix socket through which send HTTP connections. If blank, HTTP traffic will be handled by net/http.DefaultTransport. 24 | http_unix_socket: 25 | # What web browser gh should use when opening URLs. If blank, will refer to environment. 26 | browser: 27 | version: "1" 28 | -------------------------------------------------------------------------------- /config/.config/karabiner/.editorconfig: -------------------------------------------------------------------------------- 1 | [*] 2 | end_of_line = lf 3 | charset = utf-8 4 | indent_style = space -------------------------------------------------------------------------------- /config/.config/karabiner/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /config/.config/karabiner/.prettierrc: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /config/.config/karabiner/.scrub.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Scrubs the projec to sterilize it for a fresh start 3 | ############################################################# 4 | 5 | GREEN='\033[0;32m' #green 6 | YELLOW='\033[33m' #yellow 7 | WHITE='\033[97m' #white 8 | GRAY='\033[37m' #light gray 9 | NC='\033[0m' #no-color 10 | BOLD='\033[1m' #bold 11 | BOLDEND='\033[0m' #bold end 12 | 13 | 14 | TITLE="🧼 Scrubbed " 15 | OPTIONS="${YELLOW}site${NC}, or ${YELLOW}purge${NC}" 16 | OOPS="🚀💥🔥 OOPS! We need a valid option – Try using ${OPTIONS}" 17 | MALFUNCTION="👨‍🚀 Huston... We have a problem! Make sure you use ${OPTIONS} - " 18 | 19 | SITE="${WHITE}${BOLD}output${BOLDEND}${NC} & ${WHITE}${BOLD}all cache${BOLDEND}${NC} directories ✨" 20 | FRESH="${WHITE}${BOLD}node_modules${BOLDEND}${NC}, ${WHITE}${BOLD}lock files${BOLDEND}${NC}, ${SITE}" 21 | 22 | PURGE="🧹 ${GREEN}${BOLD}All Clean${BOLDEND}${NC} ✨ ${TITLE}${FRESH}${NC}\n\nRun ${YELLOW}${BOLD}bun/pnpm install${BOLDEND}${NC} to start fresh 🤩" 23 | 24 | DEVFILES="dist/ _site/ .cache/ *.log" 25 | NODEFILES="node_modules package-lock.json pnpm-lock.yaml yarn.lock .yarn/ bun.lockb deno.lock" 26 | 27 | #################### DONT EDIT BELOW 👀 #################### 28 | if [ $# -eq 0 ] 29 | then 30 | echo -e "$MALFUNCTION" 31 | elif [ "$1" == "site" ] 32 | then 33 | (rm -rf ${DEVFILES} || del ${DEVFILES}) 34 | echo -e ${TITLE}${SITE} 35 | elif [ "$1" == "purge" ] 36 | then 37 | (rm -rf ${DEVFILES} ${NODEFILES} || del ${DEVFILES} ${NODEFILES}) 38 | echo -e ${PURGE} 39 | else 40 | echo -e "$OOPS" 41 | fi 42 | -------------------------------------------------------------------------------- /config/.config/karabiner/LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Maximilian Stoiber 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /config/.config/karabiner/bun.lockb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edheltzel/dotfiles/80c2a070d17ef7cf39b5e6761a24af88eecefdf2/config/.config/karabiner/bun.lockb -------------------------------------------------------------------------------- /config/.config/karabiner/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "karabiner", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "author": "Ed Heltzel -> originally by Max Stoiber ", 6 | "license": "MIT", 7 | "devDependencies": { 8 | "@types/node": "^22.10.2", 9 | "nodemon": "^3.1.7", 10 | "npm-check-updates": "^17.1.11", 11 | "prettier": "^3.4.2", 12 | "tsx": "^4.19.2" 13 | }, 14 | "scripts": { 15 | "start": "nodemon --exec bun run build -e ts", 16 | "build": "tsx rules.ts", 17 | "upgrade": "bunx npm-check-updates -ui", 18 | "purge": "./.scrub.sh purge" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /config/.config/karabiner/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es2018", 4 | "module": "commonjs", 5 | "strict": true, 6 | "esModuleInterop": true, 7 | "skipLibCheck": true, 8 | "forceConsistentCasingInFileNames": true, 9 | "types": ["node"] 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /config/.config/kitty/current-theme.conf: -------------------------------------------------------------------------------- 1 | # vim:ft=kitty 2 | 3 | ## name: Tokyo Night 4 | ## license: MIT 5 | ## author: Folke Lemaitre 6 | ## upstream: https://github.com/folke/tokyonight.nvim/raw/main/extras/kitty/tokyonight_night.conf 7 | 8 | 9 | background #1a1b26 10 | foreground #c0caf5 11 | selection_background #283457 12 | selection_foreground #c0caf5 13 | url_color #73daca 14 | cursor #c0caf5 15 | cursor_text_color #1a1b26 16 | 17 | # Tabs 18 | active_tab_background #7aa2f7 19 | active_tab_foreground #16161e 20 | inactive_tab_background #292e42 21 | inactive_tab_foreground #545c7e 22 | #tab_bar_background #15161e 23 | 24 | # Windows 25 | active_border_color #7aa2f7 26 | inactive_border_color #292e42 27 | 28 | # normal 29 | color0 #15161e 30 | color1 #f7768e 31 | color2 #9ece6a 32 | color3 #e0af68 33 | color4 #7aa2f7 34 | color5 #bb9af7 35 | color6 #7dcfff 36 | color7 #a9b1d6 37 | 38 | # bright 39 | color8 #414868 40 | color9 #f7768e 41 | color10 #9ece6a 42 | color11 #e0af68 43 | color12 #7aa2f7 44 | color13 #bb9af7 45 | color14 #7dcfff 46 | color15 #c0caf5 47 | 48 | # extended colors 49 | color16 #ff9e64 50 | color17 #db4b4b 51 | -------------------------------------------------------------------------------- /config/.config/kitty/keybindings.conf: -------------------------------------------------------------------------------- 1 | #: Keybinding for MacOS 2 | macos_option_as_alt yes 3 | select_by_word_characters *?_-.[]~&;!#$%^(){}<> 4 | 5 | # Clipboard 6 | map cmd+v paste_from_clipboard 7 | map cmd+alt+v paste_from_selection 8 | map cmd+c copy_to_clipboard 9 | 10 | # Mac - natural writing 11 | ### jump to end of line: 12 | map cmd+right send_text all \x05 13 | ### jump to start of line: 14 | map cmd+left send_text all \x01 15 | ### jump right to end of word: 16 | map alt+right send_text all \x1b\x66 17 | ### jump left to beginning of word: 18 | map alt+left send_text all \x1b\x62 19 | ### delete line from cursor position to start of line: 20 | map cmd+backspace send_text all \x15 21 | ### delete word works by default via opt+backspace 22 | ### undo: 23 | map cmd+z send_text all \x1f 24 | 25 | # Window management 26 | map cmd+n new_os_window 27 | map cmd+ctrl+= close_window 28 | map cmd+d new_window_with_cwd 29 | map cmd+shift+d new_window_with_cwd 30 | map cmd+] next_window 31 | map cmd+[ previous_window 32 | 33 | # Tab management 34 | map cmd+t new_tab 35 | map cmd+w close_tab 36 | map cmd+shift+] next_tab 37 | map cmd+shift+[ previous_tab 38 | map cmd+1 goto_tab 1 39 | map cmd+2 goto_tab 2 40 | map cmd+3 goto_tab 3 41 | map cmd+4 goto_tab 4 42 | map cmd+5 goto_tab 5 43 | map cmd+6 goto_tab 6 44 | map cmd+7 goto_tab 7 45 | map cmd+8 goto_tab 8 46 | map cmd+9 goto_tab 9 47 | 48 | # Miscellaneous 49 | map cmd+shift+= increase_font_size 50 | map cmd+shift+- decrease_font_size 51 | map cmd+shift+0 reset_font_size 52 | map super_shift+f toggle_fullscreen 53 | # reload config file - cmd+ctrl+, 54 | -------------------------------------------------------------------------------- /config/.config/kitty/kitty-dark.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edheltzel/dotfiles/80c2a070d17ef7cf39b5e6761a24af88eecefdf2/config/.config/kitty/kitty-dark.icns -------------------------------------------------------------------------------- /config/.config/kitty/kitty-light.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edheltzel/dotfiles/80c2a070d17ef7cf39b5e6761a24af88eecefdf2/config/.config/kitty/kitty-light.icns -------------------------------------------------------------------------------- /config/.config/kitty/kitty.conf: -------------------------------------------------------------------------------- 1 | # vim:fileencoding=utf-8:foldmethod=marker 2 | 3 | editor /opt/homebrew/bin/code 4 | 5 | #: Fonts 6 | font_size 17.0 7 | font_family Lilex Nerd Font Mono 8 | font_weight normal 9 | 10 | #: Text cursor customization 11 | cursor_shape block 12 | cursor_shape_unfocused hollow 13 | cursor_blink_interval 0.5 14 | cursor_stop_blinking_after 15.0 15 | 16 | #: Scrollback 17 | scrollback_lines 5000 18 | 19 | #: Mouse 20 | url_style dotted 21 | copy_on_select yes 22 | open_url_modifiers cmd 23 | cursor_shape block 24 | cursor_trail 1 25 | 26 | include ./layout.conf 27 | include ./os-tweaks.conf 28 | include ./keybindings.conf 29 | 30 | # BEGIN_KITTY_THEME 31 | # Eldritch 32 | include ./themes/eldritch-dark.conf 33 | # END_KITTY_THEME 34 | -------------------------------------------------------------------------------- /config/.config/kitty/layout.conf: -------------------------------------------------------------------------------- 1 | #: Window layout 2 | enabled_layouts Tall,* 3 | initial_window_width 800 4 | initial_window_height 600 5 | remember_window_size yes 6 | 7 | hide_window_decorations titlebar-and-corners 8 | placement_strategy center 9 | 10 | window_margin_width 10 11 | single_window_padding_width 0 12 | 13 | 14 | #: Tab bar 15 | tab_title_template "{sup.index}" 16 | tab_bar_min_tabs 2 17 | tab_bar_style powerline 18 | tab_powerline_style slanted 19 | -------------------------------------------------------------------------------- /config/.config/kitty/neue_azure.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edheltzel/dotfiles/80c2a070d17ef7cf39b5e6761a24af88eecefdf2/config/.config/kitty/neue_azure.icns -------------------------------------------------------------------------------- /config/.config/kitty/os-tweaks.conf: -------------------------------------------------------------------------------- 1 | #: OS specific tweaks - MacOS 2 | macos_titlebar_color background 3 | macos_option_as_alt no 4 | macos_quit_when_last_window_closed yes 5 | macos_show_window_title_in none 6 | 7 | # macos_hide_from_tasks no 8 | #: Hide the kitty window from running tasks on macOS (⌘+Tab and the Dock). 9 | #: Changing this option by reloading the config is not supported. 10 | -------------------------------------------------------------------------------- /config/.config/kitty/quick-access-terminal.conf: -------------------------------------------------------------------------------- 1 | #https://sw.kovidgoyal.net/kitty/kittens/quick-access-terminal/#window-appearance 2 | #window appearance 3 | lines 30 4 | background_opacity 0.95 5 | -------------------------------------------------------------------------------- /config/.config/kitty/themes/atelier-cave-dark.conf: -------------------------------------------------------------------------------- 1 | # vim:ft=kitty 2 | ## name: Atelier Cave Dark 3 | ## author: Bram de Haan (https://github.com/atelierbram) 4 | ## license: MIT 5 | ## upstream: https://github.com/atelierbram/AtelierSchemes-kitty/blob/main/themes/atelier-cave-dark.conf 6 | ## blurb: A violet-ish palette; not for the claustrophobic. 7 | 8 | # background_opacity 0.9 9 | 10 | #: The basic colors 11 | 12 | foreground #8b8792 13 | # background #19171c 14 | background #0C0B0F 15 | selection_foreground #19171c 16 | selection_background #a06e3b 17 | 18 | inactive_text_alpha 0.4 19 | 20 | #: Cursor colors 21 | 22 | cursor #8b8792 23 | cursor_text_color #19171c 24 | 25 | 26 | #: URL underline color when hovering with mouse 27 | 28 | url_color #bf40bf 29 | 30 | #: kitty window border colors and terminal bell colors 31 | 32 | active_border_color #655f6d 33 | inactive_border_color #19171c 34 | bell_border_color #aa573c 35 | visual_bell_color none 36 | 37 | 38 | #: OS Window titlebar colors 39 | 40 | wayland_titlebar_color #26232a 41 | macos_titlebar_color #26232a 42 | 43 | 44 | #: Tab bar colors 45 | 46 | active_tab_foreground #e2dfe7 47 | active_tab_background #19171c 48 | inactive_tab_foreground #8b8792 49 | inactive_tab_background #26232a 50 | tab_bar_background #26232a 51 | tab_bar_margin_color none 52 | 53 | 54 | #: Colors for marks (marked text in the terminal) 55 | 56 | mark1_foreground #19171c 57 | mark1_background #e2dfe7 58 | mark2_foreground #19171c 59 | mark2_background #a06e3b 60 | mark3_foreground #19171c 61 | mark3_background #2a9292 62 | 63 | 64 | #: The basic 16 colors 65 | 66 | #: black 67 | color0 #19171c 68 | color8 #655f6d 69 | 70 | #: red 71 | color1 #be4678 72 | color9 #aa573c 73 | 74 | #: green 75 | color2 #2a9292 76 | color10 #2a9292 77 | # color10 #26232a # original 78 | 79 | #: yellow 80 | color3 #a06e3b 81 | color11 #585260 82 | 83 | #: blue 84 | color4 #576ddb 85 | color12 #7e7887 86 | 87 | #: magenta 88 | color5 #955ae7 89 | color13 #e2dfe7 90 | 91 | #: cyan 92 | color6 #398bc6 93 | color14 #bf40bf 94 | 95 | #: white 96 | color7 #8b8792 97 | color15 #efecf4 98 | -------------------------------------------------------------------------------- /config/.config/kitty/themes/atelier-lakeside-dark.conf: -------------------------------------------------------------------------------- 1 | # vim:ft=kitty 2 | ## name: Atelier Lakeside Dark 3 | ## author: Bram de Haan (https://github.com/atelierbram) 4 | ## license: MIT 5 | ## upstream: https://github.com/atelierbram/AtelierSchemes-kitty/blob/main/themes/atelier-lakeside-dark.conf 6 | ## blurb: Cool colorscheme for the base color for Lakeside is blue, which means bluish colors for the background. 7 | 8 | background_opacity 0.9 9 | 10 | #: The basic colors 11 | 12 | foreground #7ea2b4 13 | # background #161b1d # original 14 | background: #0B0D0E 15 | selection_foreground #7ea2b4 16 | selection_background #1f292e 17 | 18 | 19 | #: Cursor colors 20 | 21 | cursor #7ea2b4 22 | cursor_text_color #161b1d 23 | 24 | inactive_text_alpha 0.4 25 | 26 | #: URL underline color when hovering with mouse 27 | 28 | url_color #b72dd2 29 | 30 | 31 | #: kitty window border colors and terminal bell colors 32 | 33 | active_border_color #5a7b8c 34 | inactive_border_color #161b1d 35 | bell_border_color #935c25 36 | visual_bell_color none 37 | 38 | 39 | #: OS Window titlebar colors 40 | 41 | wayland_titlebar_color #1f292e 42 | macos_titlebar_color #1f292e 43 | 44 | 45 | #: Tab bar colors 46 | 47 | active_tab_foreground #c1e4f6 48 | active_tab_background #161b1d 49 | inactive_tab_foreground #7ea2b4 50 | inactive_tab_background #1f292e 51 | tab_bar_background #1f292e 52 | tab_bar_margin_color none 53 | 54 | 55 | #: Colors for marks (marked text in the terminal) 56 | 57 | mark1_foreground #161b1d 58 | mark1_background #c1e4f6 59 | mark2_foreground #161b1d 60 | mark2_background #8a8a0f 61 | mark3_foreground #161b1d 62 | mark3_background #568c3b 63 | 64 | 65 | #: The basic 16 colors 66 | 67 | #: black 68 | color0 #161b1d 69 | color8 #5a7b8c 70 | 71 | #: red 72 | color1 #d22d72 73 | color9 #935c25 74 | 75 | #: green 76 | color2 #568c3b 77 | color10 #1f292e 78 | 79 | #: yellow 80 | color3 #8a8a0f 81 | color11 #516d7b 82 | 83 | #: blue 84 | color4 #257fad 85 | color12 #7195a8 86 | 87 | #: magenta 88 | color5 #6b6bb8 89 | color13 #c1e4f6 90 | 91 | #: cyan 92 | color6 #2d8f6f 93 | color14 #b72dd2 94 | 95 | #: white 96 | color7 #7ea2b4 97 | color15 #ebf8ff 98 | -------------------------------------------------------------------------------- /config/.config/kitty/themes/better-solarized-dark-hc.conf: -------------------------------------------------------------------------------- 1 | #: The basic colors 2 | background #001e26 3 | foreground #9bc1c2 4 | selection_background #b17e28 5 | selection_foreground #001e26 6 | 7 | #: Cursor colors 8 | cursor #f34a00 9 | cursor_text_color #001e26 10 | inactive_text_alpha 0.4 11 | 12 | #: kitty window border colors and terminal bell colors 13 | active_border_color #586E75 14 | inactive_border_color #002731 15 | bell_border_color #b17e28 16 | visual_bell_color none 17 | 18 | #: OS Window titlebar colors 19 | wayland_titlebar_color #001e26 20 | macos_titlebar_color #001e26 21 | 22 | #: Tab bar colors 23 | active_tab_foreground #9bc1c2 24 | active_tab_background #001e26 25 | inactive_tab_foreground #586E75 26 | inactive_tab_background #002731 27 | tab_bar_background #002731 28 | tab_bar_margin_color none 29 | 30 | #: Black 31 | color0 #002731 32 | color8 #006388 33 | 34 | #: Red 35 | color1 #d01b24 36 | color9 #f4153b 37 | 38 | #: Green 39 | color2 #6bbe6c 40 | color10 #50ee84 41 | 42 | #: Yellow 43 | color3 #a57705 44 | color11 #b17e28 45 | 46 | #: Blue 47 | color4 #2075c7 48 | color12 #178dc7 49 | 50 | #: Magenta 51 | color5 #c61b6e 52 | color13 #e14d8e 53 | 54 | #: Cyan 55 | color6 #259185 56 | color14 #00b29e 57 | 58 | #: White 59 | color7 #e9e2cb 60 | color15 #fcf4dc 61 | -------------------------------------------------------------------------------- /config/.config/kitty/themes/eldritch-dark.conf: -------------------------------------------------------------------------------- 1 | # vim:ft=kitty 2 | ## name: Eldritch dark 3 | ## author: jacobrreed 4 | ## license: MIT 5 | ## upstream: https://github.com/eldritch-theme/kitty 6 | ## blurb: A theme for the Ancient Ones! 7 | foreground #ebfafa 8 | background #171928 9 | selection_foreground #ebfafa 10 | selection_background #bf4f8e 11 | 12 | url_color #04d1f9 13 | 14 | # black 15 | color0 #21222c 16 | color8 #7081d0 17 | 18 | # red 19 | color1 #f9515d 20 | color9 #f16c75 21 | 22 | # green 23 | color2 #37f499 24 | color10 #69F8B3 25 | 26 | # yellow 27 | color3 #e9f941 28 | color11 #f1fc79 29 | 30 | # blue 31 | color4 #9071f4 32 | color12 #a48cf2 33 | 34 | # magenta 35 | color5 #f265b5 36 | color13 #FD92CE 37 | 38 | # cyan 39 | color6 #04d1f9 40 | color14 #66e4fd 41 | 42 | # white 43 | color7 #ebfafa 44 | color15 #ffffff 45 | 46 | # Cursor colors 47 | cursor #37f499 48 | cursor_text_color #f8f8f2 49 | 50 | # Tab bar colors 51 | active_tab_foreground #171928 52 | active_tab_background #04d1f9 53 | inactive_tab_foreground #37f499 54 | inactive_tab_background #323449 55 | 56 | # Marks 57 | mark1_foreground #171928 58 | mark1_background #f9515d 59 | 60 | # Splits/Windows 61 | active_border_color #a48cf2 62 | inactive_border_color #171928 63 | -------------------------------------------------------------------------------- /config/.config/kitty/themes/eldritch.conf: -------------------------------------------------------------------------------- 1 | # vim:ft=kitty 2 | ## name: Eldritch 3 | ## author: jacobrreed 4 | ## license: MIT 5 | ## upstream: https://github.com/eldritch-theme/kitty 6 | ## blurb: A theme for the Ancient Ones! 7 | foreground #ebfafa 8 | background #212337 9 | selection_foreground #ebfafa 10 | selection_background #bf4f8e 11 | 12 | url_color #04d1f9 13 | 14 | # black 15 | color0 #21222c 16 | color8 #7081d0 17 | 18 | # red 19 | color1 #f9515d 20 | color9 #f16c75 21 | 22 | # green 23 | color2 #37f499 24 | color10 #69F8B3 25 | 26 | # yellow 27 | color3 #e9f941 28 | color11 #f1fc79 29 | 30 | # blue 31 | color4 #9071f4 32 | color12 #a48cf2 33 | 34 | # magenta 35 | color5 #f265b5 36 | color13 #FD92CE 37 | 38 | # cyan 39 | color6 #04d1f9 40 | color14 #66e4fd 41 | 42 | # white 43 | color7 #ebfafa 44 | color15 #ffffff 45 | 46 | # Cursor colors 47 | cursor #37f499 48 | cursor_text_color #f8f8f2 49 | 50 | # Tab bar colors 51 | active_tab_foreground #212337 52 | active_tab_background #04d1f9 53 | inactive_tab_foreground #37f499 54 | inactive_tab_background #323449 55 | 56 | # Marks 57 | mark1_foreground #212337 58 | mark1_background #f9515d 59 | 60 | # Splits/Windows 61 | active_border_color #a48cf2 62 | inactive_border_color #212337 63 | -------------------------------------------------------------------------------- /config/.config/kitty/themes/tokyonight.conf: -------------------------------------------------------------------------------- 1 | # vim:ft=kitty 2 | 3 | ## name: Tokyo Night 4 | ## license: MIT 5 | ## author: Folke Lemaitre 6 | ## upstream: https://github.com/folke/tokyonight.nvim/raw/main/extras/kitty/tokyonight_night.conf 7 | 8 | 9 | background #1a1b26 10 | foreground #c0caf5 11 | selection_background #283457 12 | selection_foreground #c0caf5 13 | url_color #73daca 14 | cursor #c0caf5 15 | cursor_text_color #1a1b26 16 | 17 | # Tabs 18 | active_tab_background #7aa2f7 19 | active_tab_foreground #16161e 20 | inactive_tab_background #292e42 21 | inactive_tab_foreground #545c7e 22 | #tab_bar_background #15161e 23 | 24 | # Windows 25 | active_border_color #7aa2f7 26 | inactive_border_color #292e42 27 | 28 | # normal 29 | color0 #15161e 30 | color1 #f7768e 31 | color2 #9ece6a 32 | color3 #e0af68 33 | color4 #7aa2f7 34 | color5 #bb9af7 35 | color6 #7dcfff 36 | color7 #a9b1d6 37 | 38 | # bright 39 | color8 #414868 40 | color9 #f7768e 41 | color10 #9ece6a 42 | color11 #e0af68 43 | color12 #7aa2f7 44 | color13 #bb9af7 45 | color14 #7dcfff 46 | color15 #c0caf5 47 | 48 | # extended colors 49 | color16 #ff9e64 50 | color17 #db4b4b 51 | -------------------------------------------------------------------------------- /config/.config/lazygit/config.yml: -------------------------------------------------------------------------------- 1 | # cSpell: disable 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/jesseduffield/lazygit/master/schema/config.json 3 | # this is the default config. 4 | gui: 5 | theme: 6 | activeBorderColor: 7 | - "#37f499" 8 | - bold 9 | inactiveBorderColor: 10 | - "#747BA2" 11 | searchingActiveBorderColor: 12 | - "#f265b5" 13 | - bold 14 | optionsTextColor: 15 | - blue 16 | selectedLineBgColor: 17 | - "#323449" 18 | inactiveViewSelectedLineBgColor: 19 | - bold 20 | cherryPickedCommitFgColor: 21 | - "#a48cf2" 22 | cherryPickedCommitBgColor: 23 | - cyan 24 | markedBaseCommitFgColor: 25 | - blue 26 | markedBaseCommitBgColor: 27 | - "#f1fc79" 28 | unstagedChangesColor: 29 | - "#f16c75" 30 | defaultFgColor: 31 | - "#ebfafa" 32 | -------------------------------------------------------------------------------- /config/.config/raycast/Raycast 2025-05-25 09.05.09.rayconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edheltzel/dotfiles/80c2a070d17ef7cf39b5e6761a24af88eecefdf2/config/.config/raycast/Raycast 2025-05-25 09.05.09.rayconfig -------------------------------------------------------------------------------- /config/.config/raycast/Raycast 2025-05-28 22.26.13.rayconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edheltzel/dotfiles/80c2a070d17ef7cf39b5e6761a24af88eecefdf2/config/.config/raycast/Raycast 2025-05-28 22.26.13.rayconfig -------------------------------------------------------------------------------- /config/.config/raycast/Raycast 2025-06-01 09.35.39.rayconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edheltzel/dotfiles/80c2a070d17ef7cf39b5e6761a24af88eecefdf2/config/.config/raycast/Raycast 2025-06-01 09.35.39.rayconfig -------------------------------------------------------------------------------- /config/.config/raycast/Raycast 2025-06-01 10.59.16.rayconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edheltzel/dotfiles/80c2a070d17ef7cf39b5e6761a24af88eecefdf2/config/.config/raycast/Raycast 2025-06-01 10.59.16.rayconfig -------------------------------------------------------------------------------- /config/.config/raycast/_enabled-commands/battery-info.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Required parameters: 4 | # @raycast.schemaVersion 1 5 | # @raycast.title Battery Info 6 | # @raycast.mode inline 7 | # @raycast.refreshTime 3m 8 | # @raycast.packageName System 9 | 10 | # 11 | # Optional parameters: 12 | # @raycast.icon 🔋 13 | # 14 | # Documentation: 15 | # @raycast.description Get Battery percentage, time remaining, charge status, charger wattage, total cycles etc. 16 | # @raycast.author Fahim Faisal 17 | # @raycast.authorURL https://github.com/i3p9 18 | 19 | BATT_PERCENTAGE=$(pmset -g batt | grep "InternalBattery-0" | awk '{print $3}') 20 | CHARGE_STATUS=$(pmset -g batt | grep "InternalBattery-0" | awk '{print $4}') 21 | TIME_REMAINING=$(pmset -g batt | grep "InternalBattery-0" | awk '{print $5}') 22 | CYCLE_COUNT=$(system_profiler SPPowerDataType | grep "Cycle Count" | awk '{print $3}') 23 | CHARGE_WATT=$(pmset -g ac | grep "Wattage" | awk '{print $3}') 24 | 25 | BATT=${BATT_PERCENTAGE%??} 26 | 27 | if [[ "$CHARGE_STATUS" == "charging;" ]]; then 28 | #Charging 29 | if [[ "$TIME_REMAINING" == "(no" ]]; then 30 | TO_SHOW="⚡${BATT}% - No Estimation Yet (Charging at ${CHARGE_WATT}) - ${CYCLE_COUNT} Cycles" 31 | echo $TO_SHOW 32 | else 33 | if [[ "$TIME_REMAINING" != "(no" ]]; then 34 | RE_MIN=${TIME_REMAINING##*:} 35 | RE_HOUR=${TIME_REMAINING%%:*} 36 | if [[ "$RE_HOUR" == "0" ]]; then 37 | TIME_REMAINING_FORMATTED="${RE_MIN}m" 38 | else 39 | TIME_REMAINING_FORMATTED="${RE_HOUR}h ${RE_MIN}m" 40 | fi 41 | fi 42 | TO_SHOW="⚡${BATT}% - ${TIME_REMAINING_FORMATTED} to Full (Charging at ${CHARGE_WATT}) - ${CYCLE_COUNT} Cycles" 43 | echo $TO_SHOW 44 | fi 45 | elif [[ "$CHARGE_STATUS" == "finishing" ]]; then 46 | #Finishing Charning, xx:xx time remaining 47 | TIME_REMAINING=$(pmset -g batt | grep "InternalBattery-0" | awk '{print $6}') 48 | RE_MIN=${TIME_REMAINING##*:} 49 | RE_HOUR=${TIME_REMAINING%%:*} 50 | if [[ "$RE_HOUR" == "0" ]]; then 51 | if [[ "$RE_MIN" == "00" ]]; then 52 | FULLY_CHARGED_FLAG="TRUE" 53 | fi 54 | TIME_REMAINING_FORMATTED="${RE_MIN}m" 55 | else 56 | TIME_REMAINING_FORMATTED="${RE_HOUR}h ${RE_MIN}m" 57 | fi 58 | 59 | if [[ "$TIME_REMAINING" == "(no" ]]; then 60 | TO_SHOW="⚡${BATT}% - No Estimation Yet (Charging at ${CHARGE_WATT}) - ${CYCLE_COUNT} Cycles" 61 | echo $TO_SHOW 62 | elif [[ "$FULLY_CHARGED_FLAG" = "TRUE" ]]; then 63 | TO_SHOW="⚡${BATT}% - Fully Charged (Power Connected at ${CHARGE_WATT}) - ${CYCLE_COUNT} Cycles" 64 | echo $TO_SHOW 65 | else 66 | TO_SHOW="⚡${BATT}% - ${TIME_REMAINING_FORMATTED} to Full (Charging at ${CHARGE_WATT}) - ${CYCLE_COUNT} Cycles" 67 | echo $TO_SHOW 68 | fi 69 | 70 | elif [[ "$CHARGE_STATUS" == "charged;" ]]; then 71 | #Fully charged 72 | TO_SHOW="⚡${BATT}% - Fully Charged (Power Connected at ${CHARGE_WATT}) - ${CYCLE_COUNT} Cycles" 73 | echo $TO_SHOW 74 | 75 | elif [[ "$CHARGE_STATUS" == "discharging;" ]]; then 76 | #Discharging 77 | if [[ "$TIME_REMAINING" == "(no" ]]; then 78 | TO_SHOW="${BATT}% - No Estimation Yet - ${CYCLE_COUNT} Cycles" 79 | echo $TO_SHOW 80 | else 81 | if [[ "$TIME_REMAINING" != "(no" ]]; then 82 | RE_MIN=${TIME_REMAINING##*:} 83 | RE_HOUR=${TIME_REMAINING%%:*} 84 | if [[ "$RE_HOUR" == "0" ]]; then 85 | TIME_REMAINING_FORMATTED="${RE_MIN}m" 86 | else 87 | TIME_REMAINING_FORMATTED="${RE_HOUR}h ${RE_MIN}m" 88 | fi 89 | fi 90 | TO_SHOW="${BATT}% - ${TIME_REMAINING_FORMATTED} Remaining - ${CYCLE_COUNT} Cycles" 91 | echo $TO_SHOW 92 | fi 93 | fi 94 | -------------------------------------------------------------------------------- /config/.config/raycast/_enabled-commands/disk-free.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Addapted from existing Alfred workflow 4 | # https://github.com/packal/repository/tree/master/com.ctn.diskfree 5 | 6 | # Required parameters: 7 | # @raycast.schemaVersion 1 8 | # @raycast.title Free Disk Space 9 | # @raycast.packageName Utils 10 | # @raycast.mode fullOutput 11 | 12 | # Optional parameters: 13 | # @raycast.packageName System 14 | # @raycast.icon 💾 15 | 16 | # Documentation: 17 | # @raycast.description Show free space in your mounted disks 18 | # @raycast.author Juan Luis Romero 19 | # @raycast.authorURL https://github.com/JuanluR8 20 | 21 | # EXAMPLE: 22 | # Macintosh HD: 95% (361 Gb) free 23 | # 15 Gb used of 500 Gb total 24 | 25 | GREEN='\033[1;32m' 26 | YELLOW='\033[1;33m' 27 | RED='\033[1;31m' 28 | NC='\033[0;m' 29 | 30 | while read -r item; do 31 | [[ $item == /dev/* ]] || continue 32 | 33 | items=($item) 34 | path="${items[@]:8}" 35 | [[ "$path" == "/" ]] && name="$(diskutil info ${items[0]} | sed -nE 's/^ *Volume Name: +([^ ].*) *$/\1/p')" || name="${path##*/}" 36 | 37 | size=${items[1]:0:$((${#items[1]}-1))} 38 | size_unit=${items[1]:$((${#items[1]}-1))}b 39 | 40 | used=${items[2]:0:$((${#items[2]}-1))} 41 | used_unit=${items[2]:$((${#items[2]}-1))}b 42 | 43 | free=${items[3]:0:$((${#items[3]}-1))} 44 | free_unit=${items[3]:$((${#items[3]}-1))}b 45 | 46 | perc=$((100-${items[4]:0:$((${#items[4]}-1))})) 47 | 48 | color=$NC 49 | 50 | if [[ perc -ge 70 ]]; then 51 | color=$GREEN 52 | elif [[ perc -lt 70 ]] && [[ perc -ge 30 ]]; then 53 | color=$YELLOW 54 | else 55 | color=$RED 56 | fi 57 | 58 | echo -e $name':' ${color} $perc'%' ${NC} '('$free $free_unit') free' 59 | echo $used $used_unit 'used of' $size $size_unit 'total' 60 | echo '' 61 | done < <(df -Hl) 62 | -------------------------------------------------------------------------------- /config/.config/raycast/_enabled-commands/dismiss-notifications.applescript: -------------------------------------------------------------------------------- 1 | #!/usr/bin/osascript 2 | 3 | # Required parameters: 4 | # @raycast.schemaVersion 1 5 | # @raycast.title Dismiss Notifications 6 | # @raycast.mode silent 7 | 8 | # Optional parameters: 9 | # @raycast.icon 🔕 10 | # @raycast.packageName System 11 | 12 | # Documentation: 13 | # @raycast.description Close all notification alerts staying on screen, e.g., Calendar notifications. 14 | # @raycast.author benyn 15 | # @raycast.authorURL github.com/benyn 16 | 17 | tell application "System Events" 18 | tell process "NotificationCenter" 19 | if not (window "Notification Center" exists) then return 20 | set alertGroups to groups of first UI element of first scroll area of first group of window "Notification Center" 21 | repeat with aGroup in alertGroups 22 | try 23 | perform (first action of aGroup whose name contains "Close" or name contains "Clear") 24 | on error errMsg 25 | log errMsg 26 | end try 27 | end repeat 28 | -- Show no message on success 29 | return "" 30 | end tell 31 | end tell 32 | -------------------------------------------------------------------------------- /config/.config/raycast/_enabled-commands/edit-dotfiles.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Required parameters: 4 | # @raycast.schemaVersion 1 5 | # @raycast.title Edit Dotfiles 6 | # @raycast.mode fullOutput 7 | 8 | # Optional parameters: 9 | # @raycast.icon 🔩 10 | # @raycast.packageName Developer Utils 11 | 12 | # Documentation: 13 | # @raycast.description Open Dotfiles in a new VSCdoe window 14 | # @raycast.author edheltzel 15 | # @raycast.authorURL https://raycast.com/edheltzel 16 | 17 | code -n ~/.dotfiles 18 | -------------------------------------------------------------------------------- /config/.config/raycast/_enabled-commands/empty-downloads.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Required parameters: 4 | # @raycast.schemaVersion 1 5 | # @raycast.title Empty Downloads 6 | # @raycast.mode inline 7 | # @raycast.packageName System 8 | # 9 | # Optional parameters: 10 | # @raycast.icon 🗑️ 11 | 12 | # Documentation: 13 | # @raycast.description Move all files in ~/Downloads to the Trash. 14 | # @raycast.author Ed Heltzel 15 | # @raycast.authorURL https://github.com/edheltzel 16 | 17 | mv ~/Downloads/* ~/.Trash/ 18 | -------------------------------------------------------------------------------- /config/.config/raycast/_enabled-commands/flush-dns.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Required parameters: 4 | # @raycast.schemaVersion 1 5 | # @raycast.title Flush DNS 6 | # @raycast.mode silent 7 | # @raycast.packageName System 8 | 9 | # Optional parameters: 10 | # @raycast.icon 💨 11 | # @raycast.argument1 { "type": "text", "placeholder": "Enter sudo password", "secure": true } 12 | # @raycast.packageName Flush DNS 13 | 14 | # Documentation: 15 | # @raycast.description Flush DNS cache using m-cli 16 | # @raycast.author Ed Heltzel 17 | # @raycast.authorURL https://github.com/edheltzel 18 | 19 | password="$1" 20 | m dns flush && echo "$password" 21 | echo "DNS cache flushed" 22 | -------------------------------------------------------------------------------- /config/.config/raycast/_enabled-commands/generate-wp-salt.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Required parameters: 4 | # @raycast.schemaVersion 1 5 | # @raycast.title Generate WP Salt 6 | # @raycast.mode compact 7 | 8 | # Optional parameters: 9 | # @raycast.icon images/wp-salt.png 10 | # @raycast.packageName WordPress Salt 11 | 12 | # Documentation: 13 | # @raycast.description Generate a fresh WP Salt 14 | # @raycast.author Ed Heltzel 15 | # @raycast.authorURL https://github.com/edheltzel 16 | 17 | curl https://api.wordpress.org/secret-key/1.1/salt/ | pbcopy 18 | echo "🧂 New WP Salt copied to clipboard" 19 | 20 | -------------------------------------------------------------------------------- /config/.config/raycast/_enabled-commands/images/justfocus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edheltzel/dotfiles/80c2a070d17ef7cf39b5e6761a24af88eecefdf2/config/.config/raycast/_enabled-commands/images/justfocus.png -------------------------------------------------------------------------------- /config/.config/raycast/_enabled-commands/images/kill-finder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edheltzel/dotfiles/80c2a070d17ef7cf39b5e6761a24af88eecefdf2/config/.config/raycast/_enabled-commands/images/kill-finder.png -------------------------------------------------------------------------------- /config/.config/raycast/_enabled-commands/images/kill-the-dock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edheltzel/dotfiles/80c2a070d17ef7cf39b5e6761a24af88eecefdf2/config/.config/raycast/_enabled-commands/images/kill-the-dock.png -------------------------------------------------------------------------------- /config/.config/raycast/_enabled-commands/images/wp-salt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edheltzel/dotfiles/80c2a070d17ef7cf39b5e6761a24af88eecefdf2/config/.config/raycast/_enabled-commands/images/wp-salt.png -------------------------------------------------------------------------------- /config/.config/raycast/_enabled-commands/images/zip-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edheltzel/dotfiles/80c2a070d17ef7cf39b5e6761a24af88eecefdf2/config/.config/raycast/_enabled-commands/images/zip-icon.png -------------------------------------------------------------------------------- /config/.config/raycast/_enabled-commands/justfocus.applescript: -------------------------------------------------------------------------------- 1 | #!/usr/bin/osascript 2 | 3 | # Required parameters: 4 | # @raycast.schemaVersion 1 5 | # @raycast.title JustFocus 6 | # @raycast.mode silent 7 | # @raycast.packageName Navigation 8 | 9 | # Optional parameters: 10 | # @raycast.icon images/justfocus.png 11 | # @raycast.argument1 { "type": "text", "placeholder": "go,sb,lb,stop" } 12 | 13 | # Documentation: 14 | # @raycast.author Jax0rz 15 | # @authorURL https://github.com/Jax0rz 16 | 17 | on run argv 18 | set q to item 1 of argv 19 | if ((q as string) is equal to "go") then 20 | tell application "JustFocus" 21 | launch 22 | start pomodoro 23 | end tell 24 | else if ((q as string) is equal to "sb") then 25 | tell application "JustFocus" 26 | launch 27 | short break 28 | end tell 29 | else if ((q as string) is equal to "lb") then 30 | tell application "JustFocus" 31 | launch 32 | long break 33 | end tell 34 | else if ((q as string) is equal to "stop") then 35 | tell application "JustFocus" 36 | stop 37 | end tell 38 | end if 39 | end run 40 | -------------------------------------------------------------------------------- /config/.config/raycast/_enabled-commands/kill-finder.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Required parameters: 4 | # @raycast.schemaVersion 1 5 | # @raycast.title Kill Finder 6 | # @raycast.mode silent 7 | 8 | # Optional parameters: 9 | # @raycast.icon images/kill-finder.png 10 | # @raycast.argument1 { "type": "text", "placeholder": "Enter sudo password", "secure": true } 11 | # @raycast.packageName Kill Finder 12 | 13 | # Documentation: 14 | # @raycast.description Restart Finder 15 | # @raycast.author Ed Heltzel 16 | # @raycast.authorURL https://github.com/edheltzel 17 | 18 | password="$1" 19 | 20 | killall Finder && echo "$password" | sudo -S killall -KILL appleeventsd 21 | 22 | echo "Finder has been restarted" 23 | 24 | -------------------------------------------------------------------------------- /config/.config/raycast/_enabled-commands/kill-the-dock.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Required parameters: 4 | # @raycast.schemaVersion 1 5 | # @raycast.title Kill the Dock 6 | # @raycast.mode silent 7 | 8 | # Optional parameters: 9 | # @raycast.icon images/kill-the-dock.png 10 | # @raycast.argument1 { "type": "text", "placeholder": "Enter sudo password", "secure": true } 11 | # @raycast.packageName Kill the Dock 12 | 13 | # Documentation: 14 | # @raycast.description Restart the dock 15 | # @raycast.author Ed Heltzel 16 | # @raycast.authorURL https://github.com/edheltzel 17 | 18 | password="$1" 19 | killall Dock && echo "$password" | sudo -S killall -KILL appleeventsd 20 | echo "Dock has been relaunched" 21 | 22 | -------------------------------------------------------------------------------- /config/.config/raycast/_enabled-commands/kill-window-server.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Required parameters: 4 | # @raycast.schemaVersion 1 5 | # @raycast.title Kill Window Server 6 | # @raycast.mode silent 7 | # @raycast.packageName System 8 | 9 | # Optional parameters: 10 | # @raycast.icon 🪟 11 | # @raycast.argument1 { "type": "text", "placeholder": "Enter sudo password", "secure": true } 12 | # @raycast.packageName Kill Window Server 13 | 14 | # Documentation: 15 | # @raycast.description Restart the WindowServer on macOS 16 | # @raycast.author Ed Heltzel 17 | # @raycast.authorURL https://github.com/edheltzel 18 | 19 | password="$1" 20 | sudo /usr/bin/killall -KILL -HUP WindowServer && echo "$password" 21 | echo "DONE" 22 | -------------------------------------------------------------------------------- /config/.config/raycast/_enabled-commands/run-topgrade.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Required parameters: 4 | # @raycast.schemaVersion 1 5 | # @raycast.title Run Topgrade 6 | # @raycast.mode fullOutput 7 | 8 | # Optional parameters: 9 | # @raycast.icon 🤖 10 | # @raycast.packageName Terminal Utilities 11 | # @raycast.needsConfirmation false 12 | 13 | # Documentation: 14 | # @raycast.description Update all packages 15 | # @raycast.author edheltzel 16 | # @raycast.authorURL https://raycast.com/edheltzel 17 | 18 | # Application Mode: this will open a kitty window and run topgrade command 19 | # open -a kitty 20 | # sleep 1 # Wait for terminal to open 21 | # osascript -e 'tell application "kitty" to activate' 22 | # osascript -e 'tell application "System Events" to keystroke "topgrade"' 23 | # osascript -e 'tell application "System Events" to key code 36' # Press Enter 24 | 25 | # Quick Access Mode: this will open a kitty window and run topgrade command 26 | osascript -e 'tell application "System Events" to keystroke "t" using {control down, option down, command down}' 27 | sleep 1 # Wait for quick access top open 28 | osascript -e 'tell application "System Events" to keystroke "topgrade"' # Run topgrade 29 | osascript -e 'tell application "System Events" to key code 36' # Press Enter 30 | -------------------------------------------------------------------------------- /config/.config/raycast/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "accesstoken" : "A-uDmIGCLgXVCyvNMQeTJGtaVXS0n9ofA6O2l6Bz-DU", 3 | "token" : "A-uDmIGCLgXVCyvNMQeTJGtaVXS0n9ofA6O2l6Bz-DU" 4 | } -------------------------------------------------------------------------------- /config/.config/sketchybar/bar.lua: -------------------------------------------------------------------------------- 1 | local settings = require("settings") 2 | 3 | -- Equivalent to the --bar domain 4 | sbar.bar({ 5 | topmost = "window", 6 | height = settings.bar.height, 7 | color = settings.bar.background, 8 | padding_right = settings.bar.padding.x, 9 | padding_left = settings.bar.padding.x, 10 | -- padding_top = settings.bar.padding.y, 11 | -- padding_bottom = settings.bar.padding.y, 12 | sticky = true, 13 | position = "bottom", 14 | shadow = false 15 | }) 16 | -------------------------------------------------------------------------------- /config/.config/sketchybar/colors.lua: -------------------------------------------------------------------------------- 1 | return { 2 | black = 0xff181819, 3 | white = 0xffe2e2e3, 4 | red = 0xfffc5d7c, 5 | green = 0xff9ed072, 6 | blue = 0xff76cce0, 7 | yellow = 0xffe7c664, 8 | orange = 0xfff39660, 9 | magenta = 0xffb39df3, 10 | grey = 0xff7f8490, 11 | transparent = 0x00000000, 12 | 13 | bar = { 14 | bg = 0x00000000, 15 | border = 0x00000000 16 | }, 17 | popup = { 18 | bg = 0xff21222c, 19 | border = 0x709071F4 20 | }, 21 | bg1 = 0xff323449, 22 | bg2 = 0xff323449, 23 | 24 | rainbow = {0xffff007c, 0xffc53b53, 0xffff757f, 0xff41a6b5, 0xff4fd6be, 0xffc3e88d, 0xffffc777, 0xff9d7cd8, 25 | 0xffff9e64, 0xffbb9af7, 0xff7dcfff, 0xff7aa2f7}, 26 | 27 | with_alpha = function(color, alpha) 28 | if alpha > 1.0 or alpha < 0.0 then 29 | return color 30 | end 31 | return (color & 0x00ffffff) | (math.floor(alpha * 255.0) << 24) 32 | end 33 | } 34 | -------------------------------------------------------------------------------- /config/.config/sketchybar/default.lua: -------------------------------------------------------------------------------- 1 | local settings = require("settings") 2 | local colors = require("colors") 3 | 4 | -- Equivalent to the --default domain 5 | sbar.default({ 6 | updates = "when_shown", 7 | icon = { 8 | font = { 9 | family = settings.font.text, 10 | style = settings.font.style_map["Bold"], 11 | size = 14.0 12 | }, 13 | color = colors.white, 14 | padding_left = settings.paddings, 15 | padding_right = settings.paddings, 16 | background = { 17 | image = { 18 | corner_radius = settings.items.corner_radius 19 | } 20 | } 21 | }, 22 | label = { 23 | font = { 24 | family = settings.font.text, 25 | style = settings.font.style_map["Semibold"], 26 | size = 13.0 27 | }, 28 | color = colors.white, 29 | padding_left = settings.paddings, 30 | padding_right = settings.paddings 31 | }, 32 | background = { 33 | height = settings.items.height, 34 | corner_radius = settings.items.corner_radius, 35 | border_width = 2, 36 | border_color = colors.bg2, 37 | image = { 38 | corner_radius = settings.items.corner_radius, 39 | border_color = colors.grey, 40 | border_width = 1 41 | } 42 | }, 43 | popup = { 44 | background = { 45 | border_width = 2, 46 | corner_radius = settings.items.corner_radius, 47 | border_color = colors.popup.border, 48 | color = colors.popup.bg, 49 | shadow = { 50 | drawing = true 51 | } 52 | }, 53 | blur_radius = 50 54 | }, 55 | padding_left = 5, 56 | padding_right = 5, 57 | scroll_texts = true 58 | }) 59 | -------------------------------------------------------------------------------- /config/.config/sketchybar/helpers/.gitignore: -------------------------------------------------------------------------------- 1 | bin 2 | -------------------------------------------------------------------------------- /config/.config/sketchybar/helpers/default_font.lua: -------------------------------------------------------------------------------- 1 | return { 2 | text = "SF Pro", -- Used for text 3 | numbers = "SF Mono", -- Used for numbers 4 | 5 | -- Unified font style map 6 | style_map = { 7 | ["Regular"] = "Regular", 8 | ["Semibold"] = "Semibold", 9 | ["Bold"] = "Bold", 10 | ["Heavy"] = "Heavy", 11 | ["Black"] = "Black", 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /config/.config/sketchybar/helpers/event_providers/cpu_load/cpu.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | struct cpu { 7 | host_t host; 8 | mach_msg_type_number_t count; 9 | host_cpu_load_info_data_t load; 10 | host_cpu_load_info_data_t prev_load; 11 | bool has_prev_load; 12 | 13 | int user_load; 14 | int sys_load; 15 | int total_load; 16 | }; 17 | 18 | static inline void cpu_init(struct cpu* cpu) { 19 | cpu->host = mach_host_self(); 20 | cpu->count = HOST_CPU_LOAD_INFO_COUNT; 21 | cpu->has_prev_load = false; 22 | } 23 | 24 | static inline void cpu_update(struct cpu* cpu) { 25 | kern_return_t error = host_statistics(cpu->host, 26 | HOST_CPU_LOAD_INFO, 27 | (host_info_t)&cpu->load, 28 | &cpu->count ); 29 | 30 | if (error != KERN_SUCCESS) { 31 | printf("Error: Could not read cpu host statistics.\n"); 32 | return; 33 | } 34 | 35 | if (cpu->has_prev_load) { 36 | uint32_t delta_user = cpu->load.cpu_ticks[CPU_STATE_USER] 37 | - cpu->prev_load.cpu_ticks[CPU_STATE_USER]; 38 | 39 | uint32_t delta_system = cpu->load.cpu_ticks[CPU_STATE_SYSTEM] 40 | - cpu->prev_load.cpu_ticks[CPU_STATE_SYSTEM]; 41 | 42 | uint32_t delta_idle = cpu->load.cpu_ticks[CPU_STATE_IDLE] 43 | - cpu->prev_load.cpu_ticks[CPU_STATE_IDLE]; 44 | 45 | cpu->user_load = (double)delta_user / (double)(delta_system 46 | + delta_user 47 | + delta_idle) * 100.0; 48 | 49 | cpu->sys_load = (double)delta_system / (double)(delta_system 50 | + delta_user 51 | + delta_idle) * 100.0; 52 | 53 | cpu->total_load = cpu->user_load + cpu->sys_load; 54 | } 55 | 56 | cpu->prev_load = cpu->load; 57 | cpu->has_prev_load = true; 58 | } 59 | -------------------------------------------------------------------------------- /config/.config/sketchybar/helpers/event_providers/cpu_load/cpu_load.c: -------------------------------------------------------------------------------- 1 | #include "cpu.h" 2 | #include "../sketchybar.h" 3 | 4 | int main (int argc, char** argv) { 5 | float update_freq; 6 | if (argc < 3 || (sscanf(argv[2], "%f", &update_freq) != 1)) { 7 | printf("Usage: %s \"\" \"\"\n", argv[0]); 8 | exit(1); 9 | } 10 | 11 | alarm(0); 12 | struct cpu cpu; 13 | cpu_init(&cpu); 14 | 15 | // Setup the event in sketchybar 16 | char event_message[512]; 17 | snprintf(event_message, 512, "--add event '%s'", argv[1]); 18 | sketchybar(event_message); 19 | 20 | char trigger_message[512]; 21 | for (;;) { 22 | // Acquire new info 23 | cpu_update(&cpu); 24 | 25 | // Prepare the event message 26 | snprintf(trigger_message, 27 | 512, 28 | "--trigger '%s' user_load='%d' sys_load='%02d' total_load='%02d'", 29 | argv[1], 30 | cpu.user_load, 31 | cpu.sys_load, 32 | cpu.total_load ); 33 | 34 | // Trigger the event 35 | sketchybar(trigger_message); 36 | 37 | // Wait 38 | usleep(update_freq * 1000000); 39 | } 40 | return 0; 41 | } 42 | -------------------------------------------------------------------------------- /config/.config/sketchybar/helpers/event_providers/cpu_load/makefile: -------------------------------------------------------------------------------- 1 | bin/cpu_load: cpu_load.c cpu.h ../sketchybar.h | bin 2 | clang -std=c99 -O3 $< -o $@ 3 | 4 | bin: 5 | mkdir bin 6 | -------------------------------------------------------------------------------- /config/.config/sketchybar/helpers/event_providers/makefile: -------------------------------------------------------------------------------- 1 | all: 2 | (cd cpu_load && $(MAKE)) 3 | (cd network_load && $(MAKE)) 4 | -------------------------------------------------------------------------------- /config/.config/sketchybar/helpers/event_providers/network_load/makefile: -------------------------------------------------------------------------------- 1 | bin/network_load: network_load.c network.h ../sketchybar.h | bin 2 | clang -std=c99 -O3 $< -o $@ 3 | 4 | bin: 5 | mkdir bin 6 | -------------------------------------------------------------------------------- /config/.config/sketchybar/helpers/event_providers/network_load/network.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | static char unit_str[3][6] = { { " Bps" }, { "KBps" }, { "MBps" }, }; 10 | 11 | enum unit { 12 | UNIT_BPS, 13 | UNIT_KBPS, 14 | UNIT_MBPS 15 | }; 16 | struct network { 17 | uint32_t row; 18 | struct ifmibdata data; 19 | struct timeval tv_nm1, tv_n, tv_delta; 20 | 21 | int up; 22 | int down; 23 | enum unit up_unit, down_unit; 24 | }; 25 | 26 | static inline void ifdata(uint32_t net_row, struct ifmibdata* data) { 27 | static size_t size = sizeof(struct ifmibdata); 28 | static int32_t data_option[] = { CTL_NET, PF_LINK, NETLINK_GENERIC, IFMIB_IFDATA, 0, IFDATA_GENERAL }; 29 | data_option[4] = net_row; 30 | sysctl(data_option, 6, data, &size, NULL, 0); 31 | } 32 | 33 | static inline void network_init(struct network* net, char* ifname) { 34 | memset(net, 0, sizeof(struct network)); 35 | 36 | static int count_option[] = { CTL_NET, PF_LINK, NETLINK_GENERIC, IFMIB_SYSTEM, IFMIB_IFCOUNT }; 37 | uint32_t interface_count = 0; 38 | size_t size = sizeof(uint32_t); 39 | sysctl(count_option, 5, &interface_count, &size, NULL, 0); 40 | 41 | for (int i = 0; i < interface_count; i++) { 42 | ifdata(i, &net->data); 43 | if (strcmp(net->data.ifmd_name, ifname) == 0) { 44 | net->row = i; 45 | break; 46 | } 47 | } 48 | } 49 | 50 | static inline void network_update(struct network* net) { 51 | gettimeofday(&net->tv_n, NULL); 52 | timersub(&net->tv_n, &net->tv_nm1, &net->tv_delta); 53 | net->tv_nm1 = net->tv_n; 54 | 55 | uint64_t ibytes_nm1 = net->data.ifmd_data.ifi_ibytes; 56 | uint64_t obytes_nm1 = net->data.ifmd_data.ifi_obytes; 57 | ifdata(net->row, &net->data); 58 | 59 | double time_scale = (net->tv_delta.tv_sec + 1e-6*net->tv_delta.tv_usec); 60 | if (time_scale < 1e-6 || time_scale > 1e2) return; 61 | double delta_ibytes = (double)(net->data.ifmd_data.ifi_ibytes - ibytes_nm1) 62 | / time_scale; 63 | double delta_obytes = (double)(net->data.ifmd_data.ifi_obytes - obytes_nm1) 64 | / time_scale; 65 | 66 | double exponent_ibytes = log10(delta_ibytes); 67 | double exponent_obytes = log10(delta_obytes); 68 | 69 | if (exponent_ibytes < 3) { 70 | net->down_unit = UNIT_BPS; 71 | net->down = delta_ibytes; 72 | } else if (exponent_ibytes < 6) { 73 | net->down_unit = UNIT_KBPS; 74 | net->down = delta_ibytes / 1000.0; 75 | } else if (exponent_ibytes < 9) { 76 | net->down_unit = UNIT_MBPS; 77 | net->down = delta_ibytes / 1000000.0; 78 | } 79 | 80 | if (exponent_obytes < 3) { 81 | net->up_unit = UNIT_BPS; 82 | net->up = delta_obytes; 83 | } else if (exponent_obytes < 6) { 84 | net->up_unit = UNIT_KBPS; 85 | net->up = delta_obytes / 1000.0; 86 | } else if (exponent_obytes < 9) { 87 | net->up_unit = UNIT_MBPS; 88 | net->up = delta_obytes / 1000000.0; 89 | } 90 | } 91 | -------------------------------------------------------------------------------- /config/.config/sketchybar/helpers/event_providers/network_load/network_load.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "network.h" 3 | #include "../sketchybar.h" 4 | 5 | int main (int argc, char** argv) { 6 | float update_freq; 7 | if (argc < 4 || (sscanf(argv[3], "%f", &update_freq) != 1)) { 8 | printf("Usage: %s \"\" \"\" \"\"\n", argv[0]); 9 | exit(1); 10 | } 11 | 12 | alarm(0); 13 | // Setup the event in sketchybar 14 | char event_message[512]; 15 | snprintf(event_message, 512, "--add event '%s'", argv[2]); 16 | sketchybar(event_message); 17 | 18 | struct network network; 19 | network_init(&network, argv[1]); 20 | char trigger_message[512]; 21 | for (;;) { 22 | // Acquire new info 23 | network_update(&network); 24 | 25 | // Prepare the event message 26 | snprintf(trigger_message, 27 | 512, 28 | "--trigger '%s' upload='%03d%s' download='%03d%s'", 29 | argv[2], 30 | network.up, 31 | unit_str[network.up_unit], 32 | network.down, 33 | unit_str[network.down_unit]); 34 | 35 | // Trigger the event 36 | sketchybar(trigger_message); 37 | 38 | // Wait 39 | usleep(update_freq * 1000000); 40 | } 41 | return 0; 42 | } 43 | -------------------------------------------------------------------------------- /config/.config/sketchybar/helpers/init.lua: -------------------------------------------------------------------------------- 1 | -- Add the sketchybar module to the package cpath 2 | package.cpath = package.cpath .. ";/Users/" .. os.getenv("USER") .. "/.local/share/sketchybar_lua/?.so" 3 | 4 | os.execute("(cd helpers && make)") 5 | -------------------------------------------------------------------------------- /config/.config/sketchybar/helpers/install: -------------------------------------------------------------------------------- 1 | # Packages 2 | brew install lua 3 | brew install switchaudio-osx 4 | brew install nowplaying-cli 5 | 6 | brew tap FelixKratz/formulae 7 | brew install sketchybar 8 | 9 | # Fonts 10 | brew install --cask sf-symbols 11 | brew install --cask homebrew/cask-fonts/font-sf-mono 12 | brew install --cask homebrew/cask-fonts/font-sf-pro 13 | 14 | curl -L https://github.com/kvndrsslr/sketchybar-app-font/releases/download/v2.0.5/sketchybar-app-font.ttf -o $HOME/Library/Fonts/sketchybar-app-font.ttf 15 | 16 | # SbarLua 17 | (git clone https://github.com/FelixKratz/SbarLua.git /tmp/SbarLua && cd /tmp/SbarLua/ && make install && rm -rf /tmp/SbarLua/) 18 | -------------------------------------------------------------------------------- /config/.config/sketchybar/helpers/install.sh: -------------------------------------------------------------------------------- 1 | # Packages 2 | brew install lua 3 | brew install switchaudio-osx 4 | brew install nowplaying-cli 5 | 6 | brew tap FelixKratz/formulae 7 | brew install sketchybar 8 | 9 | # Fonts 10 | brew install --cask sf-symbols 11 | brew install --cask homebrew/cask-fonts/font-sf-mono 12 | brew install --cask homebrew/cask-fonts/font-sf-pro 13 | 14 | curl -L https://github.com/kvndrsslr/sketchybar-app-font/releases/download/v2.0.5/sketchybar-app-font.ttf -o $HOME/Library/Fonts/sketchybar-app-font.ttf 15 | 16 | # SbarLua 17 | (git clone https://github.com/FelixKratz/SbarLua.git /tmp/SbarLua && cd /tmp/SbarLua/ && make install && rm -rf /tmp/SbarLua/) 18 | -------------------------------------------------------------------------------- /config/.config/sketchybar/helpers/makefile: -------------------------------------------------------------------------------- 1 | all: 2 | (cd event_providers && $(MAKE)) >/dev/null 3 | (cd menus && $(MAKE)) >/dev/null 4 | -------------------------------------------------------------------------------- /config/.config/sketchybar/helpers/menus/makefile: -------------------------------------------------------------------------------- 1 | bin/menus: menus.c | bin 2 | clang -std=c99 -O3 -F/System/Library/PrivateFrameworks/ -framework Carbon -framework SkyLight $< -o $@ 3 | 4 | bin: 5 | mkdir bin 6 | -------------------------------------------------------------------------------- /config/.config/sketchybar/icons.lua: -------------------------------------------------------------------------------- 1 | return { 2 | plus = "􀅼", 3 | loading = "􀖇", 4 | apple = "􀣺", 5 | rebel = "", 6 | empire = "", 7 | gear = "􀍟", 8 | cpu = "􀫥", 9 | nuke = "", 10 | clipboard = "􀉄", 11 | 12 | switch = { 13 | on = "􁏮", 14 | off = "􁏯" 15 | }, 16 | volume = { 17 | _100 = "􀊩", 18 | _66 = "􀊧", 19 | _33 = "􀊥", 20 | _10 = "􀊡", 21 | _0 = "􀊣" 22 | }, 23 | battery = { 24 | _100 = "􀛨", 25 | _75 = "􀺸", 26 | _50 = "􀺶", 27 | _25 = "􀛩", 28 | _0 = "􀛪", 29 | charging = "􀢋" 30 | }, 31 | wifi = { 32 | upload = "􀄨", 33 | download = "􀄩", 34 | connected = "􀙇", 35 | disconnected = "􀙈", 36 | router = "􁓤" 37 | }, 38 | media = { 39 | back = "􀊊", 40 | forward = "􀊌", 41 | play_pause = "􀊈" 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /config/.config/sketchybar/init.lua: -------------------------------------------------------------------------------- 1 | -- Require the sketchybar module 2 | sbar = require("sketchybar") 3 | 4 | -- Set the bar name, if you are using another bar instance than sketchybar 5 | -- sbar.set_bar_name("bottom_bar") 6 | 7 | -- Bundle the entire initial configuration into a single message to sketchybar 8 | sbar.begin_config() 9 | require("bar") 10 | require("default") 11 | -- require("test") 12 | require("items") 13 | sbar.end_config() 14 | 15 | -- Run the event loop of the sketchybar module (without this there will be no 16 | -- callback functions executed in the lua module) 17 | sbar.event_loop() 18 | -------------------------------------------------------------------------------- /config/.config/sketchybar/items/aerospace.lua: -------------------------------------------------------------------------------- 1 | function dump(o) 2 | if type(o) == 'table' then 3 | local s = '{ ' 4 | for k, v in pairs(o) do 5 | if type(k) ~= 'number' then 6 | k = '"' .. k .. '"' 7 | end 8 | s = s .. '[' .. k .. '] = ' .. dump(v) .. ',' 9 | end 10 | return s .. '} ' 11 | else 12 | return tostring(o) 13 | end 14 | end 15 | 16 | function explode(div, str) 17 | if (div == '') then 18 | return false 19 | end 20 | local pos, arr = 0, {} 21 | for st, sp in function() 22 | return string.find(str, div, pos, true) 23 | end do 24 | table.insert(arr, string.sub(str, pos, st - 1)) 25 | pos = sp + 1 26 | end 27 | table.insert(arr, string.sub(str, pos)) 28 | return arr 29 | end 30 | 31 | function parse_string_to_table(s) 32 | local result = {} 33 | for line in s:gmatch("([^\n]+)") do 34 | table.insert(result, line) 35 | end 36 | return result 37 | end 38 | 39 | function get_workspaces() 40 | local file = io.popen("aerospace list-workspaces --all") 41 | local result = file:read("*a") 42 | file:close() 43 | 44 | return parse_string_to_table(result) 45 | end 46 | 47 | function get_current_workspace() 48 | local file = io.popen("aerospace list-workspaces --focused") 49 | local result = file:read("*a") 50 | file:close() 51 | 52 | return parse_string_to_table(result)[1] 53 | end 54 | 55 | function get_monitors() 56 | local file = io.popen("aerospace list-monitors | awk '{print $1}'") 57 | local result = file:read("*a") 58 | file:close() 59 | 60 | return parse_string_to_table(result) 61 | end 62 | 63 | function get_workspaces_on_monitor(monitor) 64 | local file = io.popen("aerospace list-workspaces --monitor " .. monitor) 65 | local result = file:read("*a") 66 | file:close() 67 | 68 | return parse_string_to_table(result, "\n") 69 | end 70 | 71 | function get_visible_workspace_on_monitor(monitor) 72 | local file = io.popen("aerospace list-workspaces --monitor " .. monitor .. " --visible") 73 | local result = file:read("*a") 74 | file:close() 75 | 76 | return parse_string_to_table(result)[1] 77 | end 78 | 79 | function is_workspace_selected(workspace) 80 | local available_monitors = get_monitors() 81 | -- print("Checking: " .. workspace .. " Available monitors: " .. dump(available_monitors)) 82 | for _, monitor in ipairs(available_monitors) do 83 | local visible_workspace = get_visible_workspace_on_monitor(monitor) 84 | -- print('types' .. type(visible_workspace) .. ' - ' .. type(workspace)) 85 | -- print("Checking: " .. workspace .. " On Monitor: " .. monitor .. " Result: " .. visible_workspace .. ' - ', (visible_workspace == workspace)) 86 | if visible_workspace == workspace then 87 | return true 88 | end 89 | end 90 | 91 | return false 92 | end 93 | -------------------------------------------------------------------------------- /config/.config/sketchybar/items/apple.lua: -------------------------------------------------------------------------------- 1 | local colors = require("colors") 2 | local icons = require("icons") 3 | local settings = require("settings") 4 | 5 | local apple = sbar.add("item", { 6 | icon = { 7 | font = { 8 | size = 22.0 9 | }, 10 | string = settings.modes.main.icon, 11 | padding_right = 8, 12 | padding_left = 8, 13 | highlight_color = settings.modes.service.color 14 | }, 15 | label = { 16 | drawing = false 17 | }, 18 | background = { 19 | color = settings.items.colors.background, 20 | border_color = settings.modes.main.color, 21 | border_width = 1 22 | }, 23 | 24 | padding_left = 1, 25 | padding_right = 1, 26 | click_script = "$CONFIG_DIR/helpers/menus/bin/menus -s 0" 27 | }) 28 | 29 | apple:subscribe("aerospace_enter_service_mode", function(_) 30 | sbar.animate("tanh", 10, function() 31 | apple:set({ 32 | background = { 33 | border_color = settings.modes.service.color, 34 | border_width = 3 35 | }, 36 | icon = { 37 | highlight = true, 38 | string = settings.modes.service.icon 39 | } 40 | }) 41 | 42 | end) 43 | end) 44 | 45 | apple:subscribe("aerospace_leave_service_mode", function(_) 46 | sbar.animate("tanh", 10, function() 47 | apple:set({ 48 | background = { 49 | border_color = settings.modes.main.color, 50 | border_width = 1 51 | }, 52 | icon = { 53 | highlight = false, 54 | string = settings.modes.main.icon 55 | } 56 | }) 57 | end) 58 | end) 59 | 60 | -- Padding to the right of the main button 61 | sbar.add("item", { 62 | width = 7 63 | }) 64 | -------------------------------------------------------------------------------- /config/.config/sketchybar/items/calendar.lua: -------------------------------------------------------------------------------- 1 | local settings = require("settings") 2 | local colors = require("colors") 3 | 4 | -- Padding item required because of bracket 5 | sbar.add("item", { 6 | position = "right", 7 | width = settings.group_paddings 8 | }) 9 | 10 | local cal = sbar.add("item", { 11 | icon = { 12 | color = colors.white, 13 | padding_left = 8, 14 | font = { 15 | size = 22.0 16 | } 17 | }, 18 | label = { 19 | color = colors.white, 20 | padding_right = 8, 21 | width = 95, 22 | align = "right", 23 | font = { 24 | family = settings.icons 25 | } 26 | }, 27 | position = "right", 28 | update_freq = 30, 29 | padding_left = 1, 30 | padding_right = 1, 31 | background = { 32 | color = colors.bg2, 33 | border_color = colors.rainbow[#colors.rainbow], 34 | border_width = 1 35 | } 36 | }) 37 | 38 | -- Double border for calendar using a single item bracket 39 | -- sbar.add("bracket", { cal.name }, { 40 | -- background = { 41 | -- color = colors.transparent, 42 | -- height = 30, 43 | -- border_color = colors.grey, 44 | -- } 45 | -- }) 46 | 47 | -- Padding item required because of bracket 48 | sbar.add("item", { 49 | position = "right", 50 | width = settings.group_paddings 51 | }) 52 | 53 | cal:subscribe({ "mouse.clicked", "forced", "routine", "system_woke" }, function(env) 54 | cal:set({ 55 | icon = "", 56 | label = os.date("%m/%d %I:%M%p") 57 | }) 58 | 59 | if env.SENDER == "mouse.clicked" then 60 | sbar.exec("open -a 'Calendar'") 61 | end 62 | end) 63 | -------------------------------------------------------------------------------- /config/.config/sketchybar/items/front_app.lua: -------------------------------------------------------------------------------- 1 | local colors = require("colors") 2 | local settings = require("settings") 3 | 4 | local front_app = sbar.add("item", "front_app", { 5 | display = "active", 6 | icon = { 7 | drawing = false 8 | }, 9 | label = { 10 | font = { 11 | style = settings.font.style_map["Bold"], 12 | size = 13.0 13 | } 14 | }, 15 | updates = true 16 | }) 17 | 18 | front_app:subscribe("front_app_switched", function(env) 19 | front_app:set({ 20 | label = { 21 | string = env.INFO 22 | } 23 | }) 24 | end) 25 | 26 | front_app:subscribe("mouse.clicked", function(env) 27 | sbar.trigger("swap_menus_and_spaces") 28 | end) 29 | -------------------------------------------------------------------------------- /config/.config/sketchybar/items/init.lua: -------------------------------------------------------------------------------- 1 | require("items.aerospace") 2 | -- require("items.apple") 3 | require("items.menus") 4 | require("items.spaces") 5 | require("items.front_app") 6 | -- require("items.calendar") 7 | require("items.widgets") 8 | require("items.media") 9 | -------------------------------------------------------------------------------- /config/.config/sketchybar/items/menus.lua: -------------------------------------------------------------------------------- 1 | local colors = require("colors") 2 | local icons = require("icons") 3 | local settings = require("settings") 4 | 5 | local menu_watcher = sbar.add("item", { 6 | drawing = false, 7 | updates = false 8 | }) 9 | local space_menu_swap = sbar.add("item", { 10 | drawing = false, 11 | updates = true 12 | }) 13 | sbar.add("event", "swap_menus_and_spaces") 14 | 15 | local max_items = 15 16 | local menu_items = {} 17 | for i = 1, max_items, 1 do 18 | local menu = sbar.add("item", "menu." .. i, { 19 | padding_left = settings.paddings, 20 | padding_right = settings.paddings, 21 | drawing = false, 22 | icon = { 23 | drawing = false 24 | }, 25 | label = { 26 | font = { 27 | style = settings.font.style_map[i == 1 and "Heavy" or "Semibold"] 28 | }, 29 | padding_left = 6, 30 | padding_right = 6 31 | }, 32 | click_script = "$CONFIG_DIR/helpers/menus/bin/menus -s " .. i 33 | }) 34 | 35 | menu_items[i] = menu 36 | end 37 | 38 | sbar.add("bracket", {'/menu\\..*/'}, { 39 | background = { 40 | color = colors.bg1 41 | } 42 | }) 43 | 44 | local menu_padding = sbar.add("item", "menu.padding", { 45 | drawing = false, 46 | width = 5 47 | }) 48 | 49 | local function update_menus(env) 50 | sbar.exec("$CONFIG_DIR/helpers/menus/bin/menus -l", function(menus) 51 | sbar.set('/menu\\..*/', { 52 | drawing = false 53 | }) 54 | menu_padding:set({ 55 | drawing = true 56 | }) 57 | id = 1 58 | for menu in string.gmatch(menus, '[^\r\n]+') do 59 | if id < max_items then 60 | menu_items[id]:set({ 61 | label = menu, 62 | drawing = true 63 | }) 64 | else 65 | break 66 | end 67 | id = id + 1 68 | end 69 | end) 70 | end 71 | 72 | menu_watcher:subscribe("front_app_switched", update_menus) 73 | 74 | space_menu_swap:subscribe("swap_menus_and_spaces", function(env) 75 | local drawing = menu_items[1]:query().geometry.drawing == "on" 76 | if drawing then 77 | menu_watcher:set({ 78 | updates = false 79 | }) 80 | sbar.set("/menu\\..*/", { 81 | drawing = false 82 | }) 83 | sbar.set("/item\\..*/", { 84 | drawing = true 85 | }) 86 | sbar.set("front_app", { 87 | drawing = true 88 | }) 89 | else 90 | menu_watcher:set({ 91 | updates = true 92 | }) 93 | sbar.set("/item\\..*/", { 94 | drawing = false 95 | }) 96 | sbar.set("front_app", { 97 | drawing = false 98 | }) 99 | update_menus() 100 | end 101 | end) 102 | 103 | return menu_watcher 104 | -------------------------------------------------------------------------------- /config/.config/sketchybar/items/widgets/battery.lua: -------------------------------------------------------------------------------- 1 | local icons = require("icons") 2 | local colors = require("colors") 3 | local settings = require("settings") 4 | 5 | local battery = sbar.add("item", "widgets.battery", { 6 | position = "right", 7 | icon = { 8 | font = { 9 | style = settings.font.style_map["Regular"], 10 | size = 19.0 11 | } 12 | }, 13 | label = { 14 | font = { 15 | family = settings.font.numbers 16 | } 17 | }, 18 | update_freq = 180, 19 | popup = { 20 | align = "center" 21 | } 22 | }) 23 | 24 | local remaining_time = sbar.add("item", { 25 | position = "popup." .. battery.name, 26 | icon = { 27 | string = "Time remaining:", 28 | width = 100, 29 | align = "left" 30 | }, 31 | label = { 32 | string = "??:??h", 33 | width = 100, 34 | align = "right" 35 | } 36 | }) 37 | 38 | battery:subscribe({"routine", "power_source_change", "system_woke"}, function() 39 | sbar.exec("pmset -g batt", function(batt_info) 40 | local icon = "!" 41 | local label = "?" 42 | 43 | local found, _, charge = batt_info:find("(%d+)%%") 44 | if found then 45 | charge = tonumber(charge) 46 | label = charge .. "%" 47 | end 48 | 49 | local color = colors.green 50 | local charging, _, _ = batt_info:find("AC Power") 51 | 52 | if charging then 53 | icon = icons.battery.charging 54 | else 55 | if found and charge > 80 then 56 | icon = icons.battery._100 57 | elseif found and charge > 60 then 58 | icon = icons.battery._75 59 | elseif found and charge > 40 then 60 | icon = icons.battery._50 61 | elseif found and charge > 20 then 62 | icon = icons.battery._25 63 | color = colors.orange 64 | else 65 | icon = icons.battery._0 66 | color = colors.red 67 | end 68 | end 69 | 70 | local lead = "" 71 | if found and charge < 10 then 72 | lead = "0" 73 | end 74 | 75 | battery:set({ 76 | icon = { 77 | string = icon, 78 | color = color 79 | }, 80 | label = { 81 | string = lead .. label 82 | } 83 | }) 84 | end) 85 | end) 86 | 87 | battery:subscribe("mouse.clicked", function(env) 88 | local drawing = battery:query().popup.drawing 89 | battery:set({ 90 | popup = { 91 | drawing = "toggle" 92 | } 93 | }) 94 | 95 | if drawing == "off" then 96 | sbar.exec("pmset -g batt", function(batt_info) 97 | local found, _, remaining = batt_info:find(" (%d+:%d+) remaining") 98 | local label = found and remaining .. "h" or "No estimate" 99 | remaining_time:set({ 100 | label = label 101 | }) 102 | end) 103 | end 104 | end) 105 | 106 | sbar.add("bracket", "widgets.battery.bracket", {battery.name}, { 107 | background = { 108 | color = colors.bg1, 109 | border_color = colors.rainbow[#colors.rainbow - 2], 110 | border_width = 1 111 | } 112 | }) 113 | 114 | sbar.add("item", "widgets.battery.padding", { 115 | position = "right", 116 | width = settings.group_paddings 117 | }) 118 | -------------------------------------------------------------------------------- /config/.config/sketchybar/items/widgets/cpu.lua: -------------------------------------------------------------------------------- 1 | local icons = require("icons") 2 | local colors = require("colors") 3 | local settings = require("settings") 4 | 5 | -- Execute the event provider binary which provides the event "cpu_update" for 6 | -- the cpu load data, which is fired every 2.0 seconds. 7 | sbar.exec("killall cpu_load >/dev/null; $CONFIG_DIR/helpers/event_providers/cpu_load/bin/cpu_load cpu_update 2.0") 8 | 9 | local cpu = sbar.add("graph", "widgets.cpu", 42, { 10 | position = "right", 11 | graph = { 12 | color = colors.blue 13 | }, 14 | background = { 15 | height = 22, 16 | color = { 17 | alpha = 0 18 | }, 19 | border_color = { 20 | alpha = 0 21 | }, 22 | drawing = true 23 | }, 24 | icon = { 25 | string = icons.cpu 26 | }, 27 | label = { 28 | string = "cpu ??%", 29 | font = { 30 | family = settings.font.numbers, 31 | style = settings.font.style_map["Bold"], 32 | size = 9.0 33 | }, 34 | align = "right", 35 | padding_right = 0, 36 | width = 0, 37 | y_offset = 4 38 | }, 39 | padding_right = settings.paddings + 6 40 | }) 41 | 42 | cpu:subscribe("cpu_update", function(env) 43 | -- Also available: env.user_load, env.sys_load 44 | local load = tonumber(env.total_load) 45 | cpu:push({load / 100.}) 46 | 47 | local color = colors.blue 48 | if load > 30 then 49 | if load < 60 then 50 | color = colors.yellow 51 | elseif load < 80 then 52 | color = colors.orange 53 | else 54 | color = colors.red 55 | end 56 | end 57 | 58 | cpu:set({ 59 | graph = { 60 | color = color 61 | }, 62 | label = "cpu " .. env.total_load .. "%" 63 | }) 64 | end) 65 | 66 | cpu:subscribe("mouse.clicked", function(env) 67 | sbar.exec("open -a 'Activity Monitor'") 68 | end) 69 | 70 | -- Background around the cpu item 71 | sbar.add("bracket", "widgets.cpu.bracket", {cpu.name}, { 72 | background = { 73 | color = colors.bg1, 74 | border_color = colors.rainbow[#colors.rainbow - 5], 75 | border_width = 1 76 | } 77 | }) 78 | 79 | -- Background around the cpu item 80 | sbar.add("item", "widgets.cpu.padding", { 81 | position = "right", 82 | width = settings.group_paddings 83 | }) 84 | -------------------------------------------------------------------------------- /config/.config/sketchybar/items/widgets/init.lua: -------------------------------------------------------------------------------- 1 | -- require("items.widgets.battery") 2 | require("items.widgets.volume") 3 | require("items.widgets.wifi") 4 | require("items.widgets.cpu") 5 | -------------------------------------------------------------------------------- /config/.config/sketchybar/settings.lua: -------------------------------------------------------------------------------- 1 | local colors = require("colors") 2 | local icons = require("icons") 3 | 4 | return { 5 | paddings = 3, 6 | group_paddings = 5, 7 | modes = { 8 | main = { 9 | icon = icons.apple, 10 | color = colors.rainbow[1] 11 | }, 12 | service = { 13 | icon = icons.nuke, 14 | color = 0xffff9e64 15 | } 16 | }, 17 | bar = { 18 | height = 36, 19 | padding = { 20 | x = 10, 21 | xx = 30, 22 | y = 0, 23 | }, 24 | background = colors.bar.bg 25 | }, 26 | items = { 27 | height = 26, 28 | gap = 5, 29 | padding = { 30 | right = 16, 31 | left = 12, 32 | top = 0, 33 | bottom = 0 34 | }, 35 | default_color = function(workspace) 36 | return colors.rainbow[workspace + 1] 37 | end, 38 | highlight_color = function(workspace) 39 | return colors.yellow 40 | end, 41 | colors = { 42 | background = colors.bg1 43 | }, 44 | corner_radius = 6 45 | }, 46 | 47 | icons = "sketchybar-app-font:Regular:16.0", -- alternatively available: NerdFont 48 | 49 | font = { 50 | text = "FiraCode Nerd Font Mono", -- Used for text 51 | numbers = "FiraCode Nerd Font Mono", -- Used for numbers 52 | style_map = { 53 | ["Regular"] = "Regular", 54 | ["Semibold"] = "Medium", 55 | ["Bold"] = "SemiBold", 56 | ["Heavy"] = "Bold", 57 | ["Black"] = "ExtraBold" 58 | } 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /config/.config/sketchybar/sketchybarrc: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env lua 2 | 3 | -- Load the sketchybar-package and prepare the helper binaries 4 | require("helpers") 5 | require("init") 6 | -------------------------------------------------------------------------------- /config/.config/starship.toml: -------------------------------------------------------------------------------- 1 | format = "$all" 2 | # right_format = "$cmd_duration" 3 | 4 | command_timeout = 2000 5 | 6 | [battery] 7 | disabled = true 8 | 9 | ## start character ## 10 | [character] 11 | success_symbol = '[](bold #9ECE6A)' 12 | error_symbol = '[](bold #F7768E)' 13 | 14 | [shell] 15 | fish_indicator = "" 16 | unknown_indicator = "?" 17 | style = "bold fg:white" 18 | disabled = false 19 | ## end character ## 20 | 21 | ## start prompt ## 22 | [directory] 23 | format = "[󱐋](#7DCFFF)[$path]($style)[$read_only]($read_only_style) " 24 | read_only = " " 25 | truncation_symbol = "…/" 26 | 27 | [git_branch] 28 | style = "#F141A8" 29 | symbol = " " 30 | format = "on [$symbol$branch(:$remote_branch)]($style)[ ≡]($style) " 31 | 32 | [git_metrics] 33 | disabled = false 34 | added_style = "#9ECE6A" 35 | deleted_style = "#F7768E" 36 | format = '[+$added]($added_style)/[-$deleted]($deleted_style) ' 37 | 38 | [git_status] 39 | style = "white" 40 | format = "([$all_status$ahead_behind]($style) )" 41 | conflicted = "[ ](fg:red bg:bright-black)" 42 | ahead = "[ ×${count} ](white)" 43 | behind = "[ ×${count} ](white)" 44 | diverged = "[ ×${ahead_count} ×${behind_count} ](bg:bright-black)" 45 | untracked = "️[ ×${count} ](#F69F4D)" 46 | stashed = " " 47 | modified = "[ ×${count} ](#E0AF68)" 48 | staged = "[ ×${count} ](bright-green)" 49 | deleted = "[ ×${count} ](bright-red)" 50 | renamed = "[ ×${count} ](fg:214)" 51 | 52 | [cmd_duration] 53 | disabled = false 54 | min_time = 1 55 | format = "[󰔛 $duration]($style)" 56 | style = "#CFC9C2" 57 | ## end prompt ## 58 | 59 | ## start custom symbols ## 60 | [package] 61 | symbol = "󰏗 " 62 | 63 | [aws] 64 | style = "#FFA400" 65 | format = "[$symbol($version )]($style)" 66 | symbol = " " 67 | 68 | [deno] 69 | format = "[$symbol($version )]($style)" 70 | style = "bright-black" 71 | symbol = "󱍢 " 72 | 73 | [nodejs] 74 | format = "[$symbol($version )]($style)" 75 | symbol = "󰎙 " 76 | detect_extensions = [] 77 | 78 | [bun] 79 | format = "[$symbol($version )]($style)" 80 | style = "#CCBEA7" 81 | symbol = " " 82 | detect_extensions = [] 83 | 84 | [golang] 85 | style = "#7FD5EA" 86 | format = "[$symbol($version )]($style)" 87 | symbol = " " 88 | 89 | [lua] 90 | style = "blue" 91 | format = "[$symbol($version )]($style)" 92 | symbol = " " 93 | 94 | [php] 95 | style = "#4063DB" 96 | format = "[$symbol($version )]($style)" 97 | symbol = " " 98 | 99 | [python] 100 | style = "#906cff" 101 | format = "[$symbol($version )]($style)" 102 | symbol = " " 103 | 104 | [ruby] 105 | style = "#CF043D" 106 | format = "[$symbol($version )]($style)" 107 | symbol = "󰴭 " 108 | 109 | [rust] 110 | style = "#99908A" 111 | format = "[$symbol($version )]($style)" 112 | symbol = " " 113 | ## end custom symbols ## 114 | -------------------------------------------------------------------------------- /config/.config/topgrade.toml: -------------------------------------------------------------------------------- 1 | [include] 2 | # paths = ["/etc/topgrade.toml"] 3 | 4 | [misc] 5 | pre_sudo = false 6 | 7 | # Disable specific steps - same options as the command line flag 8 | disable = [ 9 | "system", 10 | "vscode", 11 | "containers", 12 | "bun_packages", 13 | "ruby_gems", 14 | "tlmgr", 15 | ] 16 | 17 | # Ignore failures for these steps 18 | ignore_failures = ["git_repos", "pnpm", "yarn", "bun_packages"] 19 | 20 | # Don't ask for confirmations (no default value) 21 | assume_yes = true 22 | 23 | # Do not ask to retry failed steps (default: false) 24 | no_retry = true 25 | 26 | # Cleanup temporary or old files (default: false) 27 | cleanup = true 28 | 29 | # Skip sending a notification at the end of a run (default: false) 30 | skip_notify = true 31 | 32 | ######## Commands to run BEFORE anything ######## 33 | # [pre_commands] 34 | 35 | ######### Commands to run AFTER anything ######## 36 | [post_commands] 37 | "Brew - Cleanup" = "brew cleanup --prune=all" 38 | #"Node - Corepack Enable Pnpm" = "corepack enable && echo corepack pnpm: $(tput bold)$(tput setaf 2)enabled$(tput sgr0)" 39 | #"Node - Corepack Prepare pnpm" = "corepack prepare pnpm@latest --activate" 40 | #"Node - Pnpm Self Update" = "pnpm update -g --latest" 41 | 42 | # Custom commands 43 | [commands] 44 | [python] 45 | [composer] 46 | self_update = true 47 | [brew] 48 | greedy_cask = true 49 | autoremove = true 50 | [linux] 51 | [git] 52 | # Git repositories that you want to pull and push 53 | repos = ["~/.config/nvim"] 54 | [windows] 55 | # Causes Topgrade to rename itself during the run to allow package managers 56 | # to upgrade it. Use this only if you installed Topgrade by using a package 57 | # manager such as Scoop or Cargo 58 | self_rename = true 59 | [npm] 60 | [yarn] 61 | [vim] 62 | [firmware] 63 | [vagrant] 64 | [flatpak] 65 | [distrobox] 66 | -------------------------------------------------------------------------------- /config/.config/wezterm/colors/eldritch.toml: -------------------------------------------------------------------------------- 1 | [colors] 2 | ansi = [ 3 | '#212337', 4 | '#f16c75', 5 | '#37f499', 6 | '#f7c67f', 7 | '#a48cf2', 8 | '#f265b5', 9 | '#04d1f9', 10 | '#ebfafa', 11 | ] 12 | background = '#212337' 13 | brights = [ 14 | '#323449', 15 | '#f9515d', 16 | '#37f499', 17 | '#e9f941', 18 | '#9071f4', 19 | '#f265b5', 20 | '#66e4fd', 21 | '#FFFFFF', 22 | ] 23 | compose_cursor = '#f7c67f' 24 | cursor_bg = '#37f499' 25 | cursor_border = '#04d1f9' 26 | cursor_fg = '#212337' 27 | foreground = '#ebfafa' 28 | scrollbar_thumb = '#37f499' 29 | selection_bg = 'rgba(26.666668% 27.843138% 35.294117% 75%)' 30 | selection_fg = 'rgba(0% 0% 0% 0%)' 31 | split = '#a48cf2' 32 | 33 | [colors.indexed] 34 | 35 | [colors.tab_bar] 36 | background = '#212337' 37 | 38 | [colors.tab_bar.active_tab] 39 | bg_color = '#37f499' 40 | fg_color = '#212337' 41 | intensity = 'Normal' 42 | italic = false 43 | strikethrough = false 44 | underline = 'None' 45 | 46 | [colors.tab_bar.inactive_tab] 47 | bg_color = '#212337' 48 | fg_color = '#04d1f9' 49 | intensity = 'Normal' 50 | italic = false 51 | strikethrough = false 52 | underline = 'None' 53 | 54 | [colors.tab_bar.inactive_tab_hover] 55 | bg_color = '#37f499' 56 | fg_color = '#212337' 57 | intensity = 'Normal' 58 | italic = true 59 | strikethrough = false 60 | underline = 'None' 61 | 62 | [colors.tab_bar.new_tab] 63 | bg_color = '#212337' 64 | fg_color = '#ebfafa' 65 | intensity = 'Normal' 66 | italic = false 67 | strikethrough = false 68 | underline = 'None' 69 | 70 | [colors.tab_bar.new_tab_hover] 71 | bg_color = '#37f499' 72 | fg_color = '#ebfafa' 73 | intensity = 'Normal' 74 | italic = true 75 | strikethrough = false 76 | underline = 'None' 77 | 78 | [metadata] 79 | aliases = [] 80 | author = 'jacobrreed' 81 | name = 'Eldritch' 82 | origin_url = 'https://github.com/eldritch-theme/eldritch/ports/terminal/wezterm' 83 | -------------------------------------------------------------------------------- /config/.config/wezterm/wezterm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edheltzel/dotfiles/80c2a070d17ef7cf39b5e6761a24af88eecefdf2/config/.config/wezterm/wezterm.png -------------------------------------------------------------------------------- /config/.config/yazi/yazi.toml: -------------------------------------------------------------------------------- 1 | # The defaults are very good, nothing too fany here. 2 | "$schema" = "https://yazi-rs.github.io/schemas/yazi.json" 3 | [manager] 4 | ratio = [ 1, 3, 4 ] 5 | show_hidden = true 6 | [preview] 7 | wrap = "yes" 8 | -------------------------------------------------------------------------------- /config/.stow-local-ignore: -------------------------------------------------------------------------------- 1 | # GNU stow ignore .gitignore files by default, and so we modify the default 2 | # ignore list, taken from 3 | # http://www.gnu.org/software/stow/manual/html_node/Types-And-Syntax-Of-Ignore-Lists.html, 4 | # to exclude the gitignore line 5 | 6 | # Comments and blank lines are allowed 7 | 8 | .DS_Store 9 | .config/raycast/extensions 10 | -------------------------------------------------------------------------------- /dots/.ackrc: -------------------------------------------------------------------------------- 1 | --ignore-ack-defaults 2 | # Always color, even if piping to a another program 3 | --color 4 | 5 | # Sort files 6 | --sort-files 7 | --smart-case 8 | 9 | ### Files to ignore 10 | # minified Javascript 11 | --ignore-file=match:/[.-]min[.]js$/ 12 | --ignore-file=match:/[.]js[.]min$/ 13 | 14 | # minified CSS 15 | --ignore-file=match:/[.]min[.]css$/ 16 | --ignore-file=match:/[.]css[.]min$/ 17 | 18 | # JS and CSS source maps 19 | --ignore-file=match:/[.]js[.]map$/ 20 | --ignore-file=match:/[.]css[.]map$/ 21 | 22 | ### Directories to ignore 23 | --ignore-directory=is:.git 24 | --ignore-dir=.vscode/ 25 | 26 | # Jekyll and Hugo 27 | --ignore-dir=node_modules/ 28 | --ignore-dir=bower_components/ 29 | --ignore-dir=.bundle/ 30 | --ignore-dir=_site/ 31 | --ignore-dir=public/ 32 | --ignore-dir=.sass-cache 33 | --ignore-dir=.jekyll-cache 34 | 35 | # setting types 36 | --type-set=css:ext:scss,sass,css,less,postcss 37 | --type-set=markdown:ext:md,markdown 38 | 39 | # additional types 40 | --type-add=html:ext:htm,html,xhtml,html.erb,html.haml,haml 41 | --type-add=js:ext:ts,jsx,dart,vue 42 | --type-add=yaml:ext:yaml,yml,toml 43 | --type-add=json:ext:json 44 | --type-add=go:ext:go 45 | --type-add=dart:ext:dart 46 | 47 | # Shell 48 | --type-add=shell:ext:sh,bash,csh,tcsh,ksh,zsh,fish 49 | --type-add=shell:firstlinematch:/^#!.*\b(?:ba|t?c|k|z|fi)?sh\b/ 50 | -------------------------------------------------------------------------------- /dots/.gemrc: -------------------------------------------------------------------------------- 1 | --- 2 | :backtrace: false 3 | :benchmark: false 4 | :bulk_threshold: 1000 5 | :sources: 6 | - http://rubygems.org/ 7 | :update_sources: true 8 | :verbose: true 9 | gem: --no-ri --no-rdoc 10 | -------------------------------------------------------------------------------- /dots/.gitnow: -------------------------------------------------------------------------------- 1 | [ keybindings ] 2 | 3 | # Alt + S 4 | # state = \es 5 | 6 | # Alt + E 7 | # stage = \ee 8 | 9 | # Ctrl + E 10 | # # unstage = \ce 11 | # 12 | # Alt + M 13 | # show = \em 14 | 15 | # Alt + C 16 | # commit-all = \ec 17 | 18 | # Alt + D 19 | # pull = \ed 20 | 21 | # Alt + P 22 | # push = \ep 23 | 24 | # Alt + U 25 | # upstream = \eu 26 | 27 | # Alt + L 28 | # logs = \el 29 | 30 | # Alt + F 31 | # feature = \ef 32 | 33 | # Alt + H 34 | # hotfix = \eh 35 | -------------------------------------------------------------------------------- /dots/.hushlogin: -------------------------------------------------------------------------------- 1 | # The mere presence of this file in the home directory disables the system 2 | # copyright notice, the date and time of the last login, the message of the 3 | # day as well as other information that may otherwise appear on login. 4 | # See `man login`. 5 | -------------------------------------------------------------------------------- /dots/.npmrc: -------------------------------------------------------------------------------- 1 | ignore-scripts=false 2 | auto-install-peers=true 3 | -------------------------------------------------------------------------------- /dots/.profile: -------------------------------------------------------------------------------- 1 | . "$HOME/.cargo/env" 2 | -------------------------------------------------------------------------------- /dots/.stow-global-ignore: -------------------------------------------------------------------------------- 1 | # Stow global ignore - skip these files 2 | .DS_Store 3 | .git 4 | .gitignore 5 | .stow-local-ignore 6 | .*.example 7 | ^/@.* 8 | README.* 9 | 'Google Drive' 10 | -------------------------------------------------------------------------------- /dots/.tigrc: -------------------------------------------------------------------------------- 1 | #================================== 2 | # GENERAL SETTINGS 3 | #================================== 4 | set main-view = line-number:no,interval=5 id:yes date:relative author:full commit-title:yes,graph,refs,overflow=no 5 | set diff-context = 5 6 | set diff-highlight = true 7 | set horizontal-scroll = 20% 8 | set line-graphics = utf-8 9 | set show-changes = true 10 | set status-show-untracked-dirs = false 11 | set tab-size = 2 12 | set vertical-split = horizontal 13 | set wrap-lines = yes 14 | set blame-view = date:relative-compact author:full file-name:auto id:yes,color line-number:no,interval=5 text 15 | set editor-line-number = yes 16 | set split-view-width = 65% 17 | 18 | #================================== 19 | # COLOR SETTINGS 20 | #================================== 21 | # general 22 | color author 3 default 23 | color commit 11 default 24 | color cursor 2 0 25 | color default default default 26 | color id magenta default 27 | color parent default default 28 | color status default default 29 | color title-blur default default 30 | color title-focus 3 default 31 | 32 | # # diff highlighting 33 | color diff-add default default 34 | color diff-chunk 3 default 35 | color "copy from " 9 default 36 | color "copy to " 2 default 37 | color diff-del default default 38 | color "dissimilarity " default default 39 | color diff-header 4 default 40 | color diff-index default default 41 | color diff-newmode 2 default 42 | color diff-oldmode 9 default 43 | color "rename from " 9 default 44 | color "rename to " 2 default 45 | color diff-similarity default default 46 | color "diff-tree " default default 47 | 48 | # # commit headers pretty prints 49 | color "AuthorDate: " 11 default 50 | color "author " 3 default 51 | color "CommitDate: " 11 default 52 | color "commit " 3 default 53 | color date blue default 54 | color "Merge: " default default 55 | color "Refs: " default default 56 | 57 | # main view colors 58 | color main-head default default 59 | color main-local-tag default default 60 | color main-ref default default 61 | color main-remote default default 62 | color main-tag default default 63 | color main-tracked default default 64 | 65 | # tree view 66 | color tree.header default default 67 | color tree.directory default default 68 | color tree.file default default 69 | 70 | #================================== 71 | # KEYBINDINGS SETTINGS 72 | #================================== 73 | bind generic g move-first-line #vim style 74 | bind generic g move-last-line #vim style 75 | bind generic n next #vim style 76 | bind generic N previous 77 | bind diff o !@hub brwose -- commit/%(commit) 78 | 79 | -------------------------------------------------------------------------------- /dots/.wgetrc: -------------------------------------------------------------------------------- 1 | # Use the server-provided last modification date, if available 2 | timestamping = on 3 | 4 | # Do not go up in the directory structure when downloading recursively 5 | no_parent = on 6 | 7 | # Wait 60 seconds before timing out. This applies to all timeouts: DNS, connect and read. (The default read timeout is 15 minutes!) 8 | timeout = 60 9 | 10 | # Retry a few times when a download fails, but don’t overdo it. (The default is 20!) 11 | tries = 3 12 | 13 | # Retry even when the connection was refused 14 | retry_connrefused = on 15 | 16 | # Use the last component of a redirection URL for the local file name 17 | trust_server_names = on 18 | 19 | # Follow FTP links from HTML documents by default 20 | follow_ftp = on 21 | 22 | # Add a `.html` extension to `text/html` or `application/xhtml+xml` files that lack one, or a `.css` extension to `text/css` files that lack one 23 | adjust_extension = on 24 | 25 | # Use UTF-8 as the default system encoding 26 | # Disabled as it makes `wget` builds that don’t support this feature unusable. 27 | # Does anyone know how to conditionally configure a wget setting? 28 | # http://unix.stackexchange.com/q/34730/6040 29 | #local_encoding = UTF-8 30 | 31 | # Ignore `robots.txt` and `` 32 | robots = off 33 | 34 | # Print the HTTP and FTP server responses 35 | server_response = on 36 | 37 | # Disguise as IE 9 on Windows 7 38 | user_agent = Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) 39 | -------------------------------------------------------------------------------- /duti/com.adobe.illustrator: -------------------------------------------------------------------------------- 1 | .ai 2 | .eps 3 | -------------------------------------------------------------------------------- /duti/com.aone.keka: -------------------------------------------------------------------------------- 1 | .7z 2 | .gtar 3 | .gz 4 | .rar 5 | .tar 6 | .tar.gz 7 | .zip 8 | -------------------------------------------------------------------------------- /duti/com.apple.Preview: -------------------------------------------------------------------------------- 1 | .pdf 2 | .bmp 3 | .jpeg 4 | .jpg 5 | .png 6 | .tif 7 | .tiff 8 | .webp 9 | .avif 10 | -------------------------------------------------------------------------------- /duti/com.colliderli.iina: -------------------------------------------------------------------------------- 1 | .mkv 2 | .avi 3 | .mp4 4 | .ogg 5 | .wav 6 | .mp3 7 | .mov 8 | .webm 9 | -------------------------------------------------------------------------------- /duti/com.figma.Desktop: -------------------------------------------------------------------------------- 1 | .fig 2 | -------------------------------------------------------------------------------- /duti/com.microsoft.VSCode: -------------------------------------------------------------------------------- 1 | .asp 2 | .astro 3 | .babelrc 4 | .bash_profile 5 | .bashrc 6 | .c 7 | .cfg 8 | .coffee 9 | .conf 10 | .cpp 11 | .cs 12 | .css 13 | .d.ts 14 | .editorconfig 15 | .erb 16 | .fish 17 | .gitconfig 18 | .gitconfig-local 19 | .gitignore_global 20 | .go 21 | .gql 22 | .graphql 23 | .h 24 | .hbs 25 | .hjson 26 | .hpp 27 | .jekyll 28 | .js 29 | .jsx 30 | .json 31 | .jsonc 32 | .less 33 | .liquid 34 | .list 35 | .log 36 | .lua 37 | .md 38 | .mdx 39 | .markdown 40 | .mod 41 | .njk 42 | .php 43 | .pug 44 | .py 45 | .rb 46 | .rs 47 | .sass 48 | .scss 49 | .sh 50 | .styl 51 | .sum 52 | .swift 53 | .tmLanguage 54 | .toml 55 | .ts 56 | .tsx 57 | .twig 58 | .txt 59 | .vue 60 | .webc 61 | .xhtml 62 | .xml 63 | .yaml 64 | .yml 65 | .zprofile 66 | .zshrc 67 | Gemfile 68 | README 69 | LICENSE 70 | Makefile 71 | Rakefile 72 | justfile 73 | -------------------------------------------------------------------------------- /duti/com.seriflabs.affinitydesigner2: -------------------------------------------------------------------------------- 1 | .svg 2 | .sketch 3 | -------------------------------------------------------------------------------- /duti/com.shapr3d.shapr: -------------------------------------------------------------------------------- 1 | .step 2 | -------------------------------------------------------------------------------- /duti/com.softfever3d.orca-slicer: -------------------------------------------------------------------------------- 1 | .stl 2 | .3mf 3 | -------------------------------------------------------------------------------- /duti/duti.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | DIR=$(dirname "$0") 4 | cd "$DIR" 5 | . ../scripts/functions.sh 6 | 7 | info "Setting default applications using duti..." 8 | 9 | find * -not -name "duti.sh" -type f | while read fn; do 10 | while read ext; do 11 | substep_info "Setting default application for extension $ext to $fn..." 12 | duti -s $fn $ext all 13 | done <$fn 14 | done 15 | 16 | success "Successfully set all default applications." 17 | -------------------------------------------------------------------------------- /duti/org.openscad.OpenSCAD: -------------------------------------------------------------------------------- 1 | .scad 2 | .off 3 | .amf 4 | -------------------------------------------------------------------------------- /fish/.config/fish/completions/alacritty.fish: -------------------------------------------------------------------------------- 1 | # Meta 2 | complete -c alacritty \ 3 | -s "v" \ 4 | -l "version" \ 5 | -d "Prints version information" 6 | complete -c alacritty \ 7 | -s "h" \ 8 | -l "help" \ 9 | -d "Prints help information" 10 | 11 | # Config 12 | complete -c alacritty \ 13 | -l "live-config-reload" \ 14 | -d "Enable automatic config reloading" 15 | complete -c alacritty \ 16 | -l "no-live-config-reload" \ 17 | -d "Disable automatic config reloading" 18 | complete -c alacritty \ 19 | -l "persistent-logging" \ 20 | -d "Keep the log file after quitting Alacritty" 21 | complete -c alacritty \ 22 | -f \ 23 | -l "config-file" \ 24 | -d "Specify an alternative config file" 25 | complete -c alacritty \ 26 | -s "t" \ 27 | -l "title" \ 28 | -d "Defines the window title" 29 | complete -c alacritty \ 30 | -l "class" \ 31 | -d "Defines the window class" 32 | complete -c alacritty \ 33 | -l "embed" \ 34 | -d "Defines the X11 window ID (as a decimal integer) to embed Alacritty within" 35 | complete -c alacritty \ 36 | -x \ 37 | -a '(__fish_complete_directories (commandline -ct))' \ 38 | -l "working-directory" \ 39 | -d "Start shell in specified directory" 40 | complete -c alacritty \ 41 | -l "hold" \ 42 | -d "Remain open after child process exits" 43 | 44 | # Output 45 | complete \ 46 | -c alacritty \ 47 | -l "print-events" \ 48 | -d "Print all events to stdout" 49 | complete \ 50 | -c alacritty \ 51 | -s "q" \ 52 | -d "Reduces the level of verbosity (min is -qq)" 53 | complete \ 54 | -c alacritty \ 55 | -s "qq" \ 56 | -d "Reduces the level of verbosity" 57 | complete \ 58 | -c alacritty \ 59 | -s "v" \ 60 | -d "Increases the level of verbosity" 61 | complete \ 62 | -c alacritty \ 63 | -s "vv" \ 64 | -d "Increases the level of verbosity" 65 | complete \ 66 | -c alacritty \ 67 | -s "vvv" \ 68 | -d "Increases the level of verbosity" 69 | 70 | complete \ 71 | -c alacritty \ 72 | -l "ref-test" \ 73 | -d "Generates ref test" 74 | 75 | complete \ 76 | -c alacritty \ 77 | -s "d" \ 78 | -l "dimensions" \ 79 | -d "Window dimensions " 80 | 81 | complete \ 82 | -c alacritty \ 83 | -l "position" \ 84 | -d "Window position " 85 | 86 | complete \ 87 | -c alacritty \ 88 | -s "e" \ 89 | -l "command" \ 90 | -d "Execute command (must be last arg)" 91 | -------------------------------------------------------------------------------- /fish/.config/fish/conf.d/abbr.fish: -------------------------------------------------------------------------------- 1 | # cspell: disable 2 | if status is-interactive 3 | abbr --add atm fastfetch 4 | abbr --add bi 'brew install ' 5 | abbr --add binfo 'brew info' 6 | abbr --add brews 'brew list' 7 | abbr --add casks 'brew list --cask' 8 | abbr --add bic --set-cursor 'brew install % --cask' 9 | abbr --add cl clear 10 | abbr --add cw center_window 11 | abbr --add cat 'bat -pp' 12 | # abbr --add cls '$DROPBOX/Clients' 13 | # Editors & Terminals 14 | abbr --add ee 'e -r .' 15 | abbr --add en 'e -n .' 16 | abbr --add co code 17 | abbr --add con 'code -n .' 18 | abbr --add coo 'code -r .' 19 | abbr --add vim nvim 20 | abbr --add wez wezterm 21 | 22 | abbr --add cargos 'cargo install --list' 23 | abbr --add config '~/.config/' 24 | abbr --add local '~/.local/' 25 | abbr --add wp '~/.wallpapers/' 26 | abbr --add wall '~/.wallpapers/' 27 | abbr --add lg lazygit 28 | abbr --add gg lazygit 29 | abbr --add dls '~/Downloads/' 30 | abbr --add eva 'eval ssh-agent -s; and ssh-add --apple-use-keychain ~/.ssh/id_ed25519' 31 | abbr --add gems 'gem list' 32 | abbr --add ghw 'gh repo view --web' 33 | abbr --add ghpr 'gh pr create -a "@me" --fill' 34 | abbr --add ghm --set-cursor 'gh pr merge % --merge' 35 | abbr --add ghr --set-cursor 'gh release create v% --generate-notes --latest' 36 | abbr --add ghce 'gh copilot explain %' 37 | abbr --add ghcs 'gh copilot suggest' 38 | abbr --add ghcc 'gh copilot config' 39 | abbr --add ghca 'gh copilot alias' 40 | abbr --add goo 'cd ~/.go/' 41 | abbr --add npms 'npm list -g --depth=0' 42 | abbr --add pns 'pnpm list -g' 43 | abbr --add pnpms 'pnpm list -g' 44 | abbr --add buns 'bun pm ls -g' 45 | abbr --add siz 'du -khsc' 46 | abbr --add sp 'speedtest -u Gbps' 47 | abbr --add spp 'speedtest -u Gbps' 48 | abbr --add grabit 'wget -mkEpnp url_here' 49 | abbr --add link 'ln -s' 50 | abbr --add symlink 'ln -s' 51 | abbr --add wrg wrangler 52 | abbr --add usebash 'chsh -s $(which bash)' 53 | abbr --add usezsh 'chsh -s $(which zsh)' 54 | abbr --add upp topgrade 55 | abbr --add psrv 'php -S localhost:8888' 56 | abbr --add omp oh-my-posh 57 | abbr --add newcode 'npx --package yo --package generator-code -- yo code' 58 | abbr --add confi confetti 59 | abbr --add tmux zellij 60 | abbr --add amux 'tmux at -t base' 61 | abbr --add tkill 'tmux kill-session -t' 62 | abbr --add nmux 'tmux new -s "base"' 63 | abbr --add yy yazi 64 | abbr --add yz yazi 65 | abbr --add zip 'ouch compress -q' 66 | abbr --add unzip ouch decompress 67 | abbr --add lzip ouch list 68 | end 69 | -------------------------------------------------------------------------------- /fish/.config/fish/conf.d/colors.fish: -------------------------------------------------------------------------------- 1 | # eza colorizes file extensions - https://the.exa.website/features/colours 2 | set -x -g EZA_COLORS "gm=33;1" 3 | 4 | ## custom file extension 5 | # set -x -g LS_COLORS "*.XYZ=00;40" 6 | 7 | # # Uncomment if you do not use eza or you need to add a custom extension 8 | # set -x -g LS_COLORS "no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=41;33;01:ex=00;32:ow=0;41:*.cmd=00;32:*.exe=01;32:*.com=01;32:*.bat=01;32:*.btm=01;32:*.dll=01;32:*.tar=00;31:*.tbz=00;31:*.tgz=00;31:*.rpm=00;31:*.deb=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.lzma=00;31:*.zip=00;31:*.zoo=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.tb2=00;31:*.tz2=00;31:*.tbz2=00;31:*.avi=01;35:*.bmp=01;35:*.fli=01;35:*.gif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mng=01;35:*.mov=01;35:*.mpg=01;35:*.pcx=01;35:*.pbm=01;35:*.pgm=01;35:*.png=01;35:*.ppm=01;35:*.tga=01;35:*.tif=01;35:*.xbm=01;3`5:*.xpm=01;35:*.dl=01;35:*.gl=01;35:*.wmv=01;35:*.aiff=00;32:*.au=00;32:*.mid=00;32:*.mp3=00;32:*.ogg=00;32:*.voc=00;32:*.wav=00;32:*.patch=00;34:*.o=00;32:*.so=01;35:*.ko=01;31:*.la=00;33:*" 9 | 10 | set -x -g TERM xterm-256color 11 | 12 | # Prompt mods 13 | set fish_color_autosuggestion 3f4964 14 | set fish_color_cancel -r 15 | set fish_color_command --bold 16 | set fish_color_comment red 17 | set fish_color_cwd green 18 | set fish_color_cwd_root red 19 | set fish_color_end brmagenta 20 | set fish_color_error brred 21 | set fish_color_escape bryellow --bold 22 | set fish_color_history_current --bold 23 | set fish_color_host normal 24 | set fish_color_host_remote yellow 25 | set fish_color_match --background=brblue 26 | set fish_color_normal normal 27 | set fish_color_operator bryellow 28 | set fish_color_param cyan 29 | set fish_color_quote yellow 30 | set fish_color_redirection brblue 31 | set fish_color_search_match bryellow --background=brblack 32 | set fish_color_selection white --bold --background=brblack 33 | set fish_color_status red 34 | set fish_color_user brgreen 35 | set fish_color_valid_path --underline 36 | set fish_pager_color_completion 37 | set fish_pager_color_description B3A06D yellow 38 | set fish_pager_color_prefix white --bold --underline 39 | set fish_pager_color_progress brwhite --background=blue 40 | -------------------------------------------------------------------------------- /fish/.config/fish/conf.d/exports.fish: -------------------------------------------------------------------------------- 1 | # set default key bindings 2 | set -g fish_key_bindings fish_default_key_bindings 3 | 4 | # Source GRC 5 | source /opt/homebrew/etc/grc.fish 6 | 7 | # Source Multi-function files 8 | source ~/.config/fish/functions/_aliases.fish 9 | source ~/.config/fish/functions/_utils.fish 10 | source ~/.config/fish/functions/_backup_restore.fish 11 | 12 | # Terminal integration 13 | source ~/.config/fish/utils/iterm2_shell_integration.fish 14 | -------------------------------------------------------------------------------- /fish/.config/fish/conf.d/fnm.fish: -------------------------------------------------------------------------------- 1 | # commented out on prupose 2 | # # fnm 3 | # set PATH "/Users/ed/Library/Application Support/fnm" $PATH 4 | 5 | # # automatically run fnm use 6 | # fnm env --use-on-cd | source 7 | -------------------------------------------------------------------------------- /fish/.config/fish/conf.d/keys.fish: -------------------------------------------------------------------------------- 1 | # patrickf1/fzf.fish - keybindings 2 | fzf_configure_bindings --directory=\cf --variables=\e\cv --processes=\ep 3 | -------------------------------------------------------------------------------- /fish/.config/fish/conf.d/paths.fish: -------------------------------------------------------------------------------- 1 | # Setting up the Path 2 | set -e fish_user_paths 3 | 4 | ## ADD to PATH ## 5 | # Homebrew generated by `brew shellenv` 6 | set -gx HOMEBREW_PREFIX /opt/homebrew 7 | set -gx HOMEBREW_CELLAR /opt/homebrew/Cellar 8 | set -gx HOMEBREW_REPOSITORY /opt/homebrew 9 | set -q PATH; or set PATH '' 10 | set -gx PATH /opt/homebrew/bin /opt/homebrew/sbin $PATH 11 | set -q MANPATH; or set MANPATH '' 12 | set -gx MANPATH /opt/homebrew/share/man $MANPATH 13 | set -q INFOPATH; or set INFOPATH '' 14 | set -gx INFOPATH /opt/homebrew/share/info $INFOPATH 15 | 16 | #set -U fish_user_paths "/usr/local/sbin" $fish_user_paths # homebrew - Intel 17 | set -g fish_user_paths $HOMEBREW_PREFIX/bin $fish_user_paths # homebrew ARM 18 | 19 | # openssl to path 20 | set -g fish_user_paths "/opt/homebrew/opt/openssl@1.1/bin" $fish_user_paths 21 | 22 | # Homebrew Ruby - rbenv 23 | status --is-interactive; and source (rbenv init -|psub) 24 | set -g fish_user_paths $HOME/.gem/ruby/3.0.2/bin $fish_user_paths 25 | 26 | # Homebrew make - gmake - MacOS ships with v3.81 27 | set -g fish_user_paths /opt/homebrew/opt/make/libexec/gnubin $fish_user_paths 28 | 29 | # Pyenv 30 | set -Ux PYENV_ROOT $HOME/.pyenv 31 | set -U fish_user_paths $PYENV_ROOT/bin $fish_user_paths 32 | 33 | # PHP Laravel 34 | set -U fish_user_paths $HOME/.composer/vendor/bin $fish_user_paths 35 | 36 | # GO 37 | set -x GOPATH $HOME/.go 38 | set -x PATH $PATH $GOPATH/bin 39 | 40 | # Rust 41 | set -g fish_user_paths $HOME/.cargo/bin $fish_user_paths 42 | 43 | # NodeJS - PNPM 44 | set -gx PNPM_HOME $HOME/Library/pnpm 45 | set -gx PATH "$PNPM_HOME" $PATH 46 | 47 | # Bun 48 | export BUN_INSTALL="$HOME/.bun" 49 | export PATH="$BUN_INSTALL/bin:$PATH" 50 | 51 | # FZF and FD helpers for NeoVim 52 | set -x FZF_DEFAULT_COMMAND "fd --type f" 53 | set -x FZF_CTRL_T_COMMAND "$FZF_DEFAULT_COMMAND" 54 | 55 | # The next line updates PATH for Netlify's Git Credential Helper. 56 | test -f '/Users/ed/Library/Preferences/netlify/helper/path.fish.inc' && source '/Users/ed/Library/Preferences/netlify/helper/path.fish.inc' 57 | 58 | # # Docker 59 | # set -g fish_user_paths $HOME/.docker/bin $fish_user_paths 60 | 61 | # Code Name Goose 62 | set -gx PATH $PATH /Users/ed/.local/bin 63 | -------------------------------------------------------------------------------- /fish/.config/fish/conf.d/tmux.fish: -------------------------------------------------------------------------------- 1 | # as seen https://medium.com/@HazuliFidastian/run-tmux-automatically-on-fish-shell-2b62622661c7 2 | # Uncomment the below if-statement if using Alacritty 3 | #if not set -q TMUX 4 | # set -g TMUX tmux new-session -d -s base 5 | # eval $TMUX 6 | # tmux attach-session -d -t base 7 | #end 8 | -------------------------------------------------------------------------------- /fish/.config/fish/conf.d/variables.fish: -------------------------------------------------------------------------------- 1 | # set XDG Base Directory Specification - there could be a better way to do this 2 | set -gx XDG_CACHE_HOME $HOME/.cache 3 | set -gx XDG_CONFIG_HOME $HOME/.config 4 | set -gx XDG_DATA_HOME $HOME/.local/share 5 | set -gx XDG_DESKTOP_DIR $HOME/Desktop 6 | set -gx XDG_DOWNLOAD_DIR $HOME/Downloads 7 | set -gx XDG_DOCUMENTS_DIR $HOME/Documents 8 | set -gx XDG_MUSIC_DIR $HOME/Music 9 | set -gx XDG_PICTURES_DIR $HOME/Pictures 10 | set -gx XDG_VIDEOS_DIR $HOME/Videos 11 | 12 | # cargo - IDK if this is necessary 13 | set -gx CARGO_TARGET_DIR /var/folders/88/3h9cyc4979d2l6p7xkn79yqr0000gn/T/cargo-installx9AWBr 14 | 15 | # set the Default Editor use code, code-insiders, nvim, windsurf, or cursor 16 | set -gx EDITOR code 17 | 18 | string match -q "$TERM_PROGRAM" vscode 19 | and . (code --locate-shell-integration-path fish) 20 | 21 | # Volumes 22 | set -gx VOL xxx 23 | # set -gx DROPBOX $HOME/Library/CloudStorage/Dropbox-RDM 24 | -------------------------------------------------------------------------------- /fish/.config/fish/config.fish: -------------------------------------------------------------------------------- 1 | # Custom sourcing of colors, exports, paths, grc, multi-function fish files, etc. 2 | source ~/.config/fish/conf.d/variables.fish 3 | source ~/.config/fish/conf.d/keys.fish 4 | source ~/.config/fish/conf.d/exports.fish 5 | source ~/.config/fish/conf.d/paths.fish 6 | source ~/.config/fish/conf.d/abbr.fish 7 | source ~/.config/fish/conf.d/colors.fish # this could be obsolete by starship & eza 8 | 9 | fnm env --use-on-cd | source 10 | 11 | ### start Prompt ### 12 | # Starship Prompt 13 | function starship_transient_prompt_func 14 | starship module character 15 | end 16 | starship init fish | source 17 | enable_transience 18 | 19 | # OH My Posh Prompt 20 | # oh-my-posh init fish --config ~/.config/starship-ish.omp.json | source 21 | 22 | # Added by Windsurf 23 | fish_add_path /Users/ed/.codeium/windsurf/bin 24 | 25 | # Added by OrbStack: command-line tools and integration 26 | # This won't be added again if you remove it. 27 | source ~/.orbstack/shell/init2.fish 2>/dev/null || : 28 | -------------------------------------------------------------------------------- /fish/.config/fish/fish_plugins: -------------------------------------------------------------------------------- 1 | jorgebucaran/fisher 2 | oh-my-fish/plugin-brew 3 | kidonng/zoxide.fish 4 | meaningful-ooo/sponge 5 | z11i/github-copilot-cli.fish 6 | joseluisq/gitnow 7 | james2doyle/omf-plugin-artisan 8 | edheltzel/fisher-plugin-macos 9 | oh-my-fish/plugin-bang-bang 10 | laughedelic/pisces 11 | patrickf1/fzf.fish 12 | danhper/fish-ssh-agent 13 | vitallium/tokyonight-fish 14 | dteoh/fish-set-lc-all 15 | -------------------------------------------------------------------------------- /fish/.config/fish/functions/_aliases.fish: -------------------------------------------------------------------------------- 1 | # Colorize grep output (good for log files) 2 | alias grep 'grep --color=auto' 3 | alias egrep 'egrep --color=auto' 4 | alias fgrep 'fgrep --color=auto' 5 | 6 | # Git aliases (no included in gitconfig) 7 | alias sta state # gitnow 8 | alias cma commit-all # gitnow 9 | alias cm commit # gitnow 10 | 11 | # Confirm before overwriting 12 | alias cp 'cp -Ri' 13 | alias mv 'mv -i' 14 | alias rm 'rm -i' 15 | 16 | alias md 'mkdir -p' 17 | alias rd 'rmdir -p' 18 | 19 | # Navigation 20 | alias .. 'cd ..' 21 | alias ... 'cd ../..' 22 | alias .... 'cd ../../..' 23 | alias ..... 'cd ../../../..' 24 | alias ...... 'cd ../../../../..' 25 | alias l 'eza --long --all --header --git --icons --no-permissions --no-time --no-user --no-filesize --group-directories-first' 26 | alias ll 'eza -lagh --git --icons --group-directories-first' 27 | alias la 'eza -lagh --git --icons --group-directories-first --sort modified' 28 | alias cll 'clear; and eza --long --all --header --git --icons --no-permissions --no-time --no-user --no-filesize --group-directories-first' 29 | 30 | ## Tree view 31 | alias tree 'eza -Ta --icons --ignore-glob="node_modules|.git|.vscode|.DS_Store"' 32 | alias ltd 'eza -TaD --icons --ignore-glob="node_modules|.git|.vscode|.DS_Store"' 33 | 34 | 35 | # Project shortcuts/aliases 36 | alias projects 'cd ~/Developer' 37 | alias dev 'cd ~/Developer' 38 | alias work 'cd ~/Developer/work' 39 | alias sites 'cd ~/Sites' 40 | alias dots 'cd ~/.dotfiles' 41 | 42 | alias cuts 'eval $EDITOR ~/.dotfiles' 43 | alias ed 'cd ~/.dotfiles; and nvim .' 44 | # 45 | # Actions 46 | alias e '$EDITOR' # open in Default Editor 47 | alias o open 48 | alias oo 'open .' 49 | alias oa 'open -a' 50 | alias del trash 51 | alias sdel 'sudo rm -rf' 52 | 53 | # Editors and Utilities 54 | # alias code windsurf 55 | alias serve miniserve #start a simple http server 56 | alias du dua 57 | # alias zip 'ouch compress' 58 | # alias unzip 'ouch decompress' 59 | # alias listzip 'ouch list' 60 | # alias lzip 'ouch list' 61 | alias wget 'wget -c' 62 | alias mux zellij 63 | alias wz wezterm 64 | 65 | # Network shortcuts/aliases and utilities 66 | alias ip "dig +short myip.opendns.com @resolver1.opendns.com" # dumps [YOUR PUBLIC IP] [URL IP] 67 | alias ipl "ipconfig getifaddr en0" #internal network IP 68 | alias ips "ifconfig -a | grep -o 'inet6\? \(\([0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\)\|[a-fA-F0-9:]\+\)' | sed -e 's/inet6* //'" 69 | alias sniff "sudo ngrep -d 'en1' -t '^(GET|POST) ' 'tcp and port 80'" 70 | alias httpdump "sudo tcpdump -i en1 -n -s 0 -w - | grep -a -o -E \"Host\: .*|GET \/.*\"" 71 | alias whois "grc whois" # colorized whois 72 | 73 | # SSH and localhost 74 | alias hostfile 'eval sudo $EDITOR /etc/hosts' 75 | alias editssh 'eval $EDITOR ~/.ssh' 76 | alias lssh 'grep -w -i Host ~/.ssh/config | sed s/Host//' 77 | 78 | # Docker aliases 79 | alias dk docker 80 | alias dc docker-compose 81 | 82 | # function tldrf --description 'tldr search and preview with fzf' 83 | alias tldrf 'tldr --list | fzf --preview "tldr {1} --color=always" --preview-window=right,70% | xargs tldr' 84 | 85 | #### Language Support #### 86 | # Node - PNPM 87 | alias pn pnpm 88 | alias px 'pnpm dlx' 89 | 90 | # PHP - Laravel 91 | alias art 'php artisan' 92 | alias tinker 'php artisan tinker' 93 | alias mfs 'php artisan migrate:fresh --seed' 94 | alias phpunit vendor/bin/phpunit 95 | alias pest vendor/bin/pest 96 | alias vapor vendor/bin/vapor 97 | 98 | ## Games ## 99 | alias doom 'cd ~/Developer/games/terminal-doom; and zig-out/bin/terminal-doom' 100 | 101 | ## Ai ## 102 | alias cc 'claude' # Claude Code 103 | -------------------------------------------------------------------------------- /fish/.config/fish/functions/_backup_restore.fish: -------------------------------------------------------------------------------- 1 | function mkbak --description "Create a .bak copy of a file" 2 | cp -- "$argv[1]" "$argv[1].bak" 3 | end 4 | 5 | function restore --description "Restore a file from a .bak file" 6 | set original (echo $argv[1] | sed 's/\.bak$//') 7 | mv -- $argv[1] $original 8 | end 9 | -------------------------------------------------------------------------------- /fish/.config/fish/functions/_utils.fish: -------------------------------------------------------------------------------- 1 | # Utilities for checking terminal color support, and printing color pallete 2 | function colormap 3 | $HOME/.config/fish/utils/color-map.sh 4 | end 5 | 6 | # Matrix-style screensaver for your terminal - for fun 7 | function matrix 8 | $HOME/.config/fish/utils/matrix.sh 9 | end 10 | 11 | # list all bat themes with a preview 12 | function batthemes 13 | bat --list-themes | fzf --preview="bat --theme={} --color=always Makefile" | pbcopy 14 | end 15 | 16 | function confetti 17 | open "raycast://extensions/raycast/raycast/confetti" 18 | end 19 | -------------------------------------------------------------------------------- /fish/.config/fish/functions/abbrex.fish: -------------------------------------------------------------------------------- 1 | function abbrex --description 'Utility for expanding abbreviations' 2 | # Saves all except first arg of expression in args 3 | set argc (count $argv) 4 | if test $argc -gt 1 5 | set args $argv[2..$argc] 6 | end 7 | # Checks if first arg is a known abbreviation 8 | set pattern "abbr $argv[1] " 9 | set abbr (abbr | grep $pattern) 10 | if test $abbr 11 | # Extracts abbreviated expression and replaces it in original expression 12 | set replacement (string replace -a "'" "" (string replace $pattern "" $abbr)) 13 | echo $replacement $args 14 | else 15 | echo $argv 16 | end 17 | end 18 | -------------------------------------------------------------------------------- /fish/.config/fish/functions/cd.fish: -------------------------------------------------------------------------------- 1 | function cd --description 'list files in the current directory after changing to it' 2 | if count $argv >/dev/null 3 | # prevents recurse infinitely by using built-in cd 4 | builtin cd "$argv"; and eza --long --all --header --git --icons --no-permissions --no-time --no-user --no-filesize --group-directories-first 5 | else 6 | # builtin cd ~; and eza -lagh --icons --group-directories-first 7 | builtin cd ~; and eza --long --all --header --git --icons --no-permissions --no-time --no-user --no-filesize --group-directories-first 8 | end 9 | end 10 | -------------------------------------------------------------------------------- /fish/.config/fish/functions/center_window.fish: -------------------------------------------------------------------------------- 1 | function center_window --description 'Center Window with Raycast' 2 | open -g 'raycast://customWindowManagementCommand?&name=Center%20Center&position=center&relativeWidth=0.6&relativeHeight=1.0' 3 | end 4 | -------------------------------------------------------------------------------- /fish/.config/fish/functions/cpwd.fish: -------------------------------------------------------------------------------- 1 | # Defined in - @ line 0 2 | function cpwd --description 'pwd copied to clipboard' 3 | command pwd | tr -d '\n' | pbcopy; and echo 'pwd copied to clipboard'; 4 | end 5 | -------------------------------------------------------------------------------- /fish/.config/fish/functions/fish_greeting.fish: -------------------------------------------------------------------------------- 1 | function fish_greeting; 2 | end 3 | -------------------------------------------------------------------------------- /fish/.config/fish/functions/flashEthernet.fish: -------------------------------------------------------------------------------- 1 | function flashEthernet --description 'Disable and re-enable the Ethernet network interface' 2 | set -l sudo_pass (sudo -p "Password: " -S echo) 3 | 4 | set -l interface Ethernet 5 | set result (echo $sudo_pass | sudo -S networksetup -setnetworkserviceenabled $interface off; and sleep 1; echo $sudo_pass | sudo -S networksetup -setnetworkserviceenabled $interface on) 6 | if test $status -eq 0 7 | echo "$interface successfully disabled and will re-enabled shortly." 8 | else 9 | echo "Failed to disable and re-enable $interface." 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /fish/.config/fish/functions/imgcon.fish: -------------------------------------------------------------------------------- 1 | function imgcon --description "recursive Imagemagick converter" 2 | set -q fileType[1] and 3 | set -q fileType[2] and 4 | for image in ** 5 | echo $image | grep -qE '.*$fileType[1].*'; and \ 6 | convert -verbose $image (echo $image | sed "s/$fileType[1]/$fileType[2]/g") 7 | end 8 | end 9 | -------------------------------------------------------------------------------- /fish/.config/fish/functions/killws.fish: -------------------------------------------------------------------------------- 1 | # This will log you out - macOS has a bug with multiple displays where the WindowServer will consume CPU and/or Memory. It is annoying.' 2 | function killws --description 'Restart the WindowServer on macOS' 3 | sudo killall -HUP WindowServer 4 | end 5 | -------------------------------------------------------------------------------- /fish/.config/fish/functions/mkd.fish: -------------------------------------------------------------------------------- 1 | function mkd --description 'Make a directory and cd into it includes the -p option' 2 | mkdir -p $argv; and cd $argv 3 | end 4 | -------------------------------------------------------------------------------- /fish/.config/fish/functions/pubkey.fish: -------------------------------------------------------------------------------- 1 | function pubkey 2 | if test -f ~/.ssh/id_rsa.pub 3 | cat ~/.ssh/id_rsa.pub | pbcopy; and echo '=> Public key copied to clipboard.' 4 | else if test -f ~/.ssh/id_ed25519.pub 5 | cat ~/.ssh/id_ed25519.pub | pbcopy; and echo '=> Public key copied to clipboard.' 6 | else 7 | echo 'No public key found.' 8 | end 9 | end 10 | -------------------------------------------------------------------------------- /fish/.config/fish/functions/reload.fish: -------------------------------------------------------------------------------- 1 | function reload --description 'alias reload=exec fish' 2 | exec fish $argv; 3 | end 4 | -------------------------------------------------------------------------------- /fish/.config/fish/functions/setup.fish: -------------------------------------------------------------------------------- 1 | function setup --description 'defines one-time abbreviations for the current shell' 2 | abbr lzd lazydocker 3 | end 4 | -------------------------------------------------------------------------------- /fish/.config/fish/functions/speed.fish: -------------------------------------------------------------------------------- 1 | # Defined in - @ line 0 2 | # checks for option/flags and passes it to the alias 3 | # if no options run with verbose option. 4 | 5 | function speed --description 'alias speed=networkQuality' 6 | if count $argv > /dev/null #Checks for option 7 | command networkQuality $argv 8 | else 9 | command networkQuality -v #No option - run verbose 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /fish/.config/fish/functions/weather.fish: -------------------------------------------------------------------------------- 1 | function weather --description 'check the weather' 2 | curl 'wttr.in/~Springboro+Ohio?u'; 3 | end 4 | -------------------------------------------------------------------------------- /fish/.config/fish/utils/color-map.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Set the test text 4 | TEXT='gYw' 5 | TEXT_COL="\033[m" 6 | RESET='\033[0m' 7 | # Outputs the number of colors supported by your terminal emulator 8 | function check_color_support () { 9 | echo -e "\n${TEXT_COL}Your terminal supports $(tput colors) colors." 10 | } 11 | # Prints main 16 colors 12 | function color_map_16_bit () { 13 | echo -e "\n${TEXT_COL}16-Bit Pallete${RESET}\n" 14 | base_colors='40m 41m 42m 43m 44m 45m 46m 47m' 15 | for BG in $base_colors; do echo -en "$EINS \033[$BG \033[0m"; done; echo 16 | for BG in $base_colors; do printf " \033[1;30m\033[%b %b \033[0m" $BG $BG; done; echo 17 | for BG in $base_colors; do echo -en "$EINS \033[$BG \033[0m"; done; echo 18 | } 19 | # Prints all 256 supported colors 20 | function color_map_256_bit () { 21 | echo -e "\n${TEXT_COL}256-Bit Pallete${RESET}\n" 22 | for i in {0..255}; do printf '\e[38;5;%dm%3d ' $i $i; (((i+3) % 18)) || printf '\e[0m\n'; done 23 | echo 24 | } 25 | 26 | 27 | 28 | check_color_support 29 | color_map_16_bit 30 | # Print the column headers 31 | echo -e "\n 40m 41m 42m 43m\ 32 | 44m 45m 46m 47m"; 33 | 34 | # Loop through all the foreground colors 35 | for FGs in ' m' ' 1m' ' 30m' '1;30m' ' 31m' '1;31m' ' 32m' \ 36 | '1;32m' ' 33m' '1;33m' ' 34m' '1;34m' ' 35m' '1;35m' \ 37 | ' 36m' '1;36m' ' 37m' '1;37m'; 38 | do 39 | FG=${FGs// /} 40 | # Print the foreground color code and test text 41 | echo -en " $FGs \033[$FG $TEXT " 42 | # Loop through all the background colors and print the color codes 43 | for BG in 40m 41m 42m 43m 44m 45m 46m 47m; 44 | do 45 | echo -en " \033[$FG\033[$BG $TEXT \033[0m"; 46 | done 47 | echo; 48 | done 49 | 50 | color_map_256_bit 51 | -------------------------------------------------------------------------------- /fish/.config/fish/utils/matrix.sh: -------------------------------------------------------------------------------- 1 | # Matrix-style screensaver for your terminal 2 | 3 | matrix () { 4 | local lines=$(tput lines) 5 | cols=$(tput cols) 6 | 7 | awkscript=' 8 | { 9 | letters="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@#$%^&*()" 10 | lines=$1 11 | random_col=$3 12 | c=$4 13 | letter=substr(letters,c,1) 14 | cols[random_col]=0; 15 | for (col in cols) { 16 | line=cols[col]; 17 | cols[col]=cols[col]+1; 18 | printf "\033[%s;%sH\033[2;32m%s", line, col, letter; 19 | printf "\033[%s;%sH\033[1;37m%s\033[0;0H", cols[col], col, letter; 20 | if (cols[col] >= lines) { 21 | cols[col]=0; 22 | } 23 | } 24 | } 25 | ' 26 | 27 | echo -e "\e[1;40m" 28 | clear 29 | 30 | while :; do 31 | echo $lines $cols $(( $RANDOM % $cols)) $(( $RANDOM % 72 )) 32 | sleep 0.05 33 | done | awk "$awkscript" 34 | } 35 | 36 | # Determine if file is being run directly or sourced 37 | ([[ -n $ZSH_EVAL_CONTEXT && $ZSH_EVAL_CONTEXT =~ :file$ ]] || 38 | [[ -n $KSH_VERSION && $(cd "$(dirname -- "$0")" && 39 | printf '%s' "${PWD%/}/")$(basename -- "$0") != "${.sh.file}" ]] || 40 | [[ -n $BASH_VERSION ]] && (return 0 2>/dev/null)) && sourced=1 || sourced=0 41 | 42 | # If script being called directly, start matrix 43 | if [ $sourced -eq 0 ]; then 44 | matrix 45 | fi 46 | -------------------------------------------------------------------------------- /git/.gitconfig.local: -------------------------------------------------------------------------------- 1 | [meta] 2 | isLocalConfig = true 3 | [user] 4 | signingkey = /Users/ed/.ssh/id_ed25519.pub 5 | [gpg "ssh"] 6 | allowedSignersFile = /Users/ed/.ssh/allowed_signers 7 | -------------------------------------------------------------------------------- /git/.stow-local-ignore: -------------------------------------------------------------------------------- 1 | # GNU stow ignore .gitignore files by default, and so we modify the default 2 | # ignore list, taken from 3 | # http://www.gnu.org/software/stow/manual/html_node/Types-And-Syntax-Of-Ignore-Lists.html, 4 | # to exclude the gitignore line 5 | 6 | # Comments and blank lines are allowed 7 | 8 | .DS_Store 9 | 10 | gitconfig-bigmac.local 11 | gitconfig-macdaddy.local 12 | 13 | git.sh 14 | -------------------------------------------------------------------------------- /git/git.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | DIR=$(dirname "$0") 3 | cd "$DIR" 4 | 5 | . ../scripts/functions.sh 6 | 7 | SOURCE="$(realpath .)" 8 | DESTINATION="$(realpath ~)" 9 | 10 | # Get computer name 11 | computer_name=$(scutil --get ComputerName) 12 | 13 | if [ "$computer_name" = "BigMac" ]; then 14 | symlink "$SOURCE/gitconfig-bigmac.local" "$DESTINATION/.gitconfig.local" 15 | elif [ "$computer_name" = "MacDaddy" ]; then 16 | symlink "$SOURCE/gitconfig-macdaddy.local" "$DESTINATION/.gitconfig.local" 17 | else 18 | echo "Unknown computer name: $computer_name" 19 | exit 1 20 | fi 21 | -------------------------------------------------------------------------------- /git/gitconfig-bigmac.local: -------------------------------------------------------------------------------- 1 | [meta] 2 | isLocalConfig = true 3 | [user] 4 | signingkey = /Users/ed/.ssh/id_ed25519.pub 5 | [gpg "ssh"] 6 | allowedSignersFile = /Users/ed/.ssh/allowed_signers 7 | -------------------------------------------------------------------------------- /git/gitconfig-macdaddy.local: -------------------------------------------------------------------------------- 1 | [meta] 2 | isLocalConfig = true 3 | [user] 4 | signingkey = ~/.ssh/id_rsa.pub 5 | [gpg "ssh"] 6 | allowedSignersFile = /Users/ed/.ssh/allowed_signers 7 | -------------------------------------------------------------------------------- /install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | PROJECTS_DIR="$HOME/Developer" 4 | 5 | # Exit immediately if a command exits with a non-zero status. 6 | set -e 7 | 8 | # Include functions 9 | . scripts/functions.sh 10 | 11 | install_xcode 12 | install_git 13 | 14 | # Create the ~/Developer directory if it does not exist 15 | if [ ! -d "$PROJECTS_DIR" ]; then 16 | mkdir -p "$PROJECTS_DIR" 17 | fi 18 | 19 | # Main installation process 20 | mainInstall() { 21 | # check for required commands 22 | check_required_commands 23 | 24 | # Confirmation prompt 25 | warning "This will install & configure dotfiles on your system. It may overwrite existing files." 26 | read -p "Are you sure you want to proceed? (y/n) " confirm 27 | if [[ "$confirm" != "y" ]]; then 28 | echo -e "${RED}Installation aborted." 29 | exit 0 30 | fi 31 | 32 | # Check for sudo password and keep alive 33 | if sudo --validate; then 34 | sudo_keep_alive & 35 | SUDO_PID=$! 36 | trap 'kill "$SUDO_PID"' EXIT 37 | substep_info "Sudo password saved. Continuing with script." 38 | else 39 | substep_error "Incorrect sudo password. Exiting script." 40 | exit 1 41 | fi 42 | 43 | # Install Homebrew 44 | install_homebrew 45 | 46 | # Display banner and prompt user to continue 47 | banner 48 | if [[ $REPLY =~ ^[Yy]$ ]]; then 49 | # Run setup scripts in order 50 | source ./packages/packages.sh 51 | 52 | # Install Stow packages 53 | declare -a stow_dirs=("dots" "git" "fish" "nvim" "config" "local" "warp") 54 | for dir in "${stow_dirs[@]}"; do 55 | stow "$dir" 56 | done 57 | 58 | source ./duti/duti.sh 59 | source ./macos/macos.sh 60 | source ./git/git.sh 61 | 62 | # Check if Fish is installed and set it as the default shell if desired 63 | if command -v fish &>/dev/null; then 64 | if ! grep -q "$(command -v fish)" /etc/shells; then 65 | substep_info "Adding Fish to available shells..." 66 | sudo sh -c "echo $(command -v fish) >> /etc/shells" 67 | fi 68 | read -p "Do you want to set Fish as your default shell? (y/N): " -n 1 -r 69 | echo # Move to a new line 70 | if [[ $REPLY =~ ^[Yy]$ ]]; then 71 | chsh -s "$(command -v fish)" 72 | fi 73 | fi 74 | 75 | success "Dotfile setup complete." 76 | else 77 | error "Aborted." 78 | fi 79 | } 80 | 81 | # Run the main function 82 | mainInstall 83 | -------------------------------------------------------------------------------- /local/.local/__repoImages/install-vscode-in-path.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edheltzel/dotfiles/80c2a070d17ef7cf39b5e6761a24af88eecefdf2/local/.local/__repoImages/install-vscode-in-path.png -------------------------------------------------------------------------------- /local/.local/__repoImages/iterm2_dankmono_font_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edheltzel/dotfiles/80c2a070d17ef7cf39b5e6761a24af88eecefdf2/local/.local/__repoImages/iterm2_dankmono_font_settings.png -------------------------------------------------------------------------------- /local/.local/__repoImages/verified.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edheltzel/dotfiles/80c2a070d17ef7cf39b5e6761a24af88eecefdf2/local/.local/__repoImages/verified.png -------------------------------------------------------------------------------- /local/.local/__repoImages/workspace-setup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edheltzel/dotfiles/80c2a070d17ef7cf39b5e6761a24af88eecefdf2/local/.local/__repoImages/workspace-setup.png -------------------------------------------------------------------------------- /local/.local/share/cspell/global-dictionary.txt: -------------------------------------------------------------------------------- 1 | alacritty 2 | alpinejs 3 | arounds 4 | astro 5 | astrojs 6 | Autocare 7 | Autoconvert 8 | autofit 9 | autohide 10 | autoplay 11 | autoprefixing 12 | autotalk 13 | Beavercreek 14 | Bevs 15 | biomejs 16 | bitwarden 17 | blockquotes 18 | browserlist 19 | browsersync 20 | btns 21 | bunx 22 | cblock 23 | Centerville 24 | cesbuild 25 | chsh 26 | codepen 27 | codesnap 28 | codyhouse 29 | Colour 30 | colours 31 | commentblock 32 | commenthtml 33 | corepack 34 | cssnano 35 | darwish 36 | DATETIME 37 | Dayton 38 | Descr 39 | dictsort 40 | dotfiles 41 | easymotion 42 | edheltzel 43 | Elbritch 44 | eleventy 45 | elif 46 | endeach 47 | endedge 48 | endfilter 49 | endfor 50 | endif 51 | endregion 52 | endrender 53 | endset 54 | esbuild 55 | Fairborn 56 | Fira 57 | fishrc 58 | Flighdeck 59 | Flightdeck 60 | Frontmatter 61 | Fullscreen 62 | ginfuru 63 | githubnext 64 | gitignores 65 | hcomm 66 | heltzel 67 | highlightedyank 68 | homerow 69 | htmlmin 70 | HTMX 71 | ifel 72 | Incenta 73 | indexnow 74 | intelephense 75 | ishikawa 76 | ITCSS 77 | iterm 78 | jampack 79 | Jamstack 80 | keychain 81 | Laravel 82 | lazyvim 83 | Leachate 84 | lightningcss 85 | linkify 86 | lockb 87 | luxon 88 | MERN 89 | metafile 90 | moxer 91 | Nanotubes 92 | neovim 93 | npmrc 94 | nunjucks 95 | onehalf 96 | osascript 97 | outdir 98 | overscroll 99 | pagedown 100 | pageup 101 | pnpm 102 | pnpx 103 | preinstall 104 | pubkey 105 | purgecss 106 | quickfix 107 | rainydaymedia 108 | Raycast 109 | realpath 110 | renderfile 111 | repodir 112 | restow 113 | Roadmap 114 | rustup 115 | scminput 116 | scrollback 117 | setend 118 | sharebar 119 | Shortcode 120 | shortcodes 121 | signingkey 122 | smacss 123 | SNIPCART 124 | sourcemaps 125 | Spacemacs 126 | speedtest 127 | Springboro 128 | startship 129 | stylelint 130 | substep 131 | svg 132 | svgs 133 | syntaxhighlight 134 | taiki 135 | tailwindcss 136 | Templatender 137 | templating 138 | Timemachine 139 | TLDR 140 | Topgrade 141 | uncategorized 142 | unstow 143 | unstows 144 | vite 145 | vspacecode 146 | waitlist 147 | webc 148 | webm 149 | webp 150 | wezterm 151 | whichkey 152 | -------------------------------------------------------------------------------- /local/.local/share/gh/extensions/gh-changelog/gh-changelog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edheltzel/dotfiles/80c2a070d17ef7cf39b5e6761a24af88eecefdf2/local/.local/share/gh/extensions/gh-changelog/gh-changelog -------------------------------------------------------------------------------- /local/.local/share/gh/extensions/gh-changelog/manifest.yml: -------------------------------------------------------------------------------- 1 | owner: chelnak 2 | name: gh-changelog 3 | host: github.com 4 | tag: v0.15.3 5 | ispinned: false 6 | path: /Users/ed/.local/share/gh/extensions/gh-changelog/gh-changelog 7 | -------------------------------------------------------------------------------- /local/.local/share/gh/extensions/gh-dash/gh-dash: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edheltzel/dotfiles/80c2a070d17ef7cf39b5e6761a24af88eecefdf2/local/.local/share/gh/extensions/gh-dash/gh-dash -------------------------------------------------------------------------------- /local/.local/share/gh/extensions/gh-dash/manifest.yml: -------------------------------------------------------------------------------- 1 | owner: dlvhdr 2 | name: gh-dash 3 | host: github.com 4 | tag: v4.16.0 5 | ispinned: false 6 | path: /Users/ed/.local/share/gh/extensions/gh-dash/gh-dash 7 | -------------------------------------------------------------------------------- /local/.local/share/keyboards/2025-04-24-kensington-expert-mouse-default-profile.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edheltzel/dotfiles/80c2a070d17ef7cf39b5e6761a24af88eecefdf2/local/.local/share/keyboards/2025-04-24-kensington-expert-mouse-default-profile.db -------------------------------------------------------------------------------- /local/.local/share/misc_random/my-ublock-backup_2023-02-10_09.06.28.txt: -------------------------------------------------------------------------------- 1 | { 2 | "timeStamp": 1676037988168, 3 | "version": "1.46.0", 4 | "userSettings": { 5 | "importedLists": [] 6 | }, 7 | "selectedFilterLists": [ 8 | "ublock-quick-fixes", 9 | "user-filters", 10 | "assets.json", 11 | "public_suffix_list.dat", 12 | "ublock-badlists", 13 | "ublock-filters", 14 | "ublock-badware", 15 | "ublock-privacy", 16 | "ublock-abuse", 17 | "ublock-unbreak", 18 | "easylist", 19 | "easyprivacy", 20 | "urlhaus-1", 21 | "plowe-0" 22 | ], 23 | "hiddenSettings": {}, 24 | "whitelist": [ 25 | "about-scheme", 26 | "account.scholastic.com", 27 | "analytics.google.com", 28 | "bookfairs.scholastic.com", 29 | "chrome-extension-scheme", 30 | "chrome-scheme", 31 | "dns.godaddy.com", 32 | "edge-scheme", 33 | "gnbx2023elitegift.incentashop.com", 34 | "moz-extension-scheme", 35 | "opera-scheme", 36 | "patient.klara.com", 37 | "ppp.fountainheadcc.com", 38 | "us02web.zoom.us", 39 | "vivaldi-scheme", 40 | "www.grammarly.com", 41 | "www.spectrum.net", 42 | "wyciwyg-scheme" 43 | ], 44 | "dynamicFilteringString": "behind-the-scene * * noop\nbehind-the-scene * inline-script noop\nbehind-the-scene * 1p-script noop\nbehind-the-scene * 3p-script noop\nbehind-the-scene * 3p-frame noop\nbehind-the-scene * image noop\nbehind-the-scene * 3p noop", 45 | "urlFilteringString": "", 46 | "hostnameSwitchesString": "no-large-media: behind-the-scene false", 47 | "userFilters": "||facebook.com/plugins/*\n||connect.facebook.com\n||connect.facebook.net\n||platform.twitter.com\n" 48 | } -------------------------------------------------------------------------------- /local/.stow-local-ignore: -------------------------------------------------------------------------------- 1 | # GNU stow ignore .gitignore files by default, and so we modify the default 2 | # ignore list, taken from 3 | # http://www.gnu.org/software/stow/manual/html_node/Types-And-Syntax-Of-Ignore-Lists.html, 4 | # to exclude the gitignore line 5 | 6 | # Comments and blank lines are allowed 7 | 8 | .DS_Store 9 | __repoImages 10 | -------------------------------------------------------------------------------- /macos/macos.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | ############################################################################## 3 | # Initiates the applying of MacOS-specific settings and preferences # 4 | # IMPORTANT: Be sure to read files through thoughouly before executing # 5 | # # 6 | # CAUTION: This script will apply changes to your MacOS system configuration # 7 | # Be sure to read it through carefully, and remove anything you don't want. # 8 | # # 9 | # Close any open System Preferences panes, to prevent them from overriding # 10 | # settings we’re about to change # 11 | # # 12 | # This file is inspired by - https: 13 | ############################################################################## 14 | DIR=$(dirname "$0"); 15 | cd "$DIR"; 16 | ########################################################################################### 17 | # Variables for system preferences and settings # 18 | # NOTE: I use a multi Mac workflow, so I have to set the computer name based on the model # 19 | ########################################################################################### 20 | IS_MACBOOK=`system_profiler SPSoftwareDataType SPHardwareDataType | grep "Model Name" | grep "Book"`; 21 | if [ "$IS_MACBOOK" != "" ]; then 22 | COMPUTER_NAME="MacDaddy"; 23 | else 24 | COMPUTER_NAME="BigMac"; 25 | fi 26 | # echo "Computer name: $COMPUTER_NAME" # DEBUG 27 | . ../scripts/functions.sh; 28 | info "Configuring macOS defaults..."; 29 | # Ask for the administrator password upfront 30 | sudo -v; 31 | # # Keep-alive: update existing `sudo` time stamp until `.osx` has finished 32 | while true; do sudo -n true; sleep 60; kill -0 "$$" || exit; done 2>/dev/null &; 33 | 34 | substep_info "Setting computer name to $COMPUTER_NAME"; 35 | 36 | sudo scutil --set ComputerName "$COMPUTER_NAME"; 37 | sudo scutil --set LocalHostName "$COMPUTER_NAME"; 38 | sudo scutil --set HostName "$COMPUTER_NAME"; 39 | sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.smb.server NetBIOSName -string "$COMPUTER_NAME"; 40 | 41 | substep_success "Computer name set to $COMPUTER_NAME"; 42 | 43 | substep_info "Configuring MacOS system settings and preferences..."; 44 | source $DIR/01-preferences.sh; 45 | source $DIR/02-apps.sh; 46 | source $DIR/03-security.sh; 47 | 48 | substep_success "✔ All tasks were completed"; 49 | echo -e " .:'\n __ :'__\n .'\`__\`-'__\`\`.\n \ 50 | :__________.-'\n :_________:\n :_________\`-;\n \`.__.-.__.'" 51 | 52 | success "Restart $COMPUTER_NAME for changes to take effect."; 53 | -------------------------------------------------------------------------------- /nvim/.config/nvim.old.bak/.gitignore: -------------------------------------------------------------------------------- 1 | tt.* 2 | .tests 3 | doc/tags 4 | debug 5 | .repro 6 | foo.* 7 | *.log 8 | data 9 | -------------------------------------------------------------------------------- /nvim/.config/nvim.old.bak/.neoconf.json: -------------------------------------------------------------------------------- 1 | { 2 | "neodev": { 3 | "library": { 4 | "enabled": true, 5 | "plugins": true 6 | } 7 | }, 8 | "neoconf": { 9 | "plugins": { 10 | "lua_ls": { 11 | "enabled": true 12 | } 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /nvim/.config/nvim.old.bak/README.md: -------------------------------------------------------------------------------- 1 | # 💤 LazyVim 2 | 3 | A starter template for [LazyVim](https://github.com/LazyVim/LazyVim). 4 | Refer to the [documentation](https://lazyvim.github.io/installation) to get started. 5 | -------------------------------------------------------------------------------- /nvim/.config/nvim.old.bak/init.lua: -------------------------------------------------------------------------------- 1 | -- bootstrap lazy.nvim, LazyVim and your plugins 2 | require("config.lazy") 3 | -------------------------------------------------------------------------------- /nvim/.config/nvim.old.bak/lazyvim.json: -------------------------------------------------------------------------------- 1 | { 2 | "extras": [ 3 | "lazyvim.plugins.extras.ai.supermaven", 4 | "lazyvim.plugins.extras.coding.mini-surround", 5 | "lazyvim.plugins.extras.editor.dial", 6 | "lazyvim.plugins.extras.editor.navic", 7 | "lazyvim.plugins.extras.lang.clangd", 8 | "lazyvim.plugins.extras.lang.docker", 9 | "lazyvim.plugins.extras.lang.go", 10 | "lazyvim.plugins.extras.lang.java", 11 | "lazyvim.plugins.extras.lang.json", 12 | "lazyvim.plugins.extras.lang.markdown", 13 | "lazyvim.plugins.extras.lang.php", 14 | "lazyvim.plugins.extras.lang.sql", 15 | "lazyvim.plugins.extras.lang.tailwind", 16 | "lazyvim.plugins.extras.lang.terraform", 17 | "lazyvim.plugins.extras.lang.toml", 18 | "lazyvim.plugins.extras.lang.typescript", 19 | "lazyvim.plugins.extras.lang.yaml", 20 | "lazyvim.plugins.extras.linting.eslint" 21 | ], 22 | "install_version": 7, 23 | "news": { 24 | "NEWS.md": "10960" 25 | }, 26 | "version": 8 27 | } 28 | -------------------------------------------------------------------------------- /nvim/.config/nvim.old.bak/lua/config/autocmds.lua: -------------------------------------------------------------------------------- 1 | -- Autocmds are automatically loaded on the VeryLazy event 2 | -- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua 3 | -- Add any additional autocmds here 4 | -------------------------------------------------------------------------------- /nvim/.config/nvim.old.bak/lua/config/keymaps.lua: -------------------------------------------------------------------------------- 1 | -- Keymaps are automatically loaded on the VeryLazy event 2 | -- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua 3 | -- Add any additional keymaps here 4 | -- key 5 | -- = alt 6 | -- = ctrl 7 | -- = space 8 | -- = shift 9 | 10 | local keymap = vim.keymap 11 | local opts = { noremap = true, silent = true } 12 | local Util = require("lazyvim.util") 13 | 14 | -- using zellji instead of tmux 15 | -- keymap.set("n", "", "NvimTmuxNavigateLeft", { silent = true }) 16 | -- keymap.set("n", "", "NvimTmuxNavigateDown", { silent = true }) 17 | -- keymap.set("n", "", "NvimTmuxNavigateUp", { silent = true }) 18 | -- keymap.set("n", "", "NvimTmuxNavigateRight", { silent = true }) 19 | -- keymap.set("n", "", "NvimTmuxNavigateLastActive", { silent = true }) 20 | -- keymap.set("n", "", "NvimTmuxNavigateNavigateNext", { silent = true }) 21 | 22 | -- Borderless terminal - like vscode 23 | vim.keymap.set("n", "", function() 24 | Util.terminal(nil, { border = "none" }) 25 | end, { desc = "Term with border" }) 26 | 27 | -- Borderless lazygit 28 | vim.keymap.set("n", "gg", function() 29 | Util.terminal({ "lazygit" }, { cwd = Util.root(), esc_esc = false, ctrl_hjkl = false, border = "none" }) 30 | end, { desc = "Lazygit (root dir)" }) 31 | 32 | keymap.del({ "n", "i", "v" }, "") 33 | keymap.del({ "n", "i", "v" }, "") 34 | keymap.del("n", "") 35 | keymap.del("n", "") 36 | keymap.del("n", "") 37 | keymap.del("n", "") 38 | 39 | -- clear search highlights 40 | keymap.set("n", "nh", ":nohl", { desc = "Clear search highlights" }) 41 | 42 | -- keymap.set("n", "", 'lua require("tmux").resize_left()', { silent = true }) 43 | -- keymap.set("n", "", 'lua require("tmux").resize_bottom()', { silent = true }) 44 | -- keymap.set("n", "", 'lua require("tmux").resize_top()', { silent = true }) 45 | -- keymap.set("n", "", 'lua require("tmux").resize_right()', { silent = true }) 46 | 47 | local set_keymap = vim.api.nvim_set_keymap 48 | 49 | -- Split windows 50 | keymap.set("n", "ss", ":vsplit", opts) 51 | keymap.set("n", "sv", ":split", opts) 52 | 53 | -- Tabs 54 | keymap.set("n", "te", ":tabedit", opts) 55 | keymap.set("n", "", ":tabnext", opts) 56 | keymap.set("n", "", ":tabprev", opts) 57 | 58 | -- VSpaceCode Keymaps - VSCODE-ish 59 | keymap.set("n", "fs", "w", { noremap = true, desc = "Save file" }) -- Save file - VSpaceCode 60 | keymap.set("n", "", "za", { desc = "Code Folding" }) -- Code Folding 61 | 62 | keymap.set("n", "to", "tabnew", { desc = "Open new tab" }) 63 | keymap.set("n", "tx", "tabclose", { desc = "Close active tab" }) 64 | keymap.set("n", "tp", "tabp", { desc = "Go to previous tab" }) 65 | keymap.set("n", "tn", "tabn", { desc = "Go to next tab" }) 66 | 67 | -- package-info keymaps 68 | set_keymap( 69 | "n", 70 | "cpt", 71 | "ua require('package-info').toggle()", 72 | { silent = true, noremap = true, desc = "Toggle" } 73 | ) 74 | set_keymap( 75 | "n", 76 | "cpd", 77 | "lua require('package-info').delete()", 78 | { silent = true, noremap = true, desc = "Delete package" } 79 | ) 80 | set_keymap( 81 | "n", 82 | "cpu", 83 | "lua require('package-info').update()", 84 | { silent = true, noremap = true, desc = "Update package" } 85 | ) 86 | set_keymap( 87 | "n", 88 | "cpi", 89 | "lua require('package-info').install()", 90 | { silent = true, noremap = true, desc = "Install package" } 91 | ) 92 | set_keymap( 93 | "n", 94 | "cpc", 95 | "lua require('package-info').change_version()", 96 | { silent = true, noremap = true, desc = "Change package version" } 97 | ) 98 | -------------------------------------------------------------------------------- /nvim/.config/nvim.old.bak/lua/config/lazy.lua: -------------------------------------------------------------------------------- 1 | local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" 2 | 3 | if not (vim.uv or vim.loop).fs_stat(lazypath) then 4 | -- bootstrap lazy.nvim 5 | -- stylua: ignore 6 | vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", 7 | lazypath }) 8 | end 9 | vim.opt.rtp:prepend(vim.env.LAZY or lazypath) 10 | 11 | require("lazy").setup({ 12 | spec = { 13 | -- add LazyVim and import its plugins 14 | { "LazyVim/LazyVim", import = "lazyvim.plugins" }, 15 | -- import any extras modules here 16 | { import = "lazyvim.plugins.extras.dap.core" }, 17 | { import = "lazyvim.plugins.extras.editor.aerial" }, 18 | { import = "lazyvim.plugins.extras.editor.harpoon2" }, 19 | { import = "lazyvim.plugins.extras.editor.navic" }, 20 | { import = "lazyvim.plugins.extras.editor.telescope" }, 21 | { import = "lazyvim.plugins.extras.formatting.prettier" }, 22 | { import = "lazyvim.plugins.extras.lang.astro" }, 23 | { import = "lazyvim.plugins.extras.lang.docker" }, 24 | { import = "lazyvim.plugins.extras.lang.go" }, 25 | { import = "lazyvim.plugins.extras.lang.json" }, 26 | { import = "lazyvim.plugins.extras.lang.markdown" }, 27 | { import = "lazyvim.plugins.extras.lang.prisma" }, 28 | { import = "lazyvim.plugins.extras.lang.python" }, 29 | { import = "lazyvim.plugins.extras.lang.tailwind" }, 30 | { import = "lazyvim.plugins.extras.lang.typescript" }, 31 | { import = "lazyvim.plugins.extras.lang.yaml" }, 32 | { import = "lazyvim.plugins.extras.linting.eslint" }, 33 | { import = "lazyvim.plugins.extras.test.core" }, 34 | { import = "lazyvim.plugins.extras.ui.treesitter-context" }, 35 | { import = "lazyvim.plugins.extras.util.dot" }, 36 | { import = "lazyvim.plugins.extras.util.mini-hipatterns" }, 37 | { import = "lazyvim.plugins.extras.vscode" }, 38 | -- import/override with your plugins 39 | { import = "plugins" }, 40 | }, 41 | defaults = { 42 | -- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup. 43 | -- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default. 44 | lazy = false, 45 | -- It's recommended to leave version=false for now, since a lot the plugin that support versioning, 46 | -- have outdated releases, which may break your Neovim install. 47 | version = false, -- always use the latest git commit 48 | -- version = "*", -- try installing the latest stable version for plugins that support semver 49 | }, 50 | install = { colorscheme = {} }, 51 | checker = { enabled = true }, -- automatically check for plugin updates 52 | performance = { 53 | rtp = { 54 | -- disable some rtp plugins 55 | disabled_plugins = { 56 | "gzip", 57 | "matchit", 58 | "matchparen", 59 | "netrwPlugin", 60 | "tarPlugin", 61 | "tohtml", 62 | "tutor", 63 | "zipPlugin", 64 | }, 65 | }, 66 | }, 67 | }) 68 | 69 | vim.cmd("highlight Visual ctermbg=0 guibg=#6441A5") 70 | -------------------------------------------------------------------------------- /nvim/.config/nvim.old.bak/lua/config/options.lua: -------------------------------------------------------------------------------- 1 | -- Options are automatically loaded before lazy.nvim startup 2 | -- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua 3 | -- Add any additional options here 4 | 5 | local opt = vim.opt 6 | 7 | opt.conceallevel = 0 8 | opt.cmdheight = 0 9 | 10 | vim.g.root_spec = { "cwd" } 11 | vim.g.omni_sql_no_default_maps = 1 12 | vim.g.python3_host_prog = "/usr/bin/python3" 13 | -------------------------------------------------------------------------------- /nvim/.config/nvim.old.bak/lua/plugins/coding.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "smjonas/inc-rename.nvim", 3 | cmd = "IncRename", 4 | config = true, 5 | } 6 | -------------------------------------------------------------------------------- /nvim/.config/nvim.old.bak/lua/plugins/colorscheme.lua: -------------------------------------------------------------------------------- 1 | return { 2 | { 3 | "eldritch-theme/eldritch.nvim", 4 | lazy = false, 5 | priority = 1000, 6 | opts = {}, 7 | }, 8 | -- set colortheme 9 | { 10 | "LazyVim/LazyVim", 11 | opts = { 12 | colorscheme = "eldritch", 13 | }, 14 | }, 15 | } 16 | -------------------------------------------------------------------------------- /nvim/.config/nvim.old.bak/lua/plugins/dap.lua: -------------------------------------------------------------------------------- 1 | return { 2 | { 3 | "mfussenegger/nvim-dap", 4 | keys = { 5 | { 6 | "dO", 7 | function() 8 | require("dap").step_out() 9 | end, 10 | desc = "Step Out", 11 | }, 12 | { 13 | "do", 14 | function() 15 | require("dap").step_over() 16 | end, 17 | desc = "Step Over", 18 | }, 19 | }, 20 | }, 21 | { 22 | "theHamsta/nvim-dap-virtual-text", 23 | opts = { 24 | virt_text_win_col = 80, 25 | }, 26 | }, 27 | } 28 | -------------------------------------------------------------------------------- /nvim/.config/nvim.old.bak/lua/plugins/disabled.lua: -------------------------------------------------------------------------------- 1 | return { 2 | -- Disable auto opening (){}[] 3 | { "echasnovski/mini.pairs", enabled = false }, 4 | } 5 | -------------------------------------------------------------------------------- /nvim/.config/nvim.old.bak/lua/plugins/lsp.lua: -------------------------------------------------------------------------------- 1 | -- Disable "No information available" notification on hover 2 | -- plus define border for hover window 3 | vim.lsp.handlers["textDocument/hover"] = function(_, result, ctx, config) 4 | config = config 5 | or { 6 | border = { 7 | { "╭", "Comment" }, 8 | { "─", "Comment" }, 9 | { "╮", "Comment" }, 10 | { "│", "Comment" }, 11 | { "╯", "Comment" }, 12 | { "─", "Comment" }, 13 | { "╰", "Comment" }, 14 | { "│", "Comment" }, 15 | }, 16 | } 17 | config.focus_id = ctx.method 18 | if not (result and result.contents) then 19 | return 20 | end 21 | local markdown_lines = vim.lsp.util.convert_input_to_markdown_lines(result.contents) 22 | markdown_lines = vim.lsp.util.trim_empty_lines(markdown_lines) 23 | if vim.tbl_isempty(markdown_lines) then 24 | return 25 | end 26 | return vim.lsp.util.open_floating_preview(markdown_lines, "markdown", config) 27 | end 28 | 29 | return { 30 | { 31 | "neovim/nvim-lspconfig", 32 | opts = { 33 | servers = { 34 | vtsls = { 35 | settings = { 36 | typescript = { 37 | inlayHints = { 38 | enumMemberValues = { enabled = false }, 39 | functionLikeReturnTypes = { enabled = false }, 40 | parameterNames = { enabled = false }, 41 | parameterTypes = { enabled = false }, 42 | propertyDeclarationTypes = { enabled = false }, 43 | variableTypes = { enabled = false }, 44 | }, 45 | }, 46 | }, 47 | }, 48 | gopls = { 49 | settings = { 50 | gopls = { 51 | hints = { 52 | assignVariableTypes = false, 53 | compositeLiteralFields = false, 54 | compositeLiteralTypes = false, 55 | constantValues = false, 56 | functionTypeParameters = false, 57 | parameterNames = false, 58 | rangeVariableTypes = false, 59 | }, 60 | }, 61 | }, 62 | }, 63 | }, 64 | }, 65 | }, 66 | } 67 | -------------------------------------------------------------------------------- /nvim/.config/nvim.old.bak/lua/plugins/lualine.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "nvim-lualine/lualine.nvim", 3 | event = "VeryLazy", 4 | init = function() 5 | vim.g.lualine_laststatus = vim.o.laststatus 6 | if vim.fn.argc(-1) > 0 then 7 | -- set an empty statusline till lualine loads 8 | vim.o.statusline = " " 9 | else 10 | -- hide the statusline on the starter page 11 | vim.o.laststatus = 0 12 | end 13 | end, 14 | opts = function() 15 | -- PERF: we don't need this lualine require madness 🤷 16 | local lualine_require = require("lualine_require") 17 | lualine_require.require = require 18 | 19 | local icons = require("lazyvim.config").icons 20 | local Util = require("lazyvim.util") 21 | 22 | vim.o.laststatus = vim.g.lualine_laststatus 23 | 24 | return { 25 | options = { 26 | theme = "auto", 27 | globalstatus = true, 28 | disabled_filetypes = { statusline = { "dashboard", "alpha", "starter" } }, 29 | }, 30 | sections = { 31 | lualine_a = { "mode" }, 32 | lualine_b = { "branch" }, 33 | 34 | lualine_c = { 35 | Util.lualine.root_dir(), 36 | { 37 | "diagnostics", 38 | symbols = { 39 | error = icons.diagnostics.Error, 40 | warn = icons.diagnostics.Warn, 41 | info = icons.diagnostics.Info, 42 | hint = icons.diagnostics.Hint, 43 | }, 44 | }, 45 | { "filetype", icon_only = true, separator = "", padding = { left = 1, right = 0 } }, 46 | { Util.lualine.pretty_path() }, 47 | { 48 | require("package-info").get_status, 49 | color = Util.ui.fg("Statement"), 50 | }, 51 | { 52 | function() 53 | return require("nvim-navic").get_location() 54 | end, 55 | cond = function() 56 | return package.loaded["nvim-navic"] and require("nvim-navic").is_available() 57 | end, 58 | }, 59 | }, 60 | lualine_x = { 61 | -- stylua: ignore 62 | { 63 | function() return require("noice").api.status.command.get() end, 64 | cond = function() return package.loaded["noice"] and require("noice").api.status.command.has() end, 65 | color = Util.ui.fg("Statement"), 66 | }, 67 | -- stylua: ignore 68 | { 69 | function() return require("noice").api.status.mode.get() end, 70 | cond = function() return package.loaded["noice"] and require("noice").api.status.mode.has() end, 71 | color = Util.ui.fg("Constant"), 72 | }, 73 | -- stylua: ignore 74 | { 75 | function() return " " .. require("dap").status() end, 76 | cond = function() return package.loaded["dap"] and require("dap").status() ~= "" end, 77 | color = Util.ui.fg("Debug"), 78 | }, 79 | { 80 | require("lazy.status").updates, 81 | cond = require("lazy.status").has_updates, 82 | color = Util.ui.fg("Special"), 83 | }, 84 | { 85 | "diff", 86 | symbols = { 87 | added = icons.git.added, 88 | modified = icons.git.modified, 89 | removed = icons.git.removed, 90 | }, 91 | source = function() 92 | local gitsigns = vim.b.gitsigns_status_dict 93 | if gitsigns then 94 | return { 95 | added = gitsigns.added, 96 | modified = gitsigns.changed, 97 | removed = gitsigns.removed, 98 | } 99 | end 100 | end, 101 | }, 102 | }, 103 | }, 104 | extensions = { "neo-tree", "lazy" }, 105 | } 106 | end, 107 | } 108 | -------------------------------------------------------------------------------- /nvim/.config/nvim.old.bak/lua/plugins/luasnip.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "L3MON4D3/LuaSnip", 3 | opts = { 4 | history = true, 5 | region_check_events = "InsertEnter", 6 | delete_check_events = "TextChanged,InsertLeave", 7 | }, 8 | } 9 | -------------------------------------------------------------------------------- /nvim/.config/nvim.old.bak/lua/plugins/mason.lua: -------------------------------------------------------------------------------- 1 | return { 2 | { 3 | "williamboman/mason.nvim", 4 | opts = { 5 | ensure_installed = { 6 | "eslint-lsp", 7 | "hadolint", 8 | "prettierd", 9 | "shfmt", 10 | "stylua", 11 | "selene", 12 | "shellcheck", 13 | "delve", 14 | "sql-formatter", 15 | }, 16 | }, 17 | }, 18 | } 19 | -------------------------------------------------------------------------------- /nvim/.config/nvim.old.bak/lua/plugins/mini-move.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "echasnovski/mini.move", 3 | event = "VeryLazy", 4 | opts = { 5 | mappings = { 6 | left = "H", 7 | right = "L", 8 | down = "J", 9 | up = "K", 10 | 11 | line_left = "", 12 | line_right = "", 13 | line_down = "", 14 | line_up = "", 15 | }, 16 | }, 17 | } 18 | -------------------------------------------------------------------------------- /nvim/.config/nvim.old.bak/lua/plugins/neotree.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "nvim-neo-tree/neo-tree.nvim", 3 | opts = { 4 | window = { 5 | position = "right", 6 | width = 30, 7 | mappings = { 8 | ["Y"] = "none", 9 | }, 10 | }, 11 | filesystem = { 12 | filtered_items = { 13 | visiable = true, 14 | hide_hidden = false, 15 | hide_dotfiles = false, 16 | hide_gitignored = false, 17 | hide_by_name = { 18 | ".git", 19 | "node_modules", 20 | }, 21 | never_show = { 22 | ".DS_Store", 23 | }, 24 | always_show = { 25 | ".gitignored", 26 | ".env", 27 | }, 28 | }, 29 | }, 30 | }, 31 | } 32 | -------------------------------------------------------------------------------- /nvim/.config/nvim.old.bak/lua/plugins/nvim-cmp.lua: -------------------------------------------------------------------------------- 1 | return { 2 | { 3 | "hrsh7th/nvim-cmp", 4 | opts = function(_, opts) 5 | opts.completion.autocomplete = false 6 | opts.mapping[""] = nil 7 | opts.window = { 8 | completion = { 9 | border = { 10 | { "󱐋", "WarningMsg" }, 11 | { "─", "Comment" }, 12 | { "╮", "Comment" }, 13 | { "│", "Comment" }, 14 | { "╯", "Comment" }, 15 | { "─", "Comment" }, 16 | { "╰", "Comment" }, 17 | { "│", "Comment" }, 18 | }, 19 | scrollbar = false, 20 | winblend = 0, 21 | }, 22 | documentation = { 23 | border = { 24 | { "󰙎", "DiagnosticHint" }, 25 | { "─", "Comment" }, 26 | { "╮", "Comment" }, 27 | { "│", "Comment" }, 28 | { "╯", "Comment" }, 29 | { "─", "Comment" }, 30 | { "╰", "Comment" }, 31 | { "│", "Comment" }, 32 | }, 33 | scrollbar = false, 34 | winblend = 0, 35 | }, 36 | } 37 | end, 38 | }, 39 | } 40 | -------------------------------------------------------------------------------- /nvim/.config/nvim.old.bak/lua/plugins/package-info.lua: -------------------------------------------------------------------------------- 1 | return { 2 | { 3 | "vuki656/package-info.nvim", 4 | ft = "json", 5 | dependencies = { "MunifTanjim/nui.nvim" }, 6 | config = function() 7 | require("package-info").setup({ 8 | autostart = false, 9 | package_manager = "npm", 10 | colors = { 11 | outdated = "#db4b4b", 12 | }, 13 | hide_up_to_date = true, 14 | }) 15 | end, 16 | }, 17 | } 18 | -------------------------------------------------------------------------------- /nvim/.config/nvim.old.bak/lua/plugins/supermaven.lua: -------------------------------------------------------------------------------- 1 | return { 2 | { 3 | "supermaven-inc/supermaven-nvim", 4 | config = function() 5 | require("supermaven-nvim").setup({ 6 | keymaps = { 7 | accept_suggestion = "", 8 | clear_suggestion = "", 9 | accept_word = "", 10 | }, 11 | ignore_filetypes = { cpp = true }, -- or { "cpp", } 12 | color = { 13 | suggestion_color = "#3b4261", 14 | cterm = 244, 15 | }, 16 | log_level = "info", -- set to "off" to disable logging completely 17 | disable_inline_completion = false, -- disables inline completion for use with cmp 18 | disable_keymaps = false, -- disables built in keymaps for more manual control 19 | condition = function() 20 | return false 21 | end, -- condition to check for stopping supermaven, `true` means to stop supermaven when the condition is true. 22 | }) 23 | end, 24 | }, 25 | } 26 | -------------------------------------------------------------------------------- /nvim/.config/nvim.old.bak/lua/plugins/test.lua: -------------------------------------------------------------------------------- 1 | return { 2 | { 3 | "nvim-neotest/neotest", 4 | dependencies = { "nvim-neotest/neotest-jest", "marilari88/neotest-vitest" }, 5 | opts = function(_, opts) 6 | table.insert(opts.adapters, require("neotest-jest")) 7 | table.insert(opts.adapters, require("neotest-vitest")) 8 | end, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /nvim/.config/nvim.old.bak/lua/plugins/tmux-nvim.lua: -------------------------------------------------------------------------------- 1 | return { 2 | { 3 | "aserowy/tmux.nvim", 4 | config = function() 5 | return require("tmux").setup({ 6 | resize = { 7 | enable_default_keybindings = false, 8 | }, 9 | }) 10 | end, 11 | }, 12 | } 13 | -------------------------------------------------------------------------------- /nvim/.config/nvim.old.bak/lua/plugins/tmux.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "alexghergh/nvim-tmux-navigation", 3 | event = "VeryLazy", 4 | config = function() 5 | local nvim_tmux_nav = require("nvim-tmux-navigation") 6 | nvim_tmux_nav.setup({ 7 | disable_when_zoomed = true, 8 | -- defaults to false 9 | keybindings = { 10 | left = "", 11 | down = "", 12 | up = "", 13 | right = "", 14 | last_active = "", 15 | next = "", 16 | }, 17 | }) 18 | end, 19 | } 20 | -------------------------------------------------------------------------------- /nvim/.config/nvim.old.bak/lua/plugins/treesitter.lua: -------------------------------------------------------------------------------- 1 | return { 2 | { 3 | "nvim-treesitter/nvim-treesitter", 4 | opts = { 5 | ensure_installed = { 6 | "astro", 7 | "bash", 8 | "c", 9 | "cmake", 10 | "cpp", 11 | "css", 12 | "diff", 13 | "dockerfile", 14 | "gitignore", 15 | "go", 16 | "gomod", 17 | "gosum", 18 | "gowork", 19 | "html", 20 | "http", 21 | "javascript", 22 | "jsdoc", 23 | "json", 24 | "json5", 25 | "jsonc", 26 | "lua", 27 | "luadoc", 28 | "luap", 29 | "markdown", 30 | "markdown_inline", 31 | "prisma", 32 | "python", 33 | "query", 34 | "regex", 35 | "sql", 36 | "toml", 37 | "tsx", 38 | "typescript", 39 | "vim", 40 | "vimdoc", 41 | "yaml", 42 | }, 43 | config = function(_, opts) 44 | require("nvim-treesitter.configs").setup(opts) 45 | 46 | -- MDX 47 | vim.filetype.add({ 48 | extension = { 49 | mdx = "mdx", 50 | }, 51 | }) 52 | vim.treesitter.language.register("markdown", "mdx") 53 | end, 54 | }, 55 | }, 56 | { 57 | "nvim-treesitter/playground", 58 | }, 59 | { 60 | "nvim-treesitter/nvim-treesitter-context", 61 | enabled = false, 62 | }, 63 | } 64 | -------------------------------------------------------------------------------- /nvim/.config/nvim.old.bak/lua/plugins/twilight.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "folke/twilight.nvim", 3 | opts = { 4 | context = 0, 5 | expand = { 6 | "function", 7 | "method", 8 | "table", 9 | "if_statement", 10 | "function_declaration", 11 | "method_declaration", 12 | "pair", 13 | }, 14 | }, 15 | } 16 | -------------------------------------------------------------------------------- /nvim/.config/nvim.old.bak/lua/plugins/ui.lua: -------------------------------------------------------------------------------- 1 | return { 2 | { 3 | "lukas-reineke/virt-column.nvim", 4 | opts = { 5 | char = { "┆" }, 6 | virtcolumn = "80", 7 | highlight = { "NonText" }, 8 | }, 9 | }, 10 | { 11 | "folke/noice.nvim", 12 | enabled = false, 13 | }, 14 | { 15 | "j-hui/fidget.nvim", 16 | opts = { 17 | notification = { 18 | window = { 19 | winblend = 0, 20 | border = "rounded", 21 | }, 22 | }, 23 | }, 24 | }, 25 | { 26 | "rcarriga/nvim-notify", 27 | opts = { 28 | timeout = 500, 29 | render = "compact", 30 | max_height = function() 31 | return math.floor(vim.o.lines * 0.75) 32 | end, 33 | max_width = function() 34 | return math.floor(vim.o.columns * 0.25) 35 | end, 36 | on_open = function(win) 37 | vim.api.nvim_win_set_config(win, { zindex = 100 }) 38 | end, 39 | }, 40 | }, 41 | -- filename 42 | { 43 | "b0o/incline.nvim", 44 | event = "BufReadPre", 45 | priority = 1200, 46 | config = function() 47 | require("incline").setup({ 48 | highlight = { 49 | groups = { 50 | InclineNormal = { guibg = "#303270", guifg = "#a9b1d6" }, 51 | InclineNormalNC = { guibg = "none", guifg = "#a9b1d6" }, 52 | }, 53 | }, 54 | window = { margin = { vertical = 0, horizontal = 1 } }, 55 | hide = { cursorline = true, only_win = true }, 56 | render = function(props) 57 | local filename = vim.fn.fnamemodify(vim.api.nvim_buf_get_name(props.buf), ":t") 58 | if vim.bo[props.buf].modified then 59 | filename = "[*]" .. filename 60 | end 61 | 62 | local icon, color = require("nvim-web-devicons").get_icon_color(filename) 63 | 64 | return { { icon, guifg = color }, { " " }, { filename } } 65 | end, 66 | }) 67 | end, 68 | }, 69 | 70 | -- bufferline 71 | { 72 | "akinsho/bufferline.nvim", 73 | opts = { 74 | options = { 75 | mode = "tabs", 76 | show_buffer_close_icons = false, 77 | show_close_icon = false, 78 | }, 79 | }, 80 | }, 81 | } 82 | -------------------------------------------------------------------------------- /nvim/.config/nvim.old.bak/lua/plugins/visual-multi.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "mg979/vim-visual-multi", 3 | } 4 | -------------------------------------------------------------------------------- /nvim/.config/nvim.old.bak/lua/plugins/which-key.lua: -------------------------------------------------------------------------------- 1 | return { 2 | { 3 | "folke/which-key.nvim", 4 | opts = { 5 | spec = { 6 | { "cp", group = "packages", icon = { icon = "", color = "yellow" } }, 7 | }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /nvim/.config/nvim.old.bak/lua/plugins/window-picker.lua: -------------------------------------------------------------------------------- 1 | return { 2 | { 3 | "s1n7ax/nvim-window-picker", 4 | name = "window-picker", 5 | event = "VeryLazy", 6 | version = "2.*", 7 | config = function() 8 | require("window-picker").setup() 9 | end, 10 | }, 11 | } 12 | -------------------------------------------------------------------------------- /nvim/.config/nvim.old.bak/lua/plugins/zenmode.lua: -------------------------------------------------------------------------------- 1 | return { 2 | { 3 | "folke/zen-mode.nvim", 4 | opts = { 5 | window = { 6 | width = 120, 7 | }, 8 | plugins = { 9 | options = { 10 | laststatus = 0, 11 | }, 12 | twilight = { 13 | enabled = false, 14 | }, 15 | }, 16 | on_open = function() 17 | require("package-info").hide() 18 | end, 19 | }, 20 | }, 21 | } 22 | -------------------------------------------------------------------------------- /nvim/.config/nvim.old.bak/stylua.toml: -------------------------------------------------------------------------------- 1 | indent_type = "Spaces" 2 | indent_width = 2 3 | column_width = 120 -------------------------------------------------------------------------------- /nvim/.config/nvim/.config/nvim/lua/configneotree.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "nvim-neo-tree/neo-tree.nvim", 3 | opts = { 4 | window = { 5 | position = "right", 6 | width = 30, 7 | mappings = { 8 | ["Y"] = "none", 9 | }, 10 | }, 11 | filesystem = { 12 | filtered_items = { 13 | visiable = true, 14 | hide_hidden = false, 15 | hide_dotfiles = false, 16 | hide_gitignored = false, 17 | hide_by_name = { 18 | ".git", 19 | "node_modules", 20 | }, 21 | never_show = { 22 | ".DS_Store", 23 | }, 24 | always_show = { 25 | ".gitignored", 26 | ".env", 27 | }, 28 | }, 29 | }, 30 | }, 31 | } 32 | -------------------------------------------------------------------------------- /nvim/.config/nvim/.gitignore: -------------------------------------------------------------------------------- 1 | tt.* 2 | .tests 3 | doc/tags 4 | debug 5 | .repro 6 | foo.* 7 | *.log 8 | data 9 | -------------------------------------------------------------------------------- /nvim/.config/nvim/.neoconf.json: -------------------------------------------------------------------------------- 1 | { 2 | "neodev": { 3 | "library": { 4 | "enabled": true, 5 | "plugins": true 6 | } 7 | }, 8 | "neoconf": { 9 | "plugins": { 10 | "lua_ls": { 11 | "enabled": true 12 | } 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /nvim/.config/nvim/README.md: -------------------------------------------------------------------------------- 1 | # 💤 LazyVim 2 | 3 | A starter template for [LazyVim](https://github.com/LazyVim/LazyVim). 4 | Refer to the [documentation](https://lazyvim.github.io/installation) to get started. 5 | -------------------------------------------------------------------------------- /nvim/.config/nvim/init.lua: -------------------------------------------------------------------------------- 1 | -- bootstrap lazy.nvim, LazyVim and your plugins 2 | require("config.lazy") 3 | -------------------------------------------------------------------------------- /nvim/.config/nvim/lazyvim.json: -------------------------------------------------------------------------------- 1 | { 2 | "extras": [ 3 | "lazyvim.plugins.extras.ai.supermaven", 4 | "lazyvim.plugins.extras.coding.yanky", 5 | "lazyvim.plugins.extras.editor.dial", 6 | "lazyvim.plugins.extras.editor.neo-tree", 7 | "lazyvim.plugins.extras.lang.astro", 8 | "lazyvim.plugins.extras.lang.go", 9 | "lazyvim.plugins.extras.lang.json", 10 | "lazyvim.plugins.extras.lang.markdown", 11 | "lazyvim.plugins.extras.lang.php", 12 | "lazyvim.plugins.extras.lang.tailwind", 13 | "lazyvim.plugins.extras.lang.toml", 14 | "lazyvim.plugins.extras.lang.typescript", 15 | "lazyvim.plugins.extras.lang.yaml", 16 | "lazyvim.plugins.extras.util.dot", 17 | "lazyvim.plugins.extras.util.mini-hipatterns" 18 | ], 19 | "install_version": 8, 20 | "news": { 21 | "NEWS.md": "10960" 22 | }, 23 | "version": 8 24 | } -------------------------------------------------------------------------------- /nvim/.config/nvim/lua/config/autocmds.lua: -------------------------------------------------------------------------------- 1 | -- Autocmds are automatically loaded on the VeryLazy event 2 | -- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua 3 | -- 4 | -- Add any additional autocmds here 5 | -- with `vim.api.nvim_create_autocmd` 6 | -- 7 | -- Or remove existing autocmds by their group name (which is prefixed with `lazyvim_` for the defaults) 8 | -- e.g. vim.api.nvim_del_augroup_by_name("lazyvim_wrap_spell") 9 | -------------------------------------------------------------------------------- /nvim/.config/nvim/lua/config/keymaps.lua: -------------------------------------------------------------------------------- 1 | -- Keymaps are automatically loaded on the VeryLazy event 2 | -- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua 3 | -- Add any additional keymaps here 4 | -- key 5 | -- = alt 6 | -- = ctrl 7 | -- = space 8 | -- = shift 9 | 10 | local keymap = vim.keymap 11 | local opts = { noremap = true, silent = true } 12 | local Util = require("lazyvim.util") 13 | 14 | -- using zellji instead of tmux 15 | -- keymap.set("n", "", "NvimTmuxNavigateLeft", { silent = true }) 16 | -- keymap.set("n", "", "NvimTmuxNavigateDown", { silent = true }) 17 | -- keymap.set("n", "", "NvimTmuxNavigateUp", { silent = true }) 18 | -- keymap.set("n", "", "NvimTmuxNavigateRight", { silent = true }) 19 | -- keymap.set("n", "", "NvimTmuxNavigateLastActive", { silent = true }) 20 | -- keymap.set("n", "", "NvimTmuxNavigateNavigateNext", { silent = true }) 21 | 22 | -- Borderless terminal - like vscode 23 | vim.keymap.set("n", "", function() 24 | Util.terminal(nil, { border = "none" }) 25 | end, { desc = "Term with border" }) 26 | 27 | -- Borderless lazygit 28 | vim.keymap.set("n", "gg", function() 29 | Util.terminal({ "lazygit" }, { cwd = Util.root(), esc_esc = false, ctrl_hjkl = false, border = "none" }) 30 | end, { desc = "Lazygit (root dir)" }) 31 | 32 | keymap.del({ "n", "i", "v" }, "") 33 | keymap.del({ "n", "i", "v" }, "") 34 | keymap.del("n", "") 35 | keymap.del("n", "") 36 | keymap.del("n", "") 37 | keymap.del("n", "") 38 | 39 | -- clear search highlights 40 | keymap.set("n", "nh", ":nohl", { desc = "Clear search highlights" }) 41 | 42 | -- keymap.set("n", "", 'lua require("tmux").resize_left()', { silent = true }) 43 | -- keymap.set("n", "", 'lua require("tmux").resize_bottom()', { silent = true }) 44 | -- keymap.set("n", "", 'lua require("tmux").resize_top()', { silent = true }) 45 | -- keymap.set("n", "", 'lua require("tmux").resize_right()', { silent = true }) 46 | 47 | local set_keymap = vim.api.nvim_set_keymap 48 | 49 | -- Split windows 50 | keymap.set("n", "ss", ":vsplit", opts) 51 | keymap.set("n", "sv", ":split", opts) 52 | 53 | -- Tabs 54 | keymap.set("n", "te", ":tabedit", opts) 55 | keymap.set("n", "", ":tabnext", opts) 56 | keymap.set("n", "", ":tabprev", opts) 57 | 58 | -- VSpaceCode Keymaps - VSCODE-ish 59 | keymap.set("n", "fs", "w", { noremap = true, desc = "Save file" }) -- Save file - VSpaceCode 60 | keymap.set("n", "", "za", { desc = "Code Folding" }) -- Code Folding 61 | 62 | keymap.set("n", "to", "tabnew", { desc = "Open new tab" }) 63 | keymap.set("n", "tx", "tabclose", { desc = "Close active tab" }) 64 | keymap.set("n", "tp", "tabp", { desc = "Go to previous tab" }) 65 | keymap.set("n", "tn", "tabn", { desc = "Go to next tab" }) 66 | 67 | -- package-info keymaps 68 | set_keymap( 69 | "n", 70 | "cpt", 71 | "ua require('package-info').toggle()", 72 | { silent = true, noremap = true, desc = "Toggle" } 73 | ) 74 | set_keymap( 75 | "n", 76 | "cpd", 77 | "lua require('package-info').delete()", 78 | { silent = true, noremap = true, desc = "Delete package" } 79 | ) 80 | set_keymap( 81 | "n", 82 | "cpu", 83 | "lua require('package-info').update()", 84 | { silent = true, noremap = true, desc = "Update package" } 85 | ) 86 | set_keymap( 87 | "n", 88 | "cpi", 89 | "lua require('package-info').install()", 90 | { silent = true, noremap = true, desc = "Install package" } 91 | ) 92 | set_keymap( 93 | "n", 94 | "cpc", 95 | "lua require('package-info').change_version()", 96 | { silent = true, noremap = true, desc = "Change package version" } 97 | ) 98 | -------------------------------------------------------------------------------- /nvim/.config/nvim/lua/config/lazy.lua: -------------------------------------------------------------------------------- 1 | local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" 2 | if not (vim.uv or vim.loop).fs_stat(lazypath) then 3 | local lazyrepo = "https://github.com/folke/lazy.nvim.git" 4 | local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath }) 5 | if vim.v.shell_error ~= 0 then 6 | vim.api.nvim_echo({ 7 | { "Failed to clone lazy.nvim:\n", "ErrorMsg" }, 8 | { out, "WarningMsg" }, 9 | { "\nPress any key to exit..." }, 10 | }, true, {}) 11 | vim.fn.getchar() 12 | os.exit(1) 13 | end 14 | end 15 | vim.opt.rtp:prepend(lazypath) 16 | 17 | require("lazy").setup({ 18 | spec = { 19 | -- add LazyVim and import its plugins 20 | { "LazyVim/LazyVim", import = "lazyvim.plugins" }, 21 | -- import/override with your plugins 22 | { import = "plugins" }, 23 | }, 24 | defaults = { 25 | -- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup. 26 | -- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default. 27 | lazy = false, 28 | -- It's recommended to leave version=false for now, since a lot the plugin that support versioning, 29 | -- have outdated releases, which may break your Neovim install. 30 | version = false, -- always use the latest git commit 31 | -- version = "*", -- try installing the latest stable version for plugins that support semver 32 | }, 33 | install = { colorscheme = { "tokyonight", "habamax" } }, 34 | checker = { 35 | enabled = true, -- check for plugin updates periodically 36 | notify = false, -- notify on update 37 | }, -- automatically check for plugin updates 38 | performance = { 39 | rtp = { 40 | -- disable some rtp plugins 41 | disabled_plugins = { 42 | "gzip", 43 | -- "matchit", 44 | -- "matchparen", 45 | -- "netrwPlugin", 46 | "tarPlugin", 47 | "tohtml", 48 | "tutor", 49 | "zipPlugin", 50 | }, 51 | }, 52 | }, 53 | }) 54 | -------------------------------------------------------------------------------- /nvim/.config/nvim/lua/config/options.lua: -------------------------------------------------------------------------------- 1 | -- Options are automatically loaded before lazy.nvim startup 2 | -- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua 3 | -- Add any additional options here 4 | -------------------------------------------------------------------------------- /nvim/.config/nvim/lua/plugins/colorscheme.lua: -------------------------------------------------------------------------------- 1 | return { 2 | { 3 | "eldritch-theme/eldritch.nvim", 4 | lazy = false, 5 | priority = 1000, 6 | opts = {}, 7 | }, 8 | -- set colortheme 9 | { 10 | "LazyVim/LazyVim", 11 | opts = { 12 | colorscheme = "eldritch", 13 | }, 14 | }, 15 | } 16 | -------------------------------------------------------------------------------- /nvim/.config/nvim/lua/plugins/neotree.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "nvim-neo-tree/neo-tree.nvim", 3 | opts = { 4 | window = { 5 | position = "right", 6 | width = 30, 7 | mappings = { 8 | ["Y"] = "none", 9 | }, 10 | }, 11 | filesystem = { 12 | filtered_items = { 13 | visiable = true, 14 | hide_hidden = false, 15 | hide_dotfiles = false, 16 | hide_gitignored = false, 17 | hide_by_name = { 18 | ".git", 19 | "node_modules", 20 | }, 21 | never_show = { 22 | ".DS_Store", 23 | }, 24 | always_show = { 25 | ".gitignored", 26 | ".env", 27 | }, 28 | }, 29 | }, 30 | }, 31 | } 32 | -------------------------------------------------------------------------------- /nvim/.config/nvim/lua/plugins/supermaven.lua: -------------------------------------------------------------------------------- 1 | return { 2 | { 3 | "supermaven-inc/supermaven-nvim", 4 | config = function() 5 | require("supermaven-nvim").setup({ 6 | keymaps = { 7 | accept_suggestion = "", 8 | clear_suggestion = "", 9 | accept_word = "", 10 | }, 11 | ignore_filetypes = { cpp = true }, -- or { "cpp", } 12 | color = { 13 | suggestion_color = "#3b4261", 14 | cterm = 244, 15 | }, 16 | log_level = "info", -- set to "off" to disable logging completely 17 | disable_inline_completion = false, -- disables inline completion for use with cmp 18 | disable_keymaps = false, -- disables built in keymaps for more manual control 19 | condition = function() 20 | return false 21 | end, -- condition to check for stopping supermaven, `true` means to stop supermaven when the condition is true. 22 | }) 23 | end, 24 | }, 25 | } 26 | -------------------------------------------------------------------------------- /nvim/.config/nvim/lua/plugins/which-key.lua: -------------------------------------------------------------------------------- 1 | return { 2 | { 3 | "folke/which-key.nvim", 4 | opts = { 5 | spec = { 6 | { "cp", group = "packages", icon = { icon = "", color = "yellow" } }, 7 | }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /nvim/.config/nvim/stylua.toml: -------------------------------------------------------------------------------- 1 | indent_type = "Spaces" 2 | indent_width = 2 3 | column_width = 120 -------------------------------------------------------------------------------- /nvim/.stow-local-ignore: -------------------------------------------------------------------------------- 1 | # GNU stow ignore .gitignore files by default, and so we modify the default 2 | # ignore list, taken from 3 | # http://www.gnu.org/software/stow/manual/html_node/Types-And-Syntax-Of-Ignore-Lists.html, 4 | # to exclude the gitignore line 5 | 6 | # Comments and blank lines are allowed 7 | 8 | .DS_Store 9 | 10 | nvim.sh 11 | -------------------------------------------------------------------------------- /packages/node_packages.txt: -------------------------------------------------------------------------------- 1 | corepack 2 | npm 3 | -------------------------------------------------------------------------------- /packages/pipx_packages.txt: -------------------------------------------------------------------------------- 1 | djlint -------------------------------------------------------------------------------- /packages/pnpm_packages.txt: -------------------------------------------------------------------------------- 1 | @antfu/ni 2 | @bitwarden/cli 3 | @vscode/vsce 4 | cspell 5 | easy-sharing 6 | intelephense 7 | lighthouse 8 | neovim 9 | typescript 10 | typescript-language-server 11 | wrangler 12 | @anthropic-ai/claude-code 13 | -------------------------------------------------------------------------------- /packages/ruby_packages.txt: -------------------------------------------------------------------------------- 1 | bundle 2 | jekyll 3 | neovim 4 | -------------------------------------------------------------------------------- /packages/rust_packages.txt: -------------------------------------------------------------------------------- 1 | ccase 2 | ouch 3 | suckit 4 | bws 5 | -------------------------------------------------------------------------------- /private/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edheltzel/dotfiles/80c2a070d17ef7cf39b5e6761a24af88eecefdf2/private/.gitkeep -------------------------------------------------------------------------------- /scripts/nvim.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env sh 2 | 3 | DIR=$(dirname "$0") 4 | cd "$DIR" 5 | 6 | . ../scripts/functions.sh 7 | 8 | CONFIG_PATH="$(realpath ~/.config)" 9 | NVM_DIR="$(realpath ~/.config/nvim)" 10 | VIM_DISTRO="LazyVim" 11 | 12 | YELLOW='\033[1;33m' 13 | NC='\033[0m' # No Color 14 | 15 | install_nvm() { 16 | nvm_repo='https://github.com/LazyVim/starter.git' # Corrected this line 17 | if [ -d "$NVM_DIR" ]; then # Already installed, update 18 | cd $NVM_DIR && git pull # Corrected this line 19 | else # Not yet installed, prompt user to confirm before proceeding 20 | if read -p "$(echo -e "${YELLOW}Do you want to clone ${VIM_DISTRO}? (y/n): ${NC}")"; then 21 | echo -e "Installing..." 22 | cd $CONFIG_PATH && git clone $nvm_repo nvim 23 | else 24 | echo -e "Aborting..." 25 | return 26 | fi 27 | fi 28 | } 29 | 30 | # Call the install_nvm function 31 | install_nvm 32 | 33 | # delete the .git folder after install_nvm runs 34 | rm -rf $NVM_DIR/.git 35 | 36 | info "Setting symlinks for ${VIM_DISTRO}." 37 | substep_success "nvim folder created." 38 | success "Nvim with ${VIM_DISTRO} is ready. For more info: https://www.lazyvim.org/" 39 | -------------------------------------------------------------------------------- /vscode/Library/Application Support/Code/User/customStuff/projects.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name": "Dots ⊙", 4 | "rootPath": "/Users/ed/.dotfiles", 5 | "paths": [], 6 | "tags": [ 7 | "OSS" 8 | ], 9 | "enabled": true 10 | }, 11 | { 12 | "name": "KB 🧠", 13 | "rootPath": "/Users/ed/Developer/KB", 14 | "paths": [], 15 | "tags": [ 16 | "Personal" 17 | ], 18 | "enabled": true 19 | }, 20 | { 21 | "name": "FD Esbuild 🚀", 22 | "rootPath": "/Users/ed/Developer/personal/flightdeck_projects/flightdeck-esbuild", 23 | "paths": [], 24 | "tags": [ 25 | "Flightdeck" 26 | ], 27 | "enabled": true 28 | }, 29 | { 30 | "name": "FD Parcel 🚀", 31 | "rootPath": "/Users/ed/Developer/personal/flightdeck_projects/flightdeck-parcel", 32 | "paths": [], 33 | "tags": [ 34 | "Flightdeck" 35 | ], 36 | "enabled": true 37 | }, 38 | { 39 | "name": "better-nunjucks 🫣️", 40 | "rootPath": "/Users/ed/Developer/personal/vscode_extensions/better-nunjucks", 41 | "paths": [], 42 | "tags": [ 43 | "VSCode" 44 | ], 45 | "enabled": true 46 | }, 47 | { 48 | "name": "better-solarized ☯️", 49 | "rootPath": "/Users/ed/Developer/personal/vscode_extensions/better-solarized", 50 | "paths": [], 51 | "tags": [ 52 | "VSCode" 53 | ], 54 | "enabled": true 55 | }, 56 | { 57 | "name": "mac", 58 | "rootPath": "/Users/ed/Developer/work/mac/mac3", 59 | "paths": [], 60 | "tags": ["Clients"], 61 | "enabled": true 62 | } 63 | ] 64 | -------------------------------------------------------------------------------- /vscode/Library/Application Support/Code/User/customStuff/vscode-insiders.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edheltzel/dotfiles/80c2a070d17ef7cf39b5e6761a24af88eecefdf2/vscode/Library/Application Support/Code/User/customStuff/vscode-insiders.icns -------------------------------------------------------------------------------- /vscode/Library/Application Support/Code/User/customStuff/vscode-scripts.js: -------------------------------------------------------------------------------- 1 | document.addEventListener('DOMContentLoaded', function() { 2 | const checkElement = setInterval(() => { 3 | const commandDialog = document.querySelector(".quick-input-widget"); 4 | if (commandDialog) { 5 | // Apply the blur effect immediately if the command dialog is visible 6 | if (commandDialog.style.display !== "none") { 7 | runMyScript(); 8 | } 9 | // Create an DOM observer to 'listen' for changes in element's attribute. 10 | const observer = new MutationObserver((mutations) => { 11 | mutations.forEach((mutation) => { 12 | if (mutation.type === 'attributes' && mutation.attributeName === 'style') { 13 | if (commandDialog.style.display === 'none') { 14 | handleEscape(); 15 | } else { 16 | // If the .quick-input-widget element (command palette) is in the DOM 17 | // but no inline style display: none, show the backdrop blur. 18 | runMyScript(); 19 | } 20 | } 21 | }); 22 | }); 23 | 24 | observer.observe(commandDialog, { attributes: true }); 25 | 26 | // Clear the interval once the observer is set 27 | clearInterval(checkElement); 28 | } else { 29 | console.log("Command dialog not found yet. Retrying..."); 30 | } 31 | }, 500); // Check every 500ms 32 | 33 | // Execute when command palette was launched. 34 | document.addEventListener('keydown', function(event) { 35 | if ((event.metaKey || event.ctrlKey) && event.key === 'p') { 36 | event.preventDefault(); 37 | runMyScript(); 38 | } else if (event.key === 'Escape' || event.key === 'Esc') { 39 | event.preventDefault(); 40 | handleEscape(); 41 | } 42 | }); 43 | 44 | // Ensure the escape key event listener is at the document level 45 | document.addEventListener('keydown', function(event) { 46 | if (event.key === 'Escape' || event.key === 'Esc') { 47 | handleEscape(); 48 | } 49 | }, true); 50 | 51 | function runMyScript() { 52 | const targetDiv = document.querySelector(".monaco-workbench"); 53 | 54 | // Remove existing element if it already exists 55 | const existingElement = document.getElementById("command-blur"); 56 | if (existingElement) { 57 | existingElement.remove(); 58 | } 59 | 60 | // Create and configure the new element 61 | const newElement = document.createElement("div"); 62 | newElement.setAttribute('id', 'command-blur'); 63 | 64 | newElement.addEventListener('click', function() { 65 | newElement.remove(); 66 | }); 67 | 68 | // Append the new element as a child of the targetDiv 69 | targetDiv.appendChild(newElement); 70 | } 71 | 72 | // Remove the backdrop blur from the DOM when esc key is pressed. 73 | function handleEscape() { 74 | const element = document.getElementById("command-blur"); 75 | if (element) { 76 | element.click(); 77 | } 78 | } 79 | }); 80 | -------------------------------------------------------------------------------- /vscode/Library/Application Support/Code/User/customStuff/vscode-styles.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Elbritch colors - https://github.com/eldritch-theme/eldritch 3 | * #212337 4 | * #323449 5 | * #ebfafa 6 | * #7081d0 7 | * #04d1f9 8 | * #37f499 9 | * #f7c67f 10 | * #f265b5 11 | * #a48cf2 12 | * #f16c75 13 | * #f1fc79 14 | */ 15 | /* Font - for UI elements only */ 16 | .mac { 17 | font-family: Lilex, monospace; 18 | } 19 | 20 | /* Exclude editor from font override */ 21 | .monaco-editor { 22 | font-family: inherit; 23 | } 24 | 25 | /* Explore */ 26 | [aria-label="Timeline"] + h3 { 27 | color: coral !important; 28 | } 29 | 30 | [aria-label="Open Editors"] + h3, 31 | [aria-label="Source Control"] + h3.title { 32 | color: #f265b5 !important; 33 | } 34 | 35 | [aria-label="Favorites Section"] > h3.title { 36 | color: #f265b5 !important; 37 | } 38 | 39 | /* Project Title */ 40 | .titlebar-left { 41 | justify-content: flex-start !important; 42 | flex-grow: 0 !important; 43 | width: 4rem !important; 44 | } 45 | 46 | /* Editor Actions - in titlebar */ 47 | .titlebar-right > * { 48 | display: none !important; 49 | } 50 | 51 | /* action panel - when on bottom */ 52 | .monaco-workbench .pane-composite-part > .header-or-footer .composite-bar-container { 53 | justify-content: flex-end !important; 54 | } 55 | 56 | .action-item.icon:not(.checked) > a { 57 | color: rgba(112, 129, 208, 0.29) !important; 58 | } 59 | 60 | .action-item.icon:not(.checked) > a[class*='activity-workbench-view-extension-project-manager-'] { 61 | background-color: rgba(112, 129, 208, 0.29) !important; 62 | } 63 | 64 | /* Command prompt blur */ 65 | #command-blur { 66 | position: absolute; 67 | width: 100%; 68 | height: 100%; 69 | background: rgba(0, 0, 0, .15); 70 | top: 0; 71 | left: 0; 72 | backdrop-filter: blur(8px); 73 | } 74 | 75 | .quick-input-widget { 76 | transform: translateY(-50%) !important; 77 | top: 50% !important; 78 | box-shadow: 0px 8px 20px rgba(0, 0, 0, 0.45) !important; 79 | padding: 10px 10px 18px 10px !important; 80 | border-radius: 6px !important; 81 | border: 1px solid rgba(65, 72, 104, 0.333) !important; 82 | z-index: 1000000 !important; 83 | } 84 | 85 | .monaco-workbench::after { 86 | content: ''; 87 | position: fixed; 88 | top: 0; 89 | left: 0; 90 | right: 0; 91 | bottom: 0; 92 | background: rgba(0, 0, 0, 0.4); 93 | backdrop-filter: blur(5px); 94 | z-index: 999999; 95 | pointer-events: none; 96 | opacity: 0; 97 | transition: opacity 0.2s ease-in-out; 98 | visibility: hidden; 99 | } 100 | 101 | .quick-input-widget:not(:empty) ~ .monaco-workbench::after { 102 | opacity: 1; 103 | visibility: visible; 104 | } 105 | 106 | .quick-input-list { 107 | max-height: calc(50vh - 60px) !important; 108 | overflow-y: auto !important; 109 | } 110 | 111 | .quick-input-titlebar { 112 | display: none !important; 113 | } 114 | 115 | .quick-input-header { 116 | padding: 8px 6px 8px !important; 117 | } 118 | 119 | .monaco-icon-label > .monaco-icon-label-container > .monaco-icon-description-container > .label-description { 120 | white-space: inherit !important; 121 | } 122 | 123 | .monaco-scrollable-element .shadow.top { 124 | box-shadow: 0px 0px 10px rgba(0, 0, 0, .75) !important; 125 | top: -3px !important; 126 | } 127 | 128 | /* Scroll bar */ 129 | .scrollbar.vertical .slider { 130 | width: 2px !important; 131 | border-radius: 5px !important; 132 | margin-left: 10px !important; 133 | } 134 | 135 | .scrollbar.horizontal .slider { 136 | border-radius: 5px !important; 137 | height: 2px !important; 138 | } 139 | 140 | .scrollbar.horizontal { 141 | position: absolute !important; 142 | height: 2px !important; 143 | bottom: 3px !important; 144 | left: 0px !important; 145 | } 146 | 147 | /* Search icon */ 148 | .search-icon { 149 | display: none !important; 150 | } 151 | 152 | .codicon-search::before { 153 | display: none !important; 154 | } 155 | -------------------------------------------------------------------------------- /vscode/Library/Application Support/Code/User/customStuff/vscode.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edheltzel/dotfiles/80c2a070d17ef7cf39b5e6761a24af88eecefdf2/vscode/Library/Application Support/Code/User/customStuff/vscode.icns --------------------------------------------------------------------------------