Vic's *Nix config.

fisher

+111 -70
+1
modules/vic/_fish/aliases.nix
··· 9 9 vf = ''vim -c "lua Snacks.picker.files()"''; 10 10 vg = ''vim -c "lua Snacks.picker.grep()"''; 11 11 vr = ''vim -c "lua Snacks.picker.recent()"''; 12 + vd = ''vim -c "DiffEditor $left $right $output"''; 12 13 }
+61
modules/vic/_fish/tv.fish
··· 1 + tv init fish | source 2 + bind \t __tv_complete 3 + 4 + function __tv_complete -d 'fish completion widget with tv' 5 + # modified from https://github.com/junegunn/fzf/wiki/Examples-(fish)#completion 6 + # As of 2.6, fish's "complete" function does not understand 7 + # subcommands. Instead, we use the same hack as __fish_complete_subcommand and 8 + # extract the subcommand manually. 9 + set -l cmd (commandline -co) (commandline -ct) 10 + 11 + switch $cmd[1] 12 + case env sudo 13 + for i in (seq 2 (count $cmd)) 14 + switch $cmd[$i] 15 + case '-*' 16 + case '*=*' 17 + case '*' 18 + set cmd $cmd[$i..-1] 19 + break 20 + end 21 + end 22 + end 23 + 24 + set -l cmd_lastw $cmd[-1] 25 + set cmd (string join -- ' ' $cmd) 26 + 27 + set -l complist (complete -C$cmd) 28 + set -l result 29 + 30 + # do nothing if there is nothing to select from 31 + test -z "$complist"; and return 32 + 33 + set -l compwc (echo $complist | wc -w) 34 + if test $compwc -eq 1 35 + # if there is only one option dont open fzf 36 + set result "$complist" 37 + else 38 + set result (string join -- \n $complist | column -t -l 2 -o \t | tv --select-1 --no-status-bar --keybindings='tab="confirm_selection"' --inline --input-header "$cmd" | string split -m 2 -f 1 \t | string trim --right) 39 + end 40 + 41 + set -l prefix (string sub -s 1 -l 1 -- (commandline -t)) 42 + for i in (seq (count $result)) 43 + set -l r $result[$i] 44 + switch $prefix 45 + case "'" 46 + commandline -t -- (string escape -- $r) 47 + case '"' 48 + if string match '*"*' -- $r >/dev/null 49 + commandline -t -- (string escape -- $r) 50 + else 51 + commandline -t -- '"'$r'"' 52 + end 53 + case '~' 54 + commandline -t -- (string sub -s 2 (string escape -n -- $r)) 55 + case '*' 56 + commandline -t -- $r 57 + end 58 + commandline -i ' ' 59 + end 60 + commandline -f repaint 61 + end
+1
modules/vic/dots/config/nvim/lua/plugins/haunt.lua
··· 2 2 { 3 3 "https://git.sr.ht/~adigitoleo/haunt.nvim", 4 4 lazy = true, 5 + cmd = { "Haunt", "HauntTerm", "HauntLs" }, 5 6 config = function() 6 7 require("haunt").setup({}) 7 8 end,
+4 -4
modules/vic/dots/config/nvim/lua/plugins/jj.lua
··· 8 8 config = function() 9 9 require("jj").setup({}) 10 10 local cmd = require("jj.cmd") 11 - vim.keymap.set("n", "<leader>jj", "<cmd>J<CR>", { desc = "JJ" }) 11 + vim.keymap.set("n", "<leader>ju", "<cmd>HauntTerm -t jjui jjui<CR>", { desc = "jjui" }) 12 + 12 13 vim.keymap.set("n", "<leader>jd", cmd.describe, { desc = "JJ describe" }) 13 - vim.keymap.set("n", "<leader>jl", cmd.log, { desc = "JJ log" }) 14 14 vim.keymap.set("n", "<leader>je", cmd.edit, { desc = "JJ edit" }) 15 15 vim.keymap.set("n", "<leader>jn", cmd.new, { desc = "JJ new" }) 16 - vim.keymap.set("n", "<leader>js", cmd.status, { desc = "JJ status" }) 16 + vim.keymap.set("n", "<leader>jj", cmd.status, { desc = "JJ status" }) 17 17 vim.keymap.set("n", "<leader>ji", cmd.diff, { desc = "JJ diff" }) 18 - vim.keymap.set("n", "<leader>jq", cmd.squash, { desc = "JJ squash" }) 18 + vim.keymap.set("n", "<leader>jq", cmd.squash, { desc = "JJ squash -i" }) 19 19 20 20 -- Pickers 21 21 vim.keymap.set("n", "<leader>gj", function()
+25 -9
modules/vic/dots/config/nvim/lua/plugins/minifile.lua
··· 1 + local config = function() 2 + require("mini.files").setup({ 3 + mappings = { 4 + close = "<ESC>", 5 + go_in_plus = "<CR>", 6 + reset = "-", 7 + }, 8 + }) 9 + 10 + local set_mark = function(id, path, desc) 11 + MiniFiles.set_bookmark(id, path, { desc = desc }) 12 + end 13 + vim.api.nvim_create_autocmd("User", { 14 + pattern = "MiniFilesExplorerOpen", 15 + callback = function() 16 + set_mark("c", vim.fn.stdpath("config"), "Config") -- path 17 + set_mark("w", vim.fn.getcwd, "Working directory") -- callable 18 + 19 + set_mark("~", "~", "Home directory") 20 + end, 21 + }) 22 + end 23 + 1 24 return { 2 25 { 3 26 "nvim-mini/mini.nvim", ··· 7 30 { 8 31 "<leader>E", 9 32 function() 10 - require("mini.files").open() 33 + require("mini.files").open(vim.api.nvim_buf_get_name(0), false) 11 34 end, 12 35 desc = "Explore", 13 36 }, 14 37 }, 15 - config = function() 16 - require("mini.files").setup({ 17 - mappings = { 18 - close = "<ESC>", 19 - go_in_plus = "<CR>", 20 - }, 21 - }) 22 - end, 38 + config = config, 23 39 }, 24 40 }
+6 -55
modules/vic/dots/config/nvim/lua/plugins/which-key.lua
··· 1 - -- NOTE: Plugins can also be configured to run Lua code when they are loaded. 2 - -- 3 - -- This is often very useful to both group configuration, as well as handle 4 - -- lazy loading plugins that don't need to be loaded immediately at startup. 5 - -- 6 - -- For example, in the following configuration, we use: 7 - -- event = 'VimEnter' 8 - -- 9 - -- which loads which-key before all the UI elements are loaded. Events can be 10 - -- normal autocommands events (`:help autocmd-events`). 11 - -- 12 - -- Then, because we use the `opts` key (recommended), the configuration runs 13 - -- after the plugin has been loaded as `require(MODULE).setup(opts)`. 14 - 15 1 return { 16 - { -- Useful plugin to show you pending keybinds. 2 + { 17 3 "folke/which-key.nvim", 18 4 event = "VimEnter", -- Sets the loading event to 'VimEnter' 19 5 opts = { 20 - -- delay between pressing a key and opening which-key (milliseconds) 21 - -- this setting is independent of vim.o.timeoutlen 22 - delay = 0, 23 - icons = { 24 - -- set icon mappings to true if you have a Nerd Font 25 - mappings = vim.g.have_nerd_font, 26 - -- If you are using a Nerd Font: set icons.keys to an empty table which will use the 27 - -- default which-key.nvim defined Nerd Font icons, otherwise define a string table 28 - keys = vim.g.have_nerd_font and {} or { 29 - Up = "<Up> ", 30 - Down = "<Down> ", 31 - Left = "<Left> ", 32 - Right = "<Right> ", 33 - C = "<C-…> ", 34 - M = "<M-…> ", 35 - D = "<D-…> ", 36 - S = "<S-…> ", 37 - CR = "<CR> ", 38 - Esc = "<Esc> ", 39 - ScrollWheelDown = "<ScrollWheelDown> ", 40 - ScrollWheelUp = "<ScrollWheelUp> ", 41 - NL = "<NL> ", 42 - BS = "<BS> ", 43 - Space = "<Space> ", 44 - Tab = "<Tab> ", 45 - F1 = "<F1>", 46 - F2 = "<F2>", 47 - F3 = "<F3>", 48 - F4 = "<F4>", 49 - F5 = "<F5>", 50 - F6 = "<F6>", 51 - F7 = "<F7>", 52 - F8 = "<F8>", 53 - F9 = "<F9>", 54 - F10 = "<F10>", 55 - F11 = "<F11>", 56 - F12 = "<F12>", 57 - }, 6 + delay = 550, 7 + preset = "helix", 8 + keys = { 9 + scroll_down = "<c-n>", 10 + scroll_up = "<c-p>", 58 11 }, 59 - 60 - -- Document existing key chains 61 12 spec = { 62 13 -- { '<leader>s', group = '[S]earch' }, 63 14 -- { '<leader>t', group = '[T]oggle' },
+1
modules/vic/dots/config/nvim/lua/prelude.lua
··· 1 1 vim.g.mapleader = " " 2 2 vim.g.maplocalleader = " " 3 3 vim.g.have_nerd_font = not vim.g.vscode 4 + vim.api.nvim_create_user_command("Q", "qa!", { bang = true })
+1
modules/vic/fish.nix
··· 16 16 #home.file.".config/fish/conf.d/init-leader.fish".source = 17 17 # "${inputs.cli-leader.outPath}/assets/leader.fish.sh"; 18 18 home.file.".config/fish/conf.d/vscode-vim.fish".text = code-visual; 19 + home.file.".config/fish/conf.d/tv.fish".source = ./_fish/tv.fish; 19 20 20 21 programs.fzf.enable = true; 21 22 programs.fzf.enableFishIntegration = true;
+6 -1
modules/vic/jujutsu.nix
··· 110 110 inherit diff-formatter; 111 111 # pager = ":builtin"; 112 112 # editor = "nvim"; 113 - merge-editor = pkgs.meld; # meld 113 + # merge-editor = pkgs.meld; # meld 114 + diff-editor = [ 115 + "nvim" 116 + "-c" 117 + "DiffEditor $left $right $output" 118 + ]; 114 119 conflict-marker-style = "git"; 115 120 movement.edit = false; 116 121 };
+1
modules/vic/nvim.nix
··· 1 1 { 2 2 perSystem.treefmt.programs = { 3 3 stylua.enable = true; 4 + fish_indent.enable = true; 4 5 }; 5 6 6 7 flake.modules.homeManager.vic =
+4 -1
modules/vic/rdesk.nix
··· 7 7 linux = 8 8 { pkgs, lib, ... }: 9 9 lib.mkIf pkgs.stdenvNoCC.isLinux { 10 - home.packages = [ pkgs.kdePackages.krdc ]; 10 + home.packages = [ 11 + pkgs.kdePackages.krdc 12 + pkgs.xpra 13 + ]; 11 14 }; 12 15 13 16 any =