This commit is contained in:
Michael Thomson
2026-02-09 09:42:02 -05:00
parent da8683896c
commit f8857cf147
8 changed files with 67 additions and 127 deletions

38
flake.lock generated
View File

@@ -101,27 +101,6 @@
"type": "github" "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": { "firefox-gnome-theme": {
"flake": false, "flake": false,
"locked": { "locked": {
@@ -831,22 +810,6 @@
"type": "github" "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": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1768564909, "lastModified": 1768564909,
@@ -983,7 +946,6 @@
}, },
"root": { "root": {
"inputs": { "inputs": {
"emacs-overlay": "emacs-overlay",
"home-manager": "home-manager", "home-manager": "home-manager",
"hyprland": "hyprland", "hyprland": "hyprland",
"hyprland-plugins": "hyprland-plugins", "hyprland-plugins": "hyprland-plugins",

View File

@@ -27,10 +27,6 @@
url = "github:nix-community/stylix"; url = "github:nix-community/stylix";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
emacs-overlay = {
url = "github:nix-community/emacs-overlay";
inputs.nixpkgs.follows = "nixpkgs";
};
neovim-nightly-overlay = { neovim-nightly-overlay = {
url = "github:nix-community/neovim-nightly-overlay"; url = "github:nix-community/neovim-nightly-overlay";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";

View File

@@ -1,23 +1,12 @@
{ {
pkgs, pkgs,
config, config,
inputs,
... ...
}: let }: 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 { in {
home.packages = with pkgs; [ home.packages = with pkgs; [
emacs-macport
emacs-lsp-booster emacs-lsp-booster
tree-sitter tree-sitter
fd fd
@@ -41,30 +30,6 @@ in {
LSP_USE_PLISTS = "true"; 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" = { home.file.".config/emacs/init.el" = {
source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/dev/personal/nixos/modules/home-manager/emacs/init.el"; source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/dev/personal/nixos/modules/home-manager/emacs/init.el";
}; };

View File

@@ -1,8 +1,27 @@
(setq gc-cons-threshold 100000000) (setq gc-cons-threshold 100000000)
(setq read-process-output-max (* 1024 1024 4)) (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 (use-package emacs
:ensure nil :straight (:type built-in)
:custom ;; Set custom variables to configure Emacs behavior. :custom ;; Set custom variables to configure Emacs behavior.
(auto-save-default nil) ;; Disable automatic saving of buffers. (auto-save-default nil) ;; Disable automatic saving of buffers.
(column-number-mode t) ;; Display the column number in the mode line. (column-number-mode t) ;; Display the column number in the mode line.
@@ -59,14 +78,14 @@
(modify-coding-system-alist 'file "" 'utf-8)) (modify-coding-system-alist 'file "" 'utf-8))
(use-package dired (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 :custom
(dired-listing-switches "-lah --group-directories-first") ;; Display files in a human-readable format and group directories first. (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-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. (dired-kill-when-opening-new-dired-buffer t)) ;; Close the previous buffer when opening a new `dired' instance.
(use-package eldoc (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 :config
(setq eldoc-idle-delay 0) ;; Automatically fetch doc help (setq eldoc-idle-delay 0) ;; Automatically fetch doc help
(setq eldoc-echo-area-use-multiline-p nil) ;; We use the "K" floating help instead (setq eldoc-echo-area-use-multiline-p nil) ;; We use the "K" floating help instead
@@ -76,7 +95,7 @@
(global-eldoc-mode)) (global-eldoc-mode))
(use-package flymake (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 :defer t
:hook (prog-mode . flymake-mode) :hook (prog-mode . flymake-mode)
:custom :custom
@@ -84,13 +103,12 @@
'((error "" compilation-error) (warning "»" compilation-warning) (note "»" compilation-info)))) '((error "" compilation-error) (warning "»" compilation-warning) (note "»" compilation-info))))
(use-package which-key (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. :defer t ;; Defer loading Which-Key until after init.
:hook :hook
(after-init . which-key-mode)) ;; Enable which-key mode after initialization. (after-init . which-key-mode)) ;; Enable which-key mode after initialization.
(use-package vertico (use-package vertico
:ensure t
:hook :hook
(after-init . vertico-mode) ;; Enable vertico after Emacs has initialized. (after-init . vertico-mode) ;; Enable vertico after Emacs has initialized.
:custom :custom
@@ -99,7 +117,6 @@
(vertico-cycle nil)) ;; Do not cycle through candidates when reaching the end of the list. (vertico-cycle nil)) ;; Do not cycle through candidates when reaching the end of the list.
(use-package orderless (use-package orderless
:ensure t
:defer t ;; Load Orderless on demand. :defer t ;; Load Orderless on demand.
:after vertico ;; Ensure Vertico is loaded before Orderless. :after vertico ;; Ensure Vertico is loaded before Orderless.
:init :init
@@ -108,12 +125,10 @@
completion-category-overrides '((file (styles partial-completion))))) ;; Customize file completion styles. completion-category-overrides '((file (styles partial-completion))))) ;; Customize file completion styles.
(use-package marginalia (use-package marginalia
:ensure t
:hook :hook
(after-init . marginalia-mode)) (after-init . marginalia-mode))
(use-package consult (use-package consult
:ensure t
:defer t :defer t
:init :init
;; Enhance register preview with thin lines and no mode line. ;; Enhance register preview with thin lines and no mode line.
@@ -124,23 +139,19 @@
xref-show-definitions-function #'consult-xref)) xref-show-definitions-function #'consult-xref))
(use-package embark (use-package embark
:ensure t
:defer t) :defer t)
(use-package embark-consult (use-package embark-consult
:ensure t
:hook :hook
(embark-collect-mode . consult-preview-at-point-mode)) ;; Enable preview in Embark collect mode. (embark-collect-mode . consult-preview-at-point-mode)) ;; Enable preview in Embark collect mode.
(use-package treesit-auto (use-package treesit-auto
:ensure t
:after emacs :after emacs
:config :config
(treesit-auto-add-to-auto-mode-alist 'all) (treesit-auto-add-to-auto-mode-alist 'all)
(global-treesit-auto-mode t)) (global-treesit-auto-mode t))
(use-package corfu (use-package corfu
:ensure t
:defer t :defer t
:custom :custom
(corfu-auto t) ;; Only completes when hitting TAB (corfu-auto t) ;; Only completes when hitting TAB
@@ -153,13 +164,11 @@
(corfu-popupinfo-delay 0.5) ;; Delay before showing documentation popup (corfu-popupinfo-delay 0.5) ;; Delay before showing documentation popup
:config :config
(add-to-list 'corfu-margin-formatters #'nerd-icons-corfu-formatter) (add-to-list 'corfu-margin-formatters #'nerd-icons-corfu-formatter)
:init
(global-corfu-mode) (global-corfu-mode)
(corfu-popupinfo-mode t)) (corfu-popupinfo-mode t))
(use-package nerd-icons-corfu (use-package nerd-icons-corfu
:ensure t
:defer t :defer t
:after (:all corfu)) :after (:all corfu))
@@ -196,7 +205,6 @@
(advice-add 'lsp-resolve-final-command :around #'lsp-booster--advice-final-command) (advice-add 'lsp-resolve-final-command :around #'lsp-booster--advice-final-command)
(use-package lsp-mode (use-package lsp-mode
:ensure t
:defer t :defer t
:hook (;; Replace XXX-mode with concrete major mode (e.g. python-mode) :hook (;; Replace XXX-mode with concrete major mode (e.g. python-mode)
(lsp-mode . lsp-enable-which-key-integration) ;; Integrate with Which Key (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\\'")) (add-to-list 'lsp-file-watch-ignored-directories "[/\\\\]\\node_modules\\'"))
(use-package nix-ts-mode (use-package nix-ts-mode
:ensure t
:mode "\\.nix\\'") :mode "\\.nix\\'")
(use-package eldoc-box (use-package eldoc-box
:ensure t
:defer t) :defer t)
(use-package diff-hl (use-package diff-hl
:defer t :defer t
:ensure t
:hook :hook
(find-file . (lambda () (find-file . (lambda ()
(global-diff-hl-mode) ;; Enable Diff-HL mode for all files. (global-diff-hl-mode) ;; Enable Diff-HL mode for all files.
@@ -273,13 +278,11 @@
(diff-hl-side 'left)) (diff-hl-side 'left))
(use-package magit (use-package magit
:ensure t
:config :config
(setopt magit-format-file-function #'magit-format-file-nerd-icons) ;; Turns on magit nerd-icons (setopt magit-format-file-function #'magit-format-file-nerd-icons) ;; Turns on magit nerd-icons
:defer t) :defer t)
(use-package evil (use-package evil
:ensure t
:defer t :defer t
:hook :hook
(after-init . evil-mode) (after-init . evil-mode)
@@ -297,7 +300,6 @@
(use-package evil-collection (use-package evil-collection
:defer t :defer t
:ensure t
:custom :custom
(evil-collection-want-find-usages-bindings t) (evil-collection-want-find-usages-bindings t)
:hook :hook
@@ -305,20 +307,17 @@
(use-package evil-surround (use-package evil-surround
:ensure t
:after evil-collection :after evil-collection
:config :config
(global-evil-surround-mode 1)) (global-evil-surround-mode 1))
(use-package evil-matchit (use-package evil-matchit
:ensure t
:after evil-collection :after evil-collection
:config :config
(global-evil-matchit-mode 1)) (global-evil-matchit-mode 1))
(use-package general (use-package general
:ensure t
:after (evil evil-collection) :after (evil evil-collection)
:init :init
(setq general-override-states '(insert (setq general-override-states '(insert
@@ -392,7 +391,6 @@
(use-package undo-tree (use-package undo-tree
:defer t :defer t
:ensure t
:hook :hook
(after-init . global-undo-tree-mode) (after-init . global-undo-tree-mode)
:init :init
@@ -405,11 +403,9 @@
(setq undo-tree-history-directory-alist '(("." . "~/.config/emacs/.cache/undo")))) (setq undo-tree-history-directory-alist '(("." . "~/.config/emacs/.cache/undo"))))
(use-package dotenv-mode (use-package dotenv-mode
:defer t :defer t)
:ensure t)
(use-package doom-modeline (use-package doom-modeline
:ensure t
:defer t :defer t
:custom :custom
(doom-modeline-buffer-file-name-style 'buffer-name) ;; Set the buffer file name style to just the buffer name (without path). (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)) (after-init . doom-modeline-mode))
(use-package nerd-icons (use-package nerd-icons
:ensure t
:defer t) :defer t)
(use-package nerd-icons-dired (use-package nerd-icons-dired
:ensure t ;; Ensure the package is installed.
:defer t ;; Load the package only when needed to improve startup time. :defer t ;; Load the package only when needed to improve startup time.
:hook :hook
(dired-mode . nerd-icons-dired-mode)) (dired-mode . nerd-icons-dired-mode))
(use-package nerd-icons-completion (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. :after (:all nerd-icons marginalia) ;; Load after `nerd-icons' and `marginalia' to ensure proper integration.
:config :config
(nerd-icons-completion-mode) ;; Activate nerd icons for completion interfaces. (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. (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 (use-package exec-path-from-shell
:ensure t :config
:init
(exec-path-from-shell-initialize)) (exec-path-from-shell-initialize))
(use-package envrc (use-package envrc
:ensure t
:init :init
(setq envrc-show-summary-in-minibuffer nil) (setq envrc-show-summary-in-minibuffer nil)
:hook :hook
(after-init . envrc-global-mode)) (after-init . envrc-global-mode))
(use-package modus-themes (use-package modus-themes
:ensure t
:config :config
(load-theme 'modus-vivendi t)) (load-theme 'modus-vivendi t))
(use-package org (use-package org
:ensure nil :straight (:type built-in)
:defer t :defer t
:custom :custom
(org-tags-column 0) (org-tags-column 0)
@@ -496,7 +486,6 @@
(require 'org-tempo)) (require 'org-tempo))
(use-package org-roam (use-package org-roam
:ensure t
:custom :custom
(org-roam-directory "~/org") (org-roam-directory "~/org")
:bind (("C-c n l" . org-roam-buffer-toggle) :bind (("C-c n l" . org-roam-buffer-toggle)

View File

@@ -17,7 +17,7 @@
shellIntegration = { shellIntegration = {
enableZshIntegration = true; enableZshIntegration = true;
}; };
themeFile = "Modus_Vivendi"; themeFile = "Modus_Operandi";
# darwinLaunchOptions = [ # darwinLaunchOptions = [
# "--single-instance" # "--single-instance"
# ]; # ];

View File

@@ -3,9 +3,14 @@
config, config,
... ...
}: { }: {
imports = [
../zk.nix
];
home.packages = with pkgs; [ home.packages = with pkgs; [
#utilities #utilities
ripgrep ripgrep
zk
# language servers # language servers
lua-language-server lua-language-server

View File

@@ -51,6 +51,10 @@ vim.o.termguicolors = true
vim.g.netrw_liststyle = 0 vim.g.netrw_liststyle = 0
vim.g.netrw_banner = 0 vim.g.netrw_banner = 0
-- conceal and foldlevel
vim.o.conceallevel = 3
vim.o.foldlevel = 99
-- Basic Keymaps -- Basic Keymaps
-- improves C-u and C-d by centering on scroll -- improves C-u and C-d by centering on scroll
vim.keymap.set('n', '<C-u>', '<C-u>zz', { desc = 'Scroll Up' }) vim.keymap.set('n', '<C-u>', '<C-u>zz', { desc = 'Scroll Up' })
@@ -84,14 +88,28 @@ vim.pack.add({
{ src = 'https://github.com/neovim/nvim-lspconfig' }, { src = 'https://github.com/neovim/nvim-lspconfig' },
{ src = 'https://github.com/stevearc/oil.nvim' }, { src = 'https://github.com/stevearc/oil.nvim' },
{ src = 'https://github.com/saghen/blink.cmp', version = vim.version.range('1.*') }, { 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) -- Theme (vague)
vim.cmd('colorscheme modus') vim.cmd('colorscheme modus_operandi')
-- Blink -- Blink
require('blink.cmp').setup({ require('blink.cmp').setup({
signature = { enabled = true } signature = { enabled = true },
completion = { documentation = { auto_show = true }}
}) })
-- Oil -- Oil
@@ -110,6 +128,18 @@ vim.keymap.set('n', '<leader>fg', MiniPick.builtin.grep_live, { desc = 'Grep Fil
-- Oil -- Oil
vim.keymap.set('n', '<leader>fe', '<CMD>Oil<CR>', { desc = 'Explore Files' }) vim.keymap.set('n', '<leader>fe', '<CMD>Oil<CR>', { desc = 'Explore Files' })
-- zk
require('zk').setup({
picker = "minipick"
})
vim.keymap.set("n", "<leader>zn", "<Cmd>ZkNew { title = vim.fn.input('Title: ') }<CR>")
vim.keymap.set("v", "<leader>znt", ":'<,'>ZkNewFromTitleSelection<CR>")
vim.keymap.set("n", "<leader>zf", "<Cmd>ZkNotes { sort = { 'modified' } }<CR>")
vim.keymap.set("n", "<leader>zt", "<Cmd>ZkTags<CR>")
vim.keymap.set("n", "<leader>zl", "<Cmd>ZkLinks<CR>")
vim.keymap.set("n", "<leader>zg", "<Cmd>ZkNotes { sort = { 'modified' }, match = { vim.fn.input('Search: ') } }<CR>")
vim.keymap.set("v", "<leader>zm", ":'<,'>ZkMatch<CR>")
-- LSP -- LSP
-- global on_attach -- global on_attach
local function lsp_on_attach(client, bufnr) local function lsp_on_attach(client, bufnr)

View File

@@ -4,13 +4,6 @@
package = pkgs.emacs-unstable; 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 = [ environment.systemPackages = [
pkgs.cmake pkgs.cmake
pkgs.cmake pkgs.cmake