added enable option to nvim
changed home-manager personal config namespace from home.* to user.*
This commit is contained in:
		
							parent
							
								
									322788aa3a
								
							
						
					
					
						commit
						6f0e167087
					
				
					 30 changed files with 539 additions and 525 deletions
				
			
		| 
						 | 
				
			
			@ -4,15 +4,10 @@
 | 
			
		|||
  lib,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
  options = {
 | 
			
		||||
    home.nvim.enable-completions =
 | 
			
		||||
      (lib.mkEnableOption "basic completion in nvim")
 | 
			
		||||
      // {
 | 
			
		||||
        default = false;
 | 
			
		||||
      };
 | 
			
		||||
  };
 | 
			
		||||
  options.user.nvim.enable-completions = lib.mkEnableOption "basic completion in nvim";
 | 
			
		||||
 | 
			
		||||
  config =
 | 
			
		||||
    lib.mkIf config.home.nvim.enable-completions
 | 
			
		||||
    lib.mkIf (config.user.nvim.enable-completions && config.user.nvim.enable)
 | 
			
		||||
    {
 | 
			
		||||
      programs.nixvim = {
 | 
			
		||||
        plugins.luasnip.enable = true;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,29 +3,33 @@
 | 
			
		|||
  pkgs,
 | 
			
		||||
  helpers,
 | 
			
		||||
  lib,
 | 
			
		||||
  config,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
  programs.nixvim = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    viAlias = true;
 | 
			
		||||
    vimAlias = true;
 | 
			
		||||
 | 
			
		||||
    colorschemes.base16 = {
 | 
			
		||||
      colorscheme = "gruvbox-dark-medium";
 | 
			
		||||
  options.user.nvim.enable = lib.mkEnableOption "enable nvim";
 | 
			
		||||
  config = lib.mkIf config.user.nvim.enable {
 | 
			
		||||
    programs.nixvim = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      viAlias = true;
 | 
			
		||||
      vimAlias = true;
 | 
			
		||||
 | 
			
		||||
      colorschemes.base16 = {
 | 
			
		||||
        colorscheme = "gruvbox-dark-medium";
 | 
			
		||||
        enable = true;
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      clipboard.providers.xsel.enable = true;
 | 
			
		||||
    };
 | 
			
		||||
    home.sessionVariables = {
 | 
			
		||||
      EDITOR = "nvim";
 | 
			
		||||
      VISUAL = "nvim";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    clipboard.providers.xsel.enable = true;
 | 
			
		||||
    programs.nushell.extraEnv = ''
 | 
			
		||||
      $env.EDITOR = nvim
 | 
			
		||||
      $env.VISUAL = nvim
 | 
			
		||||
    '';
 | 
			
		||||
  };
 | 
			
		||||
  home.sessionVariables = {
 | 
			
		||||
    EDITOR = "nvim";
 | 
			
		||||
    VISUAL = "nvim";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  programs.nushell.extraEnv = ''
 | 
			
		||||
    $env.EDITOR = nvim
 | 
			
		||||
    $env.VISUAL = nvim
 | 
			
		||||
  '';
 | 
			
		||||
 | 
			
		||||
  imports = [
 | 
			
		||||
    ./keybinds.nix
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,25 +1,28 @@
 | 
			
		|||
{
 | 
			
		||||
  configs,
 | 
			
		||||
  config,
 | 
			
		||||
  lib,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
  programs.nixvim = {
 | 
			
		||||
    plugins.gitsigns = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
  config = lib.mkIf config.user.nvim.enable {
 | 
			
		||||
    programs.nixvim = {
 | 
			
		||||
      plugins.gitsigns = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
      };
 | 
			
		||||
      plugins.which-key.registrations = {
 | 
			
		||||
        "<leader>g" = "+git";
 | 
			
		||||
      };
 | 
			
		||||
      keymaps = [
 | 
			
		||||
        {
 | 
			
		||||
          action = ":Gitsigns toggle_current_line_blame<CR>";
 | 
			
		||||
          key = "<leader>gb";
 | 
			
		||||
          mode = "n";
 | 
			
		||||
          options = {
 | 
			
		||||
            silent = true;
 | 
			
		||||
            desc = "toggle git blame";
 | 
			
		||||
          };
 | 
			
		||||
        }
 | 
			
		||||
      ];
 | 
			
		||||
    };
 | 
			
		||||
    plugins.which-key.registrations = {
 | 
			
		||||
      "<leader>g" = "+git";
 | 
			
		||||
    };
 | 
			
		||||
    keymaps = [
 | 
			
		||||
      {
 | 
			
		||||
        action = ":Gitsigns toggle_current_line_blame<CR>";
 | 
			
		||||
        key = "<leader>gb";
 | 
			
		||||
        mode = "n";
 | 
			
		||||
        options = {
 | 
			
		||||
          silent = true;
 | 
			
		||||
          desc = "toggle git blame";
 | 
			
		||||
        };
 | 
			
		||||
      }
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,97 +1,100 @@
 | 
			
		|||
{
 | 
			
		||||
  configs,
 | 
			
		||||
  config,
 | 
			
		||||
  lib,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
  programs.nixvim = {
 | 
			
		||||
    globals = {
 | 
			
		||||
      mapleader = ";";
 | 
			
		||||
  config = lib.mkIf config.user.nvim.enable {
 | 
			
		||||
    programs.nixvim = {
 | 
			
		||||
      globals = {
 | 
			
		||||
        mapleader = ";";
 | 
			
		||||
      };
 | 
			
		||||
      plugins.which-key.registrations = {
 | 
			
		||||
        "<leader>c" = "+check";
 | 
			
		||||
      };
 | 
			
		||||
      keymaps = [
 | 
			
		||||
        {
 | 
			
		||||
          action = ":setlocal spell!<CR>";
 | 
			
		||||
          key = "<leader>cs";
 | 
			
		||||
          mode = "n";
 | 
			
		||||
          options = {
 | 
			
		||||
            silent = true;
 | 
			
		||||
            desc = "toggle spell check";
 | 
			
		||||
          };
 | 
			
		||||
        }
 | 
			
		||||
        {
 | 
			
		||||
          action = ":bnext<CR>";
 | 
			
		||||
          key = "gf";
 | 
			
		||||
          mode = "n";
 | 
			
		||||
          options = {
 | 
			
		||||
            silent = true;
 | 
			
		||||
            desc = "next buffer";
 | 
			
		||||
          };
 | 
			
		||||
        }
 | 
			
		||||
        {
 | 
			
		||||
          action = ":bprevious<CR>";
 | 
			
		||||
          key = "gF";
 | 
			
		||||
          mode = "n";
 | 
			
		||||
          options = {
 | 
			
		||||
            silent = true;
 | 
			
		||||
            desc = "prev buffer";
 | 
			
		||||
          };
 | 
			
		||||
        }
 | 
			
		||||
        {
 | 
			
		||||
          action = "<C-w>h";
 | 
			
		||||
          key = "<C-h>";
 | 
			
		||||
          mode = "n";
 | 
			
		||||
          options = {
 | 
			
		||||
            silent = true;
 | 
			
		||||
            desc = "move to right split";
 | 
			
		||||
          };
 | 
			
		||||
        }
 | 
			
		||||
        {
 | 
			
		||||
          action = "<C-w>j";
 | 
			
		||||
          key = "<C-j>";
 | 
			
		||||
          mode = "n";
 | 
			
		||||
          options = {
 | 
			
		||||
            silent = true;
 | 
			
		||||
            desc = "move to below split";
 | 
			
		||||
          };
 | 
			
		||||
        }
 | 
			
		||||
        {
 | 
			
		||||
          action = "<C-w>k";
 | 
			
		||||
          key = "<C-k>";
 | 
			
		||||
          mode = "n";
 | 
			
		||||
          options = {
 | 
			
		||||
            silent = true;
 | 
			
		||||
            desc = "move to above split";
 | 
			
		||||
          };
 | 
			
		||||
        }
 | 
			
		||||
        {
 | 
			
		||||
          action = "<C-w>l";
 | 
			
		||||
          key = "<C-l>";
 | 
			
		||||
          mode = "n";
 | 
			
		||||
          options = {
 | 
			
		||||
            silent = true;
 | 
			
		||||
            desc = "move to left split";
 | 
			
		||||
          };
 | 
			
		||||
        }
 | 
			
		||||
        {
 | 
			
		||||
          action = "za";
 | 
			
		||||
          key = "<Space>";
 | 
			
		||||
          mode = "n";
 | 
			
		||||
          options = {
 | 
			
		||||
            silent = true;
 | 
			
		||||
            desc = "toggle fold";
 | 
			
		||||
          };
 | 
			
		||||
        }
 | 
			
		||||
        {
 | 
			
		||||
          action = ":nohls<CR>";
 | 
			
		||||
          key = "<leader>h";
 | 
			
		||||
          mode = "n";
 | 
			
		||||
          options = {
 | 
			
		||||
            silent = true;
 | 
			
		||||
            desc = "clear highlighting";
 | 
			
		||||
          };
 | 
			
		||||
        }
 | 
			
		||||
      ];
 | 
			
		||||
    };
 | 
			
		||||
    plugins.which-key.registrations = {
 | 
			
		||||
      "<leader>c" = "+check";
 | 
			
		||||
    };
 | 
			
		||||
    keymaps = [
 | 
			
		||||
      {
 | 
			
		||||
        action = ":setlocal spell!<CR>";
 | 
			
		||||
        key = "<leader>cs";
 | 
			
		||||
        mode = "n";
 | 
			
		||||
        options = {
 | 
			
		||||
          silent = true;
 | 
			
		||||
          desc = "toggle spell check";
 | 
			
		||||
        };
 | 
			
		||||
      }
 | 
			
		||||
      {
 | 
			
		||||
        action = ":bnext<CR>";
 | 
			
		||||
        key = "gf";
 | 
			
		||||
        mode = "n";
 | 
			
		||||
        options = {
 | 
			
		||||
          silent = true;
 | 
			
		||||
          desc = "next buffer";
 | 
			
		||||
        };
 | 
			
		||||
      }
 | 
			
		||||
      {
 | 
			
		||||
        action = ":bprevious<CR>";
 | 
			
		||||
        key = "gF";
 | 
			
		||||
        mode = "n";
 | 
			
		||||
        options = {
 | 
			
		||||
          silent = true;
 | 
			
		||||
          desc = "prev buffer";
 | 
			
		||||
        };
 | 
			
		||||
      }
 | 
			
		||||
      {
 | 
			
		||||
        action = "<C-w>h";
 | 
			
		||||
        key = "<C-h>";
 | 
			
		||||
        mode = "n";
 | 
			
		||||
        options = {
 | 
			
		||||
          silent = true;
 | 
			
		||||
          desc = "move to right split";
 | 
			
		||||
        };
 | 
			
		||||
      }
 | 
			
		||||
      {
 | 
			
		||||
        action = "<C-w>j";
 | 
			
		||||
        key = "<C-j>";
 | 
			
		||||
        mode = "n";
 | 
			
		||||
        options = {
 | 
			
		||||
          silent = true;
 | 
			
		||||
          desc = "move to below split";
 | 
			
		||||
        };
 | 
			
		||||
      }
 | 
			
		||||
      {
 | 
			
		||||
        action = "<C-w>k";
 | 
			
		||||
        key = "<C-k>";
 | 
			
		||||
        mode = "n";
 | 
			
		||||
        options = {
 | 
			
		||||
          silent = true;
 | 
			
		||||
          desc = "move to above split";
 | 
			
		||||
        };
 | 
			
		||||
      }
 | 
			
		||||
      {
 | 
			
		||||
        action = "<C-w>l";
 | 
			
		||||
        key = "<C-l>";
 | 
			
		||||
        mode = "n";
 | 
			
		||||
        options = {
 | 
			
		||||
          silent = true;
 | 
			
		||||
          desc = "move to left split";
 | 
			
		||||
        };
 | 
			
		||||
      }
 | 
			
		||||
      {
 | 
			
		||||
        action = "za";
 | 
			
		||||
        key = "<Space>";
 | 
			
		||||
        mode = "n";
 | 
			
		||||
        options = {
 | 
			
		||||
          silent = true;
 | 
			
		||||
          desc = "toggle fold";
 | 
			
		||||
        };
 | 
			
		||||
      }
 | 
			
		||||
      {
 | 
			
		||||
        action = ":nohls<CR>";
 | 
			
		||||
        key = "<leader>h";
 | 
			
		||||
        mode = "n";
 | 
			
		||||
        options = {
 | 
			
		||||
          silent = true;
 | 
			
		||||
          desc = "clear highlighting";
 | 
			
		||||
        };
 | 
			
		||||
      }
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,32 +4,16 @@
 | 
			
		|||
  lib,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
  home.file = {
 | 
			
		||||
    ".clangd".text = ''
 | 
			
		||||
      # keeps clangd from choking when it sees a compiler flag for a different
 | 
			
		||||
      # compiler. (sutch as when acting as an lsp for a project that uses GCC.)
 | 
			
		||||
      CompileFlags:
 | 
			
		||||
        Add: -Wno-unknown-warning-option
 | 
			
		||||
        Remove: [-m*, -f*]
 | 
			
		||||
    '';
 | 
			
		||||
    ".clang-format".text = ''
 | 
			
		||||
      ---
 | 
			
		||||
      #this syncronizes with settings used by neovims treesitters so that the lsp formatting and treesitter formatting do not fight eatch other.
 | 
			
		||||
      PointerAlignment: Left
 | 
			
		||||
      ColumnLimit: 80
 | 
			
		||||
      IndentWidth: 4
 | 
			
		||||
      TabWidth: 4
 | 
			
		||||
      UseCRLF: false
 | 
			
		||||
      UseTab: Never
 | 
			
		||||
      AlignAfterOpenBracket: BlockIndent
 | 
			
		||||
      AlwaysBreakBeforeMultilineStrings: true
 | 
			
		||||
      BreakBeforeBraces: Attach
 | 
			
		||||
      AlignOperands: Align
 | 
			
		||||
      BreakBeforeBinaryOperators: NonAssignment
 | 
			
		||||
      ...
 | 
			
		||||
    '';
 | 
			
		||||
    "work/.clang-format" = lib.mkIf config.home.git.workProfile.enable {
 | 
			
		||||
      text = ''
 | 
			
		||||
  config = lib.mkIf (config.user.nvim.enable && config.user.nvim.enable-lsp) {
 | 
			
		||||
    home.file = {
 | 
			
		||||
      ".clangd".text = ''
 | 
			
		||||
        # keeps clangd from choking when it sees a compiler flag for a different
 | 
			
		||||
        # compiler. (sutch as when acting as an lsp for a project that uses GCC.)
 | 
			
		||||
        CompileFlags:
 | 
			
		||||
          Add: -Wno-unknown-warning-option
 | 
			
		||||
          Remove: [-m*, -f*]
 | 
			
		||||
      '';
 | 
			
		||||
      ".clang-format".text = ''
 | 
			
		||||
        ---
 | 
			
		||||
        #this syncronizes with settings used by neovims treesitters so that the lsp formatting and treesitter formatting do not fight eatch other.
 | 
			
		||||
        PointerAlignment: Left
 | 
			
		||||
| 
						 | 
				
			
			@ -40,10 +24,28 @@
 | 
			
		|||
        UseTab: Never
 | 
			
		||||
        AlignAfterOpenBracket: BlockIndent
 | 
			
		||||
        AlwaysBreakBeforeMultilineStrings: true
 | 
			
		||||
        BreakBeforeBraces: Allman
 | 
			
		||||
        BreakBeforeBinaryOperators: None
 | 
			
		||||
        BreakBeforeBraces: Attach
 | 
			
		||||
        AlignOperands: Align
 | 
			
		||||
        BreakBeforeBinaryOperators: NonAssignment
 | 
			
		||||
        ...
 | 
			
		||||
      '';
 | 
			
		||||
      "work/.clang-format" = lib.mkIf config.user.git.workProfile.enable {
 | 
			
		||||
        text = ''
 | 
			
		||||
          ---
 | 
			
		||||
          #this syncronizes with settings used by neovims treesitters so that the lsp formatting and treesitter formatting do not fight eatch other.
 | 
			
		||||
          PointerAlignment: Left
 | 
			
		||||
          ColumnLimit: 80
 | 
			
		||||
          IndentWidth: 4
 | 
			
		||||
          TabWidth: 4
 | 
			
		||||
          UseCRLF: false
 | 
			
		||||
          UseTab: Never
 | 
			
		||||
          AlignAfterOpenBracket: BlockIndent
 | 
			
		||||
          AlwaysBreakBeforeMultilineStrings: true
 | 
			
		||||
          BreakBeforeBraces: Allman
 | 
			
		||||
          BreakBeforeBinaryOperators: None
 | 
			
		||||
          ...
 | 
			
		||||
        '';
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,14 +4,12 @@
 | 
			
		|||
  lib,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
  options = {
 | 
			
		||||
    home.nvim.enable-lsp = lib.mkEnableOption "nvim lsp";
 | 
			
		||||
  };
 | 
			
		||||
  options.user.nvim.enable-lsp = lib.mkEnableOption "nvim lsp";
 | 
			
		||||
 | 
			
		||||
  config =
 | 
			
		||||
    lib.mkIf config.home.nvim.enable-lsp
 | 
			
		||||
    lib.mkIf (config.user.nvim.enable-lsp && config.user.nvim.enable)
 | 
			
		||||
    {
 | 
			
		||||
      home.nvim.enable-completions = true;
 | 
			
		||||
      user.nvim.enable-completions = true;
 | 
			
		||||
      programs.nixvim = {
 | 
			
		||||
        plugins.lsp = {
 | 
			
		||||
          enable = true;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,7 +5,7 @@
 | 
			
		|||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
  config =
 | 
			
		||||
    lib.mkIf config.home.nvim.enable-lsp
 | 
			
		||||
    lib.mkIf (config.user.nvim.enable-lsp && config.user.nvim.enable)
 | 
			
		||||
    {
 | 
			
		||||
      programs.nixvim = {
 | 
			
		||||
        plugins.rust-tools = {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,76 +1,79 @@
 | 
			
		|||
{
 | 
			
		||||
  configs,
 | 
			
		||||
  config,
 | 
			
		||||
  lib,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
  programs.nixvim = {
 | 
			
		||||
    plugins.lualine = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      alwaysDivideMiddle = true;
 | 
			
		||||
      iconsEnabled = true;
 | 
			
		||||
      sections = {
 | 
			
		||||
        lualine_a = [
 | 
			
		||||
          {name = "mode";}
 | 
			
		||||
        ];
 | 
			
		||||
        lualine_b = [
 | 
			
		||||
          {name = "branch";}
 | 
			
		||||
          {name = "diff";}
 | 
			
		||||
          {name = "diagnostics";}
 | 
			
		||||
        ];
 | 
			
		||||
        lualine_c = [
 | 
			
		||||
          {
 | 
			
		||||
            name = "filename";
 | 
			
		||||
            extraConfig = {path = 1;};
 | 
			
		||||
          }
 | 
			
		||||
        ];
 | 
			
		||||
        lualine_x = [
 | 
			
		||||
          {name = "encoding";}
 | 
			
		||||
          {name = "fileformat";}
 | 
			
		||||
          {name = "filetype";}
 | 
			
		||||
        ];
 | 
			
		||||
        lualine_y = [
 | 
			
		||||
          {name = "progress";}
 | 
			
		||||
        ];
 | 
			
		||||
        lualine_z = [
 | 
			
		||||
          {name = "location";}
 | 
			
		||||
        ];
 | 
			
		||||
      };
 | 
			
		||||
  config = lib.mkIf config.user.nvim.enable {
 | 
			
		||||
    programs.nixvim = {
 | 
			
		||||
      plugins.lualine = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        alwaysDivideMiddle = true;
 | 
			
		||||
        iconsEnabled = true;
 | 
			
		||||
        sections = {
 | 
			
		||||
          lualine_a = [
 | 
			
		||||
            {name = "mode";}
 | 
			
		||||
          ];
 | 
			
		||||
          lualine_b = [
 | 
			
		||||
            {name = "branch";}
 | 
			
		||||
            {name = "diff";}
 | 
			
		||||
            {name = "diagnostics";}
 | 
			
		||||
          ];
 | 
			
		||||
          lualine_c = [
 | 
			
		||||
            {
 | 
			
		||||
              name = "filename";
 | 
			
		||||
              extraConfig = {path = 1;};
 | 
			
		||||
            }
 | 
			
		||||
          ];
 | 
			
		||||
          lualine_x = [
 | 
			
		||||
            {name = "encoding";}
 | 
			
		||||
            {name = "fileformat";}
 | 
			
		||||
            {name = "filetype";}
 | 
			
		||||
          ];
 | 
			
		||||
          lualine_y = [
 | 
			
		||||
            {name = "progress";}
 | 
			
		||||
          ];
 | 
			
		||||
          lualine_z = [
 | 
			
		||||
            {name = "location";}
 | 
			
		||||
          ];
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
      inactiveSections = {
 | 
			
		||||
        lualine_a = [];
 | 
			
		||||
        lualine_b = [];
 | 
			
		||||
        lualine_c = [{name = "filename";}];
 | 
			
		||||
        lualine_x = [{name = "filetype";}];
 | 
			
		||||
        lualine_y = [];
 | 
			
		||||
        lualine_z = [];
 | 
			
		||||
      };
 | 
			
		||||
        inactiveSections = {
 | 
			
		||||
          lualine_a = [];
 | 
			
		||||
          lualine_b = [];
 | 
			
		||||
          lualine_c = [{name = "filename";}];
 | 
			
		||||
          lualine_x = [{name = "filetype";}];
 | 
			
		||||
          lualine_y = [];
 | 
			
		||||
          lualine_z = [];
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
      tabline = {
 | 
			
		||||
        lualine_a = [
 | 
			
		||||
          {
 | 
			
		||||
            name = "buffers";
 | 
			
		||||
            extraConfig = {mode = 4;};
 | 
			
		||||
          }
 | 
			
		||||
        ];
 | 
			
		||||
        lualine_b = [];
 | 
			
		||||
        lualine_c = [];
 | 
			
		||||
        lualine_x = [];
 | 
			
		||||
        lualine_y = [];
 | 
			
		||||
        lualine_z = [
 | 
			
		||||
          {
 | 
			
		||||
            name = "tabs";
 | 
			
		||||
            extraConfig = {mode = 2;};
 | 
			
		||||
          }
 | 
			
		||||
        ];
 | 
			
		||||
      };
 | 
			
		||||
        tabline = {
 | 
			
		||||
          lualine_a = [
 | 
			
		||||
            {
 | 
			
		||||
              name = "buffers";
 | 
			
		||||
              extraConfig = {mode = 4;};
 | 
			
		||||
            }
 | 
			
		||||
          ];
 | 
			
		||||
          lualine_b = [];
 | 
			
		||||
          lualine_c = [];
 | 
			
		||||
          lualine_x = [];
 | 
			
		||||
          lualine_y = [];
 | 
			
		||||
          lualine_z = [
 | 
			
		||||
            {
 | 
			
		||||
              name = "tabs";
 | 
			
		||||
              extraConfig = {mode = 2;};
 | 
			
		||||
            }
 | 
			
		||||
          ];
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
      winbar = {
 | 
			
		||||
        lualine_a = [];
 | 
			
		||||
        lualine_b = [];
 | 
			
		||||
        lualine_c = [];
 | 
			
		||||
        lualine_x = [];
 | 
			
		||||
        lualine_y = [];
 | 
			
		||||
        lualine_z = [];
 | 
			
		||||
        winbar = {
 | 
			
		||||
          lualine_a = [];
 | 
			
		||||
          lualine_b = [];
 | 
			
		||||
          lualine_c = [];
 | 
			
		||||
          lualine_x = [];
 | 
			
		||||
          lualine_y = [];
 | 
			
		||||
          lualine_z = [];
 | 
			
		||||
        };
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,31 +1,34 @@
 | 
			
		|||
{
 | 
			
		||||
  configs,
 | 
			
		||||
  config,
 | 
			
		||||
  lib,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
  programs.nixvim = {
 | 
			
		||||
    plugins.nvim-tree = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      disableNetrw = true;
 | 
			
		||||
      hijackCursor = true;
 | 
			
		||||
      hijackNetrw = true;
 | 
			
		||||
      hijackUnnamedBufferWhenOpening = true;
 | 
			
		||||
      actions = {
 | 
			
		||||
        useSystemClipboard = true;
 | 
			
		||||
        changeDir.enable = true;
 | 
			
		||||
      };
 | 
			
		||||
      filesystemWatchers.enable = true;
 | 
			
		||||
    };
 | 
			
		||||
    keymaps = [
 | 
			
		||||
      {
 | 
			
		||||
        action = ":NvimTreeToggle<CR>";
 | 
			
		||||
        key = "<leader>t";
 | 
			
		||||
        mode = "n";
 | 
			
		||||
        options = {
 | 
			
		||||
          silent = true;
 | 
			
		||||
          desc = "toggle file browser";
 | 
			
		||||
  config = lib.mkIf config.user.nvim.enable {
 | 
			
		||||
    programs.nixvim = {
 | 
			
		||||
      plugins.nvim-tree = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        disableNetrw = true;
 | 
			
		||||
        hijackCursor = true;
 | 
			
		||||
        hijackNetrw = true;
 | 
			
		||||
        hijackUnnamedBufferWhenOpening = true;
 | 
			
		||||
        actions = {
 | 
			
		||||
          useSystemClipboard = true;
 | 
			
		||||
          changeDir.enable = true;
 | 
			
		||||
        };
 | 
			
		||||
      }
 | 
			
		||||
    ];
 | 
			
		||||
        filesystemWatchers.enable = true;
 | 
			
		||||
      };
 | 
			
		||||
      keymaps = [
 | 
			
		||||
        {
 | 
			
		||||
          action = ":NvimTreeToggle<CR>";
 | 
			
		||||
          key = "<leader>t";
 | 
			
		||||
          mode = "n";
 | 
			
		||||
          options = {
 | 
			
		||||
            silent = true;
 | 
			
		||||
            desc = "toggle file browser";
 | 
			
		||||
          };
 | 
			
		||||
        }
 | 
			
		||||
      ];
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,70 +1,72 @@
 | 
			
		|||
{
 | 
			
		||||
  configs,
 | 
			
		||||
  config,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  lib,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
  programs.nixvim = {
 | 
			
		||||
    opts = {
 | 
			
		||||
      mouse = "a";
 | 
			
		||||
      lazyredraw = true;
 | 
			
		||||
      termguicolors = true;
 | 
			
		||||
      autoread = true;
 | 
			
		||||
      swapfile = false;
 | 
			
		||||
      history = 500;
 | 
			
		||||
      formatoptions = "rojq";
 | 
			
		||||
      # dont hard wrap
 | 
			
		||||
      textwidth = 0;
 | 
			
		||||
      wrapmargin = 0;
 | 
			
		||||
      breakindent = true;
 | 
			
		||||
      # highlight after col
 | 
			
		||||
      colorcolumn = "80,100,120";
 | 
			
		||||
      # add ruler to side of screen
 | 
			
		||||
      number = true;
 | 
			
		||||
      numberwidth = 3;
 | 
			
		||||
      #display cursor cordinates
 | 
			
		||||
      ruler = true;
 | 
			
		||||
      #always leave 5 cells between cursor and side of window
 | 
			
		||||
      scrolloff = 5;
 | 
			
		||||
      # better command line completion
 | 
			
		||||
      wildmenu = true;
 | 
			
		||||
      # ignore case if all lowercase
 | 
			
		||||
      ignorecase = true;
 | 
			
		||||
      smartcase = true;
 | 
			
		||||
      # show unfinished keycombos in statusbar
 | 
			
		||||
      showcmd = true;
 | 
			
		||||
      # regex stuff
 | 
			
		||||
      magic = true;
 | 
			
		||||
      # always show statusline
 | 
			
		||||
      laststatus = 2;
 | 
			
		||||
      # tab stuff
 | 
			
		||||
      tabstop = 4;
 | 
			
		||||
      shiftwidth = 0;
 | 
			
		||||
      autoindent = true;
 | 
			
		||||
      smartindent = true;
 | 
			
		||||
      smarttab = true;
 | 
			
		||||
      # for true tabs, change to false
 | 
			
		||||
      expandtab = true;
 | 
			
		||||
      softtabstop = -1;
 | 
			
		||||
      # highlight search results as you type
 | 
			
		||||
      hlsearch = true;
 | 
			
		||||
      incsearch = true;
 | 
			
		||||
      # folding stuff
 | 
			
		||||
      foldlevelstart = 5;
 | 
			
		||||
      foldmethod = lib.mkDefault "indent";
 | 
			
		||||
      foldcolumn = "auto:4";
 | 
			
		||||
      foldenable = true;
 | 
			
		||||
      # display whitespace as other chars
 | 
			
		||||
      list = true;
 | 
			
		||||
      listchars = {
 | 
			
		||||
        tab = ">-";
 | 
			
		||||
        eol = "↲";
 | 
			
		||||
        nbsp = "␣";
 | 
			
		||||
        trail = "•";
 | 
			
		||||
        extends = "⟩";
 | 
			
		||||
        precedes = "⟨";
 | 
			
		||||
  config = lib.mkIf config.user.nvim.enable {
 | 
			
		||||
    programs.nixvim = {
 | 
			
		||||
      opts = {
 | 
			
		||||
        mouse = "a";
 | 
			
		||||
        lazyredraw = true;
 | 
			
		||||
        termguicolors = true;
 | 
			
		||||
        autoread = true;
 | 
			
		||||
        swapfile = false;
 | 
			
		||||
        history = 500;
 | 
			
		||||
        formatoptions = "rojq";
 | 
			
		||||
        # dont hard wrap
 | 
			
		||||
        textwidth = 0;
 | 
			
		||||
        wrapmargin = 0;
 | 
			
		||||
        breakindent = true;
 | 
			
		||||
        # highlight after col
 | 
			
		||||
        colorcolumn = "80,100,120";
 | 
			
		||||
        # add ruler to side of screen
 | 
			
		||||
        number = true;
 | 
			
		||||
        numberwidth = 3;
 | 
			
		||||
        #display cursor cordinates
 | 
			
		||||
        ruler = true;
 | 
			
		||||
        #always leave 5 cells between cursor and side of window
 | 
			
		||||
        scrolloff = 5;
 | 
			
		||||
        # better command line completion
 | 
			
		||||
        wildmenu = true;
 | 
			
		||||
        # ignore case if all lowercase
 | 
			
		||||
        ignorecase = true;
 | 
			
		||||
        smartcase = true;
 | 
			
		||||
        # show unfinished keycombos in statusbar
 | 
			
		||||
        showcmd = true;
 | 
			
		||||
        # regex stuff
 | 
			
		||||
        magic = true;
 | 
			
		||||
        # always show statusline
 | 
			
		||||
        laststatus = 2;
 | 
			
		||||
        # tab stuff
 | 
			
		||||
        tabstop = 4;
 | 
			
		||||
        shiftwidth = 0;
 | 
			
		||||
        autoindent = true;
 | 
			
		||||
        smartindent = true;
 | 
			
		||||
        smarttab = true;
 | 
			
		||||
        # for true tabs, change to false
 | 
			
		||||
        expandtab = true;
 | 
			
		||||
        softtabstop = -1;
 | 
			
		||||
        # highlight search results as you type
 | 
			
		||||
        hlsearch = true;
 | 
			
		||||
        incsearch = true;
 | 
			
		||||
        # folding stuff
 | 
			
		||||
        foldlevelstart = 5;
 | 
			
		||||
        foldmethod = lib.mkDefault "indent";
 | 
			
		||||
        foldcolumn = "auto:4";
 | 
			
		||||
        foldenable = true;
 | 
			
		||||
        # display whitespace as other chars
 | 
			
		||||
        list = true;
 | 
			
		||||
        listchars = {
 | 
			
		||||
          tab = ">-";
 | 
			
		||||
          eol = "↲";
 | 
			
		||||
          nbsp = "␣";
 | 
			
		||||
          trail = "•";
 | 
			
		||||
          extends = "⟩";
 | 
			
		||||
          precedes = "⟨";
 | 
			
		||||
        };
 | 
			
		||||
        showbreak = "↪";
 | 
			
		||||
      };
 | 
			
		||||
      showbreak = "↪";
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,21 +1,24 @@
 | 
			
		|||
{
 | 
			
		||||
  configs,
 | 
			
		||||
  config,
 | 
			
		||||
  lib,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
  programs.nixvim = {
 | 
			
		||||
    plugins.comment.enable = true;
 | 
			
		||||
    plugins.marks.enable = true;
 | 
			
		||||
    plugins.surround.enable = true;
 | 
			
		||||
    plugins.todo-comments.enable = true;
 | 
			
		||||
    plugins.leap = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      addDefaultMappings = true;
 | 
			
		||||
  config = lib.mkIf config.user.nvim.enable {
 | 
			
		||||
    programs.nixvim = {
 | 
			
		||||
      plugins.comment.enable = true;
 | 
			
		||||
      plugins.marks.enable = true;
 | 
			
		||||
      plugins.surround.enable = true;
 | 
			
		||||
      plugins.todo-comments.enable = true;
 | 
			
		||||
      plugins.leap = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        addDefaultMappings = true;
 | 
			
		||||
      };
 | 
			
		||||
      extraPlugins = with pkgs.vimPlugins; [
 | 
			
		||||
        vim-numbertoggle
 | 
			
		||||
        dressing-nvim
 | 
			
		||||
      ];
 | 
			
		||||
      extraConfigLua = ''require("dressing").setup({})'';
 | 
			
		||||
    };
 | 
			
		||||
    extraPlugins = with pkgs.vimPlugins; [
 | 
			
		||||
      vim-numbertoggle
 | 
			
		||||
      dressing-nvim
 | 
			
		||||
    ];
 | 
			
		||||
    extraConfigLua = ''require("dressing").setup({})'';
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,116 +1,119 @@
 | 
			
		|||
{
 | 
			
		||||
  configs,
 | 
			
		||||
  config,
 | 
			
		||||
  lib,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
  programs.nixvim = {
 | 
			
		||||
    plugins.telescope = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
  config = lib.mkIf config.user.nvim.enable {
 | 
			
		||||
    programs.nixvim = {
 | 
			
		||||
      plugins.telescope = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
      };
 | 
			
		||||
      plugins.which-key.registrations = {
 | 
			
		||||
        "<leader>f" = "+telescope";
 | 
			
		||||
        "<leader>fg" = "+telescope git";
 | 
			
		||||
      };
 | 
			
		||||
      keymaps = [
 | 
			
		||||
        {
 | 
			
		||||
          action = ":Telescope find_files<CR>";
 | 
			
		||||
          key = "<leader>ff";
 | 
			
		||||
          mode = "n";
 | 
			
		||||
          options = {
 | 
			
		||||
            silent = true;
 | 
			
		||||
            desc = "files";
 | 
			
		||||
          };
 | 
			
		||||
        }
 | 
			
		||||
        {
 | 
			
		||||
          action = ":Telescope live_grep<CR>";
 | 
			
		||||
          key = "<leader>fg";
 | 
			
		||||
          mode = "n";
 | 
			
		||||
          options = {
 | 
			
		||||
            silent = true;
 | 
			
		||||
            desc = "grep";
 | 
			
		||||
          };
 | 
			
		||||
        }
 | 
			
		||||
        {
 | 
			
		||||
          action = ":Telescope buffers<CR>";
 | 
			
		||||
          key = "<leader>fb";
 | 
			
		||||
          mode = "n";
 | 
			
		||||
          options = {
 | 
			
		||||
            silent = true;
 | 
			
		||||
            desc = "buffers";
 | 
			
		||||
          };
 | 
			
		||||
        }
 | 
			
		||||
        {
 | 
			
		||||
          action = ":Telescope marks<CR>";
 | 
			
		||||
          key = "<leader>fm";
 | 
			
		||||
          mode = "n";
 | 
			
		||||
          options = {
 | 
			
		||||
            silent = true;
 | 
			
		||||
            desc = "marks";
 | 
			
		||||
          };
 | 
			
		||||
        }
 | 
			
		||||
        {
 | 
			
		||||
          action = ":Telescope registers<CR>";
 | 
			
		||||
          key = "<leader>fr";
 | 
			
		||||
          mode = "n";
 | 
			
		||||
          options = {
 | 
			
		||||
            silent = true;
 | 
			
		||||
            desc = "registers";
 | 
			
		||||
          };
 | 
			
		||||
        }
 | 
			
		||||
        {
 | 
			
		||||
          action = ":Telescope keymaps<CR>";
 | 
			
		||||
          key = "<leader>fk";
 | 
			
		||||
          mode = "n";
 | 
			
		||||
          options = {
 | 
			
		||||
            silent = true;
 | 
			
		||||
            desc = "keymaps";
 | 
			
		||||
          };
 | 
			
		||||
        }
 | 
			
		||||
        {
 | 
			
		||||
          action = ":Telescope current_buffer_fuzzy_find<CR>";
 | 
			
		||||
          key = "<leader>fz";
 | 
			
		||||
          mode = "n";
 | 
			
		||||
          options = {
 | 
			
		||||
            silent = true;
 | 
			
		||||
            desc = "fuzzy find";
 | 
			
		||||
          };
 | 
			
		||||
        }
 | 
			
		||||
        {
 | 
			
		||||
          action = ":Telescope git_commits<CR>";
 | 
			
		||||
          key = "<leader>fgc";
 | 
			
		||||
          mode = "n";
 | 
			
		||||
          options = {
 | 
			
		||||
            silent = true;
 | 
			
		||||
            desc = "commits";
 | 
			
		||||
          };
 | 
			
		||||
        }
 | 
			
		||||
        {
 | 
			
		||||
          action = ":Telescope git_branches<CR>";
 | 
			
		||||
          key = "<leader>fgb";
 | 
			
		||||
          mode = "n";
 | 
			
		||||
          options = {
 | 
			
		||||
            silent = true;
 | 
			
		||||
            desc = "branches";
 | 
			
		||||
          };
 | 
			
		||||
        }
 | 
			
		||||
        {
 | 
			
		||||
          action = ":Telescope git_stash<CR>";
 | 
			
		||||
          key = "<leader>fgs";
 | 
			
		||||
          mode = "n";
 | 
			
		||||
          options = {
 | 
			
		||||
            silent = true;
 | 
			
		||||
            desc = "stash";
 | 
			
		||||
          };
 | 
			
		||||
        }
 | 
			
		||||
        {
 | 
			
		||||
          action = ":Telescope git_commits<CR>";
 | 
			
		||||
          key = "<leader>fgc";
 | 
			
		||||
          mode = "n";
 | 
			
		||||
          options = {
 | 
			
		||||
            silent = true;
 | 
			
		||||
            desc = "commits";
 | 
			
		||||
          };
 | 
			
		||||
        }
 | 
			
		||||
      ];
 | 
			
		||||
    };
 | 
			
		||||
    plugins.which-key.registrations = {
 | 
			
		||||
      "<leader>f" = "+telescope";
 | 
			
		||||
      "<leader>fg" = "+telescope git";
 | 
			
		||||
    };
 | 
			
		||||
    keymaps = [
 | 
			
		||||
      {
 | 
			
		||||
        action = ":Telescope find_files<CR>";
 | 
			
		||||
        key = "<leader>ff";
 | 
			
		||||
        mode = "n";
 | 
			
		||||
        options = {
 | 
			
		||||
          silent = true;
 | 
			
		||||
          desc = "files";
 | 
			
		||||
        };
 | 
			
		||||
      }
 | 
			
		||||
      {
 | 
			
		||||
        action = ":Telescope live_grep<CR>";
 | 
			
		||||
        key = "<leader>fg";
 | 
			
		||||
        mode = "n";
 | 
			
		||||
        options = {
 | 
			
		||||
          silent = true;
 | 
			
		||||
          desc = "grep";
 | 
			
		||||
        };
 | 
			
		||||
      }
 | 
			
		||||
      {
 | 
			
		||||
        action = ":Telescope buffers<CR>";
 | 
			
		||||
        key = "<leader>fb";
 | 
			
		||||
        mode = "n";
 | 
			
		||||
        options = {
 | 
			
		||||
          silent = true;
 | 
			
		||||
          desc = "buffers";
 | 
			
		||||
        };
 | 
			
		||||
      }
 | 
			
		||||
      {
 | 
			
		||||
        action = ":Telescope marks<CR>";
 | 
			
		||||
        key = "<leader>fm";
 | 
			
		||||
        mode = "n";
 | 
			
		||||
        options = {
 | 
			
		||||
          silent = true;
 | 
			
		||||
          desc = "marks";
 | 
			
		||||
        };
 | 
			
		||||
      }
 | 
			
		||||
      {
 | 
			
		||||
        action = ":Telescope registers<CR>";
 | 
			
		||||
        key = "<leader>fr";
 | 
			
		||||
        mode = "n";
 | 
			
		||||
        options = {
 | 
			
		||||
          silent = true;
 | 
			
		||||
          desc = "registers";
 | 
			
		||||
        };
 | 
			
		||||
      }
 | 
			
		||||
      {
 | 
			
		||||
        action = ":Telescope keymaps<CR>";
 | 
			
		||||
        key = "<leader>fk";
 | 
			
		||||
        mode = "n";
 | 
			
		||||
        options = {
 | 
			
		||||
          silent = true;
 | 
			
		||||
          desc = "keymaps";
 | 
			
		||||
        };
 | 
			
		||||
      }
 | 
			
		||||
      {
 | 
			
		||||
        action = ":Telescope current_buffer_fuzzy_find<CR>";
 | 
			
		||||
        key = "<leader>fz";
 | 
			
		||||
        mode = "n";
 | 
			
		||||
        options = {
 | 
			
		||||
          silent = true;
 | 
			
		||||
          desc = "fuzzy find";
 | 
			
		||||
        };
 | 
			
		||||
      }
 | 
			
		||||
      {
 | 
			
		||||
        action = ":Telescope git_commits<CR>";
 | 
			
		||||
        key = "<leader>fgc";
 | 
			
		||||
        mode = "n";
 | 
			
		||||
        options = {
 | 
			
		||||
          silent = true;
 | 
			
		||||
          desc = "commits";
 | 
			
		||||
        };
 | 
			
		||||
      }
 | 
			
		||||
      {
 | 
			
		||||
        action = ":Telescope git_branches<CR>";
 | 
			
		||||
        key = "<leader>fgb";
 | 
			
		||||
        mode = "n";
 | 
			
		||||
        options = {
 | 
			
		||||
          silent = true;
 | 
			
		||||
          desc = "branches";
 | 
			
		||||
        };
 | 
			
		||||
      }
 | 
			
		||||
      {
 | 
			
		||||
        action = ":Telescope git_stash<CR>";
 | 
			
		||||
        key = "<leader>fgs";
 | 
			
		||||
        mode = "n";
 | 
			
		||||
        options = {
 | 
			
		||||
          silent = true;
 | 
			
		||||
          desc = "stash";
 | 
			
		||||
        };
 | 
			
		||||
      }
 | 
			
		||||
      {
 | 
			
		||||
        action = ":Telescope git_commits<CR>";
 | 
			
		||||
        key = "<leader>fgc";
 | 
			
		||||
        mode = "n";
 | 
			
		||||
        options = {
 | 
			
		||||
          silent = true;
 | 
			
		||||
          desc = "commits";
 | 
			
		||||
        };
 | 
			
		||||
      }
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,36 +1,39 @@
 | 
			
		|||
{
 | 
			
		||||
  configs,
 | 
			
		||||
  config,
 | 
			
		||||
  lib,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
  programs.nixvim = {
 | 
			
		||||
    plugins.toggleterm = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      settings = {
 | 
			
		||||
        direction = "horizontal";
 | 
			
		||||
        insert_mappings = false;
 | 
			
		||||
        terminal_mappings = false;
 | 
			
		||||
        open_mapping = ''[[<c-\>]]'';
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
    keymaps = [
 | 
			
		||||
      {
 | 
			
		||||
        action = "function() Floatingterm:toggle() end";
 | 
			
		||||
        key = "<leader>s";
 | 
			
		||||
        lua = true;
 | 
			
		||||
        mode = "n";
 | 
			
		||||
        options = {
 | 
			
		||||
          silent = true;
 | 
			
		||||
          desc = "toggle scratch terminal";
 | 
			
		||||
  config = lib.mkIf config.user.nvim.enable {
 | 
			
		||||
    programs.nixvim = {
 | 
			
		||||
      plugins.toggleterm = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        settings = {
 | 
			
		||||
          direction = "horizontal";
 | 
			
		||||
          insert_mappings = false;
 | 
			
		||||
          terminal_mappings = false;
 | 
			
		||||
          open_mapping = ''[[<c-\>]]'';
 | 
			
		||||
        };
 | 
			
		||||
      }
 | 
			
		||||
    ];
 | 
			
		||||
    extraConfigLuaPre = ''
 | 
			
		||||
      local Terminal = require('toggleterm.terminal').Terminal
 | 
			
		||||
      Floatingterm = Terminal:new({
 | 
			
		||||
          hidden = true,
 | 
			
		||||
          direction = "float"
 | 
			
		||||
      })
 | 
			
		||||
    '';
 | 
			
		||||
      };
 | 
			
		||||
      keymaps = [
 | 
			
		||||
        {
 | 
			
		||||
          action = "function() Floatingterm:toggle() end";
 | 
			
		||||
          key = "<leader>s";
 | 
			
		||||
          lua = true;
 | 
			
		||||
          mode = "n";
 | 
			
		||||
          options = {
 | 
			
		||||
            silent = true;
 | 
			
		||||
            desc = "toggle scratch terminal";
 | 
			
		||||
          };
 | 
			
		||||
        }
 | 
			
		||||
      ];
 | 
			
		||||
      extraConfigLuaPre = ''
 | 
			
		||||
        local Terminal = require('toggleterm.terminal').Terminal
 | 
			
		||||
        Floatingterm = Terminal:new({
 | 
			
		||||
            hidden = true,
 | 
			
		||||
            direction = "float"
 | 
			
		||||
        })
 | 
			
		||||
      '';
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,7 +5,7 @@
 | 
			
		|||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
  config =
 | 
			
		||||
    lib.mkIf config.home.nvim.enable-treesitter
 | 
			
		||||
    lib.mkIf (config.user.nvim.enable-treesitter && config.user.nvim.enable)
 | 
			
		||||
    {
 | 
			
		||||
      programs.nixvim = {
 | 
			
		||||
        keymaps = [
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,19 +4,12 @@
 | 
			
		|||
  lib,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
  options = {
 | 
			
		||||
    home.nvim.enable-treesitter = lib.mkOption {
 | 
			
		||||
      default = false;
 | 
			
		||||
      type = lib.types.bool;
 | 
			
		||||
      description = ''
 | 
			
		||||
        enable nvim treesitter
 | 
			
		||||
      '';
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
  options.user.nvim.enable-treesitter = lib.mkEnableOption "enable nvim treesitter";
 | 
			
		||||
 | 
			
		||||
  config =
 | 
			
		||||
    lib.mkIf config.home.nvim.enable-treesitter
 | 
			
		||||
    lib.mkIf (config.user.nvim.enable-treesitter && config.user.nvim.enable)
 | 
			
		||||
    {
 | 
			
		||||
      home.nvim.enable-completions = true;
 | 
			
		||||
      user.nvim.enable-completions = true;
 | 
			
		||||
      programs.nixvim = {
 | 
			
		||||
        plugins.treesitter = {
 | 
			
		||||
          enable = true;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,7 +5,7 @@
 | 
			
		|||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
  config =
 | 
			
		||||
    lib.mkIf config.home.nvim.enable-treesitter
 | 
			
		||||
    lib.mkIf (config.user.nvim.enable-treesitter && config.user.nvim.enable)
 | 
			
		||||
    {
 | 
			
		||||
      programs.nixvim = {
 | 
			
		||||
        plugins.rainbow-delimiters = {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,7 +5,7 @@
 | 
			
		|||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
  config =
 | 
			
		||||
    lib.mkIf config.home.nvim.enable-treesitter
 | 
			
		||||
    lib.mkIf (config.user.nvim.enable-treesitter && config.user.nvim.enable)
 | 
			
		||||
    {
 | 
			
		||||
      programs.nixvim = let
 | 
			
		||||
        nu-grammar = pkgs.tree-sitter.buildGrammar {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,15 +1,18 @@
 | 
			
		|||
{
 | 
			
		||||
  configs,
 | 
			
		||||
  config,
 | 
			
		||||
  lib,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
  programs.nixvim = {
 | 
			
		||||
    opts = {
 | 
			
		||||
      timeout = true;
 | 
			
		||||
      timeoutlen = 300;
 | 
			
		||||
    };
 | 
			
		||||
    plugins.which-key = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
  config = lib.mkIf config.user.nvim.enable {
 | 
			
		||||
    programs.nixvim = {
 | 
			
		||||
      opts = {
 | 
			
		||||
        timeout = true;
 | 
			
		||||
        timeoutlen = 300;
 | 
			
		||||
      };
 | 
			
		||||
      plugins.which-key = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,7 +5,7 @@
 | 
			
		|||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
  options = {
 | 
			
		||||
    home.git = {
 | 
			
		||||
    user.git = {
 | 
			
		||||
      workProfile = {
 | 
			
		||||
        enable = lib.mkEnableOption "git work profile";
 | 
			
		||||
        email = lib.mkOption {
 | 
			
		||||
| 
						 | 
				
			
			@ -45,8 +45,8 @@
 | 
			
		|||
      };
 | 
			
		||||
      # difftastic.enable=true;
 | 
			
		||||
      # difftastic.background="dark";
 | 
			
		||||
      userEmail = config.home.git.profile.email;
 | 
			
		||||
      userName = config.home.git.profile.name;
 | 
			
		||||
      userEmail = config.user.git.profile.email;
 | 
			
		||||
      userName = config.user.git.profile.name;
 | 
			
		||||
      extraConfig = {
 | 
			
		||||
        init = {
 | 
			
		||||
          defaultBranch = "main";
 | 
			
		||||
| 
						 | 
				
			
			@ -75,11 +75,11 @@
 | 
			
		|||
        };
 | 
			
		||||
      };
 | 
			
		||||
      includes =
 | 
			
		||||
        if config.home.git.workProfile.enable
 | 
			
		||||
        if config.user.git.workProfile.enable
 | 
			
		||||
        then [
 | 
			
		||||
          {
 | 
			
		||||
            condition = "gitdir:~/work/**";
 | 
			
		||||
            contents.user.email = config.home.git.workProfile.email;
 | 
			
		||||
            contents.user.email = config.user.git.workProfile.email;
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
        else [];
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -46,7 +46,7 @@
 | 
			
		|||
      hostname = {
 | 
			
		||||
        ssh_only = false;
 | 
			
		||||
        ssh_symbol = "🌐";
 | 
			
		||||
        format = "[$hostname$ssh_symbol]($style)";
 | 
			
		||||
        format = "[$hostname $ssh_symbol]($style)";
 | 
			
		||||
        style = "bg:color_orange";
 | 
			
		||||
      };
 | 
			
		||||
      shell = {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,11 +5,11 @@
 | 
			
		|||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
  options = {
 | 
			
		||||
    home.enable-speech = lib.mkEnableOption "espeak";
 | 
			
		||||
    user.enable-speech = lib.mkEnableOption "espeak";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  config =
 | 
			
		||||
    lib.mkIf config.home.enable-speech
 | 
			
		||||
    lib.mkIf config.user.enable-speech
 | 
			
		||||
    {
 | 
			
		||||
      home.shellAliases = {
 | 
			
		||||
        say = "espeak -p 10 -s 150 -a 200";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue