From 478081af928e1557b325f4a4cbd5b67f079660d2 Mon Sep 17 00:00:00 2001 From: Arpit Chakladar <54011232+arpitchakladar@users.noreply.github.com> Date: Wed, 25 Sep 2024 19:41:02 +0530 Subject: Adding nnn file manager. Adding bspwm bindings to sxhkd only if the module is enabled. --- modules/tools/editor/neovim/config/default.nix | 4 + modules/tools/editor/neovim/config/keybindings.lua | 8 ++ modules/tools/editor/neovim/config/options.lua | 21 ++++ modules/tools/editor/neovim/default.nix | 11 +- modules/tools/editor/neovim/keybindings.lua | 8 -- modules/tools/editor/neovim/options.lua | 21 ---- modules/tools/editor/neovim/plugins/default.nix | 9 ++ modules/tools/editor/neovim/plugins/treesitter.nix | 2 +- modules/tools/file-manager/default.nix | 10 +- modules/tools/file-manager/lf/default.nix | 10 +- modules/tools/file-manager/lf/scripts/previewer.sh | 3 - modules/tools/file-manager/lsd/default.nix | 6 +- modules/tools/file-manager/nnn/default.nix | 15 +++ modules/tools/git/default.nix | 5 +- modules/tools/viewer/bat/default.nix | 12 +- modules/tools/viewer/bat/theme.nix | 124 --------------------- modules/tools/viewer/bat/theme.tmTheme.mustache | 120 ++++++++++++++++++++ 17 files changed, 210 insertions(+), 179 deletions(-) create mode 100644 modules/tools/editor/neovim/config/default.nix create mode 100644 modules/tools/editor/neovim/config/keybindings.lua create mode 100644 modules/tools/editor/neovim/config/options.lua delete mode 100644 modules/tools/editor/neovim/keybindings.lua delete mode 100644 modules/tools/editor/neovim/options.lua create mode 100644 modules/tools/editor/neovim/plugins/default.nix delete mode 100644 modules/tools/file-manager/lf/scripts/previewer.sh create mode 100644 modules/tools/file-manager/nnn/default.nix delete mode 100644 modules/tools/viewer/bat/theme.nix create mode 100644 modules/tools/viewer/bat/theme.tmTheme.mustache (limited to 'modules/tools') diff --git a/modules/tools/editor/neovim/config/default.nix b/modules/tools/editor/neovim/config/default.nix new file mode 100644 index 0000000..4514d2f --- /dev/null +++ b/modules/tools/editor/neovim/config/default.nix @@ -0,0 +1,4 @@ +'' +${builtins.readFile ./options.lua} +${builtins.readFile ./keybindings.lua} +'' diff --git a/modules/tools/editor/neovim/config/keybindings.lua b/modules/tools/editor/neovim/config/keybindings.lua new file mode 100644 index 0000000..3e8e0fa --- /dev/null +++ b/modules/tools/editor/neovim/config/keybindings.lua @@ -0,0 +1,8 @@ +-- Navigate splits +vim.keymap.set("n", "", ":wincmd h", { silent = true }); +vim.keymap.set("n", "", ":wincmd j", { silent = true }); +vim.keymap.set("n", "", ":wincmd k", { silent = true }); +vim.keymap.set("n", "", ":wincmd l", { silent = true }); + +-- NvimTree +vim.keymap.set("n", "", ":NvimTreeToggle", { silent = true }); diff --git a/modules/tools/editor/neovim/config/options.lua b/modules/tools/editor/neovim/config/options.lua new file mode 100644 index 0000000..b1fe9cb --- /dev/null +++ b/modules/tools/editor/neovim/config/options.lua @@ -0,0 +1,21 @@ +vim.g.mapleader = " "; +vim.g.maplocalleader = " "; + +vim.o.clipboard = "unnamedplus"; + +vim.o.number = true; +vim.o.list = true; +vim.o.listchars = "tab:| ,trail:_,lead:_"; + +vim.o.laststatus = 3; + +vim.o.signcolumn = "auto"; +vim.opt.fillchars = { eob = " " }; + +vim.o.tabstop = 2; +vim.o.shiftwidth = 2; +vim.o.expandtab = false; + +vim.o.updatetime = 300; + +vim.o.mouse = "a"; diff --git a/modules/tools/editor/neovim/default.nix b/modules/tools/editor/neovim/default.nix index 6cf3b50..87fad55 100644 --- a/modules/tools/editor/neovim/default.nix +++ b/modules/tools/editor/neovim/default.nix @@ -18,15 +18,8 @@ programs.neovim.extraLuaConfig = '' - ${builtins.readFile ./options.lua} - ${builtins.readFile ./keybindings.lua} - - -- Plugins configuration - ${builtins.readFile ./plugins/comment.lua} - ${builtins.readFile ./plugins/lualine.lua} - ${import ./plugins/treesitter.nix config} - ${builtins.readFile ./plugins/base16.lua} - ${builtins.readFile ./plugins/nvim-tree.lua} +${import ./config} +${import ./plugins { inherit config; }} ''; programs.neovim.plugins = with pkgs.vimPlugins; [ diff --git a/modules/tools/editor/neovim/keybindings.lua b/modules/tools/editor/neovim/keybindings.lua deleted file mode 100644 index 3e8e0fa..0000000 --- a/modules/tools/editor/neovim/keybindings.lua +++ /dev/null @@ -1,8 +0,0 @@ --- Navigate splits -vim.keymap.set("n", "", ":wincmd h", { silent = true }); -vim.keymap.set("n", "", ":wincmd j", { silent = true }); -vim.keymap.set("n", "", ":wincmd k", { silent = true }); -vim.keymap.set("n", "", ":wincmd l", { silent = true }); - --- NvimTree -vim.keymap.set("n", "", ":NvimTreeToggle", { silent = true }); diff --git a/modules/tools/editor/neovim/options.lua b/modules/tools/editor/neovim/options.lua deleted file mode 100644 index b1fe9cb..0000000 --- a/modules/tools/editor/neovim/options.lua +++ /dev/null @@ -1,21 +0,0 @@ -vim.g.mapleader = " "; -vim.g.maplocalleader = " "; - -vim.o.clipboard = "unnamedplus"; - -vim.o.number = true; -vim.o.list = true; -vim.o.listchars = "tab:| ,trail:_,lead:_"; - -vim.o.laststatus = 3; - -vim.o.signcolumn = "auto"; -vim.opt.fillchars = { eob = " " }; - -vim.o.tabstop = 2; -vim.o.shiftwidth = 2; -vim.o.expandtab = false; - -vim.o.updatetime = 300; - -vim.o.mouse = "a"; diff --git a/modules/tools/editor/neovim/plugins/default.nix b/modules/tools/editor/neovim/plugins/default.nix new file mode 100644 index 0000000..2df4e4a --- /dev/null +++ b/modules/tools/editor/neovim/plugins/default.nix @@ -0,0 +1,9 @@ +{ config }: + +'' +${builtins.readFile ./comment.lua} +${builtins.readFile ./lualine.lua} +${import ./treesitter.nix { inherit config; }} +${builtins.readFile ./base16.lua} +${builtins.readFile ./nvim-tree.lua} +'' diff --git a/modules/tools/editor/neovim/plugins/treesitter.nix b/modules/tools/editor/neovim/plugins/treesitter.nix index 05f1f2a..be0bdb6 100644 --- a/modules/tools/editor/neovim/plugins/treesitter.nix +++ b/modules/tools/editor/neovim/plugins/treesitter.nix @@ -1,4 +1,4 @@ -config: +{ config }: '' require("nvim-treesitter.configs").setup { diff --git a/modules/tools/file-manager/default.nix b/modules/tools/file-manager/default.nix index fc5eb46..760584a 100644 --- a/modules/tools/file-manager/default.nix +++ b/modules/tools/file-manager/default.nix @@ -1,8 +1,16 @@ -{ ... }: +{ lib, ... }: { imports = [ ./lf ./lsd + ./nnn ]; + + options.tools.file-manager = { + default = lib.mkOption { + type = lib.types.str; + description = "Path to the default file manager program."; + }; + }; } diff --git a/modules/tools/file-manager/lf/default.nix b/modules/tools/file-manager/lf/default.nix index 30ed421..4cfbba2 100644 --- a/modules/tools/file-manager/lf/default.nix +++ b/modules/tools/file-manager/lf/default.nix @@ -6,14 +6,20 @@ }; config = lib.mkIf config.tools.file-manager.lf.enable { + tools.file-manager.default = "${pkgs.nnn}/bin/lf"; programs.lf.enable = true; programs.lf.settings = { hidden = true; }; programs.lf.previewer.source = pkgs.writeShellScript "previewer.sh" - (builtins.readFile ./scripts/previewer.sh); - + '' +#!/bin/sh +unset COLORTERM +${if config.tools.viewer.bat.enable then + "bat -pp --line-range=:500 --color=always '$1'" +else "cat"} + ''; programs.lf.extraConfig = "set icons"; xdg.configFile."lf/icons".source = ./icons; diff --git a/modules/tools/file-manager/lf/scripts/previewer.sh b/modules/tools/file-manager/lf/scripts/previewer.sh deleted file mode 100644 index 407e0a0..0000000 --- a/modules/tools/file-manager/lf/scripts/previewer.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -unset COLORTERM -bat -pp --line-range=:500 --color=always "$1" diff --git a/modules/tools/file-manager/lsd/default.nix b/modules/tools/file-manager/lsd/default.nix index 5b940ab..d99413d 100644 --- a/modules/tools/file-manager/lsd/default.nix +++ b/modules/tools/file-manager/lsd/default.nix @@ -8,10 +8,6 @@ config = lib.mkIf config.tools.file-manager.lsd.enable { programs.lsd.enable = true; programs.lsd.enableAliases = true; - shell.alias."tree" = "${pkgs.lsd}/bin/lsd -a --tree"; - - programs.lsd.settings = { - icons.separator = " "; - }; + programs.lsd.settings.icons.separator = " "; }; } diff --git a/modules/tools/file-manager/nnn/default.nix b/modules/tools/file-manager/nnn/default.nix new file mode 100644 index 0000000..6244d04 --- /dev/null +++ b/modules/tools/file-manager/nnn/default.nix @@ -0,0 +1,15 @@ +{ config, pkgs, lib, ... }: + +{ + options.tools.file-manager.nnn = { + enable = lib.mkEnableOption "Enables nnn."; + }; + + config = lib.mkIf config.tools.file-manager.nnn.enable { + tools.file-manager.default = "${pkgs.nnn}/bin/nnn -H -d"; + programs.nnn.enable = true; + programs.nnn.package = pkgs.nnn.override ({ withNerdIcons = true; }); + programs.nnn.plugins.src = "${pkgs.nnn}/share/plugins"; + shell.alias."nnn" = "nnn -H -d"; + }; +} diff --git a/modules/tools/git/default.nix b/modules/tools/git/default.nix index 1dadacf..135cbc6 100644 --- a/modules/tools/git/default.nix +++ b/modules/tools/git/default.nix @@ -15,6 +15,9 @@ }; # The base directory of the credential file must exist - home.activation.createGitCacheDirectory = lib.hm.dag.entryAfter [ "writeBoundary" ] "mkdir -p ${config.xdg.cacheHome}/git"; + home.activation.createGitCacheDirectory + = lib.hm.dag.entryAfter + [ "writeBoundary" ] + "mkdir -p ${config.xdg.cacheHome}/git"; }; } diff --git a/modules/tools/viewer/bat/default.nix b/modules/tools/viewer/bat/default.nix index 915b4b2..73bdefd 100644 --- a/modules/tools/viewer/bat/default.nix +++ b/modules/tools/viewer/bat/default.nix @@ -1,4 +1,4 @@ -{ config, lib, ... }: +{ config, lib, pkgs, ... }: { options.tools.viewer.bat = { @@ -7,8 +7,12 @@ config = lib.mkIf config.tools.viewer.bat.enable { programs.bat.enable = true; - programs.bat.config.theme = "customTheme"; - xdg.configFile."bat/themes/customTheme.tmTheme".text - = import ./theme.nix config; + programs.bat.config.theme = "custom-theme"; + shell.alias."cbat" = "${pkgs.bat}/bin/bat -pp"; + home.sessionVariables."PAGER" = "${pkgs.bat}/bin/bat --paging always"; + xdg.configFile."bat/themes/custom-theme.tmTheme".source + = config.scheme { + template = builtins.readFile ./theme.tmTheme.mustache; + }; }; } diff --git a/modules/tools/viewer/bat/theme.nix b/modules/tools/viewer/bat/theme.nix deleted file mode 100644 index dc22ceb..0000000 --- a/modules/tools/viewer/bat/theme.nix +++ /dev/null @@ -1,124 +0,0 @@ -config: - -with config.scheme.withHashtag; -'' - - - - name - customTheme - settings - - - - settings - - background - ${base00} - foreground - ${base05} - caret - ${base07} - invisibles - ${base03} - lineHighlight - ${base02} - selection - ${base03} - - - - - - scope - comment - settings - - foreground - ${base04} - - - - - scope - string - settings - - foreground - ${base0A} - - - - - scope - constant.numeric - settings - - foreground - ${base09} - - - - - scope - variable - settings - - foreground - ${base08} - - - - - scope - keyword - settings - - foreground - ${base0D} - - - - - scope - support.function - settings - - foreground - ${base0E} - - - - - scope - constant.language - settings - - foreground - ${base0B} - - - - - scope - entity.name.tag - settings - - foreground - ${base0C} - - - - - scope - invalid - settings - - foreground - ${base0F} - - - - - -'' diff --git a/modules/tools/viewer/bat/theme.tmTheme.mustache b/modules/tools/viewer/bat/theme.tmTheme.mustache new file mode 100644 index 0000000..844b80d --- /dev/null +++ b/modules/tools/viewer/bat/theme.tmTheme.mustache @@ -0,0 +1,120 @@ + + + + name + customTheme + settings + + + + settings + + background + #{{base00-hex}} + foreground + #{{base05-hex}} + caret + #{{base07-hex}} + invisibles + #{{base03-hex}} + lineHighlight + #{{base02-hex}} + selection + #{{base03-hex}} + + + + + + scope + comment + settings + + foreground + #{{base04-hex}} + + + + + scope + string + settings + + foreground + #{{base0A-hex}} + + + + + scope + constant.numeric + settings + + foreground + #{{base09-hex}} + + + + + scope + variable + settings + + foreground + #{{base08-hex}} + + + + + scope + keyword + settings + + foreground + #{{base0D-hex}} + + + + + scope + support.function + settings + + foreground + #{{base0E-hex}} + + + + + scope + constant.language + settings + + foreground + #{{base0B-hex}} + + + + + scope + entity.name.tag + settings + + foreground + #{{base0C-hex}} + + + + + scope + invalid + settings + + foreground + #{{base0F-hex}} + + + + + + -- cgit v1.2.3