From f8857cf14761733fcbcf8badcf0fbd6b513aaf6b Mon Sep 17 00:00:00 2001 From: Michael Thomson Date: Mon, 9 Feb 2026 09:42:02 -0500 Subject: [PATCH] update --- flake.lock | 38 --------------- flake.nix | 4 -- modules/home-manager/emacs/default.nix | 39 +-------------- modules/home-manager/emacs/init.el | 65 ++++++++++--------------- modules/home-manager/kitty.nix | 2 +- modules/home-manager/neovim/default.nix | 5 ++ modules/home-manager/neovim/init.lua | 34 ++++++++++++- modules/nixos/emacs/default.nix | 7 --- 8 files changed, 67 insertions(+), 127 deletions(-) diff --git a/flake.lock b/flake.lock index 7d07cd7..1105c10 100644 --- a/flake.lock +++ b/flake.lock @@ -101,27 +101,6 @@ "type": "github" } }, - "emacs-overlay": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ], - "nixpkgs-stable": "nixpkgs-stable" - }, - "locked": { - "lastModified": 1770140424, - "narHash": "sha256-OjLbCjC7TpcZ07cxSmjzELafXBay861hIhrfrRMXZ98=", - "owner": "nix-community", - "repo": "emacs-overlay", - "rev": "196631c2e3c55526c8a67bfa7f4f06aeb11ffac6", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "emacs-overlay", - "type": "github" - } - }, "firefox-gnome-theme": { "flake": false, "locked": { @@ -831,22 +810,6 @@ "type": "github" } }, - "nixpkgs-stable": { - "locked": { - "lastModified": 1767313136, - "narHash": "sha256-16KkgfdYqjaeRGBaYsNrhPRRENs0qzkQVUooNHtoy2w=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "ac62194c3917d5f474c1a844b6fd6da2db95077d", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-25.05", - "repo": "nixpkgs", - "type": "github" - } - }, "nixpkgs_2": { "locked": { "lastModified": 1768564909, @@ -983,7 +946,6 @@ }, "root": { "inputs": { - "emacs-overlay": "emacs-overlay", "home-manager": "home-manager", "hyprland": "hyprland", "hyprland-plugins": "hyprland-plugins", diff --git a/flake.nix b/flake.nix index 7883c3d..f33899d 100644 --- a/flake.nix +++ b/flake.nix @@ -27,10 +27,6 @@ url = "github:nix-community/stylix"; inputs.nixpkgs.follows = "nixpkgs"; }; - emacs-overlay = { - url = "github:nix-community/emacs-overlay"; - inputs.nixpkgs.follows = "nixpkgs"; - }; neovim-nightly-overlay = { url = "github:nix-community/neovim-nightly-overlay"; inputs.nixpkgs.follows = "nixpkgs"; diff --git a/modules/home-manager/emacs/default.nix b/modules/home-manager/emacs/default.nix index 8b13185..d074576 100644 --- a/modules/home-manager/emacs/default.nix +++ b/modules/home-manager/emacs/default.nix @@ -1,23 +1,12 @@ { pkgs, config, - inputs, ... }: let - myPkgs = import pkgs.path { - inherit (pkgs) system; - overlays = [inputs.emacs-overlay.overlays.default]; - }; - addPlistSupport = pkg: - pkg.overrideAttrs (old: { - buildPhase = - '' - export LSP_USE_PLISTS=true - '' - + (old.buildPhase or ""); - }); in { home.packages = with pkgs; [ + emacs-macport + emacs-lsp-booster tree-sitter fd @@ -41,30 +30,6 @@ in { LSP_USE_PLISTS = "true"; }; - programs.emacs = { - enable = true; - package = myPkgs.emacsWithPackagesFromUsePackage { - config = ./init.el; - defaultInitFile = false; - extraEmacsPackages = epkgs: - with epkgs; [ - mu4e - pdf-tools - vterm - treesit-grammars.with-all-grammars - ]; - override = final: prev: { - lsp-mode = prev.lsp-mode.overrideAttrs (old: { - buildPhase = - '' - export LSP_USE_PLISTS=true - '' - + (old.buildPhase or ""); - }); - }; - }; - }; - services.emacs.enable = true; home.file.".config/emacs/init.el" = { source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/dev/personal/nixos/modules/home-manager/emacs/init.el"; }; diff --git a/modules/home-manager/emacs/init.el b/modules/home-manager/emacs/init.el index 47ae0ad..01ed9ec 100644 --- a/modules/home-manager/emacs/init.el +++ b/modules/home-manager/emacs/init.el @@ -1,8 +1,27 @@ (setq gc-cons-threshold 100000000) (setq read-process-output-max (* 1024 1024 4)) +(defvar bootstrap-version) +(let ((bootstrap-file + (expand-file-name + "straight/repos/straight.el/bootstrap.el" + (or (bound-and-true-p straight-base-dir) + user-emacs-directory))) + (bootstrap-version 7)) + (unless (file-exists-p bootstrap-file) + (with-current-buffer + (url-retrieve-synchronously + "https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el" + 'silent 'inhibit-cookies) + (goto-char (point-max)) + (eval-print-last-sexp))) + (load bootstrap-file nil 'nomessage)) + +(straight-use-package 'use-package) +(setq straight-use-package-by-default t) + (use-package emacs - :ensure nil + :straight (:type built-in) :custom ;; Set custom variables to configure Emacs behavior. (auto-save-default nil) ;; Disable automatic saving of buffers. (column-number-mode t) ;; Display the column number in the mode line. @@ -59,14 +78,14 @@ (modify-coding-system-alist 'file "" 'utf-8)) (use-package dired - :ensure nil ;; This is built-in, no need to fetch it. + :straight (:type built-in) ;; This is built-in, no need to fetch it. :custom (dired-listing-switches "-lah --group-directories-first") ;; Display files in a human-readable format and group directories first. (dired-dwim-target t) ;; Enable "do what I mean" for target directories. (dired-kill-when-opening-new-dired-buffer t)) ;; Close the previous buffer when opening a new `dired' instance. (use-package eldoc - :ensure nil ;; This is built-in, no need to fetch it. + :straight (:type built-in) ;; This is built-in, no need to fetch it. :config (setq eldoc-idle-delay 0) ;; Automatically fetch doc help (setq eldoc-echo-area-use-multiline-p nil) ;; We use the "K" floating help instead @@ -76,7 +95,7 @@ (global-eldoc-mode)) (use-package flymake - :ensure nil ;; This is built-in, no need to fetch it. + :straight (:type built-in) ;; This is built-in, no need to fetch it. :defer t :hook (prog-mode . flymake-mode) :custom @@ -84,13 +103,12 @@ '((error "!»" compilation-error) (warning "»" compilation-warning) (note "»" compilation-info)))) (use-package which-key - :ensure nil ;; This is built-in, no need to fetch it. + :straight (:type built-in) ;; This is built-in, no need to fetch it. :defer t ;; Defer loading Which-Key until after init. :hook (after-init . which-key-mode)) ;; Enable which-key mode after initialization. (use-package vertico - :ensure t :hook (after-init . vertico-mode) ;; Enable vertico after Emacs has initialized. :custom @@ -99,7 +117,6 @@ (vertico-cycle nil)) ;; Do not cycle through candidates when reaching the end of the list. (use-package orderless - :ensure t :defer t ;; Load Orderless on demand. :after vertico ;; Ensure Vertico is loaded before Orderless. :init @@ -108,12 +125,10 @@ completion-category-overrides '((file (styles partial-completion))))) ;; Customize file completion styles. (use-package marginalia - :ensure t :hook (after-init . marginalia-mode)) (use-package consult - :ensure t :defer t :init ;; Enhance register preview with thin lines and no mode line. @@ -124,23 +139,19 @@ xref-show-definitions-function #'consult-xref)) (use-package embark - :ensure t :defer t) (use-package embark-consult - :ensure t :hook (embark-collect-mode . consult-preview-at-point-mode)) ;; Enable preview in Embark collect mode. (use-package treesit-auto - :ensure t :after emacs :config (treesit-auto-add-to-auto-mode-alist 'all) (global-treesit-auto-mode t)) (use-package corfu - :ensure t :defer t :custom (corfu-auto t) ;; Only completes when hitting TAB @@ -153,13 +164,11 @@ (corfu-popupinfo-delay 0.5) ;; Delay before showing documentation popup :config (add-to-list 'corfu-margin-formatters #'nerd-icons-corfu-formatter) - :init (global-corfu-mode) (corfu-popupinfo-mode t)) (use-package nerd-icons-corfu - :ensure t :defer t :after (:all corfu)) @@ -196,7 +205,6 @@ (advice-add 'lsp-resolve-final-command :around #'lsp-booster--advice-final-command) (use-package lsp-mode - :ensure t :defer t :hook (;; Replace XXX-mode with concrete major mode (e.g. python-mode) (lsp-mode . lsp-enable-which-key-integration) ;; Integrate with Which Key @@ -254,16 +262,13 @@ (add-to-list 'lsp-file-watch-ignored-directories "[/\\\\]\\node_modules\\'")) (use-package nix-ts-mode - :ensure t :mode "\\.nix\\'") (use-package eldoc-box - :ensure t :defer t) (use-package diff-hl :defer t - :ensure t :hook (find-file . (lambda () (global-diff-hl-mode) ;; Enable Diff-HL mode for all files. @@ -273,13 +278,11 @@ (diff-hl-side 'left)) (use-package magit - :ensure t :config (setopt magit-format-file-function #'magit-format-file-nerd-icons) ;; Turns on magit nerd-icons :defer t) (use-package evil - :ensure t :defer t :hook (after-init . evil-mode) @@ -297,7 +300,6 @@ (use-package evil-collection :defer t - :ensure t :custom (evil-collection-want-find-usages-bindings t) :hook @@ -305,20 +307,17 @@ (use-package evil-surround - :ensure t :after evil-collection :config (global-evil-surround-mode 1)) (use-package evil-matchit - :ensure t :after evil-collection :config (global-evil-matchit-mode 1)) (use-package general - :ensure t :after (evil evil-collection) :init (setq general-override-states '(insert @@ -392,7 +391,6 @@ (use-package undo-tree :defer t - :ensure t :hook (after-init . global-undo-tree-mode) :init @@ -405,11 +403,9 @@ (setq undo-tree-history-directory-alist '(("." . "~/.config/emacs/.cache/undo")))) (use-package dotenv-mode - :defer t - :ensure t) + :defer t) (use-package doom-modeline - :ensure t :defer t :custom (doom-modeline-buffer-file-name-style 'buffer-name) ;; Set the buffer file name style to just the buffer name (without path). @@ -422,41 +418,35 @@ (after-init . doom-modeline-mode)) (use-package nerd-icons - :ensure t :defer t) (use-package nerd-icons-dired - :ensure t ;; Ensure the package is installed. :defer t ;; Load the package only when needed to improve startup time. :hook (dired-mode . nerd-icons-dired-mode)) (use-package nerd-icons-completion - :ensure t ;; Ensure the package is installed. :after (:all nerd-icons marginalia) ;; Load after `nerd-icons' and `marginalia' to ensure proper integration. :config (nerd-icons-completion-mode) ;; Activate nerd icons for completion interfaces. (add-hook 'marginalia-mode-hook #'nerd-icons-completion-marginalia-setup)) ;; Setup icons in the marginalia mode for enhanced completion display. (use-package exec-path-from-shell - :ensure t - :init + :config (exec-path-from-shell-initialize)) (use-package envrc - :ensure t :init (setq envrc-show-summary-in-minibuffer nil) :hook (after-init . envrc-global-mode)) (use-package modus-themes - :ensure t :config (load-theme 'modus-vivendi t)) (use-package org - :ensure nil + :straight (:type built-in) :defer t :custom (org-tags-column 0) @@ -496,7 +486,6 @@ (require 'org-tempo)) (use-package org-roam - :ensure t :custom (org-roam-directory "~/org") :bind (("C-c n l" . org-roam-buffer-toggle) diff --git a/modules/home-manager/kitty.nix b/modules/home-manager/kitty.nix index 77c6e51..8868460 100644 --- a/modules/home-manager/kitty.nix +++ b/modules/home-manager/kitty.nix @@ -17,7 +17,7 @@ shellIntegration = { enableZshIntegration = true; }; - themeFile = "Modus_Vivendi"; + themeFile = "Modus_Operandi"; # darwinLaunchOptions = [ # "--single-instance" # ]; diff --git a/modules/home-manager/neovim/default.nix b/modules/home-manager/neovim/default.nix index c831a23..825bb9a 100644 --- a/modules/home-manager/neovim/default.nix +++ b/modules/home-manager/neovim/default.nix @@ -3,9 +3,14 @@ config, ... }: { + imports = [ + ../zk.nix + ]; + home.packages = with pkgs; [ #utilities ripgrep + zk # language servers lua-language-server diff --git a/modules/home-manager/neovim/init.lua b/modules/home-manager/neovim/init.lua index b5d06b4..903aa3a 100644 --- a/modules/home-manager/neovim/init.lua +++ b/modules/home-manager/neovim/init.lua @@ -51,6 +51,10 @@ vim.o.termguicolors = true vim.g.netrw_liststyle = 0 vim.g.netrw_banner = 0 +-- conceal and foldlevel +vim.o.conceallevel = 3 +vim.o.foldlevel = 99 + -- Basic Keymaps -- improves C-u and C-d by centering on scroll vim.keymap.set('n', '', 'zz', { desc = 'Scroll Up' }) @@ -84,14 +88,28 @@ vim.pack.add({ { src = 'https://github.com/neovim/nvim-lspconfig' }, { src = 'https://github.com/stevearc/oil.nvim' }, { src = 'https://github.com/saghen/blink.cmp', version = vim.version.range('1.*') }, + { src = 'https://github.com/zk-org/zk-nvim' }, +}) + +-- treesitter +local tsfiletypes = { 'lua', 'markdown', 'haskell' } +vim.api.nvim_create_autocmd('FileType', { + pattern = '*', + callback = function() + pcall(vim.treesitter.start) + vim.wo[0][0].foldexpr = 'v:lua.vim.treesitter.foldexpr()' + vim.wo[0][0].foldmethod = 'expr' + vim.bo.indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()" + end, }) -- Theme (vague) -vim.cmd('colorscheme modus') +vim.cmd('colorscheme modus_operandi') -- Blink require('blink.cmp').setup({ - signature = { enabled = true } + signature = { enabled = true }, + completion = { documentation = { auto_show = true }} }) -- Oil @@ -110,6 +128,18 @@ vim.keymap.set('n', 'fg', MiniPick.builtin.grep_live, { desc = 'Grep Fil -- Oil vim.keymap.set('n', 'fe', 'Oil', { desc = 'Explore Files' }) +-- zk +require('zk').setup({ + picker = "minipick" +}) +vim.keymap.set("n", "zn", "ZkNew { title = vim.fn.input('Title: ') }") +vim.keymap.set("v", "znt", ":'<,'>ZkNewFromTitleSelection") +vim.keymap.set("n", "zf", "ZkNotes { sort = { 'modified' } }") +vim.keymap.set("n", "zt", "ZkTags") +vim.keymap.set("n", "zl", "ZkLinks") +vim.keymap.set("n", "zg", "ZkNotes { sort = { 'modified' }, match = { vim.fn.input('Search: ') } }") +vim.keymap.set("v", "zm", ":'<,'>ZkMatch") + -- LSP -- global on_attach local function lsp_on_attach(client, bufnr) diff --git a/modules/nixos/emacs/default.nix b/modules/nixos/emacs/default.nix index 90f7ce0..d0385fa 100644 --- a/modules/nixos/emacs/default.nix +++ b/modules/nixos/emacs/default.nix @@ -4,13 +4,6 @@ package = pkgs.emacs-unstable; }; - nixpkgs.overlays = [ - (import (builtins.fetchTarball { - url = "https://github.com/nix-community/emacs-overlay/archive/master.tar.gz"; - sha256 = "10vnpcmqv0n6jk6hq5lkblslim5fvxv6cwjl9wvi1r0r0ig529i1"; - })) - ]; - environment.systemPackages = [ pkgs.cmake pkgs.cmake