diff options
68 files changed, 528 insertions, 332 deletions
diff --git a/alacritty/default.nix b/alacritty/default.nix deleted file mode 100644 index e4c1551..0000000 --- a/alacritty/default.nix +++ /dev/null @@ -1,72 +0,0 @@ -{ pkgs, config, ... }: - -{ - programs.alacritty.enable = true; - - programs.alacritty.settings = { - window = { - opacity = 1.0; - padding = { - x = 4; - y = 0; - }; - decorations = "full"; - }; - - font = { - normal = { - family = "Fira Code Nerd Font"; - style = "Retina"; - }; - bold = { - family = "Fira Code Nerd Font"; - style = "Bold"; - }; - italic = { - family = "Fira Code Nerd Font"; - }; - size = 16.0; - }; - - colors = with config.scheme; { - primary = { - background = "0x${base00}"; - foreground = "0x${base05}"; - }; - normal = { - black = "0x${base00}"; - red = "0x${base08}"; - green = "0x${base0B}"; - yellow = "0x${base0A}"; - blue = "0x${base0D}"; - magenta = "0x${base0E}"; - cyan = "0x${base0C}"; - white = "0x${base05}"; - }; - bright = { - black = "0x${base03}"; - red = "0x${base08}"; - green = "0x${base0B}"; - yellow = "0x${base0A}"; - blue = "0x${base0D}"; - magenta = "0x${base0E}"; - cyan = "0x${base0C}"; - white = "0x${base07}"; - }; - dim = { - black = "0x${base01}"; - red = "0x${base08}"; - green = "0x${base0B}"; - yellow = "0x${base0A}"; - blue = "0x${base0D}"; - magenta = "0x${base0E}"; - cyan = "0x${base0C}"; - white = "0x${base04}"; - }; - }; - - shell = { - program = "${pkgs.zsh}/bin/zsh"; - }; - }; -} diff --git a/bash/default.nix b/bash/default.nix deleted file mode 100644 index 199aa10..0000000 --- a/bash/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ config, ... }: - -{ - programs.bash.enable = true; - programs.bash.historyFile = "${config.xdg.cacheHome}/bash/history"; - home.file."${config.xdg.cacheHome}/bash/histroy".text = ""; # Create the cache directory and histroy file -} diff --git a/bat/default.nix b/bat/default.nix deleted file mode 100644 index af6bfca..0000000 --- a/bat/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ config, ... }: - -{ - programs.bat.enable = true; - programs.bat.config.theme = "customTheme"; - xdg.configFile."bat/themes/customTheme.tmTheme".text - = import ./theme.nix config; -} diff --git a/bspwm/default.nix b/bspwm/default.nix deleted file mode 100644 index c0226f8..0000000 --- a/bspwm/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ config, ... }: - -{ - xsession.windowManager.bspwm.enable = true; - - xsession.windowManager.bspwm.settings = with config.scheme.withHashtag; { - window_gap = 5; - split_ratio = 0.5; - single_monocle = true; - borderless_monocle = false; - gapless_monocle = false; - focus_follows_pointer = true; - pointer_follows_focus = false; - pointer_motion_interval = 40; - pointer_modifier = "mod1"; # alt key - pointer_action1 = "resize_side"; - pointer_action2 = "move"; - pointer_action3 = "resize_corner"; - normal_border_color = base02; - active_border_color = base02; - focused_border_color = base03; - }; - - xsession.windowManager.bspwm.rules = { - "popup" = { - state = "floating"; - sticky = true; - }; - }; - - xsession.windowManager.bspwm.extraConfig = builtins.readFile ./bspwmrc; -} @@ -19,6 +19,7 @@ inherit pkgs; modules = [ ./home.nix + ./modules base16.homeManagerModule ]; }; diff --git a/git/default.nix b/git/default.nix deleted file mode 100644 index 5a32294..0000000 --- a/git/default.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ lib, config, ... }: - -{ - programs.git.enable = true; - programs.git.userEmail = "54011232+arpitchakladar@users.noreply.github.com"; - programs.git.userName = "Arpit Chakladar"; - programs.git.extraConfig = { - credential.helper = "store --file ${config.xdg.cacheHome}/git/credential"; - core.askPass = ""; - }; - - # The base directory of the credential file must exist - home.activation.createGitCacheDirectory = lib.hm.dag.entryAfter [ "writeBoundary" ] "mkdir -p ${config.xdg.cacheHome}/git"; -} @@ -2,26 +2,33 @@ { imports = [ - ./base16/default.nix - ./bspwm/default.nix - ./sxhkd/default.nix - ./polybar/default.nix - ./git/default.nix - ./xresources/default.nix - ./zsh/default.nix - ./bash/default.nix - ./alacritty/default.nix - ./nvim/default.nix - ./lf/default.nix - ./rofi/default.nix - ./htop/default.nix - ./lsd/default.nix - ./bat/default.nix + ./base16 ]; + home.username = "arpit"; home.homeDirectory = "/home/arpit"; home.stateVersion = "23.11"; + # Desktop + rofi.enable = true; + polybar.enable = true; + alacritty.enable = true; + bspwm.enable = true; + sxhkd.enable = true; + xinit.enable = true; + + # Shell + bash.enable = true; + zsh.enable = true; + + # Tools + neovim.enable = true; + lf.enable = true; + lsd.enable = true; + git.enable = true; + htop.enable = true; + bat.enable = true; + home.packages = with pkgs; [ (nerdfonts.override { fonts = [ "FiraCode" ]; }) ]; diff --git a/htop/default.nix b/htop/default.nix deleted file mode 100644 index 30315d4..0000000 --- a/htop/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ pkgs, ... }: - -{ - programs.htop.enable = true; - programs.htop.package = pkgs.htop-vim; -} diff --git a/lf/default.nix b/lf/default.nix deleted file mode 100644 index f8bb96b..0000000 --- a/lf/default.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ config, pkgs, ... }: - -{ - programs.lf.enable = true; - programs.lf.settings = { - hidden = true; - }; - programs.lf.previewer.source = pkgs.writeShellScript - "previewer.sh" - (builtins.readFile ./scripts/previewer.sh); - - programs.lf.extraConfig = "set icons"; - - xdg.configFile."lf/icons".source = ./icons; -} diff --git a/lsd/default.nix b/lsd/default.nix deleted file mode 100644 index 6698ef0..0000000 --- a/lsd/default.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ pkgs, ... }: - -{ - programs.lsd.enable = true; - programs.lsd.enableAliases = true; - programs.bash.shellAliases."tree" = "${pkgs.lsd}/bin/lsd -a --tree"; - - programs.lsd.settings = { - icons.separator = " "; - }; -} diff --git a/modules/default.nix b/modules/default.nix new file mode 100644 index 0000000..7845368 --- /dev/null +++ b/modules/default.nix @@ -0,0 +1,9 @@ +{ ... }: + +{ + imports = [ + ./desktop + ./shell + ./tools + ]; +} diff --git a/modules/desktop/default.nix b/modules/desktop/default.nix new file mode 100644 index 0000000..e15cd53 --- /dev/null +++ b/modules/desktop/default.nix @@ -0,0 +1,11 @@ +{ lib, config, ... }: + +{ + imports = [ + ./popup-manager + ./status-bar + ./terminal + ./window-manager + ./xresources + ]; +} diff --git a/modules/desktop/popup-manager/default.nix b/modules/desktop/popup-manager/default.nix new file mode 100644 index 0000000..8c82ea7 --- /dev/null +++ b/modules/desktop/popup-manager/default.nix @@ -0,0 +1,7 @@ +{ lib, ... }: + +{ + imports = [ + ./rofi + ]; +} diff --git a/modules/desktop/popup-manager/rofi/default.nix b/modules/desktop/popup-manager/rofi/default.nix new file mode 100644 index 0000000..fdf7d3e --- /dev/null +++ b/modules/desktop/popup-manager/rofi/default.nix @@ -0,0 +1,13 @@ +{ config, lib, ... }: + +{ + options = { + rofi.enable = lib.mkEnableOption "Enables rofi."; + }; + + config = lib.mkIf config.rofi.enable { + programs.rofi.enable = true; + programs.rofi.font = "FiraCode Nerd Font 16"; + programs.rofi.theme = import ./theme/default.nix config; + }; +} diff --git a/rofi/theme/default.nix b/modules/desktop/popup-manager/rofi/theme/default.nix index b0b8173..b0b8173 100644 --- a/rofi/theme/default.nix +++ b/modules/desktop/popup-manager/rofi/theme/default.nix diff --git a/rofi/theme/theme.rasi b/modules/desktop/popup-manager/rofi/theme/theme.rasi index 9d808b9..9d808b9 100644 --- a/rofi/theme/theme.rasi +++ b/modules/desktop/popup-manager/rofi/theme/theme.rasi diff --git a/modules/desktop/status-bar/default.nix b/modules/desktop/status-bar/default.nix new file mode 100644 index 0000000..124c830 --- /dev/null +++ b/modules/desktop/status-bar/default.nix @@ -0,0 +1,7 @@ +{ lib, ... }: + +{ + imports = [ + ./polybar + ]; +} diff --git a/polybar/bars/main.nix b/modules/desktop/status-bar/polybar/bars/main.nix index 630664d..630664d 100644 --- a/polybar/bars/main.nix +++ b/modules/desktop/status-bar/polybar/bars/main.nix diff --git a/modules/desktop/status-bar/polybar/default.nix b/modules/desktop/status-bar/polybar/default.nix new file mode 100644 index 0000000..11f4f1a --- /dev/null +++ b/modules/desktop/status-bar/polybar/default.nix @@ -0,0 +1,24 @@ +{ config, lib, ... }: + +{ + options = { + polybar.enable = lib.mkEnableOption "Enables polybar."; + }; + + config = lib.mkIf config.polybar.enable { + services.polybar.enable = true; + services.polybar.script = "polybar main &"; + + services.polybar.config = { + "bar/main" = import ./bars/main.nix config; + "module/xwindow" = import ./modules/xwindow.nix config; + "module/bspwm" = import ./modules/bspwm.nix config; + "module/cpu" = import ./modules/cpu.nix config; + "module/memory" = import ./modules/memory.nix config; + "module/date" = import ./modules/date.nix config; + "module/time" = import ./modules/time.nix config; + "module/battery" = import ./modules/battery.nix config; + "module/kernel-version" = import ./modules/kernel-version.nix config; + }; + }; +} diff --git a/polybar/modules/battery.nix b/modules/desktop/status-bar/polybar/modules/battery.nix index 9860c3c..9860c3c 100644 --- a/polybar/modules/battery.nix +++ b/modules/desktop/status-bar/polybar/modules/battery.nix diff --git a/polybar/modules/bspwm.nix b/modules/desktop/status-bar/polybar/modules/bspwm.nix index 7ec5c6d..7ec5c6d 100644 --- a/polybar/modules/bspwm.nix +++ b/modules/desktop/status-bar/polybar/modules/bspwm.nix diff --git a/polybar/modules/cpu.nix b/modules/desktop/status-bar/polybar/modules/cpu.nix index f118990..f118990 100644 --- a/polybar/modules/cpu.nix +++ b/modules/desktop/status-bar/polybar/modules/cpu.nix diff --git a/polybar/modules/date.nix b/modules/desktop/status-bar/polybar/modules/date.nix index 11a5934..11a5934 100644 --- a/polybar/modules/date.nix +++ b/modules/desktop/status-bar/polybar/modules/date.nix diff --git a/polybar/modules/kernel-version.nix b/modules/desktop/status-bar/polybar/modules/kernel-version.nix index a900264..a900264 100644 --- a/polybar/modules/kernel-version.nix +++ b/modules/desktop/status-bar/polybar/modules/kernel-version.nix diff --git a/polybar/modules/memory.nix b/modules/desktop/status-bar/polybar/modules/memory.nix index 1aff8a3..1aff8a3 100644 --- a/polybar/modules/memory.nix +++ b/modules/desktop/status-bar/polybar/modules/memory.nix diff --git a/polybar/modules/time.nix b/modules/desktop/status-bar/polybar/modules/time.nix index e4c7cbe..e4c7cbe 100644 --- a/polybar/modules/time.nix +++ b/modules/desktop/status-bar/polybar/modules/time.nix diff --git a/polybar/modules/xwindow.nix b/modules/desktop/status-bar/polybar/modules/xwindow.nix index 23245ba..23245ba 100644 --- a/polybar/modules/xwindow.nix +++ b/modules/desktop/status-bar/polybar/modules/xwindow.nix diff --git a/modules/desktop/terminal/alacritty/default.nix b/modules/desktop/terminal/alacritty/default.nix new file mode 100644 index 0000000..0fe56e0 --- /dev/null +++ b/modules/desktop/terminal/alacritty/default.nix @@ -0,0 +1,78 @@ +{ pkgs, config, lib, ... }: + +{ + options = { + alacritty.enable = lib.mkEnableOption "Enables alacritty."; + }; + + config = lib.mkIf config.alacritty.enable { + programs.alacritty.enable = true; + + programs.alacritty.settings = { + window = { + opacity = 1.0; + padding = { + x = 4; + y = 0; + }; + decorations = "full"; + }; + + font = { + normal = { + family = "Fira Code Nerd Font"; + style = "Retina"; + }; + bold = { + family = "Fira Code Nerd Font"; + style = "Bold"; + }; + italic = { + family = "Fira Code Nerd Font"; + }; + size = 16.0; + }; + + colors = with config.scheme; { + primary = { + background = "0x${base00}"; + foreground = "0x${base05}"; + }; + normal = { + black = "0x${base00}"; + red = "0x${base08}"; + green = "0x${base0B}"; + yellow = "0x${base0A}"; + blue = "0x${base0D}"; + magenta = "0x${base0E}"; + cyan = "0x${base0C}"; + white = "0x${base05}"; + }; + bright = { + black = "0x${base03}"; + red = "0x${base08}"; + green = "0x${base0B}"; + yellow = "0x${base0A}"; + blue = "0x${base0D}"; + magenta = "0x${base0E}"; + cyan = "0x${base0C}"; + white = "0x${base07}"; + }; + dim = { + black = "0x${base01}"; + red = "0x${base08}"; + green = "0x${base0B}"; + yellow = "0x${base0A}"; + blue = "0x${base0D}"; + magenta = "0x${base0E}"; + cyan = "0x${base0C}"; + white = "0x${base04}"; + }; + }; + + shell = { + program = "${pkgs.zsh}/bin/zsh"; + }; + }; + }; +} diff --git a/modules/desktop/terminal/default.nix b/modules/desktop/terminal/default.nix new file mode 100644 index 0000000..6a0cfc8 --- /dev/null +++ b/modules/desktop/terminal/default.nix @@ -0,0 +1,7 @@ +{ lib, ... }: + +{ + imports = [ + ./alacritty + ]; +} diff --git a/bspwm/bspwmrc b/modules/desktop/window-manager/bspwm/bspwmrc index 8a3a35a..8a3a35a 100644 --- a/bspwm/bspwmrc +++ b/modules/desktop/window-manager/bspwm/bspwmrc diff --git a/modules/desktop/window-manager/bspwm/default.nix b/modules/desktop/window-manager/bspwm/default.nix new file mode 100644 index 0000000..643d78b --- /dev/null +++ b/modules/desktop/window-manager/bspwm/default.nix @@ -0,0 +1,38 @@ +{ config, lib, ... }: + +{ + options = { + bspwm.enable = lib.mkEnableOption "Enables bspwm."; + }; + + config = lib.mkIf config.bspwm.enable { + xsession.windowManager.bspwm.enable = true; + + xsession.windowManager.bspwm.settings = with config.scheme.withHashtag; { + window_gap = 5; + split_ratio = 0.5; + single_monocle = true; + borderless_monocle = false; + gapless_monocle = false; + focus_follows_pointer = true; + pointer_follows_focus = false; + pointer_motion_interval = 40; + pointer_modifier = "mod1"; # alt key + pointer_action1 = "resize_side"; + pointer_action2 = "move"; + pointer_action3 = "resize_corner"; + normal_border_color = base02; + active_border_color = base02; + focused_border_color = base03; + }; + + xsession.windowManager.bspwm.rules = { + "popup" = { + state = "floating"; + sticky = true; + }; + }; + + xsession.windowManager.bspwm.extraConfig = builtins.readFile ./bspwmrc; + }; +} diff --git a/modules/desktop/window-manager/default.nix b/modules/desktop/window-manager/default.nix new file mode 100644 index 0000000..6e9b9f8 --- /dev/null +++ b/modules/desktop/window-manager/default.nix @@ -0,0 +1,8 @@ +{ lib, ... }: + +{ + imports = [ + ./bspwm + ./sxhkd + ]; +} diff --git a/modules/desktop/window-manager/sxhkd/default.nix b/modules/desktop/window-manager/sxhkd/default.nix new file mode 100644 index 0000000..29261b9 --- /dev/null +++ b/modules/desktop/window-manager/sxhkd/default.nix @@ -0,0 +1,79 @@ +{ pkgs, config, lib, ... }: + +{ + options = { + sxhkd.enable = lib.mkEnableOption "Enables sxhkd."; + }; + + config = lib.mkIf config.sxhkd.enable { + services.sxhkd.enable = true; + + services.sxhkd.keybindings = + let + modKey = "alt"; + createKeybinding = keybinding: description: "# ${description}\n${modKey} + ${keybinding}"; + in { + ${(createKeybinding + "s" + "Show keybindings.")} + = pkgs.writeShellScript + "show-keybindings.sh" + (builtins.readFile ./scripts/show-keybindings.sh); + + ${(createKeybinding + "r" + "Launch rofi.")} + = "rofi -show run"; + + ${(createKeybinding + "t" + "Launch terminal.")} + = "alacritty"; + + ${(createKeybinding + "f" + "Launch File Explorer.")} + = "alacritty -t 'File Explorer' --class 'popup' -e lf"; + + ${(createKeybinding + "q" + "Kill current window.")} + = "bspc node -c"; + + ${(createKeybinding + "{1-9,0}" + "Switch workspace.")} + = "bspc desktop -f {1-9,10}"; + + ${(createKeybinding + "shift + {1-9,0}" + "Move window to workspace.")} + = "bspc node -d {1-9,10} --follow"; + + ${(createKeybinding + "{n,d,m}" + "Set current window mode (tiled, floating, fullscreen).")} + = "bspc node focused -t {tiled,floating,fullscreen}"; + + ${(createKeybinding + "{_,shift + }{h,j,k,l}" + "Navigate between windows.")} + = "bspc node --{focus,swap} {west,south,north,east}"; + + # the indentation for each line is required to work with the help prompt + ${(createKeybinding + "ctrl + {h,j,k,l}" + "Resize current window.")} + = '' + {bspc node @parent/second -z left -20 0; \ + bspc node @parent/first -z right -20 0, \ + bspc node @parent/second -z top 0 +20; \ + bspc node @parent/first -z bottom 0 +20, \ + bspc node @parent/first -z bottom 0 -20; \ + bspc node @parent/second -z top 0 -20, \ + bspc node @parent/first -z right +20 0; \ + bspc node @parent/second -z left +20 0} + ''; + }; + }; +} diff --git a/sxhkd/scripts/show-keybindings.sh b/modules/desktop/window-manager/sxhkd/scripts/show-keybindings.sh index db7863d..db7863d 100644 --- a/sxhkd/scripts/show-keybindings.sh +++ b/modules/desktop/window-manager/sxhkd/scripts/show-keybindings.sh diff --git a/modules/desktop/xresources/default.nix b/modules/desktop/xresources/default.nix new file mode 100644 index 0000000..65eb812 --- /dev/null +++ b/modules/desktop/xresources/default.nix @@ -0,0 +1,7 @@ +{ lib, ... }: + +{ + imports = [ + ./xinit + ]; +} diff --git a/modules/desktop/xresources/xinit/default.nix b/modules/desktop/xresources/xinit/default.nix new file mode 100644 index 0000000..f5069fa --- /dev/null +++ b/modules/desktop/xresources/xinit/default.nix @@ -0,0 +1,14 @@ +{ lib, config, ... }: + +{ + options = { + xinit.enable = lib.mkEnableOption "Enables xinit."; + }; + + config = lib.mkIf config.xinit.enable { + home.file.".xinitrc" = { + source = ./xinitrc; + executable = true; + }; + }; +} diff --git a/xresources/xinitrc b/modules/desktop/xresources/xinit/xinitrc index 2ac4486..2ac4486 100644 --- a/xresources/xinitrc +++ b/modules/desktop/xresources/xinit/xinitrc diff --git a/modules/shell/bash/default.nix b/modules/shell/bash/default.nix new file mode 100644 index 0000000..f26e3d8 --- /dev/null +++ b/modules/shell/bash/default.nix @@ -0,0 +1,13 @@ +{ config, lib, ... }: + +{ + options = { + bash.enable = lib.mkEnableOption "Enables bash."; + }; + + config = lib.mkIf config.bash.enable { + programs.bash.enable = true; + programs.bash.historyFile = "${config.xdg.cacheHome}/bash/history"; + home.file."${config.xdg.cacheHome}/bash/histroy".text = ""; # Create the cache directory and histroy file + }; +} diff --git a/modules/shell/default.nix b/modules/shell/default.nix new file mode 100644 index 0000000..e4c3964 --- /dev/null +++ b/modules/shell/default.nix @@ -0,0 +1,8 @@ +{ lib, config, ... }: + +{ + imports = [ + ./bash + ./zsh + ]; +} diff --git a/modules/shell/zsh/default.nix b/modules/shell/zsh/default.nix new file mode 100644 index 0000000..b4ea77a --- /dev/null +++ b/modules/shell/zsh/default.nix @@ -0,0 +1,15 @@ +{ config, lib, ... }: + +{ + options = { + zsh.enable = lib.mkEnableOption "Enables zsh."; + }; + + config = lib.mkIf config.zsh.enable { + programs.zsh.enable = true; + programs.zsh.dotDir = ".config/zsh"; + programs.zsh.history.path = "${config.xdg.cacheHome}/zsh/history"; + programs.zsh.initExtra = builtins.readFile ./zshrc; + programs.zsh.shellAliases = config.programs.bash.shellAliases; + }; +} diff --git a/zsh/zshrc b/modules/shell/zsh/zshrc index 528bf68..528bf68 100644 --- a/zsh/zshrc +++ b/modules/shell/zsh/zshrc diff --git a/modules/tools/default.nix b/modules/tools/default.nix new file mode 100644 index 0000000..bf96557 --- /dev/null +++ b/modules/tools/default.nix @@ -0,0 +1,11 @@ +{ lib, config, ... }: + +{ + imports = [ + ./editor + ./file-manager + ./git + ./system-monitor + ./viewer + ]; +} diff --git a/modules/tools/editor/default.nix b/modules/tools/editor/default.nix new file mode 100644 index 0000000..1a146bf --- /dev/null +++ b/modules/tools/editor/default.nix @@ -0,0 +1,7 @@ +{ lib, config, ... }: + +{ + imports = [ + ./neovim + ]; +} diff --git a/modules/tools/editor/neovim/default.nix b/modules/tools/editor/neovim/default.nix new file mode 100644 index 0000000..e06ec88 --- /dev/null +++ b/modules/tools/editor/neovim/default.nix @@ -0,0 +1,43 @@ +{ pkgs, config, lib, ... }: + +{ + options = { + neovim.enable = lib.mkEnableOption "Enables neovim."; + }; + + config = lib.mkIf config.neovim.enable { + programs.neovim.enable = true; + programs.neovim.viAlias = true; + programs.neovim.vimAlias = true; + programs.neovim.vimdiffAlias = true; + programs.neovim.defaultEditor = true; + + programs.neovim.extraPackages = with pkgs; [ + gcc # Required for treesitter + ]; + + 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} + ''; + + programs.neovim.plugins = with pkgs.vimPlugins; [ + comment-nvim + lualine-nvim + nvim-treesitter + nvim-web-devicons + nvim-tree-lua + (base16-vim.overrideAttrs (old: { + patchPhase = "ln -s ${config.scheme base16-vim} colors/base16-scheme.vim"; + })) + ]; + }; +} diff --git a/nvim/keybindings.lua b/modules/tools/editor/neovim/keybindings.lua index 3e8e0fa..3e8e0fa 100644 --- a/nvim/keybindings.lua +++ b/modules/tools/editor/neovim/keybindings.lua diff --git a/nvim/options.lua b/modules/tools/editor/neovim/options.lua index b1fe9cb..b1fe9cb 100644 --- a/nvim/options.lua +++ b/modules/tools/editor/neovim/options.lua diff --git a/nvim/plugins/base16.lua b/modules/tools/editor/neovim/plugins/base16.lua index 9843b76..9843b76 100644 --- a/nvim/plugins/base16.lua +++ b/modules/tools/editor/neovim/plugins/base16.lua diff --git a/nvim/plugins/comment.lua b/modules/tools/editor/neovim/plugins/comment.lua index 9086261..9086261 100644 --- a/nvim/plugins/comment.lua +++ b/modules/tools/editor/neovim/plugins/comment.lua diff --git a/nvim/plugins/lualine.lua b/modules/tools/editor/neovim/plugins/lualine.lua index ba2eda6..ba2eda6 100644 --- a/nvim/plugins/lualine.lua +++ b/modules/tools/editor/neovim/plugins/lualine.lua diff --git a/nvim/plugins/nvim-tree.lua b/modules/tools/editor/neovim/plugins/nvim-tree.lua index c6c4102..c6c4102 100644 --- a/nvim/plugins/nvim-tree.lua +++ b/modules/tools/editor/neovim/plugins/nvim-tree.lua diff --git a/nvim/plugins/treesitter.nix b/modules/tools/editor/neovim/plugins/treesitter.nix index 05f1f2a..05f1f2a 100644 --- a/nvim/plugins/treesitter.nix +++ b/modules/tools/editor/neovim/plugins/treesitter.nix diff --git a/modules/tools/file-manager/default.nix b/modules/tools/file-manager/default.nix new file mode 100644 index 0000000..d127a66 --- /dev/null +++ b/modules/tools/file-manager/default.nix @@ -0,0 +1,8 @@ +{ lib, config, ... }: + +{ + imports = [ + ./lf + ./lsd + ]; +} diff --git a/modules/tools/file-manager/lf/default.nix b/modules/tools/file-manager/lf/default.nix new file mode 100644 index 0000000..00784cf --- /dev/null +++ b/modules/tools/file-manager/lf/default.nix @@ -0,0 +1,21 @@ +{ config, pkgs, lib, ... }: + +{ + options = { + lf.enable = lib.mkEnableOption "Enables lf."; + }; + + config = lib.mkIf config.lf.enable { + programs.lf.enable = true; + programs.lf.settings = { + hidden = true; + }; + programs.lf.previewer.source = pkgs.writeShellScript + "previewer.sh" + (builtins.readFile ./scripts/previewer.sh); + + programs.lf.extraConfig = "set icons"; + + xdg.configFile."lf/icons".source = ./icons; + }; +} diff --git a/lf/icons b/modules/tools/file-manager/lf/icons index 2e9d8a2..2e9d8a2 100644 --- a/lf/icons +++ b/modules/tools/file-manager/lf/icons diff --git a/lf/scripts/previewer.sh b/modules/tools/file-manager/lf/scripts/previewer.sh index 407e0a0..407e0a0 100644 --- a/lf/scripts/previewer.sh +++ b/modules/tools/file-manager/lf/scripts/previewer.sh diff --git a/modules/tools/file-manager/lsd/default.nix b/modules/tools/file-manager/lsd/default.nix new file mode 100644 index 0000000..0f57e6b --- /dev/null +++ b/modules/tools/file-manager/lsd/default.nix @@ -0,0 +1,17 @@ +{ pkgs, lib, config, ... }: + +{ + options = { + lsd.enable = lib.mkEnableOption "Enables lsd."; + }; + + config = lib.mkIf config.lsd.enable { + programs.lsd.enable = true; + programs.lsd.enableAliases = true; + programs.bash.shellAliases."tree" = "${pkgs.lsd}/bin/lsd -a --tree"; + + programs.lsd.settings = { + icons.separator = " "; + }; + }; +} diff --git a/modules/tools/git/default.nix b/modules/tools/git/default.nix new file mode 100644 index 0000000..7396cb8 --- /dev/null +++ b/modules/tools/git/default.nix @@ -0,0 +1,20 @@ +{ lib, config, ... }: + +{ + options = { + git.enable = lib.mkEnableOption "Enables git."; + }; + + config = lib.mkIf config.git.enable { + programs.git.enable = true; + programs.git.userEmail = "54011232+arpitchakladar@users.noreply.github.com"; + programs.git.userName = "Arpit Chakladar"; + programs.git.extraConfig = { + credential.helper = "store --file ${config.xdg.cacheHome}/git/credential"; + core.askPass = ""; + }; + + # The base directory of the credential file must exist + home.activation.createGitCacheDirectory = lib.hm.dag.entryAfter [ "writeBoundary" ] "mkdir -p ${config.xdg.cacheHome}/git"; + }; +} diff --git a/modules/tools/system-monitor/default.nix b/modules/tools/system-monitor/default.nix new file mode 100644 index 0000000..a5b569c --- /dev/null +++ b/modules/tools/system-monitor/default.nix @@ -0,0 +1,7 @@ +{ ... }: + +{ + imports = [ + ./htop + ]; +} diff --git a/modules/tools/system-monitor/htop/default.nix b/modules/tools/system-monitor/htop/default.nix new file mode 100644 index 0000000..f27174a --- /dev/null +++ b/modules/tools/system-monitor/htop/default.nix @@ -0,0 +1,12 @@ +{ pkgs, lib, config, ... }: + +{ + options = { + htop.enable = lib.mkEnableOption "Enables htop."; + }; + + config = lib.mkIf config.htop.enable { + programs.htop.enable = true; + programs.htop.package = pkgs.htop-vim; + }; +} diff --git a/modules/tools/viewer/bat/default.nix b/modules/tools/viewer/bat/default.nix new file mode 100644 index 0000000..cc01f82 --- /dev/null +++ b/modules/tools/viewer/bat/default.nix @@ -0,0 +1,14 @@ +{ config, lib, ... }: + +{ + options = { + bat.enable = lib.mkEnableOption "Enables bat."; + }; + + config = lib.mkIf config.bat.enable { + programs.bat.enable = true; + programs.bat.config.theme = "customTheme"; + xdg.configFile."bat/themes/customTheme.tmTheme".text + = import ./theme.nix config; + }; +} diff --git a/bat/theme.nix b/modules/tools/viewer/bat/theme.nix index e345ee4..e345ee4 100644 --- a/bat/theme.nix +++ b/modules/tools/viewer/bat/theme.nix diff --git a/modules/tools/viewer/default.nix b/modules/tools/viewer/default.nix new file mode 100644 index 0000000..dde782b --- /dev/null +++ b/modules/tools/viewer/default.nix @@ -0,0 +1,7 @@ +{ lib, config, ... }: + +{ + imports = [ + ./bat + ]; +} diff --git a/nvim/default.nix b/nvim/default.nix deleted file mode 100644 index 73dc359..0000000 --- a/nvim/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ pkgs, config, ... }: - -{ - programs.neovim.enable = true; - programs.neovim.viAlias = true; - programs.neovim.vimAlias = true; - programs.neovim.vimdiffAlias = true; - programs.neovim.defaultEditor = true; - - programs.neovim.extraPackages = with pkgs; [ - gcc # Required for treesitter - ]; - - 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} -''; - - programs.neovim.plugins = with pkgs.vimPlugins; [ - comment-nvim - lualine-nvim - nvim-treesitter - nvim-web-devicons - nvim-tree-lua - (base16-vim.overrideAttrs (old: { - patchPhase = "ln -s ${config.scheme base16-vim} colors/base16-scheme.vim"; - })) - ]; -} diff --git a/polybar/default.nix b/polybar/default.nix deleted file mode 100644 index 8eec80f..0000000 --- a/polybar/default.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ config, ... }: - -{ - services.polybar.enable = true; - services.polybar.script = "polybar main &"; - - services.polybar.config = { - "bar/main" = import ./bars/main.nix config; - "module/xwindow" = import ./modules/xwindow.nix config; - "module/bspwm" = import ./modules/bspwm.nix config; - "module/cpu" = import ./modules/cpu.nix config; - "module/memory" = import ./modules/memory.nix config; - "module/date" = import ./modules/date.nix config; - "module/time" = import ./modules/time.nix config; - "module/battery" = import ./modules/battery.nix config; - "module/kernel-version" = import ./modules/kernel-version.nix config; - }; -} diff --git a/rofi/default.nix b/rofi/default.nix deleted file mode 100644 index ad75900..0000000 --- a/rofi/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ config, ... }: - -{ - programs.rofi.enable = true; - programs.rofi.font = "FiraCode Nerd Font 16"; - programs.rofi.theme = import ./theme/default.nix config; -} diff --git a/sxhkd/default.nix b/sxhkd/default.nix deleted file mode 100644 index c481136..0000000 --- a/sxhkd/default.nix +++ /dev/null @@ -1,73 +0,0 @@ -{ pkgs, config, ... }: - -{ - services.sxhkd.enable = true; - - services.sxhkd.keybindings = - let - modKey = "alt"; - createKeybinding = keybinding: description: "# ${description}\n${modKey} + ${keybinding}"; - in { - ${(createKeybinding - "s" - "Show keybindings.")} - = pkgs.writeShellScript - "show-keybindings.sh" - (builtins.readFile ./scripts/show-keybindings.sh); - - ${(createKeybinding - "r" - "Launch rofi.")} - = "rofi -show run"; - - ${(createKeybinding - "t" - "Launch terminal.")} - = "alacritty"; - - ${(createKeybinding - "f" - "Launch File Explorer.")} - = "alacritty -t 'File Explorer' --class 'popup' -e lf"; - - ${(createKeybinding - "q" - "Kill current window.")} - = "bspc node -c"; - - ${(createKeybinding - "{1-9,0}" - "Switch workspace.")} - = "bspc desktop -f {1-9,10}"; - - ${(createKeybinding - "shift + {1-9,0}" - "Move window to workspace.")} - = "bspc node -d {1-9,10} --follow"; - - ${(createKeybinding - "{n,d,m}" - "Set current window mode (tiled, floating, fullscreen).")} - = "bspc node focused -t {tiled,floating,fullscreen}"; - - ${(createKeybinding - "{_,shift + }{h,j,k,l}" - "Navigate between windows.")} - = "bspc node --{focus,swap} {west,south,north,east}"; - - # the indentation for each line is required to work with the help prompt - ${(createKeybinding - "ctrl + {h,j,k,l}" - "Resize current window.")} - = '' - {bspc node @parent/second -z left -20 0; \ - bspc node @parent/first -z right -20 0, \ - bspc node @parent/second -z top 0 +20; \ - bspc node @parent/first -z bottom 0 +20, \ - bspc node @parent/first -z bottom 0 -20; \ - bspc node @parent/second -z top 0 -20, \ - bspc node @parent/first -z right +20 0; \ - bspc node @parent/second -z left +20 0} - ''; - }; -} diff --git a/xresources/default.nix b/xresources/default.nix deleted file mode 100644 index 34f986c..0000000 --- a/xresources/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ ... }: - -{ - home.file.".xinitrc" = { - source = ./xinitrc; - executable = true; - }; -} diff --git a/zsh/default.nix b/zsh/default.nix deleted file mode 100644 index 1951933..0000000 --- a/zsh/default.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ config, ... }: - -{ - programs.zsh.enable = true; - programs.zsh.dotDir = ".config/zsh"; - programs.zsh.history.path = "${config.xdg.cacheHome}/zsh/history"; - programs.zsh.initExtra = builtins.readFile ./zshrc; - programs.zsh.shellAliases = config.programs.bash.shellAliases; -} |
