diff --git a/bin/clean b/bin/clean index 1999885..0a0b251 100755 --- a/bin/clean +++ b/bin/clean @@ -7,7 +7,3 @@ fi if command -v nix &> /dev/null; then nix-collect-garbage -d fi - -if command -v doom &> /dev/null; then - doom purge -fi diff --git a/bin/sync b/bin/sync index 40deefe..55328dc 100755 --- a/bin/sync +++ b/bin/sync @@ -1,17 +1,4 @@ #!/bin/sh - -# Required parameters: -# @raycast.schemaVersion 1 -# @raycast.title Test -# @raycast.mode compact - -# Optional parameters: -# @raycast.icon 🤖 - -# Documentation: -# @raycast.author dustinswan -# @raycast.authorURL https://raycast.com/dustinswan - if command -v mbsync >/dev/null then diff --git a/bin/update b/bin/update index 9b32edb..008e34e 100755 --- a/bin/update +++ b/bin/update @@ -8,6 +8,5 @@ fi if command -v nix &> /dev/null; then nix-channel --update - nix-env -u home-manager switch fi diff --git a/home-cli.nix b/home-cli.nix index 62c6ff6..08a783c 100644 --- a/home-cli.nix +++ b/home-cli.nix @@ -6,37 +6,45 @@ in { home.stateVersion = "18.09"; - home.packages = with pkgs; [ - # AI - aichat - # aider - mods - shell_gpt + home.username = "dustinswan"; + home.homeDirectory = "/Users/dustinswan"; + + imports = [ + + ]; - fd - mosh + # catppuccin.enable = true; # TODO + + home.packages = with pkgs; [ + fd # `fd PATTERN`; `fd` is like ls-R; `-e ext` searches by extension; `-g` for glob; `-H` searches hidden files; `-u` for unrestricted; `fd -e jpg -x convert {} {.}.png` + mosh # like ssh but better on spotty networks w3m - nnn hexyl wget httpie + hurl + atac # API client + # bruno nmap - trippy - ouch + trippy # sudo trip example.com + ouch # "Painless compression and decompression"; `ouch d a.zip b.tar.gz c.tar -d output_dir`; `ouch c a.txt b.txt archive.zip`; `ouch list archive.zip --tree` sshs + ngrok + ddev + bitwarden-cli + mkcert timg - sox restic - bitwarden-cli gnupg gpg-tui rage sd - libqalculate + kalker # lnav glow - spotify-tui + spotify-player spotifyd + toot yt-dlp youtube-tui amfora @@ -48,21 +56,26 @@ in jo fx jc + xsv jless miller - visidata + # visidata + jwt-cli mysql # sc-im cacert weechat cointop tz + sttr # string operations. e.g. sttr md5 "Hello World"; sttr snake "ChangeCase" ddgr so silicon imagemagick magic-wormhole - nixfmt + # tunnel # portal send ... # portal receive 1-intertia-elliptical-celestial + termscp # SCP/SFTP/FTP/S3 + # nixfmt # deprecated? shellcheck vale # tectonic @@ -73,6 +86,8 @@ in yarn flyctl lazydocker + php83 + php83Packages.composer nodePackages.typescript-language-server nodePackages.stylelint nodePackages.js-beautify @@ -123,10 +138,10 @@ in "$HOME/.local/bin" "$HOME/.cargo/bin" "$HOME/.npm-global/bin" - "/opt/homebrew/opt/php@7.4/bin" - "/opt/homebrew/opt/php@7.4/sbin" ]; + xdg.enable = true; + programs.home-manager.enable = true; programs.tmux = { @@ -146,34 +161,20 @@ in pain-control # prefix |, -, \, _ to split; prefix h, j, k, l to switch; prefix H, J, K, L to resize; prefix <, > to move windows fzf-tmux-url # prefix u -> fzf urls yank # prefix y -> copy command line to clipboard; prefix Y -> copy pwd to clipboard; search + y -> copy to clipboard - open # highlight: o -> open; ctrl-o -> $EDITOR; S -> web search + # open # highlight: o -> open; ctrl-o -> $EDITOR; S -> web search vim-tmux-navigator # ctrl-h, -j, -k, -l -> move between tmux and vim splits extrakto # prefix tab -> fuzzy find text on screen; enter to copy; tab to paste + fingers # prefix F -> copy/open/edit items on screen by letter ]; extraConfig = '' - set -g status-right "" - set -g status-left "" - set -g status-style fg=white - set-window-option -g window-status-format '#[fg=cyan,bright,dim]#I #[fg=white,bright,dim]#W ' - set-window-option -g window-status-current-format '#[fg=cyan,bright,nodim]#I #[fg=white,bright,nodim]#W ' set -ag terminal-overrides ",xterm-256color:RGB" - - # bind -n C-0 select-window -t0 - # bind -n C-1 select-window -t1 - # bind -n C-2 select-window -t2 - # bind -n C-3 select-window -t3 - # bind -n C-4 select-window -t4 - # bind -n C-5 select-window -t5 - # bind -n C-6 select-window -t6 - # bind -n C-7 select-window -t7 - # bind -n C-8 select-window -t8 - # bind -n C-9 select-window -t9 ''; + catppuccin.enable = true; }; programs.eza = { enable = true; - enableAliases = true; + enableZshIntegration = true; git = true; }; @@ -185,12 +186,13 @@ in programs.zsh = { enable = true; - enableAutosuggestions = true; + autosuggestion.enable = true; syntaxHighlighting.enable = true; oh-my-zsh = { enable = true; plugins = [ "git" "httpie" "aws" "fd" "fzf" "mosh" "npm" "ripgrep" "rsync" "sudo" "yarn" "vi-mode" ]; }; + syntaxHighlighting.catppuccin.enable = true; }; programs.direnv = { @@ -201,6 +203,7 @@ in programs.starship = { enable = true; enableZshIntegration = true; + catppuccin.enable = true; }; programs.fzf = { @@ -219,6 +222,7 @@ in fileWidgetCommand = "fd --type file --color=always"; fileWidgetOptions = [ "--min-height 30 --preview-window noborder --preview '(bat --style=numbers,changes --wrap never --color always {} || cat {} || tree -C {}) 2> /dev/null'" ]; + catppuccin.enable = true; }; programs.ssh = { @@ -260,7 +264,10 @@ in # signByDefault = true; key = "AD11750151C10881970BD943AB49BD6B2B3A6377"; }; - delta.enable = true; + delta = { + enable = true; + catppuccin.enable = true; + }; }; # programs.jujutsu = { @@ -269,8 +276,14 @@ in # }; programs.gh.enable = true; - programs.lazygit.enable = true; - programs.gitui.enable = true; + programs.lazygit = { + enable = true; + catppuccin.enable = true; + }; + programs.gitui = { + enable = true; + catppuccin.enable = true; + }; programs.neovim = { enable = true; @@ -283,17 +296,29 @@ in }; # xdg.configFile."nvim/lua/plugins/lazyvim-plugins.lua".source = ./lazyvim-plugins.lua; + programs.helix = { + enable = true; + catppuccin.enable = true; + }; + programs.btop = { enable = true; settings = { - color_theme = "tokyo-night"; + # color_theme = "tokyo-night"; theme_background = false; vim_keys = true; }; + catppuccin.enable = true; }; - programs.bat.enable = true; - programs.yazi.enable = true; + programs.bat = { + enable = true; + catppuccin.enable = true; + }; + programs.yazi = { + enable = true; + catppuccin.enable = true; + }; # programs.bottom.enable = true; programs.gpg.enable = true; programs.mpv.enable = true; diff --git a/home-gui.nix b/home-gui.nix index a58bea1..60afdf4 100644 --- a/home-gui.nix +++ b/home-gui.nix @@ -22,5 +22,6 @@ size = 16.0; }; }; + catppuccin.enable = true; }; } diff --git a/home-mac.nix b/home-mac.nix index f301c4e..6eeb5ce 100644 --- a/home-mac.nix +++ b/home-mac.nix @@ -1,7 +1,10 @@ -{ pkgs, lib, ... }: +{ pkgs, ... }: { - home.packages = with pkgs; [ pinentry_mac terminal-notifier ]; + home.packages = with pkgs; [ + pinentry_mac + terminal-notifier + ]; home.file.gpg-agent = { target = ".gnupg/gpg-agent.conf"; @@ -11,20 +14,5 @@ ''; }; - # home.file.gitignore = { - # target = ".gitignore"; - # text = ''Library''; - # }; - - launchd.agents.duplicati = { - enable = true; - config = { - ProgramArguments = [ "/Users/dustinswan/.nix-profile/bin/duplicati-server" ]; - RunAtLoad = true; - LaunchOnlyOnce = true; - KeepAlive = true; - }; - }; - imports = [ ./home-cli.nix ./home-gui.nix ./home-mail.nix ]; } diff --git a/home-mail.nix b/home-mail.nix index 82cc3a7..3b107c9 100644 --- a/home-mail.nix +++ b/home-mail.nix @@ -10,7 +10,7 @@ in programs.msmtp.enable = true; - # programs.himalaya.enable = true; + programs.himalaya.enable = true; programs.mu.enable = true; @@ -52,10 +52,11 @@ in himalaya = { enable = true; settings = { - backend = "maildir"; - message.send.backend = "smtp"; - sent-folder = "INBOX.Sent"; - draft-folder = "INBOX.Drafts"; + # backend = "maildir"; + # maildir.root-dir = ""; + # message.send.backend = "smtp"; + # sent-folder = "INBOX.Sent"; + # draft-folder = "INBOX.Drafts"; }; }; signature = { diff --git a/lazyvim-plugins.lua b/lazyvim-plugins.lua index aea27cf..0dffbb2 100644 --- a/lazyvim-plugins.lua +++ b/lazyvim-plugins.lua @@ -1,101 +1,108 @@ return { - { "tpope/vim-sleuth" }, + { "tpope/vim-sleuth" }, - { - "catppuccin/nvim", - name = "catppuccin", - config = function() - require("catppuccin").setup({ - transparent_background = true, - }) - end, - }, + { + "catppuccin/nvim", + name = "catppuccin", + config = function() + require("catppuccin").setup({ + transparent_background = true, + }) + end, + }, - -- { - -- "f-person/auto-dark-mode.nvim", - -- config = { - -- set_dark_mode = function() - -- vim.api.nvim_set_option("background", "dark") - -- vim.cmd("colorscheme catppuccin") - -- -- vim.cmd("colorscheme rose-pine") - -- end, - -- set_light_mode = function() - -- vim.api.nvim_set_option("background", "light") - -- vim.cmd("colorscheme catppuccin") - -- -- vim.cmd("colorscheme rose-pine") - -- end, - -- }, - -- }, + -- { + -- "f-person/auto-dark-mode.nvim", + -- config = { + -- set_dark_mode = function() + -- vim.api.nvim_set_option("background", "dark") + -- vim.cmd("colorscheme catppuccin") + -- -- vim.cmd("colorscheme rose-pine") + -- end, + -- set_light_mode = function() + -- vim.api.nvim_set_option("background", "light") + -- vim.cmd("colorscheme catppuccin") + -- -- vim.cmd("colorscheme rose-pine") + -- end, + -- }, + -- }, - { - "LazyVim/LazyVim", - opts = { - colorscheme = "catppuccin", - background_colour = "#000000", - }, - }, + { + "LazyVim/LazyVim", + opts = { + colorscheme = "catppuccin", + background_colour = "#000000", + }, + }, - { - "nvim-orgmode/orgmode", - config = function() - require("orgmode").setup_ts_grammar() + { + "nvim-orgmode/orgmode", + config = function() + -- require("orgmode").setup_ts_grammar() - require("nvim-treesitter.configs").setup({ - highlight = { - enable = true, - additional_vim_regex_highlighting = { "org" }, -- Required for spellcheck, some LaTex highlights and code block highlights that do not have ts grammar - }, - ensure_installed = { "org" }, -- Or run :TSUpdate org - }) + require("nvim-treesitter.configs").setup({ + highlight = { + enable = true, + additional_vim_regex_highlighting = { "org" }, -- Required for spellcheck, some LaTex highlights and code block highlights that do not have ts grammar + }, + ensure_installed = { "org" }, -- Or run :TSUpdate org + }) - require("orgmode").setup({ - org_agenda_files = { "~/Sync/Notes/*" }, - org_default_notes_file = "~/Sync/Notes/Main.org", - }) - end, - }, + require("orgmode").setup({ + org_agenda_files = { "~/Sync/Notes/*" }, + org_default_notes_file = "~/Sync/Notes/Main.org", + }) + end, + }, - { "dhruvasagar/vim-table-mode" }, + { "dhruvasagar/vim-table-mode" }, - { - "akinsho/toggleterm.nvim", - version = "*", - config = true, - keys = { - { [[]] }, - { - "TT", - "ToggleTerm direction=horizontal", - desc = "Open a horizontal terminal", - }, - { - "TV", - "ToggleTerm size=60 direction=vertical", - desc = "Open a vertical terminal", - }, - }, - }, + { + "akinsho/toggleterm.nvim", + version = "*", + config = true, + keys = { + { [[]] }, + { + "TT", + "ToggleTerm direction=horizontal", + desc = "Open a horizontal terminal", + }, + { + "TV", + "ToggleTerm size=60 direction=vertical", + desc = "Open a vertical terminal", + }, + }, + }, - { - "christoomey/vim-tmux-navigator", - cmd = { - "TmuxNavigateLeft", - "TmuxNavigateDown", - "TmuxNavigateUp", - "TmuxNavigateRight", - "TmuxNavigatePrevious", - }, - keys = { - { "", "TmuxNavigateLeft" }, - { "", "TmuxNavigateDown" }, - { "", "TmuxNavigateUp" }, - { "", "TmuxNavigateRight" }, - { "", "TmuxNavigatePrevious" }, - }, - }, + { + "christoomey/vim-tmux-navigator", + cmd = { + "TmuxNavigateLeft", + "TmuxNavigateDown", + "TmuxNavigateUp", + "TmuxNavigateRight", + "TmuxNavigatePrevious", + }, + keys = { + { "", "TmuxNavigateLeft" }, + { "", "TmuxNavigateDown" }, + { "", "TmuxNavigateUp" }, + { "", "TmuxNavigateRight" }, + { "", "TmuxNavigatePrevious" }, + }, + }, - -- { - -- "https://git.sr.ht/~soywod/himalaya-vim", - -- }, + { "lukas-reineke/headlines.nvim", opts = { org = { fat_headlines = false } } }, + + { + "nvim-treesitter/nvim-treesitter", + opts = function(_, opts) + vim.list_extend(opts.ensure_installed, { + "php", + }) + end, + }, } diff --git a/themes/catppuccin/catppuccin.yml b/themes/catppuccin/catppuccin.yml deleted file mode 100644 index 9c0907a..0000000 --- a/themes/catppuccin/catppuccin.yml +++ /dev/null @@ -1,315 +0,0 @@ - color_schemes: - - latte: &latte - - # Default colors - primary: - background: '#eff1f5' # base - foreground: '#4c4f69' # text - # Bright and dim foreground colors - dim_foreground: '#4c4f69' # text - bright_foreground: '#4c4f69' # text - - # Cursor colors - cursor: - text: '#eff1f5' # base - cursor: '#dc8a78' # rosewater - vi_mode_cursor: - text: '#eff1f5' # base - cursor: '#7287fd' # lavender - - # Search colors - search: - matches: - foreground: '#eff1f5' # base - background: '#6c6f85' # subtext0 - focused_match: - foreground: '#eff1f5' # base - background: '#40a02b' # green - bar: - foreground: '#eff1f5' # base - background: '#6c6f85' # subtext0 - - # Keyboard regex hints - hints: - start: - foreground: '#eff1f5' # base - background: '#df8e1d' # yellow - end: - foreground: '#eff1f5' # base - background: '#6c6f85' # subtext0 - - # Selection colors - selection: - text: '#eff1f5' # base - background: '#dc8a78' # rosewater - - # Normal colors - normal: - black: '#4C4F69' # text - red: '#D20F39' # red - green: '#40A02B' # green - yellow: '#DF8E1D' # yellow - blue: '#1E66F5' # blue - magenta: '#EA76CB' # pink - cyan: '#179299' # teal - white: '#ACB0BE' # surface2 - - # Bright colors - bright: - black: '#4C4F69' # text - red: '#D20F39' # red - green: '#40A02B' # green - yellow: '#DF8E1D' # yellow - blue: '#1E66F5' # blue - magenta: '#EA76CB' # pink - cyan: '#179299' # teal - white: '#ACB0BE' # surface2 - - # Dim colors - dim: - black: '#4C4F69' # text - red: '#D20F39' # red - green: '#40A02B' # green - yellow: '#DF8E1D' # yellow - blue: '#1E66F5' # blue - magenta: '#EA76CB' # pink - cyan: '#179299' # teal - white: '#ACB0BE' # surface2 - - - - frappe: &frappe - - # Default colors - primary: - background: '#303446' # base - foreground: '#c6d0f5' # text - # Bright and dim foreground colors - dim_foreground: '#c6d0f5' # text - bright_foreground: '#c6d0f5' # text - - # Cursor colors - cursor: - text: '#303446' # base - cursor: '#f2d5cf' # rosewater - vi_mode_cursor: - text: '#303446' # base - cursor: '#babbf1' # lavender - - # Search colors - search: - matches: - foreground: '#303446' # base - background: '#a5adce' # subtext0 - focused_match: - foreground: '#303446' # base - background: '#a6d189' # green - bar: - foreground: '#303446' # base - background: '#a5adce' # subtext0 - - # Keyboard regex hints - hints: - start: - foreground: '#303446' # base - background: '#e5c890' # yellow - end: - foreground: '#303446' # base - background: '#a5adce' # subtext0 - - # Selection colors - selection: - text: '#303446' # base - background: '#f2d5cf' # rosewater - - # Normal colors - normal: - black: '#51576d' # surface1 - red: '#e78284' # red - green: '#a6d189' # green - yellow: '#e5c890' # yellow - blue: '#8caaee' # blue - magenta: '#f4b8e4' # pink - cyan: '#81c8be' # teal - white: '#b5bfe2' # subtext1 - - # Bright colors - bright: - black: '#51576d' # surface1 - red: '#e78284' # red - green: '#a6d189' # green - yellow: '#e5c890' # yellow - blue: '#8caaee' # blue - magenta: '#f4b8e4' # pink - cyan: '#81c8be' # teal - white: '#b5bfe2' # subtext1 - - # Dim colors - dim: - black: '#51576d' # surface1 - red: '#e78284' # red - green: '#a6d189' # green - yellow: '#e5c890' # yellow - blue: '#8caaee' # blue - magenta: '#f4b8e4' # pink - cyan: '#81c8be' # teal - white: '#b5bfe2' # subtext1 - - - - macchiato: &macchiato - - # Default colors - primary: - background: '#24273a' # base - foreground: '#cad3f5' # text - # Bright and dim foreground colors - dim_foreground: '#cad3f5' # text - bright_foreground: '#cad3f5' # text - - # Cursor colors - cursor: - text: '#24273a' # base - cursor: '#f4dbd6' # rosewater - vi_mode_cursor: - text: '#24273a' # base - cursor: '#b7bdf8' # lavender - - # Search colors - search: - matches: - foreground: '#24273a' # base - background: '#a5adcb' # subtext0 - focused_match: - foreground: '#24273a' # base - background: '#a6da95' # green - bar: - foreground: '#24273a' # base - background: '#a5adcb' # subtext0 - - # Keyboard regex hints - hints: - start: - foreground: '#24273a' # base - background: '#eed49f' # yellow - end: - foreground: '#24273a' # base - background: '#a5adcb' # subtext0 - - # Selection colors - selection: - text: '#24273a' # base - background: '#f4dbd6' # rosewater - - # Normal colors - normal: - black: '#494d64' # surface1 - red: '#ed8796' # red - green: '#a6da95' # green - yellow: '#eed49f' # yellow - blue: '#8aadf4' # blue - magenta: '#f5bde6' # pink - cyan: '#8bd5ca' # teal - white: '#b8c0e0' # subtext1 - - # Bright colors - bright: - black: '#494d64' # surface1 - red: '#ed8796' # red - green: '#a6da95' # green - yellow: '#eed49f' # yellow - blue: '#8aadf4' # blue - magenta: '#f5bde6' # pink - cyan: '#8bd5ca' # teal - white: '#b8c0e0' # subtext1 - - # Dim colors - dim: - black: '#494d64' # surface1 - red: '#ed8796' # red - green: '#a6da95' # green - yellow: '#eed49f' # yellow - blue: '#8aadf4' # blue - magenta: '#f5bde6' # pink - cyan: '#8bd5ca' # teal - white: '#b8c0e0' # subtext1 - - - - mocha: &mocha - - # Default colors - primary: - background: '#1e1e2e' # base - foreground: '#cdd6f4' # text - # Bright and dim foreground colors - dim_foreground: '#cdd6f4' # text - bright_foreground: '#cdd6f4' # text - - # Cursor colors - cursor: - text: '#1e1e2e' # base - cursor: '#f5e0dc' # rosewater - vi_mode_cursor: - text: '#1e1e2e' # base - cursor: '#b4befe' # lavender - - # Search colors - search: - matches: - foreground: '#1e1e2e' # base - background: '#a6adc8' # subtext0 - focused_match: - foreground: '#1e1e2e' # base - background: '#a6e3a1' # green - bar: - foreground: '#1e1e2e' # base - background: '#a6adc8' # subtext0 - - # Keyboard regex hints - hints: - start: - foreground: '#1e1e2e' # base - background: '#f9e2af' # yellow - end: - foreground: '#1e1e2e' # base - background: '#a6adc8' # subtext0 - - # Selection colors - selection: - text: '#1e1e2e' # base - background: '#f5e0dc' # rosewater - - # Normal colors - normal: - black: '#45475a' # surface1 - red: '#f38ba8' # red - green: '#a6e3a1' # green - yellow: '#f9e2af' # yellow - blue: '#89b4fa' # blue - magenta: '#f5c2e7' # pink - cyan: '#94e2d5' # teal - white: '#bac2de' # subtext1 - - # Bright colors - bright: - black: '#45475a' # surface1 - red: '#f38ba8' # red - green: '#a6e3a1' # green - yellow: '#f9e2af' # yellow - blue: '#89b4fa' # blue - magenta: '#f5c2e7' # pink - cyan: '#94e2d5' # teal - white: '#bac2de' # subtext1 - - # Dim colors - dim: - black: '#45475a' # surface1 - red: '#f38ba8' # red - green: '#a6e3a1' # green - yellow: '#f9e2af' # yellow - blue: '#89b4fa' # blue - magenta: '#f5c2e7' # pink - cyan: '#94e2d5' # teal - white: '#bac2de' # subtext1 diff --git a/themes/catppuccin/newsboat.catpuccin b/themes/catppuccin/newsboat.catpuccin deleted file mode 100644 index ac57e94..0000000 --- a/themes/catppuccin/newsboat.catpuccin +++ /dev/null @@ -1,18 +0,0 @@ -color listnormal color15 default -color listnormal_unread color2 default -color listfocus_unread color2 color0 -color listfocus default color0 -color background default default -color article default default -color end-of-text-marker color8 default -color info color4 color8 -color hint-separator default color8 -color hint-description default color8 -color title color14 color8 - -highlight article "^(Feed|Title|Author|Link|Date): .+" color4 default bold -highlight article "^(Feed|Title|Author|Link|Date):" color14 default bold - -highlight article "\\((link|image|video)\\)" color8 default -highlight article "https?://[^ ]+" color4 default -highlight article "\[[0-9]+\]" color6 default bold