summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNantha Sorubakanthan <nantha@mielota.com>2026-06-08 20:10:02 +0200
committerNantha Sorubakanthan <nantha@mielota.com>2026-06-08 20:10:02 +0200
commite6093b5bdb02425411c9f043d9649cb5ff269628 (patch)
tree50fc50f67b6ae01e6bb5d03f3db3a6bd117df24f
parent770c0cfc08bd73ada6e7754473d69fe9e2d17dc2 (diff)
move everything within his subset
-rw-r--r--nixos/home.nix827
1 files changed, 416 insertions, 411 deletions
diff --git a/nixos/home.nix b/nixos/home.nix
index b299b23..34fb3a9 100644
--- a/nixos/home.nix
+++ b/nixos/home.nix
@@ -32,447 +32,466 @@
];
};
- programs.bash = {
+ xdg.userDirs = {
enable = true;
- shellAliases = {
- ls = "ls -la --color=auto";
- rm = "rm -v";
- cp = "cp -v";
- ln = "ln -v";
- mkdir = "mkdir -v";
- touch = "touch -v";
- };
- initExtra = ''
- export XDG_CONFIG_HOME=$HOME/.config
- export XDG_DATA_HOME=$HOME/.local/share
- export XDG_STATE_HOME=$HOME/.local/state
- export XDG_CACHE_HOME=$HOME/.cache
- export ANDROID_USER_HOME="$XDG_DATA_HOME"/android
- export GNUPGHOME="$XDG_DATA_HOME"/gnupg
- export NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME"/npm/npmrc
- export NODE_REPL_HISTORY="$XDG_DATA_HOME"/node_repl_history
- export WINEPREFIX="$XDG_DATA_HOME"/wine
- export RUSTUP_HOME="$XDG_DATA_HOME"/rustup
- export CARGO_HOME="$XDG_DATA_HOME"/cargo
- export BROWSER=firefox
- export TERMINAL=alacritty
- export PAGER=less
- '';
- profileExtra = ''
- [ "$(tty)" == "/dev/tty1" ] && start-hyprland
- '';
+ desktop = "${config.home.homeDirectory}/desktop";
+ documents = "${config.home.homeDirectory}/sources";
+ download = "${config.home.homeDirectory}/dl";
+ music = "${config.home.homeDirectory}/music";
+ pictures = "${config.home.homeDirectory}/images";
+ projects = "${config.home.homeDirectory}/images";
+ publicShare = "${config.home.homeDirectory}/public";
+ templates = "${config.home.homeDirectory}/trash";
+ videos = "${config.home.homeDirectory}/videos";
+ createDirectories = true;
};
- programs.alacritty = {
- enable = true;
- theme = "tokyo_night";
- settings = {
- window = {
- padding = {
- x = 10;
- y = 10;
- };
- opacity = 0.73;
+ programs = {
+ bash = {
+ enable = true;
+ shellAliases = {
+ ls = "ls -la --color=auto";
+ rm = "rm -v";
+ cp = "cp -v";
+ ln = "ln -v";
+ mkdir = "mkdir -v";
+ touch = "touch -v";
};
- font = {
- normal = {
- family = "0xProto Nerd Font";
- style = "Regular";
+ initExtra = ''
+ export XDG_CONFIG_HOME=$HOME/.config
+ export XDG_DATA_HOME=$HOME/.local/share
+ export XDG_STATE_HOME=$HOME/.local/state
+ export XDG_CACHE_HOME=$HOME/.cache
+ export ANDROID_USER_HOME="$XDG_DATA_HOME"/android
+ export GNUPGHOME="$XDG_DATA_HOME"/gnupg
+ export NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME"/npm/npmrc
+ export NODE_REPL_HISTORY="$XDG_DATA_HOME"/node_repl_history
+ export WINEPREFIX="$XDG_DATA_HOME"/wine
+ export RUSTUP_HOME="$XDG_DATA_HOME"/rustup
+ export CARGO_HOME="$XDG_DATA_HOME"/cargo
+ export BROWSER=firefox
+ export TERMINAL=alacritty
+ export PAGER=less
+ '';
+ profileExtra = ''
+ [ "$(tty)" == "/dev/tty1" ] && start-hyprland
+ '';
+ };
+
+ alacritty = {
+ enable = true;
+ theme = "tokyo_night";
+ settings = {
+ window = {
+ padding = {
+ x = 10;
+ y = 10;
+ };
+ opacity = 0.73;
+ };
+ font = {
+ normal = {
+ family = "0xProto Nerd Font";
+ style = "Regular";
+ };
+ size = 15;
};
- size = 15;
};
};
- };
- programs.firefox = {
- enable = true;
- languagePacks = [ "fr-FR" ];
- profiles.nantha = {
- id = 0;
- extensions.packages = with inputs.firefox-addons.packages.${pkgs.system}; [
- ublock-origin
- ];
- search.default = "ddg";
+ firefox = {
+ enable = true;
+ languagePacks = [ "fr-FR" ];
+ profiles.nantha = {
+ id = 0;
+ extensions.packages = with inputs.firefox-addons.packages.${pkgs.system}; [
+ ublock-origin
+ ];
+ search.default = "ddg";
+ };
};
- };
- services.hyprpaper = {
- enable = true;
- settings = {
- splash = false;
- preload = [
- "~/images/wallpaper.png"
- ];
- wallpaper = [
- {
- monitor = "";
- path = "~/images/wallpaper.png";
- }
- ];
+ btop = {
+ enable = true;
+ settings = {
+ color_theme = "tokyo-night";
+ theme_background = false;
+ };
};
- };
- services.dunst = {
- enable = true;
- iconTheme = {
- name = "Adwaita";
- package = pkgs.adwaita-icon-theme;
- size = "16x16";
- };
- settings = {
- global = {
- background = "#1A1B26";
- foreground = "#FFFFFF";
- frame_color = "#3B4261";
- frame_width = 5;
- timeout = 10;
- alignment = "center";
- enable_recursive_icon_lookup = true;
- padding = 5;
- horizontal_padding = 5;
- font = "0xProto Nerd font 15";
- corner_radius = 0;
- separator_height = 5;
- };
- urgency_low = {
- background = "#7aa2f7";
- foreground = "#ffffff";
- timeout = 10;
- };
- urgency_critical = {
- background = "#F7768E";
- foreground = "#1A1B26";
- timeout = 10;
+ waybar = {
+ enable = true;
+ systemd.enable = true;
+ settings = {
+ mainBar = {
+ layer = "top";
+ position = "top";
+ height = 30;
+ spacing = 8;
+ modules-left = [
+ "hyprland/workspaces"
+ "hyprland/window"
+ ];
+ modules-center = [];
+ modules-right = [
+ "tray"
+ "network"
+ "pulseaudio"
+ "battery"
+ "cpu"
+ "memory"
+ "disk"
+ "clock"
+ ];
+ "pulseaudio" = {
+ format = "VOL: {volume}%";
+ format-muted = "MUTED";
+ on-click = "sh ~/.local/bin/unblock-pipewire.sh";
+ };
+ "hyprland/workspaces" = {
+ format = "{name}";
+ persistent-workspaces = {
+ "*" = 10;
+ };
+ };
+ "hyprland/window" = {
+ max-length = 40;
+ separate-outputs = false;
+ };
+ "tray" = {
+ spacing = 10;
+ };
+ "clock" = {
+ format = "{:%H:%M:%S}";
+ format-alt = "{:%Y-%m-%d}";
+ tooltip = false;
+ interval = 1;
+ };
+ "cpu" = {
+ format = "CPU: {usage}%";
+ tooltip = false;
+ };
+ "memory" = {
+ format = "RAM: {used}GiB";
+ };
+ "disk" = {
+ interval = 60;
+ path = "/";
+ format = "ROOT: {free}";
+ };
+ "battery" = {
+ states = {
+ good = 95;
+ warning = 30;
+ critical = 15;
+ };
+ format = "BAT: {capacity}%";
+ format-plugged = "BAT!: {capacity}%";
+ };
+ "network" = {
+ format = "ONLINE";
+ format-disconnected = "OFFLINE";
+ };
+ };
};
- };
- };
+ style = ''
+ @define-color bg #1a1b26;
+ @define-color fg #a9b1d6;
+ @define-color blk #32344a;
+ @define-color red #f7768e;
+ @define-color grn #9ece6a;
+ @define-color ylw #e0af68;
+ @define-color blu #7aa2f7;
+ @define-color mag #ad8ee6;
+ @define-color cyn #0db9d7;
+ @define-color brblk #444b6a;
+ @define-color white #ffffff;
+
+ * {
+ font-family: "0xProto Nerd Font", monospace;
+ font-size: 16px;
+ font-weight: bold;
+ }
- programs.btop = {
- enable = true;
- settings = {
- color_theme = "tokyo-night";
- theme_background = false;
+ window#waybar {
+ background-color: @bg;
+ color: @fg;
+ }
+
+ #workspaces button {
+ padding: 0 6px;
+ color: @cyn;
+ background: transparent;
+ border-bottom: 3px solid @bg;
+ }
+ #workspaces button.active {
+ color: @cyn;
+ border-bottom: 3px solid @mag;
+ }
+ #workspaces button.empty {
+ color: @white;
+ }
+ #workspaces button.empty.active {
+ color: @cyn;
+ border-bottom: 3px solid @mag;
+ }
+
+ #workspaces button.urgent {
+ background-color: @red;
+ }
+
+ button:hover {
+ background: inherit;
+ box-shadow: inset 0 -3px #ffffff;
+ }
+
+ #clock,
+ #custom-sep,
+ #battery,
+ #cpu,
+ #memory,
+ #disk,
+ #network,
+ #tray,
+ #pulseaudio {
+ padding: 0 8px;
+ color: @white;
+ }
+
+ #clock {
+ color: @cyn;
+ border-bottom: 4px solid @cyn;
+ }
+
+ #battery {
+ color: @mag;
+ border-bottom: 4px solid @mag;
+ }
+
+ #disk {
+ color: @ylw;
+ border-bottom: 4px solid @ylw;
+ }
+
+ #memory {
+ color: @mag;
+ border-bottom: 4px solid @mag;
+ }
+
+ #cpu {
+ color: @grn;
+ border-bottom: 4px solid @grn;
+ }
+
+ #network {
+ color: @blu;
+ border-bottom: 4px solid @blu;
+ }
+
+ #network.disconnected {
+ background-color: @red;
+ }
+
+ #tray {
+ background-color: #2980b9;
+ }
+
+ #pulseaudio {
+ color: @grn;
+ border-bottom: 4px solid @grn;
+ }
+ '';
};
- };
- programs.waybar = {
- enable = true;
- systemd.enable = true;
- settings = {
- mainBar = {
- layer = "top";
- position = "top";
- height = 30;
- spacing = 8;
- modules-left = [
- "hyprland/workspaces"
- "hyprland/window"
- ];
- modules-center = [];
- modules-right = [
- "tray"
- "network"
- "pulseaudio"
- "battery"
- "cpu"
- "memory"
- "disk"
- "clock"
- ];
- "pulseaudio" = {
- format = "VOL: {volume}%";
- format-muted = "MUTED";
- on-click = "sh ~/.local/bin/unblock-pipewire.sh";
- };
- "hyprland/workspaces" = {
- format = "{name}";
- persistent-workspaces = {
- "*" = 10;
- };
- };
- "hyprland/window" = {
- max-length = 40;
- separate-outputs = false;
- };
- "tray" = {
- spacing = 10;
+ git = {
+ enable = true;
+ settings = {
+ user = {
+ email = "nantha@mielota.com";
+ name = "Nantha Sorubakanthan";
};
- "clock" = {
- format = "{:%H:%M:%S}";
- format-alt = "{:%Y-%m-%d}";
- tooltip = false;
- interval = 1;
+ init = {
+ defaultBranch = "main";
};
- "cpu" = {
- format = "CPU: {usage}%";
- tooltip = false;
+ core = {
+ editor = "hx";
+ autocrlf = "input";
};
- "memory" = {
- format = "RAM: {used}GiB";
+ color = {
+ ui = true;
};
- "disk" = {
- interval = 60;
- path = "/";
- format = "ROOT: {free}";
+ };
+ };
+
+ helix = {
+ enable = true;
+ defaultEditor = true;
+ ignores = [ "!.gitignore" ];
+ extraPackages = [
+ pkgs.nil
+ pkgs.nixd
+ ];
+ languages = {
+ nix = {
+ auto-format = true;
};
- "battery" = {
- states = {
- good = 95;
- warning = 30;
- critical = 15;
+ };
+ settings = {
+ theme = "tokyonight-glass";
+ editor = {
+ continue-comments = true;
+ line-number = "absolute";
+ end-of-line-diagnostics = "hint";
+ auto-completion = true;
+ auto-format = false;
+ path-completion = true;
+ default-yank-register = "+";
+ completion-trigger-len = 1;
+ color-modes = true;
+ text-width = 80;
+ indent-guides = {
+ render = true;
+ skip-levels = 1;
+ };
+ whitespace.render = "all";
+ soft-wrap.enable = true;
+ file-picker.hidden = false;
+ lsp.display-messages = true;
+ statusline.left = [
+ "mode"
+ "spinner"
+ "version-control"
+ "file-name"
+ ];
+ inline-diagnostics = {
+ cursor-line = "error";
+ other-lines = "disable";
};
- format = "BAT: {capacity}%";
- format-plugged = "BAT!: {capacity}%";
};
- "network" = {
- format = "ONLINE";
- format-disconnected = "OFFLINE";
+ keys.normal = {
+ x = "select_line_below";
+ X = "select_line_above";
};
};
+ themes = {
+ tokyonight-glass = let
+ transparent = "none";
+ in {
+ inherits = "tokyonight";
+ "ui.menu" = transparent;
+ "ui.statusline".bg = transparent;
+ "ui.menu.selected".bg = transparent;
+ "ui.background" = transparent;
+ };
+ };
};
- style = ''
- @define-color bg #1a1b26;
- @define-color fg #a9b1d6;
- @define-color blk #32344a;
- @define-color red #f7768e;
- @define-color grn #9ece6a;
- @define-color ylw #e0af68;
- @define-color blu #7aa2f7;
- @define-color mag #ad8ee6;
- @define-color cyn #0db9d7;
- @define-color brblk #444b6a;
- @define-color white #ffffff;
-
- * {
- font-family: "0xProto Nerd Font", monospace;
- font-size: 16px;
- font-weight: bold;
- }
-
- window#waybar {
- background-color: @bg;
- color: @fg;
- }
-
- #workspaces button {
- padding: 0 6px;
- color: @cyn;
- background: transparent;
- border-bottom: 3px solid @bg;
- }
- #workspaces button.active {
- color: @cyn;
- border-bottom: 3px solid @mag;
- }
- #workspaces button.empty {
- color: @white;
- }
- #workspaces button.empty.active {
- color: @cyn;
- border-bottom: 3px solid @mag;
- }
-
- #workspaces button.urgent {
- background-color: @red;
- }
-
- button:hover {
- background: inherit;
- box-shadow: inset 0 -3px #ffffff;
- }
-
- #clock,
- #custom-sep,
- #battery,
- #cpu,
- #memory,
- #disk,
- #network,
- #tray,
- #pulseaudio {
- padding: 0 8px;
- color: @white;
- }
-
- #clock {
- color: @cyn;
- border-bottom: 4px solid @cyn;
- }
-
- #battery {
- color: @mag;
- border-bottom: 4px solid @mag;
- }
-
- #disk {
- color: @ylw;
- border-bottom: 4px solid @ylw;
- }
-
- #memory {
- color: @mag;
- border-bottom: 4px solid @mag;
- }
-
- #cpu {
- color: @grn;
- border-bottom: 4px solid @grn;
- }
-
- #network {
- color: @blu;
- border-bottom: 4px solid @blu;
- }
-
- #network.disconnected {
- background-color: @red;
- }
-
- #tray {
- background-color: #2980b9;
- }
-
- #pulseaudio {
- color: @grn;
- border-bottom: 4px solid @grn;
- }
- '';
- };
- programs.git = {
- enable = true;
- settings = {
- user = {
- email = "nantha@mielota.com";
- name = "Nantha Sorubakanthan";
- };
- init = {
- defaultBranch = "main";
- };
- core = {
- editor = "hx";
- autocrlf = "input";
- };
- color = {
- ui = true;
- };
+ aria2 = {
+ enable = true;
};
- };
- programs.helix = {
- enable = true;
- defaultEditor = true;
- ignores = [ "!.gitignore" ];
- extraPackages = [
- pkgs.nil
- ];
- languages = {
- nix = {
- auto-format = true;
+ yt-dlp = {
+ enable = true;
+ settings = {
+ downloader = "aria2c";
+ downloader-args = "aria2c:'-c -x8 -s8 -k1M'";
+ embed-subs = true;
+ embed-thumbnail = true;
+ sub-langs = "all";
};
};
- settings = {
- theme = "tokyonight-glass";
- editor = {
- continue-comments = true;
- line-number = "absolute";
- end-of-line-diagnostics = "hint";
- auto-completion = true;
- auto-format = false;
- path-completion = true;
- default-yank-register = "+";
- completion-trigger-len = 1;
- color-modes = true;
- text-width = 80;
- indent-guides = {
- render = true;
- skip-levels = 1;
- };
- whitespace.render = "all";
- soft-wrap.enable = true;
- file-picker.hidden = false;
- lsp.display-messages = true;
- statusline.left = [
- "mode"
- "spinner"
- "version-control"
- "file-name"
- ];
- inline-diagnostics = {
- cursor-line = "error";
- other-lines = "disable";
- };
- };
- keys.normal = {
- x = "select_line_below";
- X = "select_line_above";
- };
+
+ mpv = {
+ enable = true;
};
- themes = {
- tokyonight-glass = let
- transparent = "none";
- in {
- inherits = "tokyonight";
- "ui.menu" = transparent;
- "ui.statusline".bg = transparent;
- "ui.menu.selected".bg = transparent;
- "ui.background" = transparent;
+
+ keepassxc = {
+ enable = true;
+ autostart = false;
+ settings = {
+ Browser.Enabled = true;
+ GUI = {
+ AdvancedSettings = true;
+ ApplicationTheme = "dark";
+ HidePasswords = true;
};
+ SSHAgent.Enabled = false;
+ };
};
};
- programs.aria2 = {
- enable = true;
- };
- programs.yt-dlp = {
- enable = true;
- settings = {
- downloader = "aria2c";
- downloader-args = "aria2c:'-c -x8 -s8 -k1M'";
- embed-subs = true;
- embed-thumbnail = true;
- sub-langs = "all";
+ services = {
+ hyprpaper = {
+ enable = true;
+ settings = {
+ splash = false;
+ preload = [
+ "~/images/wallpaper.png"
+ ];
+ wallpaper = [
+ {
+ monitor = "";
+ path = "~/images/wallpaper.png";
+ }
+ ];
+ };
};
- };
-
- programs.mpv = {
- enable = true;
- };
-
- programs.keepassxc = {
- enable = true;
- autostart = false;
- settings = {
- Browser.Enabled = true;
- GUI = {
- AdvancedSettings = true;
- ApplicationTheme = "dark";
- HidePasswords = true;
+ dunst = {
+ enable = true;
+ iconTheme = {
+ name = "Adwaita";
+ package = pkgs.adwaita-icon-theme;
+ size = "16x16";
+ };
+ settings = {
+ global = {
+ background = "#1A1B26";
+ foreground = "#FFFFFF";
+ frame_color = "#3B4261";
+ frame_width = 5;
+ timeout = 10;
+ alignment = "center";
+ enable_recursive_icon_lookup = true;
+ padding = 5;
+ horizontal_padding = 5;
+ font = "0xProto Nerd font 15";
+ corner_radius = 0;
+ separator_height = 5;
+ };
+ urgency_low = {
+ background = "#7aa2f7";
+ foreground = "#ffffff";
+ timeout = 10;
+ };
+ urgency_critical = {
+ background = "#F7768E";
+ foreground = "#1A1B26";
+ timeout = 10;
+ };
};
- SSHAgent.Enabled = false;
};
- };
- services.hyprlauncher = {
- enable = true;
- settings = {
- cache.enabled = true;
- finders = {
- default_finder = "desktop";
- unicode_prefix = ".";
- math_prefix = "=";
- font_prefix = "'";
- desktop_icons = true;
- };
- general.grab_focus = true;
- ui = {
- window_size = "400 260";
+ hyprlauncher = {
+ enable = true;
+ settings = {
+ cache.enabled = true;
+ finders = {
+ default_finder = "desktop";
+ unicode_prefix = ".";
+ math_prefix = "=";
+ font_prefix = "'";
+ desktop_icons = true;
+ };
+ general.grab_focus = true;
+ ui = {
+ window_size = "400 260";
+ };
};
};
- };
- services.hyprpolkitagent.enable = true;
+ hyprpolkitagent.enable = true;
+ };
wayland.windowManager.hyprland = {
enable = true;
@@ -626,18 +645,4 @@
hl.bind("XF86AudioPrev", hl.dsp.exec_cmd("playerctl previous"), { locked = true })
'';
};
-
- xdg.userDirs = {
- enable = true;
- desktop = "${config.home.homeDirectory}/desktop";
- documents = "${config.home.homeDirectory}/sources";
- download = "${config.home.homeDirectory}/dl";
- music = "${config.home.homeDirectory}/music";
- pictures = "${config.home.homeDirectory}/images";
- projects = "${config.home.homeDirectory}/images";
- publicShare = "${config.home.homeDirectory}/public";
- templates = "${config.home.homeDirectory}/trash";
- videos = "${config.home.homeDirectory}/videos";
- createDirectories = true;
- };
}