From faa31d1bffe6bbb410549fd94fe480340efbf381 Mon Sep 17 00:00:00 2001 From: Joe Frikker Date: Fri, 21 Mar 2025 19:17:43 -0400 Subject: [PATCH] Recent updates --- dot_config/doom/config.el | 158 ++++++++++++++++++++++ dot_config/doom/custom.el | 26 ++++ dot_config/doom/init.el | 48 +++---- dot_config/doom/packages.el | 20 ++- dot_config/home-manager/home-emacs.nix | 77 +++++++++++ dot_config/home-manager/home-exa.nix | 2 +- dot_config/home-manager/home-hx.nix | 6 +- dot_config/home-manager/home-tmux.nix | 1 + dot_config/home-manager/home-wezterm.nix | 161 +++++++++++++++++++++++ dot_config/home-manager/home.nix | 75 ++++++++++- 10 files changed, 535 insertions(+), 39 deletions(-) create mode 100644 dot_config/doom/custom.el create mode 100644 dot_config/home-manager/home-emacs.nix create mode 100644 dot_config/home-manager/home-wezterm.nix diff --git a/dot_config/doom/config.el b/dot_config/doom/config.el index 0c3e507..07aa500 100644 --- a/dot_config/doom/config.el +++ b/dot_config/doom/config.el @@ -98,3 +98,161 @@ (operators normal) (prettify insert) slurp/barf))) + +(use-package! kubernetes-overview + :commands (kubernetes-overview) + :config + (setq kubernetes-poll-frequency 3600 + kubernetes-redraw-frequency 3600)) + +(use-package! kubernetes-evil + :after kubernetes-overview) + +(use-package! ledger-mode + :mode "\\.ledger\\'") + +(use-package! evil-ledger + :after ledger-mode + :config + (add-hook 'ledger-mode-hook #'evil-ledger-mode)) + + + ; (use-package! org-transclusion + ; :after org) + +(setq lsp-java-jdt-download-url "https://www.eclipse.org/downloads/download.php?file=/jdtls/milestones/1.42.0/jdt-language-server-1.42.0-202411281516.tar.gz") + +(setq sql-connection-alist + '((local + (sql-product 'mysql) + (sql-server "127.0.0.1") + (sql-user "root") + (sql-password "test") + (sql-database "ebdb") + (sql-port 3306)) + (dev + (sql-product 'mysql) + (sql-server "kube-db.dev.internal.shibumi.com") + (sql-user "joe.frikker") + (sql-password "psStCkHDMJ2DyR6x") + (sql-database "mothership") + (sql-port 3306) + (sql-default-directory "/ssh:bastion.dev.internal.shibumi.com:")))) + +(after! projectile + (setq projectile-indexing-method 'alien)) + +(after! magit + (setq magit-list-refs-sortby "-committerdate")) + +(setq lsp-java-configuration-maven-user-settings "/Users/jfrikker/.m2/settings.xml") + +(after! org + (setq org-todo-keywords + '((sequence + "TODO(o)" ; A task that needs doing + "IN_PROGRESS(p!)" ; Task is in progress + "HOLD(h@)" ; Task is being held up or paused + "|" + "DONE(d!)" + "CANCELLED(c@)")) + org-todo-keyword-faces + '(("IN_PROGRESS" . +org-todo-active) + ("HOLD" . +org-todo-onhold) + ("CANCELLED" . +org-todo-cancel))) + + (setq org-capture-templates + '(("t" "Personal todo" entry + (file+headline +org-capture-todo-file "Inbox") + "* TODO %?\n%i\n%a" :prepend t) + ("d" "Decision" entry + (file+headline "decisions.org" "Unfiled") + "* %?\n:properties:\n%^{ORG-LEVEL|Sprint Team}p:end:\n#What\n\n#Why\n\n#When\n\n%u")))) + +(defun org-columns-dblock-write-default (ipos table params) + "Write out a columnview table at position IPOS in the current buffer. +TABLE is a table with data as produced by `org-columns--capture-view'. +PARAMS is the parameter property list obtained from the dynamic block +definition." + (let ((link (plist-get params :link)) + (width-specs + (mapcar (lambda (spec) (nth 2 spec)) + org-columns-current-fmt-compiled))) + (when table + ;; Prune level information from the table. Also normalize + ;; headings: remove stars, add indentation entities, if + ;; required, and possibly precede some of them with a horizontal + ;; rule. + (let ((item-index + (let ((p (assoc "ITEM" org-columns-current-fmt-compiled))) + (and p (cl-position p + org-columns-current-fmt-compiled + :test #'equal)))) + (hlines (plist-get params :hlines)) + (indent (plist-get params :indent)) + new-table) + ;; Copy header and first rule. + (push (pop table) new-table) + (push (pop table) new-table) + (dolist (row table (setq table (nreverse new-table))) + (let ((level (car row))) + (when (and (not (eq (car new-table) 'hline)) + (or (eq hlines t) + (and (numberp hlines) (<= level hlines)))) + (push 'hline new-table)) + (when item-index + (let* ((raw (nth item-index (cdr row))) + (cleaned (org-columns--clean-item raw)) + (item (if (not link) cleaned + (let ((search (org-link-heading-search-string raw))) + (org-link-make-string + search + cleaned))))) + (setf (nth item-index (cdr row)) + (if (and indent (> level 1)) + (concat "\\_" (make-string (* 2 (1- level)) ?\s) item) + item)))) + (push (cdr row) new-table)))) + (when (plist-get params :vlines) + (setq table + (let ((size (length org-columns-current-fmt-compiled))) + (append (mapcar (lambda (x) (if (eq 'hline x) x (cons "" x))) + table) + (list (cons "/" (make-list size "<>"))))))) + (when (seq-find #'identity width-specs) + ;; There are width specifiers in column format. Pass them + ;; to the resulting table, adding alignment field as the first + ;; row. + (push (mapcar (lambda (width) (when width (format "<%d>" width))) width-specs) table)) + ;; now insert the table into the buffer + (goto-char ipos) + (let ((content-lines (org-split-string (plist-get params :content) "\n")) + recalc) + ;; Insert affiliated keywords before the table. + (when content-lines + (while (string-match-p "\\`[ \t]*#\\+" (car content-lines)) + (insert (string-trim-left (pop content-lines)) "\n"))) + (save-excursion + ;; Insert table at point. + (insert + (mapconcat (lambda (row) + (if (eq row 'hline) "|-|" + (format "|%s|" (mapconcat #'identity row "|")))) + table + "\n")) + ;; Insert TBLFM lines following table. + (let ((case-fold-search t)) + (dolist (line content-lines) + (when (string-match-p "\\`[ \t]*#\\+TBLFM:" line) + (insert "\n" (string-trim-left line)) + (unless recalc (setq recalc t)))))) + (when recalc (org-table-recalculate 'all t)) + (org-table-align) + (when (seq-find #'identity width-specs) + (org-table-shrink)))))) +(map! + :nv "g w" #'avy-goto-word-1 + :nv "g r" #'+lookup/references + :nv "SPC D" #'+default/diagnostics + :nv "] e" #'flycheck-next-error + :nv "[ e" #'flycheck-previous-error) diff --git a/dot_config/doom/custom.el b/dot_config/doom/custom.el new file mode 100644 index 0000000..e6197ec --- /dev/null +++ b/dot_config/doom/custom.el @@ -0,0 +1,26 @@ +(custom-set-variables + ;; custom-set-variables was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + '(ignored-local-variable-values + '((Syntax . ANSI-Common-Lisp) + (package . cl-mock) + (syntax . common-lisp) + (Base . 10) + (Package . FIVEAM) + (Syntax . Ansi-Common-Lisp))) + '(safe-local-variable-values + '((org-tags-exclude-from-inheritance "why" "tbd") + (org-tags-exclude-from-inheritance quote + ("why" "tbd")) + (org-tags-exclude-from-inheritance quote + ("why" + (\, "tbd"))) + (sly-load-failed-fasl . ask)))) +(custom-set-faces + ;; custom-set-faces was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + ) diff --git a/dot_config/doom/init.el b/dot_config/doom/init.el index 76bff50..db9681c 100644 --- a/dot_config/doom/init.el +++ b/dot_config/doom/init.el @@ -21,11 +21,13 @@ ;;layout ; auie,ctsrnm is the superior home row :completion - company ; the ultimate code completion backend + ;; company ; the ultimate code completion backend + (corfu +orderless) ;;helm ; the *other* search engine for love and life ;;ido ; the other *other* search engine... ;;ivy ; a search engine for love and life - vertico ; the search engine of the future + vertico + ; the search engine of the future :ui ;;deft ; notational velocity for Emacs @@ -34,17 +36,16 @@ ;;doom-quit ; DOOM quit-message prompts when you quit Emacs ;;(emoji +unicode) ; 🙂 hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW - ;;hydra ;;indent-guides ; highlighted indent columns ;;ligatures ; ligatures and symbols to make your code pretty again ;;minimap ; show a map of the code on the side modeline ; snazzy, Atom-inspired modeline, plus API ;;nav-flash ; blink cursor line after big motions - ;;neotree ; a project drawer, like NERDTree for vim + neotree ; a project drawer, like NERDTree for vim ophints ; highlight the region an operation acts on (popup +defaults) ; tame sudden yet inevitable temporary windows ;;tabs ; a tab bar for Emacs - (treemacs +lsp) ; a project drawer, like neotree but cooler + ;;(treemacs +lsp) ; a project drawer, like neotree but cooler ;;unicode ; extended unicode support for various languages (vc-gutter +pretty) ; vcs diff in the fringe vi-tilde-fringe ; fringe tildes to mark beyond EOB @@ -88,36 +89,35 @@ ;;ansible ;;biblio ; Writes a PhD for you (citation needed) ;;collab ; buffers with friends - ;;debugger ; FIXME stepping through code, to help you add bugs - ;;direnv - ;;docker + (debugger +lsp) ; FIXME stepping through code, to help you add bugs + direnv + docker ;;editorconfig ; let someone else argue about tabs vs spaces ;;ein ; tame Jupyter notebooks with emacs (eval +overlay) ; run code, run (also, repls) - ;;gist ; interacting with github gists lookup ; navigate your code and its documentation - ;;(lsp +eglot) ; M-x vscode - ;;magit ; a git porcelain for Emacs + lsp ; M-x vscode + (magit +forge) ; a git porcelain for Emacs ;;make ; run make tasks from Emacs ;;pass ; password manager for nerds ;;pdf ; pdf enhancements ;;prodigy ; FIXME managing external services & code builders ;;rgb ; creating color strings - taskrunner ; taskrunner for all your projects + ;;taskrunner ; taskrunner for all your projects ;;terraform ; infrastructure as code ;;tmux ; an API for interacting with tmux - ;;tree-sitter ; syntax and parsing, sitting in a tree... + tree-sitter ; syntax and parsing, sitting in a tree... ;;upload ; map local to remote projects via ssh/ftp :os - (:if IS-MAC macos) ; improve compatibility with macOS - ;;tty ; improve the terminal Emacs experience + (:if (featurep :system 'macos) macos) ; improve compatibility with macOS + tty ; improve the terminal Emacs experience :lang ;;agda ; types of types of types of types... ;;beancount ; mind the GAAP ;;(cc +lsp) ; C > C++ == 1 - clojure ; java with a lisp + ;;clojure ; java with a lisp common-lisp ; if you've seen one lisp, you've seen them all ;;coq ; proofs-as-programs ;;crystal ; ruby at the speed of c @@ -141,9 +141,9 @@ ;;(haskell +lsp) ; a language that's lazier than I am ;;hy ; readability of scheme w/ speed of python ;;idris ; a language you can depend on - ;;json ; At least it ain't XML - ;;(java +lsp +tree-sitter) ; the poster child for carpal tunnel syndrome - ;;(javascript +lsp) ; all(hope(abandon(ye(who(enter(here)))))) + (json +tree-sitter) ; At least it ain't XML + (java +lsp +tree-sitter) ; the poster child for carpal tunnel syndrome + (javascript +lsp +treesitter) ; all(hope(abandon(ye(who(enter(here)))))) ;;julia ; a better, faster MATLAB ;;kotlin ; a better, slicker Java(Script) ;;latex ; writing papers in Emacs has never been so fun @@ -154,7 +154,7 @@ ;;nim ; python + lisp at the speed of c ;;nix ; I hereby declare "nix geht mehr!" ;;ocaml ; an objective camel - ;;org ; organize your plain life in plain text + (org) ; organize your plain life in plain text ;;php ; perl's insecure younger brother ;;plantuml ; diagrams for confusing people more ;;purescript ; javascript, but functional @@ -162,10 +162,10 @@ ;;qt ; the 'cutest' gui framework ever ;;racket ; a DSL for DSLs ;;raku ; the artist formerly known as perl6 - ;;rest ; Emacs as a REST client + rest ; Emacs as a REST client ;;rst ; ReST in peace ;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"} - ;;(rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap() + (rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap() ;;scala ; java, but good ;;(scheme +guile) ; a fully conniving family of lisps sh ; she sells {ba,z,fi}sh shells on the C xor @@ -173,8 +173,8 @@ ;;solidity ; do you need a blockchain? No. ;;swift ; who asked for emoji variables? ;;terra ; Earth and Moon in alignment for performance. - ;;web ; the tubes - ;;yaml ; JSON, but readable + web ; the tubes + yaml ; JSON, but readable ;;zig ; C, but simpler :email diff --git a/dot_config/doom/packages.el b/dot_config/doom/packages.el index 646b17d..d198e41 100644 --- a/dot_config/doom/packages.el +++ b/dot_config/doom/packages.el @@ -26,26 +26,32 @@ ;; with the `:disable' property: ;(package! builtin-package :disable t) (package! sly-quicklisp :disable t) +;(package! org-transclusion) + +(package! kubernetes) +(package! kubernetes-evil) +(package! ledger-mode) +(package! evil-ledger) ;; You can override the recipe of a built in package without having to specify ;; all the properties for `:recipe'. These will inherit the rest of its recipe ;; from Doom or MELPA/ELPA/Emacsmirror: -;(package! builtin-package :recipe (:nonrecursive t)) -;(package! builtin-package-2 :recipe (:repo "myfork/package")) + ;(package! builtin-package :recipe (:nonrecursive t)) + ;(package! builtin-package-2 :recipe (:repo "myfork/package")) ;; Specify a `:branch' to install a package from a particular branch or tag. ;; This is required for some packages whose default branch isn't 'master' (which ;; our package manager can't deal with; see radian-software/straight.el#279) -;(package! builtin-package :recipe (:branch "develop")) + ;(package! builtin-package :recipe (:branch "develop")) ;; Use `:pin' to specify a particular commit to install. -;(package! builtin-package :pin "1a2b3c4d5e") + ;(package! builtin-package :pin "1a2b3c4d5e") ;; Doom's packages are pinned to a specific commit and updated from release to ;; release. The `unpin!' macro allows you to unpin single packages... -;(unpin! pinned-package) + ;(unpin! pinned-package) ;; ...or multiple packages -;(unpin! pinned-package another-pinned-package) + ;(unpin! pinned-package another-pinned-package) ;; ...Or *all* packages (NOT RECOMMENDED; will likely break things) -;(unpin! t) + ;(unpin! t) diff --git a/dot_config/home-manager/home-emacs.nix b/dot_config/home-manager/home-emacs.nix new file mode 100644 index 0000000..5a9d018 --- /dev/null +++ b/dot_config/home-manager/home-emacs.nix @@ -0,0 +1,77 @@ +{ + enable = true; + extraPackages = epkgs: [ + epkgs.catppuccin-theme + epkgs.evil + epkgs.evil-collection + epkgs.general + epkgs.projectile + epkgs.sly + epkgs.sly-macrostep + epkgs.vertico + epkgs.which-key + ]; + extraConfig = '' +(use-package catppuccin-theme + :config + (setq catppuccin-flavor 'frappe) + (load-theme 'catppuccin :no-confirm)) + +(use-package evil + :init + (setq evil-want-integration t) + (setq evil-want-keybinding nil) + :config + (evil-mode 1) + (evil-set-leader 'normal (kbd "SPC"))) + +(use-package evil-collection + :after evil + :config + (evil-collection-init)) + +(use-package general + :after evil + :config + (general-evil-setup) + + (general-define-key + :states 'normal + :prefix "SPC" + "h" '(:ignore t :which-key "Help") + ":" '(execute-extended-command :which-key "Execute Command") + ";" '(eval-expression :which-key "Evaluate Expression")) + + (general-define-key + :states 'normal + :prefix "SPC h" + "v" '(describe-variable :which-key "Describe Variable"))) + +(use-package projectile + :config (projectile-mode 1)) + +(use-package sly + :config + (setq inferior-lisp-program "sbcl")) + +(use-package sly-macrostep) + +(use-package vertico + :config + (vertico-mode)) + +(use-package which-key + :config + (which-key-mode)) + +(set-face-attribute 'default nil :font "JetBrainsMono Nerd Font" :height 130) +(set-face-attribute 'fixed-pitch nil :font "JetBrainsMono Nerd Font" :height 130) + +(setq inhibit-startup-message t) + +(scroll-bar-mode -1) +(tool-bar-mode -1) +(menu-bar-mode -1) +(setf indent-tabs-mode nil) +''; +} diff --git a/dot_config/home-manager/home-exa.nix b/dot_config/home-manager/home-exa.nix index ee79bbc..d71b6f3 100644 --- a/dot_config/home-manager/home-exa.nix +++ b/dot_config/home-manager/home-exa.nix @@ -2,5 +2,5 @@ enable = true; enableBashIntegration = true; enableZshIntegration = true; - icons = true; + icons = "auto"; } diff --git a/dot_config/home-manager/home-hx.nix b/dot_config/home-manager/home-hx.nix index 0bf7749..e0550de 100644 --- a/dot_config/home-manager/home-hx.nix +++ b/dot_config/home-manager/home-hx.nix @@ -42,16 +42,16 @@ languages.language-server.jdtls.config.java.format.settings.url = "https://raw.githubusercontent.com/google/styleguide/gh-pages/eclipse-java-google-style.xml"; - languages.languages = [ + languages.language = [ { name = "typescript"; - language-servers = [ "typescript-language-server" "eslint" ]; + language-servers = [ "typescript-language-server" "vscode-eslint-language-server" ]; indent.tab-width = 4; indent.unit = " "; } { name = "tsx"; - language-servers = [ "typescript-language-server" "eslint" ]; + language-servers = [ "typescript-language-server" "vscode-eslint-language-server" ]; indent.tab-width = 4; indent.unit = " "; } diff --git a/dot_config/home-manager/home-tmux.nix b/dot_config/home-manager/home-tmux.nix index a890e43..989bfda 100644 --- a/dot_config/home-manager/home-tmux.nix +++ b/dot_config/home-manager/home-tmux.nix @@ -31,5 +31,6 @@ bind-key -T copy-mode-vi 'y' send -X copy-selection-and-cancel bind-key -T launcher g popup -h 100% -w 100% -E lazygit bind-key g switch-client -Tlauncher +set -g default-command "" ''; } diff --git a/dot_config/home-manager/home-wezterm.nix b/dot_config/home-manager/home-wezterm.nix new file mode 100644 index 0000000..040275f --- /dev/null +++ b/dot_config/home-manager/home-wezterm.nix @@ -0,0 +1,161 @@ +{ + enable = true; + extraConfig = '' + local config = {} + local workspace_switcher = wezterm.plugin.require("https://github.com/MLFlexer/smart_workspace_switcher.wezterm") + workspace_switcher.zoxide_path='~/.nix-profile/bin/zoxide' + + config.color_scheme = 'Catppuccin Frappe' + config.default_prog = { '/Users/jfrikker/.nix-profile/bin/zsh', '-l' } + config.font_size = 13.0 + -- config.font = wezterm.font("JetBrains Mono") + config.inactive_pane_hsb = { + saturation = 0.5, + brightness = 0.5, + } + config.pane_focus_follows_mouse = true + config.switch_to_last_active_tab_when_closing_tab = true + config.tab_bar_at_bottom = true + config.use_fancy_tab_bar = false + config.window_decorations = "RESIZE" + + wezterm.on('smart_workspace_switcher.workspace_switcher.created', function(window, path, workspace) + local editor = window:active_tab() + editor:set_title("edit") + editor:panes()[1]:send_text("hx\n") + local run = window:spawn_tab {} + run:set_title "run" + local term = window:spawn_tab {} + term:set_title "term" + editor:activate() + end) + + -- From https://alexplescan.com/posts/2024/08/10/wezterm/ + local function segments_for_right_status(window) + return { + window:active_workspace(), + } + end + + wezterm.on('update-status', function(window, _) + local SOLID_LEFT_ARROW = utf8.char(0xe0b2) + local segments = segments_for_right_status(window) + + local color_scheme = window:effective_config().resolved_palette + -- Note the use of wezterm.color.parse here, this returns + -- a Color object, which comes with functionality for lightening + -- or darkening the colour (amongst other things). + local bg = wezterm.color.parse(color_scheme.background) + local fg = color_scheme.foreground + + -- Each powerline segment is going to be coloured progressively + -- darker/lighter depending on whether we're on a dark/light colour + -- scheme. Let's establish the "from" and "to" bounds of our gradient. + local gradient_to, gradient_from = bg + gradient_from = gradient_to:lighten(0.2) + + -- Yes, WezTerm supports creating gradients, because why not?! Although + -- they'd usually be used for setting high fidelity gradients on your terminal's + -- background, we'll use them here to give us a sample of the powerline segment + -- colours we need. + local gradient = wezterm.color.gradient( + { + orientation = 'Horizontal', + colors = { gradient_from, gradient_to }, + }, + #segments -- only gives us as many colours as we have segments. + ) + + -- We'll build up the elements to send to wezterm.format in this table. + local elements = {} + + for i, seg in ipairs(segments) do + local is_first = i == 1 + + if is_first then + table.insert(elements, { Background = { Color = 'none' } }) + end + table.insert(elements, { Foreground = { Color = gradient[i] } }) + table.insert(elements, { Text = SOLID_LEFT_ARROW }) + + table.insert(elements, { Foreground = { Color = fg } }) + table.insert(elements, { Background = { Color = gradient[i] } }) + table.insert(elements, { Text = ' ' .. seg .. ' ' }) + end + + window:set_right_status(wezterm.format(elements)) + end) + + config.leader = { key = ' ', mods = 'CTRL', timeout_milliseconds = 10000 } + config.keys = { + { + key = "s", + mods = "CMD", + action = workspace_switcher.switch_workspace(), + }, + { + key = "-", + mods = "CMD", + action = wezterm.action.SplitVertical {}, + }, + { + key = "\\", + mods = "CMD", + action = wezterm.action.SplitHorizontal {}, + }, + { + key = "h", + mods = "CMD", + action = wezterm.action.ActivatePaneDirection "Left", + }, + { + key = "j", + mods = "CMD", + action = wezterm.action.ActivatePaneDirection "Down", + }, + { + key = "k", + mods = "CMD", + action = wezterm.action.ActivatePaneDirection "Up", + }, + { + key = "l", + mods = "CMD", + action = wezterm.action.ActivatePaneDirection "Right", + }, + { + key = "g", + mods = "CMD", + action = wezterm.action.SpawnCommandInNewTab { + args = { wezterm.home_dir .. "/.nix-profile/bin/zsh", "-l", "-c", "lazygit" } + } + }, + { + key = "t", + mods = "CMD", + action = wezterm.action.SpawnCommandInNewTab {} + }, + { + key = 'z', + mods = 'CMD', + action = wezterm.action.TogglePaneZoomState, + }, + { + key = 'd', + mods = 'CMD', + action = wezterm.action.CloseCurrentTab { confirm = true }, + }, + } + + for i = 1, 9 do + -- CTRL+ALT + number to activate that tab + table.insert(config.keys, { + key = tostring(i), + mods = 'LEADER', + action = wezterm.action.ActivateTab(i - 1), + }) + end + + return config + ''; +} diff --git a/dot_config/home-manager/home.nix b/dot_config/home-manager/home.nix index fbaad01..39f596f 100644 --- a/dot_config/home-manager/home.nix +++ b/dot_config/home-manager/home.nix @@ -52,18 +52,21 @@ home.packages = [ # pkgs.apacheKafka # pkgs.aria + pkgs.asdf_3_3 pkgs.aws-iam-authenticator pkgs.awscli pkgs.bashInteractive + pkgs.cargo pkgs.chezmoi pkgs.du-dust - pkgs.emacs29 + pkgs.emacs pkgs.fd pkgs.fend pkgs.gcc pkgs.gh # pkgs.ghc # pkgs.go + pkgs.graphviz # pkgs.haskellPackages.cabal-install # pkgs.haskellPackages.haskell-language-server # pkgs.helix @@ -73,28 +76,89 @@ pkgs.just # pkgs.jsonnet pkgs.kubectl + pkgs.ledger pkgs.lorri # pkgs.maven - # pkgs.mysql-client + pkgs.mysql-client # pkgs.neovide pkgs.neovim # pkgs.nodejs-16_x # pkgs.nodePackages.typescript-language-server + pkgs.openssh # pkgs.postgresql # (pkgs.python3.withPackages (p: [p.ipython p.pyyaml p.boto3])) pkgs.ripgrep pkgs.rlwrap + pkgs.roswell # pkgs.rust-analyzer # pkgs.rust-script # pkgs.rust-bin.stable."1.68.0".default # pkgs.rust-bin.stable."1.68.0".rust-analyzer # pkgs.rustup - (pkgs.sbcl.withPackages (ps: with ps; [ agnostic-lizard alexandria serapeum slynk ])) + (pkgs.sbcl.withPackages (ps: with ps; [ + _3bmd + _3bmd-ext-code-blocks + agnostic-lizard + alexandria + anypool + arrows + async-process + binding-arrows + bt-semaphore + chanl + cl-annot + cl-charms + cl-markup + cl-migratum + cl-migratum_dot_provider_dot_local-path + cl-migratum_dot_driver_dot_dbi + cl-mock + cl-punch + cl-rdkafka + cl-readline + cl-setlocale + clack + clack-handler-hunchentoot + clack-handler-woo + dbd-mysql + dbi + dexador + fare-csv + fiveam + group-by + inquisitor + lack-request + lack-response + lisp-preprocessor + local-time + log4cl + mito + mockingbird + myway + prove + prove-asdf + queues + queues_dot_priority-cqueue + queues_dot_simple-cqueue + replic + serapeum + shasht + slynk + smug + split-sequence + str + sxql-composer + trivial-ws + trivial-open-browser + trivial-timeout + uuid + yason ])) # pkgs.source-code-pro # pkgs.stack pkgs.tokei pkgs.xh # pkgs.xonsh + pkgs.yubikey-manager # pkgs.yarn # pkgs.zellij ]; @@ -132,8 +196,11 @@ programs.lazygit.enable = true; programs.starship = import ./home-starship.nix pkgs; programs.tmux = import ./home-tmux.nix pkgs; - # programs.zoxide.enable = true; + programs.wezterm = import ./home-wezterm.nix; + programs.zoxide.enable = true; programs.zsh = import ./home-zsh.nix pkgs; # programs.neovim = import ./home-neovim.nix pkgs; + + # programs.emacs = import ./home-emacs.nix; }