diff options
Diffstat (limited to 'nixos')
| -rw-r--r-- | nixos/home.nix | 827 |
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; - }; } |
