From 72697b966b08766b00d186c7ed3939ca4f53da9a Mon Sep 17 00:00:00 2001 From: Dustin Swan Date: Wed, 1 Jun 2022 17:25:35 -0400 Subject: [PATCH] catppuccin, khard, khal, vdirsyncer with Google, cleaning, etc. --- catppuccin.yml | 315 +++++++++++++++++++++++++++++++++++++++++++++++++ home-cli.nix | 16 ++- home-gui.nix | 61 +++++----- home-mail.nix | 58 +++++++-- lunar.lua | 9 +- 5 files changed, 412 insertions(+), 47 deletions(-) create mode 100644 catppuccin.yml diff --git a/catppuccin.yml b/catppuccin.yml new file mode 100644 index 0000000..9c0907a --- /dev/null +++ b/catppuccin.yml @@ -0,0 +1,315 @@ + 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/home-cli.nix b/home-cli.nix index b0ea677..12d7c0c 100644 --- a/home-cli.nix +++ b/home-cli.nix @@ -5,9 +5,9 @@ let in { home.packages = with pkgs; [ - ripgrep fd wget mosh w3m nnn urlview hexyl httpie timg sox du-dust duplicati bitwarden-cli gnupg gpg-tui rage sd eva glow restic spotify-tui spotifyd slides manix amfora weechat duf procs pandoc magic-wormhole qrcp pastel jq jo fx jc miller visidata sc-im bandwhich nixfmt shellcheck fontconfig cacert + ripgrep fd wget mosh w3m nnn urlview hexyl httpie timg sox du-dust duplicati bitwarden-cli gnupg gpg-tui rage sd eva glow restic spotify-tui spotifyd slides manix amfora weechat duf procs pandoc magic-wormhole qrcp pastel jq jo fx jc miller visidata sc-im bandwhich nixfmt shellcheck fontconfig cacert vale nodejs deno yarn nodePackages.typescript-language-server nodePackages.stylelint nodePackages.js-beautify nodePackages.expo-cli - ocaml dune_2 ocamlPackages.utop ocamlPackages.ocp-indent ocamlPackages.merlin + # ocaml dune_2 ocamlPackages.utop ocamlPackages.ocp-indent ocamlPackages.merlin rustc go cmake # racket-minimal ghc cargo haskell-language-server hlint haskellPackages.hoogle ispell aspell aspellDicts.en aspellDicts.en-computers aspellDicts.en-science aspellDicts.fr aspellDicts.de aspellDicts.eo aspellDicts.es @@ -104,7 +104,15 @@ in enable = true; enableZshIntegration = true; defaultCommand = "fd --type file --color=always"; - defaultOptions = [ "--height 40%" "--border" "--ansi" ]; + defaultOptions = [ + "--height 40%" + "--border" + "--ansi" + "--color bg+:#302D41,bg:#1E1E2E,spinner:#F8BD96,hl:#F28FAD" + "--color=fg:#D9E0EE,header:#F28FAD,info:#DDB6F2,pointer:#F8BD96" + "--color=marker:#F8BD96,fg+:#F2CDCD,prompt:#DDB6F2,hl+:#F28FAD" + ]; + 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'" ]; }; @@ -157,6 +165,8 @@ in }; }; + programs.gh.enable = true; + programs.lazygit.enable = true; programs.gitui = { diff --git a/home-gui.nix b/home-gui.nix index 1431732..72b024b 100644 --- a/home-gui.nix +++ b/home-gui.nix @@ -30,36 +30,37 @@ { key = "B"; mods = "Alt"; chars = "\\x1bb"; } # - { key: B, mods: Alt, chars: "\x1bb" } ]; - colors = { # Nord - primary = { - background = "0x2E3440"; - foreground = "0xD8DEE9"; - }; - cursor = { - text = "0x2E3440"; - cursor = "0xD8DEE9"; - }; - normal = { - black = "0x3B4252"; - red = "0xBF616A"; - green = "0xA3BE8C"; - yellow = "0xEBCB8B"; - blue = "0x81A1C1"; - magenta = "0xB48EAD"; - cyan = "0x88C0D0"; - white = "0xE5E9F0"; - }; - bright = { - black = "0x4C566A"; - red = "0xBF616A"; - green = "0xA3BE8C"; - yellow = "0xEBCB8B"; - blue = "0x81A1C1"; - magenta = "0xB48EAD"; - cyan = "0x8FBCBB"; - white = "0xECEFF4"; - }; - }; + + # colors = { # Nord + # primary = { + # background = "0x2E3440"; + # foreground = "0xD8DEE9"; + # }; + # cursor = { + # text = "0x2E3440"; + # cursor = "0xD8DEE9"; + # }; + # normal = { + # black = "0x3B4252"; + # red = "0xBF616A"; + # green = "0xA3BE8C"; + # yellow = "0xEBCB8B"; + # blue = "0x81A1C1"; + # magenta = "0xB48EAD"; + # cyan = "0x88C0D0"; + # white = "0xE5E9F0"; + # }; + # bright = { + # black = "0x4C566A"; + # red = "0xBF616A"; + # green = "0xA3BE8C"; + # yellow = "0xEBCB8B"; + # blue = "0x81A1C1"; + # magenta = "0xB48EAD"; + # cyan = "0x8FBCBB"; + # white = "0xECEFF4"; + # }; + # }; }; }; } diff --git a/home-mail.nix b/home-mail.nix index daa4c94..09883bd 100644 --- a/home-mail.nix +++ b/home-mail.nix @@ -1,15 +1,23 @@ { pkgs, ... }: +let + secrets = import ./secrets.nix; +in { - home.packages = with pkgs; [ aerc vdirsyncer imapnotify ]; + home.packages = with pkgs; [ aerc vdirsyncer khal khard imapnotify ]; + programs.mbsync.enable = true; + programs.msmtp.enable = true; + programs.neomutt = { enable = true; sidebar.enable = true; sort = "reverse-threads"; }; + programs.himalaya.enable = true; + programs.mu.enable = true; accounts.email = { @@ -70,12 +78,6 @@ source = maildir://~/Mail/FastMail from = "Dustin Swan " outgoing = ${builtins.getEnv "HOME"}/.nix-profile/bin/msmtp --read-envelope-from ''; -# text = ''[FastMail] -#source = imaps://dustinswan%40fastmail.com@mail.messagingengine.com:993 -#from = "Dustin Swan " -#outgoing = ${builtins.getEnv "HOME"}/.nix-profile/bin/msmtp --read-envelope-from -#source-cred-cmd = "gpg -dq ${builtins.getEnv "HOME"}/.dustinswan@fastmail.com-password.gpg" -#''; }; home.file.vdirsyncer = { @@ -100,6 +102,7 @@ url = "https://carddav.messagingengine.com/" username = "dustinswan@fastmail.com" password.fetch = ["command", "~/dotfiles/bin/decrypt-password", "dustinswan@fastmail.com"] + [pair fastmail_calendar] a = "fastmail_calendar_local" b = "fastmail_calendar_remote" @@ -109,28 +112,59 @@ metadata = ["color", "displayname"] [storage fastmail_calendar_local] type = "filesystem" -path = "~/Calendars/" +path = "~/Calendars/Fastmail" fileext = ".ics" [storage fastmail_calendar_remote] type = "caldav" url = "https://caldav.messagingengine.com/" username = "dustinswan@fastmail.com" -password.fetch = ["command", "~/dotfiles/bin/decrypt-password", "dustinswan@fastmail.com"]''; +password.fetch = ["command", "~/dotfiles/bin/decrypt-password", "dustinswan@fastmail.com"] + + +[pair google_calendar] +a = "google_calendar_local" +b = "google_calendar_remote" +collections = null +# conflict_resolution = "b wins" +# metadata = ["color", "displayname"] + +[storage google_calendar_local] +type = "filesystem" +path = "~/Calendars/Google" +fileext = ".ics" + +[storage google_calendar_remote] +type = "http" +url = "${secrets.google-calendar.our-stuff}" +# type = "google_calendar" +# token_file = "~/token_file" +# client_id = "${secrets.google-vdirsyncer.id}" +# client_secret = "${secrets.google-vdirsyncer.secret}" +''; }; home.file.khard = { - target = ".config/khard/config"; + target = ".config/khard/khard.conf"; text = ''[addressbooks] [[contacts]] -path = ~/Contacts/Default''; +path = ~/Contacts/Default + +[general] +default_action = list''; }; home.file.khal = { target = ".config/khal/config"; text = ''[calendars] [[Fastmail]] -path = ~/Calendars/* +path = ~/Calendars/Fastmail/* +color = light green +type = discover + +[[Google]] +path = ~/Calendars/Google +color = light blue type = discover [locale] diff --git a/lunar.lua b/lunar.lua index 6fdb624..762446f 100644 --- a/lunar.lua +++ b/lunar.lua @@ -1,7 +1,7 @@ lvim.log.level = "warn" lvim.format_on_save = false lvim.leader = "space" -lvim.colorscheme = "nord" +lvim.colorscheme = "catppuccin" lvim.transparent_window = true -- vim.opt.cmdheight = 1 vim.opt.conceallevel = 2 -- TODO: only for org files @@ -18,6 +18,7 @@ table.insert(lvim.builtin.cmp.sources, { name = "orgmode" }) lvim.plugins = { { "shaunsingh/nord.nvim" }, + { "catppuccin/nvim" }, -- { "rose-pine/neovim" }, -- { "folke/tokyonight.nvim" }, { 'dhruvasagar/vim-table-mode' }, @@ -32,7 +33,6 @@ lvim.plugins = { { "ray-x/lsp_signature.nvim", event = "BufRead", config = function() require "lsp_signature".setup() end }, { "lukas-reineke/indent-blankline.nvim", event = "BufRead" }, { "nvim-orgmode/orgmode", config = function() - require('orgmode').setup_ts_grammar() -- vim.opt.conceallevel = 1 require('orgmode').setup { @@ -102,6 +102,8 @@ lvim.plugins = { { "azabiong/vim-highlighter" } -- f- to highlight } +require('orgmode').setup_ts_grammar() + lvim.builtin.which_key.mappings["t"] = { name = "Diagnostics", t = { "TroubleToggle", "trouble" }, @@ -163,4 +165,7 @@ linters.setup { exe = "eslint", -- filetypes = { "javascriptreact", "javascript", "typescriptreact", "typescript", "vue", }, }, + { + exe = "vale", + } }