From a41290c297078b94b1eae82cf170e1ecf0bfc266 Mon Sep 17 00:00:00 2001 From: Stefan Imhoff Date: Mon, 5 Aug 2024 20:55:54 +0200 Subject: [PATCH] feat(nix): nix and back again I tried Nix, but it had too many downsides so I removed it. 1. Didn't like that all files are immutable and simple config changes need a complete rebuild. 2. Setting up a new Mac didn't work as smoothly as promised. Not worth the effort. 3. It sucked a lot to always have to type in the password twice on each darwin-rebuild 4. It solves problems I never had. --- home/ack/ack => .ack | 0 home/ag/ag => .ag | 0 .aliases | 89 ++ home/asdf/asdfrc => .asdfrc | 0 .bash_profile | 9 + .bashrc | 68 ++ .config/atuin/config.toml | 232 +++++ .config/bat/config | 8 + .../bat/syntaxes/.gitkeep | 0 .config/bat/themes/Catppuccin-frappe.tmTheme | 959 ++++++++++++++++++ .config/bat/themes/Catppuccin-latte.tmTheme | 959 ++++++++++++++++++ .../bat/themes/Catppuccin-macchiato.tmTheme | 959 ++++++++++++++++++ .config/bat/themes/Catppuccin-mocha.tmTheme | 959 ++++++++++++++++++ .config/fish/config.fish | 205 ++++ .config/fish/fish_plugins | 7 + {home => .config}/fish/functions/dataUrl.fish | 0 .../fish/functions/deleteNodeModules.fish | 0 .../fish/functions/encodeBase64.fish | 0 {home => .config}/fish/functions/fcd.fish | 0 {home => .config}/fish/functions/fe.fish | 0 {home => .config}/fish/functions/fhcd.fish | 0 {home => .config}/fish/functions/fs.fish | 0 {home => .config}/fish/functions/fwt.fish | 0 {home => .config}/fish/functions/ghpr.fish | 0 {home => .config}/fish/functions/server.fish | 0 .../fish/functions/unquarantine.fish | 0 .config/gh-dash/config.yml | 60 ++ .config/gh/config.yml | 18 + .config/gh/hosts.yml | 10 + .config/git/config | 150 +++ .config/git/ignore | 12 + .../complex_modifications/1668261369.json | 0 .../complex_modifications/1669799628.json | 0 .../complex_modifications/1670850784.json | 0 .../karabiner/karabiner.json | 0 .../lazydocker/config.yml | 0 .config/lazygit/config.yml | 16 + .config/lf/lfrc | 120 +++ .config/lf/previewer.sh | 6 + {home/neovim => .config}/nvim/.gitignore | 0 {home/neovim => .config}/nvim/.neoconf.json | 0 {home/neovim => .config}/nvim/LICENSE | 0 {home/neovim => .config}/nvim/README.md | 0 .../nvim/dictionary/de_neu.txt | 0 .../nvim/dictionary/de_user.txt | 0 .../nvim/dictionary/en_us.txt | 0 {home/neovim => .config}/nvim/init.lua | 0 {home/neovim => .config}/nvim/lazy-lock.json | 41 +- {home/neovim => .config}/nvim/lazyvim.json | 0 .../nvim/lua/config/autocmds.lua | 0 .../nvim/lua/config/keymaps.lua | 0 .../nvim/lua/config/lazy.lua | 0 .../nvim/lua/config/options.lua | 0 .../nvim/lua/lualine/themes/custom.lua | 0 .../nvim/lua/lualine/themes/transparent.lua | 0 .../nvim/lua/plugins/abolish.lua | 0 .../nvim/lua/plugins/aerial.lua | 0 .../nvim/lua/plugins/astro.lua | 0 .../nvim/lua/plugins/auto-save.lua | 0 .../nvim/lua/plugins/autotag.lua | 0 .../nvim/lua/plugins/barbecue.lua | 0 .../nvim/lua/plugins/base16.lua | 0 .../nvim/lua/plugins/blamer.lua | 0 .../nvim/lua/plugins/bookmark.lua | 0 .../nvim/lua/plugins/bufferline.lua | 0 .../nvim/lua/plugins/catppuccin.lua | 0 .../nvim/lua/plugins/chafa.lua | 0 .../nvim/lua/plugins/chatgpg.lua | 2 +- .../nvim/lua/plugins/chatgpg.txt.gpg | Bin .../nvim/lua/plugins/cheatsheet.lua | 0 .../nvim/lua/plugins/cmp.lua | 0 .../nvim/lua/plugins/codewindow.lua | 0 .../nvim/lua/plugins/colorizer.lua | 0 .../lua/plugins/colorscheme-catppuccin.lua | 0 .../lua/plugins/colorscheme-night-owl.lua | 0 .../lua/plugins/colorscheme-tokyonight.lua | 0 .../nvim/lua/plugins/colorschemes.lua | 0 .../nvim/lua/plugins/committia.lua | 0 .../nvim/lua/plugins/copilot-chat.lua | 0 .../nvim/lua/plugins/copilot.lua | 0 .../nvim/lua/plugins/cursorline.lua | 0 .../nvim/lua/plugins/dashboard.lua | 0 .../nvim/lua/plugins/dial.lua | 0 .../nvim/lua/plugins/diffview.lua | 0 .../nvim/lua/plugins/editorconfig.lua | 0 .../nvim/lua/plugins/emmet.lua | 0 .../nvim/lua/plugins/example.lua | 0 .../nvim/lua/plugins/export-to-vscode.lua | 0 .../nvim/lua/plugins/flash.lua | 0 .../nvim/lua/plugins/fm.lua | 0 .../nvim/lua/plugins/formatting.lua | 0 .../nvim/lua/plugins/fugitive.lua | 0 .../nvim/lua/plugins/gh-line.lua | 0 .../nvim/lua/plugins/gh.lua | 0 .../nvim/lua/plugins/grammarous.lua | 0 .../nvim/lua/plugins/harpoon-lualine.lua | 0 .../nvim/lua/plugins/harpoon.lua | 0 .../nvim/lua/plugins/highlight-undo.lua | 0 .../nvim/lua/plugins/inc-rename.lua | 0 .../nvim/lua/plugins/lazygit.lua | 0 .../nvim/lua/plugins/legendary.lua | 0 .../nvim/lua/plugins/lf.lua | 0 .../nvim/lua/plugins/linting.lua | 0 .../nvim/lua/plugins/lsp-progress.lua | 0 .../nvim/lua/plugins/lspconfig.lua | 0 .../nvim/lua/plugins/lualine.lua | 0 .../nvim/lua/plugins/markdown-preview.lua | 0 .../nvim/lua/plugins/mason.lua | 0 .../nvim/lua/plugins/mundo.lua | 0 .../nvim/lua/plugins/neogit.lua | 0 .../nvim/lua/plugins/neotest.lua | 0 .../nvim/lua/plugins/noctis.lua | 0 .../nvim/lua/plugins/noice.lua | 0 .../nvim/lua/plugins/notify.lua | 0 .../nvim/lua/plugins/oatmeal.lua | 0 .../nvim/lua/plugins/obsidian.lua | 0 .../nvim/lua/plugins/oil.lua | 0 .../nvim/lua/plugins/ollama.lua | 0 .../nvim/lua/plugins/project.lua | 0 .../nvim/lua/plugins/rainbow-csv.lua | 0 .../nvim/lua/plugins/remote-nvim.lua | 0 .../nvim/lua/plugins/screenshots.lua | 0 .../nvim/lua/plugins/smart-splits.lua | 0 .../nvim/lua/plugins/symbols-outline.lua | 0 .../nvim/lua/plugins/table-mode.lua | 0 .../nvim/lua/plugins/tailwindcss.lua | 0 .../nvim/lua/plugins/telecope-heading.lua | 0 .../lua/plugins/telescope-file-browser.lua | 0 .../nvim/lua/plugins/telescope-frecency.lua | 0 .../nvim/lua/plugins/telescope-fzy-native.lua | 0 .../nvim/lua/plugins/telescope-github.lua | 0 .../nvim/lua/plugins/telescope-import.lua | 0 .../lua/plugins/telescope-live-grep-args.lua | 0 .../lua/plugins/telescope-node-modules.lua | 0 .../nvim/lua/plugins/telescope-smart-open.lua | 0 .../nvim/lua/plugins/telescope-undo.lua | 0 .../nvim/lua/plugins/telescope.lua | 0 .../plugins/tmux-awesome-plugin-manager.lua | 0 .../nvim/lua/plugins/tmux-navigator.lua | 0 .../nvim/lua/plugins/todo-comments.lua | 0 .../nvim/lua/plugins/transparent.lua | 0 .../nvim/lua/plugins/treesitter.lua | 0 .../nvim/lua/plugins/twilight.lua | 0 .../nvim/lua/plugins/ufo.lua | 0 .../nvim/lua/plugins/various-textobjs.lua | 0 .../nvim/lua/plugins/vim-nix.lua | 0 .../nvim/lua/plugins/vimux.lua | 0 .../nvim/lua/plugins/visincr.lua | 0 .../nvim/lua/plugins/visual-multi.lua | 0 .../nvim/lua/plugins/wakatime.lua | 0 .../nvim/lua/plugins/worktrees.lua | 0 .../nvim/lua/plugins/wrapping.lua | 0 .../nvim/lua/plugins/xtract.lua | 0 .../nvim/lua/plugins/zen-mode.lua | 0 .config/nvim/spell/de.utf-8.add | 0 .../nvim/spell/de.utf-8.add.spl | Bin .../nvim/spell/de.utf-8.spl | Bin .../nvim/spell/de.utf-8.sug | Bin .../nvim/spell/en.utf-8.add | 0 .../nvim/spell/en.utf-8.add.spl | Bin .../nvim/spell/en.utf-8.spl | Bin .../nvim/spell/en.utf-8.sug | Bin {home/neovim => .config}/nvim/stylua.toml | 0 .../nvim/thesaurus/de_openthesaurus.txt | 0 .../nvim/thesaurus/de_user.txt | 0 {home => .config}/oatmeal/config.toml | 0 {home => .config}/ripgrep/ripgreprc | 0 {home => .config}/sesh/scripts/node_dev | 0 {home => .config}/sesh/scripts/open_files | 0 {home => .config}/sesh/sesh.toml | 0 {home => .config}/skhd/skhdrc | 0 .config/starship.toml | 17 + .../tmux/tmux-nerd-font-window-name.yml | 0 {home => .config}/tmux/tmux.conf | 92 +- .../wezterm/terminal.icns | Bin {home => .config}/wezterm/wezterm.lua | 1 + {home => .config}/yabai/yabairc | 0 .config/yazi/flavors/.gitkeep | 0 .config/yazi/plugins/.gitkeep | 0 .config/yazi/yazi.toml | 15 + {home => .config}/zed/settings.json | 0 home/ctags/ctags => .ctags | 0 home/curl/curlrc => .curlrc | 0 home/asdf/default-gems => .default-gems | 0 ...ault-npm-packages => .default-npm-packages | 0 ...ython-packages => .default-python-packages | 0 .editorconfig | 18 + .functions/delete_node_modules.sh | 18 + .functions/fcd.sh | 6 + .functions/fcdh.sh | 22 + .functions/fco.sh | 32 + .functions/fcoc.sh | 28 + .functions/fdr.sh | 27 + .functions/fgh.sh | 24 + .functions/fkill.sh | 25 + .functions/fo.sh | 26 + .functions/fs.sh | 18 + .functions/fshow.sh | 25 + .functions/fz.sh | 28 + .functions/ghpr.sh | 18 + .functions/server.sh | 11 + home/ruby/gemrc => .gemrc | 0 .gitignore | 12 + .gitmodules | 6 +- home/tmux/gitmux.conf => .gitmux.conf | 0 .gnupg/dirmngr.conf | 1 + .gnupg/gpg-agent.conf | 3 + .gnupg/gpg.conf | 4 + .../hammerspoon => .hammerspoon}/caffeine.lua | 0 .../functions.lua | 0 .../icons/cup-off.pdf | Bin .../icons/cup-on.pdf | Bin .../icons/moon.pdf | Bin .../icons/sun.pdf | Bin .../hammerspoon => .hammerspoon}/init.lua | 0 .profile | 1 + .session-variables.sh | 69 ++ .stow-local-ignore | 11 + .tool-versions | 9 + home/wget/wget => .wget | 0 .zsh_plugins.txt | 43 + .zshenv | 7 + .zshrc | 70 ++ README.md | 64 +- bin/homebrew-backup | 2 + bin/homebrew-restore | 3 + bin/update | 39 + darwin/default.nix | 197 ---- darwin/homebrew-common.nix | 138 --- darwin/mac-extra.sh | 3 - flake.lock | 171 ---- flake.nix | 65 -- home/ack/default.nix | 9 - home/ag/default.nix | 9 - home/asdf/default.nix | 10 - home/bash/default.nix | 21 - home/bat/default.nix | 65 -- home/ctags/default.nix | 9 - home/curl/default.nix | 9 - home/default.nix | 194 ---- home/direnv/default.nix | 8 - home/editorconfig/default.nix | 22 - home/fish/default.nix | 112 -- home/fish/functions/update.fish | 25 - home/fzf/default.nix | 30 - home/gh-dash/default.nix | 84 -- home/gh/default.nix | 27 - home/git/default.nix | 185 ---- home/gnupg/default.nix | 30 - home/hammerspoon/default.nix | 7 - home/karabiner/default.nix | 7 - home/lazydocker/default.nix | 9 - home/lazygit/default.nix | 32 - home/lf/default.nix | 143 --- home/lsd/default.nix | 90 -- home/neovim/default.nix | 10 - .../neovim/nvim/lua/plugins/activitywatch.lua | 6 - home/oatmeal/default.nix | 7 - home/ripgrep/default.nix | 13 - home/ruby/default.nix | 9 - home/sesh/default.nix | 11 - home/shared/shared-aliases.nix | 98 -- home/skhd/default.nix | 7 - home/starship/default.nix | 27 - home/tmux/default.nix | 82 -- home/wezterm/default.nix | 8 - home/wget/default.nix | 9 - home/yabai/default.nix | 7 - home/yazi/default.nix | 32 - home/zed/default.nix | 10 - home/zoxide/default.nix | 10 - home/zsh/_cht | 21 - home/zsh/default.nix | 74 -- home/zsh/zshrc.sh | 184 ---- homebrew/mac-mini | 628 ++++++++++++ homebrew/macbook-2023 | 614 +++++++++++ hosts/mac-mini/configuration.nix | 19 - hosts/mac-mini/home.nix | 13 - hosts/mac-mini/homebrew.nix | 20 - hosts/macbook-2023/configuration.nix | 19 - hosts/macbook-2023/home.nix | 11 - hosts/macbook-2023/homebrew.nix | 15 - install.sh | 121 +++ private | 1 + private/bin | 1 - 285 files changed, 6965 insertions(+), 2517 deletions(-) rename home/ack/ack => .ack (100%) rename home/ag/ag => .ag (100%) create mode 100644 .aliases rename home/asdf/asdfrc => .asdfrc (100%) create mode 100644 .bash_profile create mode 100644 .bashrc create mode 100644 .config/atuin/config.toml create mode 100644 .config/bat/config rename home/neovim/nvim/spell/de.utf-8.add => .config/bat/syntaxes/.gitkeep (100%) mode change 100755 => 100644 create mode 100644 .config/bat/themes/Catppuccin-frappe.tmTheme create mode 100644 .config/bat/themes/Catppuccin-latte.tmTheme create mode 100644 .config/bat/themes/Catppuccin-macchiato.tmTheme create mode 100644 .config/bat/themes/Catppuccin-mocha.tmTheme create mode 100644 .config/fish/config.fish create mode 100644 .config/fish/fish_plugins rename {home => .config}/fish/functions/dataUrl.fish (100%) rename {home => .config}/fish/functions/deleteNodeModules.fish (100%) rename {home => .config}/fish/functions/encodeBase64.fish (100%) rename {home => .config}/fish/functions/fcd.fish (100%) rename {home => .config}/fish/functions/fe.fish (100%) rename {home => .config}/fish/functions/fhcd.fish (100%) rename {home => .config}/fish/functions/fs.fish (100%) rename {home => .config}/fish/functions/fwt.fish (100%) rename {home => .config}/fish/functions/ghpr.fish (100%) rename {home => .config}/fish/functions/server.fish (100%) rename {home => .config}/fish/functions/unquarantine.fish (100%) create mode 100644 .config/gh-dash/config.yml create mode 100644 .config/gh/config.yml create mode 100644 .config/gh/hosts.yml create mode 100644 .config/git/config create mode 100644 .config/git/ignore rename {home/karabiner => .config}/karabiner/assets/complex_modifications/1668261369.json (100%) rename {home/karabiner => .config}/karabiner/assets/complex_modifications/1669799628.json (100%) rename {home/karabiner => .config}/karabiner/assets/complex_modifications/1670850784.json (100%) rename {home/karabiner => .config}/karabiner/karabiner.json (100%) rename home/lazydocker/lazydocker.yml => .config/lazydocker/config.yml (100%) create mode 100644 .config/lazygit/config.yml create mode 100644 .config/lf/lfrc create mode 100755 .config/lf/previewer.sh rename {home/neovim => .config}/nvim/.gitignore (100%) rename {home/neovim => .config}/nvim/.neoconf.json (100%) rename {home/neovim => .config}/nvim/LICENSE (100%) rename {home/neovim => .config}/nvim/README.md (100%) rename {home/neovim => .config}/nvim/dictionary/de_neu.txt (100%) rename {home/neovim => .config}/nvim/dictionary/de_user.txt (100%) rename {home/neovim => .config}/nvim/dictionary/en_us.txt (100%) rename {home/neovim => .config}/nvim/init.lua (100%) rename {home/neovim => .config}/nvim/lazy-lock.json (87%) rename {home/neovim => .config}/nvim/lazyvim.json (100%) rename {home/neovim => .config}/nvim/lua/config/autocmds.lua (100%) rename {home/neovim => .config}/nvim/lua/config/keymaps.lua (100%) rename {home/neovim => .config}/nvim/lua/config/lazy.lua (100%) rename {home/neovim => .config}/nvim/lua/config/options.lua (100%) rename {home/neovim => .config}/nvim/lua/lualine/themes/custom.lua (100%) rename {home/neovim => .config}/nvim/lua/lualine/themes/transparent.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/abolish.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/aerial.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/astro.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/auto-save.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/autotag.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/barbecue.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/base16.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/blamer.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/bookmark.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/bufferline.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/catppuccin.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/chafa.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/chatgpg.lua (87%) rename {home/neovim => .config}/nvim/lua/plugins/chatgpg.txt.gpg (100%) rename {home/neovim => .config}/nvim/lua/plugins/cheatsheet.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/cmp.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/codewindow.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/colorizer.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/colorscheme-catppuccin.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/colorscheme-night-owl.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/colorscheme-tokyonight.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/colorschemes.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/committia.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/copilot-chat.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/copilot.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/cursorline.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/dashboard.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/dial.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/diffview.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/editorconfig.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/emmet.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/example.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/export-to-vscode.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/flash.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/fm.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/formatting.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/fugitive.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/gh-line.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/gh.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/grammarous.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/harpoon-lualine.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/harpoon.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/highlight-undo.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/inc-rename.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/lazygit.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/legendary.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/lf.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/linting.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/lsp-progress.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/lspconfig.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/lualine.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/markdown-preview.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/mason.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/mundo.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/neogit.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/neotest.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/noctis.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/noice.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/notify.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/oatmeal.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/obsidian.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/oil.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/ollama.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/project.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/rainbow-csv.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/remote-nvim.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/screenshots.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/smart-splits.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/symbols-outline.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/table-mode.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/tailwindcss.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/telecope-heading.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/telescope-file-browser.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/telescope-frecency.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/telescope-fzy-native.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/telescope-github.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/telescope-import.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/telescope-live-grep-args.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/telescope-node-modules.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/telescope-smart-open.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/telescope-undo.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/telescope.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/tmux-awesome-plugin-manager.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/tmux-navigator.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/todo-comments.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/transparent.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/treesitter.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/twilight.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/ufo.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/various-textobjs.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/vim-nix.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/vimux.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/visincr.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/visual-multi.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/wakatime.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/worktrees.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/wrapping.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/xtract.lua (100%) rename {home/neovim => .config}/nvim/lua/plugins/zen-mode.lua (100%) create mode 100755 .config/nvim/spell/de.utf-8.add rename {home/neovim => .config}/nvim/spell/de.utf-8.add.spl (100%) rename {home/neovim => .config}/nvim/spell/de.utf-8.spl (100%) rename {home/neovim => .config}/nvim/spell/de.utf-8.sug (100%) rename {home/neovim => .config}/nvim/spell/en.utf-8.add (100%) rename {home/neovim => .config}/nvim/spell/en.utf-8.add.spl (100%) rename {home/neovim => .config}/nvim/spell/en.utf-8.spl (100%) rename {home/neovim => .config}/nvim/spell/en.utf-8.sug (100%) rename {home/neovim => .config}/nvim/stylua.toml (100%) rename {home/neovim => .config}/nvim/thesaurus/de_openthesaurus.txt (100%) rename {home/neovim => .config}/nvim/thesaurus/de_user.txt (100%) rename {home => .config}/oatmeal/config.toml (100%) rename {home => .config}/ripgrep/ripgreprc (100%) rename {home => .config}/sesh/scripts/node_dev (100%) rename {home => .config}/sesh/scripts/open_files (100%) rename {home => .config}/sesh/sesh.toml (100%) rename {home => .config}/skhd/skhdrc (100%) create mode 100644 .config/starship.toml rename {home => .config}/tmux/tmux-nerd-font-window-name.yml (100%) rename {home => .config}/tmux/tmux.conf (54%) rename home/wezterm/wezterm.icns => .config/wezterm/terminal.icns (100%) rename {home => .config}/wezterm/wezterm.lua (98%) rename {home => .config}/yabai/yabairc (100%) create mode 100644 .config/yazi/flavors/.gitkeep create mode 100644 .config/yazi/plugins/.gitkeep create mode 100644 .config/yazi/yazi.toml rename {home => .config}/zed/settings.json (100%) rename home/ctags/ctags => .ctags (100%) rename home/curl/curlrc => .curlrc (100%) rename home/asdf/default-gems => .default-gems (100%) rename home/asdf/default-npm-packages => .default-npm-packages (100%) rename home/asdf/default-python-packages => .default-python-packages (100%) create mode 100644 .editorconfig create mode 100755 .functions/delete_node_modules.sh create mode 100755 .functions/fcd.sh create mode 100755 .functions/fcdh.sh create mode 100755 .functions/fco.sh create mode 100755 .functions/fcoc.sh create mode 100755 .functions/fdr.sh create mode 100755 .functions/fgh.sh create mode 100755 .functions/fkill.sh create mode 100755 .functions/fo.sh create mode 100755 .functions/fs.sh create mode 100644 .functions/fshow.sh create mode 100644 .functions/fz.sh create mode 100755 .functions/ghpr.sh create mode 100755 .functions/server.sh rename home/ruby/gemrc => .gemrc (100%) rename home/tmux/gitmux.conf => .gitmux.conf (100%) create mode 100644 .gnupg/dirmngr.conf create mode 100644 .gnupg/gpg-agent.conf create mode 100644 .gnupg/gpg.conf rename {home/hammerspoon/hammerspoon => .hammerspoon}/caffeine.lua (100%) rename {home/hammerspoon/hammerspoon => .hammerspoon}/functions.lua (100%) rename {home/hammerspoon/hammerspoon => .hammerspoon}/icons/cup-off.pdf (100%) rename {home/hammerspoon/hammerspoon => .hammerspoon}/icons/cup-on.pdf (100%) rename {home/hammerspoon/hammerspoon => .hammerspoon}/icons/moon.pdf (100%) rename {home/hammerspoon/hammerspoon => .hammerspoon}/icons/sun.pdf (100%) rename {home/hammerspoon/hammerspoon => .hammerspoon}/init.lua (100%) create mode 100644 .profile create mode 100644 .session-variables.sh create mode 100644 .stow-local-ignore create mode 100644 .tool-versions rename home/wget/wget => .wget (100%) create mode 100644 .zsh_plugins.txt create mode 100644 .zshenv create mode 100644 .zshrc create mode 100755 bin/homebrew-backup create mode 100755 bin/homebrew-restore create mode 100755 bin/update delete mode 100644 darwin/default.nix delete mode 100644 darwin/homebrew-common.nix delete mode 100644 darwin/mac-extra.sh delete mode 100644 flake.lock delete mode 100644 flake.nix delete mode 100644 home/ack/default.nix delete mode 100644 home/ag/default.nix delete mode 100644 home/asdf/default.nix delete mode 100644 home/bash/default.nix delete mode 100644 home/bat/default.nix delete mode 100644 home/ctags/default.nix delete mode 100644 home/curl/default.nix delete mode 100644 home/default.nix delete mode 100644 home/direnv/default.nix delete mode 100644 home/editorconfig/default.nix delete mode 100644 home/fish/default.nix delete mode 100644 home/fish/functions/update.fish delete mode 100644 home/fzf/default.nix delete mode 100644 home/gh-dash/default.nix delete mode 100644 home/gh/default.nix delete mode 100644 home/git/default.nix delete mode 100644 home/gnupg/default.nix delete mode 100644 home/hammerspoon/default.nix delete mode 100644 home/karabiner/default.nix delete mode 100644 home/lazydocker/default.nix delete mode 100644 home/lazygit/default.nix delete mode 100644 home/lf/default.nix delete mode 100644 home/lsd/default.nix delete mode 100644 home/neovim/default.nix delete mode 100644 home/neovim/nvim/lua/plugins/activitywatch.lua delete mode 100644 home/oatmeal/default.nix delete mode 100644 home/ripgrep/default.nix delete mode 100644 home/ruby/default.nix delete mode 100644 home/sesh/default.nix delete mode 100644 home/shared/shared-aliases.nix delete mode 100644 home/skhd/default.nix delete mode 100644 home/starship/default.nix delete mode 100644 home/tmux/default.nix delete mode 100644 home/wezterm/default.nix delete mode 100644 home/wget/default.nix delete mode 100644 home/yabai/default.nix delete mode 100644 home/yazi/default.nix delete mode 100644 home/zed/default.nix delete mode 100644 home/zoxide/default.nix delete mode 100644 home/zsh/_cht delete mode 100644 home/zsh/default.nix delete mode 100644 home/zsh/zshrc.sh create mode 100644 homebrew/mac-mini create mode 100644 homebrew/macbook-2023 delete mode 100644 hosts/mac-mini/configuration.nix delete mode 100644 hosts/mac-mini/home.nix delete mode 100644 hosts/mac-mini/homebrew.nix delete mode 100644 hosts/macbook-2023/configuration.nix delete mode 100644 hosts/macbook-2023/home.nix delete mode 100644 hosts/macbook-2023/homebrew.nix create mode 100755 install.sh create mode 160000 private delete mode 160000 private/bin diff --git a/home/ack/ack b/.ack similarity index 100% rename from home/ack/ack rename to .ack diff --git a/home/ag/ag b/.ag similarity index 100% rename from home/ag/ag rename to .ag diff --git a/.aliases b/.aliases new file mode 100644 index 0000000..aa29938 --- /dev/null +++ b/.aliases @@ -0,0 +1,89 @@ +# Folders +alias ...='cd ../..' +alias ..='cd ..' +alias cd..='cd ..' +alias ls='eza --git --group-directories-first --icons' +alias ll='eza -l --git --group-directories-first --icons' +alias lt='eza --git --group-directories-first --icons --tree' +alias mkdir='mkdir -p' +alias dotfiles="cd $HOME/.dotfiles" +alias icloud="cd $HOME/Library/Mobile\ Documents/com~apple~CloudDocs" +alias dropbox="cd $HOME/Dropbox" + +# pnpm +alias pn='pnpm' +alias px='pnpx' + +# Git +alias ga='git add' +alias gb='git branch' +alias gba='git branch -a' +alias gc='git commit -v' +alias gca='git commit -v -a' +alias gcam='git commit --amend' +alias gcan='git commit --amend --no-edit' +alias gd='git diff -- . ":(exclude)yarn.lock"' # Show differences between index and working tree +alias gdc='git diff --cached' # Show changes in next commit (differences between index and last commit) +alias gdh='git diff head' # Show difference between files in working tree and last commit +alias gdt='git difftool' +alias gfa='git fetch --all' +alias gg='git log' +alias ghi='git hist' +alias gl='git pull' +alias glr='git pull --rebase' +alias glu='git config user.name "Stefan Imhoff" && git config user.email "gpg@kogakure.8shield.net" && git config user.signingkey "7A7253E8!"' +alias glx='git config user.name "Stefan Imhoff" && git config user.email "stefan.imhoff@xing.com" && git config user.signingkey "73C3E2E3!"' +alias gmb='git merge-base master HEAD' +alias gp='git push' +alias gpf='git push --force-with-lease' +alias gpp='PATCHNAME=`git branch 2> /dev/null | sed -e "/^[^*]/d" -e "s/* \(.*\)/\1/"`-`date "+%Y-%m-%d-%H%M.patch"`; git diff --full-index master > ../patches/$PATCHNAME' +alias gpu='git push -u origin HEAD' +alias gpv='git push --no-verify' +alias grb='git rebase master' +alias grbc='git rebase --continue' +alias grbi='git rebase -i ' +alias grbs='git rebase --skip' +alias grm="git status | grep deleted | awk '{print \$3}' | xargs git rm" +alias gru='git remote update' +alias gsb='git show-branch' +alias gsl='git submodule foreach git pull' +alias gst='git status -sb' +alias gsu='git submodule update' +alias gu='git up' +alias gw='git whatchanged' +alias gwp='git whatchanged -p' +alias lg='lazygit' +alias gw='git worktree' +alias gwl='git worktree list' +alias gwa='git worktree add' # +alias gwr='git worktree remove' # + +# Vim +alias v='vim' + +if type nvim > /dev/null 2>&1; then + alias vim='nvim' +fi + +# Homebrew +alias bi='brew install' + +# Tmux +alias t='tmux' +alias ta='tmux attach' + +# Can't remember the fork name +alias youtube-dl='yt-dlp' + +# iA Writer +alias ia='open $1 -a /Applications/iA\ Writer.app' + +# Recursively delete `.DS_Store` files +alias cleanup='find . -type f -name "*.DS_Store" -ls -delete' + +# Clear the screen +alias c="clear" + +# Empty the Trash on all mounted volumes and the main HDD +# Also, clear Apple’s System Logs to improve shell startup speed +alias emptytrash="sudo rm -rfv /Volumes/*/.Trashes; sudo rm -rfv ~/.Trash; sudo rm -rfv /private/var/log/asl/*.asl" diff --git a/home/asdf/asdfrc b/.asdfrc similarity index 100% rename from home/asdf/asdfrc rename to .asdfrc diff --git a/.bash_profile b/.bash_profile new file mode 100644 index 0000000..8a58a91 --- /dev/null +++ b/.bash_profile @@ -0,0 +1,9 @@ +# Include .profile if it exists +if [[ -f ~/.profile ]]; then + source ~/.profile +fi + +# Include .bashrc if it exists +if [[ -f ~/.bashrc ]]; then + source ~/.bashrc +fi diff --git a/.bashrc b/.bashrc new file mode 100644 index 0000000..d9b8272 --- /dev/null +++ b/.bashrc @@ -0,0 +1,68 @@ +# Commands that should be applied only for interactive shells. +[[ $- == *i* ]] || return + +HISTCONTROL=erasedups:ignorespace +HISTFILESIZE=100000 +HISTSIZE=10000 +HISTTIMEFORMAT="%F %T " + +shopt -s histappend +shopt -s checkwinsize +shopt -s extglob +shopt -s globstar +shopt -s checkjobs + +# Bash completion +[[ -r "/opt/homebrew/etc/profile.d/bash_completion.sh" ]] && source "/opt/homebrew/etc/profile.d/bash_completion.sh" + +bind "set completion-ignore-case on" +bind "set show-all-if-ambiguous on" + +# *** *** Tools *** *** + +# asdf +if command -v brew >/dev/null 2>&1 && [ -f "$(brew --prefix asdf)/libexec/asdf.sh" ]; then + source "$(brew --prefix asdf)/libexec/asdf.sh" +fi + +# GitHub CLI completion +if command -v gh >/dev/null 2>&1; then + eval "$(gh completion -s bash)" +fi + +# fzf +if command -v fzf >/dev/null 2>&1 && [[ :$SHELLOPTS: =~ :(vi|emacs): ]]; then + eval "$(fzf --bash)" +fi + +# Direnv +if command -v direnv >/dev/null 2>&1; then + eval "$(direnv hook bash)" +fi + +# Zoxide +if command -v zoxide >/dev/null 2>&1; then + eval "$(zoxide init bash)" +fi + +# Atuin +if command -v atuin >/dev/null 2>&1; then + eval "$(atuin init bash)" +fi + +# Starship +if command -v starship >/dev/null 2>&1 && [[ $TERM != "dumb" ]]; then + eval "$(starship init bash)" + PS1="$(/opt/homebrew/bin/starship prompt)" +fi + +# *** *** Aliases *** *** + +alias reload="source $HOME/.bashrc" +source "$HOME/.aliases" + +# *** *** Functions *** *** + +for file in ~/.functions/*.sh; do + source "$file" +done diff --git a/.config/atuin/config.toml b/.config/atuin/config.toml new file mode 100644 index 0000000..7c21bea --- /dev/null +++ b/.config/atuin/config.toml @@ -0,0 +1,232 @@ +## where to store your database, default is your system data directory +## linux/mac: ~/.local/share/atuin/history.db +## windows: %USERPROFILE%/.local/share/atuin/history.db +# db_path = "~/.history.db" + +## where to store your encryption key, default is your system data directory +## linux/mac: ~/.local/share/atuin/key +## windows: %USERPROFILE%/.local/share/atuin/key +# key_path = "~/.key" + +## where to store your auth session token, default is your system data directory +## linux/mac: ~/.local/share/atuin/session +## windows: %USERPROFILE%/.local/share/atuin/session +# session_path = "~/.session" + +## date format used, either "us" or "uk" +# dialect = "us" + +## default timezone to use when displaying time +## either "l", "local" to use the system's current local timezone, or an offset +## from UTC in the format of "<+|->H[H][:M[M][:S[S]]]" +## for example: "+9", "-05", "+03:30", "-01:23:45", etc. +# timezone = "local" + +## enable or disable automatic sync +# auto_sync = true + +## enable or disable automatic update checks +# update_check = true + +## address of the sync server +# sync_address = "https://api.atuin.sh" + +## how often to sync history. note that this is only triggered when a command +## is ran, so sync intervals may well be longer +## set it to 0 to sync after every command +# sync_frequency = "10m" + +## which search mode to use +## possible values: prefix, fulltext, fuzzy, skim +# search_mode = "fuzzy" + +## which filter mode to use +## possible values: global, host, session, directory +# filter_mode = "global" + +## With workspace filtering enabled, Atuin will filter for commands executed +## in any directory within a git repository tree (default: false) +# workspaces = false + +## which filter mode to use when atuin is invoked from a shell up-key binding +## the accepted values are identical to those of "filter_mode" +## leave unspecified to use same mode set in "filter_mode" +# filter_mode_shell_up_key_binding = "global" + +## which search mode to use when atuin is invoked from a shell up-key binding +## the accepted values are identical to those of "search_mode" +## leave unspecified to use same mode set in "search_mode" +# search_mode_shell_up_key_binding = "fuzzy" + +## which style to use +## possible values: auto, full, compact +# style = "auto" + +## the maximum number of lines the interface should take up +## set it to 0 to always go full screen +# inline_height = 0 + +## Invert the UI - put the search bar at the top , Default to `false` +# invert = false + +## enable or disable showing a preview of the selected command +## useful when the command is longer than the terminal width and is cut off +# show_preview = true + +## what to do when the escape key is pressed when searching +## possible values: return-original, return-query +# exit_mode = "return-original" + +## possible values: emacs, subl +# word_jump_mode = "emacs" + +## characters that count as a part of a word +# word_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" + +## number of context lines to show when scrolling by pages +# scroll_context_lines = 1 + +## use ctrl instead of alt as the shortcut modifier key for numerical UI shortcuts +## alt-0 .. alt-9 +# ctrl_n_shortcuts = false + +## default history list format - can also be specified with the --format arg +# history_format = "{time}\t{command}\t{duration}" + +## prevent commands matching any of these regexes from being written to history. +## Note that these regular expressions are unanchored, i.e. if they don't start +## with ^ or end with $, they'll match anywhere in the command. +## For details on the supported regular expression syntax, see +## https://docs.rs/regex/latest/regex/#syntax +# history_filter = [ +# "^secret-cmd", +# "^innocuous-cmd .*--secret=.+", +# ] + +## prevent commands run with cwd matching any of these regexes from being written +## to history. Note that these regular expressions are unanchored, i.e. if they don't +## start with ^ or end with $, they'll match anywhere in CWD. +## For details on the supported regular expression syntax, see +## https://docs.rs/regex/latest/regex/#syntax +# cwd_filter = [ +# "^/very/secret/area", +# ] + +## Configure the maximum height of the preview to show. +## Useful when you have long scripts in your history that you want to distinguish +## by more than the first few lines. +# max_preview_height = 4 + +## Configure whether or not to show the help row, which includes the current Atuin +## version (and whether an update is available), a keymap hint, and the total +## amount of commands in your history. +# show_help = true + +## Configure whether or not to show tabs for search and inspect +# show_tabs = true + +## Defaults to true. This matches history against a set of default regex, and will not save it if we get a match. Defaults include +## 1. AWS key id +## 2. Github pat (old and new) +## 3. Slack oauth tokens (bot, user) +## 4. Slack webhooks +## 5. Stripe live/test keys +# secrets_filter = true + +## Defaults to true. If enabled, upon hitting enter Atuin will immediately execute the command. Press tab to return to the shell and edit. +# This applies for new installs. Old installs will keep the old behaviour unless configured otherwise. +enter_accept = false + +## Defaults to "emacs". This specifies the keymap on the startup of `atuin +## search`. If this is set to "auto", the startup keymap mode in the Atuin +## search is automatically selected based on the shell's keymap where the +## keybinding is defined. If this is set to "emacs", "vim-insert", or +## "vim-normal", the startup keymap mode in the Atuin search is forced to be +## the specified one. +# keymap_mode = "auto" + +## Cursor style in each keymap mode. If specified, the cursor style is changed +## in entering the cursor shape. Available values are "default" and +## "{blink,steady}-{block,underline,bar}". +# keymap_cursor = { emacs = "blink-block", vim_insert = "blink-block", vim_normal = "steady-block" } + +# network_connect_timeout = 5 +# network_timeout = 5 + +## Timeout (in seconds) for acquiring a local database connection (sqlite) +# local_timeout = 5 + +## Set this to true and Atuin will minimize motion in the UI - timers will not update live, etc. +## Alternatively, set env NO_MOTION=true +# prefers_reduced_motion = false + +[stats] +## Set commands where we should consider the subcommand for statistics. Eg, kubectl get vs just kubectl +# common_subcommands = [ +# "apt", +# "cargo", +# "composer", +# "dnf", +# "docker", +# "git", +# "go", +# "ip", +# "kubectl", +# "nix", +# "nmcli", +# "npm", +# "pecl", +# "pnpm", +# "podman", +# "port", +# "systemctl", +# "tmux", +# "yarn", +# ] + +## Set commands that should be totally stripped and ignored from stats +# common_prefix = ["sudo"] + +## Set commands that will be completely ignored from stats +# ignored_commands = [ +# "cd", +# "ls", +# "vi" +# ] + +[keys] +# Defaults to true. If disabled, using the up/down key won't exit the TUI when scrolled past the first/last entry. +# scroll_exits = false + +[sync] +# Enable sync v2 by default +# This ensures that sync v2 is enabled for new installs only +# In a later release it will become the default across the board +records = true + +[preview] +## which preview strategy to use to calculate the preview height (respects max_preview_height). +## possible values: auto, static +## auto: length of the selected command. +## static: length of the longest command stored in the history. +# strategy = "auto" + +[daemon] +## Enables using the daemon to sync. Requires the daemon to be running in the background. Start it with `atuin daemon` +# enabled = false + +## How often the daemon should sync in seconds +# sync_frequency = 300 + +## The path to the unix socket used by the daemon (on unix systems) +## linux/mac: ~/.local/share/atuin/atuin.sock +## windows: Not Supported +# socket_path = "~/.local/share/atuin/atuin.sock" + +## Use systemd socket activation rather than opening the given path (the path must still be correct for the client) +## linux: false +## mac/windows: Not Supported +# systemd_socket = false + +## The port that should be used for TCP on non unix systems +# tcp_port = 8889 diff --git a/.config/bat/config b/.config/bat/config new file mode 100644 index 0000000..31ccb73 --- /dev/null +++ b/.config/bat/config @@ -0,0 +1,8 @@ +--italic-text='always' +--map-syntax='.*ignore:Git Ignore' +--map-syntax='.gitconfig.local:Git Config' +--map-syntax='flake.lock:JSON' +--pager='less -FR' +--style='numbers,changes,header,grid' +--theme='catppuccin-mocha' +--wrap='never' diff --git a/home/neovim/nvim/spell/de.utf-8.add b/.config/bat/syntaxes/.gitkeep old mode 100755 new mode 100644 similarity index 100% rename from home/neovim/nvim/spell/de.utf-8.add rename to .config/bat/syntaxes/.gitkeep diff --git a/.config/bat/themes/Catppuccin-frappe.tmTheme b/.config/bat/themes/Catppuccin-frappe.tmTheme new file mode 100644 index 0000000..f4eb222 --- /dev/null +++ b/.config/bat/themes/Catppuccin-frappe.tmTheme @@ -0,0 +1,959 @@ + + + + + name + Catppuccin + settings + + + settings + + foreground + #c6d0f5 + background + #303446 + caret + #b5bfe2 + invisibles + #a5adce + gutterForeground + #949cbb + gutterForegroundHighlight + #a6d189 + lineHighlight + #626880 + selection + #737994 + selectionBorder + #303446 + activeGuide + #ef9f76 + findHighlightForeground + #292c3c + findHighlight + #e5c890 + bracketsForeground + #949cbb + bracketContentsForeground + #949cbb + + + + name + Comment + scope + comment + settings + + foreground + #737994 + fontStyle + italic + + + + name + String + scope + string + settings + + foreground + #a6d189 + fontStyle + + + + + name + String regex + scope + string.regexp + settings + + foreground + #ef9f76 + fontStyle + + + + + name + Number + scope + constant.numeric + settings + + foreground + #ef9f76 + fontStyle + + + + + name + Boolean + scope + constant.language.boolean + settings + + foreground + #ef9f76 + fontStyle + bold italic + + + + name + Built-in constant + scope + constant.language + settings + + foreground + #babbf1 + fontStyle + italic + + + + name + Built-in function + scope + support.function.builtin + settings + + foreground + #ef9f76 + fontStyle + italic + + + + name + User-defined constant + scope + variable.other.constant + settings + + foreground + #ef9f76 + fontStyle + + + + + name + Variable + scope + variable + settings + + + + name + Keyword + scope + keyword + settings + + foreground + #e78284 + fontStyle + italic + + + + name + Conditional/loop + scope + keyword.control.loop, keyword.control.conditional, keyword.control.c++ + settings + + foreground + #ca9ee6 + fontStyle + bold + + + + name + Return + scope + keyword.control.return, keyword.control.flow.return + settings + + foreground + #f4b8e4 + fontStyle + bold + + + + name + Exception + scope + support.type.exception + settings + + foreground + #ef9f76 + fontStyle + italic + + + + name + Operator + scope + keyword.operator, punctuation.accessor + settings + + foreground + #99d1db + fontStyle + bold + + + + name + Punctuation separator + scope + punctuation.separator + settings + + foreground + #81c8be + fontStyle + + + + + name + Punctuation terminator + scope + punctuation.terminator + settings + + foreground + #81c8be + fontStyle + + + + + name + Punctuation bracket + scope + punctuation.section + settings + + foreground + #949cbb + fontStyle + + + + + name + Include + scope + keyword.control.import.include + settings + + foreground + #81c8be + fontStyle + italic + + + + name + Storage + scope + storage + settings + + foreground + #e78284 + fontStyle + + + + + name + Storage type + scope + storage.type + settings + + foreground + #e5c890 + fontStyle + italic + + + + name + Storage modifier + scope + storage.modifier + settings + + foreground + #e78284 + fontStyle + + + + + name + Storage type namespace + scope + entity.name.namespace, meta.path + settings + + foreground + #f2d5cf + fontStyle + italic + + + + name + Storage type class + scope + storage.type.class + settings + + foreground + #f2d5cf + fontStyle + italic + + + + name + Label + scope + entity.name.label + settings + + foreground + #8caaee + fontStyle + + + + + name + Keyword class + scope + keyword.declaration.class + settings + + foreground + #e78284 + fontStyle + italic + + + + name + Class name + scope + entity.name.class, meta.toc-list.full-identifier + settings + + foreground + #99d1db + fontStyle + + + + + name + Inherited class + scope + entity.other.inherited-class + settings + + foreground + #99d1db + fontStyle + italic + + + + name + Function name + scope + entity.name.function, variable.function + settings + + foreground + #8caaee + fontStyle + italic + + + + name + Function macro + scope + entity.name.function.preprocessor + settings + + foreground + #e78284 + fontStyle + + + + + name + Macro directive - ifdef + scope + keyword.control.import + settings + + foreground + #e78284 + fontStyle + + + + + name + Constructor + scope + entity.name.function.constructor, entity.name.function.destructor + settings + + foreground + #babbf1 + fontStyle + + + + + name + Function argument + scope + variable.parameter.function + settings + + foreground + #f2d5cf + fontStyle + italic + + + + name + Function declaration + scope + keyword.declaration.function + settings + + foreground + #ea999c + fontStyle + italic + + + + name + Library function + scope + support.function + settings + + foreground + #99d1db + fontStyle + + + + + name + Library constant + scope + support.constant + settings + + foreground + #8caaee + fontStyle + + + + + name + Library class/type + scope + support.type, support.class + settings + + foreground + #8caaee + fontStyle + italic + + + + name + Library variable + scope + support.other.variable + settings + + fontStyle + + + + + name + Variable function + scope + variable.function + settings + + foreground + #8caaee + fontStyle + italic + + + + name + Variable parameter + scope + variable.parameter + settings + + foreground + #f2d5cf + fontStyle + italic + + + + name + Variable other + scope + variable.other + settings + + foreground + #c6d0f5 + fontStyle + italic + + + + name + Variable field + scope + variable.other.member + settings + + foreground + #f2d5cf + fontStyle + + + + + name + Variable language + scope + variable.language + settings + + foreground + #81c8be + fontStyle + + + + + name + Tag name + scope + entity.name.tag + settings + + foreground + #ef9f76 + fontStyle + + + + + name + Tag attribute + scope + entity.other.attribute-name + settings + + foreground + #ca9ee6 + fontStyle + italic + + + + name + Tag delimiter + scope + punctuation.definition.tag + settings + + foreground + #ea999c + fontStyle + + + + + name + Markdown URL + scope + markup.underline.link.markdown + settings + + foreground + #f2d5cf + fontStyle + italic underline + + + + name + Markdown reference + scope + meta.link.inline.description + settings + + foreground + #babbf1 + fontStyle + bold + + + + name + Markdown literal + scope + comment.block.markdown, meta.code-fence, markup.raw.code-fence, markup.raw.inline + settings + + foreground + #81c8be + fontStyle + italic + + + + name + Markdown title + scope + punctuation.definition.heading, entity.name.section + settings + + foreground + #8caaee + fontStyle + bold + + + + name + Markdown emphasis + scope + markup.italic + settings + + foreground + #ea999c + fontStyle + italic + + + + name + Markdown strong + scope + markup.bold + settings + + foreground + #ea999c + fontStyle + bold + + + + name + Escape + scope + constant.character.escape + settings + + foreground + #f4b8e4 + fontStyle + + + + + name + Bash built-in function + scope + source.shell.bash meta.function.shell meta.compound.shell meta.function-call.identifier.shell + settings + + foreground + #f4b8e4 + fontStyle + + + + + name + Bash parameter + scope + variable.language.shell + settings + + foreground + #e78284 + fontStyle + italic + + + + name + Lua field + scope + source.lua meta.function.lua meta.block.lua meta.mapping.value.lua meta.mapping.key.lua string.unquoted.key.lua + settings + + foreground + #babbf1 + fontStyle + italic + + + + name + Lua constructor + scope + source.lua meta.function.lua meta.block.lua meta.mapping.key.lua string.unquoted.key.lua + settings + + foreground + #eebebe + fontStyle + + + + + name + Java constant + scope + entity.name.constant.java + settings + + foreground + #81c8be + fontStyle + + + + + name + CSS property + scope + support.type.property-name.css + settings + + foreground + #eebebe + fontStyle + italic + + + + name + CSS constant + scope + support.constant.property-value.css + settings + + foreground + #c6d0f5 + fontStyle + + + + + name + CSS suffix + scope + constant.numeric.suffix.css, keyword.other.unit.css + settings + + foreground + #81c8be + fontStyle + italic + + + + name + CSS variable property + scope + variable.other.custom-property.name.css, support.type.custom-property.name.css, punctuation.definition.custom-property.css + settings + + foreground + #81c8be + fontStyle + + + + + name + SCSS tag + scope + entity.name.tag.css + settings + + foreground + #babbf1 + fontStyle + + + + + name + SASS variable + scope + variable.other.sass + settings + + foreground + #81c8be + fontStyle + + + + + name + Invalid + scope + invalid + settings + + foreground + #c6d0f5 + background + #e78284 + fontStyle + + + + + name + Invalid deprecated + scope + invalid.deprecated + settings + + foreground + #c6d0f5 + background + #ca9ee6 + fontStyle + + + + + name + Diff header + scope + meta.diff, meta.diff.header + settings + + foreground + #737994 + fontStyle + + + + + name + Diff deleted + scope + markup.deleted + settings + + foreground + #e78284 + fontStyle + + + + + name + Diff inserted + scope + markup.inserted + settings + + foreground + #a6d189 + fontStyle + + + + + name + Diff changed + scope + markup.changed + settings + + foreground + #e5c890 + fontStyle + + + + + name + Message error + scope + message.error + settings + + foreground + #e78284 + fontStyle + + + + + uuid + 4d0379b5-ef82-467b-b8b8-365889420646 + colorSpaceName + sRGB + semanticClass + theme.dark.Catppuccin + author + BrunDerSchwarzmagier + + diff --git a/.config/bat/themes/Catppuccin-latte.tmTheme b/.config/bat/themes/Catppuccin-latte.tmTheme new file mode 100644 index 0000000..6f23c16 --- /dev/null +++ b/.config/bat/themes/Catppuccin-latte.tmTheme @@ -0,0 +1,959 @@ + + + + + name + Catppuccin + settings + + + settings + + foreground + #4c4f69 + background + #eff1f5 + caret + #5c5f77 + invisibles + #6c6f85 + gutterForeground + #7c7f93 + gutterForegroundHighlight + #40a02b + lineHighlight + #acb0be + selection + #9ca0b0 + selectionBorder + #eff1f5 + activeGuide + #fe640b + findHighlightForeground + #e6e9ef + findHighlight + #df8e1d + bracketsForeground + #7c7f93 + bracketContentsForeground + #7c7f93 + + + + name + Comment + scope + comment + settings + + foreground + #9ca0b0 + fontStyle + italic + + + + name + String + scope + string + settings + + foreground + #40a02b + fontStyle + + + + + name + String regex + scope + string.regexp + settings + + foreground + #fe640b + fontStyle + + + + + name + Number + scope + constant.numeric + settings + + foreground + #fe640b + fontStyle + + + + + name + Boolean + scope + constant.language.boolean + settings + + foreground + #fe640b + fontStyle + bold italic + + + + name + Built-in constant + scope + constant.language + settings + + foreground + #7287fd + fontStyle + italic + + + + name + Built-in function + scope + support.function.builtin + settings + + foreground + #fe640b + fontStyle + italic + + + + name + User-defined constant + scope + variable.other.constant + settings + + foreground + #fe640b + fontStyle + + + + + name + Variable + scope + variable + settings + + + + name + Keyword + scope + keyword + settings + + foreground + #d20f39 + fontStyle + italic + + + + name + Conditional/loop + scope + keyword.control.loop, keyword.control.conditional, keyword.control.c++ + settings + + foreground + #8839ef + fontStyle + bold + + + + name + Return + scope + keyword.control.return, keyword.control.flow.return + settings + + foreground + #ea76cb + fontStyle + bold + + + + name + Exception + scope + support.type.exception + settings + + foreground + #fe640b + fontStyle + italic + + + + name + Operator + scope + keyword.operator, punctuation.accessor + settings + + foreground + #04a5e5 + fontStyle + bold + + + + name + Punctuation separator + scope + punctuation.separator + settings + + foreground + #179299 + fontStyle + + + + + name + Punctuation terminator + scope + punctuation.terminator + settings + + foreground + #179299 + fontStyle + + + + + name + Punctuation bracket + scope + punctuation.section + settings + + foreground + #7c7f93 + fontStyle + + + + + name + Include + scope + keyword.control.import.include + settings + + foreground + #179299 + fontStyle + italic + + + + name + Storage + scope + storage + settings + + foreground + #d20f39 + fontStyle + + + + + name + Storage type + scope + storage.type + settings + + foreground + #df8e1d + fontStyle + italic + + + + name + Storage modifier + scope + storage.modifier + settings + + foreground + #d20f39 + fontStyle + + + + + name + Storage type namespace + scope + entity.name.namespace, meta.path + settings + + foreground + #dc8a78 + fontStyle + italic + + + + name + Storage type class + scope + storage.type.class + settings + + foreground + #dc8a78 + fontStyle + italic + + + + name + Label + scope + entity.name.label + settings + + foreground + #1e66f5 + fontStyle + + + + + name + Keyword class + scope + keyword.declaration.class + settings + + foreground + #d20f39 + fontStyle + italic + + + + name + Class name + scope + entity.name.class, meta.toc-list.full-identifier + settings + + foreground + #04a5e5 + fontStyle + + + + + name + Inherited class + scope + entity.other.inherited-class + settings + + foreground + #04a5e5 + fontStyle + italic + + + + name + Function name + scope + entity.name.function, variable.function + settings + + foreground + #1e66f5 + fontStyle + italic + + + + name + Function macro + scope + entity.name.function.preprocessor + settings + + foreground + #d20f39 + fontStyle + + + + + name + Macro directive - ifdef + scope + keyword.control.import + settings + + foreground + #d20f39 + fontStyle + + + + + name + Constructor + scope + entity.name.function.constructor, entity.name.function.destructor + settings + + foreground + #7287fd + fontStyle + + + + + name + Function argument + scope + variable.parameter.function + settings + + foreground + #dc8a78 + fontStyle + italic + + + + name + Function declaration + scope + keyword.declaration.function + settings + + foreground + #e64553 + fontStyle + italic + + + + name + Library function + scope + support.function + settings + + foreground + #04a5e5 + fontStyle + + + + + name + Library constant + scope + support.constant + settings + + foreground + #1e66f5 + fontStyle + + + + + name + Library class/type + scope + support.type, support.class + settings + + foreground + #1e66f5 + fontStyle + italic + + + + name + Library variable + scope + support.other.variable + settings + + fontStyle + + + + + name + Variable function + scope + variable.function + settings + + foreground + #1e66f5 + fontStyle + italic + + + + name + Variable parameter + scope + variable.parameter + settings + + foreground + #dc8a78 + fontStyle + italic + + + + name + Variable other + scope + variable.other + settings + + foreground + #4c4f69 + fontStyle + italic + + + + name + Variable field + scope + variable.other.member + settings + + foreground + #dc8a78 + fontStyle + + + + + name + Variable language + scope + variable.language + settings + + foreground + #179299 + fontStyle + + + + + name + Tag name + scope + entity.name.tag + settings + + foreground + #fe640b + fontStyle + + + + + name + Tag attribute + scope + entity.other.attribute-name + settings + + foreground + #8839ef + fontStyle + italic + + + + name + Tag delimiter + scope + punctuation.definition.tag + settings + + foreground + #e64553 + fontStyle + + + + + name + Markdown URL + scope + markup.underline.link.markdown + settings + + foreground + #dc8a78 + fontStyle + italic underline + + + + name + Markdown reference + scope + meta.link.inline.description + settings + + foreground + #7287fd + fontStyle + bold + + + + name + Markdown literal + scope + comment.block.markdown, meta.code-fence, markup.raw.code-fence, markup.raw.inline + settings + + foreground + #179299 + fontStyle + italic + + + + name + Markdown title + scope + punctuation.definition.heading, entity.name.section + settings + + foreground + #1e66f5 + fontStyle + bold + + + + name + Markdown emphasis + scope + markup.italic + settings + + foreground + #e64553 + fontStyle + italic + + + + name + Markdown strong + scope + markup.bold + settings + + foreground + #e64553 + fontStyle + bold + + + + name + Escape + scope + constant.character.escape + settings + + foreground + #ea76cb + fontStyle + + + + + name + Bash built-in function + scope + source.shell.bash meta.function.shell meta.compound.shell meta.function-call.identifier.shell + settings + + foreground + #ea76cb + fontStyle + + + + + name + Bash parameter + scope + variable.language.shell + settings + + foreground + #d20f39 + fontStyle + italic + + + + name + Lua field + scope + source.lua meta.function.lua meta.block.lua meta.mapping.value.lua meta.mapping.key.lua string.unquoted.key.lua + settings + + foreground + #7287fd + fontStyle + italic + + + + name + Lua constructor + scope + source.lua meta.function.lua meta.block.lua meta.mapping.key.lua string.unquoted.key.lua + settings + + foreground + #dd7878 + fontStyle + + + + + name + Java constant + scope + entity.name.constant.java + settings + + foreground + #179299 + fontStyle + + + + + name + CSS property + scope + support.type.property-name.css + settings + + foreground + #dd7878 + fontStyle + italic + + + + name + CSS constant + scope + support.constant.property-value.css + settings + + foreground + #4c4f69 + fontStyle + + + + + name + CSS suffix + scope + constant.numeric.suffix.css, keyword.other.unit.css + settings + + foreground + #179299 + fontStyle + italic + + + + name + CSS variable property + scope + variable.other.custom-property.name.css, support.type.custom-property.name.css, punctuation.definition.custom-property.css + settings + + foreground + #179299 + fontStyle + + + + + name + SCSS tag + scope + entity.name.tag.css + settings + + foreground + #7287fd + fontStyle + + + + + name + SASS variable + scope + variable.other.sass + settings + + foreground + #179299 + fontStyle + + + + + name + Invalid + scope + invalid + settings + + foreground + #4c4f69 + background + #d20f39 + fontStyle + + + + + name + Invalid deprecated + scope + invalid.deprecated + settings + + foreground + #4c4f69 + background + #8839ef + fontStyle + + + + + name + Diff header + scope + meta.diff, meta.diff.header + settings + + foreground + #9ca0b0 + fontStyle + + + + + name + Diff deleted + scope + markup.deleted + settings + + foreground + #d20f39 + fontStyle + + + + + name + Diff inserted + scope + markup.inserted + settings + + foreground + #40a02b + fontStyle + + + + + name + Diff changed + scope + markup.changed + settings + + foreground + #df8e1d + fontStyle + + + + + name + Message error + scope + message.error + settings + + foreground + #d20f39 + fontStyle + + + + + uuid + 4d0379b5-ef82-467b-b8b8-365889420646 + colorSpaceName + sRGB + semanticClass + theme.dark.Catppuccin + author + BrunDerSchwarzmagier + + diff --git a/.config/bat/themes/Catppuccin-macchiato.tmTheme b/.config/bat/themes/Catppuccin-macchiato.tmTheme new file mode 100644 index 0000000..0beedb6 --- /dev/null +++ b/.config/bat/themes/Catppuccin-macchiato.tmTheme @@ -0,0 +1,959 @@ + + + + + name + Catppuccin + settings + + + settings + + foreground + #cad3f5 + background + #24273a + caret + #b8c0e0 + invisibles + #a5adcb + gutterForeground + #939ab7 + gutterForegroundHighlight + #a6da95 + lineHighlight + #5b6078 + selection + #6e738d + selectionBorder + #24273a + activeGuide + #f5a97f + findHighlightForeground + #1e2030 + findHighlight + #eed49f + bracketsForeground + #939ab7 + bracketContentsForeground + #939ab7 + + + + name + Comment + scope + comment + settings + + foreground + #6e738d + fontStyle + italic + + + + name + String + scope + string + settings + + foreground + #a6da95 + fontStyle + + + + + name + String regex + scope + string.regexp + settings + + foreground + #f5a97f + fontStyle + + + + + name + Number + scope + constant.numeric + settings + + foreground + #f5a97f + fontStyle + + + + + name + Boolean + scope + constant.language.boolean + settings + + foreground + #f5a97f + fontStyle + bold italic + + + + name + Built-in constant + scope + constant.language + settings + + foreground + #b7bdf8 + fontStyle + italic + + + + name + Built-in function + scope + support.function.builtin + settings + + foreground + #f5a97f + fontStyle + italic + + + + name + User-defined constant + scope + variable.other.constant + settings + + foreground + #f5a97f + fontStyle + + + + + name + Variable + scope + variable + settings + + + + name + Keyword + scope + keyword + settings + + foreground + #ed8796 + fontStyle + italic + + + + name + Conditional/loop + scope + keyword.control.loop, keyword.control.conditional, keyword.control.c++ + settings + + foreground + #c6a0f6 + fontStyle + bold + + + + name + Return + scope + keyword.control.return, keyword.control.flow.return + settings + + foreground + #f5bde6 + fontStyle + bold + + + + name + Exception + scope + support.type.exception + settings + + foreground + #f5a97f + fontStyle + italic + + + + name + Operator + scope + keyword.operator, punctuation.accessor + settings + + foreground + #91d7e3 + fontStyle + bold + + + + name + Punctuation separator + scope + punctuation.separator + settings + + foreground + #8bd5ca + fontStyle + + + + + name + Punctuation terminator + scope + punctuation.terminator + settings + + foreground + #8bd5ca + fontStyle + + + + + name + Punctuation bracket + scope + punctuation.section + settings + + foreground + #939ab7 + fontStyle + + + + + name + Include + scope + keyword.control.import.include + settings + + foreground + #8bd5ca + fontStyle + italic + + + + name + Storage + scope + storage + settings + + foreground + #ed8796 + fontStyle + + + + + name + Storage type + scope + storage.type + settings + + foreground + #eed49f + fontStyle + italic + + + + name + Storage modifier + scope + storage.modifier + settings + + foreground + #ed8796 + fontStyle + + + + + name + Storage type namespace + scope + entity.name.namespace, meta.path + settings + + foreground + #f4dbd6 + fontStyle + italic + + + + name + Storage type class + scope + storage.type.class + settings + + foreground + #f4dbd6 + fontStyle + italic + + + + name + Label + scope + entity.name.label + settings + + foreground + #8aadf4 + fontStyle + + + + + name + Keyword class + scope + keyword.declaration.class + settings + + foreground + #ed8796 + fontStyle + italic + + + + name + Class name + scope + entity.name.class, meta.toc-list.full-identifier + settings + + foreground + #91d7e3 + fontStyle + + + + + name + Inherited class + scope + entity.other.inherited-class + settings + + foreground + #91d7e3 + fontStyle + italic + + + + name + Function name + scope + entity.name.function, variable.function + settings + + foreground + #8aadf4 + fontStyle + italic + + + + name + Function macro + scope + entity.name.function.preprocessor + settings + + foreground + #ed8796 + fontStyle + + + + + name + Macro directive - ifdef + scope + keyword.control.import + settings + + foreground + #ed8796 + fontStyle + + + + + name + Constructor + scope + entity.name.function.constructor, entity.name.function.destructor + settings + + foreground + #b7bdf8 + fontStyle + + + + + name + Function argument + scope + variable.parameter.function + settings + + foreground + #f4dbd6 + fontStyle + italic + + + + name + Function declaration + scope + keyword.declaration.function + settings + + foreground + #ee99a0 + fontStyle + italic + + + + name + Library function + scope + support.function + settings + + foreground + #91d7e3 + fontStyle + + + + + name + Library constant + scope + support.constant + settings + + foreground + #8aadf4 + fontStyle + + + + + name + Library class/type + scope + support.type, support.class + settings + + foreground + #8aadf4 + fontStyle + italic + + + + name + Library variable + scope + support.other.variable + settings + + fontStyle + + + + + name + Variable function + scope + variable.function + settings + + foreground + #8aadf4 + fontStyle + italic + + + + name + Variable parameter + scope + variable.parameter + settings + + foreground + #f4dbd6 + fontStyle + italic + + + + name + Variable other + scope + variable.other + settings + + foreground + #cad3f5 + fontStyle + italic + + + + name + Variable field + scope + variable.other.member + settings + + foreground + #f4dbd6 + fontStyle + + + + + name + Variable language + scope + variable.language + settings + + foreground + #8bd5ca + fontStyle + + + + + name + Tag name + scope + entity.name.tag + settings + + foreground + #f5a97f + fontStyle + + + + + name + Tag attribute + scope + entity.other.attribute-name + settings + + foreground + #c6a0f6 + fontStyle + italic + + + + name + Tag delimiter + scope + punctuation.definition.tag + settings + + foreground + #ee99a0 + fontStyle + + + + + name + Markdown URL + scope + markup.underline.link.markdown + settings + + foreground + #f4dbd6 + fontStyle + italic underline + + + + name + Markdown reference + scope + meta.link.inline.description + settings + + foreground + #b7bdf8 + fontStyle + bold + + + + name + Markdown literal + scope + comment.block.markdown, meta.code-fence, markup.raw.code-fence, markup.raw.inline + settings + + foreground + #8bd5ca + fontStyle + italic + + + + name + Markdown title + scope + punctuation.definition.heading, entity.name.section + settings + + foreground + #8aadf4 + fontStyle + bold + + + + name + Markdown emphasis + scope + markup.italic + settings + + foreground + #ee99a0 + fontStyle + italic + + + + name + Markdown strong + scope + markup.bold + settings + + foreground + #ee99a0 + fontStyle + bold + + + + name + Escape + scope + constant.character.escape + settings + + foreground + #f5bde6 + fontStyle + + + + + name + Bash built-in function + scope + source.shell.bash meta.function.shell meta.compound.shell meta.function-call.identifier.shell + settings + + foreground + #f5bde6 + fontStyle + + + + + name + Bash parameter + scope + variable.language.shell + settings + + foreground + #ed8796 + fontStyle + italic + + + + name + Lua field + scope + source.lua meta.function.lua meta.block.lua meta.mapping.value.lua meta.mapping.key.lua string.unquoted.key.lua + settings + + foreground + #b7bdf8 + fontStyle + italic + + + + name + Lua constructor + scope + source.lua meta.function.lua meta.block.lua meta.mapping.key.lua string.unquoted.key.lua + settings + + foreground + #f0c6c6 + fontStyle + + + + + name + Java constant + scope + entity.name.constant.java + settings + + foreground + #8bd5ca + fontStyle + + + + + name + CSS property + scope + support.type.property-name.css + settings + + foreground + #f0c6c6 + fontStyle + italic + + + + name + CSS constant + scope + support.constant.property-value.css + settings + + foreground + #cad3f5 + fontStyle + + + + + name + CSS suffix + scope + constant.numeric.suffix.css, keyword.other.unit.css + settings + + foreground + #8bd5ca + fontStyle + italic + + + + name + CSS variable property + scope + variable.other.custom-property.name.css, support.type.custom-property.name.css, punctuation.definition.custom-property.css + settings + + foreground + #8bd5ca + fontStyle + + + + + name + SCSS tag + scope + entity.name.tag.css + settings + + foreground + #b7bdf8 + fontStyle + + + + + name + SASS variable + scope + variable.other.sass + settings + + foreground + #8bd5ca + fontStyle + + + + + name + Invalid + scope + invalid + settings + + foreground + #cad3f5 + background + #ed8796 + fontStyle + + + + + name + Invalid deprecated + scope + invalid.deprecated + settings + + foreground + #cad3f5 + background + #c6a0f6 + fontStyle + + + + + name + Diff header + scope + meta.diff, meta.diff.header + settings + + foreground + #6e738d + fontStyle + + + + + name + Diff deleted + scope + markup.deleted + settings + + foreground + #ed8796 + fontStyle + + + + + name + Diff inserted + scope + markup.inserted + settings + + foreground + #a6da95 + fontStyle + + + + + name + Diff changed + scope + markup.changed + settings + + foreground + #eed49f + fontStyle + + + + + name + Message error + scope + message.error + settings + + foreground + #ed8796 + fontStyle + + + + + uuid + 4d0379b5-ef82-467b-b8b8-365889420646 + colorSpaceName + sRGB + semanticClass + theme.dark.Catppuccin + author + BrunDerSchwarzmagier + + diff --git a/.config/bat/themes/Catppuccin-mocha.tmTheme b/.config/bat/themes/Catppuccin-mocha.tmTheme new file mode 100644 index 0000000..3b9b72c --- /dev/null +++ b/.config/bat/themes/Catppuccin-mocha.tmTheme @@ -0,0 +1,959 @@ + + + + + name + Catppuccin + settings + + + settings + + foreground + #cdd6f4 + background + #1e1e2e + caret + #bac2de + invisibles + #a6adc8 + gutterForeground + #9399b2 + gutterForegroundHighlight + #a6e3a1 + lineHighlight + #585b70 + selection + #6c7086 + selectionBorder + #1e1e2e + activeGuide + #fab387 + findHighlightForeground + #181825 + findHighlight + #f9e2af + bracketsForeground + #9399b2 + bracketContentsForeground + #9399b2 + + + + name + Comment + scope + comment + settings + + foreground + #6c7086 + fontStyle + italic + + + + name + String + scope + string + settings + + foreground + #a6e3a1 + fontStyle + + + + + name + String regex + scope + string.regexp + settings + + foreground + #fab387 + fontStyle + + + + + name + Number + scope + constant.numeric + settings + + foreground + #fab387 + fontStyle + + + + + name + Boolean + scope + constant.language.boolean + settings + + foreground + #fab387 + fontStyle + bold italic + + + + name + Built-in constant + scope + constant.language + settings + + foreground + #b4befe + fontStyle + italic + + + + name + Built-in function + scope + support.function.builtin + settings + + foreground + #fab387 + fontStyle + italic + + + + name + User-defined constant + scope + variable.other.constant + settings + + foreground + #fab387 + fontStyle + + + + + name + Variable + scope + variable + settings + + + + name + Keyword + scope + keyword + settings + + foreground + #f38ba8 + fontStyle + italic + + + + name + Conditional/loop + scope + keyword.control.loop, keyword.control.conditional, keyword.control.c++ + settings + + foreground + #cba6f7 + fontStyle + bold + + + + name + Return + scope + keyword.control.return, keyword.control.flow.return + settings + + foreground + #f5c2e7 + fontStyle + bold + + + + name + Exception + scope + support.type.exception + settings + + foreground + #fab387 + fontStyle + italic + + + + name + Operator + scope + keyword.operator, punctuation.accessor + settings + + foreground + #89dceb + fontStyle + bold + + + + name + Punctuation separator + scope + punctuation.separator + settings + + foreground + #94e2d5 + fontStyle + + + + + name + Punctuation terminator + scope + punctuation.terminator + settings + + foreground + #94e2d5 + fontStyle + + + + + name + Punctuation bracket + scope + punctuation.section + settings + + foreground + #9399b2 + fontStyle + + + + + name + Include + scope + keyword.control.import.include + settings + + foreground + #94e2d5 + fontStyle + italic + + + + name + Storage + scope + storage + settings + + foreground + #f38ba8 + fontStyle + + + + + name + Storage type + scope + storage.type + settings + + foreground + #f9e2af + fontStyle + italic + + + + name + Storage modifier + scope + storage.modifier + settings + + foreground + #f38ba8 + fontStyle + + + + + name + Storage type namespace + scope + entity.name.namespace, meta.path + settings + + foreground + #f5e0dc + fontStyle + italic + + + + name + Storage type class + scope + storage.type.class + settings + + foreground + #f5e0dc + fontStyle + italic + + + + name + Label + scope + entity.name.label + settings + + foreground + #89b4fa + fontStyle + + + + + name + Keyword class + scope + keyword.declaration.class + settings + + foreground + #f38ba8 + fontStyle + italic + + + + name + Class name + scope + entity.name.class, meta.toc-list.full-identifier + settings + + foreground + #89dceb + fontStyle + + + + + name + Inherited class + scope + entity.other.inherited-class + settings + + foreground + #89dceb + fontStyle + italic + + + + name + Function name + scope + entity.name.function, variable.function + settings + + foreground + #89b4fa + fontStyle + italic + + + + name + Function macro + scope + entity.name.function.preprocessor + settings + + foreground + #f38ba8 + fontStyle + + + + + name + Macro directive - ifdef + scope + keyword.control.import + settings + + foreground + #f38ba8 + fontStyle + + + + + name + Constructor + scope + entity.name.function.constructor, entity.name.function.destructor + settings + + foreground + #b4befe + fontStyle + + + + + name + Function argument + scope + variable.parameter.function + settings + + foreground + #f5e0dc + fontStyle + italic + + + + name + Function declaration + scope + keyword.declaration.function + settings + + foreground + #eba0ac + fontStyle + italic + + + + name + Library function + scope + support.function + settings + + foreground + #89dceb + fontStyle + + + + + name + Library constant + scope + support.constant + settings + + foreground + #89b4fa + fontStyle + + + + + name + Library class/type + scope + support.type, support.class + settings + + foreground + #89b4fa + fontStyle + italic + + + + name + Library variable + scope + support.other.variable + settings + + fontStyle + + + + + name + Variable function + scope + variable.function + settings + + foreground + #89b4fa + fontStyle + italic + + + + name + Variable parameter + scope + variable.parameter + settings + + foreground + #f5e0dc + fontStyle + italic + + + + name + Variable other + scope + variable.other + settings + + foreground + #cdd6f4 + fontStyle + italic + + + + name + Variable field + scope + variable.other.member + settings + + foreground + #f5e0dc + fontStyle + + + + + name + Variable language + scope + variable.language + settings + + foreground + #94e2d5 + fontStyle + + + + + name + Tag name + scope + entity.name.tag + settings + + foreground + #fab387 + fontStyle + + + + + name + Tag attribute + scope + entity.other.attribute-name + settings + + foreground + #cba6f7 + fontStyle + italic + + + + name + Tag delimiter + scope + punctuation.definition.tag + settings + + foreground + #eba0ac + fontStyle + + + + + name + Markdown URL + scope + markup.underline.link.markdown + settings + + foreground + #f5e0dc + fontStyle + italic underline + + + + name + Markdown reference + scope + meta.link.inline.description + settings + + foreground + #b4befe + fontStyle + bold + + + + name + Markdown literal + scope + comment.block.markdown, meta.code-fence, markup.raw.code-fence, markup.raw.inline + settings + + foreground + #94e2d5 + fontStyle + italic + + + + name + Markdown title + scope + punctuation.definition.heading, entity.name.section + settings + + foreground + #89b4fa + fontStyle + bold + + + + name + Markdown emphasis + scope + markup.italic + settings + + foreground + #eba0ac + fontStyle + italic + + + + name + Markdown strong + scope + markup.bold + settings + + foreground + #eba0ac + fontStyle + bold + + + + name + Escape + scope + constant.character.escape + settings + + foreground + #f5c2e7 + fontStyle + + + + + name + Bash built-in function + scope + source.shell.bash meta.function.shell meta.compound.shell meta.function-call.identifier.shell + settings + + foreground + #f5c2e7 + fontStyle + + + + + name + Bash parameter + scope + variable.language.shell + settings + + foreground + #f38ba8 + fontStyle + italic + + + + name + Lua field + scope + source.lua meta.function.lua meta.block.lua meta.mapping.value.lua meta.mapping.key.lua string.unquoted.key.lua + settings + + foreground + #b4befe + fontStyle + italic + + + + name + Lua constructor + scope + source.lua meta.function.lua meta.block.lua meta.mapping.key.lua string.unquoted.key.lua + settings + + foreground + #f2cdcd + fontStyle + + + + + name + Java constant + scope + entity.name.constant.java + settings + + foreground + #94e2d5 + fontStyle + + + + + name + CSS property + scope + support.type.property-name.css + settings + + foreground + #f2cdcd + fontStyle + italic + + + + name + CSS constant + scope + support.constant.property-value.css + settings + + foreground + #cdd6f4 + fontStyle + + + + + name + CSS suffix + scope + constant.numeric.suffix.css, keyword.other.unit.css + settings + + foreground + #94e2d5 + fontStyle + italic + + + + name + CSS variable property + scope + variable.other.custom-property.name.css, support.type.custom-property.name.css, punctuation.definition.custom-property.css + settings + + foreground + #94e2d5 + fontStyle + + + + + name + SCSS tag + scope + entity.name.tag.css + settings + + foreground + #b4befe + fontStyle + + + + + name + SASS variable + scope + variable.other.sass + settings + + foreground + #94e2d5 + fontStyle + + + + + name + Invalid + scope + invalid + settings + + foreground + #cdd6f4 + background + #f38ba8 + fontStyle + + + + + name + Invalid deprecated + scope + invalid.deprecated + settings + + foreground + #cdd6f4 + background + #cba6f7 + fontStyle + + + + + name + Diff header + scope + meta.diff, meta.diff.header + settings + + foreground + #6c7086 + fontStyle + + + + + name + Diff deleted + scope + markup.deleted + settings + + foreground + #f38ba8 + fontStyle + + + + + name + Diff inserted + scope + markup.inserted + settings + + foreground + #a6e3a1 + fontStyle + + + + + name + Diff changed + scope + markup.changed + settings + + foreground + #f9e2af + fontStyle + + + + + name + Message error + scope + message.error + settings + + foreground + #f38ba8 + fontStyle + + + + + uuid + 4d0379b5-ef82-467b-b8b8-365889420646 + colorSpaceName + sRGB + semanticClass + theme.dark.Catppuccin + author + BrunDerSchwarzmagier + + diff --git a/.config/fish/config.fish b/.config/fish/config.fish new file mode 100644 index 0000000..dae3346 --- /dev/null +++ b/.config/fish/config.fish @@ -0,0 +1,205 @@ +# Use wezterm.terminfo +# curl https://raw.githubusercontent.com/wez/wezterm/master/termwiz/data/wezterm.terminfo | tic -x - + +# *** *** Key Bindings *** *** + +# Enable vi-mode key bindings +fish_vi_key_bindings + +# (r)everse history search +bind -M viins '^r' fzf-history-widget + +# (f)ile / (t) +bind -M viins '^f' fzf-file-widget + +# (z) jump +bind -M viins '^z' fzf-cd-widget + +# *** *** Session Variables *** *** + +set TERM wezterm + +# General +set -x KEYTIMEOUT 1 + +if command -v nvim >/dev/null 2>&1 + set -x EDITOR nvim + set -x GIT_EDITOR nvim +end + +# XDG base directory specification +set -x XDG_CACHE_HOME $HOME/.cache +set -x XDG_CONFIG_HOME $HOME/.config +set -x XDG_DATA_HOME $HOME/.local/share +set -x XDG_STATE_HOME $HOME/.local/state + +# SSH +set -x SSH_AUTH_SOCK $HOME/Library/Containers/com.maxgoedjen.Secretive.SecretAgent/Data/socket.ssh + +# fd +set FD_OPTIONS "--follow --exclude .git --exclude node_modules" + +# fzf +set -x FZF_ALT_C_COMMAND "fd --type d $FD_OPTIONS --color=never --hidden" +set -x FZF_ALT_C_OPTS "--preview 'tree -C {} | head -50'" +set -x FZF_CTRL_R_OPTS --reverse +set -x FZF_CTRL_T_COMMAND "git ls-files --cached --others --exclude-standard | fd --hidden --type f --type l $FD_OPTIONS" +set -x FZF_CTRL_T_OPTS "--preview 'bat --color=always --style=numbers {}' --bind shift-up:preview-page-up,shift-down:preview-page-down" +set -x FZF_DEFAULT_COMMAND "git ls-files --cached --others --exclude-standard | fd --hidden --type f --type l $FD_OPTIONS" +set -x FZF_DEFAULT_OPTS --no-height +set -x FZF_TMUX 1 +set -x FZF_TMUX_OPTS -p + +# Man +set -x MANPATH /usr/local/man $MANPATH + +# Volta +set -x VOLTA_HOME $HOME/.volta + +# *** *** Session Paths *** *** + +# Volta +fish_add_path $VOLTA_HOME/bin + +# Rust +fish_add_path $HOME/.cargo/bin + +# tmux plugins +fish_add_path $HOME/.tmux/plugins/tmux-nvr/bin +fish_add_path $HOME/.tmux/plugins/t-smart-tmux-session-manager/bin + +# Personal +fish_add_path $HOME/.dotfiles/bin +fish_add_path $HOME/.dotfiles/private/bin + +# Homebrew +fish_add_path (brew --prefix)/bin +fish_add_path (brew --prefix)/sbin +fish_add_path (brew --prefix)/whalebrew/bin + +# System +fish_add_path /usr/bin +fish_add_path /usr/local/bin +fish_add_path /usr/local/sbin + +# asdf +fish_add_path $HOME/.asdf/shims + +# Stable Diffusion Webui +# set VIRTUAL_ENV $HOME/Code/AI/stable-diffusion-webui/venv + +# *** *** Tools *** *** + +# Homebrew +eval "$(/opt/homebrew/bin/brew shellenv)" + +# asdf +source (brew --prefix asdf)/libexec/asdf.fish + +# GitHub CLI completion +if command -v gh >/dev/null 2>&1 + eval "$(gh completion -s fish)" +end + +# fzf +fzf --fish | source + +# Direnv +direnv hook fish | source + +# Zoxide +zoxide init fish | source + +# Atuin +atuin init fish | source + +# Starship +starship init fish | source + +# *** *** Aliases *** *** + +alias reload 'exec fish' + +# Folders/Lists +alias ... 'cd ../..' +alias cd.. 'cd ..' +alias ls 'eza --git --group-directories-first --icons' +alias ll 'eza -l --git --group-directories-first --icons' +alias lt 'eza --git --group-directories-first --icons --tree' +alias mkdir 'mkdir -p' +alias dotfiles 'cd $HOME/.dotfiles' +alias icloud 'cd $HOME/Library/Mobile\ Documents/com~apple~CloudDocs' +alias dropbox 'cd $HOME/Dropbox' + +# pnpm +alias pn pnpm +alias px pnpx + +# Git +alias ga 'git add' +alias gb 'git branch' +alias gba 'git branch -a' +alias gc 'git commit -v' +alias gca 'git commit -v -a' +alias gcam 'git commit --amend' +alias gcan 'git commit --amend --no-edit' +alias gd 'git diff -- . ":(exclude)yarn.lock"' +alias gdc 'git diff --cached' # Show changes in next commit (differences between index and last commit) +alias gdh 'git diff head' # Show difference between files in working tree and last commit +alias gdt 'git difftool' +alias gfa 'git fetch --all' +alias gg 'git log' +alias ghi 'git hist' +alias gl 'git pull' +alias glr 'git pull --rebase' +alias glu 'git config user.name "Stefan Imhoff" && git config user.email "gpg@kogakure.8shield.net" && git config user.signingkey "7A7253E8!"' +alias glx 'git config user.name "Stefan Imhoff" && git config user.email "stefan.imhoff@xing.com" && git config user.signingkey "73C3E2E3!"' +alias gmb 'git merge-base master HEAD' +alias gp 'git push' +alias gpf 'git push --force-with-lease' +alias gpp 'PATCHNAME=`git branch 2> /dev/null | sed -e "/^[^*]/d" -e "s/* \(.*\)/\1/"`-`date "+%Y-%m-%d-%H%M.patch"`; git diff --full-index master > ../patches/$PATCHNAME' +alias gpu 'git push -u origin HEAD' +alias gpv 'git push --no-verify' +alias grb 'git rebase master' +alias grbc 'git rebase --continue' +alias grbi 'git rebase -i ' +alias grbs 'git rebase --skip' +alias gru 'git remote update' +alias gsb 'git show-branch' +alias gsl 'git submodule foreach git pull' +alias gst 'git status -sb' +alias gsu 'git submodule update' +alias gu 'git up' +alias gw 'git whatchanged' +alias gw 'git worktree' +alias gwa 'git worktree add' # +alias gwl 'git worktree list' +alias gwp 'git whatchanged -p' +alias gwr 'git worktree remove' # +alias lg lazygit + +# Vim/Neovim +alias v vim + +if type nvim >/dev/null 2>&1 + alias vim nvim +end + +# Homebrew +alias bi 'brew install' + +# TMUX +alias t tmux +alias ta 'tmux attach' + +# Can't remember the fork name +alias youtube-dl yt-dlp + +# iA Writer +alias ia 'open $1 -a /Applications/iA\ Writer.app' + +# Recursively delete `.DS_Store` files +alias cleanup 'find . -type f -name "*.DS_Store" -ls -delete' + +# Clear the screen +alias c clear diff --git a/.config/fish/fish_plugins b/.config/fish/fish_plugins new file mode 100644 index 0000000..6989ccb --- /dev/null +++ b/.config/fish/fish_plugins @@ -0,0 +1,7 @@ +edc/bass +jethrokuan/fzf +jethrokuan/z +jorgebucaran/autopair.fish +jorgebucaran/fisher +jorgebucaran/replay.fish +joshmedeski/fish-lf-icons diff --git a/home/fish/functions/dataUrl.fish b/.config/fish/functions/dataUrl.fish similarity index 100% rename from home/fish/functions/dataUrl.fish rename to .config/fish/functions/dataUrl.fish diff --git a/home/fish/functions/deleteNodeModules.fish b/.config/fish/functions/deleteNodeModules.fish similarity index 100% rename from home/fish/functions/deleteNodeModules.fish rename to .config/fish/functions/deleteNodeModules.fish diff --git a/home/fish/functions/encodeBase64.fish b/.config/fish/functions/encodeBase64.fish similarity index 100% rename from home/fish/functions/encodeBase64.fish rename to .config/fish/functions/encodeBase64.fish diff --git a/home/fish/functions/fcd.fish b/.config/fish/functions/fcd.fish similarity index 100% rename from home/fish/functions/fcd.fish rename to .config/fish/functions/fcd.fish diff --git a/home/fish/functions/fe.fish b/.config/fish/functions/fe.fish similarity index 100% rename from home/fish/functions/fe.fish rename to .config/fish/functions/fe.fish diff --git a/home/fish/functions/fhcd.fish b/.config/fish/functions/fhcd.fish similarity index 100% rename from home/fish/functions/fhcd.fish rename to .config/fish/functions/fhcd.fish diff --git a/home/fish/functions/fs.fish b/.config/fish/functions/fs.fish similarity index 100% rename from home/fish/functions/fs.fish rename to .config/fish/functions/fs.fish diff --git a/home/fish/functions/fwt.fish b/.config/fish/functions/fwt.fish similarity index 100% rename from home/fish/functions/fwt.fish rename to .config/fish/functions/fwt.fish diff --git a/home/fish/functions/ghpr.fish b/.config/fish/functions/ghpr.fish similarity index 100% rename from home/fish/functions/ghpr.fish rename to .config/fish/functions/ghpr.fish diff --git a/home/fish/functions/server.fish b/.config/fish/functions/server.fish similarity index 100% rename from home/fish/functions/server.fish rename to .config/fish/functions/server.fish diff --git a/home/fish/functions/unquarantine.fish b/.config/fish/functions/unquarantine.fish similarity index 100% rename from home/fish/functions/unquarantine.fish rename to .config/fish/functions/unquarantine.fish diff --git a/.config/gh-dash/config.yml b/.config/gh-dash/config.yml new file mode 100644 index 0000000..fd2d86b --- /dev/null +++ b/.config/gh-dash/config.yml @@ -0,0 +1,60 @@ +prSections: + - title: My Pull Requests + filters: is:open author:@me + - title: Needs My Review + filters: is:open review-requested:@me + - title: Involved + filters: is:open involves:@me -author:@me +issuesSections: + - title: My Issues + filters: is:open author:@me + - title: Assigned + filters: is:open assignee:@me + - title: Involved + filters: is:open involves:@me -author:@me +defaults: + preview: + open: true + width: 50 + prsLimit: 20 + issuesLimit: 20 + view: prs + layout: + prs: + updatedAt: + width: 7 + repo: + width: 15 + author: + width: 15 + assignees: + width: 20 + hidden: true + base: + width: 15 + hidden: true + lines: + width: 16 + issues: + updatedAt: + width: 7 + repo: + width: 15 + creator: + width: 10 + assignees: + width: 20 + hidden: true + refetchIntervalMinutes: 30 +keybindings: + issues: [] + prs: [] +repoPaths: + kogakure/*: ~/Code/GitHub/* + work/*: ~/Code/XING/* +theme: + ui: + table: + showSeparator: true +pager: + diff: "" diff --git a/.config/gh/config.yml b/.config/gh/config.yml new file mode 100644 index 0000000..36313b2 --- /dev/null +++ b/.config/gh/config.yml @@ -0,0 +1,18 @@ +# What protocol to use when performing git operations. Supported values: ssh, https +git_protocol: https +# What editor gh should run when creating issues, pull requests, etc. If blank, will refer to environment. +editor: +# When to interactively prompt. This is a global config that cannot be overridden by hostname. Supported values: enabled, disabled +prompt: enabled +# A pager program to send command output to, e.g. "less". Set the value to "cat" to disable the pager. +pager: +# Aliases allow you to create nicknames for gh commands +aliases: + co: pr checkout + ds: 'pr list --label="team: design-system"' + me: pr list --assignee @me +# The path to a unix socket through which send HTTP connections. If blank, HTTP traffic will be handled by net/http.DefaultTransport. +http_unix_socket: +# What web browser gh should use when opening URLs. If blank, will refer to environment. +browser: +version: "1" diff --git a/.config/gh/hosts.yml b/.config/gh/hosts.yml new file mode 100644 index 0000000..7068b25 --- /dev/null +++ b/.config/gh/hosts.yml @@ -0,0 +1,10 @@ +github.com: + user: kogakure + git_protocol: ssh + users: + kogakure: +source.xing.com: + user: stefan-imhoff + git_protocol: ssh + users: + stefan-imhoff: diff --git a/.config/git/config b/.config/git/config new file mode 100644 index 0000000..db7f287 --- /dev/null +++ b/.config/git/config @@ -0,0 +1,150 @@ +[add "interactive"] + useBuildtin = true + +[alias] + br = "branch" + branches = "for-each-ref --sort=-committerdate --format=\"%(color:blue)%(authordate:relative)\t%(color:red)%(authorname)\t%(color:white)%(color:bold)%(refname:short)\" refs/remotes" + ci = "commit" + co = "checkout" + cp = "cherry-pick" + dt = "difftool" + hist = "log --color --graph --decorate --abbrev-commit --date=short --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(blue)[%an]%Creset' --abbrev-commit --" + hub = "!gh repo view --web" + ignored = "ls-files --others --directory" + local-branches = "!git branch -vv | cut -c 3- | awk '$3 !~/\\[/ { print $1 }'" + ls = "log --pretty=format:\"%C(yellow)%h%Cred%d\\ %Creset%s%Cblue\\ [%cn]\" --decorate" + mainbranch = "!git remote show origin | sed -n '/HEAD branch/s/.*: //p'" + merged = "branch --merged" + prune = "fetch --prune" + pub = "publish" + publish = "push origin HEAD --force-with-lease" + rb = "rebase" + squash = "!git rebase -v -i $(git mainbranch)" + st = "status" + stash-all = "stash save --include-untracked" + stats = "shortlog -sn --all --no-merges" + synced = "!git pull origin $(git mainbranch) --rebase" + today = "log --since=00:00:00 --all --no-merges --oneline" + undo = "reset --soft HEAD^" + unmerged = "branch --no-merge" + unstage = "reset HEAD --" + update = "!git pull origin $(git rev-parse --abbrev-ref HEAD) --rebase" + +[apply] + whitespace = "fix" + +[branch] + autosetupmerge = true + sort = "-authordate" + +[color] + branch = "auto" + diff = "auto" + interactive = "auto" + status = "auto" + ui = 1 + +[commit] + gpgsign = true + +[core] + editor = code --wait + legacyheaders = false + pager = delta + whitespace = trailing-space,space-before-tab + +[credential "https://gist.github.com"] + helper = "gh auth git-credential" + +[credential "https://github.com"] + helper = "gh auth git-credential" + +[delta] + light = false + line-numbers = true + navigate = true + side-by-side = true + syntax-theme = "Dracula" + +[diff] + algorithm = "patience" + colorMoved = "default" + tool = "Kaleidoscope" + +[difftool] + prompt = false + +[difftool "Kaleidoscope"] + cmd = "ksdiff --partial-changeset --relative-path \"$MERGED\" -- \"$LOCAL\" \"$REMOTE\"" + +[fetch] + fsckobjects = false + prune = true + +[filter "lfs"] + clean = "git-lfs clean -- %f" + process = "git-lfs filter-process" + required = true + smudge = "git-lfs smudge -- %f" + +[help] + autocorrect = 1 + +[i18n] + commitencoding = "UTF-8" + logoutputencoding = "UTF-8" + +[interactive] + diffFilter = "delta --color-only" + +[merge] + conflictstyle = "diff3" + tool = "Kaleidoscope" + +[mergetool] + keepBackup = false + prompt = false + +[mergetool "Kaleidoscope"] + cmd = "ksdiff --merge --output \"$MERGED\" --base \"$BASE\" -- \"$LOCAL\" --snapshot \"$REMOTE\" --snapshot" + trustExitCode = true + +[mergetool "code"] + cmd = "\"code $MERGED\"" + keepBackup = false + trustexitcode = true + +[mergetool "nvim"] + cmd = "nvim -f -c \"Gdiffsplit!\" \"$MERGED\"" + +[pull] + ff = "only" + +[push] + autoSetupRemote = true + default = "upstream" + followTags = true + +[rebase] + autosquash = true + +[repack] + usedeltabaseoffset = true + +[rerere] + enabled = true + +[status] + showUntrackedFiles = "all" + +[transfer] + fsckObjects = true + +[user] + useConfigOnly = true + +[web] + browser = "open" + +[include] + path = "~/.gitconfig.local" diff --git a/.config/git/ignore b/.config/git/ignore new file mode 100644 index 0000000..3380df8 --- /dev/null +++ b/.config/git/ignore @@ -0,0 +1,12 @@ +*.lnk +*.pyc +*.pyo +*.session +*.sw[nop] +.BridgeSort +.DS_Store +._* +.agignore +.bundle/ +m~ +tags diff --git a/home/karabiner/karabiner/assets/complex_modifications/1668261369.json b/.config/karabiner/assets/complex_modifications/1668261369.json similarity index 100% rename from home/karabiner/karabiner/assets/complex_modifications/1668261369.json rename to .config/karabiner/assets/complex_modifications/1668261369.json diff --git a/home/karabiner/karabiner/assets/complex_modifications/1669799628.json b/.config/karabiner/assets/complex_modifications/1669799628.json similarity index 100% rename from home/karabiner/karabiner/assets/complex_modifications/1669799628.json rename to .config/karabiner/assets/complex_modifications/1669799628.json diff --git a/home/karabiner/karabiner/assets/complex_modifications/1670850784.json b/.config/karabiner/assets/complex_modifications/1670850784.json similarity index 100% rename from home/karabiner/karabiner/assets/complex_modifications/1670850784.json rename to .config/karabiner/assets/complex_modifications/1670850784.json diff --git a/home/karabiner/karabiner/karabiner.json b/.config/karabiner/karabiner.json similarity index 100% rename from home/karabiner/karabiner/karabiner.json rename to .config/karabiner/karabiner.json diff --git a/home/lazydocker/lazydocker.yml b/.config/lazydocker/config.yml similarity index 100% rename from home/lazydocker/lazydocker.yml rename to .config/lazydocker/config.yml diff --git a/.config/lazygit/config.yml b/.config/lazygit/config.yml new file mode 100644 index 0000000..e8fa2bc --- /dev/null +++ b/.config/lazygit/config.yml @@ -0,0 +1,16 @@ +git: + overrideGpg: true + paging: + colorArg: always + pager: delta --dark --paging=never syntax-theme=Dracula +customCommands: + - key: "C" + command: "git cz c" + description: "commit with commitizen" + context: "files" + loadingText: "opening commitizen commit tool" + subprocess: true + - key: "W" + command: git commit --no-verify + context: "global" + subprocess: true diff --git a/.config/lf/lfrc b/.config/lf/lfrc new file mode 100644 index 0000000..8138df9 --- /dev/null +++ b/.config/lf/lfrc @@ -0,0 +1,120 @@ + +# ██╗ ███████╗ +# ██║ ██╔════╝ +# ██║ █████╗ +# ██║ ██╔══╝ +# ███████╗██║ +# ╚══════╝╚═╝ +# Terminal file manager +# https://github.com/gokcehan/lf + +set hidden false +set icons +set previewer ~/.config/lf/previewer.sh +set promptfmt "\033[34;1m%d\033[0m\033[1m%f\033[0m" +set shell bash +set shellopts '-eu' +set ifs "\n" +set scrolloff 10 + +map shell + +# execute current file (must be executable) +map x $$f +map X !$f + +# dedicated keys for file opener actions +map o &mimeopen $f +map O $mimeopen --ask $f + +# define a custom 'open' command +# This command is called when current file is not a directory. You may want to +# use either file extensions and/or mime types here. Below uses an editor for +# text files and a file opener for the rest. +cmd open ${{ + case $(file --mime-type $f -b) in + text/*) $EDITOR $fx;; + *) for f in $fx; do setsid $OPENER $f > /dev/null 2> /dev/null & done;; + esac +}} + +# make sure trash folder exists +# %mkdir -p ~/.trash + +# move current file or selected files to trash folder +# (also see 'man mv' for backup/overwrite options) +# cmd trash %set -f; mv $fx ~/.trash + +cmd delete ${{ + set -f + printf "$fx\n" + printf "delete? [y/n]" + read ans + [ $ans = "y" ] && rm -rf $fx +}} + +map delete + +# extract the current file with the right command +# (xkcd link: https://xkcd.com/1168/) +cmd extract ${{ + set -f + case $f in + *.tar.bz|*.tar.bz2|*.tbz|*.tbz2) tar xjvf $f;; + *.tar.gz|*.tgz) tar xzvf $f;; + *.tar.xz|*.txz) tar xJvf $f;; + *.zip) unzip $f;; + *.rar) unrar x $f;; + *.7z) 7z x $f;; + esac +}} + +# compress current file or selected files with tar and gunzip +cmd tar ${{ + set -f + mkdir $1 + cp -r $fx $1 + tar czf $1.tar.gz $1 + rm -rf $1 +}} + +# compress current file or selected files with zip +cmd zip ${{ + set -f + mkdir $1 + cp -r $fx $1 + zip -r $1.zip $1 + rm -rf $1 +}} + +cmd fzf_jump ${{ + res="$(find . -maxdepth 1 | fzf-tmux -p --reverse --header='Jump to location' | sed 's/\\/\\\\/g;s/"/\\"/g')" + if [ -d "$res" ] ; then + cmd="cd" + elif [ -f "$res" ] ; then + cmd="select" + else + exit 0 + fi + lf -remote "send $id $cmd \"$res\"" +}} + +map :fzf_jump + +cmd z %{{ + result="$(zoxide query --exclude "${PWD}" -- "$1")" + lf -remote "send ${id} cd '${result}'" +}} + +cmd git_branch ${{ + git branch | fzf-tmux -p --reverse | xargs git checkout + pwd_shell=$(pwd) + lf -remote "send $id updir" + lf -remote "send $id cd \"$pwd_shell\"" +}} +map gb :git_branch +map gp ${{clear; git pull --rebase || true; echo "press ENTER"; read ENTER}} +map gs ${{clear; git status; echo "press ENTER"; read ENTER}} +map gl ${{clear; git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit}} + +map f $nvim $(fzf) diff --git a/.config/lf/previewer.sh b/.config/lf/previewer.sh new file mode 100755 index 0000000..d6304fd --- /dev/null +++ b/.config/lf/previewer.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +case "$1" in +*) bat --force-colorization --paging=never --style=changes,numbers \ + --terminal-width $(($2 - 3)) "$1" && false ;; +esac diff --git a/home/neovim/nvim/.gitignore b/.config/nvim/.gitignore similarity index 100% rename from home/neovim/nvim/.gitignore rename to .config/nvim/.gitignore diff --git a/home/neovim/nvim/.neoconf.json b/.config/nvim/.neoconf.json similarity index 100% rename from home/neovim/nvim/.neoconf.json rename to .config/nvim/.neoconf.json diff --git a/home/neovim/nvim/LICENSE b/.config/nvim/LICENSE similarity index 100% rename from home/neovim/nvim/LICENSE rename to .config/nvim/LICENSE diff --git a/home/neovim/nvim/README.md b/.config/nvim/README.md similarity index 100% rename from home/neovim/nvim/README.md rename to .config/nvim/README.md diff --git a/home/neovim/nvim/dictionary/de_neu.txt b/.config/nvim/dictionary/de_neu.txt similarity index 100% rename from home/neovim/nvim/dictionary/de_neu.txt rename to .config/nvim/dictionary/de_neu.txt diff --git a/home/neovim/nvim/dictionary/de_user.txt b/.config/nvim/dictionary/de_user.txt similarity index 100% rename from home/neovim/nvim/dictionary/de_user.txt rename to .config/nvim/dictionary/de_user.txt diff --git a/home/neovim/nvim/dictionary/en_us.txt b/.config/nvim/dictionary/en_us.txt similarity index 100% rename from home/neovim/nvim/dictionary/en_us.txt rename to .config/nvim/dictionary/en_us.txt diff --git a/home/neovim/nvim/init.lua b/.config/nvim/init.lua similarity index 100% rename from home/neovim/nvim/init.lua rename to .config/nvim/init.lua diff --git a/home/neovim/nvim/lazy-lock.json b/.config/nvim/lazy-lock.json similarity index 87% rename from home/neovim/nvim/lazy-lock.json rename to .config/nvim/lazy-lock.json index dece3f4..7bc6d99 100644 --- a/home/neovim/nvim/lazy-lock.json +++ b/.config/nvim/lazy-lock.json @@ -5,13 +5,12 @@ "SchemaStore.nvim": { "branch": "main", "commit": "a86e7a0ecaf09fdb0b58ca09f34cd1e2b2b1fd75" }, "aerial.nvim": { "branch": "master", "commit": "e75a3df2c20b3a98c786f5e61587d74a7a6b61d6" }, "auto-save.nvim": { "branch": "main", "commit": "979b6c82f60cfa80f4cf437d77446d0ded0addf0" }, - "aw-watcher-vim": { "branch": "master", "commit": "4ba86d05a940574000c33f280fd7f6eccc284331" }, "baleia.nvim": { "branch": "main", "commit": "1b25eac3ac03659c3d3af75c7455e179e5f197f7" }, "barbecue": { "branch": "main", "commit": "cd7e7da622d68136e13721865b4d919efd6325ed" }, "base16-vim": { "branch": "master", "commit": "3be3cd82cd31acfcab9a41bad853d9c68d30478d" }, "blamer.nvim": { "branch": "master", "commit": "e0d43c11697300eb68f00d69df8b87deb0bf52dc" }, "bufferline.nvim": { "branch": "main", "commit": "0b2fd861eee7595015b6561dade52fb060be10c4" }, - "catppuccin": { "branch": "main", "commit": "10eda02ea4faa7d1f94e77a3410a4ae91c25c5f5" }, + "catppuccin": { "branch": "main", "commit": "e1268d1c0351aa5a42ea00a680ce84de2ba080fc" }, "chafa.nvim": { "branch": "main", "commit": "792c8f4f0e86b5e27c3602be4614f886f3a12a5a" }, "cheatsheet.nvim": { "branch": "master", "commit": "9716f9aaa94dd1fd6ce59b5aae0e5f25e2a463ef" }, "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, @@ -34,22 +33,22 @@ "flash.nvim": { "branch": "main", "commit": "34c7be146a91fec3555c33fe89c7d643f6ef5cf1" }, "fm-nvim": { "branch": "master", "commit": "8e6a77049330e7c797eb9e63affd75eb796fe75e" }, "friendly-snippets": { "branch": "main", "commit": "00ebcaa159e817150bd83bfe2d51fa3b3377d5c4" }, - "fzf": { "branch": "master", "commit": "af4917dbb643a7991c50091ec55ec25acb7d28cb" }, - "fzf-lua": { "branch": "main", "commit": "afcc4b76ad3ab80526b6f1932a1514b22de8c187" }, + "fzf": { "branch": "master", "commit": "4e85f72f0ee237bef7a1617e0cf8c811a4091d72" }, + "fzf-lua": { "branch": "main", "commit": "73bdec9ac5da578376bdc5a705ea80a19baa4942" }, "fzf.vim": { "branch": "master", "commit": "6f28c8c7bb551161a0315a76488522204f39c1f4" }, "gen.nvim": { "branch": "main", "commit": "07fb74cf1bc533791e2c7cfca7bd3f45a3b597f9" }, "gh.nvim": { "branch": "main", "commit": "ebbaac254ef7dd6f85b439825fbce82d0dc84515" }, - "gitsigns.nvim": { "branch": "main", "commit": "0ed466953fe5885166e0d60799172a8b1f752d16" }, - "grug-far.nvim": { "branch": "main", "commit": "724b8019fcfeee51dcc6e76c543eba30b5570a26" }, + "gitsigns.nvim": { "branch": "main", "commit": "58bd9e98d8e3c5a1c98af312e85247ee1afd3ed2" }, + "grug-far.nvim": { "branch": "main", "commit": "3e491ca05c50f87d02543adb010aed9dfb1e12c1" }, "harpoon": { "branch": "harpoon2", "commit": "0378a6c428a0bed6a2781d459d7943843f374bce" }, "harpoon-lualine": { "branch": "master", "commit": "d1b873c19b701fd80d60a67d086dbb3bcc4eb00e" }, "highlight-undo.nvim": { "branch": "main", "commit": "1ea1c79372d7d93c88fd97543880927b7635e3d2" }, "inc-rename.nvim": { "branch": "main", "commit": "8ba77017ca468f3029bf88ef409c2d20476ea66b" }, - "indent-blankline.nvim": { "branch": "master", "commit": "65e20ab94a26d0e14acac5049b8641336819dfc7" }, + "indent-blankline.nvim": { "branch": "master", "commit": "3fe94b8034dd5241cb882bb73847303b58857ecf" }, "lazy.nvim": { "branch": "main", "commit": "077102c5bfc578693f12377846d427f49bc50076" }, "lazydev.nvim": { "branch": "main", "commit": "491452cf1ca6f029e90ad0d0368848fac717c6d2" }, "lazygit.nvim": { "branch": "main", "commit": "dc56df433bfbf107fee0139e187eb9750878fa84" }, - "legendary.nvim": { "branch": "master", "commit": "543bbbba4e7b54222362f312e1d2e3dac1eaae75" }, + "legendary.nvim": { "branch": "master", "commit": "c89be94fe96dc5eaba67ad9371263bc1eac75044" }, "lf.nvim": { "branch": "master", "commit": "69ab1efcffee6928bf68ac9bd0c016464d9b2c8b" }, "litee.nvim": { "branch": "main", "commit": "4efaf373322d9e71eaff31164abb393417cc6f6a" }, "lsp-progress.nvim": { "branch": "main", "commit": "d5f4d28efe75ce636bfbe271eb45f39689765aab" }, @@ -57,8 +56,8 @@ "lush.nvim": { "branch": "main", "commit": "6a254139d077ad53be7e4f3602c8da0c84447fd9" }, "luvit-meta": { "branch": "main", "commit": "ce76f6f6cdc9201523a5875a4471dcfe0186eb60" }, "markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "ba9c2f0b93deb48d0a99ae0e8d8dd36f7cc286d6" }, - "mason-nvim-dap.nvim": { "branch": "main", "commit": "4ba55f9755ebe8297d92c419b90a946123292ae6" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "62360f061d45177dda8afc1b0fd1327328540301" }, + "mason-nvim-dap.nvim": { "branch": "main", "commit": "8b9363d83b5d779813cdd2819b8308651cec2a09" }, "mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" }, "mini.ai": { "branch": "main", "commit": "45587078f323eaf41b9f701bbc04f8d1ab008979" }, "mini.animate": { "branch": "main", "commit": "320fb35460238c436407cd779f63abad98e84870" }, @@ -70,7 +69,7 @@ "neotest": { "branch": "master", "commit": "32ff2ac21135a372a42b38ae131e531e64833bd3" }, "neotest-golang": { "branch": "main", "commit": "f71d2494726c529c5d5c43813b24b3dd91ade981" }, "neotest-jest": { "branch": "main", "commit": "514fd4eae7da15fd409133086bb8e029b65ac43f" }, - "neotest-rspec": { "branch": "main", "commit": "48573d5882cbe8d8bcd3b735d9ee7705168b1b87" }, + "neotest-rspec": { "branch": "main", "commit": "53fc108a06ae43d7f873d42ee5189c2301e33623" }, "neotest-vitest": { "branch": "main", "commit": "353364aa05b94b09409cbef21b79c97c5564e2ce" }, "night-owl.nvim": { "branch": "main", "commit": "131641a516085c5b3cacc8022581902e9f2f14af" }, "noctis.nvim": { "branch": "main", "commit": "0b9336e39c686a7e58de06e4dd38c2bd862a7b33" }, @@ -85,19 +84,19 @@ "nvim-dap-ui": { "branch": "master", "commit": "a5606bc5958db86f8d92803bea7400ee26a8d7e4" }, "nvim-dap-virtual-text": { "branch": "master", "commit": "484995d573c0f0563f6a66ebdd6c67b649489615" }, "nvim-lint": { "branch": "master", "commit": "efc6fc83f0772283e064c53a8f9fb5645bde0bc0" }, - "nvim-lspconfig": { "branch": "master", "commit": "d710f5c58d3b4b010504472d58752d5cef115d99" }, + "nvim-lspconfig": { "branch": "master", "commit": "81a19de18990208b678be084597613e2dbe66912" }, "nvim-navic": { "branch": "master", "commit": "8649f694d3e76ee10c19255dece6411c29206a54" }, "nvim-nio": { "branch": "master", "commit": "a428f309119086dc78dd4b19306d2d67be884eee" }, "nvim-notify": { "branch": "master", "commit": "d333b6f167900f6d9d42a59005d82919830626bf" }, "nvim-silicon": { "branch": "main", "commit": "feb882f04c992b797daa118101a239fb3bedfc04" }, "nvim-snippets": { "branch": "main", "commit": "56b4052f71220144689caaa2e5b66222ba5661eb" }, "nvim-transparent": { "branch": "main", "commit": "fd35a46f4b7c1b244249266bdcb2da3814f01724" }, - "nvim-treesitter": { "branch": "master", "commit": "8453015093ae156f1776d2c913b6c5206e80e26f" }, - "nvim-treesitter-textobjects": { "branch": "master", "commit": "3eb733685e1aa64a26e8b46220d855fb6a0e9e46" }, + "nvim-treesitter": { "branch": "master", "commit": "1aad04ecde5ebf8f2b3eea5c6f39d38b251757f5" }, + "nvim-treesitter-textobjects": { "branch": "master", "commit": "33a17515b79ddb10d750320fa994098bdc3e93ef" }, "nvim-ts-autotag": { "branch": "main", "commit": "dc5e1687ab76ee02e0f11c5ce137f530b36e98b3" }, - "nvim-ufo": { "branch": "main", "commit": "4cc3ba9303c0708b81fd681786a4835fd31518ac" }, - "nvim-various-textobjs": { "branch": "main", "commit": "82ba233ec6f4de0e1d577c55140e6d31019d3369" }, - "nvim-web-devicons": { "branch": "master", "commit": "5be6c4e685618b99c3210a69375b38a1202369b4" }, + "nvim-ufo": { "branch": "main", "commit": "76f6b1d7c3f254567dc583124318e52305e3b111" }, + "nvim-various-textobjs": { "branch": "main", "commit": "52343c70e2487095cafd4a5000d0465a2b992b03" }, + "nvim-web-devicons": { "branch": "master", "commit": "3722e3d1fb5fe1896a104eb489e8f8651260b520" }, "oatmeal.nvim": { "branch": "master", "commit": "c8cdd0a182cf77f88ea5fa4703229ddb3f47c1f7" }, "obsidian.nvim": { "branch": "main", "commit": "ae1f76a75c7ce36866e1d9342a8f6f5b9c2caf9b" }, "oil.nvim": { "branch": "master", "commit": "fcca212c2e966fc3dec1d4baf888e670631d25d1" }, @@ -105,18 +104,18 @@ "plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" }, "popup.nvim": { "branch": "master", "commit": "b7404d35d5d3548a82149238289fa71f7f6de4ac" }, "project.nvim": { "branch": "main", "commit": "8c6bad7d22eef1b71144b401c9f74ed01526a4fb" }, - "promise-async": { "branch": "main", "commit": "28c1d5a295eb5310afa2523d4ae9aa41ec5a9de2" }, + "promise-async": { "branch": "main", "commit": "119e8961014c9bfaf1487bf3c2a393d254f337e2" }, "rainbow_csv": { "branch": "master", "commit": "3dbbfd7d17536aebfb80f571255548495574c32b" }, "remote-nvim.nvim": { "branch": "main", "commit": "66fc20fd259401c7bb6ac5189ecb6283c2eb65d2" }, "smart-open.nvim": { "branch": "0.2.x", "commit": "87626ee8748b9bba22093adec7bb58c63e7214f0" }, - "smart-splits.nvim": { "branch": "master", "commit": "1a2b268a7ec7aeef879cdd15973339010ec134f7" }, + "smart-splits.nvim": { "branch": "master", "commit": "dbd4d7212d6e9d180ab4197a52cee2ba31b2b749" }, "sqlite.lua": { "branch": "master", "commit": "d0ffd703b56d090d213b497ed4eb840495f14a11" }, "symbols-outline.nvim": { "branch": "master", "commit": "564ee65dfc9024bdde73a6621820866987cbb256" }, "tabular": { "branch": "master", "commit": "12437cd1b53488e24936ec4b091c9324cafee311" }, "tailwind-sorter.nvim": { "branch": "main", "commit": "1b60096635a1a1bef6b36b6c88a61ff437df5a15" }, - "tailwind-tools.nvim": { "branch": "master", "commit": "f2e9a0a90a7181d1ab0957fa9c798828cf71ed0d" }, + "tailwind-tools.nvim": { "branch": "master", "commit": "72f01ba654ffaf382c1df996b77cc53ec7860f70" }, "tailwindcss-colorizer-cmp.nvim": { "branch": "main", "commit": "3d3cd95e4a4135c250faf83dd5ed61b8e5502b86" }, - "telescope-file-browser.nvim": { "branch": "master", "commit": "19a0b7f14b2ee3f6513366d9184a03cada77713f" }, + "telescope-file-browser.nvim": { "branch": "master", "commit": "a46780830b576049c675680650f773bedfa8677a" }, "telescope-frecency.nvim": { "branch": "master", "commit": "25d01edae8a2d74bcaa706c003b2712bce1e3301" }, "telescope-fzf-native.nvim": { "branch": "main", "commit": "cf48d4dfce44e0b9a2e19a008d6ec6ea6f01a83b" }, "telescope-fzy-native.nvim": { "branch": "master", "commit": "282f069504515eec762ab6d6c89903377252bf5b" }, diff --git a/home/neovim/nvim/lazyvim.json b/.config/nvim/lazyvim.json similarity index 100% rename from home/neovim/nvim/lazyvim.json rename to .config/nvim/lazyvim.json diff --git a/home/neovim/nvim/lua/config/autocmds.lua b/.config/nvim/lua/config/autocmds.lua similarity index 100% rename from home/neovim/nvim/lua/config/autocmds.lua rename to .config/nvim/lua/config/autocmds.lua diff --git a/home/neovim/nvim/lua/config/keymaps.lua b/.config/nvim/lua/config/keymaps.lua similarity index 100% rename from home/neovim/nvim/lua/config/keymaps.lua rename to .config/nvim/lua/config/keymaps.lua diff --git a/home/neovim/nvim/lua/config/lazy.lua b/.config/nvim/lua/config/lazy.lua similarity index 100% rename from home/neovim/nvim/lua/config/lazy.lua rename to .config/nvim/lua/config/lazy.lua diff --git a/home/neovim/nvim/lua/config/options.lua b/.config/nvim/lua/config/options.lua similarity index 100% rename from home/neovim/nvim/lua/config/options.lua rename to .config/nvim/lua/config/options.lua diff --git a/home/neovim/nvim/lua/lualine/themes/custom.lua b/.config/nvim/lua/lualine/themes/custom.lua similarity index 100% rename from home/neovim/nvim/lua/lualine/themes/custom.lua rename to .config/nvim/lua/lualine/themes/custom.lua diff --git a/home/neovim/nvim/lua/lualine/themes/transparent.lua b/.config/nvim/lua/lualine/themes/transparent.lua similarity index 100% rename from home/neovim/nvim/lua/lualine/themes/transparent.lua rename to .config/nvim/lua/lualine/themes/transparent.lua diff --git a/home/neovim/nvim/lua/plugins/abolish.lua b/.config/nvim/lua/plugins/abolish.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/abolish.lua rename to .config/nvim/lua/plugins/abolish.lua diff --git a/home/neovim/nvim/lua/plugins/aerial.lua b/.config/nvim/lua/plugins/aerial.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/aerial.lua rename to .config/nvim/lua/plugins/aerial.lua diff --git a/home/neovim/nvim/lua/plugins/astro.lua b/.config/nvim/lua/plugins/astro.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/astro.lua rename to .config/nvim/lua/plugins/astro.lua diff --git a/home/neovim/nvim/lua/plugins/auto-save.lua b/.config/nvim/lua/plugins/auto-save.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/auto-save.lua rename to .config/nvim/lua/plugins/auto-save.lua diff --git a/home/neovim/nvim/lua/plugins/autotag.lua b/.config/nvim/lua/plugins/autotag.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/autotag.lua rename to .config/nvim/lua/plugins/autotag.lua diff --git a/home/neovim/nvim/lua/plugins/barbecue.lua b/.config/nvim/lua/plugins/barbecue.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/barbecue.lua rename to .config/nvim/lua/plugins/barbecue.lua diff --git a/home/neovim/nvim/lua/plugins/base16.lua b/.config/nvim/lua/plugins/base16.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/base16.lua rename to .config/nvim/lua/plugins/base16.lua diff --git a/home/neovim/nvim/lua/plugins/blamer.lua b/.config/nvim/lua/plugins/blamer.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/blamer.lua rename to .config/nvim/lua/plugins/blamer.lua diff --git a/home/neovim/nvim/lua/plugins/bookmark.lua b/.config/nvim/lua/plugins/bookmark.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/bookmark.lua rename to .config/nvim/lua/plugins/bookmark.lua diff --git a/home/neovim/nvim/lua/plugins/bufferline.lua b/.config/nvim/lua/plugins/bufferline.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/bufferline.lua rename to .config/nvim/lua/plugins/bufferline.lua diff --git a/home/neovim/nvim/lua/plugins/catppuccin.lua b/.config/nvim/lua/plugins/catppuccin.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/catppuccin.lua rename to .config/nvim/lua/plugins/catppuccin.lua diff --git a/home/neovim/nvim/lua/plugins/chafa.lua b/.config/nvim/lua/plugins/chafa.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/chafa.lua rename to .config/nvim/lua/plugins/chafa.lua diff --git a/home/neovim/nvim/lua/plugins/chatgpg.lua b/.config/nvim/lua/plugins/chatgpg.lua similarity index 87% rename from home/neovim/nvim/lua/plugins/chatgpg.lua rename to .config/nvim/lua/plugins/chatgpg.lua index 9e8564e..a4ebe24 100644 --- a/home/neovim/nvim/lua/plugins/chatgpg.lua +++ b/.config/nvim/lua/plugins/chatgpg.lua @@ -15,7 +15,7 @@ return { }, config = function() local home = vim.fn.expand("$HOME") - local file_path = home .. "/.dotfiles/home/neovim/nvim/lua/plugins/chatgpg.txt.gpg" + local file_path = home .. "/.config/nvim/lua/plugins/chatgpg.txt.gpg" require("chatgpt").setup({ api_key_cmd = "gpg --decrypt --use-agent " .. file_path, }) diff --git a/home/neovim/nvim/lua/plugins/chatgpg.txt.gpg b/.config/nvim/lua/plugins/chatgpg.txt.gpg similarity index 100% rename from home/neovim/nvim/lua/plugins/chatgpg.txt.gpg rename to .config/nvim/lua/plugins/chatgpg.txt.gpg diff --git a/home/neovim/nvim/lua/plugins/cheatsheet.lua b/.config/nvim/lua/plugins/cheatsheet.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/cheatsheet.lua rename to .config/nvim/lua/plugins/cheatsheet.lua diff --git a/home/neovim/nvim/lua/plugins/cmp.lua b/.config/nvim/lua/plugins/cmp.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/cmp.lua rename to .config/nvim/lua/plugins/cmp.lua diff --git a/home/neovim/nvim/lua/plugins/codewindow.lua b/.config/nvim/lua/plugins/codewindow.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/codewindow.lua rename to .config/nvim/lua/plugins/codewindow.lua diff --git a/home/neovim/nvim/lua/plugins/colorizer.lua b/.config/nvim/lua/plugins/colorizer.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/colorizer.lua rename to .config/nvim/lua/plugins/colorizer.lua diff --git a/home/neovim/nvim/lua/plugins/colorscheme-catppuccin.lua b/.config/nvim/lua/plugins/colorscheme-catppuccin.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/colorscheme-catppuccin.lua rename to .config/nvim/lua/plugins/colorscheme-catppuccin.lua diff --git a/home/neovim/nvim/lua/plugins/colorscheme-night-owl.lua b/.config/nvim/lua/plugins/colorscheme-night-owl.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/colorscheme-night-owl.lua rename to .config/nvim/lua/plugins/colorscheme-night-owl.lua diff --git a/home/neovim/nvim/lua/plugins/colorscheme-tokyonight.lua b/.config/nvim/lua/plugins/colorscheme-tokyonight.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/colorscheme-tokyonight.lua rename to .config/nvim/lua/plugins/colorscheme-tokyonight.lua diff --git a/home/neovim/nvim/lua/plugins/colorschemes.lua b/.config/nvim/lua/plugins/colorschemes.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/colorschemes.lua rename to .config/nvim/lua/plugins/colorschemes.lua diff --git a/home/neovim/nvim/lua/plugins/committia.lua b/.config/nvim/lua/plugins/committia.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/committia.lua rename to .config/nvim/lua/plugins/committia.lua diff --git a/home/neovim/nvim/lua/plugins/copilot-chat.lua b/.config/nvim/lua/plugins/copilot-chat.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/copilot-chat.lua rename to .config/nvim/lua/plugins/copilot-chat.lua diff --git a/home/neovim/nvim/lua/plugins/copilot.lua b/.config/nvim/lua/plugins/copilot.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/copilot.lua rename to .config/nvim/lua/plugins/copilot.lua diff --git a/home/neovim/nvim/lua/plugins/cursorline.lua b/.config/nvim/lua/plugins/cursorline.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/cursorline.lua rename to .config/nvim/lua/plugins/cursorline.lua diff --git a/home/neovim/nvim/lua/plugins/dashboard.lua b/.config/nvim/lua/plugins/dashboard.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/dashboard.lua rename to .config/nvim/lua/plugins/dashboard.lua diff --git a/home/neovim/nvim/lua/plugins/dial.lua b/.config/nvim/lua/plugins/dial.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/dial.lua rename to .config/nvim/lua/plugins/dial.lua diff --git a/home/neovim/nvim/lua/plugins/diffview.lua b/.config/nvim/lua/plugins/diffview.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/diffview.lua rename to .config/nvim/lua/plugins/diffview.lua diff --git a/home/neovim/nvim/lua/plugins/editorconfig.lua b/.config/nvim/lua/plugins/editorconfig.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/editorconfig.lua rename to .config/nvim/lua/plugins/editorconfig.lua diff --git a/home/neovim/nvim/lua/plugins/emmet.lua b/.config/nvim/lua/plugins/emmet.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/emmet.lua rename to .config/nvim/lua/plugins/emmet.lua diff --git a/home/neovim/nvim/lua/plugins/example.lua b/.config/nvim/lua/plugins/example.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/example.lua rename to .config/nvim/lua/plugins/example.lua diff --git a/home/neovim/nvim/lua/plugins/export-to-vscode.lua b/.config/nvim/lua/plugins/export-to-vscode.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/export-to-vscode.lua rename to .config/nvim/lua/plugins/export-to-vscode.lua diff --git a/home/neovim/nvim/lua/plugins/flash.lua b/.config/nvim/lua/plugins/flash.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/flash.lua rename to .config/nvim/lua/plugins/flash.lua diff --git a/home/neovim/nvim/lua/plugins/fm.lua b/.config/nvim/lua/plugins/fm.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/fm.lua rename to .config/nvim/lua/plugins/fm.lua diff --git a/home/neovim/nvim/lua/plugins/formatting.lua b/.config/nvim/lua/plugins/formatting.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/formatting.lua rename to .config/nvim/lua/plugins/formatting.lua diff --git a/home/neovim/nvim/lua/plugins/fugitive.lua b/.config/nvim/lua/plugins/fugitive.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/fugitive.lua rename to .config/nvim/lua/plugins/fugitive.lua diff --git a/home/neovim/nvim/lua/plugins/gh-line.lua b/.config/nvim/lua/plugins/gh-line.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/gh-line.lua rename to .config/nvim/lua/plugins/gh-line.lua diff --git a/home/neovim/nvim/lua/plugins/gh.lua b/.config/nvim/lua/plugins/gh.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/gh.lua rename to .config/nvim/lua/plugins/gh.lua diff --git a/home/neovim/nvim/lua/plugins/grammarous.lua b/.config/nvim/lua/plugins/grammarous.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/grammarous.lua rename to .config/nvim/lua/plugins/grammarous.lua diff --git a/home/neovim/nvim/lua/plugins/harpoon-lualine.lua b/.config/nvim/lua/plugins/harpoon-lualine.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/harpoon-lualine.lua rename to .config/nvim/lua/plugins/harpoon-lualine.lua diff --git a/home/neovim/nvim/lua/plugins/harpoon.lua b/.config/nvim/lua/plugins/harpoon.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/harpoon.lua rename to .config/nvim/lua/plugins/harpoon.lua diff --git a/home/neovim/nvim/lua/plugins/highlight-undo.lua b/.config/nvim/lua/plugins/highlight-undo.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/highlight-undo.lua rename to .config/nvim/lua/plugins/highlight-undo.lua diff --git a/home/neovim/nvim/lua/plugins/inc-rename.lua b/.config/nvim/lua/plugins/inc-rename.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/inc-rename.lua rename to .config/nvim/lua/plugins/inc-rename.lua diff --git a/home/neovim/nvim/lua/plugins/lazygit.lua b/.config/nvim/lua/plugins/lazygit.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/lazygit.lua rename to .config/nvim/lua/plugins/lazygit.lua diff --git a/home/neovim/nvim/lua/plugins/legendary.lua b/.config/nvim/lua/plugins/legendary.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/legendary.lua rename to .config/nvim/lua/plugins/legendary.lua diff --git a/home/neovim/nvim/lua/plugins/lf.lua b/.config/nvim/lua/plugins/lf.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/lf.lua rename to .config/nvim/lua/plugins/lf.lua diff --git a/home/neovim/nvim/lua/plugins/linting.lua b/.config/nvim/lua/plugins/linting.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/linting.lua rename to .config/nvim/lua/plugins/linting.lua diff --git a/home/neovim/nvim/lua/plugins/lsp-progress.lua b/.config/nvim/lua/plugins/lsp-progress.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/lsp-progress.lua rename to .config/nvim/lua/plugins/lsp-progress.lua diff --git a/home/neovim/nvim/lua/plugins/lspconfig.lua b/.config/nvim/lua/plugins/lspconfig.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/lspconfig.lua rename to .config/nvim/lua/plugins/lspconfig.lua diff --git a/home/neovim/nvim/lua/plugins/lualine.lua b/.config/nvim/lua/plugins/lualine.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/lualine.lua rename to .config/nvim/lua/plugins/lualine.lua diff --git a/home/neovim/nvim/lua/plugins/markdown-preview.lua b/.config/nvim/lua/plugins/markdown-preview.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/markdown-preview.lua rename to .config/nvim/lua/plugins/markdown-preview.lua diff --git a/home/neovim/nvim/lua/plugins/mason.lua b/.config/nvim/lua/plugins/mason.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/mason.lua rename to .config/nvim/lua/plugins/mason.lua diff --git a/home/neovim/nvim/lua/plugins/mundo.lua b/.config/nvim/lua/plugins/mundo.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/mundo.lua rename to .config/nvim/lua/plugins/mundo.lua diff --git a/home/neovim/nvim/lua/plugins/neogit.lua b/.config/nvim/lua/plugins/neogit.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/neogit.lua rename to .config/nvim/lua/plugins/neogit.lua diff --git a/home/neovim/nvim/lua/plugins/neotest.lua b/.config/nvim/lua/plugins/neotest.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/neotest.lua rename to .config/nvim/lua/plugins/neotest.lua diff --git a/home/neovim/nvim/lua/plugins/noctis.lua b/.config/nvim/lua/plugins/noctis.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/noctis.lua rename to .config/nvim/lua/plugins/noctis.lua diff --git a/home/neovim/nvim/lua/plugins/noice.lua b/.config/nvim/lua/plugins/noice.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/noice.lua rename to .config/nvim/lua/plugins/noice.lua diff --git a/home/neovim/nvim/lua/plugins/notify.lua b/.config/nvim/lua/plugins/notify.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/notify.lua rename to .config/nvim/lua/plugins/notify.lua diff --git a/home/neovim/nvim/lua/plugins/oatmeal.lua b/.config/nvim/lua/plugins/oatmeal.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/oatmeal.lua rename to .config/nvim/lua/plugins/oatmeal.lua diff --git a/home/neovim/nvim/lua/plugins/obsidian.lua b/.config/nvim/lua/plugins/obsidian.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/obsidian.lua rename to .config/nvim/lua/plugins/obsidian.lua diff --git a/home/neovim/nvim/lua/plugins/oil.lua b/.config/nvim/lua/plugins/oil.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/oil.lua rename to .config/nvim/lua/plugins/oil.lua diff --git a/home/neovim/nvim/lua/plugins/ollama.lua b/.config/nvim/lua/plugins/ollama.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/ollama.lua rename to .config/nvim/lua/plugins/ollama.lua diff --git a/home/neovim/nvim/lua/plugins/project.lua b/.config/nvim/lua/plugins/project.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/project.lua rename to .config/nvim/lua/plugins/project.lua diff --git a/home/neovim/nvim/lua/plugins/rainbow-csv.lua b/.config/nvim/lua/plugins/rainbow-csv.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/rainbow-csv.lua rename to .config/nvim/lua/plugins/rainbow-csv.lua diff --git a/home/neovim/nvim/lua/plugins/remote-nvim.lua b/.config/nvim/lua/plugins/remote-nvim.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/remote-nvim.lua rename to .config/nvim/lua/plugins/remote-nvim.lua diff --git a/home/neovim/nvim/lua/plugins/screenshots.lua b/.config/nvim/lua/plugins/screenshots.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/screenshots.lua rename to .config/nvim/lua/plugins/screenshots.lua diff --git a/home/neovim/nvim/lua/plugins/smart-splits.lua b/.config/nvim/lua/plugins/smart-splits.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/smart-splits.lua rename to .config/nvim/lua/plugins/smart-splits.lua diff --git a/home/neovim/nvim/lua/plugins/symbols-outline.lua b/.config/nvim/lua/plugins/symbols-outline.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/symbols-outline.lua rename to .config/nvim/lua/plugins/symbols-outline.lua diff --git a/home/neovim/nvim/lua/plugins/table-mode.lua b/.config/nvim/lua/plugins/table-mode.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/table-mode.lua rename to .config/nvim/lua/plugins/table-mode.lua diff --git a/home/neovim/nvim/lua/plugins/tailwindcss.lua b/.config/nvim/lua/plugins/tailwindcss.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/tailwindcss.lua rename to .config/nvim/lua/plugins/tailwindcss.lua diff --git a/home/neovim/nvim/lua/plugins/telecope-heading.lua b/.config/nvim/lua/plugins/telecope-heading.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/telecope-heading.lua rename to .config/nvim/lua/plugins/telecope-heading.lua diff --git a/home/neovim/nvim/lua/plugins/telescope-file-browser.lua b/.config/nvim/lua/plugins/telescope-file-browser.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/telescope-file-browser.lua rename to .config/nvim/lua/plugins/telescope-file-browser.lua diff --git a/home/neovim/nvim/lua/plugins/telescope-frecency.lua b/.config/nvim/lua/plugins/telescope-frecency.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/telescope-frecency.lua rename to .config/nvim/lua/plugins/telescope-frecency.lua diff --git a/home/neovim/nvim/lua/plugins/telescope-fzy-native.lua b/.config/nvim/lua/plugins/telescope-fzy-native.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/telescope-fzy-native.lua rename to .config/nvim/lua/plugins/telescope-fzy-native.lua diff --git a/home/neovim/nvim/lua/plugins/telescope-github.lua b/.config/nvim/lua/plugins/telescope-github.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/telescope-github.lua rename to .config/nvim/lua/plugins/telescope-github.lua diff --git a/home/neovim/nvim/lua/plugins/telescope-import.lua b/.config/nvim/lua/plugins/telescope-import.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/telescope-import.lua rename to .config/nvim/lua/plugins/telescope-import.lua diff --git a/home/neovim/nvim/lua/plugins/telescope-live-grep-args.lua b/.config/nvim/lua/plugins/telescope-live-grep-args.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/telescope-live-grep-args.lua rename to .config/nvim/lua/plugins/telescope-live-grep-args.lua diff --git a/home/neovim/nvim/lua/plugins/telescope-node-modules.lua b/.config/nvim/lua/plugins/telescope-node-modules.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/telescope-node-modules.lua rename to .config/nvim/lua/plugins/telescope-node-modules.lua diff --git a/home/neovim/nvim/lua/plugins/telescope-smart-open.lua b/.config/nvim/lua/plugins/telescope-smart-open.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/telescope-smart-open.lua rename to .config/nvim/lua/plugins/telescope-smart-open.lua diff --git a/home/neovim/nvim/lua/plugins/telescope-undo.lua b/.config/nvim/lua/plugins/telescope-undo.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/telescope-undo.lua rename to .config/nvim/lua/plugins/telescope-undo.lua diff --git a/home/neovim/nvim/lua/plugins/telescope.lua b/.config/nvim/lua/plugins/telescope.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/telescope.lua rename to .config/nvim/lua/plugins/telescope.lua diff --git a/home/neovim/nvim/lua/plugins/tmux-awesome-plugin-manager.lua b/.config/nvim/lua/plugins/tmux-awesome-plugin-manager.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/tmux-awesome-plugin-manager.lua rename to .config/nvim/lua/plugins/tmux-awesome-plugin-manager.lua diff --git a/home/neovim/nvim/lua/plugins/tmux-navigator.lua b/.config/nvim/lua/plugins/tmux-navigator.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/tmux-navigator.lua rename to .config/nvim/lua/plugins/tmux-navigator.lua diff --git a/home/neovim/nvim/lua/plugins/todo-comments.lua b/.config/nvim/lua/plugins/todo-comments.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/todo-comments.lua rename to .config/nvim/lua/plugins/todo-comments.lua diff --git a/home/neovim/nvim/lua/plugins/transparent.lua b/.config/nvim/lua/plugins/transparent.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/transparent.lua rename to .config/nvim/lua/plugins/transparent.lua diff --git a/home/neovim/nvim/lua/plugins/treesitter.lua b/.config/nvim/lua/plugins/treesitter.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/treesitter.lua rename to .config/nvim/lua/plugins/treesitter.lua diff --git a/home/neovim/nvim/lua/plugins/twilight.lua b/.config/nvim/lua/plugins/twilight.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/twilight.lua rename to .config/nvim/lua/plugins/twilight.lua diff --git a/home/neovim/nvim/lua/plugins/ufo.lua b/.config/nvim/lua/plugins/ufo.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/ufo.lua rename to .config/nvim/lua/plugins/ufo.lua diff --git a/home/neovim/nvim/lua/plugins/various-textobjs.lua b/.config/nvim/lua/plugins/various-textobjs.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/various-textobjs.lua rename to .config/nvim/lua/plugins/various-textobjs.lua diff --git a/home/neovim/nvim/lua/plugins/vim-nix.lua b/.config/nvim/lua/plugins/vim-nix.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/vim-nix.lua rename to .config/nvim/lua/plugins/vim-nix.lua diff --git a/home/neovim/nvim/lua/plugins/vimux.lua b/.config/nvim/lua/plugins/vimux.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/vimux.lua rename to .config/nvim/lua/plugins/vimux.lua diff --git a/home/neovim/nvim/lua/plugins/visincr.lua b/.config/nvim/lua/plugins/visincr.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/visincr.lua rename to .config/nvim/lua/plugins/visincr.lua diff --git a/home/neovim/nvim/lua/plugins/visual-multi.lua b/.config/nvim/lua/plugins/visual-multi.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/visual-multi.lua rename to .config/nvim/lua/plugins/visual-multi.lua diff --git a/home/neovim/nvim/lua/plugins/wakatime.lua b/.config/nvim/lua/plugins/wakatime.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/wakatime.lua rename to .config/nvim/lua/plugins/wakatime.lua diff --git a/home/neovim/nvim/lua/plugins/worktrees.lua b/.config/nvim/lua/plugins/worktrees.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/worktrees.lua rename to .config/nvim/lua/plugins/worktrees.lua diff --git a/home/neovim/nvim/lua/plugins/wrapping.lua b/.config/nvim/lua/plugins/wrapping.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/wrapping.lua rename to .config/nvim/lua/plugins/wrapping.lua diff --git a/home/neovim/nvim/lua/plugins/xtract.lua b/.config/nvim/lua/plugins/xtract.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/xtract.lua rename to .config/nvim/lua/plugins/xtract.lua diff --git a/home/neovim/nvim/lua/plugins/zen-mode.lua b/.config/nvim/lua/plugins/zen-mode.lua similarity index 100% rename from home/neovim/nvim/lua/plugins/zen-mode.lua rename to .config/nvim/lua/plugins/zen-mode.lua diff --git a/.config/nvim/spell/de.utf-8.add b/.config/nvim/spell/de.utf-8.add new file mode 100755 index 0000000..e69de29 diff --git a/home/neovim/nvim/spell/de.utf-8.add.spl b/.config/nvim/spell/de.utf-8.add.spl similarity index 100% rename from home/neovim/nvim/spell/de.utf-8.add.spl rename to .config/nvim/spell/de.utf-8.add.spl diff --git a/home/neovim/nvim/spell/de.utf-8.spl b/.config/nvim/spell/de.utf-8.spl similarity index 100% rename from home/neovim/nvim/spell/de.utf-8.spl rename to .config/nvim/spell/de.utf-8.spl diff --git a/home/neovim/nvim/spell/de.utf-8.sug b/.config/nvim/spell/de.utf-8.sug similarity index 100% rename from home/neovim/nvim/spell/de.utf-8.sug rename to .config/nvim/spell/de.utf-8.sug diff --git a/home/neovim/nvim/spell/en.utf-8.add b/.config/nvim/spell/en.utf-8.add similarity index 100% rename from home/neovim/nvim/spell/en.utf-8.add rename to .config/nvim/spell/en.utf-8.add diff --git a/home/neovim/nvim/spell/en.utf-8.add.spl b/.config/nvim/spell/en.utf-8.add.spl similarity index 100% rename from home/neovim/nvim/spell/en.utf-8.add.spl rename to .config/nvim/spell/en.utf-8.add.spl diff --git a/home/neovim/nvim/spell/en.utf-8.spl b/.config/nvim/spell/en.utf-8.spl similarity index 100% rename from home/neovim/nvim/spell/en.utf-8.spl rename to .config/nvim/spell/en.utf-8.spl diff --git a/home/neovim/nvim/spell/en.utf-8.sug b/.config/nvim/spell/en.utf-8.sug similarity index 100% rename from home/neovim/nvim/spell/en.utf-8.sug rename to .config/nvim/spell/en.utf-8.sug diff --git a/home/neovim/nvim/stylua.toml b/.config/nvim/stylua.toml similarity index 100% rename from home/neovim/nvim/stylua.toml rename to .config/nvim/stylua.toml diff --git a/home/neovim/nvim/thesaurus/de_openthesaurus.txt b/.config/nvim/thesaurus/de_openthesaurus.txt similarity index 100% rename from home/neovim/nvim/thesaurus/de_openthesaurus.txt rename to .config/nvim/thesaurus/de_openthesaurus.txt diff --git a/home/neovim/nvim/thesaurus/de_user.txt b/.config/nvim/thesaurus/de_user.txt similarity index 100% rename from home/neovim/nvim/thesaurus/de_user.txt rename to .config/nvim/thesaurus/de_user.txt diff --git a/home/oatmeal/config.toml b/.config/oatmeal/config.toml similarity index 100% rename from home/oatmeal/config.toml rename to .config/oatmeal/config.toml diff --git a/home/ripgrep/ripgreprc b/.config/ripgrep/ripgreprc similarity index 100% rename from home/ripgrep/ripgreprc rename to .config/ripgrep/ripgreprc diff --git a/home/sesh/scripts/node_dev b/.config/sesh/scripts/node_dev similarity index 100% rename from home/sesh/scripts/node_dev rename to .config/sesh/scripts/node_dev diff --git a/home/sesh/scripts/open_files b/.config/sesh/scripts/open_files similarity index 100% rename from home/sesh/scripts/open_files rename to .config/sesh/scripts/open_files diff --git a/home/sesh/sesh.toml b/.config/sesh/sesh.toml similarity index 100% rename from home/sesh/sesh.toml rename to .config/sesh/sesh.toml diff --git a/home/skhd/skhdrc b/.config/skhd/skhdrc similarity index 100% rename from home/skhd/skhdrc rename to .config/skhd/skhdrc diff --git a/.config/starship.toml b/.config/starship.toml new file mode 100644 index 0000000..32542f5 --- /dev/null +++ b/.config/starship.toml @@ -0,0 +1,17 @@ +# Don't print a new line at the start of the prompt +add_newline = false + +command_timeout = 2000 + +[battery] +disabled = true + +# "bold red" style when capacity is between 0% and 10% +[[battery.display]] +threshold = 10 +style = "bold red" + +# "bold yellow" style when capacity is between 10% and 30% +[[battery.display]] +threshold = 30 +style = "bold yellow" diff --git a/home/tmux/tmux-nerd-font-window-name.yml b/.config/tmux/tmux-nerd-font-window-name.yml similarity index 100% rename from home/tmux/tmux-nerd-font-window-name.yml rename to .config/tmux/tmux-nerd-font-window-name.yml diff --git a/home/tmux/tmux.conf b/.config/tmux/tmux.conf similarity index 54% rename from home/tmux/tmux.conf rename to .config/tmux/tmux.conf index 14f1745..fae0336 100644 --- a/home/tmux/tmux.conf +++ b/.config/tmux/tmux.conf @@ -1,4 +1,7 @@ +# *** *** Settings *** *** + # Terminal overrides +set -g default-terminal "xterm" set -as terminal-overrides ',*:Smulx=\E[4::%p1%dm' # undercurl support set -as terminal-overrides ',*:Setulc=\E[58::2::%p1%{65536}%/%d::%p1%{256}%/%{255}%&%d::%p1%{255}%&%d%;m' # underscore colours - needs tmux-3.0 @@ -6,6 +9,10 @@ set -as terminal-overrides ',*:Setulc=\E[58::2::%p1%{65536}%/%d::%p1%{256}%/%{25 set -g automatic-rename on set -g renumber-windows on +# Base index for windows +set -g base-index 1 +setw -g pane-base-index 1 + # Clipboard settings set -g set-clipboard on @@ -15,7 +22,39 @@ set -g display-time 4000 # Focus events for Vim set -g focus-events on -# Status bar settings +# Base index for panes +set-window-option -g pane-base-index 1 + +# copy to system clipboard +set -g set-clipboard on + +# tmux messages are displayed for 4 seconds +set -g display-time 4000 + +# tmux restore last session +set -g @continuum-restore 'on' + +# Refresh status +set -g status-interval 1 + +# Set focus events for Vim +set -g focus-events on + +# Vi mode +set -g @shell_mode 'vi' + +# Act like vim +setw -g mode-keys vi +set -g status-keys vi +set -sg escape-time 0 + +# Mouse integration +set -g mouse on + +# History +set-option -g history-limit 50000 + +# Status Bar set -g status-position top set -g status-style 'bg=default,fg=white' # transparent status bar set -g status-interval 1 @@ -38,6 +77,10 @@ set -g window-status-current-format "#[fg=magenta,bg=default]#[fg=#000000,bol set -g window-status-separator " " set -g window-status-format "#[fg=#000000,bg=default]#[fg=white,bg=#000000]#I#[fg=#000000,bg=#303042] #[fg=white,bg=#303042]#W#{?window_bell_flag,,}#[fg=#303042,bg=default]" +# Thumbs command +set -g @thumbs-command 'echo -n {} | pbcopy' + +# *** *** Key Bindings *** *** # Force a reload of the config file bind r source-file ~/.config/tmux/tmux.conf\; display "Reloaded!" @@ -79,19 +122,46 @@ bind-key -T copy-mode-vi Enter send-keys -X copy-selection bind P run "tmux paste-buffer" -# Thumbs command -set -g @thumbs-command 'echo -n {} | pbcopy' +# Rename the current window +bind-key v command-prompt "rename-window '%%'" # Sesh integration bind-key "T" run-shell "sesh connect \"$( sesh list | fzf-tmux -p 55%,60% \ - --no-sort --border-label ' sesh ' --prompt '⚡ ' \ - --header '^a all ⋅ ^t tmux ⋅ ^g configs ⋅ ^x zoxide ⋅ ^d tmux kill ⋅ ^f find' \ + --no-sort --ansi --border-label ' sesh ' --prompt '⚡ ' \ + --header ' ^a all ^t tmux ^g configs ^x zoxide ^d tmux kill ^f find' \ --bind 'tab:down,btab:up' \ - --bind 'ctrl-a:change-prompt(⚡ )+reload(sesh list)' \ - --bind 'ctrl-t:change-prompt(🪟 )+reload(sesh list -t)' \ - --bind 'ctrl-g:change-prompt(⚙️ )+reload(sesh list -c)' \ - --bind 'ctrl-x:change-prompt(📁 )+reload(sesh list -z)' \ - --bind 'ctrl-f:change-prompt(🔎 )+reload(fd -H -d 2 -t d -E .Trash . ~)' \ - --bind 'ctrl-d:execute(tmux kill-session -t {})+change-prompt(⚡ )+reload(sesh list)' + --bind 'ctrl-a:change-prompt(⚡ )+reload(sesh list)' \ + --bind 'ctrl-t:change-prompt(🪟 )+reload(sesh list -t)' \ + --bind 'ctrl-g:change-prompt(⚙️ )+reload(sesh list -c)' \ + --bind 'ctrl-x:change-prompt(📁 )+reload(sesh list -z)' \ + --bind 'ctrl-f:change-prompt(🔎 )+reload(fd -H -d 2 -t d -E .Trash . ~)' \ + --bind 'ctrl-d:execute(tmux kill-session -t {})+change-prompt(⚡ )+reload(sesh list)' )\"" + +# *** *** Plugins *** *** + +# prefix + I to install, prefix + U to update +set -g @plugin 'tmux-plugins/tpm' +set -g @plugin 'tmux-plugins/tmux-sensible' +set -g @plugin 'tmux-plugins/tmux-battery' +set -g @plugin 'tmux-plugins/tmux-continuum' +set -g @plugin 'tmux-plugins/tmux-copycat' +set -g @plugin 'tmux-plugins/tmux-logging' +set -g @plugin 'tmux-plugins/tmux-open' +set -g @plugin 'tmux-plugins/tmux-pain-control' +set -g @plugin 'tmux-plugins/tmux-resurrect' +set -g @plugin 'tmux-plugins/tmux-sessionist' +set -g @plugin 'tmux-plugins/tmux-urlview' +set -g @plugin 'tmux-plugins/tmux-yank' +set -g @plugin 'nhdaly/tmux-better-mouse-mode' +set -g @plugin 'carlocab/tmux-nvr' +set -g @plugin 'nhdaly/tmux-scroll-copy-mode' +set -g @plugin 'wfxr/tmux-fzf-url' # u +# set -g @plugin 'joshmedeski/t-smart-tmux-session-manager' +set -g @plugin 'christoomey/vim-tmux-navigator' +set -g @plugin 'joshmedeski/tmux-nerd-font-window-name' +set -g @plugin 'fcsonline/tmux-thumbs' + +# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) +run '~/.tmux/plugins/tpm/tpm' diff --git a/home/wezterm/wezterm.icns b/.config/wezterm/terminal.icns similarity index 100% rename from home/wezterm/wezterm.icns rename to .config/wezterm/terminal.icns diff --git a/home/wezterm/wezterm.lua b/.config/wezterm/wezterm.lua similarity index 98% rename from home/wezterm/wezterm.lua rename to .config/wezterm/wezterm.lua index 71e3f64..53f4547 100644 --- a/home/wezterm/wezterm.lua +++ b/.config/wezterm/wezterm.lua @@ -126,6 +126,7 @@ config.keys = { { key = "q", mods = "CTRL|ALT", action = wezterm.action({ SendString = "\2d" }) }, -- Detach session { key = "r", mods = "CTRL|ALT", action = wezterm.action({ SendString = "\2R" }) }, -- Return to last session { key = "t", mods = "CTRL|ALT", action = wezterm.action({ SendString = "\2c" }) }, -- New window + { key = "s", mods = "CTRL|ALT", action = wezterm.action({ SendString = "\2f" }) }, -- Superfile { key = "w", mods = "CTRL|ALT", action = wezterm.action({ SendString = "\2x" }) }, -- Close window { key = "y", mods = "CTRL|ALT", action = wezterm.action({ SendString = "\2W" }) }, -- Yazi { key = "z", mods = "CTRL|ALT", action = wezterm.action({ SendString = "\2z" }) }, -- Zoom into window diff --git a/home/yabai/yabairc b/.config/yabai/yabairc similarity index 100% rename from home/yabai/yabairc rename to .config/yabai/yabairc diff --git a/.config/yazi/flavors/.gitkeep b/.config/yazi/flavors/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/.config/yazi/plugins/.gitkeep b/.config/yazi/plugins/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/.config/yazi/yazi.toml b/.config/yazi/yazi.toml new file mode 100644 index 0000000..9be8ca3 --- /dev/null +++ b/.config/yazi/yazi.toml @@ -0,0 +1,15 @@ +[log] +enabled = false + +[manager] +ratio = [1, 4, 3] +show_hidden = false +show_symlink = true +sort_by = "natural" +sort_dir_first = true +sort_reverse = false +sort_sensitive = false + +[[opener.edit]] +block = true +run = "nvim \"$@\"" diff --git a/home/zed/settings.json b/.config/zed/settings.json similarity index 100% rename from home/zed/settings.json rename to .config/zed/settings.json diff --git a/home/ctags/ctags b/.ctags similarity index 100% rename from home/ctags/ctags rename to .ctags diff --git a/home/curl/curlrc b/.curlrc similarity index 100% rename from home/curl/curlrc rename to .curlrc diff --git a/home/asdf/default-gems b/.default-gems similarity index 100% rename from home/asdf/default-gems rename to .default-gems diff --git a/home/asdf/default-npm-packages b/.default-npm-packages similarity index 100% rename from home/asdf/default-npm-packages rename to .default-npm-packages diff --git a/home/asdf/default-python-packages b/.default-python-packages similarity index 100% rename from home/asdf/default-python-packages rename to .default-python-packages diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..d5e70ea --- /dev/null +++ b/.editorconfig @@ -0,0 +1,18 @@ +# http://editorconfig.org + +# Root file +root = true + +# Unix-style newlines with a newline ending every file +[*] +charset = utf-8 +end_of_line = lf +indent_style = tab +insert_final_newline = true +trim_trailing_whitespace = true + +[*.{md,markdown,pandoc}] +trim_trailing_whitespace = false + +[Makefile] +indent_style = tab diff --git a/.functions/delete_node_modules.sh b/.functions/delete_node_modules.sh new file mode 100755 index 0000000..eb642e3 --- /dev/null +++ b/.functions/delete_node_modules.sh @@ -0,0 +1,18 @@ +# Delete all node_modules folders in a folder and subfolders + +delete_node_modules() { + echo "This will delete all node_modules directories in the current directory and its subdirectories." + echo "Are you sure you want to continue? (y/N)" + read -r response + + case "$response" in + [yY][eE][sS]|[yY]) + echo "Searching for node_modules directories..." + find . -name "node_modules" -type d -print -exec rm -rf {} + + echo "Deletion complete." + ;; + *) + echo "Operation cancelled." + ;; + esac +} diff --git a/.functions/fcd.sh b/.functions/fcd.sh new file mode 100755 index 0000000..35343d8 --- /dev/null +++ b/.functions/fcd.sh @@ -0,0 +1,6 @@ +# fcd - cd into directory + +fcd() { + local dir + dir=$(find . -type d | sed '1d; s|^\./||' | fzf --preview 'tree -C {} | head -50') && cd "$dir" +} diff --git a/.functions/fcdh.sh b/.functions/fcdh.sh new file mode 100755 index 0000000..6ffbf5b --- /dev/null +++ b/.functions/fcdh.sh @@ -0,0 +1,22 @@ +# fhcd – Jump to home directory and search for directories + +fhcd() { + # Change to home directory + cd "$HOME" || return + + # Change to subdirectory if provided + if [ -n "$1" ] && [ -d "$1" ]; then + cd "$1" || return + fi + + # Find directories and use fzf for selection + local dir + dir=$(find . -type d | sed '1d; s|^\./||' | fzf --preview 'tree -C {} | head -50') + + # Change to selected directory if one was chosen + if [ -n "$dir" ]; then + cd "$dir" || return + else + echo "No directory selected. Staying in current directory." + fi +} diff --git a/.functions/fco.sh b/.functions/fco.sh new file mode 100755 index 0000000..de71af8 --- /dev/null +++ b/.functions/fco.sh @@ -0,0 +1,32 @@ +# fco - checkout git branch/tag + +fco() { + # Check if we're in a git repository + if ! git rev-parse --is-inside-work-tree >/dev/null 2>&1; then + echo "Error: Not in a git repository" + return 1 + fi + + local tags branches target + + # Get tags + tags=$(git tag | awk '{print "\033[31;1mtag\033[m\t" $1}') || return + + # Get branches + branches=$(git branch --all | grep -v HEAD | + sed "s/.* //" | sed "s#remotes/[^/]*/##" | + sort -u | awk '{print "\033[34;1mbranch\033[m\t" $1}') || return + + # Combine tags and branches + target=$( (echo "$tags"; echo "$branches") | + fzf-tmux --no-hscroll --ansi +m -d "\t" -n 2 \ + --preview 'git log -n 50 --color=always --date=short --pretty="format:%C(auto)%cd %h%d %s" $(echo {} | awk "{print \$2}")' \ + --preview-window right:60%) || return + + # Extract the branch or tag name and checkout + local branch_or_tag + branch_or_tag=$(echo "$target" | awk '{print $2}') + + echo "Checking out: $branch_or_tag" + git checkout "$branch_or_tag" +} diff --git a/.functions/fcoc.sh b/.functions/fcoc.sh new file mode 100755 index 0000000..6ab5794 --- /dev/null +++ b/.functions/fcoc.sh @@ -0,0 +1,28 @@ +# fcoc - checkout git commit + +fcoc() { + # Check if we're in a git repository + if ! git rev-parse --is-inside-work-tree >/dev/null 2>&1; then + echo "Error: Not in a git repository" + return 1 + fi + + local commits commit + + # Get commits + commits=$(git log --pretty=oneline --abbrev-commit --reverse) || return + + # Use fzf to select a commit + commit=$(echo "$commits" | fzf --tac +s +m -e --preview 'git show --color=always {1}') || return + + # Extract the commit hash + commit_hash=$(echo "$commit" | awk '{print $1}') + + # Checkout the selected commit + if [ -n "$commit_hash" ]; then + echo "Checking out commit: $commit_hash" + git checkout "$commit_hash" + else + echo "No commit selected." + fi +} diff --git a/.functions/fdr.sh b/.functions/fdr.sh new file mode 100755 index 0000000..c57c472 --- /dev/null +++ b/.functions/fdr.sh @@ -0,0 +1,27 @@ +# fdr - cd to selected parent directory + +fdr() { + get_parent_dirs() { + if [ -d "$1" ]; then + echo "$1" + else + return + fi + + if [ "$1" = "/" ]; then + return + else + get_parent_dirs "$(dirname "$1")" + fi + } + + # Use command substitution to get the selected directory + DIR=$(get_parent_dirs "$(realpath "${1:-$(pwd)}")" | tac | fzf-tmux) + + # Change to the selected directory if one was chosen + if [ -n "$DIR" ]; then + cd "$DIR" || return + else + echo "No directory selected." + fi +} diff --git a/.functions/fgh.sh b/.functions/fgh.sh new file mode 100755 index 0000000..0fae9f8 --- /dev/null +++ b/.functions/fgh.sh @@ -0,0 +1,24 @@ +# Find in files with ripgrep and fzf and open on that line +# -> Works together with Vim Plugin bogado/file-line + +frg() { + pattern="${1:-.}" + file_glob="${2:-*}" + + result=$(rg "$pattern" --line-number --glob "$file_glob" | fzf --delimiter : --preview 'bat --style=numbers --color=always --highlight-line {2} {1}' --preview-window '+{2}-/2') + + if [ -n "$result" ]; then + file=$(echo "$result" | cut -d: -f1) + line=$(echo "$result" | cut -d: -f2) + + if command -v nvim >/dev/null 2>&1; then + nvim "+${line}" "$file" + elif command -v vim >/dev/null 2>&1; then + vim "+${line}" "$file" + else + echo "Neither neovim nor vim is installed." + fi + else + echo "No file selected." + fi +} diff --git a/.functions/fkill.sh b/.functions/fkill.sh new file mode 100755 index 0000000..c3ddb7f --- /dev/null +++ b/.functions/fkill.sh @@ -0,0 +1,25 @@ +# fkill - kill process + +fkill() { + local pid + local signal="${1:-9}" + local pattern="$2" + + if ! [ "$signal" -eq "$signal" ] 2>/dev/null; then + echo "Invalid signal: $signal" + return 1 + fi + + if [ -n "$pattern" ]; then + pid=$(ps -ef | sed 1d | grep "$pattern" | fzf -m --header='[kill:process]' --preview 'echo {}' --preview-window down:3:wrap | awk '{print $2}') + else + pid=$(ps -ef | sed 1d | fzf -m --header='[kill:process]' --preview 'echo {}' --preview-window down:3:wrap | awk '{print $2}') + fi + + if [ -n "$pid" ]; then + echo "Killing processes with PID: $pid" + echo "$pid" | xargs kill "-$signal" + else + echo "No process selected." + fi +} diff --git a/.functions/fo.sh b/.functions/fo.sh new file mode 100755 index 0000000..34be0c1 --- /dev/null +++ b/.functions/fo.sh @@ -0,0 +1,26 @@ +# Modified version where you can press +# - CTRL-O to open with `open` command, +# - CTRL-E or Enter key to open with the $EDITOR + +fo() { + # Use process substitution to capture fzf output + IFS=$'\n' read -r -d '' key file < /dev/null 2>&1; then + xdg-open "$file" # For Linux + elif command -v open > /dev/null 2>&1; then + open "$file" # For macOS + else + echo "No suitable 'open' command found." + fi + else + ${EDITOR:-vim} "$file" + fi + fi +} diff --git a/.functions/fs.sh b/.functions/fs.sh new file mode 100755 index 0000000..7c57c76 --- /dev/null +++ b/.functions/fs.sh @@ -0,0 +1,18 @@ +# Determine size of a file or total size of a directory + +fs() { + # Check if 'du' supports the -b option + if du -b /dev/null > /dev/null 2>&1; then + arg="-sbh" + else + arg="-sh" + fi + + # If arguments are provided, use them; otherwise, use current directory + if [ $# -gt 0 ]; then + du $arg -- "$@" + else + # Use find to handle hidden files and directories + find . -maxdepth 1 -print0 | xargs -0 du $arg | sort -h + fi +} diff --git a/.functions/fshow.sh b/.functions/fshow.sh new file mode 100644 index 0000000..b74ac38 --- /dev/null +++ b/.functions/fshow.sh @@ -0,0 +1,25 @@ +# fshow - git commit browser + +fshow() { + # Check if we're in a git repository + if ! git rev-parse --is-inside-work-tree >/dev/null 2>&1; then + echo "Error: Not in a git repository" + return 1 + fi + + # Define the git log format + local log_format="%C(auto)%h%d %s %C(black)%C(bold)%cr" + + # Use git log to get the commit history and pipe it to fzf + git log --graph --color=always --format="$log_format" "$@" | + fzf --ansi --no-sort --reverse --tiebreak=index \ + --bind=ctrl-s:toggle-sort \ + --bind=ctrl-d:preview-page-down \ + --bind=ctrl-u:preview-page-up \ + --preview 'grep -o "[a-f0-9]\{7,\}" <<< {} | xargs git show --color=always' \ + --bind "ctrl-m:execute: + (grep -o '[a-f0-9]\{7,\}' | head -1 | + xargs -I % sh -c 'git show --color=always % | less -R') << 'FZF-EOF' + {} +FZF-EOF" +} diff --git a/.functions/fz.sh b/.functions/fz.sh new file mode 100644 index 0000000..a7d4ee7 --- /dev/null +++ b/.functions/fz.sh @@ -0,0 +1,28 @@ +# Search z history with fzf + +fz() { + # Check if z is installed + if ! command -v _z >/dev/null 2>&1; then + echo "Error: z is not installed or not in PATH" + return 1 + fi + + # If arguments are provided, use z directly + if [ $# -gt 0 ]; then + _z "$*" && return + fi + + # Use fzf to select from z history + local dir + dir=$(_z -l 2>&1 | sed 's/^[0-9,.]* *//' | + fzf --height 40% --nth 1.. --reverse --inline-info +s --tac --query "${*##-* }" \ + --preview 'ls -l {}' \ + --preview-window right:50% \ + --bind 'ctrl-/:change-preview-window(down|hidden|)' \ + --header 'Press CTRL-/ to toggle preview window') + + # Change to the selected directory + if [ -n "$dir" ]; then + cd "$dir" || return 1 + fi +} diff --git a/.functions/ghpr.sh b/.functions/ghpr.sh new file mode 100755 index 0000000..ee58d62 --- /dev/null +++ b/.functions/ghpr.sh @@ -0,0 +1,18 @@ +# Search and preview GitHub pull requests + +ghpr() { + # Force GitHub CLI to use colors + export GH_FORCE_TTY=100% + + # List pull requests and pipe to fzf for selection + selected_pr=$(gh pr list | fzf --ansi --preview 'GH_FORCE_TTY=100% gh pr view {1}' --preview-window down --header-lines 3) + + # Check if a PR was selected + if [ -n "$selected_pr" ]; then + # Extract the PR number and checkout + pr_number=$(echo "$selected_pr" | awk '{print $1}') + gh pr checkout "$pr_number" + else + echo "No pull request selected." + fi +} diff --git a/.functions/server.sh b/.functions/server.sh new file mode 100755 index 0000000..9060470 --- /dev/null +++ b/.functions/server.sh @@ -0,0 +1,11 @@ +# Server + +server() { + if command -v browser-sync >/dev/null 2>&1; then + echo "Starting Browser-Sync server..." + browser-sync start --server --files "${1:-**}" "${@:2}" + else + echo "Error: browser-sync is not installed or not in the PATH." + echo "Please install it using npm: npm install -g browser-sync" + fi +} diff --git a/home/ruby/gemrc b/.gemrc similarity index 100% rename from home/ruby/gemrc rename to .gemrc diff --git a/.gitignore b/.gitignore index b623df5..e9f4263 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,14 @@ # Karabiner backups automatic_backups + +# Homebrew lock files +homebrew/*.lock.json + +# Tmux Plugin Manager +.config/tmux/plugins/ + +# Fish +.config/fish/completions +.config/fish/conf.d +.config/fish/fish_variables +.config/fish/functions/* diff --git a/.gitmodules b/.gitmodules index 818a9ba..bee4ce6 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ -[submodule "private/bin"] - path = private/bin - url = git@github.com:kogakure/scripts.git +[submodule "private"] + path = private + url = git@github.com:kogakure/vault.git diff --git a/home/tmux/gitmux.conf b/.gitmux.conf similarity index 100% rename from home/tmux/gitmux.conf rename to .gitmux.conf diff --git a/.gnupg/dirmngr.conf b/.gnupg/dirmngr.conf new file mode 100644 index 0000000..1411414 --- /dev/null +++ b/.gnupg/dirmngr.conf @@ -0,0 +1 @@ +keyserver hkps://keys.openpgp.org diff --git a/.gnupg/gpg-agent.conf b/.gnupg/gpg-agent.conf new file mode 100644 index 0000000..55299be --- /dev/null +++ b/.gnupg/gpg-agent.conf @@ -0,0 +1,3 @@ +pinentry-program /opt/homebrew/bin/pinentry-mac +default-cache-ttl 600 +max-cache-ttl 7200 diff --git a/.gnupg/gpg.conf b/.gnupg/gpg.conf new file mode 100644 index 0000000..eb22af8 --- /dev/null +++ b/.gnupg/gpg.conf @@ -0,0 +1,4 @@ +auto-key-retrieve +no-emit-version +use-agent +default-key F0CF1CF481C2E3AA0F806A378BD4525D7A7253E8 diff --git a/home/hammerspoon/hammerspoon/caffeine.lua b/.hammerspoon/caffeine.lua similarity index 100% rename from home/hammerspoon/hammerspoon/caffeine.lua rename to .hammerspoon/caffeine.lua diff --git a/home/hammerspoon/hammerspoon/functions.lua b/.hammerspoon/functions.lua similarity index 100% rename from home/hammerspoon/hammerspoon/functions.lua rename to .hammerspoon/functions.lua diff --git a/home/hammerspoon/hammerspoon/icons/cup-off.pdf b/.hammerspoon/icons/cup-off.pdf similarity index 100% rename from home/hammerspoon/hammerspoon/icons/cup-off.pdf rename to .hammerspoon/icons/cup-off.pdf diff --git a/home/hammerspoon/hammerspoon/icons/cup-on.pdf b/.hammerspoon/icons/cup-on.pdf similarity index 100% rename from home/hammerspoon/hammerspoon/icons/cup-on.pdf rename to .hammerspoon/icons/cup-on.pdf diff --git a/home/hammerspoon/hammerspoon/icons/moon.pdf b/.hammerspoon/icons/moon.pdf similarity index 100% rename from home/hammerspoon/hammerspoon/icons/moon.pdf rename to .hammerspoon/icons/moon.pdf diff --git a/home/hammerspoon/hammerspoon/icons/sun.pdf b/.hammerspoon/icons/sun.pdf similarity index 100% rename from home/hammerspoon/hammerspoon/icons/sun.pdf rename to .hammerspoon/icons/sun.pdf diff --git a/home/hammerspoon/hammerspoon/init.lua b/.hammerspoon/init.lua similarity index 100% rename from home/hammerspoon/hammerspoon/init.lua rename to .hammerspoon/init.lua diff --git a/.profile b/.profile new file mode 100644 index 0000000..738d02a --- /dev/null +++ b/.profile @@ -0,0 +1 @@ +source "$HOME/.session-variables.sh" diff --git a/.session-variables.sh b/.session-variables.sh new file mode 100644 index 0000000..cc9df04 --- /dev/null +++ b/.session-variables.sh @@ -0,0 +1,69 @@ +# Only source this once. +if [ -n "$SESSION_VARS_SOURCED" ]; then return; fi +export SESSION_VARS_SOURCED=1 + +# General +export KEYTIMEOUT="1" + +if command -v nvim >/dev/null 2>&1; then + export EDITOR="nvim" + export GIT_EDITOR="nvim" +fi + +# XDG base directory specification +export XDG_CACHE_HOME="$HOME/.cache" +export XDG_CONFIG_HOME="$HOME/.config" +export XDG_DATA_HOME="$HOME/.local/share" +export XDG_STATE_HOME="$HOME/.local/state" + +# SSH +export SSH_AUTH_SOCK="$HOME/Library/Containers/com.maxgoedjen.Secretive.SecretAgent/Data/socket.ssh" + +# fd +FD_OPTIONS="--follow --exclude .git --exclude node_modules" + +# fzf +export FZF_ALT_C_COMMAND="fd --type d $FD_OPTIONS --color=never --hidden" +export FZF_ALT_C_OPTS="--preview 'tree -C {} | head -50'" +export FZF_CTRL_R_OPTS="--reverse" +export FZF_CTRL_T_COMMAND="git ls-files --cached --others --exclude-standard | fd --hidden --type f --type l $FD_OPTIONS" +export FZF_CTRL_T_OPTS="--preview 'bat --color=always --style=numbers {}' --bind shift-up:preview-page-up,shift-down:preview-page-down" +export FZF_DEFAULT_COMMAND="git ls-files --cached --others --exclude-standard | fd --hidden --type f --type l $FD_OPTIONS" +export FZF_DEFAULT_OPTS="--no-height" +export FZF_TMUX="1" +export FZF_TMUX_OPTS="-p" + +# Man +export MANPATH="/usr/local/man:$MANPATH" + +# Volta +export VOLTA_HOME="$HOME/.volta" +export PATH="$VOLTA_HOME/bin:$PATH" + +# Rust +export PATH="$HOME/.cargo/bin:$PATH" + +# tmux plugins +export PATH=$HOME/.tmux/plugins/tmux-nvr/bin:$PATH +export PATH=$HOME/.tmux/plugins/t-smart-tmux-session-manager/bin:$PATH + +# Personal +export PATH="$HOME/.dotfiles/bin:$PATH" +export PATH="$HOME/.dotfiles/private/bin:$PATH" + +# Homebrew +export PATH="$(brew --prefix)/bin:$PATH" +export PATH="$(brew --prefix)/sbin:$PATH" +export PATH="$(brew --prefix)/whalebrew/bin:$PATH" + +if command -v brew >/dev/null 2>&1; then + eval "$(brew shellenv)" +fi + +# System +export PATH="/usr/bin:$PATH" +export PATH="/usr/local/bin:$PATH" +export PATH="/usr/local/sbin:$PATH" + +# asdf +export PATH="$HOME/.asdf/shims:$PATH" diff --git a/.stow-local-ignore b/.stow-local-ignore new file mode 100644 index 0000000..d8e03b8 --- /dev/null +++ b/.stow-local-ignore @@ -0,0 +1,11 @@ +.git +.gitignore +.gitmodules +.DS_Store + +install.sh +README.md + +bin +homebrew +private diff --git a/.tool-versions b/.tool-versions new file mode 100644 index 0000000..96a8881 --- /dev/null +++ b/.tool-versions @@ -0,0 +1,9 @@ +deno 1.45.5 +python 3.10.9 +lua 5.4.6 +rust 1.80.0 +ruby 3.3.4 +golang 1.22.5 +nodejs 18.17.1 +neovim stable +direnv 2.32.2 diff --git a/home/wget/wget b/.wget similarity index 100% rename from home/wget/wget rename to .wget diff --git a/.zsh_plugins.txt b/.zsh_plugins.txt new file mode 100644 index 0000000..fd6a4d2 --- /dev/null +++ b/.zsh_plugins.txt @@ -0,0 +1,43 @@ +getantidote/use-omz +ohmyzsh/ohmyzsh path:lib +ohmyzsh/ohmyzsh path:plugins/extract +ohmyzsh/ohmyzsh path:plugins/brew +ohmyzsh/ohmyzsh path:plugins/bundler +ohmyzsh/ohmyzsh path:plugins/colored-man-pages +ohmyzsh/ohmyzsh path:plugins/colorize +ohmyzsh/ohmyzsh path:plugins/dotenv +ohmyzsh/ohmyzsh path:plugins/extract +ohmyzsh/ohmyzsh path:plugins/fzf +ohmyzsh/ohmyzsh path:plugins/gem +ohmyzsh/ohmyzsh path:plugins/git +ohmyzsh/ohmyzsh path:plugins/git-extras +ohmyzsh/ohmyzsh path:plugins/gitignore +ohmyzsh/ohmyzsh path:plugins/gulp +ohmyzsh/ohmyzsh path:plugins/history-substring-search +ohmyzsh/ohmyzsh path:plugins/jira +ohmyzsh/ohmyzsh path:plugins/man +ohmyzsh/ohmyzsh path:plugins/node +ohmyzsh/ohmyzsh path:plugins/npm +ohmyzsh/ohmyzsh path:plugins/pip +ohmyzsh/ohmyzsh path:plugins/pyenv +ohmyzsh/ohmyzsh path:plugins/python +ohmyzsh/ohmyzsh path:plugins/rsync +ohmyzsh/ohmyzsh path:plugins/ssh-agent +ohmyzsh/ohmyzsh path:plugins/sudo +ohmyzsh/ohmyzsh path:plugins/tmux +ohmyzsh/ohmyzsh path:plugins/tmuxinator +ohmyzsh/ohmyzsh path:plugins/vagrant +ohmyzsh/ohmyzsh path:plugins/virtualenv +ohmyzsh/ohmyzsh path:plugins/yarn +ohmyzsh/ohmyzsh path:plugins/z +ohmyzsh/ohmyzsh path:plugins/zsh-interactive-cd + +zsh-users/zsh-syntax-highlighting +zsh-users/zsh-autosuggestions +zsh-users/zsh-history-substring-search + + + + + + diff --git a/.zshenv b/.zshenv new file mode 100644 index 0000000..fa47721 --- /dev/null +++ b/.zshenv @@ -0,0 +1,7 @@ +# Session variables +source "$HOME/.session-variables.sh" + +# Only source this once +if [[ -z "$ZSH_SESSION_VARS_SOURCED" ]]; then + export ZSH_SESSION_VARS_SOURCED=1 +fi diff --git a/.zshrc b/.zshrc new file mode 100644 index 0000000..a73bce9 --- /dev/null +++ b/.zshrc @@ -0,0 +1,70 @@ +autoload -Uz compinit +compinit + +CASE_SENSITIVE="true" # Case-sensitive completion +DISABLE_AUTO_TITLE="true" # Disable auto-setting terminal title +COMPLETION_WAITING_DOTS="true" +ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=7,bg=bold,underline" + +# *** *** Key Bindings *** *** + +bindkey -v +bindkey -M viins '^r' fzf-history-widget # (r)everse history search +bindkey -M viins '^f' fzf-file-widget # (f)ile / (t) +bindkey -M viins '^z' fzf-cd-widget # (z) jump + +# *** *** Tools *** *** + +# asdf +if command -v brew &>/dev/null && [ -f "$(brew --prefix asdf)/libexec/asdf.sh" ]; then + . "$(brew --prefix asdf)/libexec/asdf.sh" + + if [ -f "${XDG_CONFIG_HOME:-$HOME/.config}/asdf-direnv/zshrc" ]; then + source "${XDG_CONFIG_HOME:-$HOME/.config}/asdf-direnv/zshrc" + fi +fi + +# GitHub CLI completion +if command -v gh &>/dev/null; then + eval "$(gh completion -s zsh)" +fi + +# fzf +if command -v fzf &>/dev/null; then + source <(fzf --zsh) +fi + +# Direnv +if command -v direnv &>/dev/null; then + eval "$(direnv hook zsh)" +fi + +# Zoxide +if command -v zoxide &>/dev/null; then + eval "$(zoxide init zsh)" +fi + +# Atuin +if command -v atuin &>/dev/null; then + eval "$(atuin init zsh)" +fi + +# Starship +if command -v starship &>/dev/null; then + eval "$(starship init zsh)" +fi + +# Antidote +source "$(brew --prefix antidote)/share/antidote/antidote.zsh" +antidote load ${ZDOTDIR:-$HOME}/.zsh_plugins.txt + +# *** *** Aliases *** *** + +alias reload="source $HOME/.zshrc" +source "$HOME/.aliases" + +# *** *** Functions *** *** + +for file in ~/.functions/*.sh; do + source "$file" +done diff --git a/README.md b/README.md index eda7514..96aab6f 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,4 @@ -# Nix Dotfiles - -This is my dotfile setup, using [Nix](https://nixos.org/), [nix-darwin](https://github.com/LnL7/nix-darwin), and [home-manager](https://github.com/nix-community/home-manager). +# Dotfiles ## Install Dependencies @@ -16,67 +14,39 @@ xcode-select --install /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" ``` -## Install Nix - -Install Nix using the [Determinate Systems installer](https://github.com/DeterminateSystems/nix-installer): +## Install Initial Software ```sh -curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install +brew install stow +brew install --cask proton-pass +brew install --cask secretive ``` -### Prepare Configuration for Installation +## Setup SSH + +Log into the password manager, start and configure [Secretive](https://github.com/maxgoedjen/secretive) to setup SSH keys. Add the public key to GitHub and export the `SSH_AUTH_SOCK` (temporary) to be able to clone with SSH: ```sh -sudo mv /etc/nix/nix.conf /etc/nix/nix.conf.before-nix-darwin +export SSH_AUTH_SOCK="$HOME/Library/Containers/com.maxgoedjen.Secretive.SecretAgent/Data/socket.ssh" ``` -## Install the Nix Flake - -> [!IMPORTANT] -> Make sure your Terminal has full disk access in the Security & Privacy settings. - -### First-time Installation - -#### Install from GitHub - -To install and use this configuration directly from GitHub without cloning: +## Setup Hostname ```sh -nix --extra-experimental-features nix-command --extra-experimental-features flakes run nix-darwin -- switch --flake github:kogakure/dotfiles +sudo scutil --set HostName ``` -#### Clone and Install - -Clone the repository: +## Clone Dotfiles ```sh git clone git@github.com:kogakure/dotfiles.git ~/.dotfiles ``` -For the initial setup, run: +## Install Script + +Log in with your Apple ID to be able to install app store apps. Run the install script to setup the computer: ```sh -nix --extra-experimental-features nix-command --extra-experimental-features flakes run nix-darwin -- switch --flake ~/.dotfiles +cd ~/.dotfiles +./install.sh ``` - -This command installs nix-darwin and applies your configuration. - -### Selecting a Specific Configuration - -By default the `$hostname` that matches the current machine is used, but it is possible to manually load one by running: - -```sh -nix --extra-experimental-features nix-command --extra-experimental-features flakes run nix-darwin -- switch --flake ~/.dotfiles#mac-mini -``` - -## Updating Configuration - -After making changes to your configuration, apply them with: - -```sh -darwin-rebuild switch --flake ~/.dotfiles -``` - -## Inspiration - -My setup is inspired by [davish’s Nix Setup](https://github.com/davish/setup) and by a lot of talking to [Claude 3.5](https://claude.ai/). 😅 diff --git a/bin/homebrew-backup b/bin/homebrew-backup new file mode 100755 index 0000000..eb33896 --- /dev/null +++ b/bin/homebrew-backup @@ -0,0 +1,2 @@ +#!/bin/bash +brew bundle dump --force --describe --file=~/.dotfiles/homebrew/$(hostname) diff --git a/bin/homebrew-restore b/bin/homebrew-restore new file mode 100755 index 0000000..d3dc6b0 --- /dev/null +++ b/bin/homebrew-restore @@ -0,0 +1,3 @@ +#!/bin/bash +brew bundle cleanup --force --file ~/.dotfiles/homebrew/$(hostname) +brew bundle --file ~/.dotfiles/homebrew/$(hostname) diff --git a/bin/update b/bin/update new file mode 100755 index 0000000..6bf4dce --- /dev/null +++ b/bin/update @@ -0,0 +1,39 @@ +#!/bin/bash + +# Ask for the administrator password upfront +sudo -v + +# Keep-alive: update existing `sudo` time stamp until script has finished +while true; do + sudo -n true + sleep 60 + kill -0 "$$" || exit +done 2>/dev/null & + +cd ~/.dotfiles + +# Update Homebrew +brew update +brew outdated +brew upgrade +brew cleanup + +# Ruby +gem update --system +gem update +gem cleanup all + +# Update tmux plugins +~/.tmux/plugins/tpm/bin/update_plugins all + +# Update GitHub extensions +gh extension upgrade --all + +# Update Fish plugins +fisher update + +# Update Neovim +nvim --headless "+Lazy! sync" +qa + +# Update macOS software +sudo softwareupdate -i -a diff --git a/darwin/default.nix b/darwin/default.nix deleted file mode 100644 index cd0ac39..0000000 --- a/darwin/default.nix +++ /dev/null @@ -1,197 +0,0 @@ -{ pkgs, config, ... }: - -{ - homebrew = import ./homebrew-common.nix; - - # Auto upgrade nix package and the daemon service. - services.nix-daemon.enable = true; - - # Necessary for using flakes on this system. - nix.settings.experimental-features = "nix-command flakes"; - nixpkgs.config.allowUnfree = true; - - # GnuPG - programs.gnupg.agent = { - enable = true; - enableSSHSupport = true; - }; - - # Shells - environment.shells = with pkgs; [ - bash - zsh - fish - ]; - - environment.extraInit = builtins.readFile ./mac-extra.sh; - - programs.zsh.enable = true; - programs.fish.enable = true; - programs.bash.enable = true; - - # Used for backwards compatibility, please read the changelog before changing. - # $ darwin-rebuild changelog - system.stateVersion = 4; - - # General UI/UX - system.defaults.NSGlobalDomain = { - # Set Dark Mode - AppleInterfaceStyle = "Dark"; - - # Set language and text formats - AppleMeasurementUnits = "Centimeters"; - - ApplePressAndHoldEnabled = false; - - # Finder: show all filename extensions - AppleShowAllExtensions = true; - - # Set a blazingly fast keyboard repeat rate - KeyRepeat = 2; - InitialKeyRepeat = 15; - - # Disable automatic capitalization as it’s annoying when typing code - NSAutomaticCapitalizationEnabled = false; - - # Disable smart dashes as they’re annoying when typing code - NSAutomaticDashSubstitutionEnabled = false; - - # Disable automatic period substitution as it’s annoying when typing code - NSAutomaticPeriodSubstitutionEnabled = false; - - # Disable smart quotes as they’re annoying when typing code - NSAutomaticQuoteSubstitutionEnabled = false; - - # Disable auto-correct - NSAutomaticSpellingCorrectionEnabled = false; - - # Expand save panel by default - NSNavPanelExpandedStateForSaveMode = true; - NSNavPanelExpandedStateForSaveMode2 = true; - - # Set sidebar icon size - NSTableViewDefaultSizeMode = 3; - - # Expand print panel by default - PMPrintingExpandedStateForPrint = true; - PMPrintingExpandedStateForPrint2 = true; - }; - - # Disable the “Are you sure you want to open this application?” dialog - system.defaults.LaunchServices.LSQuarantine = false; - - # Reduce Motion - system.defaults.universalaccess.reduceMotion = true; - - # Finder - system.defaults.finder = { - # Finder: show all filename extensions - AppleShowAllExtensions = true; - - # When performing a search, search the current folder by default - FXDefaultSearchScope = "SCcf"; - - # Disable the warning when changing a file extension - FXEnableExtensionChangeWarning = false; - - # Show path breadcrumbs in finder windows. - ShowPathbar = true; - - # Show status bar at bottom of finder windows with item/disk space stats. - ShowStatusBar = true; - - # Change the default finder view. “icnv” = Icon view, “Nlsv” = List view, “clmv” = Column View, “Flwv” = Gallery View - FXPreferredViewStyle = "clmv"; - }; - - # Magic Mouse - system.defaults.magicmouse.MouseButtonMode = "TwoButton"; - - # Dock - system.defaults.dock = { - # Automatically hide and show the Dock - autohide = true; - - # Remove the auto-hiding Dock delay - autohide-delay = 0.0; - - # Remove the animation when hiding/showing the Dock - autohide-time-modifier = 0.0; - - # Speed up Mission Control animations - expose-animation-duration = 0.1; - - # Don’t animate opening applications from the Dock - launchanim = false; - - # Change minimize/maximize window effect - mineffect = "scale"; - - # Minimize windows into their application’s icon - minimize-to-application = true; - - # Don’t automatically rearrange Spaces based on most recent use - mru-spaces = false; - - # Hide indicator lights for open applications in the Dock - show-process-indicators = true; - - # Don’t show recent applications in Dock - show-recents = false; - - # Make Dock icons of hidden applications translucent - showhidden = true; - - # Set the icon size of Dock items to 36 pixels - tilesize = 36; - - # Hot corners - wvous-bl-corner = 4; # bottom left (Desktop) - wvous-br-corner = 10; # bottom right (Put display to sleep) - wvous-tl-corner = 1; # top left (disabled) - wvous-tr-corner = 12; # top right (Mission Control) - - # Apps in the Dock - persistent-apps = [ - "/Applications/Things3.app" - "/System/Applications/Calendar.app" - "/Applications/WezTerm.app" - "/Applications/Arc.app" - "/Applications/Brave\ Browser.app" - "/System/Applications/Messages.app" - "/Applications/iA\ Writer.app" - "/Applications/Obsidian.app" - "/Applications/DEVONthink\ 3.app" - "/Applications/Eagle.app" - "/Applications/Spotify.app" - "/Applications/Anki.app" - "/Applications/Proton\ Pass.app" - "/System/Applications/System\ Settings.app" - ]; - }; - - # Trackpad, mouse, keyboard, Bluetooth accessories, and input - system.defaults.trackpad = { - # Whether to enable trackpad tap to click. - Clicking = true; - - # Whether to enable trackpad right click. - TrackpadRightClick = true; - - # Whether to enable tap-to-drag. - Dragging = true; - }; - - # Finder - system.activationScripts.postActivation.text = '' - # Show the ~/Library folder - chflags nohidden ~/Library - - # Show the /Volumes folder - sudo chflags nohidden /Volumes - ''; - - # Additional system configurations - system.defaults.NSGlobalDomain.AppleKeyboardUIMode = 3; - system.defaults.NSGlobalDomain.AppleFontSmoothing = 2; -} diff --git a/darwin/homebrew-common.nix b/darwin/homebrew-common.nix deleted file mode 100644 index 196b36a..0000000 --- a/darwin/homebrew-common.nix +++ /dev/null @@ -1,138 +0,0 @@ -{ - enable = true; - onActivation.cleanup = "uninstall"; - taps = [ - "dustinblackman/tap" # Oatmeal - "homebrew/bundle" # Bundler for non-Ruby dependencies from Homebrew, Homebrew Cask, Mac App Store, Whalebrew and Visual Studio Code. - "homebrew/services" # Manage background services using the daemon manager launchctl on macOS or systemctl on Linux. - "koekeishiya/formulae" # yabai/skhd - ]; - brews = [ - "asdf" # Extendable version manager with support for Ruby, Node.js, Erlang & more - "cava" # Console-based Audio Visualizer for ALSA - "cmake" # Cross-platform make - "fileicon" # macOS CLI for managing custom icons for files and folders - "gettext" # INFO: Dependency of Neovim - "libiconv" # INFO: Dependency of nixpkgs_fmt - "luajit" # INFO: Dependency of Neovim - "neovim" # TODO: Migrate to nix - "oatmeal" # Terminal UI to chat with large language models (LLM) using backends such as Ollama, and direct integrations with your favourite editor like Neovim! - "pinentry-mac" # Pinentry for GPG - "prettier" # Code formatter for JavaScript, CSS, JSON, GraphQL, Markdown, YAML - "skhd" # Simple hotkey daemon for macOS - "tree-sitter" # INFO: Dependency of Neovim - "urlview" # URL extractor/launcher - "volta" # JavaScript toolchain manager for reproducible environments - "yabai" # Tiling window manager for macOS based on binary space partitioning - "yarn" # JavaScript package manager - ]; - casks = [ - "affinity-designer" # Professional graphic design software - "affinity-photo" # Professional image editing software - "affinity-publisher" # Professional desktop publishing software - "alfred" # Application launcher and productivity software - "angry-ip-scanner" # Network scanner - "anki" # Memory training application. FIX: Broken on nixpks - "arc" # Chromium based browser - "bibdesk" # Edit and manage bibliographies - "blender" # 3D creation suite. FIX: Installation fails with broken Xcode derivation - "blender-benchmark" # 3D performance benchmarking tool - "blurred" # Utility to dim background/inactive content in the screen - "brave-browser" # Web browser focusing on privacy - "calibre" # E-books management software. FIX: Broken on nixpks - "cleanshot" # Screen capturing tool - "color-oracle" # Tool to test for color-blindness - "cryptomator" # Multi-platform client-side cloud file encryption tool - "db-browser-for-sqlite" # Browser for SQLite databases - "deepl" # Trains AIs to understand and translate texts - "devonthink" # Collect, organise, edit and annotate documents - "docker" # App to build and share containerised applications and microservices - "dropbox" # Client for the Dropbox cloud storage service - "figma" # Collaborative team software - "firefox" # Web browser - "firefox@developer-edition" # Web browser - "font-fira-code" - "font-fira-code-nerd-font" - "font-fira-sans" - "font-fira-sans-condensed" - "font-hack-nerd-font" - "font-ia-writer-duo" - "font-ia-writer-mono" - "font-ia-writer-quattro" - "font-monaspace" - "font-noto-emoji" - "font-symbols-only-nerd-font" - "google-japanese-ime" # Japanese input software - "gpg-suite-no-mail" # Tools to protect your files - "hammerspoon" # Desktop automation application - "ia-presenter" # Create presentation slides from a Markdown document - "imageoptim" # Tool to optimise images to a smaller size - "integrity" # Tool to scan a website checking for broken links - "itsycal" # Menu bar calendar - "kaleidoscope@3" # Spot and merge differences in text and image files or folders - "kap" # Open-source screen recorder built with web technology - "karabiner-elements" # Keyboard customisation tool - "languagetool" # Grammar, spelling and style suggestions in all the writing apps - "ledger-live" # Wallet desktop application to maintain multiple cryptocurrencies - "macfuse" # File system integration - "microsoft-outlook" # Email client - "microsoft-teams" # Meet, chat, call, and collaborate in just one place - "notion" # App to write, plan, collaborate, and get organised - "obsidian" # Knowledge base that works on top of a local folder of plain text Markdown files - # FIX: "ogdesign-eagle" # Organise all your reference images in one place - "ollama" # Get up and running with large language models locally - "philips-hue-sync" # Control your smart light system - "pictogram" # Customise and maintain app icons - "proton-drive" # Client for Proton Drive - "proton-mail" # Client for Proton Mail and Proton Calendar - "proton-pass" # Desktop client for Proton Pass - "protonmail-bridge" # Bridges Proton Mail to email clients supporting IMAP and SMTP protocols - "raindropio" # All-in-one bookmark manager - "raycast" # Control your tools with a few keystrokes - "reader" # Save articles to read, highlight key content, and organise notes for review - "secretive" # Store SSH keys in the Secure Enclave - "send-to-kindle" # Tool for sending personal documents to Kindles from Macs - "session" # Onion routing based messenger - "sf-symbols" # Tool that provides consistent, highly configurable symbols for apps - "signal" # Instant messaging application focusing on security - "sonos" # Control your Sonos system - "spotify" # Music streaming service - "the-unarchiver" # Unpacks archive files - "transmit" # File transfer application - "veracrypt" # Disk encryption software focusing on security based on TrueCrypt - "virtualbox@beta" # Virtualizer for x86 and arm64 hardware - "visual-studio-code" # Open-source code editor - "vlc" # Multimedia player - "vlc-webplugin" # Web browser plugin - "wezterm" # GPU-accelerated cross-platform terminal emulator and multiplexer. NOTE: Only installed with Brew because I want to replace the icon - "whatsapp" # Native desktop client for WhatsApp - "wiso-steuer-2024" # Tax declaration for the fiscal year 2023 - "zed" # Multiplayer code editor - ]; - masApps = { - "1-Click Video Converter" = 717545086; # Video converter - "Aiko" = 1672085276; # Audio to text converter with AI - "DaVinci Resolve" = 571213070; # Video Editing - "Day One" = 1055511498; # Journaling - "Deliveries" = 290986013; # Track parcels - "Draw Things" = 6444050820; # Stable Diffusion AI art generation - "Exporter" = 1099120373; # Export from Apple Notes - "Free MP4 Converter" = 693443591; # Video converter - "Goodnotes" = 1444383602; # Note-taking - "Key Codes" = 414568915; # Keyboard key codes - "Kindle" = 302584613; # E-book reader - "Mela" = 1568924476; # Recipe manager - "MindNode" = 1289197285; # Mind mapping - "Numbers" = 409203825; # Spreadsheet - "Pages" = 409201541; # Word processor - "Proton Pass for Safari" = 6502835663; # Password manager browser extension - "Pure Paste" = 1611378436; # Paste plain text by default - "Reeder" = 1529448980; # RSS reader - "Save to Raindrop.io" = 1549370672; # Bookmark manager browser extension - "iA Writer" = 775737590; # Writing - "iFinance 5" = 1500241909; # Banking - "Time Sink" = 404363161; # Time tracking - "Typeface" = 1062679359; # Font manager - "Yoink" = 457622435; # Drag and drop - }; -} diff --git a/darwin/mac-extra.sh b/darwin/mac-extra.sh deleted file mode 100644 index 9da0764..0000000 --- a/darwin/mac-extra.sh +++ /dev/null @@ -1,3 +0,0 @@ -# Icon Settings -/usr/libexec/PlistBuddy -c "Set DesktopViewSettings:IconViewSettings:iconSize 44" ~/Library/Preferences/com.apple.finder.plist -/usr/libexec/PlistBuddy -c "Set DesktopViewSettings:IconViewSettings:gridSpacing 60" ~/Library/Preferences/com.apple.finder.plist diff --git a/flake.lock b/flake.lock deleted file mode 100644 index cbfc081..0000000 --- a/flake.lock +++ /dev/null @@ -1,171 +0,0 @@ -{ - "nodes": { - "cl-nix-lite": { - "locked": { - "lastModified": 1717972076, - "narHash": "sha256-hnZEsDInTcsVSL5LBGDAZegAxVLBus/wiJh+sNM15zU=", - "owner": "hraban", - "repo": "cl-nix-lite", - "rev": "cc920bfb0a6402d3871f470c98d65266126973e4", - "type": "github" - }, - "original": { - "owner": "hraban", - "repo": "cl-nix-lite", - "type": "github" - } - }, - "flake-compat": { - "flake": false, - "locked": { - "lastModified": 1697816753, - "narHash": "sha256-40to80AEIyKCQI0xMKCeF5ePoIKTYgjVVCZeu4CnTxM=", - "owner": "hraban", - "repo": "flake-compat", - "rev": "6025bade1336a36014639bc3f67eacc853dab78f", - "type": "github" - }, - "original": { - "owner": "hraban", - "ref": "fixed-output", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1710146030, - "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", - "type": "github" - }, - "original": { - "id": "flake-utils", - "type": "indirect" - } - }, - "home-manager": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1722462338, - "narHash": "sha256-ss0G8t8RJVDewA3MyqgAlV951cWRK6EtVhVKEZ7J5LU=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "6e090576c4824b16e8759ebca3958c5b09659ee8", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "home-manager", - "type": "github" - } - }, - "mac-app-util": { - "inputs": { - "cl-nix-lite": "cl-nix-lite", - "flake-compat": "flake-compat", - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - }, - "locked": { - "lastModified": 1719942949, - "narHash": "sha256-srSQac7dhXtisqu4XwPGrK8qcmT2rflJJ1mRIV9j0Qk=", - "owner": "hraban", - "repo": "mac-app-util", - "rev": "63f269f737cafb2219ba38780c1ecb1dc24bc4a2", - "type": "github" - }, - "original": { - "owner": "hraban", - "repo": "mac-app-util", - "type": "github" - } - }, - "nix-darwin": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1722500642, - "narHash": "sha256-Vls0TQRdplex1JslnBxEk3M26Q1vR+OSg+sk5rBG4DA=", - "owner": "LnL7", - "repo": "nix-darwin", - "rev": "b47af8628624856ad6853168298f1f96364d92d6", - "type": "github" - }, - "original": { - "owner": "LnL7", - "repo": "nix-darwin", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1717868076, - "narHash": "sha256-c83Y9t815Wa34khrux81j8K8ET94ESmCuwORSKm2bQY=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "cd18e2ae9ab8e2a0a8d715b60c91b54c0ac35ff9", - "type": "github" - }, - "original": { - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "cd18e2ae9ab8e2a0a8d715b60c91b54c0ac35ff9", - "type": "github" - } - }, - "nixpkgs_2": { - "locked": { - "lastModified": 1722421184, - "narHash": "sha256-/DJBI6trCeVnasdjUo9pbnodCLZcFqnVZiLUfqLH4jA=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "9f918d616c5321ad374ae6cb5ea89c9e04bf3e58", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "home-manager": "home-manager", - "mac-app-util": "mac-app-util", - "nix-darwin": "nix-darwin", - "nixpkgs": "nixpkgs_2" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/flake.nix b/flake.nix deleted file mode 100644 index f9daf0d..0000000 --- a/flake.nix +++ /dev/null @@ -1,65 +0,0 @@ -{ - description = "My Darwin and home-manager dotfiles"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; - nix-darwin = { - url = "github:LnL7/nix-darwin"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - home-manager = { - url = "github:nix-community/home-manager"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - mac-app-util.url = "github:hraban/mac-app-util"; - }; - - outputs = { self, nix-darwin, home-manager, nixpkgs, mac-app-util }: - let - mkDarwinConfig = { system, hostname, username }: - let - pkgs = import nixpkgs { - inherit system; - config.allowUnfree = true; - }; - in - nix-darwin.lib.darwinSystem { - inherit system; - specialArgs = { inherit pkgs; }; - modules = [ - ./hosts/${hostname}/configuration.nix - mac-app-util.darwinModules.default - home-manager.darwinModules.home-manager - { - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.verbose = true; - home-manager.users.${username} = { - imports = [ - ./hosts/${hostname}/home.nix - mac-app-util.homeManagerModules.default - ]; - }; - home-manager.extraSpecialArgs = { inherit pkgs; }; - } - ]; - }; - in - { - # Build darwin flake using: - # $ darwin-rebuild switch --flake ~/.dotfiles/.#mac-mini - darwinConfigurations = { - "mac-mini" = mkDarwinConfig { - system = "aarch64-darwin"; - hostname = "mac-mini"; - username = "kogakure"; - }; - "macbook-2023" = mkDarwinConfig { - system = "aarch64-darwin"; - hostname = "macbook-2023"; - username = "stefan.imhoff"; - }; - }; - }; -} - diff --git a/home/ack/default.nix b/home/ack/default.nix deleted file mode 100644 index 9555f1d..0000000 --- a/home/ack/default.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ pkgs, ... }: - -{ - home.file.".ack" = { - source = ./ack; - }; - - home.packages = [ pkgs.ack ]; -} diff --git a/home/ag/default.nix b/home/ag/default.nix deleted file mode 100644 index 357d15e..0000000 --- a/home/ag/default.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ pkgs, ... }: - -{ - home.file.".ag" = { - source = ./ag; - }; - - home.packages = [ pkgs.silver-searcher ]; -} diff --git a/home/asdf/default.nix b/home/asdf/default.nix deleted file mode 100644 index 9ab909a..0000000 --- a/home/asdf/default.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ pkgs, ... }: - -{ - home.file = { - ".asdfrc" = { source = ./asdfrc; }; - ".default-gems" = { source = ./default-gems; }; - ".default-npm-packages" = { source = ./default-npm-packages; }; - ".default-python-packages" = { source = ./default-python-packages; }; - }; -} diff --git a/home/bash/default.nix b/home/bash/default.nix deleted file mode 100644 index 9d44422..0000000 --- a/home/bash/default.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ ... }: - -{ - programs.bash = { - enable = true; - enableCompletion = true; - shellOptions = [ - "histappend" - "checkwinsize" - "extglob" - "globstar" - "checkjobs" - ]; - historyControl = [ - "erasedups" - "ignorespace" - ]; - historyFileSize = 100000; - historySize = 10000; - }; -} diff --git a/home/bat/default.nix b/home/bat/default.nix deleted file mode 100644 index 3bd0fed..0000000 --- a/home/bat/default.nix +++ /dev/null @@ -1,65 +0,0 @@ -{ pkgs, ... }: - -{ - programs.bat = { - enable = true; - config = { - italic-text = "always"; - map-syntax = [ - ".*ignore:Git Ignore" - ".gitconfig.local:Git Config" - "flake.lock:JSON" - ]; - pager = "less -FR"; - style = "numbers,changes,header,grid"; - theme = "catppuccin-mocha"; - wrap = "never"; - }; - extraPackages = with pkgs.bat-extras; [ - batdiff # Diff a file against the current git index, or display the diff between two files. - batgrep # Quickly search through and highlight files using ripgrep. - batman # Read system manual pages (man) using bat as the manual page formatter. - batpipe # A less (and soon bat) preprocessor for viewing more types of files in the terminal. - batwatch # Watch for changes in files or command output, and print them with bat. - prettybat # Pretty-print source code and highlight it with bat. - ]; - themes = { - catppuccin-mocha = { - src = pkgs.fetchFromGitHub { - owner = "catppuccin"; - repo = "bat"; - rev = "d714cc1d358ea51bfc02550dabab693f70cccea0"; - sha256 = "sha256-Q5B4NDrfCIK3UAMs94vdXnR42k4AXCqZz6sRn8bzmf4="; - }; - file = "themes/Catppuccin Mocha.tmTheme"; - }; - catppuccin-frappe = { - src = pkgs.fetchFromGitHub { - owner = "catppuccin"; - repo = "bat"; - rev = "d714cc1d358ea51bfc02550dabab693f70cccea0"; - sha256 = "sha256-Q5B4NDrfCIK3UAMs94vdXnR42k4AXCqZz6sRn8bzmf4="; - }; - file = "themes/Catppuccin Frappe.tmTheme"; - }; - catppuccin-latte = { - src = pkgs.fetchFromGitHub { - owner = "catppuccin"; - repo = "bat"; - rev = "d714cc1d358ea51bfc02550dabab693f70cccea0"; - sha256 = "sha256-Q5B4NDrfCIK3UAMs94vdXnR42k4AXCqZz6sRn8bzmf4="; - }; - file = "themes/Catppuccin Latte.tmTheme"; - }; - catppuccin-macchiato = { - src = pkgs.fetchFromGitHub { - owner = "catppuccin"; - repo = "bat"; - rev = "d714cc1d358ea51bfc02550dabab693f70cccea0"; - sha256 = "sha256-Q5B4NDrfCIK3UAMs94vdXnR42k4AXCqZz6sRn8bzmf4="; - }; - file = "themes/Catppuccin Macchiato.tmTheme"; - }; - }; - }; -} diff --git a/home/ctags/default.nix b/home/ctags/default.nix deleted file mode 100644 index 1c6ba4d..0000000 --- a/home/ctags/default.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ pkgs, ... }: - -{ - home.file.".ctags" = { - source = ./ctags; - }; - - home.packages = [ pkgs.universal-ctags ]; -} diff --git a/home/curl/default.nix b/home/curl/default.nix deleted file mode 100644 index 2b546ee..0000000 --- a/home/curl/default.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ pkgs, ... }: - -{ - home.file = { - ".curlrc" = { source = ./curlrc; }; - }; - - home.packages = [ pkgs.curl ]; -} diff --git a/home/default.nix b/home/default.nix deleted file mode 100644 index 91abcad..0000000 --- a/home/default.nix +++ /dev/null @@ -1,194 +0,0 @@ -{ pkgs, config, lib, home-manager, ... }: - -let - isDarwin = pkgs.stdenv.isDarwin; -in -{ - # https://nix-community.github.io/home-manager/options.html - imports = [ - ./ack - ./ag - ./asdf - ./bash - ./bat - ./ctags - ./curl - ./direnv - ./editorconfig - ./fish - ./fzf - ./gh - ./gh-dash - ./git - ./gnupg - ./hammerspoon - ./karabiner - ./lazydocker - ./lazygit - ./lf - ./lsd - ./neovim - ./oatmeal - ./ripgrep - ./ruby - ./sesh - ./skhd - ./starship - ./tmux - ./wezterm - ./wget - ./yabai - ./yazi - ./zed - ./zoxide - ./zsh - ]; - - config = { - home.stateVersion = "23.05"; - - home.activation = { - # Install terminfo for wezterm - installWeztermProfile = lib.hm.dag.entryAfter [ "writeBoundary" ] '' - tempfile=$(mktemp) \ - && ${pkgs.curl}/bin/curl -o $tempfile https://raw.githubusercontent.com/wez/wezterm/main/termwiz/data/wezterm.terminfo \ - && tic -x -o ~/.terminfo $tempfile \ - && rm $tempfile - ''; - }; - - # Session Variables - home.sessionVariables = { - KEYTIMEOUT = 1; - - # Man - MANPATH = "/usr/local/man:$MANPATH"; - - # Editor - EDITOR = "nvim"; - GIT_EDITOR = "nvim"; - - # Secretive - SSH_AUTH_SOCK = "$HOME/Library/Containers/com.maxgoedjen.Secretive.SecretAgent/Data/socket.ssh"; - - # Volta - VOLTA_HOME = "$HOME/.volta"; - - # Stable Diffusion - # VIRTUAL_ENV = "$HOME/Code/AI/stable-diffusion-webui/venv"; - }; - - # Session Paths - home.sessionPath = [ - # Personal scripts - "$HOME/.dotfiles/private/bin" - - # ASDF - "$HOME/.asdf/shims" - - "/usr/bin" - - # Homebrew - "/opt/homebrew/bin" - "/opt/homebrew/sbin" - - # Misc - "$HOME/.local/bin" - "/usr/local/bin" - "/usr/local/sbin" - # - # Rust - "$HOME/.cargo/bin" - - # Tmux plugins - "$HOME/.tmux/plugins/tmux-nvr/bin" - "$HOME/.tmux/plugins/t-smart-tmux-session-manager/bin" - - # Volta - "$VOLTA_HOME/bin" - ]; - - # Let Home Manager install and manage itself. - programs.home-manager.enable = true; - - # Write into ~/.config - xdg.enable = true; - - # TODO: First migrate all fonts - # fonts.fontconfig.enable = true; - - # The home.packages option allows you to install Nix packages into your - # environment. - home.packages = with pkgs; [ - atuin # Replacement for a shell history which records additional commands context with optional encrypted synchronization between machines - bfg-repo-cleaner # Removes large or troublesome blobs in a git repository like git-filter-branch does, but faster - btop # Monitor of resources - bzip2 # High-quality data compression program - cloc # Program that counts lines of source code - comma # Comma runs software without installing it - coreutils # GNU Core Utilities - darwin.xattr # Display and manipulate extended attributes - diff-so-fancy # Good-looking diffs filter for git - docker # Pack, ship and run any application as a lightweight container - docker-buildx # Docker CLI plugin for extended build capabilities with BuildKit - dust # du + rust = dust. Like du but more intuitive - exiftool # Tool to read, write and edit EXIF meta information - eza # Modern, maintained replacement for ls - fd # Simple, fast and user-friendly alternative to find - ffmpeg_7 # Complete, cross-platform solution to record, convert and stream audio and video - glow # Render markdown on the CLI, with pizzazz! - gource # Software version control visualization tool - grex # Command-line tool for generating regular expressions from user-provided test cases - highlight # Source code highlighting tool - htop # Interactive process viewer - httpie # Command line HTTP client whose goal is to make CLI human-friendly - hyperfine # Command-line benchmarking tool - jless # Command-line pager for JSON data - jq # Lightweight and flexible command-line JSON processor - lynx # Text-mode web browser - monolith # Bundle any web page into a single HTML file - nix-prefetch-git # Script used to obtain source hashes for fetchgit - nixd # Nix language server - nixpacks # App source + Nix packages + Docker = Image Resources - nixpkgs-fmt # Nix code formatter - openai-whisper-cpp # Port of OpenAI's Whisper model in C/C++ - openssl # A cryptographic library that implements the SSL and TLS protocols - phrase-cli # PhraseApp API v2 Command Line Client - pngpaste # Paste image files from clipboard to file on MacOS - pnpm # Fast, disk space efficient package manager for JavaScript - prettierd # Prettier, as a daemon, for improved formatting speed - reattach-to-user-namespace # Wrapper that provides access to the Mac OS X pasteboard service - remarshal # Convert between TOML, YAML and JSON - rsync # Fast incremental file transfer utility - sad # CLI tool to search and replace - silicon # Create beautiful image of your source code - ssh-copy-id # Tool to copy SSH public keys to a remote machine - tldr # Simplified and community-driven man pages - tree # Command to produce a depth indented directory listing - unar # Archive unpacker program - vhs # Tool for generating terminal GIFs with code - watchman # Watches files and takes action when they change - woff2 # Webfont compression reference code - # yarn # Fast, reliable, and secure dependency management for javascript - yt-dlp # Command-line tool to download videos from YouTube.com and other sites (youtube-dl fork) - zoxide # A faster way to navigate your filesystem - - # Server & Databases - mysql84 # World's most popular open source database - nginx # Reverse proxy and lightweight webserver - postgresql # Powerful, open source object-relational database system - sqlite # A self-contained, serverless, zero-configuration, transactional SQL database engine - - # Applications - alt-tab-macos # Windows alt-tab on macOS - appcleaner # Uninstall unwanted apps - audacity # Sound editor with graphical UI - bartender # Take control of your menu bar - iina # Modern media player for macOS - keycastr # Open-source keystroke visualizer - openfortivpn # Client for PPP+SSL VPN tunnel services - sequelpro # MySQL database management for macOS - telegram-desktop # Telegram Desktop messaging app - ]; - }; -} diff --git a/home/direnv/default.nix b/home/direnv/default.nix deleted file mode 100644 index c27cb2c..0000000 --- a/home/direnv/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ ... }: - -{ - programs.direnv = { - enable = true; - nix-direnv.enable = true; - }; -} diff --git a/home/editorconfig/default.nix b/home/editorconfig/default.nix deleted file mode 100644 index 1644bb5..0000000 --- a/home/editorconfig/default.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ ... }: - -{ - editorconfig = { - enable = true; - settings = { - "*" = { - charset = "utf-8"; - end_of_line = "lf"; - indent_style = "tab"; - insert_final_newline = true; - trim_trailing_whitespace = true; - }; - "*.{md,markdown,pandoc}" = { - trim_trailing_whitespace = false; - }; - "Makefile" = { - indent_style = "tab"; - }; - }; - }; -} diff --git a/home/fish/default.nix b/home/fish/default.nix deleted file mode 100644 index 7f3e862..0000000 --- a/home/fish/default.nix +++ /dev/null @@ -1,112 +0,0 @@ -{ lib, pkgs, ... }: - -let - sharedAliases = import ../shared/shared-aliases.nix { inherit lib; }; - - # Function to read a file and return its contents as a string - readFile = file: builtins.readFile (./. + "/functions/${file}"); - - # List of function files - functionFiles = [ - "dataUrl.fish" - "deleteNodeModules.fish" - "encodeBase64.fish" - "fcd.fish" - "fe.fish" - "fhcd.fish" - "fs.fish" - "fwt.fish" - "ghpr.fish" - "server.fish" - "unquarantine.fish" - "update.fish" - ]; - - # Create a set of functions, where each key is the function name (without .fish extension) - # and the value is the contents of the file - fishFunctions = builtins.listToAttrs (map - (file: { - name = lib.removeSuffix ".fish" file; - value = readFile file; - }) - functionFiles - ); -in -{ - programs.fish = { - enable = true; - - # Shell options - interactiveShellInit = '' - # Enable vi-mode key bindings - fish_vi_key_bindings - - # Set environment variables - set -gx TERM wezterm - - # Aliases - alias reload 'exec fish' - ''; - - shellAliases = sharedAliases.shellAliases; - - functions = fishFunctions; - - plugins = [ - { - name = "autopair.fish"; - src = pkgs.fetchFromGitHub { - owner = "jorgebucaran"; - repo = "autopair.fish"; - rev = "4d1752ff5b39819ab58d7337c69220342e9de0e2"; - sha256 = "qt3t1iKRRNuiLWiVoiAYOu+9E7jsyECyIqZJ/oRIT1A="; - }; - } - { - name = "replay.fish"; - src = pkgs.fetchFromGitHub { - owner = "jorgebucaran"; - repo = "replay.fish"; - rev = "d2ecacd3fe7126e822ce8918389f3ad93b14c86c"; - sha256 = "TzQ97h9tBRUg+A7DSKeTBWLQuThicbu19DHMwkmUXdg="; - }; - } - { - name = "bass"; - src = pkgs.fetchFromGitHub { - owner = "edc"; - repo = "bass"; - rev = "79b62958ecf4e87334f24d6743e5766475bcf4d0"; - sha256 = "3d/qL+hovNA4VMWZ0n1L+dSM1lcz7P5CQJyy+/8exTc="; - }; - } - { - name = "z"; - src = pkgs.fetchFromGitHub { - owner = "jethrokuan"; - repo = "z"; - rev = "85f863f20f24faf675827fb00f3a4e15c7838d76"; - sha256 = "+FUBM7CodtZrYKqU542fQD+ZDGrd2438trKM0tIESs0="; - }; - } - { - name = "fish-lf-icons"; - src = pkgs.fetchFromGitHub { - owner = "joshmedeski"; - repo = "fish-lf-icons"; - rev = "d1c47b2088e0ffd95766b61d2455514274865b4f"; - sha256 = "6po/PYvq4t0K8Jq5/t5hXPLn80iyl3Ymx2Whme/20kc="; - }; - } - { - name = "nix-env.fish"; - src = pkgs.fetchFromGitHub { - owner = "lilyball"; - repo = "nix-env.fish"; - rev = "7b65bd228429e852c8fdfa07601159130a818cfa"; - sha256 = "RG/0rfhgq6aEKNZ0XwIqOaZ6K5S4+/Y5EEMnIdtfPhk="; - }; - } - ]; - }; -} diff --git a/home/fish/functions/update.fish b/home/fish/functions/update.fish deleted file mode 100644 index d049489..0000000 --- a/home/fish/functions/update.fish +++ /dev/null @@ -1,25 +0,0 @@ -function update --description "Updating Homebrew, Ruby, Python, Node.js, Neovim, and MacOS" - sudo -v - cd ~/.dotfiles - - # Update Nix flake - nix flake update - - # Add to git - git add . - - # Rebuild nix-darwin - darwin-rebuild switch --flake . - - # Update Homebrew - brew update - brew outdated - brew upgrade - brew cleanup - - # Clean up Nix - nix-collect-garbage -d - - # Update Neovim - nvim --headless "+Lazy! sync" +qa -end diff --git a/home/fzf/default.nix b/home/fzf/default.nix deleted file mode 100644 index 36bd5e6..0000000 --- a/home/fzf/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ ... }: - -let - fdOptions = "--follow --exclude .git --exclude node_modules"; -in -{ - programs.fzf = { - enable = true; - enableBashIntegration = true; - enableZshIntegration = true; - enableFishIntegration = true; - - defaultCommand = "git ls-files --cached --others --exclude-standard | fd --hidden --type f --type l ${fdOptions}"; - defaultOptions = [ "--no-height" ]; - - changeDirWidgetCommand = "fd --type d ${fdOptions} --color=never --hidden"; - changeDirWidgetOptions = [ "--preview 'tree -C {} | head -50'" ]; - - fileWidgetCommand = "git ls-files --cached --others --exclude-standard | fd --hidden --type f --type l ${fdOptions}"; - fileWidgetOptions = [ - "--preview 'bat --color=always --style=numbers {}'" - "--bind shift-up:preview-page-up,shift-down:preview-page-down" - ]; - - historyWidgetOptions = [ "--reverse" ]; - - tmux.enableShellIntegration = true; - tmux.shellIntegrationOptions = [ "-p" ]; - }; -} diff --git a/home/gh-dash/default.nix b/home/gh-dash/default.nix deleted file mode 100644 index 586a7c8..0000000 --- a/home/gh-dash/default.nix +++ /dev/null @@ -1,84 +0,0 @@ -{ ... }: - -{ - programs.gh-dash = { - enable = true; - settings = { - prSections = [ - { - title = "My Pull Requests"; - filters = "is:open author:@me"; - } - { - title = "Needs My Review"; - filters = "is:open review-requested:@me"; - } - { - title = "Involved"; - filters = "is:open involves:@me -author:@me"; - } - ]; - issuesSections = [ - { - title = "My Issues"; - filters = "is:open author:@me"; - } - { - title = "Assigned"; - filters = "is:open assignee:@me"; - } - { - title = "Involved"; - filters = "is:open involves:@me -author:@me"; - } - ]; - defaults = { - preview = { - open = true; - width = 50; - }; - prsLimit = 20; - issuesLimit = 20; - view = "prs"; - layout = { - prs = { - updatedAt.width = 7; - repo.width = 15; - author.width = 15; - assignees = { - width = 20; - hidden = true; - }; - base = { - width = 15; - hidden = true; - }; - lines.width = 16; - }; - issues = { - updatedAt.width = 7; - repo.width = 15; - creator.width = 10; - assignees = { - width = 20; - hidden = true; - }; - }; - }; - refetchIntervalMinutes = 30; - }; - keybindings = { - issues = [ ]; - prs = [ ]; - }; - repoPaths = { - "kogakure/*" = "~/Code/GitHub/*"; - "work/*" = "~/Code/XING/*"; - }; - theme = { - ui.table.showSeparator = true; - }; - pager.diff = ""; - }; - }; -} diff --git a/home/gh/default.nix b/home/gh/default.nix deleted file mode 100644 index c28d02a..0000000 --- a/home/gh/default.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ pkgs, ... }: - -{ - programs.gh = { - enable = true; - extensions = with pkgs; [ - gh-copilot # Ask for assistance right in your terminal - gh-dash # Display a dashboard with pull requests and issues - gh-eco # Explore the ecosystem - gh-f # Ultimate FZF extension - gh-markdown-preview # Preview Markdown looking like on GitHub - gh-notify # Display GitHub notifications - gh-poi # Safely clean up your local branches - gh-s # Search github repositories interactively - ]; - settings = { - git_protocol = "ssh"; - prompt = "enabled"; - aliases = { - co = "pr checkout"; - me = "pr list --assignee @me"; - pv = "pr view"; - xds = "pr list --label='team: design-system'"; - }; - }; - }; -} diff --git a/home/git/default.nix b/home/git/default.nix deleted file mode 100644 index be35cee..0000000 --- a/home/git/default.nix +++ /dev/null @@ -1,185 +0,0 @@ -{ pkgs, ... }: - -{ - programs.git = { - enable = true; - delta.enable = true; - aliases = { - st = "status"; - ci = "commit"; - co = "checkout"; - br = "branch"; - rb = "rebase"; - cp = "cherry-pick"; - dt = "difftool"; - hist = "log --color --graph --decorate --abbrev-commit --date=short --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(blue)[%an]%Creset' --abbrev-commit --"; - ls = "log --pretty=format:\"%C(yellow)%h%Cred%d\\ %Creset%s%Cblue\\ [%cn]\" --decorate"; - "local-branches" = "!git branch -vv | cut -c 3- | awk '$3 !~/\\[/ { print $1 }'"; - stats = "shortlog -sn --all --no-merges"; - today = "log --since=00:00:00 --all --no-merges --oneline"; - prune = "fetch --prune"; - undo = "reset --soft HEAD^"; - "stash-all" = "stash save --include-untracked"; - "app-status" = "!git remote update >/dev/null && git --no-pager log origin/production..origin/master --pretty=oneline >&2 | pbcopy"; - unstage = "reset HEAD --"; - merged = "branch --merged"; - unmerged = "branch --no-merge"; - branches = "for-each-ref --sort=-committerdate --format=\"%(color:blue)%(authordate:relative)\t%(color:red)%(authorname)\t%(color:white)%(color:bold)%(refname:short)\" refs/remotes"; - ignored = "ls-files --others --directory"; - # Assume workflow - assume = "update-index --assume-unchanged"; - unassume = "update-index --no-assume-unchanged"; - assumed = "!git ls-files -v | grep ^h | cut -c 3-"; - unassumeall = "!git assumed | xargs git update-index --no-assume-unchanged"; - assumeall = "!git st -s | awk {'print $2'} | xargs git assume"; - # Rebase workflow - mainbranch = "!git remote show origin | sed -n '/HEAD branch/s/.*: //p'"; - synced = "!git pull origin $(git mainbranch) --rebase"; - update = "!git pull origin $(git rev-parse --abbrev-ref HEAD) --rebase"; - squash = "!git rebase -v -i $(git mainbranch)"; - publish = "push origin HEAD --force-with-lease"; - pub = "publish"; - # GitHub - hub = "!gh repo view --web"; - }; - ignores = [ - "*.lnk" - "*.pyc" - "*.pyo" - "*.session" - "*.sw[nop]" - ".BridgeSort" - ".DS_Store" - "._*" - ".agignore" - ".bundle/" - "m~" - "tags" - ".worktrees" - ".tool-versions" - ]; - lfs.enable = true; - includes = [ - { path = "~/.gitconfig.local"; } - ]; - extraConfig = { - user = { - useConfigOnly = true; - }; - core = { - editor = "code --wait"; - legacyheaders = false; - }; - help = { - autocorrect = 1; - }; - delta = { - navigate = true; - light = false; - line-numbers = true; - side-by-side = true; - syntax-theme = "Dracula"; - }; - add = { - interactive = { - useBuildtin = true; - }; - }; - apply = { - whitespace = "fix"; - }; - color = { - status = "auto"; - diff = "auto"; - branch = "auto"; - interactive = "auto"; - ui = 1; - }; - commit = { - gpgsign = true; - }; - branch = { - autosetupmerge = true; - sort = "-authordate"; - }; - push = { - default = "upstream"; - followTags = true; - autoSetupRemote = true; - }; - pull = { - ff = "only"; - }; - fetch = { - prune = true; - fsckobjects = false; - }; - rebase = { - autosquash = true; - }; - status = { - showUntrackedFiles = "all"; - }; - diff = { - tool = "Kaleidoscope"; - algorithm = "patience"; - colorMoved = "default"; - }; - difftool = { - prompt = false; - Kaleidoscope.cmd = "ksdiff --partial-changeset --relative-path \"$MERGED\" -- \"$LOCAL\" \"$REMOTE\""; - }; - merge = { - conflictstyle = "diff3"; - tool = "Kaleidoscope"; - }; - mergetool = { - prompt = false; - keepBackup = false; - Kaleidoscope = { - cmd = "ksdiff --merge --output \"$MERGED\" --base \"$BASE\" -- \"$LOCAL\" --snapshot \"$REMOTE\" --snapshot"; - trustexitcode = true; - trustExitCode = true; - }; - nvim.cmd = "nvim -f -c \"Gdiffsplit!\" \"$MERGED\""; - code = { - cmd = "\"code $MERGED\""; - keepBackup = false; - trustexitcode = true; - }; - }; - rerere.enabled = true; - transfer = { - fsckObjects = true; - }; - i18n = { - commitencoding = "UTF-8"; - logoutputencoding = "UTF-8"; - }; - repack = { - usedeltabaseoffset = true; - }; - "filter \"lfs\"" = { - required = true; - smudge = "git-lfs smudge -- %f"; - process = "git-lfs filter-process"; - clean = "git-lfs clean -- %f"; - }; - web.browser = "open"; - hub.host = "source.xing.com"; - }; - }; - - home.packages = with pkgs; [ - commitizen # Tool to create committing rules for projects, auto bump versions, and generate changelogs - delta # Syntax-highlighting pager for git - gh # GitHub CLI tool - git-crypt # Transparent file encryption in git - git-extras # GIT utilities -- repo summary, repl, changelog population, author commit percentages and more - git-fixup # Fighting the copy-paste element of your rebase workflow - git-lfs # Git extension for versioning large files - git-quick-stats # Simple and efficient way to access various statistics in git repository - gitleaks # Scan git repos (or files) for secrets - soft-serve # Tasty, self-hosted Git server for the command line - ]; -} diff --git a/home/gnupg/default.nix b/home/gnupg/default.nix deleted file mode 100644 index 53f41d8..0000000 --- a/home/gnupg/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -# TODO: Move public/private keys into nix -{ pkgs, ... }: - -{ - programs.gpg = { - enable = true; - settings = { - auto-key-retrieve = true; - no-emit-version = true; - use-agent = true; - default-key = "F0CF1CF481C2E3AA0F806A378BD4525D7A7253E8"; - }; - - # GPG agent configuration - # These settings go into gpg-agent.conf - # NOTE: pinentry-program is set differently for macOS (see below) - scdaemonSettings = { }; - }; - - # For macOS, we need to set the pinentry-program separately - home.file.".gnupg/gpg-agent.conf".text = '' - pinentry-program ${pkgs.pinentry_mac}/Applications/pinentry-mac.app/Contents/MacOS/pinentry-mac - default-cache-ttl 600 - max-cache-ttl 7200 - ''; - - home.packages = with pkgs; [ - pinentry_mac - ]; -} diff --git a/home/hammerspoon/default.nix b/home/hammerspoon/default.nix deleted file mode 100644 index 899708b..0000000 --- a/home/hammerspoon/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ ... }: - -{ - home.file.".hammerspoon" = { - source = ./hammerspoon; - }; -} diff --git a/home/karabiner/default.nix b/home/karabiner/default.nix deleted file mode 100644 index a11d618..0000000 --- a/home/karabiner/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ pkgs, ... }: - -{ - home.file.".config/karabiner/" = { - source = ./karabiner; - }; -} diff --git a/home/lazydocker/default.nix b/home/lazydocker/default.nix deleted file mode 100644 index 05aacef..0000000 --- a/home/lazydocker/default.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ pkgs, ... }: - -{ - home.file.".config/lazydocker/config.yml" = { - source = ./lazydocker.yml; - }; - - home.packages = [ pkgs.lazydocker ]; -} diff --git a/home/lazygit/default.nix b/home/lazygit/default.nix deleted file mode 100644 index db43b41..0000000 --- a/home/lazygit/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ ... }: - -{ - programs.lazygit = { - enable = true; - settings = { - git = { - overrideGpg = true; - paging = { - colorArg = "always"; - pager = "delta --dark --paging=never syntax-theme=Dracula"; - }; - }; - customCommands = [ - { - key = "C"; - command = "git cz c"; - description = "commit with commitizen"; - context = "files"; - loadingText = "opening commitizen commit tool"; - subprocess = true; - } - { - key = "W"; - command = "git commit --no-verify"; - context = "global"; - subprocess = true; - } - ]; - }; - }; -} diff --git a/home/lf/default.nix b/home/lf/default.nix deleted file mode 100644 index 045c86f..0000000 --- a/home/lf/default.nix +++ /dev/null @@ -1,143 +0,0 @@ -{ pkgs, ... }: - -{ - programs.lf = - { - enable = true; - settings = { - number = true; - icons = true; - promptfmt = "\033[34;1m%d\033[0m\033[1m%f\033[0m"; - shell = "bash"; - shellopts = "-eu"; - ifs = "\\n"; - scrolloff = 10; - }; - keybindings = { - "" = ":fzf_jump"; - "" = "delete"; - "" = "shell"; - O = "$mimeopen --ask $f"; - X = "!$f"; - f = "$nvim $(fzf)"; - gb = ":git_branch"; - gl = "$\{{clear; git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit}}"; - gp = "$\{{clear; git pull --rebase || true; echo 'press ENTER'; read ENTER}}"; - gs = "$\{{clear; git status; echo 'press ENTER'; read ENTER}}"; - o = "&mimeopen $f"; - x = "$$f"; - }; - previewer = { - source = pkgs.writeShellScript "pv.sh" '' - #!/usr/bin/env bash - - case "$1" in - *) bat --force-colorization --paging=never --style=changes,numbers \ - --terminal-width $(($2 - 3)) "$1" && false ;; - esac - ''; - }; - commands = { - delete = '' - ''${{ - set -f - printf "$fx\n" - printf "delete? [y/n]" - read ans - [ $ans = "y" ] && rm -rf $fx - }} - ''; - # extract the current file with the right command - extract = '' - ''${{ - set -f - case $f in - *.tar.bz|*.tar.bz2|*.tbz|*.tbz2) tar xjvf $f;; - *.tar.gz|*.tgz) tar xzvf $f;; - *.tar.xz|*.txz) tar xJvf $f;; - *.zip) unzip $f;; - *.rar) unrar x $f;; - *.7z) 7z x $f;; - esac - }} - ''; - # compress current file or selected files with tar and gunzip - tar = '' - ''${{ - set -f - mkdir $1 - cp -r $fx $1 - tar czf $1.tar.gz $1 - rm -rf $1 - }} - ''; - # define a custom 'open' command - # This command is called when current file is not a directory. You may want to - # use either file extensions and/or mime types here. Below uses an editor for - # text files and a file opener for the rest. - open = '' - ''${{ - case $(file --mime-type $f -b) in - text/*) $EDITOR $fx;; - *) for f in $fx; do setsid $OPENER $f > /dev/null 2> /dev/null & done;; - esac - }} - ''; - # compress current file or selected files with zip - zip = '' - ''${{ - set -f - mkdir $1 - cp -r $fx $1 - zip -r $1.zip $1 - rm -rf $1 - }} - ''; - fzf_jump = '' - ''${{ - res="$(find . -maxdepth 1 | fzf-tmux -p --reverse --header='Jump to location' | sed 's/\\/\\\\/g;s/"/\\"/g')" - if [ -d "$res" ] ; then - cmd="cd" - elif [ -f "$res" ] ; then - cmd="select" - else - exit 0 - fi - lf -remote "send $id $cmd \"$res\"" - }} - ''; - z = '' - %{{ - result="$(zoxide query --exclude "$PWD" -- "$@")" - lf -remote "send $id cd \"$result\"" - }} - ''; - git_branch = '' - ''${{ - git branch | fzf-tmux -p --reverse | xargs git checkout - pwd_shell=$(pwd) - lf -remote "send $id updir" - lf -remote "send $id cd \"$pwd_shell\"" - }} - ''; - }; - extraConfig = ''''; - }; - - home.packages = with pkgs; [ - bat - fzf - zoxide # z - git - gnutar # tar - unzip - unrar - p7zip # 7z - file # for mime-type detection - findutils # find - gnused # sed - xdg-utils - shared-mime-info - tmux - ]; -} diff --git a/home/lsd/default.nix b/home/lsd/default.nix deleted file mode 100644 index 6669f38..0000000 --- a/home/lsd/default.nix +++ /dev/null @@ -1,90 +0,0 @@ -{ ... }: - -{ - programs.lsd = - { - enable = true; - enableAliases = false; - settings = { - classic = false; - blocks = [ - "permission" - "user" - "group" - "size" - "date" - "name" - ]; - date = "date"; - dereference = false; - icons = { - when = "auto"; - theme = "fancy"; - separator = " "; - }; - indicators = false; - layout = "grid"; - recursion = { - enabled = false; - }; - size = "default"; - permission = "rwx"; - sorting = { - column = "name"; - reverse = false; - dir-grouping = "none"; - }; - no-symlink = false; - total-size = false; - hyperlink = "never"; - symlink-arrow = "⇒"; - header = false; - }; - colors = { - user = 230; - group = 187; - permission = { - read = "dark_green"; - write = "dark_yellow"; - exec = "dark_red"; - exec-sticky = 5; - no-access = 245; - octal = 6; - acl = "dark_cyan"; - context = "cyan"; - }; - date = { - hour-old = 40; - day-old = 42; - older = 36; - }; - size = { - none = 245; - small = 229; - medium = 216; - large = 172; - }; - inode = { - valid = 13; - invalid = 245; - }; - links = { - valid = 13; - invalid = 245; - }; - tree-edge = 245; - git-status = { - default = 245; - unmodified = 245; - ignored = 245; - new-in-index = "dark_green"; - new-in-workdir = "dark_green"; - typechange = "dark_yellow"; - deleted = "dark_red"; - renamed = "dark_green"; - modified = "dark_yellow"; - conflicted = "dark_red"; - }; - }; - }; -} diff --git a/home/neovim/default.nix b/home/neovim/default.nix deleted file mode 100644 index f32b849..0000000 --- a/home/neovim/default.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ config, lib, pkgs, ... }: - -{ - xdg.configFile.nvim = { - source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/.dotfiles/home/neovim/nvim"; - recursive = true; - }; - - home.packages = [ pkgs.neovim ]; -} diff --git a/home/neovim/nvim/lua/plugins/activitywatch.lua b/home/neovim/nvim/lua/plugins/activitywatch.lua deleted file mode 100644 index b43e979..0000000 --- a/home/neovim/nvim/lua/plugins/activitywatch.lua +++ /dev/null @@ -1,6 +0,0 @@ --- ActivityWatch --- https://github.com/ActivityWatch/aw-watcher-vim -return { - "ActivityWatch/aw-watcher-vim", - event = "VeryLazy", -} diff --git a/home/oatmeal/default.nix b/home/oatmeal/default.nix deleted file mode 100644 index 7374ba3..0000000 --- a/home/oatmeal/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ ... }: - -{ - home.file.".config/oatmeal/config.toml" = { - source = ./config.toml; - }; -} diff --git a/home/ripgrep/default.nix b/home/ripgrep/default.nix deleted file mode 100644 index 8127716..0000000 --- a/home/ripgrep/default.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ pkgs, ... }: - -{ - home.file.".config/ripgrep/ripgreprc" = { - source = ./ripgreprc; - }; - - programs.ripgrep = { - enable = true; - }; - - home.packages = [ pkgs.ripgrep ]; -} diff --git a/home/ruby/default.nix b/home/ruby/default.nix deleted file mode 100644 index 590d0e6..0000000 --- a/home/ruby/default.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ pkgs, ... }: - -{ - home.file.".gemrc" = { - source = ./gemrc; - }; - - home.packages = [ pkgs.ruby ]; -} diff --git a/home/sesh/default.nix b/home/sesh/default.nix deleted file mode 100644 index 28f5b01..0000000 --- a/home/sesh/default.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ pkgs, ... }: - -{ - home.file = { - ".config/sesh/sesh.toml" = { source = ./sesh.toml; }; - ".config/sesh/scripts/node_dev" = { source = ./scripts/node_dev; }; - ".config/sesh/scripts/open_files" = { source = ./scripts/open_files; }; - }; - - home.packages = [ pkgs.sesh ]; -} diff --git a/home/shared/shared-aliases.nix b/home/shared/shared-aliases.nix deleted file mode 100644 index c4371bb..0000000 --- a/home/shared/shared-aliases.nix +++ /dev/null @@ -1,98 +0,0 @@ -{ lib, ... }: - -let - mkAliases = lib.mapAttrs (name: value: lib.mkForce value); -in -{ - shellAliases = mkAliases { - # Folders/Lists - "..." = "cd ../.."; - ".." = "cd .."; - "cd.." = "cd .."; - ls = "eza --git --group-directories-first --icons"; - ll = "eza -l --git --group-directories-first --icons"; - lt = "eza --git --group-directories-first --icons --tree"; - lla = "ll -a"; - mkdir = "mkdir -p"; - pn = "pnpm"; - px = "pnpx"; - - # Git - ga = "git add"; - gb = "git branch"; - gba = "git branch -a"; - gc = "git commit -v"; - gca = "git commit -v -a"; - gcam = "git commit --amend"; - gcan = "git commit --amend --no-edit"; - gd = "git diff -- . ':(exclude)yarn.lock'"; - gdc = "git diff --cached"; - gdh = "git diff head"; - gdt = "git difftool"; - gfa = "git fetch --all"; - gg = "git log"; - ghi = "git hist"; - gl = "git pull"; - glr = "git pull --rebase"; - glu = "git config user.name 'Stefan Imhoff' && git config user.email 'gpg@kogakure.8shield.net' && git config user.signingkey '7A7253E8!'"; - glx = "git config user.name 'Stefan Imhoff' && git config user.email 'stefan.imhoff@xing.com' && git config user.signingkey '73C3E2E3!'"; - gmb = "git merge-base master HEAD"; - gp = "git push"; - gpf = "git push --force-with-lease"; - gpp = "PATCHNAME=`git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'`-`date '+%Y-%m-%d-%H%M.patch'`; git diff --full-index master > ../patches/$PATCHNAME"; - gpu = "git push -u origin HEAD"; - gpv = "git push --no-verify"; - grb = "git rebase master"; - grbc = "git rebase --continue"; - grbi = "git rebase -i "; - grbs = "git rebase --skip"; - gru = "git remote update"; - gsb = "git show-branch"; - gsl = "git submodule foreach git pull"; - gst = "git status -sb"; - gsu = "git submodule update"; - gu = "git up"; - gw = "git whatchanged"; - gwp = "git whatchanged -p"; - gwa = "git worktree add"; # - gwl = "git worktree list"; - gwr = "git worktree remove"; # - lg = "lazygit"; - - # Vim - v = "vim"; - vim = "nvim"; - - # Tmux - t = "tmux"; - ta = "tmux attach"; - - # Nix - nxs = "darwin-rebuild switch --flake ~/.dotfiles"; - - # Bat - cat = "bat"; - - # TLDR - tldrf = "tldr --list --single-column | fzf --preview \"tldr --color=always {1}\" --preview-window=right,70% | xargs tldr"; - - # Can't remember the fork name - youtube-dl = "yt-dlp"; - - # Dotfiles folder - dotfiles = "cd ~/.dotfiles"; - - # iCloud - icloud = "cd ~/Library/Mobile\\ Documents/com~apple~CloudDocs"; - - # Recursively delete `.DS_Store` files - cleanup = "find . -type f -name '*.DS_Store' -ls -delete"; - - # Clear the screen - c = "clear"; - - # Empty the Trash on all mounted volumes and the main HDD - # Also, clear Apple's System Logs to improve shell startup speed - emptytrash = "sudo rm -rfv /Volumes/*/.Trashes; sudo rm -rfv ~/.Trash; sudo rm -rfv /private/var/log/asl/*.asl"; - }; -} diff --git a/home/skhd/default.nix b/home/skhd/default.nix deleted file mode 100644 index b9072f2..0000000 --- a/home/skhd/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ ... }: - -{ - home.file = { - ".config/skhd/skhdrc" = { source = ./skhdrc; }; - }; -} diff --git a/home/starship/default.nix b/home/starship/default.nix deleted file mode 100644 index 7414667..0000000 --- a/home/starship/default.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ ... }: - -{ - programs.starship = { - enable = true; - enableBashIntegration = true; - enableZshIntegration = true; - enableFishIntegration = true; - settings = { - add_newline = false; - command_timeout = 2000; - battery = { - disabled = true; - display = [ - { - threshold = 10; - style = "bold red"; - } - { - threshold = 30; - style = "bold yellow"; - } - ]; - }; - }; - }; -} diff --git a/home/tmux/default.nix b/home/tmux/default.nix deleted file mode 100644 index b99f397..0000000 --- a/home/tmux/default.nix +++ /dev/null @@ -1,82 +0,0 @@ -{ pkgs, ... }: - -let - # TODO: Wait for plugin in https://github.com/NixOS/nixpkgs/blob/maser/pkgs/misc/tmux-plugins/default.nix or add it with a PR - tmux-nerd-font-window-name = pkgs.tmuxPlugins.mkTmuxPlugin { - pluginName = "tmux-nerd-font-window-name"; - version = "v2.1.1"; - src = pkgs.fetchFromGitHub { - owner = "joshmedeski"; - repo = "tmux-nerd-font-window-name"; - rev = "57961cb0a99b76f20e02639d398c973d81971d05"; - sha256 = "8P4jFEkcJn/JbdRAC5PCrLAGTJwFxCknllOjkD+PK9w="; - }; - # INFO: Needed rename, because nix uses underscores - postInstall = '' - mv $target/tmux-nerd-font-window-name.tmux $target/tmux_nerd_font_window_name.tmux - ''; - }; -in -{ - home.file = { - ".config/tmux/tmux-nerd-font-window-name.yml" = { - source = ./tmux-nerd-font-window-name.yml; - }; - ".gitmux.conf" = { source = ./gitmux.conf; }; - }; - - programs.tmux = { - enable = true; - terminal = "xterm"; - baseIndex = 1; - escapeTime = 0; - historyLimit = 50000; - keyMode = "vi"; - mouse = true; - customPaneNavigationAndResize = true; - sensibleOnTop = false; - extraConfig = builtins.readFile ./tmux.conf; - plugins = with pkgs.tmuxPlugins; [ - sensible - battery - copycat - logging - open - pain-control - sessionist - urlview - yank - { - plugin = resurrect; - extraConfig = '' - set -g @resurrect-capture-pane-contents 'on' - set -g @resurrect-strategy-nvim 'session' - ''; - } - { - plugin = continuum; - extraConfig = '' - set -g @continuum-restore 'on' - set -g @continuum-save-interval '10' # Save every 10 minutes - ''; - } - { - plugin = jump; - extraConfig = "set -g @jump-key 's'"; - } - better-mouse-mode - vim-tmux-navigator - { - plugin = tmux-nerd-font-window-name; - extraConfig = "set -g @tmux-nerd-font-window-name-show-name true"; - } - ]; - }; - - home.packages = with pkgs; [ - gitmux - # Dependencies of joshmedeski/tmux-nerd-font-window-name - yq-go - nodePackages.bash-language-server - ]; -} diff --git a/home/wezterm/default.nix b/home/wezterm/default.nix deleted file mode 100644 index 66a1d5c..0000000 --- a/home/wezterm/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ ... }: - -{ - programs.wezterm = { - enable = true; - extraConfig = builtins.readFile ./wezterm.lua; - }; -} diff --git a/home/wget/default.nix b/home/wget/default.nix deleted file mode 100644 index 69df319..0000000 --- a/home/wget/default.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ pkgs, ... }: - -{ - home.file = { - ".wget" = { source = ./wget; }; - }; - - home.packages = [ pkgs.wget ]; -} diff --git a/home/yabai/default.nix b/home/yabai/default.nix deleted file mode 100644 index cc1f020..0000000 --- a/home/yabai/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ ... }: - -{ - home.file = { - ".config/yabai/yabairc" = { source = ./yabairc; }; - }; -} diff --git a/home/yazi/default.nix b/home/yazi/default.nix deleted file mode 100644 index 0644692..0000000 --- a/home/yazi/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ ... }: - -{ - programs.yazi = { - enable = true; - enableBashIntegration = true; - enableFishIntegration = true; - enableZshIntegration = true; - settings = { - log = { - enabled = false; - }; - manager = { - ratio = [ 1 4 3 ]; - show_hidden = false; - sort_by = "natural"; - sort_dir_first = true; - sort_sensitive = false; - sort_reverse = false; - show_symlink = true; - }; - opener = { - edit = [ - { - run = "nvim \"$@\""; - block = true; - } - ]; - }; - }; - }; -} diff --git a/home/zed/default.nix b/home/zed/default.nix deleted file mode 100644 index bcd8764..0000000 --- a/home/zed/default.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ pkgs, ... }: - -{ - home.file = { - ".config/zed/settings.json" = { source = ./settings.json; }; - }; - - # FIX: Currently broken, installed with Homebrew - # home.packages = [ pkgs.zed-editor ]; -} diff --git a/home/zoxide/default.nix b/home/zoxide/default.nix deleted file mode 100644 index 66a091b..0000000 --- a/home/zoxide/default.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ ... }: - -{ - programs.zoxide = { - enable = true; - enableBashIntegration = true; - enableZshIntegration = true; - enableFishIntegration = true; - }; -} diff --git a/home/zsh/_cht b/home/zsh/_cht deleted file mode 100644 index e1a4230..0000000 --- a/home/zsh/_cht +++ /dev/null @@ -1,21 +0,0 @@ -#compdef cht.sh - -__CHTSH_LANGS=($(curl -s cheat.sh/:list)) -_arguments -C \ - '--help[show this help message and exit]: :->noargs' \ - '--shell[enter shell repl]: :->noargs' \ - '1:Cheat Sheet:->lang' \ - '*::: :->noargs' && return 0 - -if [[ CURRENT -ge 1 ]]; then - case $state in - noargs) - _message "nothing to complete";; - lang) - compadd -X "Cheat Sheets" ${__CHTSH_LANGS[@]};; - *) - _message "Unknown state, error in autocomplete";; - esac - - return -fi diff --git a/home/zsh/default.nix b/home/zsh/default.nix deleted file mode 100644 index a8ec84f..0000000 --- a/home/zsh/default.nix +++ /dev/null @@ -1,74 +0,0 @@ -{ lib, pkgs, ... }: - -let - chtCompletionScript = pkgs.writeTextFile { - name = "_cht"; - text = builtins.readFile ./_cht; - destination = "/share/zsh/site-functions/_cht"; - }; - sharedAliases = import ../shared/shared-aliases.nix { inherit lib; }; -in -{ - programs.zsh = { - enable = true; - enableCompletion = true; - autosuggestion.enable = true; - syntaxHighlighting.enable = true; - shellAliases = sharedAliases.shellAliases; - initExtra = builtins.readFile ./zshrc.sh; - - plugins = [ - { - name = "cht-completion"; - src = chtCompletionScript; - } - ]; - - antidote = { - enable = true; - plugins = [ - "ohmyzsh/ohmyzsh path:plugins/brew" - "ohmyzsh/ohmyzsh path:plugins/bundler" - "ohmyzsh/ohmyzsh path:plugins/colored-man-pages" - "ohmyzsh/ohmyzsh path:plugins/colorize" - "ohmyzsh/ohmyzsh path:plugins/dotenv" - "ohmyzsh/ohmyzsh path:plugins/extract" - "ohmyzsh/ohmyzsh path:plugins/fzf" - "ohmyzsh/ohmyzsh path:plugins/gem" - "ohmyzsh/ohmyzsh path:plugins/git" - "ohmyzsh/ohmyzsh path:plugins/git-extras" - "ohmyzsh/ohmyzsh path:plugins/gitignore" - "ohmyzsh/ohmyzsh path:plugins/gulp" - "ohmyzsh/ohmyzsh path:plugins/history-substring-search" - "ohmyzsh/ohmyzsh path:plugins/jira" - "ohmyzsh/ohmyzsh path:plugins/man" - "ohmyzsh/ohmyzsh path:plugins/node" - "ohmyzsh/ohmyzsh path:plugins/npm" - "ohmyzsh/ohmyzsh path:plugins/pip" - "ohmyzsh/ohmyzsh path:plugins/pyenv" - "ohmyzsh/ohmyzsh path:plugins/python" - "ohmyzsh/ohmyzsh path:plugins/rsync" - "ohmyzsh/ohmyzsh path:plugins/ssh-agent" - "ohmyzsh/ohmyzsh path:plugins/sudo" - "ohmyzsh/ohmyzsh path:plugins/tmux" - # "ohmyzsh/ohmyzsh path:plugins/tmux-cssh" - "ohmyzsh/ohmyzsh path:plugins/tmuxinator" - "ohmyzsh/ohmyzsh path:plugins/vagrant" - "ohmyzsh/ohmyzsh path:plugins/virtualenv" - "ohmyzsh/ohmyzsh path:plugins/yarn" - "ohmyzsh/ohmyzsh path:plugins/z" - "ohmyzsh/ohmyzsh path:plugins/zsh-interactive-cd" - "zsh-users/zsh-autosuggestions" - "zsh-users/zsh-syntax-highlighting" - ]; - }; - }; - - home.packages = [ chtCompletionScript ]; - - home.activation = { - zlcompile = lib.hm.dag.entryAfter [ "writeBoundary" ] '' - $DRY_RUN_CMD ${pkgs.zsh}/bin/zsh -c "for f in $HOME/.zshrc $HOME/.zshenv; do zcompile -R -- \$f.zwc \$f; done" - ''; - }; -} diff --git a/home/zsh/zshrc.sh b/home/zsh/zshrc.sh deleted file mode 100644 index d083fca..0000000 --- a/home/zsh/zshrc.sh +++ /dev/null @@ -1,184 +0,0 @@ -CASE_SENSITIVE="true" # Case-sensitive completion -DISABLE_AUTO_TITLE="true" # Disable auto-setting terminal title -COMPLETION_WAITING_DOTS="true" -ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=7,bg=bold,underline" - -# Aliases -alias reload="source $HOME/.zshrc" - -# Bindkey -bindkey -v -bindkey -M viins '^r' fzf-history-widget # (r)everse history search -bindkey -M viins '^f' fzf-file-widget # (f)ile / (t) -bindkey -M viins '^z' fzf-cd-widget # (z) jump - -# TMUX -if [ -n "$TMUX" ]; then - eval "$(tmux show-environment -s NVIM_LISTEN_ADDRESS 2>/dev/null)" -else - export NVIM_LISTEN_ADDRESS=/tmp/nvimsocket -fi - -# Set ZSH_CACHE_DIR and ensure it exists -export ZSH_CACHE_DIR="$HOME/.cache/zsh" -mkdir -p "$ZSH_CACHE_DIR/completions" - -# Ensure gh completions are sourced if gh is installed -if command -v gh &>/dev/null; then - eval "$(gh completion -s zsh)" -fi - -# Atuin -if command -v atuin &>/dev/null; then - eval "$(atuin init zsh)" -fi - -# Search and preview GitHub pull requests -function ghpr() { - GH_FORCE_TTY=100% gh pr list | fzf --ansi --preview 'GH_FORCE_TTY=100% gh pr view {1}' --preview-window down --header-lines 3 | awk '{print $1}' | xargs gh pr checkout -} - -# Delete all node_modules folders in a folder and subfolders -function deleteNodeModules() { - find . -name "node_modules" -type d -exec rm -rf '{}' + -} - -# Server -server() { - browser-sync start --server --files "**" -} - -# Determine size of a file or total size of a directory -fs() { - if du -b /dev/null >/dev/null 2>&1; then - local arg=-sbh - else - local arg=-sh - fi - if [[ -n "$@" ]]; then - du $arg -- "$@" - else - du $arg .[^.]* * - fi -} - -# Modified version where you can press -# - CTRL-O to open with `open` command, -# - CTRL-E or Enter key to open with the $EDITOR -fo() { - IFS=$'\n' out=("$(fzf-tmux --query="$1" --exit-0 --expect=ctrl-o,ctrl-e)") - key=$(head -1 <<<"$out") - file=$(head -2 <<<"$out" | tail -1) - if [ -n "$file" ]; then - [ "$key" = ctrl-o ] && open "$file" || ${EDITOR:-vim} "$file" - fi -} - -# fcd - cd into directory -fcd() { - cd $(find * -type d | fzf --preview 'tree -C {} | head -50') -} - -# fhcd – Jump to home directory and search for directories -fhcd() { - cd $HOME - cd $(find * -type d | fzf --preview 'tree -C {} | head -50') -} - -# fdr - cd to selected parent directory -fdr() { - local declare dirs=() - get_parent_dirs() { - if [[ -d "${1}" ]]; then dirs+=("$1"); else return; fi - if [[ "${1}" == '/' ]]; then - for _dir in "${dirs[@]}"; do echo $_dir; done - else - get_parent_dirs $(dirname "$1") - fi - } - - local DIR=$(get_parent_dirs $(realpath "${1:-$(pwd)}") | fzf-tmux --tac) - cd "$DIR" -} - -# Find in files with ripgrep and fzf and open on that line -# -> Works together with Vim Plugin bogado/file-line -frg() { - file=$(rg . --line-number | fzf | cut -d: -f1 -f2) - if [ "$file" != "" ]; then - nvim $file - fi -} - -# fkill - kill process -fkill() { - pid=$(ps -ef | sed 1d | fzf -m | awk '{print $2}') - - if [ "x$pid" != "x" ]; then - kill -${1:-9} $pid - fi -} - -# fco - checkout git branch/tag -fco() { - local tags branches target - tags=$( - git tag | awk '{print "\x1b[31;1mtag\x1b[m\t" $1}' - ) || return - branches=$( - git branch --all | grep -v HEAD | - sed "s/.* //" | sed "s#remotes/[^/]*/##" | - sort -u | awk '{print "\x1b[34;1mbranch\x1b[m\t" $1}' - ) || return - target=$( - ( - echo "$tags" - echo "$branches" - ) | - fzf-tmux -- --no-hscroll --ansi +m -d "\t" -n 2 - ) || return - git checkout $(echo "$target" | awk '{print $2}') -} - -# fcoc - checkout git commit -fcoc() { - local commits commit - commits=$(git log --pretty=oneline --abbrev-commit --reverse) && - commit=$(echo "$commits" | fzf --tac +s +m -e) && - git checkout $(echo "$commit" | sed "s/ .*//") -} - -# fshow - git commit browser -fshow() { - git log --graph --color=always \ - --format="%C(auto)%h%d %s %C(black)%C(bold)%cr" "$@" | - fzf --ansi --no-sort --reverse --tiebreak=index --bind=ctrl-s:toggle-sort \ - --bind "ctrl-m:execute: - (grep -o '[a-f0-9]\{7\}' | head -1 | - xargs -I % sh -c 'git show --color=always % | less -R') << 'FZF-EOF' - {} - FZF-EOF" -} - -# Search z history with fzf -fz() { - [ $# -gt 0 ] && _z "$*" && return - cd "$(_z -l 2>&1 | fzf --height 40% --nth 2.. --reverse --inline-info +s --tac --query "${*##-* }" | sed 's/^[0-9,.]* *//')" -} - -# Browse Brave history -fbh() { - local cols sep - cols=$((COLUMNS / 3)) - sep='{{::}}' - - # Copy History DB to circumvent the lock - # See http://stackoverflow.com/questions/8936878 for the file path - cp -f ~/Library/Application\ Support/BraveSoftware/Brave-Browser/Default/History /tmp/h - - sqlite3 -separator $sep /tmp/h \ - "select substr(title, 1, $cols), url - from urls order by last_visit_time desc" | - awk -F $sep '{printf "%-'$cols's \x1b[36m%s\n", $1, $2}' | - fzf --ansi --multi | sed 's#.*\(https*://\)#\1#' | xargs open -} diff --git a/homebrew/mac-mini b/homebrew/mac-mini new file mode 100644 index 0000000..3c8cb85 --- /dev/null +++ b/homebrew/mac-mini @@ -0,0 +1,628 @@ +tap "charmbracelet/tap" +tap "dustinblackman/tap" +tap "homebrew/bundle" +tap "homebrew/services" +tap "joshmedeski/sesh" +tap "koekeishiya/formulae" +# Search tool like grep, but optimized for programmers +brew "ack" +# Plugin manager for zsh, inspired by antigen and antibody +brew "antidote" +# Cryptography and SSL/TLS Toolkit +brew "openssl@3" +# Powerful, clean, object-oriented scripting language +brew "ruby" +# Text processor and publishing toolchain for AsciiDoc +brew "asciidoctor" +# GNU File, Shell, and Text utilities +brew "coreutils" +# Extendable version manager with support for Ruby, Node.js, Erlang & more +brew "asdf" +# Improved shell history for zsh, bash, fish and nushell +brew "atuin" +# Programmable completion for Bash 3.2 +brew "bash-completion" +# Clone of cat(1) with syntax highlighting and Git integration +brew "bat" +# Bash scripts that integrate bat with various command-line tools +brew "bat-extras" +# GNU internationalization (i18n) and localization (l10n) library +brew "gettext" +# Command-line interface for SQLite +brew "sqlite" +# C/C++ and Java libraries for Unicode and globalization +brew "icu4c" +# Remove large files or passwords from Git history like git-filter-branch +brew "bfg" +# Parser generator +brew "bison" +# GNU compiler collection +brew "gcc" +# Resource monitor. C++ version and continuation of bashtop and bpytop +brew "btop" +# Freely available high-quality data compressor +brew "bzip2" +# High performance message passing library +brew "open-mpi" +# C routines to compute the Discrete Fourier Transform +brew "fftw" +# Console-based Audio Visualizer for ALSA +brew "cava" +# Statistics utility to count lines of code +brew "cloc" +# Cross-platform make +brew "cmake" +# Defines a standard way of committing rules and communicating it +brew "commitizen" +# Header-only library for parsing TOML +brew "cpptoml" +# Get a file from an HTTP, HTTPS or FTP server +brew "curl" +# Good-lookin' diffs with diff-highlight and more +brew "diff-so-fancy" +# Load/unload environment variables based on $PWD +brew "direnv" +# Standard XML representation system for technical documents +brew "docbook" +# XML vocabulary to create presentation-neutral documents +brew "docbook-xsl" +# Docker CLI plugin for extended build capabilities with BuildKit +brew "docker-buildx" +# Text processing system for reStructuredText +brew "docutils" +# More intuitive version of du in rust +brew "dust" +# Maintain consistent coding style between multiple editors +brew "editorconfig" +# Perl lib for reading and writing EXIF metadata +brew "exiftool" +# Modern, maintained replacement for ls +brew "eza" +# Simple, fast and user-friendly alternative to find +brew "fd" +# Low-level access to audio, keyboard, mouse, joystick, and graphics +brew "sdl2" +# Create thumbnails for your video files +brew "ffmpegthumbnailer" +# macOS CLI for managing custom icons for files and folders +brew "fileicon" +# Collection of GNU find, xargs, and locate +brew "findutils" +# Plugin manager for the Fish shell +brew "fisher" +# Command-line fuzzy finder written in Go +brew "fzf" +# GitHub command-line tool +brew "gh" +# Enable transparent encryption/decryption of files in a git repo +brew "git-crypt" +# Syntax-highlighting pager for git and diff output +brew "git-delta" +# Small git utilities +brew "git-extras" +# Alias for git commit --fixup +brew "git-fixup" +# Git extension for versioning large files +brew "git-lfs" +# Simple and efficient way to access statistics in git +brew "git-quick-stats" +# Audit git repos for secrets +brew "gitleaks" +# C++ mathematics library for graphics software +brew "glm" +# Render markdown on the CLI +brew "glow" +# GNU implementation of the famous stream editor +brew "gnu-sed" +# GNU version of the tar archiving utility +brew "gnu-tar" +# Open source programming language to build simple/reliable/efficient software +brew "go" +# Manage compile and link flags for libraries +brew "pkg-config" +# Generate introspection data for GObject libraries +brew "gobject-introspection" +# Google Testing and Mocking Framework +brew "googletest" +# Version Control Visualization Tool +brew "gource" +# Library access to GnuPG +brew "gpgme" +# Command-line tool for generating regular expressions +brew "grex" +# Open-source video transcoder available for Linux, Mac, and Windows +brew "handbrake" +# Convert source code to formatted text with syntax highlighting +brew "highlight" +# Improved top (interactive process viewer) +brew "htop" +# User-friendly cURL replacement (command-line HTTP client) +brew "httpie" +# Command-line benchmarking tool +brew "hyperfine" +# Database of common MIME types +brew "shared-mime-info" +# Tools and libraries to manipulate images in many formats +brew "imagemagick" +# Make XML documents translatable through PO files +brew "itstool" +# Command-line pager for JSON data +brew "jless" +# Lightweight and flexible command-line JSON processor +brew "jq" +# Lazier way to manage everything docker +brew "lazydocker" +# Simple terminal UI for git commands +brew "lazygit" +# Terminal file manager +brew "lf" +# Conversion library +brew "libiconv" +# Just-In-Time Compiler (JIT) for the Lua programming language +brew "luajit", args: ["HEAD"] +# Text-based web browser +brew "lynx" +# Mac App Store command-line interface +brew "mas" +# Fast and user friendly build system +brew "meson" +# CLI tool for saving complete web pages as a single HTML file +brew "monolith" +# Open source relational database management system +brew "mysql" +# Parser generator tool and incremental parsing library +brew "tree-sitter" +# Ambitious Vim-fork focused on extensibility and agility +brew "neovim" +# HTTP(S) server and reverse proxy, and IMAP/POP3 proxy server +brew "nginx" +# Platform built on V8 to build network applications +brew "node" +# Libraries for security-enabled client and server applications +brew "nss" +# General-purpose speech recognition model +brew "openai-whisper" +# 7-Zip (high compression file archiver) implementation +brew "p7zip" +# Swiss-army knife of markup format conversion +brew "pandoc" +# Tool to interact with the Phrase API +brew "phrase-cli" +# Pinentry for GPG on Mac +brew "pinentry-mac" +# Paste PNG into files +brew "pngpaste" +# Fast, disk space efficient package manager +brew "pnpm" +# Perl documentation generator +brew "pod2man" +# PDF rendering library (based on the xpdf-3.0 code base) +brew "poppler" +# Object-relational database system +brew "postgresql@14" +# Code formatter for JavaScript, CSS, JSON, GraphQL, Markdown, YAML +brew "prettier" +# Prettier daemon +brew "prettierd" +# Easily download, build, install, upgrade, and uninstall Python packages +brew "python-setuptools" +# Reattach process (e.g., tmux) to background +brew "reattach-to-user-namespace" +# Convert between TOML, YAML and JSON +brew "remarshal" +# Search tool like grep and The Silver Searcher +brew "ripgrep" +# Builds manuals - the opposite of roff +brew "ronn" +# Utility that provides fast incremental file transfer +brew "rsync" +# Safe, concurrent, practical language +brew "rust" +# CLI search and replace | Space Age seD +brew "sad" +# 7-Zip is a file archiver with a high compression ratio +brew "sevenzip" +# Autoformat shell script source code +brew "shfmt" +# Create beautiful image of your source code +brew "silicon" +# Add a public key to a remote machine's authorized_keys file +brew "ssh-copy-id" +# Cross-shell prompt for astronauts +brew "starship" +# Organize software neatly under a single directory tree (e.g. /usr/local) +brew "stow" +# Official documentation format of the GNU project +brew "texinfo" +# Code-search similar to ack +brew "the_silver_searcher" +# Simplified and community-driven man pages +brew "tldr" +# Display directories as trees (with optional color/HTML output) +brew "tree" +# Command-line unarchiving tools supporting multiple formats +brew "unar" +# Maintained ctags implementation +brew "universal-ctags" +# Extraction utility for .zip compressed archives +brew "unzip" +# URL extractor/launcher +brew "urlview" +# Your CLI home video recorder +brew "vhs" +# JavaScript toolchain manager for reproducible environments +brew "volta" +# Watch files and take action when they change +brew "watchman" +# Homebrew, but with Docker images +brew "whalebrew" +# Port of OpenAI's Whisper model in C/C++ +brew "whisper-cpp" +# Utilities to create and convert Web Open Font File (WOFF) files +brew "woff2" +# Convert XML to another format (based on XSL or other tools) +brew "xmlto" +# JavaScript package manager +brew "yarn" +# Blazing fast terminal file manager written in Rust, based on async I/O +brew "yazi" +# Process YAML, JSON, XML, CSV and properties documents from the CLI +brew "yq" +# Feature-rich command-line audio/video downloader +brew "yt-dlp" +# Shell extension to navigate your filesystem faster +brew "zoxide" +# UNIX shell (command interpreter) +brew "zsh" +# A tasty, self-hostable Git server for the command line🍦 +brew "charmbracelet/tap/soft-serve" +# Terminal UI to chat with large language models (LLM) using backends such as Ollama, and direct integrations with your favourite editor like Neovim! +brew "dustinblackman/tap/oatmeal" +# Smart terminal session manager +brew "joshmedeski/sesh/sesh" +# Simple hotkey-daemon for macOS. +brew "koekeishiya/formulae/skhd" +# A tiling window manager for macOS based on binary space partitioning. +brew "koekeishiya/formulae/yabai" +# Professional graphic design software +cask "affinity-designer" +# Professional image editing software +cask "affinity-photo" +# Professional desktop publishing software +cask "affinity-publisher" +# Application launcher and productivity software +cask "alfred" +# Enable Windows-like alt-tab +cask "alt-tab" +# Network scanner +cask "angry-ip-scanner" +# Webcam & audio device software +cask "ankerwork" +# Memory training application +cask "anki" +# Application uninstaller +cask "appcleaner" +# Chromium based browser +cask "arc" +# Multi-track audio editor and recorder +cask "audacity" +# Menu bar icon organiser +cask "bartender" +# Edit and manage bibliographies +cask "bibdesk" +# 3D creation suite +cask "blender" +# 3D performance benchmarking tool +cask "blender-benchmark" +# Utility to dim background/inactive content in the screen +cask "blurred" +# Web browser focusing on privacy +cask "brave-browser" +# E-books management software +cask "calibre" +# Screen capturing tool +cask "cleanshot" +cask "color-oracle" +# Multi-platform client-side cloud file encryption tool +cask "cryptomator" +# Disk space visualiser +cask "daisydisk" +# Browser for SQLite databases +cask "db-browser-for-sqlite" +# Trains AIs to understand and translate texts +cask "deepl" +# Collect, organise, edit and annotate documents +cask "devonthink" +# App to build and share containerised applications and microservices +cask "docker" +# Client for the Dropbox cloud storage service +cask "dropbox" +# Collaborative team software +cask "figma" +# Web browser +cask "firefox" +cask "font-fira-code" +cask "font-fira-code-nerd-font" +cask "font-fira-sans" +cask "font-fira-sans-condensed" +cask "font-hack-nerd-font" +cask "font-ia-writer-duo" +cask "font-ia-writer-mono" +cask "font-ia-writer-quattro" +cask "font-monaspace" +cask "font-noto-emoji" +cask "font-symbols-only-nerd-font" +# Free VPN client for FortiClient +cask "forticlient-vpn" +# Disk space cleaner that finds and deletes duplicated and similar files +cask "gemini" +# Japanese input software +cask "google-japanese-ime" +# Tools to protect your files +cask "gpg-suite-no-mail" +# Desktop automation application +cask "hammerspoon" +# Open-source video transcoder +cask "handbrake" +# Create presentation slides from a Markdown document +cask "ia-presenter" +# Free and open-source media player +cask "iina" +# Tool to optimise images to a smaller size +cask "imageoptim" +# Tool to scan a website checking for broken links +cask "integrity" +# Menu bar calendar +cask "itsycal" +# Spot and merge differences in text and image files or folders +cask "kaleidoscope@3" +# Open-source screen recorder built with web technology +cask "kap" +# Keyboard customiser +cask "karabiner-elements" +# Open-source keystroke visualiser +cask "keycastr" +# Grammar, spelling and style suggestions in all the writing apps +cask "languagetool" +# Official client for LBRY, a decentralised file-sharing and payment network +cask "lbry" +# Wallet desktop application to maintain multiple cryptocurrencies +cask "ledger-live" +# File system integration +cask "macfuse" +# Video format converter (transcoder) +cask "makemkv" +# Provides updates to various Microsoft products +cask "microsoft-auto-update" +# Email client +cask "microsoft-outlook" +# Meet, chat, call, and collaborate in just one place +cask "microsoft-teams" +# App to write, plan, collaborate, and get organised +cask "notion" +# Knowledge base that works on top of a local folder of plain text Markdown files +cask "obsidian" +# Get up and running with large language models locally +cask "ollama" +# Control your smart light system +cask "philips-hue-sync" +# Client for Proton Drive +cask "proton-drive" +# Client for Proton Mail and Proton Calendar +cask "proton-mail" +# Desktop client for Proton Pass +cask "proton-pass" +# Bridges Proton Mail to email clients supporting IMAP and SMTP protocols +cask "protonmail-bridge" +# VPN client focusing on security +cask "protonvpn" +# All-in-one bookmark manager +cask "raindropio" +# Imaging utility to install operating systems to a microSD card +cask "raspberry-pi-imager" +# Control your tools with a few keystrokes +cask "raycast" +# Save articles to read, highlight key content, and organise notes for review +cask "reader" +# Store SSH keys in the Secure Enclave +cask "secretive" +# Tool for sending personal documents to Kindles from Macs +cask "send-to-kindle" +# MySQL/MariaDB database management platform +cask "sequel-pro" +# Onion routing based messenger +cask "session" +# Tool that provides consistent, highly configurable symbols for apps +cask "sf-symbols" +# Instant messaging application focusing on security +cask "signal" +# Control your Sonos system +cask "sonos" +# Music streaming service +cask "spotify" +# Interior design application +cask "sweet-home3d" +# Desktop client for Telegram messenger +cask "telegram-desktop" +# Unpacks archive files +cask "the-unarchiver" +# Web browser focusing on security +cask "tor-browser" +# File transfer application +cask "transmit" +# Disk encryption software focusing on security based on TrueCrypt +cask "veracrypt" +# Virtualizer for x86 and arm64 hardware +cask "virtualbox@beta" +# Open-source code editor +cask "visual-studio-code" +# Multimedia player +cask "vlc" +# Web browser plugin +cask "vlc-webplugin" +# Torrent streaming application +cask "webtorrent" +# GPU-accelerated cross-platform terminal emulator and multiplexer +cask "wezterm" +# Native desktop client for WhatsApp +cask "whatsapp" +# Tax declaration for the fiscal year 2023 +cask "wiso-steuer-2024" +# Multiplayer code editor +cask "zed" +mas "1-Click Video Converter", id: 717545086 +mas "Aiko", id: 1672085276 +mas "DaVinci Resolve", id: 571213070 +mas "Day One", id: 1055511498 +mas "Deliveries", id: 290986013 +mas "Draw Things", id: 6444050820 +mas "Exporter", id: 1099120373 +mas "Free MP4 Converter", id: 693443591 +mas "Goodnotes", id: 1444383602 +mas "iA Writer", id: 775737590 +mas "iFinance 5", id: 1500241909 +mas "Key Codes", id: 414568915 +mas "Keynote", id: 409183694 +mas "Kindle", id: 302584613 +mas "Mela", id: 1568924476 +mas "MindNode", id: 1289197285 +mas "Numbers", id: 409203825 +mas "Pages", id: 409201541 +mas "Proton Pass for Safari", id: 6502835663 +mas "Pure Paste", id: 1611378436 +mas "Reeder", id: 1529448980 +mas "Save to Raindrop.io", id: 1549370672 +mas "Smart Converter", id: 447513724 +mas "Things", id: 904280696 +mas "Time Sink", id: 404363161 +mas "Typeface", id: 1062679359 +mas "Yoink", id: 457622435 +whalebrew "whalebrew/whalesay" +vscode "adamvoss.vscode-languagetool" +vscode "ahmadalli.vscode-nginx-conf" +vscode "akamud.vscode-caniuse" +vscode "alefragnani.bookmarks" +vscode "alefragnani.project-manager" +vscode "anteprimorac.html-end-tag-labels" +vscode "arcticicestudio.nord-visual-studio-code" +vscode "ardenivanov.svelte-intellisense" +vscode "astro-build.astro-vscode" +vscode "asvetliakov.snapshot-tools" +vscode "azemoh.one-monokai" +vscode "bbenoist.nix" +vscode "bierner.markdown-preview-github-styles" +vscode "bradlc.vscode-tailwindcss" +vscode "chakrounanas.turbo-console-log" +vscode "chrischinchilla.vale-vscode" +vscode "christian-kohler.npm-intellisense" +vscode "christian-kohler.path-intellisense" +vscode "chrmarti.regex" +vscode "codeium.codeium" +vscode "codesandbox-io.codesandbox-projects" +vscode "codezombiech.gitignore" +vscode "continue.continue" +vscode "csstools.postcss" +vscode "cstrachan.vcard" +vscode "davidlday.languagetool-linter" +vscode "daylerees.rainglow" +vscode "dbaeumer.vscode-eslint" +vscode "deerawan.vscode-dash" +vscode "dendron.dendron" +vscode "dendron.dendron-paste-image" +vscode "donjayamanne.githistory" +vscode "dsznajder.es7-react-js-snippets" +vscode "eamodio.gitlens" +vscode "ecmel.vscode-html-css" +vscode "editorconfig.editorconfig" +vscode "enkia.tokyo-night" +vscode "equinusocio.vsc-material-theme" +vscode "equinusocio.vsc-material-theme-icons" +vscode "esbenp.prettier-vscode" +vscode "fallenmax.mithril-emmet" +vscode "file-icons.file-icons" +vscode "foam.foam-vscode" +vscode "gerane.theme-tomorrownight" +vscode "ginfuru.better-nunjucks" +vscode "github.copilot" +vscode "github.copilot-chat" +vscode "github.github-vscode-theme" +vscode "github.vscode-pull-request-github" +vscode "gruntfuggly.todo-tree" +vscode "hextorgb.hex-to-rgb" +vscode "idleberg.applescript" +vscode "jasonnutter.search-node-modules" +vscode "juanblanco.solidity" +vscode "kaleidoscope-app.vscode-ksdiff" +vscode "kamikillerto.vscode-colorize" +vscode "kotfu.bunch" +vscode "kumar-harsh.graphql-for-vscode" +vscode "liviuschera.noctis" +vscode "mattpocock.ts-error-translator" +vscode "mechatroner.rainbow-csv" +vscode "mehullakhanpal.file-ops" +vscode "mgmcdermott.vscode-language-babel" +vscode "miguelsolorio.fluent-icons" +vscode "miguelsolorio.min-theme" +vscode "miguelsolorio.symbols" +vscode "mikestead.dotenv" +vscode "morph.rift-vscode" +vscode "mrmlnc.vscode-attrs-sorter" +vscode "ms-azuretools.vscode-docker" +vscode "ms-ceintl.vscode-language-pack-de" +vscode "ms-playwright.playwright" +vscode "ms-python.debugpy" +vscode "ms-python.isort" +vscode "ms-python.python" +vscode "ms-python.vscode-pylance" +vscode "ms-toolsai.jupyter" +vscode "ms-toolsai.jupyter-keymap" +vscode "ms-toolsai.jupyter-renderers" +vscode "ms-toolsai.vscode-jupyter-cell-tags" +vscode "ms-toolsai.vscode-jupyter-slideshow" +vscode "ms-vscode-remote.remote-containers" +vscode "ms-vscode-remote.remote-ssh" +vscode "ms-vscode-remote.remote-ssh-edit" +vscode "ms-vscode-remote.remote-wsl" +vscode "ms-vscode-remote.vscode-remote-extensionpack" +vscode "ms-vscode.remote-explorer" +vscode "ms-vscode.remote-server" +vscode "ms-vsliveshare.vsliveshare" +vscode "nrwl.angular-console" +vscode "octref.vetur" +vscode "perkovec.emoji" +vscode "pkief.material-icon-theme" +vscode "pnp.polacode" +vscode "pomdtr.excalidraw-editor" +vscode "prisma.prisma" +vscode "quick-lint.quick-lint-js" +vscode "raynigon.nginx-formatter" +vscode "redhat.vscode-commons" +vscode "redhat.vscode-yaml" +vscode "rvest.vs-code-prettier-eslint" +vscode "sdras.night-owl" +vscode "sleistner.vscode-fileutils" +vscode "softwaredotcom.swdc-vscode" +vscode "styled-components.vscode-styled-components" +vscode "svanimpe.stencil" +vscode "svelte.svelte-vscode" +vscode "tamasfe.even-better-toml" +vscode "tchayen.markdown-links" +vscode "thenikso.github-plus-theme" +vscode "tyriar.sort-lines" +vscode "unifiedjs.vscode-mdx" +vscode "visualstudioexptteam.intellicode-api-usage-examples" +vscode "visualstudioexptteam.vscodeintellicode" +vscode "vivaxy.vscode-conventional-commits" +vscode "vscode-icons-team.vscode-icons" +vscode "vscodevim.vim" +vscode "wakatime.vscode-wakatime" +vscode "wayou.vscode-todo-highlight" +vscode "william-voyek.vscode-nginx" +vscode "wix.vscode-import-cost" +vscode "xabikos.javascriptsnippets" +vscode "xadillax.viml" +vscode "xyc.vscode-mdx-preview" +vscode "yinfei.luahelper" +vscode "yutengjing.open-in-external-app" +vscode "yzhang.markdown-all-in-one" +vscode "zhuangtongfa.material-theme" diff --git a/homebrew/macbook-2023 b/homebrew/macbook-2023 new file mode 100644 index 0000000..bb09cbf --- /dev/null +++ b/homebrew/macbook-2023 @@ -0,0 +1,614 @@ +tap "charmbracelet/tap" +tap "dustinblackman/tap" +tap "homebrew/bundle" +tap "homebrew/services" +tap "joshmedeski/sesh" +tap "koekeishiya/formulae" +# Search tool like grep, but optimized for programmers +brew "ack" +# Plugin manager for zsh, inspired by antigen and antibody +brew "antidote" +# Cryptography and SSL/TLS Toolkit +brew "openssl@3" +# Powerful, clean, object-oriented scripting language +brew "ruby" +# Text processor and publishing toolchain for AsciiDoc +brew "asciidoctor" +# GNU File, Shell, and Text utilities +brew "coreutils" +# Extendable version manager with support for Ruby, Node.js, Erlang & more +brew "asdf" +# Improved shell history for zsh, bash, fish and nushell +brew "atuin" +# Programmable completion for Bash 3.2 +brew "bash-completion" +# Clone of cat(1) with syntax highlighting and Git integration +brew "bat" +# Bash scripts that integrate bat with various command-line tools +brew "bat-extras" +# GNU internationalization (i18n) and localization (l10n) library +brew "gettext" +# Command-line interface for SQLite +brew "sqlite" +# C/C++ and Java libraries for Unicode and globalization +brew "icu4c" +# Remove large files or passwords from Git history like git-filter-branch +brew "bfg" +# Parser generator +brew "bison" +# GNU compiler collection +brew "gcc" +# Resource monitor. C++ version and continuation of bashtop and bpytop +brew "btop" +# Freely available high-quality data compressor +brew "bzip2" +# High performance message passing library +brew "open-mpi" +# C routines to compute the Discrete Fourier Transform +brew "fftw" +# Console-based Audio Visualizer for ALSA +brew "cava" +# Statistics utility to count lines of code +brew "cloc" +# Cross-platform make +brew "cmake" +# Defines a standard way of committing rules and communicating it +brew "commitizen" +# Header-only library for parsing TOML +brew "cpptoml" +# Get a file from an HTTP, HTTPS or FTP server +brew "curl" +# Good-lookin' diffs with diff-highlight and more +brew "diff-so-fancy" +# Load/unload environment variables based on $PWD +brew "direnv" +# Standard XML representation system for technical documents +brew "docbook" +# XML vocabulary to create presentation-neutral documents +brew "docbook-xsl" +# Docker CLI plugin for extended build capabilities with BuildKit +brew "docker-buildx" +# Text processing system for reStructuredText +brew "docutils" +# More intuitive version of du in rust +brew "dust" +# Maintain consistent coding style between multiple editors +brew "editorconfig" +# Perl lib for reading and writing EXIF metadata +brew "exiftool" +# Modern, maintained replacement for ls +brew "eza" +# Simple, fast and user-friendly alternative to find +brew "fd" +# Low-level access to audio, keyboard, mouse, joystick, and graphics +brew "sdl2" +# Create thumbnails for your video files +brew "ffmpegthumbnailer" +# macOS CLI for managing custom icons for files and folders +brew "fileicon" +# Collection of GNU find, xargs, and locate +brew "findutils" +# Plugin manager for the Fish shell +brew "fisher" +# Command-line fuzzy finder written in Go +brew "fzf" +# GitHub command-line tool +brew "gh" +# Enable transparent encryption/decryption of files in a git repo +brew "git-crypt" +# Syntax-highlighting pager for git and diff output +brew "git-delta" +# Small git utilities +brew "git-extras" +# Alias for git commit --fixup +brew "git-fixup" +# Git extension for versioning large files +brew "git-lfs" +# Simple and efficient way to access statistics in git +brew "git-quick-stats" +# Audit git repos for secrets +brew "gitleaks" +# C++ mathematics library for graphics software +brew "glm" +# Render markdown on the CLI +brew "glow" +# GNU implementation of the famous stream editor +brew "gnu-sed" +# GNU version of the tar archiving utility +brew "gnu-tar" +# Open source programming language to build simple/reliable/efficient software +brew "go" +# Manage compile and link flags for libraries +brew "pkg-config" +# Generate introspection data for GObject libraries +brew "gobject-introspection" +# Google Testing and Mocking Framework +brew "googletest" +# Version Control Visualization Tool +brew "gource" +# Library access to GnuPG +brew "gpgme" +# Command-line tool for generating regular expressions +brew "grex" +# Convert source code to formatted text with syntax highlighting +brew "highlight" +# Improved top (interactive process viewer) +brew "htop" +# User-friendly cURL replacement (command-line HTTP client) +brew "httpie" +# Command-line benchmarking tool +brew "hyperfine" +# Database of common MIME types +brew "shared-mime-info" +# Tools and libraries to manipulate images in many formats +brew "imagemagick" +# Make XML documents translatable through PO files +brew "itstool" +# Command-line pager for JSON data +brew "jless" +# Lightweight and flexible command-line JSON processor +brew "jq" +# Lazier way to manage everything docker +brew "lazydocker" +# Simple terminal UI for git commands +brew "lazygit" +# Conversion library +brew "libiconv" +# Just-In-Time Compiler (JIT) for the Lua programming language +brew "luajit", args: ["HEAD"] +# Text-based web browser +brew "lynx" +# Mac App Store command-line interface +brew "mas" +# Fast and user friendly build system +brew "meson" +# CLI tool for saving complete web pages as a single HTML file +brew "monolith" +# Open source relational database management system +brew "mysql" +# Parser generator tool and incremental parsing library +brew "tree-sitter" +# Ambitious Vim-fork focused on extensibility and agility +brew "neovim" +# HTTP(S) server and reverse proxy, and IMAP/POP3 proxy server +brew "nginx" +# Platform built on V8 to build network applications +brew "node" +# Libraries for security-enabled client and server applications +brew "nss" +# General-purpose speech recognition model +brew "openai-whisper" +# 7-Zip (high compression file archiver) implementation +brew "p7zip" +# Swiss-army knife of markup format conversion +brew "pandoc" +# Tool to interact with the Phrase API +brew "phrase-cli" +# Pinentry for GPG on Mac +brew "pinentry-mac" +# Paste PNG into files +brew "pngpaste" +# Fast, disk space efficient package manager +brew "pnpm" +# Perl documentation generator +brew "pod2man" +# PDF rendering library (based on the xpdf-3.0 code base) +brew "poppler" +# Object-relational database system +brew "postgresql@14" +# Code formatter for JavaScript, CSS, JSON, GraphQL, Markdown, YAML +brew "prettier" +# Prettier daemon +brew "prettierd" +# Easily download, build, install, upgrade, and uninstall Python packages +brew "python-setuptools" +# Reattach process (e.g., tmux) to background +brew "reattach-to-user-namespace" +# Convert between TOML, YAML and JSON +brew "remarshal" +# Search tool like grep and The Silver Searcher +brew "ripgrep" +# Builds manuals - the opposite of roff +brew "ronn" +# Utility that provides fast incremental file transfer +brew "rsync" +# Safe, concurrent, practical language +brew "rust" +# CLI search and replace | Space Age seD +brew "sad" +# 7-Zip is a file archiver with a high compression ratio +brew "sevenzip" +# Autoformat shell script source code +brew "shfmt" +# Create beautiful image of your source code +brew "silicon" +# Add a public key to a remote machine's authorized_keys file +brew "ssh-copy-id" +# Cross-shell prompt for astronauts +brew "starship" +# Organize software neatly under a single directory tree (e.g. /usr/local) +brew "stow" +# Official documentation format of the GNU project +brew "texinfo" +# Code-search similar to ack +brew "the_silver_searcher" +# Simplified and community-driven man pages +brew "tldr" +# Display directories as trees (with optional color/HTML output) +brew "tree" +# Command-line unarchiving tools supporting multiple formats +brew "unar" +# Maintained ctags implementation +brew "universal-ctags" +# Extraction utility for .zip compressed archives +brew "unzip" +# URL extractor/launcher +brew "urlview" +# Your CLI home video recorder +brew "vhs" +# JavaScript toolchain manager for reproducible environments +brew "volta" +# Watch files and take action when they change +brew "watchman" +# Homebrew, but with Docker images +brew "whalebrew" +# Port of OpenAI's Whisper model in C/C++ +brew "whisper-cpp" +# Utilities to create and convert Web Open Font File (WOFF) files +brew "woff2" +# Convert XML to another format (based on XSL or other tools) +brew "xmlto" +# JavaScript package manager +brew "yarn" +# Blazing fast terminal file manager written in Rust, based on async I/O +brew "yazi" +# Process YAML, JSON, XML, CSV and properties documents from the CLI +brew "yq" +# Feature-rich command-line audio/video downloader +brew "yt-dlp" +# Shell extension to navigate your filesystem faster +brew "zoxide" +# UNIX shell (command interpreter) +brew "zsh" +# A tasty, self-hostable Git server for the command line🍦 +brew "charmbracelet/tap/soft-serve" +# Terminal UI to chat with large language models (LLM) using backends such as Ollama, and direct integrations with your favourite editor like Neovim! +brew "dustinblackman/tap/oatmeal" +# Smart terminal session manager +brew "joshmedeski/sesh/sesh" +# Simple hotkey-daemon for macOS. +brew "koekeishiya/formulae/skhd" +# A tiling window manager for macOS based on binary space partitioning. +brew "koekeishiya/formulae/yabai" +# Professional graphic design software +cask "affinity-designer" +# Professional image editing software +cask "affinity-photo" +# Professional desktop publishing software +cask "affinity-publisher" +# Application launcher and productivity software +cask "alfred" +# Enable Windows-like alt-tab +cask "alt-tab" +# Network scanner +cask "angry-ip-scanner" +# Memory training application +cask "anki" +# Application uninstaller +cask "appcleaner" +# Chromium based browser +cask "arc" +# Multi-track audio editor and recorder +cask "audacity" +# Menu bar icon organiser +cask "bartender" +# Edit and manage bibliographies +cask "bibdesk" +# 3D creation suite +cask "blender" +# 3D performance benchmarking tool +cask "blender-benchmark" +# Utility to dim background/inactive content in the screen +cask "blurred" +# Web browser focusing on privacy +cask "brave-browser" +# E-books management software +cask "calibre" +# Screen capturing tool +cask "cleanshot" +cask "color-oracle" +# Multi-platform client-side cloud file encryption tool +cask "cryptomator" +# Browser for SQLite databases +cask "db-browser-for-sqlite" +# Trains AIs to understand and translate texts +cask "deepl" +# Collect, organise, edit and annotate documents +cask "devonthink" +# App to build and share containerised applications and microservices +cask "docker" +# Client for the Dropbox cloud storage service +cask "dropbox" +# Collaborative team software +cask "figma" +# Web browser +cask "firefox" +cask "font-fira-code" +cask "font-fira-code-nerd-font" +cask "font-fira-sans" +cask "font-fira-sans-condensed" +cask "font-hack-nerd-font" +cask "font-ia-writer-duo" +cask "font-ia-writer-mono" +cask "font-ia-writer-quattro" +cask "font-monaspace" +cask "font-noto-emoji" +cask "font-symbols-only-nerd-font" +# Japanese input software +cask "google-japanese-ime" +# Tools to protect your files +cask "gpg-suite-no-mail" +# Desktop automation application +cask "hammerspoon" +# Create presentation slides from a Markdown document +cask "ia-presenter" +# Free and open-source media player +cask "iina" +# Tool to optimise images to a smaller size +cask "imageoptim" +# Tool to scan a website checking for broken links +cask "integrity" +# Menu bar calendar +cask "itsycal" +# Spot and merge differences in text and image files or folders +cask "kaleidoscope@3" +# Open-source screen recorder built with web technology +cask "kap" +# Keyboard customiser +cask "karabiner-elements" +# Open-source keystroke visualiser +cask "keycastr" +# Grammar, spelling and style suggestions in all the writing apps +cask "languagetool" +# Wallet desktop application to maintain multiple cryptocurrencies +cask "ledger-live" +# File system integration +cask "macfuse" +# Provides updates to various Microsoft products +cask "microsoft-auto-update" +# Spreadsheet software +cask "microsoft-excel" +# Digital note taking app +cask "microsoft-onenote" +# Email client +cask "microsoft-outlook" +# Presentation software +cask "microsoft-powerpoint" +# Remote desktop client +cask "microsoft-remote-desktop" +# Meet, chat, call, and collaborate in just one place +cask "microsoft-teams" +# Word processor +cask "microsoft-word" +# App to write, plan, collaborate, and get organised +cask "notion" +# Knowledge base that works on top of a local folder of plain text Markdown files +cask "obsidian" +# Get up and running with large language models locally +cask "ollama" +# Cloud storage client +cask "onedrive" +# Control your smart light system +cask "philips-hue-sync" +# Client for Proton Drive +cask "proton-drive" +# Client for Proton Mail and Proton Calendar +cask "proton-mail" +# Desktop client for Proton Pass +cask "proton-pass" +# Bridges Proton Mail to email clients supporting IMAP and SMTP protocols +cask "protonmail-bridge" +# All-in-one bookmark manager +cask "raindropio" +# Control your tools with a few keystrokes +cask "raycast" +# Save articles to read, highlight key content, and organise notes for review +cask "reader" +# Store SSH keys in the Secure Enclave +cask "secretive" +# Tool for sending personal documents to Kindles from Macs +cask "send-to-kindle" +# MySQL/MariaDB database management platform +cask "sequel-pro" +# Onion routing based messenger +cask "session" +# Tool that provides consistent, highly configurable symbols for apps +cask "sf-symbols" +# Instant messaging application focusing on security +cask "signal" +# Control your Sonos system +cask "sonos" +# Music streaming service +cask "spotify" +# Desktop client for Telegram messenger +cask "telegram-desktop" +# Unpacks archive files +cask "the-unarchiver" +# File transfer application +cask "transmit" +# Disk encryption software focusing on security based on TrueCrypt +cask "veracrypt" +# Virtualizer for x86 and arm64 hardware +cask "virtualbox@beta" +# Open-source code editor +cask "visual-studio-code" +# Multimedia player +cask "vlc" +# Web browser plugin +cask "vlc-webplugin" +# GPU-accelerated cross-platform terminal emulator and multiplexer +cask "wezterm" +# Native desktop client for WhatsApp +cask "whatsapp" +# Tax declaration for the fiscal year 2023 +cask "wiso-steuer-2024" +# Multiplayer code editor +cask "zed" +mas "1-Click Video Converter", id: 717545086 +mas "Aiko", id: 1672085276 +mas "DaVinci Resolve", id: 571213070 +mas "Day One", id: 1055511498 +mas "Draw Things", id: 6444050820 +mas "Exporter", id: 1099120373 +mas "Free MP4 Converter", id: 693443591 +mas "GarageBand", id: 682658836 +mas "Goodnotes", id: 1444383602 +mas "iA Writer", id: 775737590 +mas "iFinance 5", id: 1500241909 +mas "iMovie", id: 408981434 +mas "Key Codes", id: 414568915 +mas "Keynote", id: 409183694 +mas "Kindle", id: 302584613 +mas "Lieferungen", id: 290986013 +mas "Mela", id: 1568924476 +mas "MindNode", id: 1289197285 +mas "Numbers", id: 409203825 +mas "Pages", id: 409201541 +mas "Proton Pass for Safari", id: 6502835663 +mas "Pure Paste", id: 1611378436 +mas "Reeder", id: 1529448980 +mas "Save to Raindrop.io", id: 1549370672 +mas "Smart Converter", id: 447513724 +mas "Things", id: 904280696 +mas "Time Sink", id: 404363161 +mas "Typeface", id: 1062679359 +mas "Yoink", id: 457622435 +whalebrew "whalebrew/whalesay" +vscode "adamvoss.vscode-languagetool" +vscode "ahmadalli.vscode-nginx-conf" +vscode "akamud.vscode-caniuse" +vscode "alefragnani.bookmarks" +vscode "alefragnani.project-manager" +vscode "anteprimorac.html-end-tag-labels" +vscode "arcticicestudio.nord-visual-studio-code" +vscode "ardenivanov.svelte-intellisense" +vscode "astro-build.astro-vscode" +vscode "asvetliakov.snapshot-tools" +vscode "azemoh.one-monokai" +vscode "bbenoist.nix" +vscode "bierner.markdown-preview-github-styles" +vscode "bradlc.vscode-tailwindcss" +vscode "chakrounanas.turbo-console-log" +vscode "chrischinchilla.vale-vscode" +vscode "christian-kohler.npm-intellisense" +vscode "christian-kohler.path-intellisense" +vscode "chrmarti.regex" +vscode "codeium.codeium" +vscode "codesandbox-io.codesandbox-projects" +vscode "codezombiech.gitignore" +vscode "continue.continue" +vscode "csstools.postcss" +vscode "davidlday.languagetool-linter" +vscode "daylerees.rainglow" +vscode "dbaeumer.vscode-eslint" +vscode "deerawan.vscode-dash" +vscode "dendron.dendron" +vscode "dendron.dendron-paste-image" +vscode "donjayamanne.githistory" +vscode "dsznajder.es7-react-js-snippets" +vscode "eamodio.gitlens" +vscode "ecmel.vscode-html-css" +vscode "editorconfig.editorconfig" +vscode "enkia.tokyo-night" +vscode "equinusocio.vsc-material-theme" +vscode "equinusocio.vsc-material-theme-icons" +vscode "esbenp.prettier-vscode" +vscode "fallenmax.mithril-emmet" +vscode "file-icons.file-icons" +vscode "foam.foam-vscode" +vscode "gerane.theme-tomorrownight" +vscode "ginfuru.better-nunjucks" +vscode "github.copilot" +vscode "github.copilot-chat" +vscode "github.github-vscode-theme" +vscode "github.vscode-pull-request-github" +vscode "gruntfuggly.todo-tree" +vscode "hextorgb.hex-to-rgb" +vscode "idleberg.applescript" +vscode "jasonnutter.search-node-modules" +vscode "juanblanco.solidity" +vscode "kaleidoscope-app.vscode-ksdiff" +vscode "kamikillerto.vscode-colorize" +vscode "kotfu.bunch" +vscode "kumar-harsh.graphql-for-vscode" +vscode "liviuschera.noctis" +vscode "mattpocock.ts-error-translator" +vscode "mechatroner.rainbow-csv" +vscode "mehullakhanpal.file-ops" +vscode "mgmcdermott.vscode-language-babel" +vscode "miguelsolorio.fluent-icons" +vscode "miguelsolorio.min-theme" +vscode "miguelsolorio.symbols" +vscode "mikestead.dotenv" +vscode "morph.rift-vscode" +vscode "mrmlnc.vscode-attrs-sorter" +vscode "ms-azuretools.vscode-docker" +vscode "ms-ceintl.vscode-language-pack-de" +vscode "ms-playwright.playwright" +vscode "ms-python.debugpy" +vscode "ms-python.isort" +vscode "ms-python.python" +vscode "ms-python.vscode-pylance" +vscode "ms-toolsai.jupyter" +vscode "ms-toolsai.jupyter-keymap" +vscode "ms-toolsai.jupyter-renderers" +vscode "ms-toolsai.vscode-jupyter-cell-tags" +vscode "ms-toolsai.vscode-jupyter-slideshow" +vscode "ms-vscode-remote.remote-containers" +vscode "ms-vscode-remote.remote-ssh" +vscode "ms-vscode-remote.remote-ssh-edit" +vscode "ms-vscode-remote.remote-wsl" +vscode "ms-vscode-remote.vscode-remote-extensionpack" +vscode "ms-vscode.remote-explorer" +vscode "ms-vscode.remote-server" +vscode "ms-vsliveshare.vsliveshare" +vscode "nrwl.angular-console" +vscode "octref.vetur" +vscode "perkovec.emoji" +vscode "pkief.material-icon-theme" +vscode "pnp.polacode" +vscode "pomdtr.excalidraw-editor" +vscode "prisma.prisma" +vscode "quick-lint.quick-lint-js" +vscode "raynigon.nginx-formatter" +vscode "redhat.vscode-commons" +vscode "redhat.vscode-yaml" +vscode "rvest.vs-code-prettier-eslint" +vscode "sdras.night-owl" +vscode "silvenon.mdx" +vscode "sleistner.vscode-fileutils" +vscode "softwaredotcom.swdc-vscode" +vscode "styled-components.vscode-styled-components" +vscode "svanimpe.stencil" +vscode "svelte.svelte-vscode" +vscode "tamasfe.even-better-toml" +vscode "tchayen.markdown-links" +vscode "thenikso.github-plus-theme" +vscode "tyriar.sort-lines" +vscode "unifiedjs.vscode-mdx" +vscode "visualstudioexptteam.intellicode-api-usage-examples" +vscode "visualstudioexptteam.vscodeintellicode" +vscode "vivaxy.vscode-conventional-commits" +vscode "vscode-icons-team.vscode-icons" +vscode "vscodevim.vim" +vscode "wakatime.vscode-wakatime" +vscode "wayou.vscode-todo-highlight" +vscode "william-voyek.vscode-nginx" +vscode "wix.vscode-import-cost" +vscode "xabikos.javascriptsnippets" +vscode "xadillax.viml" +vscode "xyc.vscode-mdx-preview" +vscode "yinfei.luahelper" +vscode "yutengjing.open-in-external-app" +vscode "yzhang.markdown-all-in-one" +vscode "zhuangtongfa.material-theme" diff --git a/hosts/mac-mini/configuration.nix b/hosts/mac-mini/configuration.nix deleted file mode 100644 index 6b02ce1..0000000 --- a/hosts/mac-mini/configuration.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ config, ... }: - -{ - imports = [ - ../../darwin - ]; - - users.users.kogakure = { - name = "kogakure"; - home = "/Users/kogakure"; - }; - - nixpkgs.hostPlatform = "aarch64-darwin"; - - # Screenshots - system.defaults.screencapture.location = "${config.users.users.kogakure.home}/Dropbox/Bilder/Screenshots"; - - homebrew = import ./homebrew.nix; -} diff --git a/hosts/mac-mini/home.nix b/hosts/mac-mini/home.nix deleted file mode 100644 index 1d79ac2..0000000 --- a/hosts/mac-mini/home.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ pkgs, ... }: - -{ - imports = [ - ../../home - ]; - - # The home.packages option allows you to install Nix packages into your - # environment. - home.packages = with pkgs; [ - discord # All-in-one cross-platform voice and text chat for gamers - ]; -} diff --git a/hosts/mac-mini/homebrew.nix b/hosts/mac-mini/homebrew.nix deleted file mode 100644 index 66315e4..0000000 --- a/hosts/mac-mini/homebrew.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ - onActivation.cleanup = "uninstall"; - taps = [ ]; - brews = [ ]; - casks = [ - "ankerwork" # Webcam & audio device software - "daisydisk" # Disk space visualiser - "forticlient-vpn" # Free VPN client for FortiClient - "gemini" # Disk space cleaner that finds and deletes duplicated and similar files - "handbrake" # Open-source video transcoder. FIX: Broken on nixpks - "lbry" # Official client for LBRY, a decentralised file-sharing and payment network - "makemkv" # Video format converter (transcoder) - "protonvpn" # VPN client focusing on security - "raspberry-pi-imager" # # Imaging utility to install operating systems to a microSD card - "sweet-home3d" # Interior design application - "tor-browser" # Web browser focusing on security - "webtorrent" # Torrent streaming application - ]; - masApps = { }; -} diff --git a/hosts/macbook-2023/configuration.nix b/hosts/macbook-2023/configuration.nix deleted file mode 100644 index dc6f06e..0000000 --- a/hosts/macbook-2023/configuration.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ config, ... }: - -{ - imports = [ - ../../darwin - ]; - - users.users.kogakure = { - name = "stefan.imhoff"; - home = "/Users/stefan.imhoff"; - }; - - nixpkgs.hostPlatform = "aarch64-darwin"; - - # Screenshots - system.defaults.screencapture.location = "${config.users.users."stefan.imhoff".home}/Dropbox/Bilder/Screenshots"; - - homebrew = import ./homebrew.nix; -} diff --git a/hosts/macbook-2023/home.nix b/hosts/macbook-2023/home.nix deleted file mode 100644 index 8e25240..0000000 --- a/hosts/macbook-2023/home.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ pkgs, ... }: - -{ - imports = [ - ../../home - ]; - - # The home.packages option allows you to install Nix packages into your - # environment. - home.packages = with pkgs; [ ]; -} diff --git a/hosts/macbook-2023/homebrew.nix b/hosts/macbook-2023/homebrew.nix deleted file mode 100644 index 3e95198..0000000 --- a/hosts/macbook-2023/homebrew.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ - onActivation.cleanup = "uninstall"; - taps = [ ]; - brews = [ ]; - casks = [ - "microsoft-excel" - "microsoft-onenote" - "microsoft-outlook" - "microsoft-powerpoint" - "microsoft-remote-desktop" - "microsoft-word" - "onedrive" - ]; - masApps = { }; -} diff --git a/install.sh b/install.sh new file mode 100755 index 0000000..dddf29f --- /dev/null +++ b/install.sh @@ -0,0 +1,121 @@ +#!/bin/bash + +echo "Installing dotfiles" + +# Function to run a command with sudo +run_with_sudo() { + echo "$SUDO_PASSWORD" | sudo -S "$@" +} + +# Function to prevent sleep +prevent_sleep() { + caffeinate -d -i -m -s & + CAFFEINATE_PID=$! +} + +# Function to allow sleep again +allow_sleep() { + kill $CAFFEINATE_PID +} + +# Ask for the administrator password upfront and store it +read -s -p "Enter your sudo password: " SUDO_PASSWORD +echo + +# Verify the sudo password +if ! echo "$SUDO_PASSWORD" | sudo -S true; then + echo "Incorrect sudo password. Exiting." + exit 1 +fi + +echo "Sudo access granted." + +# Prevent sleep +prevent_sleep +echo "Sleep prevention activated." + +# Trap to ensure we allow sleep when the script exits +trap allow_sleep EXIT + +# Initializing Git submodules +echo "Initializing submodule(s)" +git submodule update --init --recursive + +# Symlink dotfiles +stow --no-folding --adopt -v . + +# Download wezterm.terminfo +curl https://raw.githubusercontent.com/wez/wezterm/master/termwiz/data/wezterm.terminfo | tic -x - + +# Check if Homebrew is installed +if ! command -v brew &>/dev/null; then + echo "Homebrew not found. Installing Homebrew..." + /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" + + # Add Homebrew to PATH for the current session + eval "$(/opt/homebrew/bin/brew shellenv)" + + echo "Homebrew installed successfully." +else + echo "Homebrew is already installed." +fi + +# Install Homebrew packages +echo "Restoring Homebrew packages..." +./bin/homebrew-restore + +# Setup fish shell as default shell +echo "Configuring fish as default shell" +if ! command -v fish &>/dev/null; then + echo "Fish shell not found. Installing fish..." + brew install fish +fi + +# Tmux plugin manager +git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm +~/.tmux/plugins/tpm/scripts/install_plugins.sh >/dev/null 2>&1 + +# GitHub CLI extensions +gh extension install github/gh-copilot +gh extension install dlvhdr/gh-dash +gh extension install jrnxf/gh-eco +gh extension install gennaro-tedesco/gh-f +gh extension install yusukebe/gh-markdown-preview +gh extension install meiji163/gh-notify +gh extension install seachicken/gh-poi +gh extension install gennaro-tedesco/gh-s + +# Install tmux plugins +~/.tmux/plugins/tpm/bin/install_plugins + +# Install Fish plugins +fisher install jorgebucaran/fisher +fisher install jorgebucaran/autopair.fish +fisher install jorgebucaran/replay.fish +fisher install edc/bass +fisher install jethrokuan/z +fisher install joshmedeski/fish-lf-icons +fisher install jethrokuan/fzf + +# Install Neovim plugins +nvim --headless "+Lazy! sync" +qa + +# Start services +yabai --start-service +skhd --start-service + +# Show the ~/Library folder +chflags nohidden ~/Library + +# Show the /Volumes folder +sudo chflags nohidden /Volumes + +# Icon Settings +/usr/libexec/PlistBuddy -c "Set DesktopViewSettings:IconViewSettings:iconSize 44" ~/Library/Preferences/com.apple.finder.plist +/usr/libexec/PlistBuddy -c "Set DesktopViewSettings:IconViewSettings:gridSpacing 60" ~/Library/Preferences/com.apple.finder.plist + +# Change default shell to fish +echo "Changing default shell to fish" +run_with_sudo chsh -s $(which fish) $USER + +echo "Done." diff --git a/private b/private new file mode 160000 index 0000000..1358df3 --- /dev/null +++ b/private @@ -0,0 +1 @@ +Subproject commit 1358df346dacf174394352a7ddeee10f2c4ca22d diff --git a/private/bin b/private/bin deleted file mode 160000 index 2da2514..0000000 --- a/private/bin +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 2da2514b21635faea1b15fd2f7bb2c38acbd8528