From 988947be5eba4ad14f04fab8a45f6feb20e49b56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Fri, 30 Jun 2023 20:49:14 +0200 Subject: [PATCH 01/34] feat(base): add fzf file open alias --- modules/profiles/base.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/profiles/base.nix b/modules/profiles/base.nix index 86a70be..518ae72 100644 --- a/modules/profiles/base.nix +++ b/modules/profiles/base.nix @@ -45,6 +45,8 @@ in mv = "mv -i"; cd = "z"; + f = "fzf --multi --bind \"enter:become($EDITOR {+})\""; + 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"; From ba7cc101882bf76efc4a63f26c3f13d62d4d6c5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Fri, 30 Jun 2023 20:50:25 +0200 Subject: [PATCH 02/34] feat(tmux): add tmux attach + fzf script --- modules/programs/tmux.nix | 54 +++++++++++++++++++++++++++++++-------- 1 file changed, 44 insertions(+), 10 deletions(-) diff --git a/modules/programs/tmux.nix b/modules/programs/tmux.nix index 912f7ad..369aec5 100644 --- a/modules/programs/tmux.nix +++ b/modules/programs/tmux.nix @@ -4,13 +4,13 @@ with lib; let cfg = config.my.programs.tmux; - tmux-sessionizer = pkgs.writeShellApplication { - name = "ts"; - runtimeInputs = with pkgs; [ tmux findutils coreutils procps fd ]; + fzf1 = pkgs.writeShellApplication { + name = "fzf1"; + runtimeInputs = with pkgs; [ coreutils fzf ]; text = '' #!/usr/bin/env bash - options=$(fd -HIg '.git' ~/ --min-depth 1 --max-depth 5 --type d --prune --exec dirname {} | fzf --filter "''$*") + options=$(fzf --filter "''$*" < /dev/stdin) if [[ -z $options ]]; then exit 1 @@ -24,17 +24,48 @@ let exit 0 fi + echo "$selected" + ''; + }; + + tmux-switch = pkgs.writeShellApplication { + name = "tmux-switch"; + runtimeInputs = with pkgs; [ tmux ]; + text = '' + #!/usr/bin/env bash + if [[ -z ''${TMUX+x} ]]; then + tmux attach -t "$1" + else + tmux switch-client -t "$1" + fi + ''; + }; + + tmux-sessionizer = pkgs.writeShellApplication { + 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 - if [[ -z ''${TMUX+x} ]]; then - tmux attach -t "$selected_name" - else - tmux switch-client -t "$selected_name" - fi + ${getExe tmux-switch} "$selected_name" + ''; + }; + + tmux-attach = pkgs.writeShellApplication { + name = "ta"; + runtimeInputs = with pkgs; [ tmux ]; + text = '' + #!/usr/bin/env bash + selected=$(tmux list-sessions -F '#{session_name}' | ${getExe fzf1} "$*") + ${getExe tmux-switch} "$selected" ''; }; @@ -64,7 +95,10 @@ in config = mkIf cfg.enable { my.shell.abbreviations.t = "tmux"; - home-manager.users.moritz.home.packages = [ tmux-sessionizer ]; + home-manager.users.moritz.home.packages = [ + tmux-sessionizer + tmux-attach + ]; home-manager.users.moritz.programs = { tmux = { enable = true; From 3e8ff2e064dfb8d6f17b51defb78a884492e000a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Fri, 30 Jun 2023 20:50:53 +0200 Subject: [PATCH 03/34] fix(tmux): accidentally creating extra sessions --- modules/programs/tmux.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/programs/tmux.nix b/modules/programs/tmux.nix index 369aec5..32836bd 100644 --- a/modules/programs/tmux.nix +++ b/modules/programs/tmux.nix @@ -106,7 +106,6 @@ in customPaneNavigationAndResize = true; keyMode = "vi"; mouse = true; - newSession = true; prefix = "C-Space"; sensibleOnTop = false; plugins = with pkgs.tmuxPlugins; [ 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 04/34] 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 05/34] 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 06/34] 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 07/34] 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 08/34] 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 09/34] 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 10/34] 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 11/34] 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 12/34] 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 13/34] 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 14/34] 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 15/34] 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 16/34] 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 17/34] 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 18/34] 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 19/34] 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 20/34] 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 21/34] 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 22/34] 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 23/34] 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 24/34] 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 25/34] 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 26/34] 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 27/34] 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 28/34] 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 29/34] 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 30/34] 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 31/34] 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 32/34] 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 33/34] 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 34/34] 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 = {