commit 2da793de0cd4883ac80a6ddb70d38e5392c2bda3 from: mtmn date: Thu Sep 17 22:00:13 2026 UTC kitty setup, add nix-multiverse, etc. commit - 6a9532cb25a6aece0d8c9143fb689a4efd1ddbdb commit + 2da793de0cd4883ac80a6ddb70d38e5392c2bda3 blob - aded968dacf031e0df62647f1b5e84c83dab2292 blob + 06226177a666a7135540ff0290334aa49524bad0 --- flake.lock +++ flake.lock @@ -162,11 +162,11 @@ ] }, "locked": { - "lastModified": 1789482455, - "narHash": "sha256-pD3qVlQ4mUCFoTWrYtxecpSitQMsgJvJIN0FUIDZoEU=", + "lastModified": 1789676441, + "narHash": "sha256-mOvO5VvycuBtOUe5EYI54vrLsWe+2KF/82fmwKooe48=", "owner": "nix-community", "repo": "home-manager", - "rev": "efa3ccb4c3cc90d832eab232976379058fa75aa3", + "rev": "9d485f74cd27d17126ee34cb31005c39d20f741f", "type": "github" }, "original": { @@ -199,11 +199,11 @@ }, "multiverse": { "locked": { - "lastModified": 1789550565, - "narHash": "sha256-k2MB2bhperGtyySaOGVtgFJJXCN8M+5953oihn9uXEE=", + "lastModified": 1789596272, + "narHash": "sha256-77w6/8smBVoIGOMdRyq3G7RnujIS7h5B4wMGVhTIKf0=", "owner": "fzakaria", "repo": "nixpkgs-multiverse", - "rev": "0d3bc8d9439238540dabb9f67e179219b674abe9", + "rev": "b780524b47fbe8b9ae8605a761a8fe9ad1a8e48b", "type": "github" }, "original": { blob - 93f1fe16233771254bdd27f37af0095498b1c737 blob + d7342606a4bcfb08d516f6cf9526140334954461 --- home.nix +++ home.nix @@ -14,9 +14,7 @@ multiverse = { enable = true; config.allowUnfree = true; - pins = { - ripgrep = "13.0.0"; - }; + pins = {}; }; home = { inherit username homeDirectory; blob - 33b6f677ddf20a02f082ae5f2ff794d4da856d75 blob + 15a61f61e7aab80997730b2704c127fe08cd7620 --- hosts/impish/default.nix +++ hosts/impish/default.nix @@ -108,6 +108,7 @@ gitu mergiraf git-toolbelt + git-filter-repo ]; net = [ @@ -180,7 +181,6 @@ ]; debug = [ - gdb strace perf hyperfine @@ -284,8 +284,6 @@ emscripten astroterm odin - nim - nimble ]; })); }; blob - cd49b6e10f45035807ccf3c58695c0a331ee732a blob + 0f07e4a8e0da63aee20bce73eada9bafe40c66bb Binary files hosts/impish/overlays/config/magdalena/config.json.nix and hosts/impish/overlays/config/magdalena/config.json.nix differ blob - 4458ed88dbde755d3f65957b32b9d1cde728de5e blob + 9db63d1f869d6e2e5027afa8ed0b3ff167f4bb1e Binary files hosts/impish/overlays/config/shell/rc/imp and hosts/impish/overlays/config/shell/rc/imp differ blob - 5dc4485ee2928adba081e3650a8c7ae97330d590 blob + eeb95fe336d414d6317d4eb0fc25b5657cf125e8 Binary files hosts/work/overlays/config/nvim/fnl/init.fnl and hosts/work/overlays/config/nvim/fnl/init.fnl differ blob - 4541c33a70b241a12c553ec26540ff5d0ede69ff blob + b4f179c843000e54bc78805568b6ba3766d0d706 Binary files hosts/work/overlays/home/tmux.conf and hosts/work/overlays/home/tmux.conf differ blob - da849bb02a68908b6c9fdf45a713a9e048e671f7 blob + 85623ff0537b7d1c2ad4651923352065d85f82cb --- modules/mixins/dotfiles/config/kitty/kitty.conf +++ modules/mixins/dotfiles/config/kitty/kitty.conf @@ -1,4 +1,4 @@ -include themes/base16-grayscale-dark.conf +include themes/base16-mono-a-bit-dark.conf font_family Ioskeley Mono Term bold_font Ioskeley Mono Term blob - 09f26f67495ae603442c8a9ffbd6d0816257a68d (mode 644) blob + /dev/null --- modules/mixins/dotfiles/config/kitty/themes/base16-grayscale-dark.conf +++ /dev/null @@ -1,25 +0,0 @@ -foreground #b9b9b9 -background #101010 - -color0 #101010 -color1 #7c7c7c -color2 #8e8e8e -color3 #a0a0a0 -color4 #686868 -color5 #747474 -color6 #868686 -color7 #b9b9b9 - -color8 #525252 -color9 #7c7c7c -color10 #8e8e8e -color11 #a0a0a0 -color12 #686868 -color13 #747474 -color14 #868686 -color15 #f7f7f7 - -cursor #b9b9b9 -cursor_text_color #101010 -selection_foreground #101010 -selection_background #b9b9b9 blob - /dev/null blob + 09f26f67495ae603442c8a9ffbd6d0816257a68d (mode 644) --- /dev/null +++ modules/mixins/dotfiles/config/kitty/themes/base16-mono-a-bit-dark.conf @@ -0,0 +1,25 @@ +foreground #b9b9b9 +background #101010 + +color0 #101010 +color1 #7c7c7c +color2 #8e8e8e +color3 #a0a0a0 +color4 #686868 +color5 #747474 +color6 #868686 +color7 #b9b9b9 + +color8 #525252 +color9 #7c7c7c +color10 #8e8e8e +color11 #a0a0a0 +color12 #686868 +color13 #747474 +color14 #868686 +color15 #f7f7f7 + +cursor #b9b9b9 +cursor_text_color #101010 +selection_foreground #101010 +selection_background #b9b9b9 blob - 1c0c36295391d53d53f269f7236ad97bd49cc2f4 blob + 4eb06b60bf55e6cdcd615f3d1ff2dd61f96991f8 --- modules/mixins/dotfiles/config/nvim/fnl/init.fnl +++ modules/mixins/dotfiles/config/nvim/fnl/init.fnl @@ -29,7 +29,6 @@ (gh :stevearc/oil.nvim) (gh :neogitorg/neogit) (gh :sindrets/diffview.nvim) - (gh :ibhagwan/fzf-lua) (gh :troydm/zoomwintab.vim) (gh :mbbill/undotree) (gh :smoka7/hop.nvim) @@ -51,7 +50,6 @@ ((. (require :mini.align) :setup)) ((. (require :oil) :setup) {:default_file_explorer false}) ((. (require :neogit) :setup)) - ((. (require :fzf-lua) :setup)) ((. (require :orgmode) :setup) {:org_agenda_files [(.. vim.g.denote.directory "agenda.org") (.. vim.g.denote.directory "todo.org")] @@ -102,6 +100,9 @@ (set vim.opt.undodir (.. vim-dir :undo//)) (set vim.opt.undofile true)) (set vim.opt.clipboard :unnamedplus) + (set vim.o.grepprg + "ugrep --recursive --line-number --column-number --smart-case --ignore-binary --color=never --no-messages -- $*") + (set vim.o.grepformat "%f:%l:%c:%m,%f:%l:%m") (vim.opt.rtp:append (.. (vim.fn.stdpath :data) :/nix/tree-sitter)) (set package.path (.. (fs.normalize "~") "/.config/nvim/lua/?.lua;" package.path)) blob - 336def0dc05a79910ea5bbef0ff434ab1c328ccc blob + 7faedc8d77c7d251b7e17529ab8b4f67c2097238 --- modules/mixins/dotfiles/config/nvim/fnl/keymaps.fnl +++ modules/mixins/dotfiles/config/nvim/fnl/keymaps.fnl @@ -1,10 +1,14 @@ -(each [key func (pairs {: :files - :ff :git_status - :fh :oldfiles - :fg :grep_project - :bb :buffers})] - (vim.keymap.set :n key (.. "lua require('fzf-lua')." func "()"))) +(local mag (require :magdalena)) +(vim.keymap.set :n : mag.files) +(vim.keymap.set :n :fh mag.recent-files) +(vim.keymap.set :n :fs mag.search) +(vim.keymap.set :n :fg mag.grep) +(vim.keymap.set :n :fG mag.grep-query) +(vim.keymap.set :n :fd mag.dirs) +(vim.keymap.set :n :bb mag.buffers) +(vim.keymap.set :n :ff mag.git) + (each [key cmd (pairs {:ng :Neogit :- :Oil :u :UndotreeToggle blob - /dev/null blob + 1f76683e32a7d67c0f251bba49228ca5b38fec1f (mode 644) --- /dev/null +++ modules/mixins/dotfiles/config/nvim/fnl/magdalena.fnl @@ -0,0 +1,130 @@ +(local M {}) + +(fn has-bin? [bin] + (= (vim.fn.executable bin) 1)) + +(fn warn-once [msg] + (vim.notify msg vim.log.levels.WARN)) + +(fn argv-for [full stdin-file] + (if stdin-file + (let [escaped (icollect [_ p (ipairs full)] + (vim.fn.shellescape p))] + [:sh + :-c + (.. (table.concat escaped " ") " < " (vim.fn.shellescape stdin-file))]) + full)) + +(fn float-term [cmd on-choice stdin-file] + (let [tmp (vim.fn.tempname) + full [:magdalena :--choose-file tmp]] + (each [_ a (ipairs cmd)] + (table.insert full a)) + (let [argv (argv-for full stdin-file) + width (math.floor (* vim.o.columns 0.85)) + height (math.floor (* vim.o.lines 0.8)) + row (math.floor (/ (- vim.o.lines height) 2)) + col (math.floor (/ (- vim.o.columns width) 2)) + buf (vim.api.nvim_create_buf false true) + win (vim.api.nvim_open_win buf true + {:relative :editor + : width + : height + : row + : col + :style :minimal + :border :rounded})] + (vim.fn.jobstart argv + {:term true + :cwd (vim.fn.getcwd) + :on_exit (fn [_ code] + (vim.schedule (fn [] + (let [lines (if (= (vim.fn.filereadable tmp) + 1) + (vim.fn.readfile tmp) + [])] + (pcall vim.fn.delete tmp) + (when (vim.api.nvim_win_is_valid win) + (vim.api.nvim_win_close win + true)) + (when (and (= code 0) + (> (length lines) + 0)) + (on-choice (. lines 1)))))))})) + (vim.cmd :startinsert))) + +(fn pick [args on-choice] + (if (not (has-bin? :magdalena)) + (warn-once "magdalena: binary not on PATH") + (float-term args on-choice))) + +(fn edit-path [path] + (when (and path (not= path "")) + (vim.cmd (.. "edit " (vim.fn.fnameescape path))))) + +(fn open-grep-choice [choice] + (let [(file line) (choice:match "^(.-):(%d+)")] + (if file + (do + (edit-path file) + (when line + (vim.api.nvim_win_set_cursor 0 [(tonumber line) 0]))) + (edit-path choice)))) + +(fn M.files [] + (pick [:look-file] edit-path)) + +(fn M.recent-files [] + (pick [:goto-file] edit-path)) + +(fn M.dirs [] + (pick [:look-directory] + (fn [dir] + (vim.cmd (.. "Oil " (vim.fn.fnameescape dir)))))) + +(fn M.grep [] + (pick [:grep] open-grep-choice)) + +(fn M.grep-query [] + (let [query (vim.fn.input "grep> ")] + (when (not= query "") + (pick [:grep query] open-grep-choice)))) + +(fn M.git [] + (pick [:git-status] edit-path)) + +(fn M.buffers [] + (if (not (has-bin? :magdalena)) + (warn-once "magdalena: binary not on PATH") + (let [names (icollect [_ b (ipairs (vim.api.nvim_list_bufs))] + (let [name (vim.api.nvim_buf_get_name b)] + (when (and (vim.api.nvim_buf_is_loaded b) (not= name "") + (= (vim.fn.buflisted b) 1)) + name)))] + (if (= (length names) 0) + (warn-once "magdalena: no open buffers") + (let [input (vim.fn.tempname)] + (vim.fn.writefile names input) + (float-term [:select] + (fn [choice] + (pcall vim.fn.delete input) + (edit-path choice)) input)))))) + +(fn M.search [] + (if (not (has-bin? :magdalena)) + (warn-once "magdalena: binary not on PATH") + (let [query (vim.fn.input "history> ")] + (when (not= query "") + (let [out (vim.fn.systemlist (.. "magdalena search " + (vim.fn.shellescape query))) + items (icollect [_ line (ipairs out)] + (let [idx (line:match ".*()|")] + (when (not= line "") + (if idx + (line:sub (+ idx 1)) + line))))] + (if (= (length items) 0) + (warn-once (.. "magdalena: no history for " query)) + (vim.ui.select items {:prompt "history> "} edit-path))))))) + +M blob - dfd5f052545ae685b28f93ea05fe6c54a3bd6ff3 blob + 06d34b45b63e8536ae23771929cfdef034130554 --- modules/mixins/dotfiles/config/shell/rc/aliased-short-names +++ modules/mixins/dotfiles/config/shell/rc/aliased-short-names @@ -16,6 +16,7 @@ alias tls='tmux list-sessions' alias tms="tmux display-message -p '#{session_name}'" alias mgr='magdalena grep' +alias mgs='magdalena git-status' alias mrf='magdalena recent-files' alias mrd='magdalena recent-directories' blob - 10de100840bfc91bafbf237970851d0ae73592a7 blob + 48d6a5525697a5889b6c8d9cbfcc1d345aa64f38 --- modules/mixins/dotfiles/home/tmux.conf +++ modules/mixins/dotfiles/home/tmux.conf @@ -3,7 +3,7 @@ set-option -g status-position top set -g base-index 1 setw -g pane-base-index 1 -set -g extended-keys on +set -g extended-keys always set -g extended-keys-format csi-u set-option -g update-environment "WAYLAND_DISPLAY DISPLAY" @@ -28,13 +28,17 @@ set-window-option -g window-status-style "fg=#747474,b set-window-option -g window-status-current-style "fg=#101010,bg=#999999" set-option -g pane-border-style "fg=#353535" -set-option -g pane-active-border-style "fg=#999999" +set-option -g pane-active-border-style "fg=#f5f5f5,bg=default,bold" +set-option -g pane-border-lines single +set-window-option -g window-style "fg=#757575,bg=#0a0a0a" +set-window-option -g window-active-style "fg=#e8e8e8,bg=default" + set-option -g message-style "fg=#999999,bg=#222222" set-option -g message-command-style "fg=#999999,bg=#222222" -set-option -g display-panes-active-colour "#999999" -set-option -g display-panes-colour "#747474" +set-option -g display-panes-active-colour "#ffffff" +set-option -g display-panes-colour "#4a4a4a" set-window-option -g mode-style "fg=#999999,bg=#222222" set-window-option -g clock-mode-colour "#747474"