From b5380bb2bb68e69358bb2ad6da8dc029eef81bc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Fri, 23 Jun 2023 08:32:40 +0200 Subject: [PATCH 01/11] fix(nvim): treesitter plugins not found --- modules/programs/nvim/plugins/default.nix | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/modules/programs/nvim/plugins/default.nix b/modules/programs/nvim/plugins/default.nix index cf9026b..7cba081 100644 --- a/modules/programs/nvim/plugins/default.nix +++ b/modules/programs/nvim/plugins/default.nix @@ -1,4 +1,4 @@ -{ pkgs, ... }: +{ lib, pkgs, ... }: with builtins; { @@ -115,9 +115,22 @@ with builtins; lazy = false; } { - plugin = nvim-treesitter.withAllGrammars; + plugin = nvim-treesitter; event = [ "BufReadPost" "BufNewFile" ]; - conf = readFile ./nvim-treesitter.lua; + conf = + let + parserDir = pkgs.symlinkJoin { + name = "tresitter-grammars-all"; + paths = lib.attrValues (lib.filterAttrs (_: builtins.isAttrs) nvim-treesitter-parsers); + }; + in + readFile ./nvim-treesitter.lua + '' + vim.opt.runtimepath:append("${parserDir}") + + require'nvim-treesitter.configs'.setup { + parser_install_dir = "${parserDir}", + } + ''; dependencies = [ { plugin = nvim-ts-context-commentstring; } { From 6d5351849f9e7fa282c1cd91e4841f492dcd2d80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Fri, 23 Jun 2023 08:34:00 +0200 Subject: [PATCH 02/11] fix: Telescope not working and comment for nix --- modules/programs/nvim/plugins/default.nix | 6 ++++++ modules/programs/nvim/plugins/mini-nvim.lua | 7 ------- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/modules/programs/nvim/plugins/default.nix b/modules/programs/nvim/plugins/default.nix index 7cba081..f11b9d1 100644 --- a/modules/programs/nvim/plugins/default.nix +++ b/modules/programs/nvim/plugins/default.nix @@ -202,6 +202,7 @@ with builtins; { plugin = telescope-fzf-native-nvim; conf = readFile ./telescope-fzf-native-nvim.lua; + cmd = [ "Telescope" ]; keys = [ { key = "ff"; cmd = "Telescope find_files"; desc = "Find files"; } { key = "fb"; cmd = "Telescope buffers"; desc = "Find buffers"; } @@ -233,5 +234,10 @@ with builtins; cmd = [ "StartupTime" ]; conf = readFile ./vim-startuptime.lua; } + { + plugin = comment-nvim; + event = [ "BufReadPost" "BufNewFile" ]; + conf = "require('Comment').setup()"; + } ]; } diff --git a/modules/programs/nvim/plugins/mini-nvim.lua b/modules/programs/nvim/plugins/mini-nvim.lua index e2824f6..6ce1ecc 100644 --- a/modules/programs/nvim/plugins/mini-nvim.lua +++ b/modules/programs/nvim/plugins/mini-nvim.lua @@ -1,11 +1,4 @@ require("mini.align").setup() -require("mini.comment").setup({ - options = { - custom_commentstring = function() - return require("ts_context_commentstring.internal").calculate_commentstring() or vim.bo.commentstring - end, - }, -}) require("mini.surround").setup() require("mini.move").setup() require("mini.pairs").setup() From 579e711735b3f0f4aa2662d86aa804767b478894 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sun, 25 Jun 2023 10:58:39 +0200 Subject: [PATCH 03/11] feat(nvim): add option for keyboard layouts --- hosts/nixos-desktop/default.nix | 1 + modules/programs/hyprland/_config.nix | 2 +- modules/programs/hyprland/default.nix | 5 +++++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/hosts/nixos-desktop/default.nix b/hosts/nixos-desktop/default.nix index 3b72865..43f39fa 100644 --- a/hosts/nixos-desktop/default.nix +++ b/hosts/nixos-desktop/default.nix @@ -18,6 +18,7 @@ personal.enable = true; }; programs.hyprland.nvidiaSupport = true; + programs.hyprland.keyboardLayouts = [ "us" "de" ]; services.mullvad.enable = true; programs.ledger.enable = true; }; diff --git a/modules/programs/hyprland/_config.nix b/modules/programs/hyprland/_config.nix index c508c8a..67cd433 100644 --- a/modules/programs/hyprland/_config.nix +++ b/modules/programs/hyprland/_config.nix @@ -25,7 +25,7 @@ in # For all categories, see https://wiki.hyprland.org/Configuring/Variables/ input { - kb_layout = de,us + kb_layout = ${concatStringsSep "," cfg.keyboardLayouts} kb_variant = kb_model = kb_options = grp:win_space_toggle,caps:escape diff --git a/modules/programs/hyprland/default.nix b/modules/programs/hyprland/default.nix index aec526e..2805a2e 100644 --- a/modules/programs/hyprland/default.nix +++ b/modules/programs/hyprland/default.nix @@ -25,6 +25,11 @@ in description = "enable window shadows"; default = true; }; + keyboardLayouts = mkOption { + type = types.listOf types.str; + description = "list of keyboard layouts"; + default = [ "de" "us" ]; + }; }; config = mkIf cfg.enable { From 7deef6eabdee02c031a2a1f5ee9ea6968ab1d181 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sun, 25 Jun 2023 11:15:08 +0200 Subject: [PATCH 04/11] feat(nvim): add typst lsp --- modules/programs/nvim/default.nix | 2 ++ modules/programs/nvim/plugins/default.nix | 4 ++++ modules/programs/nvim/plugins/nvim-lspconfig.lua | 1 + 3 files changed, 7 insertions(+) diff --git a/modules/programs/nvim/default.nix b/modules/programs/nvim/default.nix index 47411b9..acb4f76 100644 --- a/modules/programs/nvim/default.nix +++ b/modules/programs/nvim/default.nix @@ -239,6 +239,8 @@ in stylua sumneko-lua-language-server taplo + typst + typst-lsp yamlfmt ]; plugins = with pkgs.vimPlugins; [ diff --git a/modules/programs/nvim/plugins/default.nix b/modules/programs/nvim/plugins/default.nix index f11b9d1..a1dc84d 100644 --- a/modules/programs/nvim/plugins/default.nix +++ b/modules/programs/nvim/plugins/default.nix @@ -234,6 +234,10 @@ with builtins; cmd = [ "StartupTime" ]; conf = readFile ./vim-startuptime.lua; } + { + plugin = typst-vim; + ft = [ "typst" "typ" ]; + } { plugin = comment-nvim; event = [ "BufReadPost" "BufNewFile" ]; diff --git a/modules/programs/nvim/plugins/nvim-lspconfig.lua b/modules/programs/nvim/plugins/nvim-lspconfig.lua index 75c3e5d..d844ca5 100644 --- a/modules/programs/nvim/plugins/nvim-lspconfig.lua +++ b/modules/programs/nvim/plugins/nvim-lspconfig.lua @@ -127,6 +127,7 @@ local servers = { "pylsp", "ruff_lsp", "rust_analyzer", + "typst_lsp", } for _, lsp in ipairs(servers) do lspconfig_setup(lsp, {}) From 8161bfbbc8adfacd93a0fa506b336a9face8f8a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sun, 25 Jun 2023 11:21:24 +0200 Subject: [PATCH 05/11] build!: remove attic --- flake.nix | 5 ----- modules/profiles/base.nix | 1 - overlays/packages.nix | 1 - 3 files changed, 7 deletions(-) diff --git a/flake.nix b/flake.nix index 4fac534..6125a1e 100644 --- a/flake.nix +++ b/flake.nix @@ -17,11 +17,6 @@ agenix.inputs.nixpkgs.follows = "nixpkgs"; agenix.url = "github:ryantm/agenix"; - attic.inputs.flake-utils.follows = "flake-utils"; - attic.inputs.nixpkgs-stable.follows = "stable"; - attic.inputs.nixpkgs.follows = "nixpkgs"; - attic.url = "github:zhaofengli/attic"; - home-manager.inputs.nixpkgs.follows = "nixpkgs"; home-manager.url = "github:nix-community/home-manager"; diff --git a/modules/profiles/base.nix b/modules/profiles/base.nix index a623af5..86a70be 100644 --- a/modules/profiles/base.nix +++ b/modules/profiles/base.nix @@ -100,7 +100,6 @@ in statix manix nix-output-monitor - attic # other bat diff --git a/overlays/packages.nix b/overlays/packages.nix index f541331..bb884a9 100644 --- a/overlays/packages.nix +++ b/overlays/packages.nix @@ -3,7 +3,6 @@ _: prev: { agenix = inputs.agenix.packages.${prev.system}.default; - attic = inputs.attic.packages.${prev.system}.default; hyprpaper = inputs.hyprpaper.packages.${prev.system}.default; nil = inputs.nil.packages.${prev.system}.default; nix-super = inputs.nix-super.packages.${prev.system}.default; From 5dc5cf0078a3b8257e80ea1f60b20690cb839569 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Tue, 27 Jun 2023 22:03:38 +0200 Subject: [PATCH 06/11] feat: update nix super --- flake.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/flake.nix b/flake.nix index 6125a1e..9eae8fc 100644 --- a/flake.nix +++ b/flake.nix @@ -26,8 +26,8 @@ pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix"; - nix-super.url = "github:privatevoid-net/nix-super/aaba1f91e7eba8ce029fa6bfa81ad9e14a13708d"; - nix-super.inputs.nixpkgs.follows = "nixpkgs"; + nix-super.url = "github:privatevoid-net/nix-super"; + nix-super.inputs.nixpkgs.follows = "stable"; rofi-wayland.url = "github:lbonn/rofi/wayland"; rofi-wayland.flake = false; From d87c4da49e8f46c8ed24739c99b787d6461ef4e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Tue, 27 Jun 2023 22:04:17 +0200 Subject: [PATCH 07/11] fix(nvim): remove redundant treesitter plugin --- modules/programs/nvim/default.nix | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/modules/programs/nvim/default.nix b/modules/programs/nvim/default.nix index acb4f76..7e88008 100644 --- a/modules/programs/nvim/default.nix +++ b/modules/programs/nvim/default.nix @@ -243,9 +243,8 @@ in typst-lsp yamlfmt ]; - plugins = with pkgs.vimPlugins; [ - lazy-nvim - nvim-treesitter.withAllGrammars + plugins = [ + pkgs.vimPlugins.lazy-nvim ]; }; }; From c99f20fb60669fff1262e0280047b1d16327b74f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Wed, 28 Jun 2023 09:15:48 +0200 Subject: [PATCH 08/11] feat(nvim): load vim-tmux-navigator lazyly --- 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 cf9026b..b28b845 100644 --- a/modules/programs/nvim/plugins/default.nix +++ b/modules/programs/nvim/plugins/default.nix @@ -163,7 +163,7 @@ with builtins; } { plugin = vim-tmux-navigator; - lazy = false; + event = [ "VeryLazy" ]; } { plugin = gitsigns-nvim; 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 09/11] 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 10/11] 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 11/11] 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; [