aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArpit Chakladar <54011232+arpitchakladar@users.noreply.github.com>2024-09-24 23:13:51 +0530
committerArpit Chakladar <54011232+arpitchakladar@users.noreply.github.com>2024-09-24 23:13:51 +0530
commitc0c5087218c27e31c3e6f66f3937bff22fa0f647 (patch)
treedede2292db1423cef901932a7898ec951c9d2345
parent21265ba643f1c12ad40e5195de8a3a97682adbde (diff)
downloadhome-manager-config-c0c5087218c27e31c3e6f66f3937bff22fa0f647.tar.gz
home-manager-config-c0c5087218c27e31c3e6f66f3937bff22fa0f647.zip
Using nix flake modules to manage the configurations.
-rw-r--r--alacritty/default.nix72
-rw-r--r--bash/default.nix7
-rw-r--r--bat/default.nix8
-rw-r--r--bspwm/default.nix32
-rw-r--r--flake.nix1
-rw-r--r--git/default.nix14
-rw-r--r--home.nix37
-rw-r--r--htop/default.nix6
-rw-r--r--lf/default.nix15
-rw-r--r--lsd/default.nix11
-rw-r--r--modules/default.nix9
-rw-r--r--modules/desktop/default.nix11
-rw-r--r--modules/desktop/popup-manager/default.nix7
-rw-r--r--modules/desktop/popup-manager/rofi/default.nix13
-rw-r--r--modules/desktop/popup-manager/rofi/theme/default.nix (renamed from rofi/theme/default.nix)0
-rw-r--r--modules/desktop/popup-manager/rofi/theme/theme.rasi (renamed from rofi/theme/theme.rasi)0
-rw-r--r--modules/desktop/status-bar/default.nix7
-rw-r--r--modules/desktop/status-bar/polybar/bars/main.nix (renamed from polybar/bars/main.nix)0
-rw-r--r--modules/desktop/status-bar/polybar/default.nix24
-rw-r--r--modules/desktop/status-bar/polybar/modules/battery.nix (renamed from polybar/modules/battery.nix)0
-rw-r--r--modules/desktop/status-bar/polybar/modules/bspwm.nix (renamed from polybar/modules/bspwm.nix)0
-rw-r--r--modules/desktop/status-bar/polybar/modules/cpu.nix (renamed from polybar/modules/cpu.nix)0
-rw-r--r--modules/desktop/status-bar/polybar/modules/date.nix (renamed from polybar/modules/date.nix)0
-rw-r--r--modules/desktop/status-bar/polybar/modules/kernel-version.nix (renamed from polybar/modules/kernel-version.nix)0
-rw-r--r--modules/desktop/status-bar/polybar/modules/memory.nix (renamed from polybar/modules/memory.nix)0
-rw-r--r--modules/desktop/status-bar/polybar/modules/time.nix (renamed from polybar/modules/time.nix)0
-rw-r--r--modules/desktop/status-bar/polybar/modules/xwindow.nix (renamed from polybar/modules/xwindow.nix)0
-rw-r--r--modules/desktop/terminal/alacritty/default.nix78
-rw-r--r--modules/desktop/terminal/default.nix7
-rw-r--r--modules/desktop/window-manager/bspwm/bspwmrc (renamed from bspwm/bspwmrc)0
-rw-r--r--modules/desktop/window-manager/bspwm/default.nix38
-rw-r--r--modules/desktop/window-manager/default.nix8
-rw-r--r--modules/desktop/window-manager/sxhkd/default.nix79
-rw-r--r--modules/desktop/window-manager/sxhkd/scripts/show-keybindings.sh (renamed from sxhkd/scripts/show-keybindings.sh)0
-rw-r--r--modules/desktop/xresources/default.nix7
-rw-r--r--modules/desktop/xresources/xinit/default.nix14
-rw-r--r--modules/desktop/xresources/xinit/xinitrc (renamed from xresources/xinitrc)0
-rw-r--r--modules/shell/bash/default.nix13
-rw-r--r--modules/shell/default.nix8
-rw-r--r--modules/shell/zsh/default.nix15
-rw-r--r--modules/shell/zsh/zshrc (renamed from zsh/zshrc)0
-rw-r--r--modules/tools/default.nix11
-rw-r--r--modules/tools/editor/default.nix7
-rw-r--r--modules/tools/editor/neovim/default.nix43
-rw-r--r--modules/tools/editor/neovim/keybindings.lua (renamed from nvim/keybindings.lua)0
-rw-r--r--modules/tools/editor/neovim/options.lua (renamed from nvim/options.lua)0
-rw-r--r--modules/tools/editor/neovim/plugins/base16.lua (renamed from nvim/plugins/base16.lua)0
-rw-r--r--modules/tools/editor/neovim/plugins/comment.lua (renamed from nvim/plugins/comment.lua)0
-rw-r--r--modules/tools/editor/neovim/plugins/lualine.lua (renamed from nvim/plugins/lualine.lua)0
-rw-r--r--modules/tools/editor/neovim/plugins/nvim-tree.lua (renamed from nvim/plugins/nvim-tree.lua)0
-rw-r--r--modules/tools/editor/neovim/plugins/treesitter.nix (renamed from nvim/plugins/treesitter.nix)0
-rw-r--r--modules/tools/file-manager/default.nix8
-rw-r--r--modules/tools/file-manager/lf/default.nix21
-rw-r--r--modules/tools/file-manager/lf/icons (renamed from lf/icons)0
-rw-r--r--modules/tools/file-manager/lf/scripts/previewer.sh (renamed from lf/scripts/previewer.sh)0
-rw-r--r--modules/tools/file-manager/lsd/default.nix17
-rw-r--r--modules/tools/git/default.nix20
-rw-r--r--modules/tools/system-monitor/default.nix7
-rw-r--r--modules/tools/system-monitor/htop/default.nix12
-rw-r--r--modules/tools/viewer/bat/default.nix14
-rw-r--r--modules/tools/viewer/bat/theme.nix (renamed from bat/theme.nix)0
-rw-r--r--modules/tools/viewer/default.nix7
-rw-r--r--nvim/default.nix37
-rw-r--r--polybar/default.nix18
-rw-r--r--rofi/default.nix7
-rw-r--r--sxhkd/default.nix73
-rw-r--r--xresources/default.nix8
-rw-r--r--zsh/default.nix9
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;
-}
diff --git a/flake.nix b/flake.nix
index c183265..0b8bd34 100644
--- a/flake.nix
+++ b/flake.nix
@@ -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";
-}
diff --git a/home.nix b/home.nix
index cc4e564..b25fe7d 100644
--- a/home.nix
+++ b/home.nix
@@ -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;
-}