From b8be6a3a4e918953f9c460637fda9c8839470e65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Tue, 4 Jul 2023 11:44:55 +0200 Subject: [PATCH 01/64] feat(tmux): add fish completions --- .../programs/{tmux.nix => tmux/default.nix} | 30 +++--------- .../tmux/tmux-attach/completions.fish | 1 + modules/programs/tmux/tmux-attach/script.fish | 5 ++ .../tmux/tmux-sessionizer/completions.fish | 1 + .../tmux/tmux-sessionizer/script.fish | 13 +++++ overlays/builders.nix | 49 +++++++++++++++++++ 6 files changed, 77 insertions(+), 22 deletions(-) rename modules/programs/{tmux.nix => tmux/default.nix} (80%) create mode 100644 modules/programs/tmux/tmux-attach/completions.fish create mode 100644 modules/programs/tmux/tmux-attach/script.fish create mode 100644 modules/programs/tmux/tmux-sessionizer/completions.fish create mode 100644 modules/programs/tmux/tmux-sessionizer/script.fish create mode 100644 overlays/builders.nix diff --git a/modules/programs/tmux.nix b/modules/programs/tmux/default.nix similarity index 80% rename from modules/programs/tmux.nix rename to modules/programs/tmux/default.nix index 32836bd..c2c620c 100644 --- a/modules/programs/tmux.nix +++ b/modules/programs/tmux/default.nix @@ -41,32 +41,18 @@ let ''; }; - tmux-sessionizer = pkgs.writeShellApplication { + tmux-sessionizer = pkgs.writeFishApplication { name = "ts"; - runtimeInputs = with pkgs; [ tmux findutils coreutils procps fd fzf ]; - text = '' - #!/usr/bin/env bash - - selected=$(fd -HIg '.git' ~/ --min-depth 1 --max-depth 5 --type d --prune --exec dirname {} | ${getExe fzf1} "$*") - - selected_name=$(basename "$selected" | tr . _) - - if ! tmux has-session -t="$selected_name" 2> /dev/null; then - tmux new-session -ds "$selected_name" -c "$selected" - fi - - ${getExe tmux-switch} "$selected_name" - ''; + runtimeInputs = with pkgs; [ tmux findutils coreutils procps fd fzf1 tmux-switch ]; + text = readFile ./tmux-sessionizer/script.fish; + completions = readFile ./tmux-sessionizer/completions.fish; }; - tmux-attach = pkgs.writeShellApplication { + tmux-attach = pkgs.writeFishApplication { name = "ta"; - runtimeInputs = with pkgs; [ tmux ]; - text = '' - #!/usr/bin/env bash - selected=$(tmux list-sessions -F '#{session_name}' | ${getExe fzf1} "$*") - ${getExe tmux-switch} "$selected" - ''; + runtimeInputs = with pkgs; [ tmux fzf1 tmux-switch ]; + text = readFile ./tmux-attach/script.fish; + completions = readFile ./tmux-attach/completions.fish; }; in diff --git a/modules/programs/tmux/tmux-attach/completions.fish b/modules/programs/tmux/tmux-attach/completions.fish new file mode 100644 index 0000000..6e31f9f --- /dev/null +++ b/modules/programs/tmux/tmux-attach/completions.fish @@ -0,0 +1 @@ +complete -c ta -f -a '(tmux list-sessions -F "#{session_name}" 2>/dev/null)' diff --git a/modules/programs/tmux/tmux-attach/script.fish b/modules/programs/tmux/tmux-attach/script.fish new file mode 100644 index 0000000..442dec2 --- /dev/null +++ b/modules/programs/tmux/tmux-attach/script.fish @@ -0,0 +1,5 @@ +set selected (tmux list-sessions -F '#{session_name}' 2>/dev/null | fzf1 $argv) +if not test -n "$selected" + exit 1 +end +tmux-switch "$selected" diff --git a/modules/programs/tmux/tmux-sessionizer/completions.fish b/modules/programs/tmux/tmux-sessionizer/completions.fish new file mode 100644 index 0000000..f48642c --- /dev/null +++ b/modules/programs/tmux/tmux-sessionizer/completions.fish @@ -0,0 +1 @@ +complete -c ts -f -a '(fd -HIg '.git' ~/ --min-depth 1 --max-depth 5 --type d --prune --exec realpath "{}/.." | xargs -I{} basename {} | string replace "." "")' diff --git a/modules/programs/tmux/tmux-sessionizer/script.fish b/modules/programs/tmux/tmux-sessionizer/script.fish new file mode 100644 index 0000000..d0ca484 --- /dev/null +++ b/modules/programs/tmux/tmux-sessionizer/script.fish @@ -0,0 +1,13 @@ +set selected (fd -HIg '.git' ~/ --min-depth 1 --max-depth 5 --type d --prune --exec dirname {} | fzf1 $argv) + +set selected_name (basename $selected 2>/dev/null | string replace "." "_") + +if not test -n "$selected_name" + exit 1 +end + +if ! tmux has-session -t $selected_name 2> /dev/null + tmux new-session -ds $selected_name -c $selected +end + +tmux-switch $selected_name diff --git a/overlays/builders.nix b/overlays/builders.nix new file mode 100644 index 0000000..498ebcc --- /dev/null +++ b/overlays/builders.nix @@ -0,0 +1,49 @@ +_: + +final: _: +with final.lib; +{ + writeFishApplication = + { name + , text + , completions ? null + , runtimeInputs ? [ ] + , checkPhase ? null + }: + let + fishFile = destination: content: final.writeTextFile { + inherit name destination; + executable = true; + allowSubstitutes = true; + preferLocalBuild = false; + text = '' + #!${getExe final.fish} + '' + optionalString (runtimeInputs != [ ]) '' + + export PATH="${makeBinPath runtimeInputs}:$PATH" + '' + '' + + ${content} + ''; + + checkPhase = + if checkPhase == null then '' + runHook preCheck + ${getExe final.fish} -n "$target" + runHook postCheck + '' + else checkPhase; + }; + + + script = fishFile "/bin/${name}" text; + + completions_file = fishFile "/share/fish/vendor_completions.d/${name}.fish" completions; + in + final.symlinkJoin { + inherit name; + paths = [ + script + ] ++ optional (completions != null) completions_file; + }; +} From 35b2144c68af502374be91dfd4fa1f38b3c46403 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Tue, 4 Jul 2023 11:46:02 +0200 Subject: [PATCH 02/64] feat(base): preview files when using f alias --- modules/profiles/base.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/profiles/base.nix b/modules/profiles/base.nix index 518ae72..14b3916 100644 --- a/modules/profiles/base.nix +++ b/modules/profiles/base.nix @@ -45,7 +45,7 @@ in mv = "mv -i"; cd = "z"; - f = "fzf --multi --bind \"enter:become($EDITOR {+})\""; + f = ''fzf --multi --bind "enter:become($EDITOR {+})" --preview "bat --color=always --style=header,grid --line-range :500 {+}"''; nixos-switch = nom-system-command "sudo nixos-rebuild switch --flake ~/.dotfiles"; nixos-boot = nom-system-command "sudo nixos-rebuild boot --flake ~/.dotfiles"; @@ -154,6 +154,7 @@ in enable = true; defaultOptions = [ "--height 50%" + "--bind alt-j:preview-down,alt-k:preview-up" ]; }; zoxide.enable = true; From 8d528f98143b67f071627f21c79afb94ed02d870 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sat, 15 Jul 2023 12:29:13 +0200 Subject: [PATCH 03/64] feat(nvim): add telkasten.nvim --- flake.lock | 19 ++++++++++++- flake.nix | 3 +++ modules/programs/nvim/plugins/default.nix | 33 +++++++++++++++++++++++ overlays/vimPlugins.nix | 6 +++++ 4 files changed, 60 insertions(+), 1 deletion(-) diff --git a/flake.lock b/flake.lock index 6ecc379..9200900 100644 --- a/flake.lock +++ b/flake.lock @@ -966,7 +966,8 @@ "pre-commit-hooks": "pre-commit-hooks", "rofi-wayland": "rofi-wayland", "smartcolumn-nvim": "smartcolumn-nvim", - "stable": "stable" + "stable": "stable", + "telekasten-nvim": "telekasten-nvim" } }, "rust-overlay": { @@ -1041,6 +1042,22 @@ "type": "github" } }, + "telekasten-nvim": { + "flake": false, + "locked": { + "lastModified": 1689074017, + "narHash": "sha256-yBw0Ja9xBhHcEdzvKvg6LCDzmIgW9kg0XaXS7hcr958=", + "owner": "renerocksai", + "repo": "telekasten.nvim", + "rev": "4a5e57eee9c5154ed77423bb7fa6619fdb0784cd", + "type": "github" + }, + "original": { + "owner": "renerocksai", + "repo": "telekasten.nvim", + "type": "github" + } + }, "wlroots": { "flake": false, "locked": { diff --git a/flake.nix b/flake.nix index 9eae8fc..826a858 100644 --- a/flake.nix +++ b/flake.nix @@ -50,6 +50,9 @@ smartcolumn-nvim.flake = false; smartcolumn-nvim.url = "github:m4xshen/smartcolumn.nvim"; + telekasten-nvim.flake = false; + telekasten-nvim.url = "github:renerocksai/telekasten.nvim"; + # Hyprland hypr-contrib.url = "github:hyprwm/contrib"; hyprland.url = "github:hyprwm/Hyprland"; diff --git a/modules/programs/nvim/plugins/default.nix b/modules/programs/nvim/plugins/default.nix index 89dc6af..54947e2 100644 --- a/modules/programs/nvim/plugins/default.nix +++ b/modules/programs/nvim/plugins/default.nix @@ -243,5 +243,38 @@ with builtins; event = [ "BufReadPost" "BufNewFile" ]; conf = "require('Comment').setup()"; } + { + plugin = telekasten-nvim; + dependencies = [ + { plugin = telescope-nvim; } + ]; + cmd = [ "Telekasten" ]; + keys = [ + { key = "z"; cmd = "Telekasten"; desc = "zettelkasten"; } + ]; + conf = '' + require("telekasten").setup({ + home = vim.fn.expand("~/Nextcloud/Notes/zettelkasten"), + auto_set_filetype = false, + auto_set_syntax = false, + image_subdir = "assets", + }) + vim.api.nvim_create_autocmd({ "BufReadPost", "BufNewFile" }, { + pattern = "*/zettelkasten/*", + callback = function(event) + vim.api.nvim_buf_set_keymap(0, "n", "", "", { + callback = function() + local current_word = vim.fn.expand("") + if vim.fn.match(current_word, "[[") == 0 then + require("telekasten").follow_link() + else + require("telekasten").toggle_todo() + end + end, + }) + end, + }) + ''; + } ]; } diff --git a/overlays/vimPlugins.nix b/overlays/vimPlugins.nix index 4c1e2aa..60d06b2 100644 --- a/overlays/vimPlugins.nix +++ b/overlays/vimPlugins.nix @@ -31,5 +31,11 @@ with lib.my; version = mkVersionInput inputs.cmp-async-path; src = inputs.cmp-async-path; }); + + telekasten-nvim = prev.vimUtils.buildVimPluginFrom2Nix { + pname = "telekasten-nvim"; + version = mkVersionInput inputs.telekasten-nvim; + src = inputs.telekasten-nvim; + }; }; } From 0f5f81539b35d15e1eebad72af41784db6184f07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sat, 15 Jul 2023 12:44:02 +0200 Subject: [PATCH 04/64] feat(nvim): add leap.nvim and leap-spooky.nvim --- flake.lock | 17 +++++++++ flake.nix | 3 ++ modules/programs/nvim/plugins/default.nix | 19 ++++++++++ modules/programs/nvim/plugins/mini-nvim.lua | 41 ++++++++++++++++++++- overlays/vimPlugins.nix | 6 +++ 5 files changed, 85 insertions(+), 1 deletion(-) diff --git a/flake.lock b/flake.lock index 9200900..9897dc5 100644 --- a/flake.lock +++ b/flake.lock @@ -521,6 +521,22 @@ "type": "github" } }, + "leap-spooky-nvim": { + "flake": false, + "locked": { + "lastModified": 1687792124, + "narHash": "sha256-EPqbsG7KFHdnbW430+BSrPeOoVy99KtIC8OpFbV1ycw=", + "owner": "ggandor", + "repo": "leap-spooky.nvim", + "rev": "e003f2aa376190148f2e7731a60c89239335013c", + "type": "github" + }, + "original": { + "owner": "ggandor", + "repo": "leap-spooky.nvim", + "type": "github" + } + }, "lowdown-src": { "flake": false, "locked": { @@ -956,6 +972,7 @@ "hypr-contrib": "hypr-contrib", "hyprland": "hyprland", "hyprpaper": "hyprpaper", + "leap-spooky-nvim": "leap-spooky-nvim", "lspsaga-nvim": "lspsaga-nvim", "master": "master", "neovim-nightly-overlay": "neovim-nightly-overlay", diff --git a/flake.nix b/flake.nix index 826a858..42191c8 100644 --- a/flake.nix +++ b/flake.nix @@ -50,6 +50,9 @@ smartcolumn-nvim.flake = false; smartcolumn-nvim.url = "github:m4xshen/smartcolumn.nvim"; + leap-spooky-nvim.flake = false; + leap-spooky-nvim.url = "github:ggandor/leap-spooky.nvim"; + telekasten-nvim.flake = false; telekasten-nvim.url = "github:renerocksai/telekasten.nvim"; diff --git a/modules/programs/nvim/plugins/default.nix b/modules/programs/nvim/plugins/default.nix index 54947e2..fa83949 100644 --- a/modules/programs/nvim/plugins/default.nix +++ b/modules/programs/nvim/plugins/default.nix @@ -243,6 +243,25 @@ with builtins; event = [ "BufReadPost" "BufNewFile" ]; conf = "require('Comment').setup()"; } + { + plugin = leap-nvim; + lazy = false; + conf = '' + require("leap").add_default_mappings() + ''; + } + { + plugin = leap-spooky-nvim; + lazy = false; + conf = '' + require("leap-spooky").setup() + ''; + dependencies = [ + { + plugin = leap-nvim; + } + ]; + } { plugin = telekasten-nvim; dependencies = [ diff --git a/modules/programs/nvim/plugins/mini-nvim.lua b/modules/programs/nvim/plugins/mini-nvim.lua index 6ce1ecc..28cabcd 100644 --- a/modules/programs/nvim/plugins/mini-nvim.lua +++ b/modules/programs/nvim/plugins/mini-nvim.lua @@ -1,9 +1,48 @@ require("mini.align").setup() -require("mini.surround").setup() require("mini.move").setup() require("mini.pairs").setup() require("mini.starter").setup() +require("mini.surround").setup({ + -- Add custom surroundings to be used on top of builtin ones. For more + -- information with examples, see `:h MiniSurround.config`. + custom_surroundings = nil, + + -- Duration (in ms) of highlight when calling `MiniSurround.highlight()` + highlight_duration = 500, + + -- Module mappings. Use `''` (empty string) to disable one. + mappings = { + add = "gSa", -- Add surrounding in Normal and Visual modes + delete = "gSd", -- Delete surrounding + find = "gSf", -- Find surrounding (to the right) + find_left = "gSF", -- Find surrounding (to the left) + highlight = "gSh", -- Highlight surrounding + replace = "gSr", -- Replace surrounding + update_n_lines = "gSn", -- Update `n_lines` + + suffix_last = "l", -- Suffix to search with "prev" method + suffix_next = "n", -- Suffix to search with "next" method + }, + + -- Number of lines within which surrounding is searched + n_lines = 20, + + -- Whether to respect selection type: + -- - Place surroundings on separate lines in linewise mode. + -- - Place surroundings on each line in blockwise mode. + respect_selection_type = false, + + -- How to search for surrounding (first inside current line, then inside + -- neighborhood). One of 'cover', 'cover_or_next', 'cover_or_prev', + -- 'cover_or_nearest', 'next', 'prev', 'nearest'. For more details, + -- see `:h MiniSurround.config`. + search_method = "cover", + + -- Whether to disable showing non-error feedback + silent = false, +}) + require("mini.tabline").setup() local tabline_current = vim.api.nvim_get_hl(0, { name = "MiniTablineCurrent" }) vim.api.nvim_set_hl(0, "MiniTablineCurrent", { diff --git a/overlays/vimPlugins.nix b/overlays/vimPlugins.nix index 60d06b2..0b8727b 100644 --- a/overlays/vimPlugins.nix +++ b/overlays/vimPlugins.nix @@ -32,6 +32,12 @@ with lib.my; src = inputs.cmp-async-path; }); + leap-spooky-nvim = prev.vimUtils.buildVimPluginFrom2Nix { + pname = "leap-spooky-nvim"; + version = mkVersionInput inputs.leap-spooky-nvim; + src = inputs.leap-spooky-nvim; + }; + telekasten-nvim = prev.vimUtils.buildVimPluginFrom2Nix { pname = "telekasten-nvim"; version = mkVersionInput inputs.telekasten-nvim; From 4dbec7bade23c3814eb95ef5f85c39c8968633e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sat, 15 Jul 2023 12:45:11 +0200 Subject: [PATCH 05/64] refactor(nvim): better name and lazy loading --- modules/programs/nvim/default.nix | 4 ++-- modules/programs/nvim/plugins/default.nix | 23 +++++++++++++---------- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/modules/programs/nvim/default.nix b/modules/programs/nvim/default.nix index 7e88008..568e3c8 100644 --- a/modules/programs/nvim/default.nix +++ b/modules/programs/nvim/default.nix @@ -48,9 +48,9 @@ let listToStringMultiLine id ([ "dir = ${quote plugin}" - "name = ${quote plugin.name}" - "lazy = ${boolToString lazy}" + "name = ${quote (getName plugin)}" ] + ++ (optional (!lazy) "lazy = ${boolToString lazy}") ++ (optional (!enabled) "enabled = ${boolToString enabled}") ++ (optional (dependencies != [ ]) "dependencies = ${listToStringMultiLine id (map lazySpecFromPlugin dependencies)}") ++ (optional (init != null) "init = function(plugin)\n${toString init}\nend") diff --git a/modules/programs/nvim/plugins/default.nix b/modules/programs/nvim/plugins/default.nix index fa83949..cb16242 100644 --- a/modules/programs/nvim/plugins/default.nix +++ b/modules/programs/nvim/plugins/default.nix @@ -200,8 +200,7 @@ with builtins; conf = readFile ./smartcolumn-nvim.lua; } { - plugin = telescope-fzf-native-nvim; - conf = readFile ./telescope-fzf-native-nvim.lua; + plugin = telescope-nvim; cmd = [ "Telescope" ]; keys = [ { key = "ff"; cmd = "Telescope find_files"; desc = "Find files"; } @@ -220,13 +219,15 @@ with builtins; { key = "gs"; cmd = "Telescope git_status"; desc = "Status"; } ]; dependencies = [ - { - plugin = telescope-nvim; - dependencies = [ - { plugin = plenary-nvim; } - { plugin = which-key-nvim; } - ]; - } + { plugin = plenary-nvim; } + { plugin = which-key-nvim; } + ]; + } + { + plugin = telescope-fzf-native-nvim; + conf = readFile ./telescope-fzf-native-nvim.lua; + dependencies = [ + { plugin = telescope-nvim; } ]; } { @@ -241,7 +242,9 @@ with builtins; { plugin = comment-nvim; event = [ "BufReadPost" "BufNewFile" ]; - conf = "require('Comment').setup()"; + conf = '' + require("Comment").setup() + ''; } { plugin = leap-nvim; From 795d6ececd539e7913ae5cf2e4273d8280ac54f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sat, 15 Jul 2023 12:46:53 +0200 Subject: [PATCH 06/64] feat(base): improve fzf wrappers --- modules/profiles/base.nix | 15 +++++++++++++-- modules/programs/tmux/default.nix | 24 ------------------------ overlays/packages.nix | 18 +++++++++++++++++- 3 files changed, 30 insertions(+), 27 deletions(-) diff --git a/modules/profiles/base.nix b/modules/profiles/base.nix index 14b3916..49eb2d6 100644 --- a/modules/profiles/base.nix +++ b/modules/profiles/base.nix @@ -14,6 +14,18 @@ let ''; }; nom-system-command = command: "${nom-system}/bin/nom-system && ${command}"; + + f = pkgs.writeFishApplication { + name = "f"; + runtimeInputs = with pkgs; [ fzf bat ]; + text = '' + #!/usr/bin/env fish + fzf --query "$argv" --multi --bind "enter:become($EDITOR {+})" --preview "bat --color=always --style=header,grid --line-range :500 {+}" + ''; + completions = '' + complete -c f + ''; + }; in { users.users.moritz = { @@ -45,8 +57,6 @@ in mv = "mv -i"; cd = "z"; - f = ''fzf --multi --bind "enter:become($EDITOR {+})" --preview "bat --color=always --style=header,grid --line-range :500 {+}"''; - nixos-switch = nom-system-command "sudo nixos-rebuild switch --flake ~/.dotfiles"; nixos-boot = nom-system-command "sudo nixos-rebuild boot --flake ~/.dotfiles"; nixos-update = "pushd ~/.dotfiles && nix flake update && popd"; @@ -118,6 +128,7 @@ in viu wget vim + f ]; fonts.fonts = with pkgs; [ diff --git a/modules/programs/tmux/default.nix b/modules/programs/tmux/default.nix index c2c620c..6469f96 100644 --- a/modules/programs/tmux/default.nix +++ b/modules/programs/tmux/default.nix @@ -4,30 +4,6 @@ with lib; let cfg = config.my.programs.tmux; - fzf1 = pkgs.writeShellApplication { - name = "fzf1"; - runtimeInputs = with pkgs; [ coreutils fzf ]; - text = '' - #!/usr/bin/env bash - - options=$(fzf --filter "''$*" < /dev/stdin) - - if [[ -z $options ]]; then - exit 1 - elif [[ $(wc -l <<< "$options") -eq 1 ]]; then - selected="$options" - else - selected=$(echo "$options" | fzf --query="$*") - fi - - if [[ -z $selected ]]; then - exit 0 - fi - - echo "$selected" - ''; - }; - tmux-switch = pkgs.writeShellApplication { name = "tmux-switch"; runtimeInputs = with pkgs; [ tmux ]; diff --git a/overlays/packages.nix b/overlays/packages.nix index bb884a9..c4d7e67 100644 --- a/overlays/packages.nix +++ b/overlays/packages.nix @@ -1,6 +1,6 @@ { inputs, lib, ... }: -_: prev: +final: prev: { agenix = inputs.agenix.packages.${prev.system}.default; hyprpaper = inputs.hyprpaper.packages.${prev.system}.default; @@ -10,4 +10,20 @@ _: prev: src = inputs.rofi-wayland; version = lib.my.mkVersionInput inputs.rofi-wayland; }); + + fzf1 = final.writeShellApplication { + name = "fzf1"; + runtimeInputs = with final; [ coreutils fzf fd ]; + text = '' + #!/usr/bin/env bash + selected=$(fzf --query="$*" -1 < /dev/stdin) + + if [[ -z $selected ]]; then + exit 0 + fi + + echo "$selected" + ''; + }; + } From 21070e64382db6bcfb8bcbc330775f6435357b9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sat, 15 Jul 2023 12:48:10 +0200 Subject: [PATCH 07/64] refactor(nvim)!: remove cspell --- modules/programs/nvim/default.nix | 1 - modules/programs/nvim/plugins/null-ls-nvim.lua | 9 --------- 2 files changed, 10 deletions(-) diff --git a/modules/programs/nvim/default.nix b/modules/programs/nvim/default.nix index 568e3c8..8b61c38 100644 --- a/modules/programs/nvim/default.nix +++ b/modules/programs/nvim/default.nix @@ -231,7 +231,6 @@ in nil nixpkgs-fmt nodePackages.bash-language-server - nodePackages.cspell rustfmt shellcheck shfmt diff --git a/modules/programs/nvim/plugins/null-ls-nvim.lua b/modules/programs/nvim/plugins/null-ls-nvim.lua index 7d65248..c689fad 100644 --- a/modules/programs/nvim/plugins/null-ls-nvim.lua +++ b/modules/programs/nvim/plugins/null-ls-nvim.lua @@ -3,14 +3,12 @@ local null_ls = require("null-ls") null_ls.setup({ sources = { -- Code actions - null_ls.builtins.code_actions.cspell, null_ls.builtins.code_actions.gitsigns, null_ls.builtins.code_actions.shellcheck, null_ls.builtins.code_actions.statix, -- Completion null_ls.builtins.completion.spell, -- Diagnostics - null_ls.builtins.diagnostics.cspell, null_ls.builtins.diagnostics.deadnix, null_ls.builtins.diagnostics.shellcheck, null_ls.builtins.diagnostics.statix, @@ -18,7 +16,6 @@ null_ls.setup({ }) -- disable (c)spell initially -null_ls.disable("cspell") null_ls.disable("spell") -- make sources toggle able @@ -31,11 +28,5 @@ require("which-key").register({ end, "spell", }, - S = { - function() - null_ls.toggle("cspell") - end, - "cspell", - }, }, }, { prefix = "t" }) From 50ba2969d1136b6cad0b829edb98a97d63c546a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sat, 15 Jul 2023 12:49:32 +0200 Subject: [PATCH 08/64] feat(nvim): add markdown-preview.nvim --- modules/programs/nvim/plugins/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/programs/nvim/plugins/default.nix b/modules/programs/nvim/plugins/default.nix index cb16242..8adcbb5 100644 --- a/modules/programs/nvim/plugins/default.nix +++ b/modules/programs/nvim/plugins/default.nix @@ -298,5 +298,9 @@ with builtins; }) ''; } + { + plugin = markdown-preview-nvim; + lazy = false; + } ]; } From 2e4ac37bc68357f6c4c506625f3a466ccc6fde28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sat, 15 Jul 2023 18:17:59 +0200 Subject: [PATCH 09/64] feat(nvim): enable catppuccin telekasten syntax --- modules/programs/nvim/plugins/catppuccin-nvim.lua | 1 + modules/programs/nvim/plugins/default.nix | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/programs/nvim/plugins/catppuccin-nvim.lua b/modules/programs/nvim/plugins/catppuccin-nvim.lua index 921651c..3b8cd7c 100644 --- a/modules/programs/nvim/plugins/catppuccin-nvim.lua +++ b/modules/programs/nvim/plugins/catppuccin-nvim.lua @@ -10,6 +10,7 @@ require("catppuccin").setup({ enabled = true, }, treesitter = true, + telekasten = true, telescope = true, lsp_trouble = true, which_key = true, diff --git a/modules/programs/nvim/plugins/default.nix b/modules/programs/nvim/plugins/default.nix index 8adcbb5..74bde38 100644 --- a/modules/programs/nvim/plugins/default.nix +++ b/modules/programs/nvim/plugins/default.nix @@ -278,7 +278,6 @@ with builtins; require("telekasten").setup({ home = vim.fn.expand("~/Nextcloud/Notes/zettelkasten"), auto_set_filetype = false, - auto_set_syntax = false, image_subdir = "assets", }) vim.api.nvim_create_autocmd({ "BufReadPost", "BufNewFile" }, { From 1433a539a5fff26ebbb44ee89f93081a70d7b4cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Fri, 21 Jul 2023 11:23:52 +0200 Subject: [PATCH 10/64] feat: add scadspc25 as host --- hosts/scadspc25/default.nix | 71 ++++++++++++++++++++ hosts/scadspc25/hardware-configuration.nix | 72 +++++++++++++++++++++ hosts/scadspc25/system.nix | 1 + modules/profiles/base.nix | 1 - secrets/github.age | 33 +++++----- secrets/nordvpn.age | Bin 888 -> 906 bytes secrets/secrets.nix | 9 ++- secrets/spotifyd.age | 31 ++++----- secrets/ssh-home.age | Bin 926 -> 1033 bytes secrets/uni-vpn.age | 33 +++++----- secrets/webis-ssh.age | Bin 669 -> 791 bytes secrets/webis.age | Bin 8187 -> 8345 bytes secrets/wireguard-preshared-key.age | Bin 837 -> 824 bytes secrets/wireguard-private-key.age | 30 +++++---- 14 files changed, 218 insertions(+), 63 deletions(-) create mode 100644 hosts/scadspc25/default.nix create mode 100644 hosts/scadspc25/hardware-configuration.nix create mode 100644 hosts/scadspc25/system.nix diff --git a/hosts/scadspc25/default.nix b/hosts/scadspc25/default.nix new file mode 100644 index 0000000..d4ba0d4 --- /dev/null +++ b/hosts/scadspc25/default.nix @@ -0,0 +1,71 @@ +# Edit this configuration file to define what should be installed on +# your system. Help is available in the configuration.nix(5) man page +# and in the NixOS manual (accessible by running `nixos-help`). + +{ config, pkgs, ... }: + +{ + imports = + [ + # Include the results of the hardware scan. + ./hardware-configuration.nix + ]; + + + my = { + yubikey.luksSupport.enable = false; + profiles = { + desktop.enable = true; + webis.enable = true; + }; + programs.hyprland.keyboardLayouts = [ "us" "de" ]; + }; + + # Use the systemd-boot EFI boot loader. + boot.loader.grub.enable = true; + boot.loader.grub.device = "nodev"; + boot.loader.grub.efiSupport = true; + boot.loader.efi.canTouchEfiVariables = true; + + networking.hostName = "scadspc25"; # Define your hostname. + networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. + + # Set your time zone. + time.timeZone = "Europe/Berlin"; + + # Select internationalisation properties. + i18n.defaultLocale = "en_US.UTF-8"; + + environment.systemPackages = with pkgs; [ + vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. + wget + ]; + + # Some programs need SUID wrappers, can be configured further or are + # started in user sessions. + # programs.mtr.enable = true; + # programs.gnupg.agent = { + # enable = true; + # enableSSHSupport = true; + # }; + + # List services that you want to enable: + + # Enable the OpenSSH daemon. + # services.openssh.enable = true; + + # Copy the NixOS configuration file and link it from the resulting system + # (/run/current-system/configuration.nix). This is useful in case you + # accidentally delete configuration.nix. + # system.copySystemConfiguration = true; + + # This value determines the NixOS release from which the default + # settings for stateful data, like file locations and database versions + # on your system were taken. It's perfectly fine and recommended to leave + # this value at the release version of the first install of this system. + # Before changing this value read the documentation for this option + # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). + system.stateVersion = "23.05"; # Did you read the comment? + +} + diff --git a/hosts/scadspc25/hardware-configuration.nix b/hosts/scadspc25/hardware-configuration.nix new file mode 100644 index 0000000..d4d8fdb --- /dev/null +++ b/hosts/scadspc25/hardware-configuration.nix @@ -0,0 +1,72 @@ +# Do not modify this file! It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = + [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" "sr_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { + device = "/dev/disk/by-uuid/cfc2d232-f833-4ecf-8098-fe805afd390d"; + fsType = "btrfs"; + options = [ "subvol=root" "compress=zstd" "noatime" ]; + }; + + fileSystems."/home" = + { + device = "/dev/disk/by-uuid/cfc2d232-f833-4ecf-8098-fe805afd390d"; + fsType = "btrfs"; + options = [ "subvol=home" "compress=zstd" "noatime" ]; + }; + + fileSystems."/nix" = + { + device = "/dev/disk/by-uuid/cfc2d232-f833-4ecf-8098-fe805afd390d"; + fsType = "btrfs"; + options = [ "subvol=nix" "compress=zstd" "noatime" ]; + }; + + fileSystems."/var/log" = + { + device = "/dev/disk/by-uuid/cfc2d232-f833-4ecf-8098-fe805afd390d"; + fsType = "btrfs"; + options = [ "subvol=log" "compress=zstd" "noatime" ]; + }; + + fileSystems."/snapshots" = + { + device = "/dev/disk/by-uuid/cfc2d232-f833-4ecf-8098-fe805afd390d"; + fsType = "btrfs"; + options = [ "subvol=snapshots" "compress=zstd" "noatime" ]; + }; + + fileSystems."/boot" = + { + device = "/dev/disk/by-uuid/3B2B-63DB"; + fsType = "vfat"; + }; + + swapDevices = + [{ device = "/dev/disk/by-uuid/c08ff6b6-d6e2-4620-95fc-6c20b04c7363"; }]; + + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking + # (the default) this is the recommended approach. When using systemd-networkd it's + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.eno1.useDHCP = lib.mkDefault true; + # networking.interfaces.wlp0s20f3.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/hosts/scadspc25/system.nix b/hosts/scadspc25/system.nix new file mode 100644 index 0000000..132026a --- /dev/null +++ b/hosts/scadspc25/system.nix @@ -0,0 +1 @@ +"x86_64-linux" diff --git a/modules/profiles/base.nix b/modules/profiles/base.nix index 49eb2d6..9727af2 100644 --- a/modules/profiles/base.nix +++ b/modules/profiles/base.nix @@ -70,7 +70,6 @@ in fish.enable = true; git.enable = true; gpg.enable = true; - navi.enable = true; nix = { gc.enable = true; optimise.enable = true; diff --git a/secrets/github.age b/secrets/github.age index b091b3b..fdda25e 100644 --- a/secrets/github.age +++ b/secrets/github.age @@ -1,16 +1,19 @@ age-encryption.org/v1 --> ssh-ed25519 CjuqfA vQgqFrMrdEi4vwNj9qSLO9YVBTpY5OSMoRzH+Wk19lw -GkYkh9FisOcAREJe+CW3gftgWunKH1V7N/hm4l2n2BM --> ssh-ed25519 QRYDmg pRNoHHxbQ7p6bzanDmakpHGc06EVqB8TSn+X7+4fbm8 -O2rpt/OVbGKKzEnGVlMnOhyJaqsMQdeB5ZxjfKf9BNc --> ssh-ed25519 wG6LYg 2aXp/3oo9BbOg7vBHnSPwDY9ycuJHA68Uf6Q9afYmA8 -vd+yYpAqiDYMVIGvJmGD6T6Inwo64dYMRwq4n8kqV7E --> ssh-ed25519 ZYd7Zg c/egc/Me5k/RirfanQY/Qq3Fhdm7q67lUL7SzpBp9Tk -81ubfNCPJOtbo82iKmB/Tq3jgUntKnAQQy+JuiZkeTo --> ssh-ed25519 as9VYQ 6g/5nmOnTK9BWF0bLpk58OGb5iLMaJpNvg955iY5qhs -jWt7sv4r5n5x5zJRvmWuP9moVzqmro8jHrnAIUjH+vU --> wn7ow-grease /PE|\ M5 3a3-e/J+ hv7j2 -fPDfe6t5LKX5MmidzQkudoyFfF+GuUHIhtfz7DTyTAEczkqOCSUGvpGmgR5wckMK -rPUibrMFHW0 ---- ivXm5PXqcdPjqMKGTRTasnf0zgaLc1QovA6gmxPEGQQ -0T`ݓNkg]ج XvȞ ̝9Jd|b,&Sބ- WDߚS \ No newline at end of file +-> ssh-ed25519 CjuqfA G27Yt1FyurlWFuq0397PV2+bivdRG0X//CfFqrSR2Qc +n31SgYLmCGlAsSIpOr/UwQupt92qh5ONU5n4xOGfeJU +-> ssh-ed25519 QRYDmg T36WQmcOabBJRDC18gIwEg+wHOs2k2a+ti4VKE9H+RQ +A8hj7izomU3eGEb7ML3EVZYaqvhQ5ZSHcb/EM2QnBa0 +-> ssh-ed25519 wG6LYg weF/pK+Xxh5Kxt/JTXAd/YXkTibD6yGnewOloDWfszE +VpUC74mIThmgieN5cfljgFl3Os7SQ/HG9iA/nhUdORY +-> ssh-ed25519 ZYd7Zg TRuhGwA6YOxJjodDMhyQm6JiInbIwnSO86Vptoj+lGc +sknbCE94iTQwnwjWPpsbRUKAEqTSY82rXS/17bRXt0E +-> ssh-ed25519 as9VYQ oqaIVShntZXxqkkZP7Mg+Je3k0OvNWVH+6sbsu1Zlgc +gSd1Ecv5gNGxRZjsFYkcIDlJ+uv9ubZn8pgo56GrOHg +-> ssh-ed25519 dWIbQQ hNi/nS5QeE+MPUYvb94XwoN+GOuinzgc2QU/v2+VhkQ +L3p7rRv64DvD+VX7kad7B15kuDCQMxVB+ZE91mJYv74 +-> @l~.-grease m4vSyUw1 +xxt67nUfB58sf7oOIxzYCoiiqX/E4yJQmdJt3tVZ6FHyqNfU7SxrInaFDppl9tiW +WIhtVGjS +--- 6Hp/UXOV+kUSkC+cYQFu4vJ70qctprk/T/pr5tH0gV0 +$U5E\ tn|GBۍ.n} wz& +Zx@ÚI|i^sCOu @ \ No newline at end of file diff --git a/secrets/nordvpn.age b/secrets/nordvpn.age index ebce7091a84d45b54d2b03d7994ef39adb18188b..4f0074eeae020738feed80ef911cf772bde4f2a0 100644 GIT binary patch literal 906 zcmZ9_JCEB0003abXsHsXBJmn9g_gnOY{zz-a8-rlIDW*j6FZI{W%29$iXX9ajuR&6 zf&{vis{{fuAysX~gpd#&Di8x*ka!H8p(;XGmM&FW#G3C9e0Jcs{LC#k#VX3P{k#m| z8UdMcbh8aAPvBQ5UwYEexc1q zxn9SiN4m~LkZsY1AYMvx`-tYYF{ktw2|!5*Zp@?<*_O0WO>n2{1x*erK zFm8@l%>Z0g`a)nQDu#(Q65~08Idnn5$QrdE&NeV>Z~974pVAq=3^aMYfSiRg(McYW4J#L!PK*Fv*-Mx~2g8O{ zlGV;c8o7oEC8!Z-@QU+=h}H3$hz?Vl+1)&yccxPi*R^0-TCQM*1`Z?cbe<(z8AMrb zr3^DJQk`=SS9YDN3DEVtDx?d`<3>~|(0+}LH7Qlhs9**o%G*6SxfKNnoN^58OicJ#C@J{zB0 JeDjwd{sX2#HuV4i literal 888 zcmZY4%ZuZ5003b2;DZRV9>jx)fmvqJZZ}EuY7oSxc{Kf{oi?u~0oP5NOxotvHjgG9 z8N4{SDx%&5S%tmG>cN9(y(s9xgNq0&9uyq$Fo$Iiqp~+y#OwGMe0+}Y)xCJKsutNS zi7zKBA1N@X{ydzf)4Jz2ND^b<_B>ziw_t#>tOjgyAnV0QYAJkGJfv8ACivdOi zxHYX53J)vL8R^*nw6#ddmJg$vXl_PXPMaGF^~Y3=1qy??3>P6&z~&{Gjxc7@YuQx* zO}w5z?q*2SBvV6)L=bBguUVGSRnaJK3VR)VP_s9P%IRlsw&l{c533l>E>hs31e^B- zpf%)1Br`3iFXKF*Xnr%2(OD?As!)d*MK?3gK}4dx1`@VJrtC(h3SIY-{yGAg-gb*n z63u`bp4FU`F{~k+qBJJx$^xWvQAQwG3DQz^%c9TJjJYZ`0zViu!})x|4IzwF0>vD4 zFs#7$rz1Vdx+ZI^I1O=XnBLP$>wy&Iie*JgI*d8wq>0ckCK76(N=eyr(=E+fsesJ^l M&-&4g!*h@S3kKveqW}N^ diff --git a/secrets/secrets.nix b/secrets/secrets.nix index 723b0a8..09e13f4 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -6,8 +6,11 @@ let nixos-laptop = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDhtwHDGAZshiQWKkCcPWV9tC83b+bKBgjDcjP/N2CKO"; nixos-desktop = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKl8gMhwSf1NsP5gp14xbbyjqQLZzcHLb/XKRMoHdXgI"; nixos-work = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGQdruRBgcS3JbX+8DP4GE+28M/ZnxqxhoaMM5EVUkrD"; + scadspc25 = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID3i/+siSLZmbW/8uM1LCpmR4ErCtS9zdS4aDDSfCESC"; + hosts-personal = [ nixos-laptop nixos-desktop ]; - hosts = hosts-personal ++ [ nixos-work ]; + hosts-work = [ nixos-work scadspc25 ]; + hosts = hosts-personal ++ hosts-work; all = users ++ hosts; in @@ -19,6 +22,6 @@ in "uni-vpn.age".publicKeys = all; "wireguard-preshared-key.age".publicKeys = all; "wireguard-private-key.age".publicKeys = all; - "webis.age".publicKeys = hosts-personal ++ [ moritz ]; - "webis-ssh.age".publicKeys = hosts-personal ++ [ moritz ]; + "webis.age".publicKeys = hosts-personal ++ [ scadspc25 moritz ]; + "webis-ssh.age".publicKeys = hosts-personal ++ [ scadspc25 moritz ]; } diff --git a/secrets/spotifyd.age b/secrets/spotifyd.age index 80c2746..f564d39 100644 --- a/secrets/spotifyd.age +++ b/secrets/spotifyd.age @@ -1,16 +1,17 @@ age-encryption.org/v1 --> ssh-ed25519 CjuqfA eP249XpK70os6x/XG6zr0VWmQ4dDUvbijmYeArRAogs -C/nwUI7ObSuJRt4TfqUM8Z0IxD/mXg392CawE3r52Yw --> ssh-ed25519 QRYDmg gv9JRmJBt0lQV2mx7TiZlyWNOIDXW2flISCN2Tw9kh8 -h5wmTiWn8oX5Sr/yJp/FZ4eGxutCgIkPpDU8E4Dul0A --> ssh-ed25519 wG6LYg 5Pw8gHIEP5rA4aStCC217iNnky9J/t1KsmfK25o6Ylw -TRJ4+3AsT9n0IEMZXyvcFRqSS1J48fFaVWHK9C3DgWw --> ssh-ed25519 ZYd7Zg ns34LIL0NNzrSUFTJGsELNVyfxcknuDfgK9ZE0DGNXM -NUgBXe/HNOz8NKbS0xMzd3Z2cP9zsjLKcc4fDu66nw0 --> ssh-ed25519 as9VYQ kd/k9sA8gUNNKmhi5LcZqSrRg3qUKhHXhYKE7nkQgmY -JVPlAWimRS2QZu0PIvQMwzC21B35miaWpEEsUUEq37Q --> T_b>Tl-grease Xe5~ 2q } -wGqdSY44FDId8JTxJS0/1mMbT/yPvB2L ---- 3g9QhHQwSdmcyWII9LEiUq38yyKfvW/OJFgRZHpQfhk -6}jJoeNL1=OJgr\~*ZmsWA -x \ No newline at end of file +-> ssh-ed25519 CjuqfA /YCi+4iCBCJc2+n5DfEi6yFqYiC6WKyKqMQTC3dxYTM +TXnSGexVJPzsxV3GBoxujBPy4sYFK7tTzpgZd+tL7PY +-> ssh-ed25519 QRYDmg 7ol/1aYbVuD1peL4kMHFifxtfj1LJPQ7ByMgmoIiLG0 +LJyz1aoBxOnxcy/x9yXCcMDG1CM8XSGTIvklShHsLr8 +-> ssh-ed25519 wG6LYg LvuMCPIaXP8gDriTDVIXak2dLUTDgyA+ADnsFDEtpX4 +PSsM5NsSVhsV1xtZPs3VZbJopfkDQg7Gxjkrnf+I5VI +-> ssh-ed25519 ZYd7Zg jt4zPtq1gv/SQ8Zqy2kFQZTUHo57d3BcBOusafU5TwE +FCifF8kUwHqlvokMMhJ/A2zCutshBg9K22gZPeYyK5s +-> ssh-ed25519 as9VYQ 2w+TXKZGnMQ5nRqVPfDiXAjGPLjMQcDzuZ42tXD81zE +GHVNnPD1QrRfjlxymtkIvW/fSH8280ye4ojag/RrL6Y +-> ssh-ed25519 dWIbQQ vFV8rbuDIUhVuWlp1zLKbSZkxWwBpjLGAHZ7TZmlpxA +2qq8R8eGQHMAtTAKJxv7ouXwbw9h9LnoipQ+dtq0bOk +-> eLqn-grease +s21qb67X34dXu+DeHZV4IA9mvegTyQSulJuWZXUyGmlxQT4N7pDAjAgrlrsT8zI +--- ogDMsipm47a5cDUlzX1zPmeakFaqXecpvYfPILf5PGA +;(+\"`qnC:6V싄t0\2o<*?J\TϢV_ \ No newline at end of file diff --git a/secrets/ssh-home.age b/secrets/ssh-home.age index e7b777b2788ad23815c1959131293e85ecfef79b..b937b62ba1c141aa23e0746270e4d79e332d5dd6 100644 GIT binary patch literal 1033 zcmZ9_S&JJ5003auqGHM}BKYEij#rV!Y-T2NwzPJV$t0Ofu9?ZqPJEC|GMW3zTuGp~ z;6V|gJ_w3d*P~bzQBl-L}cZ1V^szx#OmnpNYo6X6g>x z%-RrV_M;p+n3jn8tUMVaoH8(Kz7BytoLb{dF<3h=9RbEdE>7lkI94rcsj3vC%FZpTVVt4^U9?PO${JW?Ml@F^DZ zVWyv}mE<(yB_|KE6`2vCv}pF%T;GcFRwhnm)^Hmhto6w%LG0WH$`~K$fL6^wtb-zk zo9Yx)rs9QYJ1{eeyO9@8H7LyTvELJ0_*x^!V3kH_BW}L$c60>7!;%|#l+`HVNu|T~ z*eFsuixTRzh1Sk(7?G0F0~`&*7&^|QH17+^$cYvRI-3m~*(Xg&k|xPSvx68@A*Pxm zJBCKlJb}t#3z5Ytmf2~N#U~2eQ zuU6-=xKk>kfUPi@?K z=JO-D-@Df@-5q~&^P{WRy&Hai`rP=w7e2zi`}+0nKU@2EuiSq2=uwru@a6hl2iA$r zlfU#ne2PlW|F!Yt5`S6Bw*4CX@r%zq7d`RvO;>MSGk*1}IJ$g~^T^>JUpnJ`bK1FT zceT;BKifKS+k1QOKfC@zd+)W{p`S)e)H^HBZ$JI#rucNu003|b#mP+sS+z{)IKju{Jadnvm*DKU%UyE0CU?o@bqNklFR#n%E=ez! zi%JopV@|PUpdxHcDk2UXD`QI0GH{~M7W^<7O7Ssp`lYaeAEu1@`27pNQ}>@cu=323 zT881oz{voqQDdjx?klblRDIuyy&hvt?kYttXxG1B9)y>hoPC()B*(Mku=kms;-gFgH}!qO{l&A55@L;7sN&= zCTe^@@S3i~C|3|cCL9ptz++NO#)lFKtjSI=?1_#w=7udQjKscVHb7DcT$N~2fv+I( zX!Xvts8o4PZ~-L%)3Tr~aS9r2ol@V5P zbeIhm?WAjElu9{bi&hY-eYr^|%$XM_rbUpixt$`Vwz^=`!v(C9mwhvXVR$2MuwYMv z9o&GONOu`HHEWSH;Z+T@9m!VcT8=u*%xbaeQ93OSdb+C)3Dz>%q{E-tnV4Q0OF1B~ z!vxV8Lb40lc3{+47J%@Wr^|qyltEbQNX-OI;FLWqWsEV}5nFJMtx!yN)G8L6w1T;9 z4e2k2a+2W`z&!T$%Mr>r>48iA&SS~^>K94V!Jf1Cmq6##`Wt5q2c!X?F3@hahs zJil0vKvT(hPQs0d5l4tH5ZNfg7gfQhX@u?Do<1)zscbfz#!D^~dt@%}+d-Sg#Xtct zvoVkKEV$LwNnRK^t&Z89rKEC-L%)7aAhwtBkEed0`R3ZECrdZJzuI_oy!+YI+@Ynv zYSYJOew?~@f z`s~)ti`W0F^>*Jny@`K#qy#^(cH;8hm8;O)`G21NV6f4h5&k$fkKOz2$@4G0u)T75 z^Sz&6-~HwGJF7cK-u-g(p~BXQ_t!D>@Zil$&vSQofd0mFlkU;UwLABHzP5fnn>%Zt tb{;u&;5+H>Z*Sf`_QS((oZWj&S??d`&_9nBw)OVGec{w?^1-(^{sp;2JX8Px diff --git a/secrets/uni-vpn.age b/secrets/uni-vpn.age index 2c7daaa..d17cedf 100644 --- a/secrets/uni-vpn.age +++ b/secrets/uni-vpn.age @@ -1,16 +1,19 @@ age-encryption.org/v1 --> ssh-ed25519 CjuqfA wsRuh5f7FBwEuH60mY/n5B2rfMXmN9loDRI5sgLAmQY -QRNPLd433Ax/F/NMCGdUUl1dXKvpaqErPYlDRPASkLA --> ssh-ed25519 QRYDmg 1TN+ZhZMn3a5Ny/rrWZedHIwf69NCNj82RGfDt4VI1s -I+VsfBTJZ7gIIGROjU5hkvRZ/+OkxxPda9qYn28O5dg --> ssh-ed25519 wG6LYg WhRpXAXmZPYLSmNcqvuLQIkwbOnyP/Fqmt5ZhvNqQx8 -lKyFPSmEgY/BuLKxTOQMrOVf7ScL50WwvghgDQT6gsY --> ssh-ed25519 ZYd7Zg E4VAC6uIuBdXZ0jciRW/835qIaDWixDig6oGi8KqFlw -15J0vEUwCFiViXP7UlKmAmKfm+d6UgjcA3gHvDzSQwg --> ssh-ed25519 as9VYQ +sGqCqiBOgMcF90Rt6xKRHm0fqZMXflg6OBRwAhVU2k -rgzztigEJ1WCdI9AuXcjP2VZrPQxiecYRPfg4RdOyFM --> xA'C-grease s-9 ?tXT 38r l[ -lAYTp6Ot ---- RvWgnW1+4pux4UMOamln/5/xVLsyIgxAZwYOYZJGQo4 -H -I!4HQ uR7~Չ!3\B6 yGN7|v>n+2z'>D \ No newline at end of file +-> ssh-ed25519 CjuqfA G9o6Fr/QDmLnyWzDJ6H7hDbHOiDB+O+YktAPdvU7W3w +lJyk/YTCa5ZjO8dAlkkdhKTHZMSigRbjbKJfqw/fUEE +-> ssh-ed25519 QRYDmg EhRXKZpW6YrK5gnmjknsLw0n/p/6wpKYaxWl8okQmTk +CfhAxfuAslOeBUJ2KwPkOh3Z0iNzpLzWS6RDXf2FoeU +-> ssh-ed25519 wG6LYg QYrpUmxiXhq1j6J8Z2LitWd1B2HLcKN5+AoeKKxq0A8 +cqvR67PV3wfNa9fmJb/WBXfC7A0sdmVaM/rsnVMtbIY +-> ssh-ed25519 ZYd7Zg vL7E7XfhSbk+tMTrtesX6CmzvGWkticcPX/sciDH0ls +i/vSM2S32FE9ehBTNZMMgA44JF35VrsDc4Zj/0XawV8 +-> ssh-ed25519 as9VYQ ySyFU1aWka32ZrVR9psB7STvoBTszdCnL2J1Cp1CBnk +fmKHzYW7fvUnhfUUtK5agqcjK959GiV0RVCMOSx1BaE +-> ssh-ed25519 dWIbQQ 2L8XRok6Pn2pWjEiONRA5AJbRj7JKJY+nmvMaqD9zFA +t96XWaBuCxX/yawMq1DTK96B9rj8MnHL8JDf077lpvU +-> FS#1-grease p/ s |i4Z RP +945g87K4K3dU72Jn79DaImolDd5q+oVX5z4sKiqi2rZe2HbUgoNHlhRF8yyDIQpH +t2tFBx4OJN8NqVXkKw5NXTdmqKVIzCg +--- 9px5+jkQswAox2FjRnHynMCI0o0pnUqdmEcmGqdbqaE +ќK6F +@*֙?j~ !ϺՓxB>+bfmQ{ZiNm$fLJfh?z9{i^r(^kx z=7Dw)jD&K=cU8I15aqH=2{7S|Fqe&}rbEhpY7Q-uFV?FmUQ!(`)xXtRnnAQ|fJyx6 zNXX`)7Vk(V<$7u(S(FBa>O!|*&MjD3QB{4eX)B4HsZ&M6<2oH7CIuX?7U1i{otg5MWt#AWkrjexpf+{W^# zp!0~3Q7Ei{my^&Lb18`mazUv$bk)*|l`tZLp;gs!D@Yly()gb?*NZ%h2IP^f@fIj$ zF&G>LuoyMPfW^@Y)DwBKM%su~<*0rq8an+9i{|03hGQO74WgKfLQIbhuxWD0kVK2) zbdGY_?m*5G1Ny%kpR;|l9hktu`n>wH2;|lI=E4XV%yxFql(HF=0XY|x@shKM2L33m z$rjXNn;uv!>U;p%VXF+$VmB03&FiBLUnX#y?t$T)=1Gj5$>nlD758JhJdO8MgD&cZ ztvfW)Qmne1wmC(BF_k2Zm`lr82xWS|+}_e!_ua?RqkU(c_iIna+~y~x%`0z`F`BO6 z7q)DBxwQOYqJ9Ej&t5;YWAcDGb@<_D_{*`$#os5-?vABvhxTk-YQ}%uoceq1!ii|= z-y5Av-{1P-pF8ane~B}vI)5tS&Z`^TjoX)wy#4Ln=jX$tJMKK*Rd_eGep!1eG)_;X z%O3UM+`+x8uUp4|Tm`JWdAs}*V!lX`O*4b7defY)m3{O)z*MbtxcyH9jDEMk8KBe=G_$NJeN^Q$$)pFf}(%SafMc zZa7a^S$J_aNOx>BM|3b%Lqu;_XfQc>dN2wtEiE8uSW7W5P&sdIPfSfPN>5WaZ%08w zc`x?zH%TJY3u(rzNjtk08*9H;SZA57+oeTAnt;p(wZoIJUjC#rDUwjQS$fROykpO9j~k63Kny zb_CtIVLe)%2rm&STMY+w_S&uvGFztAs~-(A7+bSZ{|-Yaa{v(PuBoq>VwnmDXgRH` EW>|6LMgRZ+ diff --git a/secrets/webis.age b/secrets/webis.age index c7e921afba7309debff07c1c4a4e443c3f5c9e7b..f7b562d6299af70994c521f3b39ecb5429c317cc 100644 GIT binary patch literal 8345 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 literal 8187 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 hX4!8@;l1@qaEQN$t@4N@cAi*9uq6@&2yW_@)-5 zR$^gbWT0b@gm?m^^8$#0fsNq+3u0*}q>2F@0c)P%`#>0ALF(o8Zok^5r`tSi7X*Uc zK_QH=z$Y1oV9|bj$d(*RnWpMlhBstNgOzn^66F@_~TuMq- zcwN2Cx*VJjTwyum@npSB8jhlLgym|WRsB6Yh*iq_^N1R3>UF7tL*L`@MM?R7AmWBA z8{x55N}Z7tq6Z<;GMQ>vS6mrXoP=XSfR<}BKv!XU7`O69-Wq^iR~`c7TqU_cs)CU? z9;=m>cZK1)n3}k4jf=B=R8^w3kk_-uJJwvs@46w%7XFzPP?Wv*mx=4iK4-5sO0?Jb zXcmj2G9>hs7}*j>^pM3u)d)HR`M%bdk}Fplp-sz4=2Q+};m!=C?UvkuPJgN#YXGvA zqoao%3CGS*Rfk2hvzjGCLWj-`#fs-_pf&A|G#pgZc3P}LgzawTbQ%pefisK~qew*{ z&6vru%_e&#Hp{wIEn*Ou^?*Ls{JFBwbu?2-m0}7dNlY%pTO>?<#z@kcRCIfsDNG5d z0yvtoiy9)C+u0C_F>M)2MN4P=w~872^;$@BSnQ^CKog7Y4!7z^_^#b;s^5Ob!aM*l zKoAVWP_uT*$w1jRTQzgplI(fC!l!6SP*hwXH?hU=q5v{6XL01@OYiaLH^x67KXw25 zgSme7_rr_V*b@q~dk&smMQ8mG zM+6ad6nULIgY&z%27qLD>v-571+Zr6}D_JvUJZ=&)E&a%bUH znj;(U>PTC@oej&I0)=|L(xbX@noE|cA&w>IHUn7Yk?YEQss+v5^-T0qaj@2+3=6C7T|QE`^liU%cV zd~nF^|KEmTN={%M2ThF1z$;My@)7#h6cNw8b=yZL^T;VTTd}!_D%wGklB3}^-Fhyu zbGH-p+uqHOxD{MQgSaJ&HMKo2i&{@MNWeP4*84<`sK>xGr@Kp_6K>70L9}I*WJ*wN zVE5hJP>T5Rd@?~Vf*Q8CWVH^RyAvr*EHNptZ}yGKkb_Ijw#kT-t)?*4;c z?iQ;bo`3cu`px_It1t9Vzkc=8@!#qFi&xK{1=)bT{`Y%t|9SuU@7?s1=iQeN;)m8B cFTeW!;l;PwUvGk+AAWmH{MdeZm%sDRe{dfd8vp ssh-ed25519 CjuqfA EQLHOBOVfp+j3x+coXt1isDkG+LvsSYkU8PT1cg97FQ -NJWJKvmN4hUHsC34n1ap4HlipC0rGWlqrbgR4vm91YY --> ssh-ed25519 QRYDmg LOvHPzC4zfX2rlQBxYwHoHhjftCyWnBRLXZ/aB1ekQM -lVtsflczWZwhBx4FZeJK6jtcUCvwQKIA5Gmbth2to9U --> ssh-ed25519 wG6LYg nqcLDqaVL7D0seK7kW52vmG/lm0Nd28lBroYrRMVynI -oYA8E4DDR26gpRCdJMWtzoGvUTErI6GMSdF99kTNKtc --> ssh-ed25519 ZYd7Zg vz3LZxq0+KTx6E4J0X6duivLP0TFtA8WaOQaiSmMcF4 -5g+3H/6J9FjsWifcfmEq8dz0hk4mpZhhJaEndPE3Mpw --> ssh-ed25519 as9VYQ VIQ18yC/qEiP66hfCwWAbAbNCBypB47gbWkFg/TJmWE -MXK5RnuwAlKt676CPO0N/3BeM9gsgMPZNEG1DXq8uXA --> 8kx-grease s%obC ~GOw1 C - ---- V8z981BPe2yVOaMCj2np9Vvvy/6zP8xHCFKRFwsceXs -+Xob_) ssh-ed25519 CjuqfA OoHLAZHlhjUykTdrTL3vR4xOR+M9xUz6PRr8sxM/ikc +MA0ZOeqZoraMOKFLs9XnEzLNGpAt3jJWytC5MXDO0qM +-> ssh-ed25519 QRYDmg uciExW93VcA/9Y1pchLXoWwDr3R47VbMvvxQUmeonxM +lckRRFSnA/MGRYaoBe3PTTTk1O+ZhfBrjhppvU16j5A +-> ssh-ed25519 wG6LYg 8J8epMCx+l9M6KBtVfjgD5+jdCC8//CtBnk1t64+5EM +lLhpx7tk43/gOQTg4L9XRg+EDmupK0bW3hS1PclpZjY +-> ssh-ed25519 ZYd7Zg wTghQ4lU1zbttB1pzWQJZVZAEmWvbZzJ1dh5vOqq90g +AwtibVxQP2AOkq6O0AW8M4BxCXE6DkDkdatoYr8E8rg +-> ssh-ed25519 as9VYQ E4qn+C3VtEKcnOfh2/VTuzQtyR1y3vjyTlEbVQbj604 +vtFR+dBGPXbvfK2HT5J2Tfn++yUUAs5oIOKEoRqITxk +-> ssh-ed25519 dWIbQQ O0PMTuY3HGpLFOiE5QzsX4TkQv6DReuHipvFBxdE2xM +SsJrr8NB3d+ohcftj5CkmtK6GZvoVt8GQeav6le/uwY +-> kkxK-grease Y+ 1G ^ ++17Pd0/0prkcbg/vxL8ews/NtQJrYEXafnHXU7L5NxqtYiokkh9d +--- HerEQyxchdLe0MJl/ZwU/NLtCNewjaNFqNA+KjvDtYg +9jv^7X#BAUC2wDg^Úf^R(2M)I[ |8лFNbBnMcZDr \ No newline at end of file From b05e8192ab77d941c841fc2e0a2db6f28fa2a93f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Fri, 21 Jul 2023 13:12:44 +0200 Subject: [PATCH 11/64] feat(scadspc): enable bluetooth --- hosts/scadspc25/default.nix | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/hosts/scadspc25/default.nix b/hosts/scadspc25/default.nix index d4ba0d4..8ea2da9 100644 --- a/hosts/scadspc25/default.nix +++ b/hosts/scadspc25/default.nix @@ -2,7 +2,7 @@ # your system. Help is available in the configuration.nix(5) man page # and in the NixOS manual (accessible by running `nixos-help`). -{ config, pkgs, ... }: +{ pkgs, ... }: { imports = @@ -41,23 +41,7 @@ wget ]; - # Some programs need SUID wrappers, can be configured further or are - # started in user sessions. - # programs.mtr.enable = true; - # programs.gnupg.agent = { - # enable = true; - # enableSSHSupport = true; - # }; - - # List services that you want to enable: - - # Enable the OpenSSH daemon. - # services.openssh.enable = true; - - # Copy the NixOS configuration file and link it from the resulting system - # (/run/current-system/configuration.nix). This is useful in case you - # accidentally delete configuration.nix. - # system.copySystemConfiguration = true; + hardware.bluetooth.enable = true; # This value determines the NixOS release from which the default # settings for stateful data, like file locations and database versions From e47078d7d70f90349f81b260172fb7cb4ca54229 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Fri, 21 Jul 2023 13:13:08 +0200 Subject: [PATCH 12/64] feat(scadspc): enable synology drive --- hosts/scadspc25/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/hosts/scadspc25/default.nix b/hosts/scadspc25/default.nix index 8ea2da9..6e1633d 100644 --- a/hosts/scadspc25/default.nix +++ b/hosts/scadspc25/default.nix @@ -18,6 +18,7 @@ desktop.enable = true; webis.enable = true; }; + services.synology-drive.enable = true; programs.hyprland.keyboardLayouts = [ "us" "de" ]; }; From b6b76a0e7d8285ffd6c2d6268142f9af87ee9080 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sat, 22 Jul 2023 11:18:58 +0200 Subject: [PATCH 13/64] feat(spotify_player): add service/program module --- modules/profiles/desktop.nix | 33 +++++++++++++++- modules/programs/spotify_player.nix | 33 ++++++++++++++++ modules/services/spotify_player.nix | 58 +++++++++++++++++++++++++++++ 3 files changed, 123 insertions(+), 1 deletion(-) create mode 100644 modules/programs/spotify_player.nix create mode 100644 modules/services/spotify_player.nix diff --git a/modules/profiles/desktop.nix b/modules/profiles/desktop.nix index bae0d2f..4af668d 100644 --- a/modules/profiles/desktop.nix +++ b/modules/profiles/desktop.nix @@ -36,7 +36,25 @@ in nix-edit.enable = mkDefault true; nvim.enable = mkDefault true; python.versions."311".enable = mkDefault true; - spotify.enable = mkDefault true; + spotify-player = { + enable = mkDefault true; + package = pkgs.spotify-player.overrideAttrs (old: { + buildFeatures = lib.lists.remove "notify" (old.buildFeatures or [ ]); + }); + config = { + client_id = "3172dbeaf64949728920c58b823bc24b"; + copy_command = { + command = "wl-copy"; + args = [ ]; + }; + enable_cover_image_cache = true; + default_device = "spotify-player-daemon"; + enable_streaming = false; + playback_window_position = "Bottom"; + cover_img_length = 20; + cover_img_width = 10; + }; + }; ssh.enable = mkDefault true; thunar.enable = mkDefault true; wallpaper.enable = mkDefault true; @@ -47,6 +65,19 @@ in gammastep.enable = true; kdeconnect.enable = mkDefault true; printing.enable = true; + spotify-player = { + enable = mkDefault true; + config = { + client_id = "3172dbeaf64949728920c58b823bc24b"; + device = { + name = "spotify-player-daemon"; + device_type = "computer"; + volume = 70; + bitrate = 320; + audio_cache = true; + }; + }; + }; wireguard.enable = true; }; }; diff --git a/modules/programs/spotify_player.nix b/modules/programs/spotify_player.nix new file mode 100644 index 0000000..435b9c8 --- /dev/null +++ b/modules/programs/spotify_player.nix @@ -0,0 +1,33 @@ +{ config +, lib +, pkgs +, ... +}: + +with lib; +let + cfg = config.my.programs.spotify-player; + toml = pkgs.formats.toml { }; +in +{ + options.my.programs.spotify-player = { + enable = mkEnableOption "spotify-player"; + package = mkOption { + type = types.package; + default = pkgs.spotify-player; + }; + config = mkOption { + inherit (toml) type; + default = { }; + }; + }; + + config = mkIf cfg.enable { + home-manager.users.moritz = { + xdg.configFile."spotify-player/app.toml" = { + source = toml.generate "app.toml" cfg.config; + }; + home.packages = [ cfg.package ]; + }; + }; +} diff --git a/modules/services/spotify_player.nix b/modules/services/spotify_player.nix new file mode 100644 index 0000000..b494c3a --- /dev/null +++ b/modules/services/spotify_player.nix @@ -0,0 +1,58 @@ +{ lib, config, pkgs, ... }: + +with lib; +let + toml = pkgs.formats.toml { }; + cfg = config.my.services.spotify-player; + + tomlConfig = + if cfg.configFile != null + then cfg.configFile + else toml.generate "app.toml" cfg.config; + + configFolder = pkgs.runCommand "spotify-player-config" { } '' + mkdir $out + ln -s "${tomlConfig}" $out/app.toml + ''; +in +{ + options.my.services.spotify-player = { + enable = mkEnableOption "spotify_player"; + config = mkOption { + inherit (toml) type; + default = { }; + }; + configFile = mkOption { + type = with types; nullOr path; + default = null; + }; + package = mkOption { + type = types.package; + default = pkgs.spotify-player; + }; + }; + + config = mkIf cfg.enable { + assertions = [ + { + assertion = cfg.config == { } || cfg.configFile == null; + message = "At least one of the options 'config' or 'configFile' must be set."; + } + { + assertion = cfg.config != { } || cfg.configFile != null; + message = "Only one of the options 'config' or 'configFile' may be set."; + } + ]; + systemd.user.services.spotify-player = { + after = [ "graphical-session.target" "network.target" ]; + partOf = [ "graphical-session.target" ]; + wantedBy = [ "graphical-session.target" ]; + serviceConfig = { + Type = "forking"; + Restart = "always"; + RestartSec = "1s"; + ExecStart = "${getExe cfg.package} --daemon --config-folder ${configFolder}"; + }; + }; + }; +} From 70a8d999bd58487cc79228faedd3ec82f847334b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sun, 23 Jul 2023 12:27:18 +0200 Subject: [PATCH 14/64] refactor(telekasten): use better keybindings --- modules/programs/nvim/plugins/default.nix | 24 ++--------------- .../nvim/plugins/zettelkasten-nvim.lua | 27 +++++++++++++++++++ 2 files changed, 29 insertions(+), 22 deletions(-) create mode 100644 modules/programs/nvim/plugins/zettelkasten-nvim.lua diff --git a/modules/programs/nvim/plugins/default.nix b/modules/programs/nvim/plugins/default.nix index 74bde38..d1ea630 100644 --- a/modules/programs/nvim/plugins/default.nix +++ b/modules/programs/nvim/plugins/default.nix @@ -269,33 +269,13 @@ with builtins; plugin = telekasten-nvim; dependencies = [ { plugin = telescope-nvim; } + { plugin = which-key-nvim; } ]; cmd = [ "Telekasten" ]; keys = [ { key = "z"; cmd = "Telekasten"; desc = "zettelkasten"; } ]; - conf = '' - require("telekasten").setup({ - home = vim.fn.expand("~/Nextcloud/Notes/zettelkasten"), - auto_set_filetype = false, - image_subdir = "assets", - }) - vim.api.nvim_create_autocmd({ "BufReadPost", "BufNewFile" }, { - pattern = "*/zettelkasten/*", - callback = function(event) - vim.api.nvim_buf_set_keymap(0, "n", "", "", { - callback = function() - local current_word = vim.fn.expand("") - if vim.fn.match(current_word, "[[") == 0 then - require("telekasten").follow_link() - else - require("telekasten").toggle_todo() - end - end, - }) - end, - }) - ''; + conf = builtins.readFile ./zettelkasten-nvim.lua; } { plugin = markdown-preview-nvim; diff --git a/modules/programs/nvim/plugins/zettelkasten-nvim.lua b/modules/programs/nvim/plugins/zettelkasten-nvim.lua new file mode 100644 index 0000000..6a35570 --- /dev/null +++ b/modules/programs/nvim/plugins/zettelkasten-nvim.lua @@ -0,0 +1,27 @@ +local telekasten = require("telekasten") +telekasten.setup({ + home = vim.fn.expand("~/Nextcloud/Notes/zettelkasten"), + auto_set_filetype = false, + image_subdir = "assets", +}) + +vim.api.nvim_create_autocmd({ "BufReadPost", "BufNewFile" }, { + pattern = "*/zettelkasten/*", + callback = function(_) + require("which-key").register({ + g = { + f = { telekasten.follow_link, "Follow link" }, + r = { telekasten.show_backlinks, "Show backlinks" }, + }, + [""] = { + f = { + f = { telekasten.find_notes, "Find note" }, + n = { telekasten.new_note, "New note" }, + }, + s = { + g = { telekasten.search_note, "Grep notes" }, + }, + }, + }, { buffer = vim.fn.bufnr("%") }) + end, +}) From e2aff57d7236018257bc0a5ee6c14c2dfe9b3a04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Mon, 24 Jul 2023 18:44:03 +0200 Subject: [PATCH 15/64] feat(nvim): add coq-nvim --- modules/programs/nvim/default.nix | 49 +++++++++------ modules/programs/nvim/plugins/codeium-vim.lua | 2 + modules/programs/nvim/plugins/coq-nvim.lua | 3 + .../programs/nvim/plugins/coq-thirdparty.lua | 4 ++ modules/programs/nvim/plugins/default.nix | 42 ++++++------- modules/programs/nvim/plugins/nvim-cmp.lua | 63 ------------------- .../programs/nvim/plugins/nvim-lspconfig.lua | 12 ++-- 7 files changed, 62 insertions(+), 113 deletions(-) create mode 100644 modules/programs/nvim/plugins/codeium-vim.lua create mode 100644 modules/programs/nvim/plugins/coq-nvim.lua create mode 100644 modules/programs/nvim/plugins/coq-thirdparty.lua delete mode 100644 modules/programs/nvim/plugins/nvim-cmp.lua diff --git a/modules/programs/nvim/default.nix b/modules/programs/nvim/default.nix index 8b61c38..702542e 100644 --- a/modules/programs/nvim/default.nix +++ b/modules/programs/nvim/default.nix @@ -222,26 +222,35 @@ in withNodeJs = true; withPython3 = true; extraLuaConfig = lib.concatLines [ (builtins.readFile ./options.lua) lazy ]; - extraPackages = with pkgs; [ - alejandra - black - deadnix - isort - jq - nil - nixpkgs-fmt - nodePackages.bash-language-server - rustfmt - shellcheck - shfmt - statix - stylua - sumneko-lua-language-server - taplo - typst - typst-lsp - yamlfmt - ]; + extraPython3Packages = ps: + let + plugins = map (getAttr "plugin") cfg.plugins; + depAttrName = "python3Dependencies"; + filtered = filter (hasAttr depAttrName) plugins; + funcs = map (getAttr depAttrName) filtered; + in + foldl (list: f: list ++ (f ps)) [ ] funcs; + extraPackages = with pkgs; + [ + alejandra + black + deadnix + isort + jq + nil + nixpkgs-fmt + nodePackages.bash-language-server + rustfmt + shellcheck + shfmt + statix + stylua + sumneko-lua-language-server + taplo + typst + typst-lsp + yamlfmt + ]; plugins = [ pkgs.vimPlugins.lazy-nvim ]; diff --git a/modules/programs/nvim/plugins/codeium-vim.lua b/modules/programs/nvim/plugins/codeium-vim.lua new file mode 100644 index 0000000..72cd968 --- /dev/null +++ b/modules/programs/nvim/plugins/codeium-vim.lua @@ -0,0 +1,2 @@ +-- dont show ghost text +vim.g.codeium_render = false diff --git a/modules/programs/nvim/plugins/coq-nvim.lua b/modules/programs/nvim/plugins/coq-nvim.lua new file mode 100644 index 0000000..9946c3b --- /dev/null +++ b/modules/programs/nvim/plugins/coq-nvim.lua @@ -0,0 +1,3 @@ +vim.g.coq_settings = { + auto_start = "shut-up", +} diff --git a/modules/programs/nvim/plugins/coq-thirdparty.lua b/modules/programs/nvim/plugins/coq-thirdparty.lua new file mode 100644 index 0000000..ec1e05c --- /dev/null +++ b/modules/programs/nvim/plugins/coq-thirdparty.lua @@ -0,0 +1,4 @@ +require("coq_3p")({ + { src = "orgmode", short_name = "ORG" }, + { src = "codeium", short_name = "COD" }, +}) diff --git a/modules/programs/nvim/plugins/default.nix b/modules/programs/nvim/plugins/default.nix index d1ea630..fe324b7 100644 --- a/modules/programs/nvim/plugins/default.nix +++ b/modules/programs/nvim/plugins/default.nix @@ -82,28 +82,6 @@ with builtins; { plugin = nvim-web-devicons; } ]; } - { - plugin = nvim-cmp; - conf = readFile ./nvim-cmp.lua; - event = [ "InsertEnter" ]; - dependencies = [ - { plugin = cmp-async-path; } - { plugin = cmp-nvim-lsp; } - { plugin = cmp_luasnip; } - { - plugin = copilot-cmp; - dependencies = [ - { - plugin = copilot-lua; - conf = readFile ./copilot-lua.lua; - dependencies = [{ plugin = which-key-nvim; }]; - } - ]; - } - { plugin = friendly-snippets; } - { plugin = luasnip; } - ]; - } { plugin = todo-comments-nvim; event = [ "BufReadPost" "BufNewFile" ]; @@ -281,5 +259,25 @@ with builtins; plugin = markdown-preview-nvim; lazy = false; } + { + plugin = coq_nvim; + lazy = false; + init = builtins.readFile ./coq-nvim.lua; + dependencies = [ + { + plugin = coq-thirdparty; + conf = builtins.readFile ./coq-thirdparty.lua; + dependencies = [ + { + plugin = codeium-vim; + init = builtins.readFile ./codeium-vim.lua; + } + ]; + } + { + plugin = coq-artifacts; + } + ]; + } ]; } diff --git a/modules/programs/nvim/plugins/nvim-cmp.lua b/modules/programs/nvim/plugins/nvim-cmp.lua deleted file mode 100644 index 0533cb7..0000000 --- a/modules/programs/nvim/plugins/nvim-cmp.lua +++ /dev/null @@ -1,63 +0,0 @@ -local cmp = require("cmp") -local luasnip = require("luasnip") -require("luasnip.loaders.from_vscode").lazy_load() -require("copilot_cmp").setup() - -local default_sources = { - { name = "async_path", priority = 1 }, - { name = "copilot", priority = 2 }, - { name = "luasnip", priority = 2 }, - { name = "nvim_lsp", priority = 3 }, -} - -cmp.setup({ - formatting = { - format = require("lspkind").cmp_format({ - mode = "symbol", -- show only symbol annotations - maxwidth = 50, -- prevent the popup from showing more than provided characters - ellipsis_char = "...", -- when popup menu exceed maxwidth, the truncated part would show ellipsis_char instead - symbol_map = { - Copilot = "", - }, - }), - }, - snippet = { - -- REQUIRED - you must specify a snippet engine - expand = function(args) - require("luasnip").lsp_expand(args.body) - end, - }, - mapping = cmp.mapping.preset.insert({ - [""] = cmp.mapping.scroll_docs(-4), - [""] = cmp.mapping.scroll_docs(4), - [""] = cmp.mapping.complete(), - [""] = cmp.mapping.abort(), - [""] = cmp.mapping.confirm({ select = true }), - [""] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_next_item() - elseif luasnip.expand_or_jumpable() then - luasnip.expand_or_jump() - else - fallback() - end - end, { "i", "s" }), - [""] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_prev_item() - elseif luasnip.jumpable(-1) then - luasnip.jump(-1) - else - fallback() - end - end, { "i", "s" }), - }), - sources = default_sources, -}) - -cmp.setup.filetype("org", { - sources = vim.tbl_deep_extend("force", default_sources, { - { name = "buffer", priority = 1 }, - { name = "orgmode", priority = 3 }, - }), -}) diff --git a/modules/programs/nvim/plugins/nvim-lspconfig.lua b/modules/programs/nvim/plugins/nvim-lspconfig.lua index d844ca5..c5f8222 100644 --- a/modules/programs/nvim/plugins/nvim-lspconfig.lua +++ b/modules/programs/nvim/plugins/nvim-lspconfig.lua @@ -5,9 +5,6 @@ vim.diagnostic.config({ virtual_text = false, }) --- The nvim-cmp almost supports LSP's capabilities so You should advertise it to LSP servers.. -local capabilities = require("cmp_nvim_lsp").default_capabilities() - vim.o.foldcolumn = "1" -- '0' is not bad vim.o.foldlevel = 99 -- Using ufo provider need a large value, feel free to decrease the value vim.o.foldlevelstart = 99 @@ -47,6 +44,7 @@ require("which-key").register({ M = { require("ufo").closeAllFolds, "Close all folds" }, }, }) +local capabilities = vim.lsp.protocol.make_client_capabilities() -- Tell the server the capability of foldingRange, -- Neovim hasn't added foldingRange to default capabilities, users must add it manually capabilities.textDocument.foldingRange = { @@ -107,9 +105,6 @@ end local lspconfig_default_options = { on_attach = on_attach_def, capabilities = capabilities, - flags = { - debounce_text_changes = 100, - }, } ---function to add default options to lspconfig @@ -117,8 +112,9 @@ local lspconfig_default_options = { ---@param options table ---@return nil local function lspconfig_setup(lsp, options) - local final_options = vim.tbl_deep_extend("force", lspconfig_default_options, options) - lspconfig[lsp].setup(final_options) + local coq_options = require("coq").lsp_ensure_capabilities({}) + local merged_options = vim.tbl_deep_extend("force", coq_options, lspconfig_default_options, options) + lspconfig[lsp].setup(merged_options) end local servers = { From f38c4d065ae7fe67072cdd3cd4ebcedc13d078e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Mon, 24 Jul 2023 18:46:35 +0200 Subject: [PATCH 16/64] feat(desktop): add qmk --- hosts/nixos-desktop/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hosts/nixos-desktop/default.nix b/hosts/nixos-desktop/default.nix index 43f39fa..d5dc5f7 100644 --- a/hosts/nixos-desktop/default.nix +++ b/hosts/nixos-desktop/default.nix @@ -27,6 +27,8 @@ jetbrains.idea-community ]; + hardware.keyboard.qmk.enable = true; + # KERNEL boot.kernelPackages = pkgs.linuxPackages_latest; From 3ec0b502071ea124f5f01d7e4a827bf293794fcd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Mon, 24 Jul 2023 18:54:47 +0200 Subject: [PATCH 17/64] fix(synology-drive): always restart --- modules/services/synology-drive.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/services/synology-drive.nix b/modules/services/synology-drive.nix index 9ff8384..63776d1 100644 --- a/modules/services/synology-drive.nix +++ b/modules/services/synology-drive.nix @@ -21,7 +21,7 @@ in wantedBy = [ "graphical-session.target" ]; serviceConfig = { ExitType = "cgroup"; - Restart = "on-failure"; + Restart = "always"; RestartSec = "1s"; ExecStartPre = "${pkgs.coreutils}/bin/rm -rf %h/.SynologyDrive/SynologyDrive.app %h/.SynologyDrive/cloud-connect.pid"; ExecStart = "${cfg.package}/bin/synology-drive"; From 4fdafeebd4e4ee101397b571fca9c267e2b571d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Mon, 24 Jul 2023 18:55:11 +0200 Subject: [PATCH 18/64] fix(nvim): smartcolumn-nvim syntax --- modules/programs/nvim/plugins/smartcolumn-nvim.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/programs/nvim/plugins/smartcolumn-nvim.lua b/modules/programs/nvim/plugins/smartcolumn-nvim.lua index 1858689..c095401 100644 --- a/modules/programs/nvim/plugins/smartcolumn-nvim.lua +++ b/modules/programs/nvim/plugins/smartcolumn-nvim.lua @@ -1,4 +1,4 @@ require("smartcolumn").setup({ - colorcolumn = 120, + colorcolumn = "120", disabled_filetypes = { "help", "text", "markdown", "dashboard" }, }) From b2262310025026bc05481cac679ab8f7f7422f1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Mon, 24 Jul 2023 18:56:51 +0200 Subject: [PATCH 19/64] build: update inputs --- flake.lock | 392 +++++++++++++++++++++-------------------------------- 1 file changed, 153 insertions(+), 239 deletions(-) diff --git a/flake.lock b/flake.lock index 9897dc5..14e7bc4 100644 --- a/flake.lock +++ b/flake.lock @@ -9,11 +9,11 @@ ] }, "locked": { - "lastModified": 1684153753, - "narHash": "sha256-PVbWt3qrjYAK+T5KplFcO+h7aZWfEj1UtyoKlvcDxh0=", + "lastModified": 1689334118, + "narHash": "sha256-djk5AZv1yU84xlKFaVHqFWvH73U7kIRstXwUAnDJPsk=", "owner": "ryantm", "repo": "agenix", - "rev": "db5637d10f797bb251b94ef9040b237f4702cde3", + "rev": "0d8c5325fc81daf00532e3e26c6752f7bcde1143", "type": "github" }, "original": { @@ -25,11 +25,11 @@ "arkenfox-userjs": { "flake": false, "locked": { - "lastModified": 1683284168, - "narHash": "sha256-EWa9vkzprNuBFV+HpO6yBrClVtMTI5QmChErISW/SZY=", + "lastModified": 1689799111, + "narHash": "sha256-JGucBOBTSYBapMrI7GCMAqTFaT1O7Kqw0S3uBtFawIo=", "owner": "arkenfox", "repo": "user.js", - "rev": "04e6e77439bfa6e3f6b7b9c5e0afac7f74f0586a", + "rev": "6151d664acced94364e7e3a075e6ac3ca555ef48", "type": "github" }, "original": { @@ -74,11 +74,11 @@ "copilot-lua": { "flake": false, "locked": { - "lastModified": 1685261869, - "narHash": "sha256-jBTS8MeN7Ydf0ZY7JWbrxaGo/GeDoEClfULiJVfN8Wo=", + "lastModified": 1688190439, + "narHash": "sha256-lD9FdbKKZ6d/BjIfqp0Ust2hqSYNLpCFWxuaKUO9qLs=", "owner": "zbirenbaum", "repo": "copilot.lua", - "rev": "77e3a4907928f0813024e573b882dc879dfc0c6b", + "rev": "e48bd7020a98be217d85c006a298656294fd6210", "type": "github" }, "original": { @@ -157,22 +157,6 @@ "type": "github" } }, - "flake-compat_4": { - "flake": false, - "locked": { - "lastModified": 1673956053, - "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, "flake-parts": { "inputs": { "nixpkgs-lib": [ @@ -181,11 +165,11 @@ ] }, "locked": { - "lastModified": 1685662779, - "narHash": "sha256-cKDDciXGpMEjP1n6HlzKinN0H+oLmNpgeCTzYnsA2po=", + "lastModified": 1688466019, + "narHash": "sha256-VeM2akYrBYMsb4W/MmBo1zmaMfgbL4cH3Pu8PGyIwJ0=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "71fb97f0d875fd4de4994dfb849f2c75e17eb6c3", + "rev": "8e8d955c22df93dbe24f19ea04f47a74adbdc5ec", "type": "github" }, "original": { @@ -199,11 +183,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1685546676, - "narHash": "sha256-XDbjJyAg6odX5Vj0Q22iI/gQuFvEkv9kamsSbQ+npaI=", + "lastModified": 1688466019, + "narHash": "sha256-VeM2akYrBYMsb4W/MmBo1zmaMfgbL4cH3Pu8PGyIwJ0=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "6ef2707776c6379bc727faf3f83c0dd60b06e0c6", + "rev": "8e8d955c22df93dbe24f19ea04f47a74adbdc5ec", "type": "github" }, "original": { @@ -221,11 +205,11 @@ ] }, "locked": { - "lastModified": 1680392223, - "narHash": "sha256-n3g7QFr85lDODKt250rkZj2IFS3i4/8HBU2yKHO3tqw=", + "lastModified": 1688466019, + "narHash": "sha256-VeM2akYrBYMsb4W/MmBo1zmaMfgbL4cH3Pu8PGyIwJ0=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "dcc36e45d054d7bb554c9cdab69093debd91a0b5", + "rev": "8e8d955c22df93dbe24f19ea04f47a74adbdc5ec", "type": "github" }, "original": { @@ -238,6 +222,24 @@ "inputs": { "systems": "systems" }, + "locked": { + "lastModified": 1689068808, + "narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { + "inputs": { + "systems": "systems_2" + }, "locked": { "lastModified": 1685518550, "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=", @@ -252,43 +254,16 @@ "type": "github" } }, - "flake-utils_2": { - "locked": { - "lastModified": 1667395993, - "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, "flake-utils_3": { - "locked": { - "lastModified": 1667395993, - "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", - "type": "github" + "inputs": { + "systems": "systems_3" }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_4": { "locked": { - "lastModified": 1667395993, - "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "lastModified": 1685518550, + "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=", "owner": "numtide", "repo": "flake-utils", - "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef", "type": "github" }, "original": { @@ -298,30 +273,6 @@ } }, "gitignore": { - "inputs": { - "nixpkgs": [ - "neovim-nightly-overlay", - "hercules-ci-effects", - "hercules-ci-agent", - "pre-commit-hooks-nix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1660459072, - "narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=", - "owner": "hercules-ci", - "repo": "gitignore.nix", - "rev": "a20de23b925fd8264fd7fad6454652e142fd7f73", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "gitignore.nix", - "type": "github" - } - }, - "gitignore_2": { "inputs": { "nixpkgs": [ "pre-commit-hooks", @@ -344,16 +295,16 @@ }, "haskell-flake": { "locked": { - "lastModified": 1678745009, - "narHash": "sha256-ujfwSrkxThmHJozibkCnJmlXLVyxm+Cbo2Q4wXPbCS4=", + "lastModified": 1684780604, + "narHash": "sha256-2uMZsewmRn7rRtAnnQNw1lj0uZBMh4m6Cs/7dV5YF08=", "owner": "srid", "repo": "haskell-flake", - "rev": "26852ade574c712bc3912ad28de52b0c4cf7d4cb", + "rev": "74210fa80a49f1b6f67223debdbf1494596ff9f2", "type": "github" }, "original": { "owner": "srid", - "ref": "0.2.0", + "ref": "0.3.0", "repo": "haskell-flake", "type": "github" } @@ -362,16 +313,14 @@ "inputs": { "flake-parts": "flake-parts_3", "haskell-flake": "haskell-flake", - "nix-darwin": "nix-darwin", - "nixpkgs": "nixpkgs_4", - "pre-commit-hooks-nix": "pre-commit-hooks-nix" + "nixpkgs": "nixpkgs_4" }, "locked": { - "lastModified": 1681758488, - "narHash": "sha256-RBd/RNq3wL52FvoajMwrnfyZPfq67KMzmp6rtNAx/2o=", + "lastModified": 1688568579, + "narHash": "sha256-ON0M56wtY/TIIGPkXDlJboAmuYwc73Hi8X9iJGtxOhM=", "owner": "hercules-ci", "repo": "hercules-ci-agent", - "rev": "ef296dd6211e2ffeb942f12e6232a2d9abdd488d", + "rev": "367dd8cd649b57009a6502e878005a1e54ad78c5", "type": "github" }, "original": { @@ -389,11 +338,11 @@ ] }, "locked": { - "lastModified": 1685557007, - "narHash": "sha256-0prbgwFJeBuLGJgNdOXCXQ8/oSamzkcNZYHr04ZXI2I=", + "lastModified": 1689397210, + "narHash": "sha256-fVxZnqxMbsDkB4GzGAs/B41K0wt/e+B/fLxmTFF/S20=", "owner": "hercules-ci", "repo": "hercules-ci-effects", - "rev": "6d8e62977dc34fd2c187879856ebb6cf1faabba9", + "rev": "0a63bfa3f00a3775ea3a6722b247880f1ffe91ce", "type": "github" }, "original": { @@ -430,11 +379,11 @@ ] }, "locked": { - "lastModified": 1685721552, - "narHash": "sha256-ifvq/zlO7lck8q+YkC5uom/h8/MVdMcQEldOL3cDQW0=", + "lastModified": 1689875525, + "narHash": "sha256-fgUrFH3bMZ6R7qgBTfuTRGlkZXIkdyjndl6ZbExbjE8=", "owner": "nix-community", "repo": "home-manager", - "rev": "29519461834c08395b35f840811faf8c23e3b61c", + "rev": "1443abd2696ec6bd6fb9701e6c26b277a27b4a3e", "type": "github" }, "original": { @@ -448,11 +397,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1684479483, - "narHash": "sha256-NCkOkgR7PtkAQmYgeYd6vOzkulQjxlf+vWGUmrQu4uw=", + "lastModified": 1688849364, + "narHash": "sha256-gW4x5YiCWFlckFiaLZo+RWJa1IyQ2Cx4jTrJzNy1OzQ=", "owner": "hyprwm", "repo": "contrib", - "rev": "805bedf51a2f75a2279b6fc75b3066ff21f235ee", + "rev": "3126196e7ed609e7c427a39dc126ea067de62a65", "type": "github" }, "original": { @@ -469,11 +418,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1685729674, - "narHash": "sha256-i5+/bAZVmCbeIKmnwyd2DG3mGrP4LOJWbsU7nJ1lzuA=", + "lastModified": 1689879667, + "narHash": "sha256-g6XQ1slkxXw1kddaUKBwvYktIPJczSbZVoe4EzjNjD8=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "871ab24c6e9d2fb6e48cbf990ddddf0c46a950af", + "rev": "f864b15427b363443e767eb5e78f5dc9603c49f3", "type": "github" }, "original": { @@ -508,11 +457,11 @@ "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1685378141, - "narHash": "sha256-/ehJbAtSJS86NlqHVOeR2ViBKlImKH4guFVPacTmCr8=", + "lastModified": 1689547456, + "narHash": "sha256-jZQ377LqcazitvH2fVXKiL8kvmpGT3fuqev+yQqvuRw=", "owner": "hyprwm", "repo": "hyprpaper", - "rev": "cd86c196f3500f20539754d347c8378349ca0974", + "rev": "ac5f7b038d5ac589d32f5ae18f9745bfe5200618", "type": "github" }, "original": { @@ -556,11 +505,11 @@ "lspsaga-nvim": { "flake": false, "locked": { - "lastModified": 1685612219, - "narHash": "sha256-Cr4BAAMX0SEPM51JejjnhOUXigMIGvyzqFYYAZ426bU=", + "lastModified": 1689849495, + "narHash": "sha256-tD3UxJUtYoxUMTFF4gfKChVfI5SxZQ2C12WRF73Ahc4=", "owner": "glepnir", "repo": "lspsaga.nvim", - "rev": "c475ace5b8882631b351ef7c3e8078ca9ebbb751", + "rev": "0c20101ac826961a7052c4ad9d5f7f791b4adab1", "type": "github" }, "original": { @@ -571,11 +520,11 @@ }, "master": { "locked": { - "lastModified": 1685770779, - "narHash": "sha256-cJd4Bf0jUOG/l/k9I83IYsq9jDFPyLAfiIw1cjErcTU=", + "lastModified": 1689880801, + "narHash": "sha256-jWeQSVczGNRNs48DWiAwb6ojKXb+woqoXoVsA1KwdUM=", "owner": "nixos", "repo": "nixpkgs", - "rev": "f04dbdd29e954e51e98d2a0896c13180f5247143", + "rev": "ebaae879a74f772ecc827d264e37960087a4b182", "type": "github" }, "original": { @@ -586,7 +535,7 @@ }, "neovim-flake": { "inputs": { - "flake-utils": "flake-utils_3", + "flake-utils": "flake-utils_2", "nixpkgs": [ "neovim-nightly-overlay", "nixpkgs" @@ -594,11 +543,11 @@ }, "locked": { "dir": "contrib", - "lastModified": 1685727707, - "narHash": "sha256-qxmSnNjRxXuFfPNaDMnTPjn8890CN2EQ1Il8XVJhkKE=", + "lastModified": 1689785735, + "narHash": "sha256-QdjWbe4oNjIazmOrbJ9u5GadaqTV44RiYbiZoLgNKC8=", "owner": "neovim", "repo": "neovim", - "rev": "a8ee4c7a81a8df3fe705e941e7d1c2c9e2f6194e", + "rev": "86ce3878d662c1dbfec61a5ad8e7c16c4283ed5c", "type": "github" }, "original": { @@ -617,11 +566,11 @@ "nixpkgs": "nixpkgs_5" }, "locked": { - "lastModified": 1685750689, - "narHash": "sha256-ylsh7ELjDc4jHCBZgUVTD08aTD31SpXoqXnjlbGdyoQ=", + "lastModified": 1689811489, + "narHash": "sha256-rQ1gnq+ApoowEic21nIYIeQ0Qibb3IEEtwv0LgNIYDc=", "owner": "nix-community", "repo": "neovim-nightly-overlay", - "rev": "b9c2089d1936a81d466de8a2ccb9d75c22b5b7fd", + "rev": "65f2e8da89ba400e7bbad6fe2f51af0ed9f7e968", "type": "github" }, "original": { @@ -641,11 +590,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1685532165, - "narHash": "sha256-xHH9WbE9uya2B+j5w82HzpZVeErBt03/jtmWVRox0EU=", + "lastModified": 1689759503, + "narHash": "sha256-wFrcae6V58hIlDW+7NDoUXzXBmsU7W/k3V1KIePcwRA=", "owner": "oxalica", "repo": "nil", - "rev": "dcd38b96c91a2d07552f824a6480e00dc7b4948a", + "rev": "59bcad0b13b5d77668c0c125fef71d7b41406d7a", "type": "github" }, "original": { @@ -654,32 +603,9 @@ "type": "github" } }, - "nix-darwin": { - "inputs": { - "nixpkgs": [ - "neovim-nightly-overlay", - "hercules-ci-effects", - "hercules-ci-agent", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1680266963, - "narHash": "sha256-IW/lzbUCOcldLHWHjNSg1YoViDnZOmz0ZJL7EH9OkV8=", - "owner": "LnL7", - "repo": "nix-darwin", - "rev": "99d4187d11be86b49baa3a1aec0530004072374f", - "type": "github" - }, - "original": { - "owner": "LnL7", - "repo": "nix-darwin", - "type": "github" - } - }, "nix-super": { "inputs": { - "flake-compat": "flake-compat_3", + "flake-compat": "flake-compat_2", "lowdown-src": "lowdown-src", "nixpkgs": [ "stable" @@ -687,11 +613,11 @@ "nixpkgs-regression": "nixpkgs-regression" }, "locked": { - "lastModified": 1687621557, - "narHash": "sha256-FWtdWRmtzmqjjAsvYXefdZ2uVv5p5UfB7eftqsctSck=", + "lastModified": 1689005785, + "narHash": "sha256-gxJmO6Y6L+iEgIhBlyOLlruQQqixERkWkByYSH4LaTg=", "owner": "privatevoid-net", "repo": "nix-super", - "rev": "c39cdf9ad2365509a602f8e2c6faa35aec1097a3", + "rev": "6ff67e40b495e79aa6b2dc9356f1e9ade3b77bca", "type": "github" }, "original": { @@ -719,11 +645,11 @@ "nixpkgs-lib": { "locked": { "dir": "lib", - "lastModified": 1682879489, - "narHash": "sha256-sASwo8gBt7JDnOOstnps90K1wxmVfyhsTPPNTGBPjjg=", + "lastModified": 1688049487, + "narHash": "sha256-100g4iaKC9MalDjUW9iN6Jl/OocTDtXdeAj7pEGIRh4=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "da45bf6ec7bbcc5d1e14d3795c025199f28e0de0", + "rev": "4bc72cae107788bf3f24f30db2e2f685c9298dc9", "type": "github" }, "original": { @@ -752,43 +678,27 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1678872516, - "narHash": "sha256-/E1YwtMtFAu2KUQKV/1+KFuReYPANM2Rzehk84VxVoc=", + "lastModified": 1685801374, + "narHash": "sha256-otaSUoFEMM+LjBI1XL/xGB5ao6IwnZOXc47qhIgJe8U=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "9b8e5abb18324c7fe9f07cb100c3cd4a29cda8b8", + "rev": "c37ca420157f4abc31e26f436c1145f8951ff373", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-22.11", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-stable_2": { - "locked": { - "lastModified": 1678872516, - "narHash": "sha256-/E1YwtMtFAu2KUQKV/1+KFuReYPANM2Rzehk84VxVoc=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "9b8e5abb18324c7fe9f07cb100c3cd4a29cda8b8", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-22.11", + "ref": "nixos-23.05", "repo": "nixpkgs", "type": "github" } }, "nixpkgs_2": { "locked": { - "lastModified": 1685655444, - "narHash": "sha256-6EujQNAeaUkWvpEZZcVF8qSfQrNVWFNNGbUJxv/A5a8=", + "lastModified": 1688500189, + "narHash": "sha256-djYYiY4lzJOlXOnTHytH6BUugrxHDZjuGxTSrU4gt4M=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e635192892f5abbc2289eaac3a73cdb249abaefd", + "rev": "78419edadf0fabbe5618643bd850b2f2198ed060", "type": "github" }, "original": { @@ -816,11 +726,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1680213900, - "narHash": "sha256-cIDr5WZIj3EkKyCgj/6j3HBH4Jj1W296z7HTcWj1aMA=", + "lastModified": 1688322751, + "narHash": "sha256-eW62dC5f33oKZL7VWlomttbUnOTHrAbte9yNUNW8rbk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e3652e0735fbec227f342712f180f4f21f0594f2", + "rev": "0fbe93c5a7cac99f90b60bdf5f149383daaa615f", "type": "github" }, "original": { @@ -832,11 +742,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1685677062, - "narHash": "sha256-zoHF7+HNwNwne2XEomphbdc4Y8tdWT16EUxUTXpOKpQ=", + "lastModified": 1689752456, + "narHash": "sha256-VOChdECcEI8ixz8QY+YC4JaNEFwQd1V8bA0G4B28Ki0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "95be94370d09f97f6af6a1df1eb9649b5260724e", + "rev": "7f256d7da238cb627ef189d56ed590739f42f13b", "type": "github" }, "original": { @@ -848,11 +758,11 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1685677062, - "narHash": "sha256-zoHF7+HNwNwne2XEomphbdc4Y8tdWT16EUxUTXpOKpQ=", + "lastModified": 1689752456, + "narHash": "sha256-VOChdECcEI8ixz8QY+YC4JaNEFwQd1V8bA0G4B28Ki0=", "owner": "nixos", "repo": "nixpkgs", - "rev": "95be94370d09f97f6af6a1df1eb9649b5260724e", + "rev": "7f256d7da238cb627ef189d56ed590739f42f13b", "type": "github" }, "original": { @@ -864,16 +774,16 @@ }, "nixpkgs_7": { "locked": { - "lastModified": 1681303793, - "narHash": "sha256-JEdQHsYuCfRL2PICHlOiH/2ue3DwoxUX7DJ6zZxZXFk=", + "lastModified": 1689261696, + "narHash": "sha256-LzfUtFs9MQRvIoQ3MfgSuipBVMXslMPH/vZ+nM40LkA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "fe2ecaf706a5907b5e54d979fbde4924d84b65fc", + "rev": "df1eee2aa65052a18121ed4971081576b25d6b5c", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-unstable", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } @@ -896,45 +806,18 @@ }, "pre-commit-hooks": { "inputs": { - "flake-compat": "flake-compat_4", - "flake-utils": "flake-utils_4", - "gitignore": "gitignore_2", - "nixpkgs": "nixpkgs_7", - "nixpkgs-stable": "nixpkgs-stable_2" - }, - "locked": { - "lastModified": 1685361114, - "narHash": "sha256-4RjrlSb+OO+e1nzTExKW58o3WRwVGpXwj97iCta8aj4=", - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "rev": "ca2fdbf3edda2a38140184da6381d49f8206eaf4", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "type": "github" - } - }, - "pre-commit-hooks-nix": { - "inputs": { - "flake-compat": "flake-compat_2", - "flake-utils": "flake-utils_2", + "flake-compat": "flake-compat_3", + "flake-utils": "flake-utils_3", "gitignore": "gitignore", - "nixpkgs": [ - "neovim-nightly-overlay", - "hercules-ci-effects", - "hercules-ci-agent", - "nixpkgs" - ], + "nixpkgs": "nixpkgs_7", "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1680170909, - "narHash": "sha256-FtKU/edv1jFRr/KwUxWTYWXEyj9g8GBrHntC2o8oFI8=", + "lastModified": 1689668210, + "narHash": "sha256-XAATwDkaUxH958yXLs1lcEOmU6pSEIkatY3qjqk8X0E=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "29dbe1efaa91c3a415d8b45d62d48325a4748816", + "rev": "eb433bff05b285258be76513add6f6c57b441775", "type": "github" }, "original": { @@ -999,11 +882,11 @@ ] }, "locked": { - "lastModified": 1685413459, - "narHash": "sha256-+ELexqS2yN0wj1WnmWdF24OfjRBIgTN6Ltcpjvp2dEo=", + "lastModified": 1688783586, + "narHash": "sha256-HHaM2hk2azslv1kH8zmQxXo2e7i5cKgzNIuK4yftzB0=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "9b3284e2412f76bd68ff46f8cf1c7af44d7ffac0", + "rev": "7a29283cc242c2486fc67f60b431ef708046d176", "type": "github" }, "original": { @@ -1030,11 +913,11 @@ }, "stable": { "locked": { - "lastModified": 1685620773, - "narHash": "sha256-iQ+LmporQNdLz8uMJdP62TaAWeLUwl43/MYUBtWqulM=", + "lastModified": 1689680872, + "narHash": "sha256-brNix2+ihJSzCiKwLafbyejrHJZUP0Fy6z5+xMOC27M=", "owner": "nixos", "repo": "nixpkgs", - "rev": "f0ba8235153dd2e25cf06cbf70d43efdd4443592", + "rev": "08700de174bc6235043cb4263b643b721d936bdb", "type": "github" }, "original": { @@ -1059,6 +942,36 @@ "type": "github" } }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_3": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "telekasten-nvim": { "flake": false, "locked": { @@ -1079,17 +992,18 @@ "flake": false, "locked": { "host": "gitlab.freedesktop.org", - "lastModified": 1685723274, - "narHash": "sha256-mjETVZbVheaSO0VRKQHWYAHcoKwYu0WZ0vhKVN7vyRo=", + "lastModified": 1689611045, + "narHash": "sha256-3RTOlQabkNetQ4O4UzSf57JPco9VGVHhSU1ls5uKBeE=", "owner": "wlroots", "repo": "wlroots", - "rev": "6668c822b3bf58ca5af5d370ef03b075be3e4d27", + "rev": "7791ffe0584c4ac13c170e1661ce33bdbd4a9b9e", "type": "gitlab" }, "original": { "host": "gitlab.freedesktop.org", "owner": "wlroots", "repo": "wlroots", + "rev": "7791ffe0584c4ac13c170e1661ce33bdbd4a9b9e", "type": "gitlab" } }, From 5de26b6d48009dc0868fee3d6b76b18716985a94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Tue, 25 Jul 2023 16:00:51 +0200 Subject: [PATCH 20/64] refactor(nvim): change up dependency order --- modules/programs/nvim/plugins/default.nix | 9 ++------- .../{telescope-fzf-native-nvim.lua => telescope.lua} | 0 2 files changed, 2 insertions(+), 7 deletions(-) rename modules/programs/nvim/plugins/{telescope-fzf-native-nvim.lua => telescope.lua} (100%) diff --git a/modules/programs/nvim/plugins/default.nix b/modules/programs/nvim/plugins/default.nix index fe324b7..4ca826e 100644 --- a/modules/programs/nvim/plugins/default.nix +++ b/modules/programs/nvim/plugins/default.nix @@ -180,6 +180,7 @@ with builtins; { plugin = telescope-nvim; cmd = [ "Telescope" ]; + conf = builtins.readFile ./telescope.lua; keys = [ { key = "ff"; cmd = "Telescope find_files"; desc = "Find files"; } { key = "fb"; cmd = "Telescope buffers"; desc = "Find buffers"; } @@ -199,13 +200,7 @@ with builtins; dependencies = [ { plugin = plenary-nvim; } { plugin = which-key-nvim; } - ]; - } - { - plugin = telescope-fzf-native-nvim; - conf = readFile ./telescope-fzf-native-nvim.lua; - dependencies = [ - { plugin = telescope-nvim; } + { plugin = telescope-fzf-native-nvim; } ]; } { diff --git a/modules/programs/nvim/plugins/telescope-fzf-native-nvim.lua b/modules/programs/nvim/plugins/telescope.lua similarity index 100% rename from modules/programs/nvim/plugins/telescope-fzf-native-nvim.lua rename to modules/programs/nvim/plugins/telescope.lua From 6709fc3e5dd6c6b7b2cd214a8da5ce5bf0c1d3b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Tue, 25 Jul 2023 16:01:57 +0200 Subject: [PATCH 21/64] feat(nvim)!: remove leap --- modules/programs/nvim/plugins/default.nix | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/modules/programs/nvim/plugins/default.nix b/modules/programs/nvim/plugins/default.nix index 4ca826e..d483bb3 100644 --- a/modules/programs/nvim/plugins/default.nix +++ b/modules/programs/nvim/plugins/default.nix @@ -219,25 +219,6 @@ with builtins; require("Comment").setup() ''; } - { - plugin = leap-nvim; - lazy = false; - conf = '' - require("leap").add_default_mappings() - ''; - } - { - plugin = leap-spooky-nvim; - lazy = false; - conf = '' - require("leap-spooky").setup() - ''; - dependencies = [ - { - plugin = leap-nvim; - } - ]; - } { plugin = telekasten-nvim; dependencies = [ From 885a4e8e3b791eb59212163879979e323bfb4805 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Tue, 25 Jul 2023 16:02:56 +0200 Subject: [PATCH 22/64] refactor(nvim): remove duplicate ts commentstring --- modules/programs/nvim/plugins/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/programs/nvim/plugins/default.nix b/modules/programs/nvim/plugins/default.nix index d483bb3..75634da 100644 --- a/modules/programs/nvim/plugins/default.nix +++ b/modules/programs/nvim/plugins/default.nix @@ -31,7 +31,6 @@ with builtins; { plugin = nvim-web-devicons; } ]; } - { plugin = nvim-ts-context-commentstring; } { plugin = mini-nvim; lazy = false; From 33532b1bf6435d58500dfc091ea6274719d2843c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Tue, 25 Jul 2023 16:12:08 +0200 Subject: [PATCH 23/64] feat(nvim): lazy load coq-nvim --- modules/programs/nvim/plugins/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/programs/nvim/plugins/default.nix b/modules/programs/nvim/plugins/default.nix index 75634da..f0119bf 100644 --- a/modules/programs/nvim/plugins/default.nix +++ b/modules/programs/nvim/plugins/default.nix @@ -236,7 +236,7 @@ with builtins; } { plugin = coq_nvim; - lazy = false; + event = [ "BufReadPost" "BufNewFile" ]; init = builtins.readFile ./coq-nvim.lua; dependencies = [ { From 59a4dc527a62560610bbbed67e03f8bd8cb26f98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Tue, 25 Jul 2023 16:15:18 +0200 Subject: [PATCH 24/64] feat(nvim)!: use comment.nvim instead of mini.nvim --- modules/programs/nvim/plugins/default.nix | 7 ++++ modules/programs/nvim/plugins/mini-nvim.lua | 40 --------------------- 2 files changed, 7 insertions(+), 40 deletions(-) diff --git a/modules/programs/nvim/plugins/default.nix b/modules/programs/nvim/plugins/default.nix index f0119bf..41c58e0 100644 --- a/modules/programs/nvim/plugins/default.nix +++ b/modules/programs/nvim/plugins/default.nix @@ -254,5 +254,12 @@ with builtins; } ]; } + { + plugin = nvim-surround; + event = [ "BufReadPost" "BufNewFile" ]; + conf = '' + require("nvim-surround").setup({}) + ''; + } ]; } diff --git a/modules/programs/nvim/plugins/mini-nvim.lua b/modules/programs/nvim/plugins/mini-nvim.lua index 28cabcd..aec8faa 100644 --- a/modules/programs/nvim/plugins/mini-nvim.lua +++ b/modules/programs/nvim/plugins/mini-nvim.lua @@ -3,46 +3,6 @@ require("mini.move").setup() require("mini.pairs").setup() require("mini.starter").setup() -require("mini.surround").setup({ - -- Add custom surroundings to be used on top of builtin ones. For more - -- information with examples, see `:h MiniSurround.config`. - custom_surroundings = nil, - - -- Duration (in ms) of highlight when calling `MiniSurround.highlight()` - highlight_duration = 500, - - -- Module mappings. Use `''` (empty string) to disable one. - mappings = { - add = "gSa", -- Add surrounding in Normal and Visual modes - delete = "gSd", -- Delete surrounding - find = "gSf", -- Find surrounding (to the right) - find_left = "gSF", -- Find surrounding (to the left) - highlight = "gSh", -- Highlight surrounding - replace = "gSr", -- Replace surrounding - update_n_lines = "gSn", -- Update `n_lines` - - suffix_last = "l", -- Suffix to search with "prev" method - suffix_next = "n", -- Suffix to search with "next" method - }, - - -- Number of lines within which surrounding is searched - n_lines = 20, - - -- Whether to respect selection type: - -- - Place surroundings on separate lines in linewise mode. - -- - Place surroundings on each line in blockwise mode. - respect_selection_type = false, - - -- How to search for surrounding (first inside current line, then inside - -- neighborhood). One of 'cover', 'cover_or_next', 'cover_or_prev', - -- 'cover_or_nearest', 'next', 'prev', 'nearest'. For more details, - -- see `:h MiniSurround.config`. - search_method = "cover", - - -- Whether to disable showing non-error feedback - silent = false, -}) - require("mini.tabline").setup() local tabline_current = vim.api.nvim_get_hl(0, { name = "MiniTablineCurrent" }) vim.api.nvim_set_hl(0, "MiniTablineCurrent", { From f5ce0b73bdb3385c195501de0994b6e80e7282cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sat, 29 Jul 2023 17:01:53 +0200 Subject: [PATCH 25/64] feat(nvim): add nvim treesitter context --- modules/programs/nvim/plugins/default.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/modules/programs/nvim/plugins/default.nix b/modules/programs/nvim/plugins/default.nix index 41c58e0..c6372f2 100644 --- a/modules/programs/nvim/plugins/default.nix +++ b/modules/programs/nvim/plugins/default.nix @@ -261,5 +261,12 @@ with builtins; require("nvim-surround").setup({}) ''; } + { + plugin = nvim-treesitter-context; + event = [ "BufReadPost" "BufNewFile" ]; + conf = '' + require("treesitter-context").setup({}) + ''; + } ]; } From 2e520505c7f949465bbccaf0dc784519b7252abc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sat, 29 Jul 2023 17:02:26 +0200 Subject: [PATCH 26/64] refactor(nvim): improve plugin options --- modules/programs/nvim/default.nix | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/modules/programs/nvim/default.nix b/modules/programs/nvim/default.nix index 702542e..f126481 100644 --- a/modules/programs/nvim/default.nix +++ b/modules/programs/nvim/default.nix @@ -50,7 +50,7 @@ let "dir = ${quote plugin}" "name = ${quote (getName plugin)}" ] - ++ (optional (!lazy) "lazy = ${boolToString lazy}") + ++ (optional (lazy != null) "lazy = ${boolToString lazy}") ++ (optional (!enabled) "enabled = ${boolToString enabled}") ++ (optional (dependencies != [ ]) "dependencies = ${listToStringMultiLine id (map lazySpecFromPlugin dependencies)}") ++ (optional (init != null) "init = function(plugin)\n${toString init}\nend") @@ -59,7 +59,7 @@ let ++ (optional (event != [ ]) "event = ${listToStringOneLine quote event}") ++ (optional (cmd != [ ]) "cmd = ${listToStringOneLine quote cmd}") ++ (optional (ft != [ ]) "ft = ${listToStringOneLine quote ft}") - ++ (optional (priority != 50) "priority = ${toString priority}") + ++ (optional (priority != null) "priority = ${toString priority}") ); lazySpecs = listToStringMultiLine id (map lazySpecFromPlugin cfg.plugins); lazy = '' @@ -86,7 +86,7 @@ in type = nullOr str; default = null; description = '' - Lua code to be executed when the plugin is loaded. + Lua function to be executed when the plugin is loaded. ''; }; dependencies = mkOption { @@ -111,8 +111,8 @@ in ''; }; lazy = mkOption { - type = bool; - default = true; + type = nullOr bool; + default = null; description = '' Whether to load the plugin lazily. ''; @@ -145,8 +145,8 @@ in ''; }; priority = mkOption { - type = int; - default = 50; + type = nullOr int; + default = null; description = '' Priority to load the plugin. ''; From 392699c35b40d56bdae43d0a808a04c251dd7bcb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sat, 29 Jul 2023 17:03:23 +0200 Subject: [PATCH 27/64] feat: use resolved --- hosts/nixos-desktop/default.nix | 8 +------- modules/profiles/desktop.nix | 1 + 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/hosts/nixos-desktop/default.nix b/hosts/nixos-desktop/default.nix index d5dc5f7..30679e6 100644 --- a/hosts/nixos-desktop/default.nix +++ b/hosts/nixos-desktop/default.nix @@ -66,13 +66,7 @@ } ]; }; - networkmanager = { - enable = true; - dns = "none"; - }; - dhcpcd.extraConfig = '' - nohook resolv.conf - ''; + networkmanager.enable = true; }; hardware.nvidia.modesetting.enable = true; services.xserver.videoDrivers = [ "nvidia" ]; diff --git a/modules/profiles/desktop.nix b/modules/profiles/desktop.nix index 4af668d..5fcd3f1 100644 --- a/modules/profiles/desktop.nix +++ b/modules/profiles/desktop.nix @@ -106,6 +106,7 @@ in }; services = { illum.enable = true; + resolved.enable = true; gnome.gnome-keyring.enable = true; pipewire = { enable = true; From 7c1d5f239663c62c3269065827a642457fa5e7e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sat, 29 Jul 2023 17:05:09 +0200 Subject: [PATCH 28/64] style: remove redundant whitespaces --- modules/programs/hyprland/default.nix | 1 - overlays/packages.nix | 1 - 2 files changed, 2 deletions(-) diff --git a/modules/programs/hyprland/default.nix b/modules/programs/hyprland/default.nix index 2805a2e..d75333d 100644 --- a/modules/programs/hyprland/default.nix +++ b/modules/programs/hyprland/default.nix @@ -38,7 +38,6 @@ in wallpaper.enable = true; kitty.enable = true; rofi.enable = true; - }; wallpapers.enable = true; services.dunst.enable = true; diff --git a/overlays/packages.nix b/overlays/packages.nix index c4d7e67..e56b410 100644 --- a/overlays/packages.nix +++ b/overlays/packages.nix @@ -25,5 +25,4 @@ final: prev: echo "$selected" ''; }; - } From e901627f9946b46ca3b6a103cc4ebfa2c78dacf5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sat, 29 Jul 2023 17:05:59 +0200 Subject: [PATCH 29/64] feat(nvim)!: remove tab line --- modules/programs/nvim/plugins/mini-nvim.lua | 9 --------- 1 file changed, 9 deletions(-) diff --git a/modules/programs/nvim/plugins/mini-nvim.lua b/modules/programs/nvim/plugins/mini-nvim.lua index aec8faa..e89e7a3 100644 --- a/modules/programs/nvim/plugins/mini-nvim.lua +++ b/modules/programs/nvim/plugins/mini-nvim.lua @@ -3,15 +3,6 @@ require("mini.move").setup() require("mini.pairs").setup() require("mini.starter").setup() -require("mini.tabline").setup() -local tabline_current = vim.api.nvim_get_hl(0, { name = "MiniTablineCurrent" }) -vim.api.nvim_set_hl(0, "MiniTablineCurrent", { - fg = tabline_current.fg, - bg = tabline_current.bg, - bold = true, - italic = true, -}) - require("mini.statusline").setup({ content = { active = function() From 916674d5b2343152c00ad1c337e33ce942da198d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sat, 29 Jul 2023 17:06:33 +0200 Subject: [PATCH 30/64] feat(nvim): add go specific config --- modules/programs/nvim/plugins/formatter-nvim.lua | 3 +++ modules/programs/nvim/plugins/nvim-lspconfig.lua | 1 + 2 files changed, 4 insertions(+) diff --git a/modules/programs/nvim/plugins/formatter-nvim.lua b/modules/programs/nvim/plugins/formatter-nvim.lua index adbdeeb..a7eee92 100644 --- a/modules/programs/nvim/plugins/formatter-nvim.lua +++ b/modules/programs/nvim/plugins/formatter-nvim.lua @@ -6,6 +6,9 @@ require("formatter").setup({ log_level = vim.log.levels.WARN, -- All formatter configurations are opt-in filetype = { + go = { + require("formatter.filetypes.go").gofmt, + }, json = { require("formatter.filetypes.json").jq, }, diff --git a/modules/programs/nvim/plugins/nvim-lspconfig.lua b/modules/programs/nvim/plugins/nvim-lspconfig.lua index c5f8222..8d89374 100644 --- a/modules/programs/nvim/plugins/nvim-lspconfig.lua +++ b/modules/programs/nvim/plugins/nvim-lspconfig.lua @@ -124,6 +124,7 @@ local servers = { "ruff_lsp", "rust_analyzer", "typst_lsp", + "gopls", } for _, lsp in ipairs(servers) do lspconfig_setup(lsp, {}) From 4cd51917fc52ffc61cfdf9d168d83775f608d4b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sat, 29 Jul 2023 17:06:58 +0200 Subject: [PATCH 31/64] feat(nvim): run clippy using rust-analyzer --- modules/programs/nvim/plugins/nvim-lspconfig.lua | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/modules/programs/nvim/plugins/nvim-lspconfig.lua b/modules/programs/nvim/plugins/nvim-lspconfig.lua index 8d89374..35cce24 100644 --- a/modules/programs/nvim/plugins/nvim-lspconfig.lua +++ b/modules/programs/nvim/plugins/nvim-lspconfig.lua @@ -122,7 +122,6 @@ local servers = { "nil_ls", "pylsp", "ruff_lsp", - "rust_analyzer", "typst_lsp", "gopls", } @@ -130,6 +129,16 @@ for _, lsp in ipairs(servers) do lspconfig_setup(lsp, {}) end +lspconfig_setup("rust_analyzer", { + settings = { + ["rust-analyzer"] = { + checkOnSave = { + command = "clippy", + }, + }, + }, +}) + lspconfig_setup("lua_ls", { settings = { Lua = { From c8f53dfe2e7c78f18927837757a5a8b972a3f4fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Thu, 10 Aug 2023 18:40:07 +0200 Subject: [PATCH 32/64] feat: better zoxide alias and completions --- modules/profiles/base.nix | 9 +++++++-- modules/programs/fish.nix | 3 +++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/modules/profiles/base.nix b/modules/profiles/base.nix index 9727af2..d6d6523 100644 --- a/modules/profiles/base.nix +++ b/modules/profiles/base.nix @@ -55,7 +55,7 @@ in cat = "bat"; rm = "rm -i"; mv = "mv -i"; - cd = "z"; + cd = "__zoxide_z"; nixos-switch = nom-system-command "sudo nixos-rebuild switch --flake ~/.dotfiles"; nixos-boot = nom-system-command "sudo nixos-rebuild boot --flake ~/.dotfiles"; @@ -167,7 +167,12 @@ in "--bind alt-j:preview-down,alt-k:preview-up" ]; }; - zoxide.enable = true; + zoxide = { + enable = true; + options = [ + "--cmd c" + ]; + }; }; home = { username = "moritz"; diff --git a/modules/programs/fish.nix b/modules/programs/fish.nix index 549a363..aac66b3 100644 --- a/modules/programs/fish.nix +++ b/modules/programs/fish.nix @@ -43,6 +43,9 @@ in # visual mode, but due to fish_cursor_default, is redundant here set fish_cursor_visual block + # Completions + complete -c c -kfa '(zoxide query -l | sed "s|$HOME|~|")' + # Variables ${exportedVariables} ''; From 3180e6408529b7a17db57af89f5cbef3ce496148 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Thu, 10 Aug 2023 18:40:41 +0200 Subject: [PATCH 33/64] feat(nvim): format init.lua --- modules/programs/nvim/default.nix | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/modules/programs/nvim/default.nix b/modules/programs/nvim/default.nix index f126481..3503476 100644 --- a/modules/programs/nvim/default.nix +++ b/modules/programs/nvim/default.nix @@ -63,9 +63,7 @@ let ); lazySpecs = listToStringMultiLine id (map lazySpecFromPlugin cfg.plugins); lazy = '' - require("lazy").setup({ - ${lazySpecs} - }) + require("lazy").setup(${lazySpecs}) ''; in { @@ -213,7 +211,17 @@ in else neovide ) ]; - + xdg.configFile."nvim/init.lua" = { + source = + let + text = lib.concatLines [ (builtins.readFile ./options.lua) lazy ]; + in + pkgs.runCommand "init.lua" { inherit text; } '' + touch $out + echo -n "$text" > $out + ${getExe pkgs.stylua} $out + ''; + }; programs.neovim = { enable = true; package = pkgs.neovim-nightly; @@ -221,7 +229,6 @@ in vimdiffAlias = true; withNodeJs = true; withPython3 = true; - extraLuaConfig = lib.concatLines [ (builtins.readFile ./options.lua) lazy ]; extraPython3Packages = ps: let plugins = map (getAttr "plugin") cfg.plugins; From 44adf708623aecf2524c061f781275017b566e4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Thu, 10 Aug 2023 18:41:34 +0200 Subject: [PATCH 34/64] refactor!: simplify dunst config --- modules/services/dunst.nix | 262 +------------------------------------ 1 file changed, 3 insertions(+), 259 deletions(-) diff --git a/modules/services/dunst.nix b/modules/services/dunst.nix index 898faaa..db80828 100644 --- a/modules/services/dunst.nix +++ b/modules/services/dunst.nix @@ -12,265 +12,9 @@ in options.my.services.dunst.enable = mkEnableOption "dunst"; config = lib.mkIf cfg.enable { - home-manager.users.moritz = { - services.dunst = { - enable = true; - settings = { - global = { - ### Display ### - - # Which monitor should the notifications be displayed on. - monitor = 0; - - # Display notification on focused monitor. Possible modes are: - # mouse: follow mouse pointer - # keyboard: follow window with keyboard focus - # none: don't follow anything - # - # "keyboard" needs a window manager that exports the - # _NET_ACTIVE_WINDOW property. - # This should be the case for almost all modern window managers. - # - # If this option is set to mouse or keyboard, the monitor option - # will be ignored. - follow = "mouse"; - - # The geometry of the window: - # [{width}]x{height}[+/-{x}+/-{y}] - # The geometry of the message window. - # The height is measured in number of notifications everything else - # in pixels. If the width is omitted but the height is given - # ("-geometry x2"), the message window expands over the whole screen - # (dmenu-like). If width is 0, the window expands to the longest - # message displayed. A positive x is measured from the left, a - # negative from the right side of the screen. Y is measured from - # the top and down respectively. - # The width can be negative. In this case the actual width is the - # screen width minus the width defined in within the geometry option. - geometry = "0x4-25+25"; - - # Show how many messages are currently hidden (because of geometry). - indicate_hidden = "yes"; - - # Shrink window if it's smaller than the width. Will be ignored if - # width is 0. - shrink = "no"; - - # The transparency of the window. Range: [0; 100]. - # This option will only work if a compositing window manager is - # present (e.g. xcompmgr, compiz, etc.). - transparency = "15"; - - # The height of the entire notification. If the height is smaller - # than the font height and padding combined, it will be raised - # to the font height and padding. - notification_height = 0; - - # Draw a line of "separator_height" pixel height between two - # notifications. - # Set to 0 to disable. - separator_height = 1; - - # Padding between text and separator. - padding = 8; - - # Horizontal padding. - horizontal_padding = 10; - - # Defines width in pixels of frame around the notification window. - # Set to 0 to disable. - frame_width = 0; - - # Sort messages by urgency. - sort = "yes"; - - # Don't remove messages, if the user is idle (no mouse or keyboard input) - # for longer than idle_threshold seconds. - # Set to 0 to disable. - # A client can set the 'transient' hint to bypass this. See the rules - # section for how to disable this if necessary - idle_threshold = 120; - - ### Text ### - - font = "Monospace 10"; - - # The spacing between lines. If the height is smaller than the - # font height, it will get raised to the font height. - line_height = 0; - - # Possible values are: - # full: Allow a small subset of html markup in notifications: - # bold - # italic - # strikethrough - # underline - # - # For a complete reference see - # . - # - # strip: This setting is provided for compatibility with some broken - # clients that send markup even though it's not enabled on the - # server. Dunst will try to strip the markup but the parsing is - # simplistic so using this option outside of matching rules for - # specific applications *IS GREATLY DISCOURAGED*. - # - # no: Disable markup parsing, incoming notifications will be treated as - # plain text. Dunst will not advertise that it has the body-markup - # capability if this is set as a global setting. - # - # It's important to note that markup inside the format option will be parsed - # regardless of what this is set to. - markup = "full"; - - # The format of the message. Possible variables are: - # %a appname - # %s summary - # %b body - # %i iconname (including its path) - # %I iconname (without its path) - # %p progress value if set ([ 0%] to [100%]) or nothing - # %n progress value if set without any extra characters - # %% Literal % - # Markup is allowed - format = '' - %s %p - %b''; - - # Alignment of message text. - # Possible values are "left", "center" and "right". - alignment = "left"; - - # Vertical alignment of message text and icon. - # Possible values are "top", "center" and "bottom". - vertical_alignment = "center"; - - # Show age of message if message is older than show_age_threshold - # seconds. - # Set to -1 to disable. - show_age_threshold = 60; - - # Split notifications into multiple lines if they don't fit into - # geometry. - word_wrap = "yes"; - - # When word_wrap is set to no, specify where to make an ellipsis in long lines. - # Possible values are "start", "middle" and "end". - ellipsize = "middle"; - - # Ignore newlines '\n' in notifications. - ignore_newline = "no"; - - # Stack together notifications with the same content - stack_duplicates = true; - - # Hide the count of stacked notifications with the same content - hide_duplicate_count = false; - - # Display indicators for URLs (U) and actions (A). - show_indicators = "yes"; - - ### Icons ### - - # Align icons left/right/off - icon_position = "left"; - - # Scale small icons up to this size, set to 0 to disable. Helpful - # for e.g. small files or high-dpi screens. In case of conflict, - # max_icon_size takes precedence over this. - min_icon_size = 0; - - # Scale larger icons down to this size, set to 0 to disable - max_icon_size = 64; - - # Paths to default icons. - # icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/ - - ### History ### - - # Should a notification popped up from history be sticky or timeout - # as if it would normally do. - sticky_history = "yes"; - - # Maximum amount of notifications kept in history - history_length = 20; - - ### Misc/Advanced ### - - # dmenu path. - dmenu = "${pkgs.rofi}/bin/rofi -p dunst"; - - # Browser for opening urls in context menu. - browser = "${pkgs.firefox}/bin/firefox -new-tab"; - - # Always run rule-defined scripts, even if the notification is suppressed - always_run_script = true; - - # Define the title of the windows spawned by dunst - title = "Dunst"; - - # Define the class of the windows spawned by dunst - class = "Dunst"; - - # Print a notification on startup. - # This is mainly for error detection, since dbus (re-)starts dunst - # automatically after a crash. - startup_notification = false; - - # Manage dunst's desire for talking - # Can be one of the following values: - # crit: Critical features. Dunst aborts - # warn: Only non-fatal warnings - # mesg: Important Messages - # info: all unimportant stuff - # debug: all less than unimportant stuff - verbosity = "mesg"; - - # Define the corner radius of the notification window - # in pixel size. If the radius is 0, you have no rounded - # corners. - # The radius will be automatically lowered if it exceeds half of the - # notification height to avoid clipping text and/or icons. - corner_radius = 0; - - # Ignore the dbus closeNotification message. - # Useful to enforce the timeout set by dunst configuration. Without this - # parameter, an application may close the notification sent before the - # user defined timeout. - ignore_dbusclose = false; - - ### Legacy - - # Use the Xinerama extension instead of RandR for multi-monitor support. - # This setting is provided for compatibility with older nVidia drivers that - # do not support RandR and using it on systems that support RandR is highly - # discouraged. - # - # By enabling this setting dunst will not be able to detect when a monitor - # is connected or disconnected which might break follow mode if the screen - # layout changes. - force_xinerama = false; - - ### mouse - - # Defines list of actions for each mouse event - # Possible values are: - # * none: Don't do anything. - # * do_action: If the notification has exactly one action, or one is marked as default, - # invoke it. If there are multiple and no default, open the context menu. - # * close_current: Close current notification. - # * close_all: Close all notifications. - # These values can be strung together for each mouse event, and - # will be executed in sequence. - mouse_left_click = "close_current"; - mouse_middle_click = "do_action, close_current"; - mouse_right_click = "close_all"; - }; - urgency_low.timeout = 10; - urgency_normal.timeeout = 10; - urgency_critical.timeout = 0; - }; - }; + home-manager.users.moritz.services.dunst.enable = true; + home-manager.users.moritz.services.dunst.settings.global = { + font = "Monospace 10"; }; }; } From 92b9ac12334ee5ad6af5187d04083eb77133571f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Fri, 11 Aug 2023 17:38:26 +0200 Subject: [PATCH 35/64] feat(nvim): simplify lsp config --- flake.lock | 68 ------------------- flake.nix | 12 ---- modules/programs/nvim/plugins/default.nix | 7 -- .../programs/nvim/plugins/nvim-lspconfig.lua | 45 ++++++------ overlays/vimPlugins.nix | 22 ------ 5 files changed, 22 insertions(+), 132 deletions(-) diff --git a/flake.lock b/flake.lock index 14e7bc4..b24bece 100644 --- a/flake.lock +++ b/flake.lock @@ -55,38 +55,6 @@ "type": "github" } }, - "cmp-async-path": { - "flake": false, - "locked": { - "lastModified": 1673896803, - "narHash": "sha256-dgAiVbdMiKjiKWk+dJf/Zz8T20+D4OalGH5dTzYi5aM=", - "owner": "FelipeLema", - "repo": "cmp-async-path", - "rev": "d8229a93d7b71f22c66ca35ac9e6c6cd850ec61d", - "type": "github" - }, - "original": { - "owner": "FelipeLema", - "repo": "cmp-async-path", - "type": "github" - } - }, - "copilot-lua": { - "flake": false, - "locked": { - "lastModified": 1688190439, - "narHash": "sha256-lD9FdbKKZ6d/BjIfqp0Ust2hqSYNLpCFWxuaKUO9qLs=", - "owner": "zbirenbaum", - "repo": "copilot.lua", - "rev": "e48bd7020a98be217d85c006a298656294fd6210", - "type": "github" - }, - "original": { - "owner": "zbirenbaum", - "repo": "copilot.lua", - "type": "github" - } - }, "darwin": { "inputs": { "nixpkgs": [ @@ -470,22 +438,6 @@ "type": "github" } }, - "leap-spooky-nvim": { - "flake": false, - "locked": { - "lastModified": 1687792124, - "narHash": "sha256-EPqbsG7KFHdnbW430+BSrPeOoVy99KtIC8OpFbV1ycw=", - "owner": "ggandor", - "repo": "leap-spooky.nvim", - "rev": "e003f2aa376190148f2e7731a60c89239335013c", - "type": "github" - }, - "original": { - "owner": "ggandor", - "repo": "leap-spooky.nvim", - "type": "github" - } - }, "lowdown-src": { "flake": false, "locked": { @@ -502,22 +454,6 @@ "type": "github" } }, - "lspsaga-nvim": { - "flake": false, - "locked": { - "lastModified": 1689849495, - "narHash": "sha256-tD3UxJUtYoxUMTFF4gfKChVfI5SxZQ2C12WRF73Ahc4=", - "owner": "glepnir", - "repo": "lspsaga.nvim", - "rev": "0c20101ac826961a7052c4ad9d5f7f791b4adab1", - "type": "github" - }, - "original": { - "owner": "glepnir", - "repo": "lspsaga.nvim", - "type": "github" - } - }, "master": { "locked": { "lastModified": 1689880801, @@ -848,15 +784,11 @@ "agenix": "agenix", "arkenfox-userjs": "arkenfox-userjs", "asus-touchpad-numpad-driver": "asus-touchpad-numpad-driver", - "cmp-async-path": "cmp-async-path", - "copilot-lua": "copilot-lua", "flake-utils": "flake-utils", "home-manager": "home-manager_2", "hypr-contrib": "hypr-contrib", "hyprland": "hyprland", "hyprpaper": "hyprpaper", - "leap-spooky-nvim": "leap-spooky-nvim", - "lspsaga-nvim": "lspsaga-nvim", "master": "master", "neovim-nightly-overlay": "neovim-nightly-overlay", "nil": "nil", diff --git a/flake.nix b/flake.nix index 42191c8..724cd7c 100644 --- a/flake.nix +++ b/flake.nix @@ -35,24 +35,12 @@ # Neovim neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay"; - cmp-async-path.url = "github:FelipeLema/cmp-async-path"; - cmp-async-path.flake = false; - - copilot-lua.flake = false; - copilot-lua.url = "github:zbirenbaum/copilot.lua"; - - lspsaga-nvim.flake = false; - lspsaga-nvim.url = "github:glepnir/lspsaga.nvim"; - nvim-treesitter-textsubjects.flake = false; nvim-treesitter-textsubjects.url = "github:RRethy/nvim-treesitter-textsubjects"; smartcolumn-nvim.flake = false; smartcolumn-nvim.url = "github:m4xshen/smartcolumn.nvim"; - leap-spooky-nvim.flake = false; - leap-spooky-nvim.url = "github:ggandor/leap-spooky.nvim"; - telekasten-nvim.flake = false; telekasten-nvim.url = "github:renerocksai/telekasten.nvim"; diff --git a/modules/programs/nvim/plugins/default.nix b/modules/programs/nvim/plugins/default.nix index c6372f2..d8ab853 100644 --- a/modules/programs/nvim/plugins/default.nix +++ b/modules/programs/nvim/plugins/default.nix @@ -132,13 +132,6 @@ with builtins; { plugin = which-key-nvim; } { plugin = lspkind-nvim; } { plugin = lsp_lines-nvim; } - { - plugin = lspsaga-nvim-original; - dependencies = [ - { plugin = nvim-web-devicons; } - { plugin = nvim-treesitter.withAllGrammars; } - ]; - } { plugin = nvim-ufo; dependencies = [ diff --git a/modules/programs/nvim/plugins/nvim-lspconfig.lua b/modules/programs/nvim/plugins/nvim-lspconfig.lua index 35cce24..12f12db 100644 --- a/modules/programs/nvim/plugins/nvim-lspconfig.lua +++ b/modules/programs/nvim/plugins/nvim-lspconfig.lua @@ -53,51 +53,50 @@ capabilities.textDocument.foldingRange = { } require("ufo").setup() -require("lspsaga").setup({ - symbol_in_winbar = { - enable = false, - }, - lightbulb = { - enable = false, - enable_in_insert = false, - }, -}) - local lspconfig = require("lspconfig") local on_attach_def = function(_, bufnr) require("which-key").register({ - K = { "Lspsaga hover_doc ++quiet", "show info" }, + K = { vim.lsp.buf.hover, "Hover" }, [""] = { l = { - d = { "Lspsaga show_cursor_diagnostics", "open diagnostic window" }, - c = { "Lspsaga code_action", "code action" }, - r = { "Lspsaga rename", "rename" }, - i = { "Lspsaga hover_doc ++keep", "show info (sticky)" }, + d = { vim.diagnostic.open_float, "Open diagnostic window" }, + c = { vim.lsp.buf.code_action, "Code action" }, + r = { vim.lsp.buf.rename, "Rename" }, f = { function() vim.lsp.buf.format({ async = true }) end, - "format (lsp)", + "Format (lsp)", mode = { "n", "v" }, }, }, t = { - l = { lsp_lines.toggle, "lsp lines" }, + l = { lsp_lines.toggle, "Lsp lines" }, }, }, g = { - d = { "Lspsaga peek_definition", "Goto definition" }, - t = { "Lspsaga peek_type_definition", "Goto type defininition" }, - h = { "Lspsaga lsp_finder", "Lsp finder" }, - r = { "Telescope lsp_references", "Goto reference" }, + d = { + function() + require("telescope.builtin").lsp_definitions({ reuse_win = true }) + end, + "Goto definition", + }, + t = { + function() + require("telescope.builtin").lsp_type_definitions({ reuse_win = true }) + end, + "Goto type defininition", + }, + r = { "Telescope lsp_references", "Goto references" }, D = { vim.lsp.buf.declaration, "Goto declaration" }, I = { "Telescope lsp_implementations", "Goto implementation" }, + K = { vim.lsp.buf.signature_help, "Signature help" }, }, ["["] = { - d = { "Lspsaga diagnostic_jump_prev", "Previous diagnostic" }, + d = { vim.diagnostic.goto_prev, "Previous diagnostic" }, }, ["]"] = { - d = { "Lspsaga diagnostic_jump_next", "Next diagnostic" }, + d = { vim.diagnostic.goto_next, "Next diagnostic" }, }, }, { buffer = bufnr, silent = true }) end diff --git a/overlays/vimPlugins.nix b/overlays/vimPlugins.nix index 0b8727b..5daec2e 100644 --- a/overlays/vimPlugins.nix +++ b/overlays/vimPlugins.nix @@ -16,28 +16,6 @@ with lib.my; src = inputs.smartcolumn-nvim; }; - copilot-lua = prev.vimPlugins.copilot-lua.overrideAttrs (_: { - version = mkVersionInput inputs.copilot-lua; - src = inputs.copilot-lua; - }); - - lspsaga-nvim-original = prev.vimPlugins.lspsaga-nvim-original.overrideAttrs (_: { - version = mkVersionInput inputs.lspsaga-nvim; - src = inputs.lspsaga-nvim; - }); - - cmp-async-path = prev.vimPlugins.cmp-path.overrideAttrs (_: { - pname = "cmp-async-path"; - version = mkVersionInput inputs.cmp-async-path; - src = inputs.cmp-async-path; - }); - - leap-spooky-nvim = prev.vimUtils.buildVimPluginFrom2Nix { - pname = "leap-spooky-nvim"; - version = mkVersionInput inputs.leap-spooky-nvim; - src = inputs.leap-spooky-nvim; - }; - telekasten-nvim = prev.vimUtils.buildVimPluginFrom2Nix { pname = "telekasten-nvim"; version = mkVersionInput inputs.telekasten-nvim; From 670921dda25ec4fc6d65dc243392cd6dffb7733b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Fri, 11 Aug 2023 17:39:02 +0200 Subject: [PATCH 36/64] refactor(nvim): cleanup --- modules/programs/nvim/plugins/default.nix | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/modules/programs/nvim/plugins/default.nix b/modules/programs/nvim/plugins/default.nix index d8ab853..c73009a 100644 --- a/modules/programs/nvim/plugins/default.nix +++ b/modules/programs/nvim/plugins/default.nix @@ -20,7 +20,6 @@ with builtins; { key = "="; cmd = "Format"; desc = "format (formatter)"; } ]; conf = readFile ./formatter-nvim.lua; - dependencies = [{ plugin = which-key-nvim; }]; } { plugin = oil-nvim; @@ -141,8 +140,8 @@ with builtins; ]; } { - event = [ "VeryLazy" ]; plugin = vim-fugitive; + event = [ "VeryLazy" ]; } { plugin = vim-tmux-navigator; @@ -225,7 +224,7 @@ with builtins; } { plugin = markdown-preview-nvim; - lazy = false; + ft = [ "md" ]; } { plugin = coq_nvim; From 64509b4cc1869f8ecfeaadb15dd0f4c628da4c0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Fri, 11 Aug 2023 17:39:19 +0200 Subject: [PATCH 37/64] feat(nvim): replace noice.nvim with dressing.nvim --- modules/programs/nvim/plugins/default.nix | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/modules/programs/nvim/plugins/default.nix b/modules/programs/nvim/plugins/default.nix index c73009a..6db0f7f 100644 --- a/modules/programs/nvim/plugins/default.nix +++ b/modules/programs/nvim/plugins/default.nix @@ -35,12 +35,6 @@ with builtins; lazy = false; conf = readFile ./mini-nvim.lua; } - { - plugin = noice-nvim; - lazy = false; - conf = readFile ./noice-nvim.lua; - dependencies = [{ plugin = nui-nvim; }]; - } { plugin = trouble-nvim; keys = [ @@ -260,5 +254,9 @@ with builtins; require("treesitter-context").setup({}) ''; } + { + plugin = dressing-nvim; + event = [ "VeryLazy" ]; + } ]; } From 31012a6274a7242396786a7d3abbb9cbc9d3f86a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Fri, 11 Aug 2023 17:39:48 +0200 Subject: [PATCH 38/64] fix(virtualisation): bug with virt-manager --- modules/virtualisation/virtualisation.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/virtualisation/virtualisation.nix b/modules/virtualisation/virtualisation.nix index 67f4c17..0f32600 100644 --- a/modules/virtualisation/virtualisation.nix +++ b/modules/virtualisation/virtualisation.nix @@ -17,6 +17,8 @@ in package = pkgs.libvirt; }; + programs.dconf.enable = true; + users.users.moritz = { extraGroups = [ "libvirtd" ]; packages = with pkgs; [ virt-manager virt-viewer ]; From 0c591c04359d0f7597b05bbbe7fd2b43c08d9ce8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Fri, 11 Aug 2023 18:59:52 +0200 Subject: [PATCH 39/64] feat(nvim): add hmts.nvim --- flake.lock | 17 +++++++++++++++++ flake.nix | 3 +++ modules/programs/fish.nix | 10 +++++----- modules/programs/nvim/default.nix | 12 +++--------- modules/programs/nvim/plugins/default.nix | 14 +++++++++----- overlays/vimPlugins.nix | 6 ++++++ 6 files changed, 43 insertions(+), 19 deletions(-) diff --git a/flake.lock b/flake.lock index b24bece..5d00940 100644 --- a/flake.lock +++ b/flake.lock @@ -319,6 +319,22 @@ "type": "github" } }, + "hmts-nvim": { + "flake": false, + "locked": { + "lastModified": 1691525513, + "narHash": "sha256-il5m+GlNt0FzZjefl1q8ZxWHg0+gQps0vigt+eoIy8A=", + "owner": "calops", + "repo": "hmts.nvim", + "rev": "594dd17c870afb7f6517723c8963f6eb144e3c0d", + "type": "github" + }, + "original": { + "owner": "calops", + "repo": "hmts.nvim", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -785,6 +801,7 @@ "arkenfox-userjs": "arkenfox-userjs", "asus-touchpad-numpad-driver": "asus-touchpad-numpad-driver", "flake-utils": "flake-utils", + "hmts-nvim": "hmts-nvim", "home-manager": "home-manager_2", "hypr-contrib": "hypr-contrib", "hyprland": "hyprland", diff --git a/flake.nix b/flake.nix index 724cd7c..88905ad 100644 --- a/flake.nix +++ b/flake.nix @@ -44,6 +44,9 @@ telekasten-nvim.flake = false; telekasten-nvim.url = "github:renerocksai/telekasten.nvim"; + hmts-nvim.flake = false; + hmts-nvim.url = "github:calops/hmts.nvim"; + # Hyprland hypr-contrib.url = "github:hyprwm/contrib"; hyprland.url = "github:hyprwm/Hyprland"; diff --git a/modules/programs/fish.nix b/modules/programs/fish.nix index aac66b3..efc2dac 100644 --- a/modules/programs/fish.nix +++ b/modules/programs/fish.nix @@ -50,22 +50,22 @@ in ${exportedVariables} ''; functions = { - gi = with pkgs; '' + gi = '' set url https://www.gitignore.io/api if test (count $argv) -eq 0 set choice ( curl -sL $url/list \ | string split "," \ - | ${fzf}/bin/fzf -m \ + | ${getExe pkgs.fzf} -m \ | string join "," ) else set choice (string join "," $argv[1..]) end - if ${gum}/bin/gum confirm "Overwrite current .gitignore?" - ${curl}/bin/curl -sL $url/$choice > .gitignore + if ${getExe pkgs.gum} confirm "Overwrite current .gitignore?" + ${getExe pkgs.curl} -sL $url/$choice > .gitignore else - ${curl}/bin/curl -sL $url/$choice >> .gitignore + ${getExe pkgs.curl} -sL $url/$choice >> .gitignore end ''; fish_greeting = ""; diff --git a/modules/programs/nvim/default.nix b/modules/programs/nvim/default.nix index 3503476..c7983f1 100644 --- a/modules/programs/nvim/default.nix +++ b/modules/programs/nvim/default.nix @@ -12,14 +12,8 @@ let id = x: x; listToString = sep: f: list: ''{ ${concatStringsSep sep (map f list)} }''; listToStringOneLine = listToString ", "; - listToStringMultiLine = listToString ",\n"; - keybinding = - { key - , cmd - , func - , mode - , desc - }: + listToStringMultiLine' = listToString ",\n" id; + keybinding = { key, cmd, func, mode, desc }: let cmdString = if cmd != null @@ -62,7 +56,7 @@ let ++ (optional (priority != null) "priority = ${toString priority}") ); lazySpecs = listToStringMultiLine id (map lazySpecFromPlugin cfg.plugins); - lazy = '' + lazy = /* lua */ '' require("lazy").setup(${lazySpecs}) ''; in diff --git a/modules/programs/nvim/plugins/default.nix b/modules/programs/nvim/plugins/default.nix index 6db0f7f..9d4c4fe 100644 --- a/modules/programs/nvim/plugins/default.nix +++ b/modules/programs/nvim/plugins/default.nix @@ -47,7 +47,7 @@ with builtins; { key = "st"; cmd = "TodoTelescope"; desc = "Todo"; } { key = "[q"; - func = ''function() + func = /* lua */ ''function() if require("trouble").is_open() then require("trouble").previous({ skip_groups = true, jump = true }) else @@ -58,7 +58,7 @@ with builtins; } { key = "]q"; - func = ''function() + func = /* lua */ ''function() if require("trouble").is_open() then require("trouble").next({ skip_groups = true, jump = true }) else @@ -200,7 +200,7 @@ with builtins; { plugin = comment-nvim; event = [ "BufReadPost" "BufNewFile" ]; - conf = '' + conf = /* lua */ '' require("Comment").setup() ''; } @@ -243,14 +243,14 @@ with builtins; { plugin = nvim-surround; event = [ "BufReadPost" "BufNewFile" ]; - conf = '' + conf = /* lua */ '' require("nvim-surround").setup({}) ''; } { plugin = nvim-treesitter-context; event = [ "BufReadPost" "BufNewFile" ]; - conf = '' + conf = /* lua */ '' require("treesitter-context").setup({}) ''; } @@ -258,5 +258,9 @@ with builtins; plugin = dressing-nvim; event = [ "VeryLazy" ]; } + { + plugin = hmts-nvim; + ft = [ "nix" ]; + } ]; } diff --git a/overlays/vimPlugins.nix b/overlays/vimPlugins.nix index 5daec2e..eba8e54 100644 --- a/overlays/vimPlugins.nix +++ b/overlays/vimPlugins.nix @@ -21,5 +21,11 @@ with lib.my; version = mkVersionInput inputs.telekasten-nvim; src = inputs.telekasten-nvim; }; + + hmts-nvim = prev.vimUtils.buildVimPluginFrom2Nix { + pname = "hmts-nvim"; + version = mkVersionInput inputs.hmts-nvim; + src = inputs.hmts-nvim; + }; }; } From 1566dc84f41b449f622728f27064b4fc84a538aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Fri, 11 Aug 2023 19:00:11 +0200 Subject: [PATCH 40/64] refactor(nvim): condense functions --- modules/programs/nvim/default.nix | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/modules/programs/nvim/default.nix b/modules/programs/nvim/default.nix index c7983f1..f39da7c 100644 --- a/modules/programs/nvim/default.nix +++ b/modules/programs/nvim/default.nix @@ -24,38 +24,28 @@ let then func else abort "Either cmd or function must be set" ); + descString = optionalString (desc != null) "desc = ${quote desc},"; in - ''{ ${quote key}, ${cmdString}, mode = ${quote mode}, ${optionalString (desc != null) "desc = ${quote desc},"} }''; + ''{ ${quote key}, ${cmdString}, mode = ${quote mode}, ${descString} }''; lazySpecFromPlugin = - { plugin - , dependencies - , init - , conf - , lazy - , event - , enabled - , cmd - , ft - , priority - , keys - }: - listToStringMultiLine id + { plugin, dependencies, init, conf, lazy, event, enabled, cmd, ft, priority, keys }: + listToStringMultiLine' ([ "dir = ${quote plugin}" "name = ${quote (getName plugin)}" ] ++ (optional (lazy != null) "lazy = ${boolToString lazy}") ++ (optional (!enabled) "enabled = ${boolToString enabled}") - ++ (optional (dependencies != [ ]) "dependencies = ${listToStringMultiLine id (map lazySpecFromPlugin dependencies)}") + ++ (optional (dependencies != [ ]) "dependencies = ${listToStringMultiLine' (map lazySpecFromPlugin dependencies)}") ++ (optional (init != null) "init = function(plugin)\n${toString init}\nend") ++ (optional (conf != null) "config = function(plugin, opts)\n${toString conf}\nend") - ++ (optional (keys != [ ]) "keys = ${listToStringMultiLine id (map keybinding keys)}") + ++ (optional (keys != [ ]) "keys = ${listToStringMultiLine' (map keybinding keys)}") ++ (optional (event != [ ]) "event = ${listToStringOneLine quote event}") ++ (optional (cmd != [ ]) "cmd = ${listToStringOneLine quote cmd}") ++ (optional (ft != [ ]) "ft = ${listToStringOneLine quote ft}") ++ (optional (priority != null) "priority = ${toString priority}") ); - lazySpecs = listToStringMultiLine id (map lazySpecFromPlugin cfg.plugins); + lazySpecs = listToStringMultiLine' (map lazySpecFromPlugin cfg.plugins); lazy = /* lua */ '' require("lazy").setup(${lazySpecs}) ''; From d6b95fdef6c04fcb3c5735772beb36a6a359befb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Fri, 11 Aug 2023 19:00:43 +0200 Subject: [PATCH 41/64] feat(nvim): add lsp inlay hints --- modules/programs/nvim/plugins/nvim-lspconfig.lua | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/modules/programs/nvim/plugins/nvim-lspconfig.lua b/modules/programs/nvim/plugins/nvim-lspconfig.lua index 12f12db..d2ab5b5 100644 --- a/modules/programs/nvim/plugins/nvim-lspconfig.lua +++ b/modules/programs/nvim/plugins/nvim-lspconfig.lua @@ -54,7 +54,7 @@ capabilities.textDocument.foldingRange = { require("ufo").setup() local lspconfig = require("lspconfig") -local on_attach_def = function(_, bufnr) +local on_attach_def = function(client, bufnr) require("which-key").register({ K = { vim.lsp.buf.hover, "Hover" }, [""] = { @@ -71,7 +71,13 @@ local on_attach_def = function(_, bufnr) }, }, t = { - l = { lsp_lines.toggle, "Lsp lines" }, + l = { lsp_lines.toggle, "LSP lines" }, + i = { + function() + vim.lsp.inlay_hint(bufnr, nil) + end, + "LSP inlay hints", + }, }, }, g = { @@ -99,6 +105,12 @@ local on_attach_def = function(_, bufnr) d = { vim.diagnostic.goto_next, "Next diagnostic" }, }, }, { buffer = bufnr, silent = true }) + + if client.server_capabilities.inlayHintProvider then + vim.defer_fn(function() + vim.lsp.inlay_hint(bufnr, true) + end, 1000) + end end local lspconfig_default_options = { From 403d88f161c0667be93e3f815756cd2db8152a3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sat, 12 Aug 2023 08:05:05 +0200 Subject: [PATCH 42/64] feat(nvim): improve inlay hint startup Rust analyzer seems to be one of the few lsp servers which needs a small timeout for inlay hints to show up correctly. All other servers get their inlay hints activated without delay. --- modules/programs/nvim/plugins/nvim-lspconfig.lua | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/modules/programs/nvim/plugins/nvim-lspconfig.lua b/modules/programs/nvim/plugins/nvim-lspconfig.lua index d2ab5b5..e663322 100644 --- a/modules/programs/nvim/plugins/nvim-lspconfig.lua +++ b/modules/programs/nvim/plugins/nvim-lspconfig.lua @@ -107,9 +107,13 @@ local on_attach_def = function(client, bufnr) }, { buffer = bufnr, silent = true }) if client.server_capabilities.inlayHintProvider then + local slow_lsp_servers = { + "rust_analyzer", + } + local timeout = vim.tbl_contains(slow_lsp_servers, client.name, {}) and 500 or 0 vim.defer_fn(function() vim.lsp.inlay_hint(bufnr, true) - end, 1000) + end, timeout) end end @@ -173,6 +177,9 @@ lspconfig_setup("lua_ls", { format = { enable = false, }, + hint = { + enable = true, + }, }, }, }) From 55d8df866bb6f1823586ac2609ba4346028eb47e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sat, 12 Aug 2023 08:07:33 +0200 Subject: [PATCH 43/64] feat(nvim): add neodev.nvim --- modules/programs/nvim/plugins/default.nix | 14 +++++++++++++- modules/programs/nvim/plugins/nvim-lspconfig.lua | 1 + 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/modules/programs/nvim/plugins/default.nix b/modules/programs/nvim/plugins/default.nix index 9d4c4fe..68088b8 100644 --- a/modules/programs/nvim/plugins/default.nix +++ b/modules/programs/nvim/plugins/default.nix @@ -123,7 +123,6 @@ with builtins; ]; } { plugin = which-key-nvim; } - { plugin = lspkind-nvim; } { plugin = lsp_lines-nvim; } { plugin = nvim-ufo; @@ -131,6 +130,19 @@ with builtins; { plugin = promise-async; } ]; } + { + plugin = neodev-nvim; + conf = /* lua */ '' + require("neodev").setup({ + override = function(root_dir, library) + if root_dir:find("/home/moritz/.dotfiles/", 1, true) == 1 then + library.enabled = true + library.plugins = true + end + end, + }) + ''; + } ]; } { diff --git a/modules/programs/nvim/plugins/nvim-lspconfig.lua b/modules/programs/nvim/plugins/nvim-lspconfig.lua index e663322..7fbc917 100644 --- a/modules/programs/nvim/plugins/nvim-lspconfig.lua +++ b/modules/programs/nvim/plugins/nvim-lspconfig.lua @@ -160,6 +160,7 @@ lspconfig_setup("lua_ls", { runtime = { -- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim) version = "LuaJIT", + path = vim.split(package.path, ";"), }, diagnostics = { -- Get the language server to recognize the `vim` global From d7cdc05b3d22e838c985b7a64dc0e00d2ab0f39c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sat, 12 Aug 2023 09:43:13 +0200 Subject: [PATCH 44/64] refator(nvim): move neodev config to seperate file --- modules/programs/nvim/plugins/default.nix | 11 +---------- modules/programs/nvim/plugins/neodev-nvim.lua | 8 ++++++++ 2 files changed, 9 insertions(+), 10 deletions(-) create mode 100644 modules/programs/nvim/plugins/neodev-nvim.lua diff --git a/modules/programs/nvim/plugins/default.nix b/modules/programs/nvim/plugins/default.nix index 68088b8..7e61acc 100644 --- a/modules/programs/nvim/plugins/default.nix +++ b/modules/programs/nvim/plugins/default.nix @@ -132,16 +132,7 @@ with builtins; } { plugin = neodev-nvim; - conf = /* lua */ '' - require("neodev").setup({ - override = function(root_dir, library) - if root_dir:find("/home/moritz/.dotfiles/", 1, true) == 1 then - library.enabled = true - library.plugins = true - end - end, - }) - ''; + conf = readFile ./neodev-nvim.lua; } ]; } diff --git a/modules/programs/nvim/plugins/neodev-nvim.lua b/modules/programs/nvim/plugins/neodev-nvim.lua new file mode 100644 index 0000000..a63e89a --- /dev/null +++ b/modules/programs/nvim/plugins/neodev-nvim.lua @@ -0,0 +1,8 @@ +require("neodev").setup({ + override = function(root_dir, library) + if root_dir:find("/home/moritz/.dotfiles/", 1, true) == 1 then + library.enabled = true + library.plugins = true + end + end, +}) From 20e9a91d91bc2239d49d7364a8a1261ad473e065 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sat, 12 Aug 2023 11:50:46 +0200 Subject: [PATCH 45/64] feat(nvim): improve ufo --- modules/programs/nvim/plugins/default.nix | 3 +- .../programs/nvim/plugins/nvim-lspconfig.lua | 51 ++-------- modules/programs/nvim/plugins/nvim-ufo.lua | 98 +++++++++++++++++++ 3 files changed, 110 insertions(+), 42 deletions(-) create mode 100644 modules/programs/nvim/plugins/nvim-ufo.lua diff --git a/modules/programs/nvim/plugins/default.nix b/modules/programs/nvim/plugins/default.nix index 7e61acc..3118eb9 100644 --- a/modules/programs/nvim/plugins/default.nix +++ b/modules/programs/nvim/plugins/default.nix @@ -111,7 +111,7 @@ with builtins; } { plugin = nvim-lspconfig; - event = [ "BufReadPre" "BufNewFile" ]; + event = [ "BufRead" "BufNewFile" ]; conf = readFile ./nvim-lspconfig.lua; dependencies = [ { @@ -126,6 +126,7 @@ with builtins; { plugin = lsp_lines-nvim; } { plugin = nvim-ufo; + conf = readFile ./nvim-ufo.lua; dependencies = [ { plugin = promise-async; } ]; diff --git a/modules/programs/nvim/plugins/nvim-lspconfig.lua b/modules/programs/nvim/plugins/nvim-lspconfig.lua index 7fbc917..81a1421 100644 --- a/modules/programs/nvim/plugins/nvim-lspconfig.lua +++ b/modules/programs/nvim/plugins/nvim-lspconfig.lua @@ -5,58 +5,27 @@ vim.diagnostic.config({ virtual_text = false, }) -vim.o.foldcolumn = "1" -- '0' is not bad -vim.o.foldlevel = 99 -- Using ufo provider need a large value, feel free to decrease the value -vim.o.foldlevelstart = 99 -vim.o.foldenable = true -vim.o.fillchars = [[eob: ,fold: ,foldopen:,foldsep: ,foldclose:]] -vim.o.statuscolumn = "%= " - -- FIXME: figure out how to put on the other side without having to do a lot of shifting - .. "%s" -- sign column - .. "%{%" -- evaluate this, and then evaluate what it returns - .. "&number ?" - .. "(v:relnum ?" - -- when showing relative numbers, make sure to pad so things don't shift as you move the cursor - .. 'printf("%"..len(line("$")).."s", v:relnum)' - .. ":" - .. "v:lnum" - .. ")" - .. ":" - .. '""' - .. " " -- space between lines and fold - .. "%}" - .. "%= " - .. "%#FoldColumn#" -- highlight group for fold - .. "%{" -- expression for showing fold expand/colapse - .. "foldlevel(v:lnum) > foldlevel(v:lnum - 1)" -- any folds? - .. "? (foldclosed(v:lnum) == -1" -- currently open? - .. '? ""' -- point down - .. ': ""' -- point to right - .. ")" - .. ': " "' -- blank for no fold, or inside fold - .. "}" - .. "%= " -- spacing between end of column and start of text - --- Using ufo provider need remap `zR` and `zM`. If Neovim is 0.6.1, remap yourself -require("which-key").register({ - z = { - R = { require("ufo").openAllFolds, "Open all folds" }, - M = { require("ufo").closeAllFolds, "Close all folds" }, - }, -}) local capabilities = vim.lsp.protocol.make_client_capabilities() +-- NOTE for nvim-ufo -- Tell the server the capability of foldingRange, -- Neovim hasn't added foldingRange to default capabilities, users must add it manually capabilities.textDocument.foldingRange = { dynamicRegistration = false, lineFoldingOnly = true, } -require("ufo").setup() local lspconfig = require("lspconfig") local on_attach_def = function(client, bufnr) require("which-key").register({ - K = { vim.lsp.buf.hover, "Hover" }, + K = { + function() + local winid = require("ufo").peekFoldedLinesUnderCursor() + if not winid then + vim.lsp.buf.hover() + end + end, + "Hover", + }, [""] = { l = { d = { vim.diagnostic.open_float, "Open diagnostic window" }, diff --git a/modules/programs/nvim/plugins/nvim-ufo.lua b/modules/programs/nvim/plugins/nvim-ufo.lua new file mode 100644 index 0000000..3bdedeb --- /dev/null +++ b/modules/programs/nvim/plugins/nvim-ufo.lua @@ -0,0 +1,98 @@ +vim.o.foldcolumn = "1" -- '0' is not bad +vim.o.foldlevel = 99 -- Using ufo provider need a large value, feel free to decrease the value +vim.o.foldlevelstart = 99 +vim.o.foldenable = true +vim.o.fillchars = [[eob: ,fold: ,foldopen:,foldsep: ,foldclose:]] +vim.o.statuscolumn = "%s" -- sign column + .. "%=" + .. "%{%" -- evaluate this, and then evaluate what it returns + .. "&number ?" + .. "(v:relnum ?" + -- when showing relative numbers, make sure to pad so things don't shift as you move the cursor + .. 'printf("%"..len(line("$")).."s", v:relnum)' + .. ":" + .. "v:lnum" + .. ")" + .. ":" + .. '""' + .. "%}" + .. "%#FoldColumn#" -- highlight group for fold + .. "%{" -- expression for showing fold expand/colapse + .. "foldlevel(v:lnum) > foldlevel(v:lnum - 1)" -- any folds? + .. "? (foldclosed(v:lnum) == -1" -- currently open? + .. '? ""' -- point down + .. ': ""' -- point to right + .. ")" + .. ': " "' -- blank for no fold, or inside fold + .. "}" + .. " " + +local ftMap = { + vim = "indent", + python = { "indent" }, + git = "", +} + +---@param bufnr number +---@return Promise +local function customizeSelector(bufnr) + local function handleFallbackException(err, providerName) + if type(err) == "string" and err:match("UfoFallbackException") then + return require("ufo").getFolds(bufnr, providerName) + else + return require("promise").reject(err) + end + end + + return require("ufo") + .getFolds(bufnr, "lsp") + :catch(function(err) + return handleFallbackException(err, "treesitter") + end) + :catch(function(err) + return handleFallbackException(err, "indent") + end) +end + +local handler = function(virtText, lnum, endLnum, width, truncate) + local newVirtText = {} + local suffix = ("  %d "):format(endLnum - lnum) + local sufWidth = vim.fn.strdisplaywidth(suffix) + local targetWidth = width - sufWidth + local curWidth = 0 + for _, chunk in ipairs(virtText) do + local chunkText = chunk[1] + local chunkWidth = vim.fn.strdisplaywidth(chunkText) + if targetWidth > curWidth + chunkWidth then + table.insert(newVirtText, chunk) + else + chunkText = truncate(chunkText, targetWidth - curWidth) + local hlGroup = chunk[2] + table.insert(newVirtText, { chunkText, hlGroup }) + chunkWidth = vim.fn.strdisplaywidth(chunkText) + -- str width returned from truncate() may less than 2nd argument, need padding + if curWidth + chunkWidth < targetWidth then + suffix = suffix .. (" "):rep(targetWidth - curWidth - chunkWidth) + end + break + end + curWidth = curWidth + chunkWidth + end + table.insert(newVirtText, { suffix, "MoreMsg" }) + return newVirtText +end + +require("ufo").setup({ + provider_selector = function(_, filetype, _) + return ftMap[filetype] or customizeSelector + end, + fold_virt_text_handler = handler, +}) + +-- Using ufo provider need remap `zR` and `zM`. If Neovim is 0.6.1, remap yourself +require("which-key").register({ + z = { + R = { require("ufo").openAllFolds, "Open all folds" }, + M = { require("ufo").closeAllFolds, "Close all folds" }, + }, +}) From 7d1ae8c1f4c3280b20a724f5dc68181ca3ad30db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sat, 12 Aug 2023 16:46:45 +0200 Subject: [PATCH 46/64] feat(nvim): add inc-rename.nvim --- modules/programs/nvim/plugins/default.nix | 13 +++++++++++++ modules/programs/nvim/plugins/nvim-lspconfig.lua | 9 ++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/modules/programs/nvim/plugins/default.nix b/modules/programs/nvim/plugins/default.nix index 3118eb9..55ba586 100644 --- a/modules/programs/nvim/plugins/default.nix +++ b/modules/programs/nvim/plugins/default.nix @@ -135,6 +135,19 @@ with builtins; plugin = neodev-nvim; conf = readFile ./neodev-nvim.lua; } + { + plugin = inc-rename-nvim; + conf = /* lua */ '' + require("inc_rename").setup { + input_buffer_type = "dressing", + } + ''; + dependencies = [ + { + plugin = dressing-nvim; + } + ]; + } ]; } { diff --git a/modules/programs/nvim/plugins/nvim-lspconfig.lua b/modules/programs/nvim/plugins/nvim-lspconfig.lua index 81a1421..97b4de3 100644 --- a/modules/programs/nvim/plugins/nvim-lspconfig.lua +++ b/modules/programs/nvim/plugins/nvim-lspconfig.lua @@ -28,9 +28,16 @@ local on_attach_def = function(client, bufnr) }, [""] = { l = { + name = "lsp", d = { vim.diagnostic.open_float, "Open diagnostic window" }, c = { vim.lsp.buf.code_action, "Code action" }, - r = { vim.lsp.buf.rename, "Rename" }, + r = { + function() + return ":IncRename " .. vim.fn.expand("") + end, + "Rename", + expr = true, + }, f = { function() vim.lsp.buf.format({ async = true }) From 8768b58ce18e363a2351d39ce0444853b285982e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sat, 12 Aug 2023 16:51:16 +0200 Subject: [PATCH 47/64] feat(nvim): add statuscol-nvim --- modules/programs/nvim/plugins/default.nix | 5 ++++ modules/programs/nvim/plugins/nvim-ufo.lua | 24 ------------------- .../programs/nvim/plugins/statuscol-nvim.lua | 22 +++++++++++++++++ 3 files changed, 27 insertions(+), 24 deletions(-) create mode 100644 modules/programs/nvim/plugins/statuscol-nvim.lua diff --git a/modules/programs/nvim/plugins/default.nix b/modules/programs/nvim/plugins/default.nix index 55ba586..51a6b45 100644 --- a/modules/programs/nvim/plugins/default.nix +++ b/modules/programs/nvim/plugins/default.nix @@ -150,6 +150,11 @@ with builtins; } ]; } + { + plugin = statuscol-nvim; + event = [ "VeryLazy" ]; + conf = readFile ./statuscol-nvim.lua; + } { plugin = vim-fugitive; event = [ "VeryLazy" ]; diff --git a/modules/programs/nvim/plugins/nvim-ufo.lua b/modules/programs/nvim/plugins/nvim-ufo.lua index 3bdedeb..2399582 100644 --- a/modules/programs/nvim/plugins/nvim-ufo.lua +++ b/modules/programs/nvim/plugins/nvim-ufo.lua @@ -2,30 +2,6 @@ vim.o.foldcolumn = "1" -- '0' is not bad vim.o.foldlevel = 99 -- Using ufo provider need a large value, feel free to decrease the value vim.o.foldlevelstart = 99 vim.o.foldenable = true -vim.o.fillchars = [[eob: ,fold: ,foldopen:,foldsep: ,foldclose:]] -vim.o.statuscolumn = "%s" -- sign column - .. "%=" - .. "%{%" -- evaluate this, and then evaluate what it returns - .. "&number ?" - .. "(v:relnum ?" - -- when showing relative numbers, make sure to pad so things don't shift as you move the cursor - .. 'printf("%"..len(line("$")).."s", v:relnum)' - .. ":" - .. "v:lnum" - .. ")" - .. ":" - .. '""' - .. "%}" - .. "%#FoldColumn#" -- highlight group for fold - .. "%{" -- expression for showing fold expand/colapse - .. "foldlevel(v:lnum) > foldlevel(v:lnum - 1)" -- any folds? - .. "? (foldclosed(v:lnum) == -1" -- currently open? - .. '? ""' -- point down - .. ': ""' -- point to right - .. ")" - .. ': " "' -- blank for no fold, or inside fold - .. "}" - .. " " local ftMap = { vim = "indent", diff --git a/modules/programs/nvim/plugins/statuscol-nvim.lua b/modules/programs/nvim/plugins/statuscol-nvim.lua new file mode 100644 index 0000000..b1e1eb1 --- /dev/null +++ b/modules/programs/nvim/plugins/statuscol-nvim.lua @@ -0,0 +1,22 @@ +vim.o.fillchars = [[eob: ,fold: ,foldopen:,foldsep: ,foldclose:]] +local builtin = require("statuscol.builtin") +require("statuscol").setup({ + segments = { + { + sign = { name = { ".*" }, auto = true }, + click = "v:lua.ScSa", + }, + { + text = { builtin.lnumfunc }, + click = "v:lua.ScLa", + }, + { + sign = { name = { "GitSigns" }, auto = true }, + click = "v:lua.ScSa", + }, + { + text = { builtin.foldfunc, " " }, + click = "v:lua.ScFa", + }, + }, +}) From c99fb04f29877a1fe383af36eeba76b50ecc81dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Mon, 14 Aug 2023 08:46:19 +0200 Subject: [PATCH 48/64] feat: add timers service --- flake.lock | 104 ++++++++++++++++++++++++++++++++++- flake.nix | 2 + modules/profiles/desktop.nix | 1 + modules/services/timers.nix | 32 +++++++++++ overlays/packages.nix | 1 + 5 files changed, 139 insertions(+), 1 deletion(-) create mode 100644 modules/services/timers.nix diff --git a/flake.lock b/flake.lock index 14e7bc4..e88cba3 100644 --- a/flake.lock +++ b/flake.lock @@ -533,6 +533,25 @@ "type": "github" } }, + "naersk": { + "inputs": { + "nixpkgs": "nixpkgs_8" + }, + "locked": { + "lastModified": 1686572087, + "narHash": "sha256-jXTut7ZSYqLEgm/nTk7TuVL2ExahTip605bLINklAnQ=", + "owner": "nix-community", + "repo": "naersk", + "rev": "8507af04eb40c5520bd35d9ce6f9d2342cea5ad1", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "master", + "repo": "naersk", + "type": "github" + } + }, "neovim-flake": { "inputs": { "flake-utils": "flake-utils_2", @@ -788,6 +807,35 @@ "type": "github" } }, + "nixpkgs_8": { + "locked": { + "lastModified": 1685677062, + "narHash": "sha256-zoHF7+HNwNwne2XEomphbdc4Y8tdWT16EUxUTXpOKpQ=", + "path": "/nix/store/dnqwkazyg92hzya7400klxlk072g3zsk-source", + "rev": "95be94370d09f97f6af6a1df1eb9649b5260724e", + "type": "path" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "nixpkgs_9": { + "locked": { + "lastModified": 1687103638, + "narHash": "sha256-dwy/TK6Db5W7ivcgmcxUykhFwodIg0jrRzOFt7H5NUc=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "91430887645a0953568da2f3e9a3a3bb0a0378ac", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "nvim-treesitter-textsubjects": { "flake": false, "locked": { @@ -867,7 +915,8 @@ "rofi-wayland": "rofi-wayland", "smartcolumn-nvim": "smartcolumn-nvim", "stable": "stable", - "telekasten-nvim": "telekasten-nvim" + "telekasten-nvim": "telekasten-nvim", + "timers": "timers" } }, "rust-overlay": { @@ -972,6 +1021,21 @@ "type": "github" } }, + "systems_4": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "telekasten-nvim": { "flake": false, "locked": { @@ -988,6 +1052,44 @@ "type": "github" } }, + "timers": { + "inputs": { + "naersk": "naersk", + "nixpkgs": "nixpkgs_9", + "utils": "utils" + }, + "locked": { + "lastModified": 1690749969, + "narHash": "sha256-legyKOJljfuNrY74jsgA641E3q6hle4G6qz8YD55CgI=", + "ref": "refs/heads/main", + "rev": "e3fd65e98be42b367aef019812375e418ef77448", + "revCount": 18, + "type": "git", + "url": "https://gitea.moritzboeh.me/moritz/timers.git" + }, + "original": { + "type": "git", + "url": "https://gitea.moritzboeh.me/moritz/timers.git" + } + }, + "utils": { + "inputs": { + "systems": "systems_4" + }, + "locked": { + "lastModified": 1687171271, + "narHash": "sha256-BJlq+ozK2B1sJDQXS3tzJM5a+oVZmi1q0FlBK/Xqv7M=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "abfb11bd1aec8ced1c9bb9adfe68018230f4fb3c", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "wlroots": { "flake": false, "locked": { diff --git a/flake.nix b/flake.nix index 42191c8..bf9e85c 100644 --- a/flake.nix +++ b/flake.nix @@ -68,6 +68,8 @@ # Firefox user.js arkenfox-userjs.url = "github:arkenfox/user.js"; arkenfox-userjs.flake = false; + + timers.url = "git+https://gitea.moritzboeh.me/moritz/timers.git"; }; /* diff --git a/modules/profiles/desktop.nix b/modules/profiles/desktop.nix index 5fcd3f1..f23ec05 100644 --- a/modules/profiles/desktop.nix +++ b/modules/profiles/desktop.nix @@ -78,6 +78,7 @@ in }; }; }; + timers.enable = true; wireguard.enable = true; }; }; diff --git a/modules/services/timers.nix b/modules/services/timers.nix new file mode 100644 index 0000000..52c4260 --- /dev/null +++ b/modules/services/timers.nix @@ -0,0 +1,32 @@ +{ config +, lib +, pkgs +, ... +}: + +with lib; +let + cfg = config.my.services.timers; +in +{ + options.my.services.timers.enable = mkEnableOption "timers"; + options.my.services.timers.package = mkOption { + type = types.package; + default = pkgs.timers; + }; + + config = lib.mkIf cfg.enable { + environment.systemPackages = [ cfg.package ]; + + systemd.user.services.timers-daemon = { + after = [ "graphical-session.target" ]; + partOf = [ "graphical-session.target" ]; + wantedBy = [ "graphical-session.target" ]; + serviceConfig = { + Restart = "always"; + RestartSec = "1s"; + ExecStart = "${getExe cfg.package} daemon"; + }; + }; + }; +} diff --git a/overlays/packages.nix b/overlays/packages.nix index e56b410..ceef671 100644 --- a/overlays/packages.nix +++ b/overlays/packages.nix @@ -10,6 +10,7 @@ final: prev: src = inputs.rofi-wayland; version = lib.my.mkVersionInput inputs.rofi-wayland; }); + timers = inputs.timers.defaultPackage.${prev.system}; fzf1 = final.writeShellApplication { name = "fzf1"; From d17f034e349a1862db92d25776da17fabae3611d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Wed, 16 Aug 2023 16:41:12 +0200 Subject: [PATCH 49/64] refactor(nvim): change up keybindings --- modules/programs/nvim/plugins/default.nix | 2 -- .../programs/nvim/plugins/gitsigns-nvim.lua | 21 +++++++------------ modules/programs/nvim/plugins/oil-nvim.lua | 2 +- 3 files changed, 8 insertions(+), 17 deletions(-) diff --git a/modules/programs/nvim/plugins/default.nix b/modules/programs/nvim/plugins/default.nix index 51a6b45..4c5ef76 100644 --- a/modules/programs/nvim/plugins/default.nix +++ b/modules/programs/nvim/plugins/default.nix @@ -201,8 +201,6 @@ with builtins; { key = "sk"; cmd = "Telescope keymaps"; desc = "Keymaps"; } { key = "ss"; cmd = "Telescope lsp_document_symbols"; desc = "Symbols (Document)"; } { key = "sS"; cmd = "Telescope lsp_workspace_symbols"; desc = "Symbols (Workspace)"; } - { key = "gc"; cmd = "Telescope git_commits"; desc = "Commits"; } - { key = "gs"; cmd = "Telescope git_status"; desc = "Status"; } ]; dependencies = [ { plugin = plenary-nvim; } diff --git a/modules/programs/nvim/plugins/gitsigns-nvim.lua b/modules/programs/nvim/plugins/gitsigns-nvim.lua index 3cdce95..1a17a9b 100644 --- a/modules/programs/nvim/plugins/gitsigns-nvim.lua +++ b/modules/programs/nvim/plugins/gitsigns-nvim.lua @@ -1,22 +1,15 @@ require("gitsigns").setup() require("which-key").register({ - ["["] = { - h = { "Gitsigns prev_hunk", "Previous hunk" }, - }, - ["]"] = { - h = { "Gitsigns next_hunk", "Next hunk" }, - }, -}) -require("which-key").register({ - h = { - name = "hunk", + ["[h"] = { "Gitsigns prev_hunk", "Previous hunk" }, + ["]h"] = { "Gitsigns next_hunk", "Next hunk" }, + ["g"] = { s = { "Gitsigns stage_hunk", "Stage hunk", mode = { "n", "v" } }, r = { "Gitsigns reset_hunk", "Reset hunk", mode = { "n", "v" } }, S = { "Gitsigns stage_buffer", "Stage buffer" }, R = { "Gitsigns reset_buffer", "Reset buffer" }, u = { "Gitsigns undo_stage_hunk", "Undo stage hunk" }, + p = { "Gitsigns preview_hunk_inline", "Preview hunk (inline)" }, + P = { "Gitsigns preview_hunk", "Preview hunk (float)" }, }, -}, { prefix = "g" }) -require("which-key").register({ - h = { ":Gitsigns select_hunk", "Gitsigns select hunk" }, -}, { prefix = "i", mode = { "o", "x" } }) + ["ih"] = { ":Gitsigns select_hunk", "gitsigns hunk", mode = { "o", "x" } }, +}) diff --git a/modules/programs/nvim/plugins/oil-nvim.lua b/modules/programs/nvim/plugins/oil-nvim.lua index e2afffb..6c9c81e 100644 --- a/modules/programs/nvim/plugins/oil-nvim.lua +++ b/modules/programs/nvim/plugins/oil-nvim.lua @@ -1,4 +1,4 @@ require("oil").setup() require("which-key").register({ - d = { require("oil").toggle_float, "directory (oil)" }, + d = { require("oil").toggle_float, "Directory (oil)" }, }, { prefix = "t" }) From e0599018e229e26c0207be818599051f80f37dec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Wed, 16 Aug 2023 16:42:26 +0200 Subject: [PATCH 50/64] feat(nvim): add zenmode.nvim --- modules/programs/nvim/plugins/default.nix | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/modules/programs/nvim/plugins/default.nix b/modules/programs/nvim/plugins/default.nix index 4c5ef76..8fcc9e1 100644 --- a/modules/programs/nvim/plugins/default.nix +++ b/modules/programs/nvim/plugins/default.nix @@ -282,5 +282,14 @@ with builtins; plugin = hmts-nvim; ft = [ "nix" ]; } + { + plugin = zen-mode-nvim; + keys = [ + { key = "tz"; cmd = "ZenMode"; desc = "Zen mode"; } + ]; + dependencies = [ + { plugin = twilight-nvim; } + ]; + } ]; } From 4a5b007e006fd7a0d9b7084d3696881f1abf491f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Wed, 16 Aug 2023 16:43:35 +0200 Subject: [PATCH 51/64] fix(nvim): lspconfig for nil --- modules/programs/nvim/plugins/nvim-lspconfig.lua | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/programs/nvim/plugins/nvim-lspconfig.lua b/modules/programs/nvim/plugins/nvim-lspconfig.lua index 97b4de3..0c44ceb 100644 --- a/modules/programs/nvim/plugins/nvim-lspconfig.lua +++ b/modules/programs/nvim/plugins/nvim-lspconfig.lua @@ -13,6 +13,10 @@ capabilities.textDocument.foldingRange = { dynamicRegistration = false, lineFoldingOnly = true, } +-- NOTE https://github.com/neovim/neovim/pull/22405 +capabilities.didChangeWatchedFiles = { + dynamicRegistration = true, +} local lspconfig = require("lspconfig") local on_attach_def = function(client, bufnr) From 44a21426535aaf7966c967e958213edd317d137e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Wed, 16 Aug 2023 22:06:48 +0200 Subject: [PATCH 52/64] fix(nvim): eliminate duplicate keybind of --- modules/programs/nvim/plugins/coq-nvim.lua | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/programs/nvim/plugins/coq-nvim.lua b/modules/programs/nvim/plugins/coq-nvim.lua index 9946c3b..63536a8 100644 --- a/modules/programs/nvim/plugins/coq-nvim.lua +++ b/modules/programs/nvim/plugins/coq-nvim.lua @@ -1,3 +1,6 @@ vim.g.coq_settings = { auto_start = "shut-up", + keymap = { + jump_to_mark = "", + }, } From d4eb17856e72fa53429881a7f08aecc8613895fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Thu, 17 Aug 2023 16:26:21 +0200 Subject: [PATCH 53/64] build(flake)!: update inputs --- flake.lock | 188 +++++++++++++++----------- modules/profiles/base.nix | 2 +- modules/programs/hyprland/_config.nix | 14 +- modules/programs/hyprland/default.nix | 2 +- 4 files changed, 115 insertions(+), 91 deletions(-) diff --git a/flake.lock b/flake.lock index 93f6319..6a0eb62 100644 --- a/flake.lock +++ b/flake.lock @@ -9,11 +9,11 @@ ] }, "locked": { - "lastModified": 1689334118, - "narHash": "sha256-djk5AZv1yU84xlKFaVHqFWvH73U7kIRstXwUAnDJPsk=", + "lastModified": 1690228878, + "narHash": "sha256-9Xe7JV0krp4RJC9W9W9WutZVlw6BlHTFMiUP/k48LQY=", "owner": "ryantm", "repo": "agenix", - "rev": "0d8c5325fc81daf00532e3e26c6752f7bcde1143", + "rev": "d8c973fd228949736dedf61b7f8cc1ece3236792", "type": "github" }, "original": { @@ -25,11 +25,11 @@ "arkenfox-userjs": { "flake": false, "locked": { - "lastModified": 1689799111, - "narHash": "sha256-JGucBOBTSYBapMrI7GCMAqTFaT1O7Kqw0S3uBtFawIo=", + "lastModified": 1691983650, + "narHash": "sha256-oA1bIpPc27Kk89n3JGpni7RkcIDRVAsTjUfjRHbKS24=", "owner": "arkenfox", "repo": "user.js", - "rev": "6151d664acced94364e7e3a075e6ac3ca555ef48", + "rev": "915f39959c7e077f00477e6ce34a0f9f9e3e7c6b", "type": "github" }, "original": { @@ -133,11 +133,11 @@ ] }, "locked": { - "lastModified": 1688466019, - "narHash": "sha256-VeM2akYrBYMsb4W/MmBo1zmaMfgbL4cH3Pu8PGyIwJ0=", + "lastModified": 1690933134, + "narHash": "sha256-ab989mN63fQZBFrkk4Q8bYxQCktuHmBIBqUG1jl6/FQ=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "8e8d955c22df93dbe24f19ea04f47a74adbdc5ec", + "rev": "59cf3f1447cfc75087e7273b04b31e689a8599fb", "type": "github" }, "original": { @@ -206,7 +206,7 @@ }, "flake-utils_2": { "inputs": { - "systems": "systems_2" + "systems": "systems_3" }, "locked": { "lastModified": 1685518550, @@ -224,7 +224,7 @@ }, "flake-utils_3": { "inputs": { - "systems": "systems_3" + "systems": "systems_4" }, "locked": { "lastModified": 1685518550, @@ -363,11 +363,11 @@ ] }, "locked": { - "lastModified": 1689875525, - "narHash": "sha256-fgUrFH3bMZ6R7qgBTfuTRGlkZXIkdyjndl6ZbExbjE8=", + "lastModified": 1692131549, + "narHash": "sha256-MFjI8NL63/6HjMZpvJgnB/Pgg2dht22t45jOYtipZig=", "owner": "nix-community", "repo": "home-manager", - "rev": "1443abd2696ec6bd6fb9701e6c26b277a27b4a3e", + "rev": "75cfe974e2ca05a61b66768674032b4c079e55d4", "type": "github" }, "original": { @@ -381,11 +381,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1688849364, - "narHash": "sha256-gW4x5YiCWFlckFiaLZo+RWJa1IyQ2Cx4jTrJzNy1OzQ=", + "lastModified": 1690635289, + "narHash": "sha256-ec77Yf7mqusmGkxrmYXEG4D0DqEcNRA3vFextWVQOVA=", "owner": "hyprwm", "repo": "contrib", - "rev": "3126196e7ed609e7c427a39dc126ea067de62a65", + "rev": "bef073cff65917ba2d888aa4dc39bd9868e2b0a4", "type": "github" }, "original": { @@ -398,15 +398,16 @@ "inputs": { "hyprland-protocols": "hyprland-protocols", "nixpkgs": "nixpkgs_2", + "systems": "systems_2", "wlroots": "wlroots", "xdph": "xdph" }, "locked": { - "lastModified": 1689879667, - "narHash": "sha256-g6XQ1slkxXw1kddaUKBwvYktIPJczSbZVoe4EzjNjD8=", + "lastModified": 1692182360, + "narHash": "sha256-FSJEeAQj0viz52+GE774GiOOtU0X2B2KgXnRCgogSaU=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "f864b15427b363443e767eb5e78f5dc9603c49f3", + "rev": "78fa8adadc146a7efeebf63438c1140662484fba", "type": "github" }, "original": { @@ -420,14 +421,18 @@ "nixpkgs": [ "hyprland", "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" ] }, "locked": { - "lastModified": 1684265364, - "narHash": "sha256-AxNnWbthsuNx73HDQr0eBxrcE3+yfl/WsaXZqUFmkpQ=", + "lastModified": 1691753796, + "narHash": "sha256-zOEwiWoXk3j3+EoF3ySUJmberFewWlagvewDRuWYAso=", "owner": "hyprwm", "repo": "hyprland-protocols", - "rev": "8c279b9fb0f2b031427dc5ef4eab53f2ed835530", + "rev": "0c2ce70625cb30aef199cb388f99e19a61a6ce03", "type": "github" }, "original": { @@ -441,11 +446,11 @@ "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1689547456, - "narHash": "sha256-jZQ377LqcazitvH2fVXKiL8kvmpGT3fuqev+yQqvuRw=", + "lastModified": 1691060455, + "narHash": "sha256-V5ulB9CkGh1ghiC4BKvRdoYKZzpaiOKzAOUmJIFkgM0=", "owner": "hyprwm", "repo": "hyprpaper", - "rev": "ac5f7b038d5ac589d32f5ae18f9745bfe5200618", + "rev": "e498c438b1e16dcf32ecb3030b20b83f7ed9ff6d", "type": "github" }, "original": { @@ -472,11 +477,11 @@ }, "master": { "locked": { - "lastModified": 1689880801, - "narHash": "sha256-jWeQSVczGNRNs48DWiAwb6ojKXb+woqoXoVsA1KwdUM=", + "lastModified": 1692198797, + "narHash": "sha256-4MwKoXIBfNI85zZ/tHyLT+M7sF2Zb0XoyhdXtlM6g2c=", "owner": "nixos", "repo": "nixpkgs", - "rev": "ebaae879a74f772ecc827d264e37960087a4b182", + "rev": "c85be71df497312de66b65df8d7ad7b5c0c81d04", "type": "github" }, "original": { @@ -514,11 +519,11 @@ }, "locked": { "dir": "contrib", - "lastModified": 1689785735, - "narHash": "sha256-QdjWbe4oNjIazmOrbJ9u5GadaqTV44RiYbiZoLgNKC8=", + "lastModified": 1692141167, + "narHash": "sha256-1My5JBKfHupN9D86eeX8JFr2Wk03qWJObk73NC1/x2s=", "owner": "neovim", "repo": "neovim", - "rev": "86ce3878d662c1dbfec61a5ad8e7c16c4283ed5c", + "rev": "f92bda1dad462de81ec92134dfa9ba637edc7bb7", "type": "github" }, "original": { @@ -537,11 +542,11 @@ "nixpkgs": "nixpkgs_5" }, "locked": { - "lastModified": 1689811489, - "narHash": "sha256-rQ1gnq+ApoowEic21nIYIeQ0Qibb3IEEtwv0LgNIYDc=", + "lastModified": 1692144319, + "narHash": "sha256-sJ7KT+dfLEQbsNI2G+ZLKQ0tIS72roMv+xjC+0bTS9k=", "owner": "nix-community", "repo": "neovim-nightly-overlay", - "rev": "65f2e8da89ba400e7bbad6fe2f51af0ed9f7e968", + "rev": "3632032784ed4a7f761a61a3337f2e1d61210eae", "type": "github" }, "original": { @@ -561,11 +566,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1689759503, - "narHash": "sha256-wFrcae6V58hIlDW+7NDoUXzXBmsU7W/k3V1KIePcwRA=", + "lastModified": 1691372739, + "narHash": "sha256-fZ8KfBMcIFO/R7xaWtB85SFeuUjb9SCH8fxYBnY8068=", "owner": "oxalica", "repo": "nil", - "rev": "59bcad0b13b5d77668c0c125fef71d7b41406d7a", + "rev": "97abe7d3d48721d4e0fcc1876eea83bb4247825b", "type": "github" }, "original": { @@ -665,11 +670,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1688500189, - "narHash": "sha256-djYYiY4lzJOlXOnTHytH6BUugrxHDZjuGxTSrU4gt4M=", + "lastModified": 1691654369, + "narHash": "sha256-gSILTEx1jRaJjwZxRlnu3ZwMn1FVNk80qlwiCX8kmpo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "78419edadf0fabbe5618643bd850b2f2198ed060", + "rev": "ce5e4a6ef2e59d89a971bc434ca8ca222b9c7f5e", "type": "github" }, "original": { @@ -713,11 +718,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1689752456, - "narHash": "sha256-VOChdECcEI8ixz8QY+YC4JaNEFwQd1V8bA0G4B28Ki0=", + "lastModified": 1692067901, + "narHash": "sha256-kq8Pf/nmlXECDWMkQSRGQkjWsA6G0pjzZkfUEaTmXJE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "7f256d7da238cb627ef189d56ed590739f42f13b", + "rev": "ea95c0917609e5c48023cc7c6141bea2fdf13970", "type": "github" }, "original": { @@ -729,11 +734,11 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1689752456, - "narHash": "sha256-VOChdECcEI8ixz8QY+YC4JaNEFwQd1V8bA0G4B28Ki0=", + "lastModified": 1692128808, + "narHash": "sha256-Di1Zm/P042NuwThMiZNrtmaAjd4Tm2qBOKHX7xUOfMk=", "owner": "nixos", "repo": "nixpkgs", - "rev": "7f256d7da238cb627ef189d56ed590739f42f13b", + "rev": "4ed9856be002a730234a1a1ed9dcd9dd10cbdb40", "type": "github" }, "original": { @@ -791,11 +796,11 @@ "nvim-treesitter-textsubjects": { "flake": false, "locked": { - "lastModified": 1676144693, - "narHash": "sha256-4jb9v0xpO17wp85dzojKUQ6hUdNBx3T2tB4fSWoANus=", + "lastModified": 1691029837, + "narHash": "sha256-O57pMYtDR713ItAeUfdkcl2IfBLQcLEa2sb+AXhaqDs=", "owner": "RRethy", "repo": "nvim-treesitter-textsubjects", - "rev": "b913508f503527ff540f7fe2dcf1bf1d1f259887", + "rev": "df75fcec548014f158cda6498ac38c4622c221e1", "type": "github" }, "original": { @@ -813,11 +818,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1689668210, - "narHash": "sha256-XAATwDkaUxH958yXLs1lcEOmU6pSEIkatY3qjqk8X0E=", + "lastModified": 1691747570, + "narHash": "sha256-J3fnIwJtHVQ0tK2JMBv4oAmII+1mCdXdpeCxtIsrL2A=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "eb433bff05b285258be76513add6f6c57b441775", + "rev": "c5ac3aa3324bd8aebe8622a3fc92eeb3975d317a", "type": "github" }, "original": { @@ -829,11 +834,11 @@ "rofi-wayland": { "flake": false, "locked": { - "lastModified": 1679493688, - "narHash": "sha256-8Hu9k84LNi+Gz8zJNE7AxYxmv8XXQz3cG7CFhv31fz4=", + "lastModified": 1690115482, + "narHash": "sha256-fUneGsSWpi8zYrTbF14e/fuf0vaXF8ckOo4OhL1tInM=", "owner": "lbonn", "repo": "rofi", - "rev": "d06095b5ed40e5d28236b7b7b575ca867696d847", + "rev": "ff2338c38fbf6e7049563acf55f9055bcf882a4e", "type": "github" }, "original": { @@ -896,11 +901,11 @@ "smartcolumn-nvim": { "flake": false, "locked": { - "lastModified": 1679417638, - "narHash": "sha256-DjPWBOLbzdfOQAx+6xgV1CD5NKuP1N6An2lmHNHd39Q=", + "lastModified": 1692020684, + "narHash": "sha256-lNEsAkKRpMgdO6Og0odpTn/t4qkzO7EuTjC5ABJhvXc=", "owner": "m4xshen", "repo": "smartcolumn.nvim", - "rev": "0c572e3eae48874f25b74394a486f38cadb5c958", + "rev": "4aa00ad766f3c0f0e2561e0eb42df3ea3743c135", "type": "github" }, "original": { @@ -911,11 +916,11 @@ }, "stable": { "locked": { - "lastModified": 1689680872, - "narHash": "sha256-brNix2+ihJSzCiKwLafbyejrHJZUP0Fy6z5+xMOC27M=", + "lastModified": 1692134936, + "narHash": "sha256-Z68O969cioC6I3k/AFBxsuEwpJwt4l9fzwuAMUhCCs0=", "owner": "nixos", "repo": "nixpkgs", - "rev": "08700de174bc6235043cb4263b643b721d936bdb", + "rev": "bfd953b2c6de4f550f75461bcc5768b6f966be10", "type": "github" }, "original": { @@ -942,16 +947,16 @@ }, "systems_2": { "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", "type": "github" }, "original": { "owner": "nix-systems", - "repo": "default", + "repo": "default-linux", "type": "github" } }, @@ -985,14 +990,29 @@ "type": "github" } }, + "systems_5": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "telekasten-nvim": { "flake": false, "locked": { - "lastModified": 1689074017, - "narHash": "sha256-yBw0Ja9xBhHcEdzvKvg6LCDzmIgW9kg0XaXS7hcr958=", + "lastModified": 1691743763, + "narHash": "sha256-zYBMUzanFtjnsUrwxjHLvhRODLj1uwGi18wMUWnrqRA=", "owner": "renerocksai", "repo": "telekasten.nvim", - "rev": "4a5e57eee9c5154ed77423bb7fa6619fdb0784cd", + "rev": "584783fdbdd13bb691a435f86ed10a3717fa9e9a", "type": "github" }, "original": { @@ -1008,11 +1028,11 @@ "utils": "utils" }, "locked": { - "lastModified": 1690749969, - "narHash": "sha256-legyKOJljfuNrY74jsgA641E3q6hle4G6qz8YD55CgI=", + "lastModified": 1692198673, + "narHash": "sha256-kLhdmJ4uI248caVxQhYSq+IA+xQHDcp5in4eI8sJphk=", "ref": "refs/heads/main", - "rev": "e3fd65e98be42b367aef019812375e418ef77448", - "revCount": 18, + "rev": "37dc5c727a3d73778d6ee9d63c1468357cf0ed72", + "revCount": 20, "type": "git", "url": "https://gitea.moritzboeh.me/moritz/timers.git" }, @@ -1023,7 +1043,7 @@ }, "utils": { "inputs": { - "systems": "systems_4" + "systems": "systems_5" }, "locked": { "lastModified": 1687171271, @@ -1043,18 +1063,18 @@ "flake": false, "locked": { "host": "gitlab.freedesktop.org", - "lastModified": 1689611045, - "narHash": "sha256-3RTOlQabkNetQ4O4UzSf57JPco9VGVHhSU1ls5uKBeE=", + "lastModified": 1691073628, + "narHash": "sha256-LlxE3o3UzRY7APYVLGNKM30DBMcDifCRIQiMVSbYLIc=", "owner": "wlroots", "repo": "wlroots", - "rev": "7791ffe0584c4ac13c170e1661ce33bdbd4a9b9e", + "rev": "c74f89d4f84bfed0284d3908aee5d207698c70c5", "type": "gitlab" }, "original": { "host": "gitlab.freedesktop.org", "owner": "wlroots", "repo": "wlroots", - "rev": "7791ffe0584c4ac13c170e1661ce33bdbd4a9b9e", + "rev": "c74f89d4f84bfed0284d3908aee5d207698c70c5", "type": "gitlab" } }, @@ -1067,14 +1087,18 @@ "nixpkgs": [ "hyprland", "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" ] }, "locked": { - "lastModified": 1685385764, - "narHash": "sha256-r+XMyOoRXq+hlfjayb+fyi9kq2JK48TrwuNIAXqlj7U=", + "lastModified": 1691841170, + "narHash": "sha256-RCTm1/MVWYPnReMgyp7tr2ogGYo/pvw38jZaFwemgPU=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "4d9ff0c17716936e0b5ca577a39e263633901ed1", + "rev": "57a3a41ba6b358109e4fc25c6a4706b5f7d93c6b", "type": "github" }, "original": { diff --git a/modules/profiles/base.nix b/modules/profiles/base.nix index d6d6523..1717f1f 100644 --- a/modules/profiles/base.nix +++ b/modules/profiles/base.nix @@ -130,7 +130,7 @@ in f ]; - fonts.fonts = with pkgs; [ + fonts.packages = with pkgs; [ (nerdfonts.override { fonts = [ "FiraCode" ]; }) diff --git a/modules/programs/hyprland/_config.nix b/modules/programs/hyprland/_config.nix index 67cd433..7ca6520 100644 --- a/modules/programs/hyprland/_config.nix +++ b/modules/programs/hyprland/_config.nix @@ -7,8 +7,6 @@ with lib; let cfg = config.my.programs.hyprland; - boolToYesNo = bool: if bool then "yes" else "no"; - mkRule = rule: windowRegexes: "windowrulev2 = ${rule},${concatStringsSep "," windowRegexes}"; mkRules = rules: windowRegexes: concatStringsSep "\n" (map (flip mkRule windowRegexes) rules); in @@ -58,12 +56,14 @@ in # See https://wiki.hyprland.org/Configuring/Variables/ for more rounding = 3 - blur = ${boolToYesNo cfg.blur} - blur_size = 3 - blur_passes = 3 - blur_new_optimizations = on + blur { + enabled = ${boolToString cfg.blur} + size = 3 + passes = 3 + new_optimizations = on + } - drop_shadow = ${boolToYesNo cfg.shadows} + drop_shadow = ${boolToString cfg.shadows} shadow_range = 10 shadow_render_power = 2 diff --git a/modules/programs/hyprland/default.nix b/modules/programs/hyprland/default.nix index d75333d..c9b387a 100644 --- a/modules/programs/hyprland/default.nix +++ b/modules/programs/hyprland/default.nix @@ -9,7 +9,7 @@ with lib; let cfg = config.my.programs.hyprland; - hyprland = pkgs.hyprland.override { nvidiaPatches = cfg.nvidiaSupport; }; + hyprland = pkgs.hyprland.override { enableNvidiaPatches = cfg.nvidiaSupport; }; in { options.my.programs.hyprland = { From 95cd9c247ea62453e354c13c474713110ceba20e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Thu, 17 Aug 2023 17:04:33 +0200 Subject: [PATCH 54/64] feat(kitty): use kitty opacity instead of hyprland --- modules/programs/hyprland/_config.nix | 12 +----------- modules/programs/kitty.nix | 1 + 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/modules/programs/hyprland/_config.nix b/modules/programs/hyprland/_config.nix index 7ca6520..c8b5aab 100644 --- a/modules/programs/hyprland/_config.nix +++ b/modules/programs/hyprland/_config.nix @@ -73,7 +73,7 @@ in animations { enabled = yes - # Some default Lanimations, see https://wiki.hyprland.org/Configuring/Animations/ for more + # see https://wiki.hyprland.org/Configuring/Animations/ for more bezier = sine, 0.445, 0.05, 0.55, 0.95 bezier = quad, 0.455, 0.03, 0.515, 0.955 @@ -120,16 +120,6 @@ in # windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more - ${optionalString cfg.blur '' - # Kitty - windowrulev2 = opacity 0.95 0.95, class:^kitty$ - - # Rofi - ${mkRules ["float" "opacity 0.85 0.85" "noborder"] ["class:^([rR]ofi)$"]} - - windowrulev2 = opacity 0.85 0.85, floating:1 - ''} - # Firefox Sharing Indicator ${mkRules ["float" "move 49% 40" "noborder" "nofullscreenrequest"] ["title:^(.*Sharing Indicator)$"]} diff --git a/modules/programs/kitty.nix b/modules/programs/kitty.nix index 1261a65..df34c20 100644 --- a/modules/programs/kitty.nix +++ b/modules/programs/kitty.nix @@ -21,6 +21,7 @@ in cursor_shape = "underline"; window_padding_width = 3; confirm_os_window_close = 0; + background_opacity = "0.92"; }; keybindings = { "ctrl+plus" = "change_font_size all +2.0"; From ee0568559a440f97fa58f23fe92d13f3d9445c0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Mon, 21 Aug 2023 10:47:52 +0200 Subject: [PATCH 55/64] fix(nvim): folding character --- modules/programs/nvim/plugins/nvim-ufo.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/programs/nvim/plugins/nvim-ufo.lua b/modules/programs/nvim/plugins/nvim-ufo.lua index 2399582..d940e0e 100644 --- a/modules/programs/nvim/plugins/nvim-ufo.lua +++ b/modules/programs/nvim/plugins/nvim-ufo.lua @@ -32,7 +32,7 @@ end local handler = function(virtText, lnum, endLnum, width, truncate) local newVirtText = {} - local suffix = ("  %d "):format(endLnum - lnum) + local suffix = (" 󰁂 %d "):format(endLnum - lnum) local sufWidth = vim.fn.strdisplaywidth(suffix) local targetWidth = width - sufWidth local curWidth = 0 From ec1a6acebc3effcca3f6655f7fcee20dede46592 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sat, 26 Aug 2023 11:35:11 +0200 Subject: [PATCH 56/64] refactor: nix-system commands --- modules/profiles/base.nix | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/modules/profiles/base.nix b/modules/profiles/base.nix index 1717f1f..102eb91 100644 --- a/modules/profiles/base.nix +++ b/modules/profiles/base.nix @@ -6,14 +6,20 @@ with lib; let - nom-system = pkgs.writeShellApplication { + nom-system = pkgs.writeFishApplication { name = "nom-system"; runtimeInputs = with pkgs; [ nix-output-monitor ]; - text = '' - nom build --no-link "/home/moritz/.dotfiles#nixosConfigurations.$(hostname).config.system.build.toplevel" + text = /* fish */ '' + nom build --no-link "/home/moritz/.dotfiles#nixosConfigurations.$(hostname).config.system.build.toplevel" $argv + ''; + }; + nom-system-command = name: command: pkgs.writeFishApplication { + inherit name; + runtimeInputs = with pkgs; [ nom-system nix ]; + text = /* fish */ '' + nom-system $argv && ${command} ''; }; - nom-system-command = command: "${nom-system}/bin/nom-system && ${command}"; f = pkgs.writeFishApplication { name = "f"; @@ -57,8 +63,6 @@ in mv = "mv -i"; cd = "__zoxide_z"; - nixos-switch = nom-system-command "sudo nixos-rebuild switch --flake ~/.dotfiles"; - nixos-boot = nom-system-command "sudo nixos-rebuild boot --flake ~/.dotfiles"; nixos-update = "pushd ~/.dotfiles && nix flake update && popd"; latexwatch = ''find -type f -name "*.tex" | entr -c latexmk -pdf -silent''; @@ -105,6 +109,8 @@ in bottom # nix + (nom-system-command "nixos-boot" "sudo nixos-rebuild boot --flake ~/.dotfiles") + (nom-system-command "nixos-switch" "sudo nixos-rebuild switch --flake ~/.dotfiles") comma nix-index nixpkgs-fmt From 92e2e149bcf8b2c3d93344c5ecd516c41a0f2bd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sat, 26 Aug 2023 11:37:18 +0200 Subject: [PATCH 57/64] refactor: move git ignore alias to own script --- modules/profiles/base.nix | 33 +++++++++++++++++++++++++++++++-- modules/programs/fish.nix | 18 ------------------ 2 files changed, 31 insertions(+), 20 deletions(-) diff --git a/modules/profiles/base.nix b/modules/profiles/base.nix index 102eb91..a5fa164 100644 --- a/modules/profiles/base.nix +++ b/modules/profiles/base.nix @@ -32,6 +32,34 @@ let complete -c f ''; }; + + gi = pkgs.writeFishApplication + { + name = "gi"; + runtimeInputs = with pkgs; [ fzf gum curl ]; + text = /* fish */ '' + set url https://www.gitignore.io/api + + if test (count $argv) -eq 0 + set choice ( curl -sL $url/list \ + | string split "," \ + | fzf -m \ + | string join "," ) + else + set choice (string join "," $argv[1..]) + end + + if gum confirm "Overwrite current .gitignore?" + curl -sL $url/$choice > .gitignore + else + curl -sL $url/$choice >> .gitignore + end + ''; + completions = /* fish */ '' + set args (curl -sL https://www.gitignore.io/api/list | string split ",") + complete -c gi -fa "$args" + ''; + }; in { users.users.moritz = { @@ -125,15 +153,16 @@ in duf entr exa + f + gi gparted neofetch reptyr ripgrep up + vim viu wget - vim - f ]; fonts.packages = with pkgs; [ diff --git a/modules/programs/fish.nix b/modules/programs/fish.nix index efc2dac..c9798c6 100644 --- a/modules/programs/fish.nix +++ b/modules/programs/fish.nix @@ -50,24 +50,6 @@ in ${exportedVariables} ''; functions = { - gi = '' - set url https://www.gitignore.io/api - - if test (count $argv) -eq 0 - set choice ( curl -sL $url/list \ - | string split "," \ - | ${getExe pkgs.fzf} -m \ - | string join "," ) - else - set choice (string join "," $argv[1..]) - end - - if ${getExe pkgs.gum} confirm "Overwrite current .gitignore?" - ${getExe pkgs.curl} -sL $url/$choice > .gitignore - else - ${getExe pkgs.curl} -sL $url/$choice >> .gitignore - end - ''; fish_greeting = ""; cheat = "cht.sh $argv | bat -p"; }; From e2b6699215ecea97fd8933fb3e30beba46a066bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sat, 26 Aug 2023 11:43:29 +0200 Subject: [PATCH 58/64] refactor: f script --- modules/profiles/base.nix | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/modules/profiles/base.nix b/modules/profiles/base.nix index a5fa164..043720b 100644 --- a/modules/profiles/base.nix +++ b/modules/profiles/base.nix @@ -24,12 +24,11 @@ let f = pkgs.writeFishApplication { name = "f"; runtimeInputs = with pkgs; [ fzf bat ]; - text = '' - #!/usr/bin/env fish - fzf --query "$argv" --multi --bind "enter:become($EDITOR {+})" --preview "bat --color=always --style=header,grid --line-range :500 {+}" - ''; - completions = '' - complete -c f + text = /* fish */ '' + fzf --query "$argv" \ + --multi \ + --bind "enter:become($EDITOR {+})" \ + --preview "bat --color=always --style=header,grid --line-range :500 {+}" ''; }; From 56abb0ce6476fff924758f854b9a2126b1d54c49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sat, 26 Aug 2023 11:43:56 +0200 Subject: [PATCH 59/64] feat: add which-nix script --- modules/profiles/base.nix | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/modules/profiles/base.nix b/modules/profiles/base.nix index 043720b..aefaac4 100644 --- a/modules/profiles/base.nix +++ b/modules/profiles/base.nix @@ -32,6 +32,17 @@ let ''; }; + which-nix = pkgs.writeFishApplication { + name = "which-nix"; + runtimeInputs = with pkgs; [ which coreutils-full ]; + text = /* fish */ '' + readlink -f (which $argv) + ''; + completions = /* fish */ '' + complete -c which-nix -fa '(__fish_complete_command)' + ''; + }; + gi = pkgs.writeFishApplication { name = "gi"; @@ -139,11 +150,12 @@ in (nom-system-command "nixos-boot" "sudo nixos-rebuild boot --flake ~/.dotfiles") (nom-system-command "nixos-switch" "sudo nixos-rebuild switch --flake ~/.dotfiles") comma + manix nix-index + nix-output-monitor nixpkgs-fmt statix - manix - nix-output-monitor + which-nix # other bat From 4b5e16454daa507339018e8791fc6b04db9aa024 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sat, 26 Aug 2023 11:44:35 +0200 Subject: [PATCH 60/64] feat(fish): add dockerCompat completions --- modules/programs/fish.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/programs/fish.nix b/modules/programs/fish.nix index c9798c6..fbb4c24 100644 --- a/modules/programs/fish.nix +++ b/modules/programs/fish.nix @@ -45,6 +45,7 @@ in # Completions complete -c c -kfa '(zoxide query -l | sed "s|$HOME|~|")' + ${optionalString config.virtualisation.podman.dockerCompat /* fish */ "complete -c docker -w podman"} # Variables ${exportedVariables} From 84934c6cd6bdf91d153ddc81f8e937ba38166948 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sat, 26 Aug 2023 11:45:21 +0200 Subject: [PATCH 61/64] feat: lower kitty transparency --- modules/programs/kitty.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/programs/kitty.nix b/modules/programs/kitty.nix index df34c20..a1e5b56 100644 --- a/modules/programs/kitty.nix +++ b/modules/programs/kitty.nix @@ -21,7 +21,7 @@ in cursor_shape = "underline"; window_padding_width = 3; confirm_os_window_close = 0; - background_opacity = "0.92"; + background_opacity = "0.9"; }; keybindings = { "ctrl+plus" = "change_font_size all +2.0"; From fc91521270df6b09f0e011f0f9475a8d4091c10a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sat, 26 Aug 2023 11:45:58 +0200 Subject: [PATCH 62/64] refactor: writeFishApplication body --- overlays/builders.nix | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/overlays/builders.nix b/overlays/builders.nix index 498ebcc..813b7d3 100644 --- a/overlays/builders.nix +++ b/overlays/builders.nix @@ -18,13 +18,11 @@ with final.lib; preferLocalBuild = false; text = '' #!${getExe final.fish} - '' + optionalString (runtimeInputs != [ ]) '' - export PATH="${makeBinPath runtimeInputs}:$PATH" - '' + '' + ${optionalString (runtimeInputs != [ ]) ''export PATH="${makeBinPath runtimeInputs}:$PATH"''} - ${content} - ''; + ${content} + ''; checkPhase = if checkPhase == null then '' @@ -35,9 +33,7 @@ with final.lib; else checkPhase; }; - script = fishFile "/bin/${name}" text; - completions_file = fishFile "/share/fish/vendor_completions.d/${name}.fish" completions; in final.symlinkJoin { From 67dd3bd65dad017c8b78147d307bdd9b75bf5abf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sat, 26 Aug 2023 11:47:07 +0200 Subject: [PATCH 63/64] build: update inputs --- flake.lock | 130 ++++++++++++-------------- modules/programs/hyprland/default.nix | 21 +---- overlays/packages.nix | 2 +- 3 files changed, 63 insertions(+), 90 deletions(-) diff --git a/flake.lock b/flake.lock index 6a0eb62..e03935e 100644 --- a/flake.lock +++ b/flake.lock @@ -191,11 +191,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1689068808, - "narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=", + "lastModified": 1692799911, + "narHash": "sha256-3eihraek4qL744EvQXsK1Ha6C3CR7nnT8X2qWap4RNk=", "owner": "numtide", "repo": "flake-utils", - "rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4", + "rev": "f9e7cf818399d17d347f847525c5a5a8032e4e44", "type": "github" }, "original": { @@ -322,11 +322,11 @@ "hmts-nvim": { "flake": false, "locked": { - "lastModified": 1691525513, - "narHash": "sha256-il5m+GlNt0FzZjefl1q8ZxWHg0+gQps0vigt+eoIy8A=", + "lastModified": 1692743873, + "narHash": "sha256-lfqJVj1HbFJ5H4mo6rKYrexaosqSh17+PQ9BWpcuxZI=", "owner": "calops", "repo": "hmts.nvim", - "rev": "594dd17c870afb7f6517723c8963f6eb144e3c0d", + "rev": "34b825bd1c9ec1b6e2952c111753e2eb286c9e07", "type": "github" }, "original": { @@ -363,11 +363,11 @@ ] }, "locked": { - "lastModified": 1692131549, - "narHash": "sha256-MFjI8NL63/6HjMZpvJgnB/Pgg2dht22t45jOYtipZig=", + "lastModified": 1692763155, + "narHash": "sha256-qMrGKZ8c/q/mHO3ZdrcBPwiVVXPLLgXjY98Ejqb5kAA=", "owner": "nix-community", "repo": "home-manager", - "rev": "75cfe974e2ca05a61b66768674032b4c079e55d4", + "rev": "6a20e40acaebf067da682661aa67da8b36812606", "type": "github" }, "original": { @@ -403,11 +403,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1692182360, - "narHash": "sha256-FSJEeAQj0viz52+GE774GiOOtU0X2B2KgXnRCgogSaU=", + "lastModified": 1692871050, + "narHash": "sha256-OJ/OkOLFn546rcXmj/3VEGlsPYjdXWAhEmjqdc6re6k=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "78fa8adadc146a7efeebf63438c1140662484fba", + "rev": "90c03e5bd2204ba6d1a0167c68f65b7a9231bef4", "type": "github" }, "original": { @@ -446,11 +446,11 @@ "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1691060455, - "narHash": "sha256-V5ulB9CkGh1ghiC4BKvRdoYKZzpaiOKzAOUmJIFkgM0=", + "lastModified": 1692480535, + "narHash": "sha256-3Q0Uz/JPW9USHyAmrzRl6KhZLqMYTWkmtL3RA+oAeVY=", "owner": "hyprwm", "repo": "hyprpaper", - "rev": "e498c438b1e16dcf32ecb3030b20b83f7ed9ff6d", + "rev": "5e73eb60552d48d55541c60f9a8da2b666003fe6", "type": "github" }, "original": { @@ -477,11 +477,11 @@ }, "master": { "locked": { - "lastModified": 1692198797, - "narHash": "sha256-4MwKoXIBfNI85zZ/tHyLT+M7sF2Zb0XoyhdXtlM6g2c=", + "lastModified": 1692893187, + "narHash": "sha256-Hbbp6bWQykkLsvzi7yo2KQme0oXCZkCdz9bBorcSKH4=", "owner": "nixos", "repo": "nixpkgs", - "rev": "c85be71df497312de66b65df8d7ad7b5c0c81d04", + "rev": "d240553dcc2180fe486155bea8a846d5941e168c", "type": "github" }, "original": { @@ -492,14 +492,17 @@ }, "naersk": { "inputs": { - "nixpkgs": "nixpkgs_8" + "nixpkgs": [ + "timers", + "nixpkgs" + ] }, "locked": { - "lastModified": 1686572087, - "narHash": "sha256-jXTut7ZSYqLEgm/nTk7TuVL2ExahTip605bLINklAnQ=", + "lastModified": 1692351612, + "narHash": "sha256-KTGonidcdaLadRnv9KFgwSMh1ZbXoR/OBmPjeNMhFwU=", "owner": "nix-community", "repo": "naersk", - "rev": "8507af04eb40c5520bd35d9ce6f9d2342cea5ad1", + "rev": "78789c30d64dea2396c9da516bbcc8db3a475207", "type": "github" }, "original": { @@ -519,11 +522,11 @@ }, "locked": { "dir": "contrib", - "lastModified": 1692141167, - "narHash": "sha256-1My5JBKfHupN9D86eeX8JFr2Wk03qWJObk73NC1/x2s=", + "lastModified": 1692744130, + "narHash": "sha256-Iod6+KGeWnX1SV4owXpSoC17iImCJjTq2iqEp6IRBZc=", "owner": "neovim", "repo": "neovim", - "rev": "f92bda1dad462de81ec92134dfa9ba637edc7bb7", + "rev": "6462ee1c10f9f1aa66ffc4d4fe1b7b3d9f0f91af", "type": "github" }, "original": { @@ -542,11 +545,11 @@ "nixpkgs": "nixpkgs_5" }, "locked": { - "lastModified": 1692144319, - "narHash": "sha256-sJ7KT+dfLEQbsNI2G+ZLKQ0tIS72roMv+xjC+0bTS9k=", + "lastModified": 1692749096, + "narHash": "sha256-XyFSBw3WMf5cTG9ImL6S/v9Aoawr38h/Fr1XIi7peEs=", "owner": "nix-community", "repo": "neovim-nightly-overlay", - "rev": "3632032784ed4a7f761a61a3337f2e1d61210eae", + "rev": "83d68ba72f3308b5c90b12fb40044c870903e6ee", "type": "github" }, "original": { @@ -589,11 +592,11 @@ "nixpkgs-regression": "nixpkgs-regression" }, "locked": { - "lastModified": 1689005785, - "narHash": "sha256-gxJmO6Y6L+iEgIhBlyOLlruQQqixERkWkByYSH4LaTg=", + "lastModified": 1691953666, + "narHash": "sha256-HxgMSgoM19OnDb4h47nrxI2lRGsDo+4Y4JEHeCoWB+Q=", "owner": "privatevoid-net", "repo": "nix-super", - "rev": "6ff67e40b495e79aa6b2dc9356f1e9ade3b77bca", + "rev": "65e8abac80cc06f9f05147b51908a47549e9342e", "type": "github" }, "original": { @@ -670,11 +673,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1691654369, - "narHash": "sha256-gSILTEx1jRaJjwZxRlnu3ZwMn1FVNk80qlwiCX8kmpo=", + "lastModified": 1692638711, + "narHash": "sha256-J0LgSFgJVGCC1+j5R2QndadWI1oumusg6hCtYAzLID4=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ce5e4a6ef2e59d89a971bc434ca8ca222b9c7f5e", + "rev": "91a22f76cd1716f9d0149e8a5c68424bb691de15", "type": "github" }, "original": { @@ -718,11 +721,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1692067901, - "narHash": "sha256-kq8Pf/nmlXECDWMkQSRGQkjWsA6G0pjzZkfUEaTmXJE=", + "lastModified": 1692557222, + "narHash": "sha256-TCOtZaioLf/jTEgfa+nyg0Nwq5Uc610Z+OFV75yUgGw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ea95c0917609e5c48023cc7c6141bea2fdf13970", + "rev": "0b07d4957ee1bd7fd3bdfd12db5f361bd70175a6", "type": "github" }, "original": { @@ -734,11 +737,11 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1692128808, - "narHash": "sha256-Di1Zm/P042NuwThMiZNrtmaAjd4Tm2qBOKHX7xUOfMk=", + "lastModified": 1692808169, + "narHash": "sha256-x9Opq06rIiwdwGeK2Ykj69dNc2IvUH1fY55Wm7atwrE=", "owner": "nixos", "repo": "nixpkgs", - "rev": "4ed9856be002a730234a1a1ed9dcd9dd10cbdb40", + "rev": "9201b5ff357e781bf014d0330d18555695df7ba8", "type": "github" }, "original": { @@ -766,24 +769,11 @@ }, "nixpkgs_8": { "locked": { - "lastModified": 1685677062, - "narHash": "sha256-zoHF7+HNwNwne2XEomphbdc4Y8tdWT16EUxUTXpOKpQ=", - "path": "/nix/store/dnqwkazyg92hzya7400klxlk072g3zsk-source", - "rev": "95be94370d09f97f6af6a1df1eb9649b5260724e", - "type": "path" - }, - "original": { - "id": "nixpkgs", - "type": "indirect" - } - }, - "nixpkgs_9": { - "locked": { - "lastModified": 1687103638, - "narHash": "sha256-dwy/TK6Db5W7ivcgmcxUykhFwodIg0jrRzOFt7H5NUc=", + "lastModified": 1692934111, + "narHash": "sha256-9EEE59v/esKNMR5zKbLRV9NoRPYvERw5jHQOnfr47bk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "91430887645a0953568da2f3e9a3a3bb0a0378ac", + "rev": "1e44a037bbf4fcaba041436e65e87be88f3f495b", "type": "github" }, "original": { @@ -818,11 +808,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1691747570, - "narHash": "sha256-J3fnIwJtHVQ0tK2JMBv4oAmII+1mCdXdpeCxtIsrL2A=", + "lastModified": 1692274144, + "narHash": "sha256-BxTQuRUANQ81u8DJznQyPmRsg63t4Yc+0kcyq6OLz8s=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "c5ac3aa3324bd8aebe8622a3fc92eeb3975d317a", + "rev": "7e3517c03d46159fdbf8c0e5c97f82d5d4b0c8fa", "type": "github" }, "original": { @@ -916,11 +906,11 @@ }, "stable": { "locked": { - "lastModified": 1692134936, - "narHash": "sha256-Z68O969cioC6I3k/AFBxsuEwpJwt4l9fzwuAMUhCCs0=", + "lastModified": 1692794066, + "narHash": "sha256-H0aG8r16dj0x/Wz6wQhQxc9V7AsObOiHPaKxQgH6Y08=", "owner": "nixos", "repo": "nixpkgs", - "rev": "bfd953b2c6de4f550f75461bcc5768b6f966be10", + "rev": "fc944919f743bb22379dddf18dcb72db6cff84aa", "type": "github" }, "original": { @@ -1024,15 +1014,15 @@ "timers": { "inputs": { "naersk": "naersk", - "nixpkgs": "nixpkgs_9", + "nixpkgs": "nixpkgs_8", "utils": "utils" }, "locked": { - "lastModified": 1692198673, - "narHash": "sha256-kLhdmJ4uI248caVxQhYSq+IA+xQHDcp5in4eI8sJphk=", + "lastModified": 1693040925, + "narHash": "sha256-AhJSwmp7XN/9V66EYHFnNuIAjqOrYUN3LGRjwrTN6T0=", "ref": "refs/heads/main", - "rev": "37dc5c727a3d73778d6ee9d63c1468357cf0ed72", - "revCount": 20, + "rev": "739f76fa90271860e2c1d683e3a53cfb93e6eb89", + "revCount": 27, "type": "git", "url": "https://gitea.moritzboeh.me/moritz/timers.git" }, @@ -1046,11 +1036,11 @@ "systems": "systems_5" }, "locked": { - "lastModified": 1687171271, - "narHash": "sha256-BJlq+ozK2B1sJDQXS3tzJM5a+oVZmi1q0FlBK/Xqv7M=", + "lastModified": 1692799911, + "narHash": "sha256-3eihraek4qL744EvQXsK1Ha6C3CR7nnT8X2qWap4RNk=", "owner": "numtide", "repo": "flake-utils", - "rev": "abfb11bd1aec8ced1c9bb9adfe68018230f4fb3c", + "rev": "f9e7cf818399d17d347f847525c5a5a8032e4e44", "type": "github" }, "original": { diff --git a/modules/programs/hyprland/default.nix b/modules/programs/hyprland/default.nix index c9b387a..e208565 100644 --- a/modules/programs/hyprland/default.nix +++ b/modules/programs/hyprland/default.nix @@ -61,18 +61,6 @@ in home-manager.users.moritz.programs.waybar = { enable = true; - # use package with hyprland support for switching workspaces - package = pkgs.symlinkJoin { - name = "waybar-hyprland"; - paths = [ pkgs.waybar-hyprland ]; - nativeBuildInputs = [ pkgs.makeWrapper ]; - postBuild = '' - wrapProgram $out/bin/waybar \ - --prefix PATH ":" "${hyprland}/bin" - ''; - }; - - # start using systemd service systemd = { enable = true; @@ -84,14 +72,9 @@ in layer = "top"; position = "top"; height = 20; - modules-left = [ "wlr/workspaces" ]; + modules-left = [ "hyprland/workspaces" ]; modules-center = [ "hyprland/window" ]; - modules-right = [ "network" "memory" "cpu" "battery" "clock" ]; - modules = { - "wlr/workspaces" = { - on-click = "activate"; - }; - }; + modules-right = [ "hyprland/language" "network" "memory" "cpu" "battery" "clock" ]; }; }; }; diff --git a/overlays/packages.nix b/overlays/packages.nix index ceef671..66b2624 100644 --- a/overlays/packages.nix +++ b/overlays/packages.nix @@ -10,7 +10,7 @@ final: prev: src = inputs.rofi-wayland; version = lib.my.mkVersionInput inputs.rofi-wayland; }); - timers = inputs.timers.defaultPackage.${prev.system}; + timers = inputs.timers.packages.${prev.system}.default; fzf1 = final.writeShellApplication { name = "fzf1"; From ff632a5b5214f5d1f51e0ffbdc9eaf1e0d0b0ac1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sat, 26 Aug 2023 11:47:39 +0200 Subject: [PATCH 64/64] feat(fish): add more completions for timers --- modules/programs/fish.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules/programs/fish.nix b/modules/programs/fish.nix index fbb4c24..de683ab 100644 --- a/modules/programs/fish.nix +++ b/modules/programs/fish.nix @@ -47,6 +47,14 @@ in complete -c c -kfa '(zoxide query -l | sed "s|$HOME|~|")' ${optionalString config.virtualisation.podman.dockerCompat /* fish */ "complete -c docker -w podman"} + complete -c timers \ + -n "__fish_seen_subcommand_from toggle" \ + -fa '(timers --json l | ${getExe pkgs.jq} -r .[][].name)' + + complete -c timers \ + -n "__fish_seen_subcommand_from remove" \ + -fa '(timers --json l | ${getExe pkgs.jq} -r .[][].name)' + # Variables ${exportedVariables} '';