aboutsummaryrefslogtreecommitdiffstats
path: root/modules/programs
diff options
context:
space:
mode:
Diffstat (limited to 'modules/programs')
-rw-r--r--modules/programs/aria2/default.nix18
-rw-r--r--modules/programs/bat/base16.mustache.tmTheme534
-rw-r--r--modules/programs/bat/default.nix26
-rw-r--r--modules/programs/bluetui/default.nix18
-rw-r--r--modules/programs/bottom/default.nix15
-rw-r--r--modules/programs/brave/default.nix86
-rw-r--r--modules/programs/brightnessctl/default.nix18
-rw-r--r--modules/programs/bruno/default.nix22
-rw-r--r--modules/programs/default.nix56
-rw-r--r--modules/programs/delta/default.nix32
-rw-r--r--modules/programs/email/default.nix24
-rw-r--r--modules/programs/enteauth/default.nix61
-rw-r--r--modules/programs/feh/default.nix27
-rw-r--r--modules/programs/ffmpeg/default.nix18
-rw-r--r--modules/programs/fzf/assertions.nix13
-rw-r--r--modules/programs/fzf/default.nix51
-rw-r--r--modules/programs/git/assertions.nix13
-rw-r--r--modules/programs/git/default.nix112
-rw-r--r--modules/programs/gopass/default.nix30
-rw-r--r--modules/programs/gpg/default.nix20
-rw-r--r--modules/programs/htop/default.nix15
-rw-r--r--modules/programs/impala/default.nix26
-rw-r--r--modules/programs/kitty/default.nix55
-rw-r--r--modules/programs/lazygit/default.nix33
-rw-r--r--modules/programs/less/default.nix15
-rw-r--r--modules/programs/lf/default.nix56
-rw-r--r--modules/programs/lf/icons342
-rw-r--r--modules/programs/lf/lfrc168
-rw-r--r--modules/programs/lsd/default.nix10
-rw-r--r--modules/programs/maim/default.nix18
-rw-r--r--modules/programs/neomutt/assertions.nix34
-rw-r--r--modules/programs/neomutt/default.nix427
-rw-r--r--modules/programs/neomutt/theme.nix130
-rw-r--r--modules/programs/nixvim/colorscheme.nix26
-rw-r--r--modules/programs/nixvim/default.nix103
-rw-r--r--modules/programs/nixvim/keymaps.nix41
-rw-r--r--modules/programs/nixvim/plugins/cmp.nix37
-rw-r--r--modules/programs/nixvim/plugins/comment.nix23
-rw-r--r--modules/programs/nixvim/plugins/default.nix20
-rw-r--r--modules/programs/nixvim/plugins/gitsigns.nix8
-rw-r--r--modules/programs/nixvim/plugins/indent-blankline.nix14
-rw-r--r--modules/programs/nixvim/plugins/lsp.nix234
-rw-r--r--modules/programs/nixvim/plugins/lualine.nix90
-rw-r--r--modules/programs/nixvim/plugins/luasnip.nix8
-rw-r--r--modules/programs/nixvim/plugins/noice.nix8
-rw-r--r--modules/programs/nixvim/plugins/nvim-tree.nix44
-rw-r--r--modules/programs/nixvim/plugins/telescope.nix85
-rw-r--r--modules/programs/nixvim/plugins/treesitter.nix19
-rw-r--r--modules/programs/nixvim/plugins/web-devicons.nix8
-rw-r--r--modules/programs/nixvim/plugins/which-key.nix21
-rw-r--r--modules/programs/nvtop/default.nix23
-rw-r--r--modules/programs/opencode/default.nix19
-rw-r--r--modules/programs/openvpn/default.nix18
-rw-r--r--modules/programs/ouch/default.nix18
-rw-r--r--modules/programs/pamixer/default.nix18
-rw-r--r--modules/programs/playerctl/default.nix18
-rw-r--r--modules/programs/qemu/default.nix30
-rw-r--r--modules/programs/slop/default.nix18
-rw-r--r--modules/programs/ssh/default.nix26
-rw-r--r--modules/programs/ssh/git.nix49
-rw-r--r--modules/programs/starship/default.nix63
-rw-r--r--modules/programs/systemctl-tui/default.nix18
-rw-r--r--modules/programs/tmux/default.nix15
-rw-r--r--modules/programs/tor/default.nix25
-rw-r--r--modules/programs/vlc/default.nix37
-rw-r--r--modules/programs/vscodium/default.nix20
-rw-r--r--modules/programs/zathura/default.nix25
-rw-r--r--modules/programs/zsh/default.nix38
-rw-r--r--modules/programs/zsh/nix-aliases.sh27
69 files changed, 0 insertions, 3817 deletions
diff --git a/modules/programs/aria2/default.nix b/modules/programs/aria2/default.nix
deleted file mode 100644
index 79c6f8e..0000000
--- a/modules/programs/aria2/default.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- pkgs,
- lib,
- config,
- ...
-}:
-
-# Aria2 - command line download manager
-{
- config = lib.mkIf config.programs.aria2.enable {
- programs.aria2 = {
- package = pkgs.aria2;
- settings = {
- dir = "${config.home.homeDirectory}/Downloads";
- };
- };
- };
-}
diff --git a/modules/programs/bat/base16.mustache.tmTheme b/modules/programs/bat/base16.mustache.tmTheme
deleted file mode 100644
index 6b2cd5b..0000000
--- a/modules/programs/bat/base16.mustache.tmTheme
+++ /dev/null
@@ -1,534 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
- <key>name</key>
- <string>OneDark Dark</string>
- <key>author</key>
- <string>olimorris (https://github.com/olimorris)</string>
- <key>settings</key>
- <array>
-
- <!-- Global settings -->
- <dict>
- <key>settings</key>
- <dict>
- <key>background</key>
- <string>#{{base00}}</string>
- <key>foreground</key>
- <string>#{{base05}}</string>
- <key>caret</key>
- <string>#{{base05}}</string>
- <key>invisibles</key>
- <string>#{{base03}}</string>
- <key>lineHighlight</key>
- <string>#{{base01}}</string>
- <key>selection</key>
- <string>#{{base02}}</string>
- <key>selectionBorder</key>
- <string>#{{base03}}</string>
- <key>findHighlight</key>
- <string>#{{base0A}}</string>
- <key>findHighlightForeground</key>
- <string>#{{base00}}</string>
- <key>activeGuide</key>
- <string>#{{base03}}</string>
- <key>bracketsForeground</key>
- <string>#{{base05}}</string>
- <key>bracketsOptions</key>
- <string>underline</string>
- <key>bracketContentsForeground</key>
- <string>#{{base05}}</string>
- <key>bracketContentsOptions</key>
- <string>underline</string>
- <key>tagsOptions</key>
- <string>stippled_underline</string>
- <key>gutterForeground</key>
- <string>#{{base03}}</string>
- <key>gutter</key>
- <string>#{{base01}}</string>
- </dict>
- </dict>
-
- <!-- Comments -->
- <dict>
- <key>name</key>
- <string>Comment</string>
- <key>scope</key>
- <string>comment, punctuation.definition.comment</string>
- <key>settings</key>
- <dict>
- <key>foreground</key>
- <string>#{{base03}}</string>
- <key>fontStyle</key>
- <string>italic</string>
- </dict>
- </dict>
-
- <!-- Variables -->
- <dict>
- <key>name</key>
- <string>Variable</string>
- <key>scope</key>
- <string>variable, variable.other</string>
- <key>settings</key>
- <dict>
- <key>foreground</key>
- <string>#{{base05}}</string>
- </dict>
- </dict>
-
- <dict>
- <key>name</key>
- <string>Variable - Language</string>
- <key>scope</key>
- <string>variable.language</string>
- <key>settings</key>
- <dict>
- <key>foreground</key>
- <string>#{{base0E}}</string>
- <key>fontStyle</key>
- <string>italic</string>
- </dict>
- </dict>
-
- <!-- Keywords -->
- <dict>
- <key>name</key>
- <string>Keyword</string>
- <key>scope</key>
- <string>keyword, keyword.control</string>
- <key>settings</key>
- <dict>
- <key>foreground</key>
- <string>#{{base0E}}</string>
- </dict>
- </dict>
-
- <dict>
- <key>name</key>
- <string>Keyword - Operator</string>
- <key>scope</key>
- <string>keyword.operator</string>
- <key>settings</key>
- <dict>
- <key>foreground</key>
- <string>#{{base0C}}</string>
- </dict>
- </dict>
-
- <!-- Storage -->
- <dict>
- <key>name</key>
- <string>Storage</string>
- <key>scope</key>
- <string>storage, storage.type, storage.modifier</string>
- <key>settings</key>
- <dict>
- <key>foreground</key>
- <string>#{{base0E}}</string>
- </dict>
- </dict>
-
- <!-- Constants -->
- <dict>
- <key>name</key>
- <string>Constant</string>
- <key>scope</key>
- <string>constant, constant.other</string>
- <key>settings</key>
- <dict>
- <key>foreground</key>
- <string>#{{base09}}</string>
- </dict>
- </dict>
-
- <dict>
- <key>name</key>
- <string>Constant - Numeric</string>
- <key>scope</key>
- <string>constant.numeric</string>
- <key>settings</key>
- <dict>
- <key>foreground</key>
- <string>#{{base09}}</string>
- </dict>
- </dict>
-
- <dict>
- <key>name</key>
- <string>Constant - Language</string>
- <key>scope</key>
- <string>constant.language</string>
- <key>settings</key>
- <dict>
- <key>foreground</key>
- <string>#{{base09}}</string>
- </dict>
- </dict>
-
- <dict>
- <key>name</key>
- <string>Constant - Character Escape</string>
- <key>scope</key>
- <string>constant.character.escape</string>
- <key>settings</key>
- <dict>
- <key>foreground</key>
- <string>#{{base0C}}</string>
- </dict>
- </dict>
-
- <!-- Strings -->
- <dict>
- <key>name</key>
- <string>String</string>
- <key>scope</key>
- <string>string</string>
- <key>settings</key>
- <dict>
- <key>foreground</key>
- <string>#{{base0B}}</string>
- </dict>
- </dict>
-
- <dict>
- <key>name</key>
- <string>String - Punctuation</string>
- <key>scope</key>
- <string>punctuation.definition.string</string>
- <key>settings</key>
- <dict>
- <key>foreground</key>
- <string>#{{base0B}}</string>
- </dict>
- </dict>
-
- <!-- Support -->
- <dict>
- <key>name</key>
- <string>Support - Function</string>
- <key>scope</key>
- <string>support.function</string>
- <key>settings</key>
- <dict>
- <key>foreground</key>
- <string>#{{base0D}}</string>
- </dict>
- </dict>
-
- <dict>
- <key>name</key>
- <string>Support - Class</string>
- <key>scope</key>
- <string>support.class</string>
- <key>settings</key>
- <dict>
- <key>foreground</key>
- <string>#{{base0A}}</string>
- </dict>
- </dict>
-
- <dict>
- <key>name</key>
- <string>Support - Type</string>
- <key>scope</key>
- <string>support.type</string>
- <key>settings</key>
- <dict>
- <key>foreground</key>
- <string>#{{base0C}}</string>
- </dict>
- </dict>
-
- <dict>
- <key>name</key>
- <string>Support - Constant</string>
- <key>scope</key>
- <string>support.constant</string>
- <key>settings</key>
- <dict>
- <key>foreground</key>
- <string>#{{base09}}</string>
- </dict>
- </dict>
-
- <!-- Entity -->
- <dict>
- <key>name</key>
- <string>Entity - Name - Function</string>
- <key>scope</key>
- <string>entity.name.function</string>
- <key>settings</key>
- <dict>
- <key>foreground</key>
- <string>#{{base0D}}</string>
- </dict>
- </dict>
-
- <dict>
- <key>name</key>
- <string>Entity - Name - Class / Type</string>
- <key>scope</key>
- <string>entity.name.class, entity.name.type, entity.name.type.class</string>
- <key>settings</key>
- <dict>
- <key>foreground</key>
- <string>#{{base0A}}</string>
- </dict>
- </dict>
-
- <dict>
- <key>name</key>
- <string>Entity - Name - Tag</string>
- <key>scope</key>
- <string>entity.name.tag</string>
- <key>settings</key>
- <dict>
- <key>foreground</key>
- <string>#{{base08}}</string>
- </dict>
- </dict>
-
- <dict>
- <key>name</key>
- <string>Entity - Other - Attribute Name</string>
- <key>scope</key>
- <string>entity.other.attribute-name</string>
- <key>settings</key>
- <dict>
- <key>foreground</key>
- <string>#{{base09}}</string>
- </dict>
- </dict>
-
- <dict>
- <key>name</key>
- <string>Entity - Other - Inherited Class</string>
- <key>scope</key>
- <string>entity.other.inherited-class</string>
- <key>settings</key>
- <dict>
- <key>foreground</key>
- <string>#{{base0A}}</string>
- <key>fontStyle</key>
- <string>italic</string>
- </dict>
- </dict>
-
- <!-- Punctuation -->
- <dict>
- <key>name</key>
- <string>Punctuation</string>
- <key>scope</key>
- <string>punctuation</string>
- <key>settings</key>
- <dict>
- <key>foreground</key>
- <string>#{{base05}}</string>
- </dict>
- </dict>
-
- <dict>
- <key>name</key>
- <string>Punctuation - Section</string>
- <key>scope</key>
- <string>punctuation.section, meta.brace</string>
- <key>settings</key>
- <dict>
- <key>foreground</key>
- <string>#{{base05}}</string>
- </dict>
- </dict>
-
- <!-- Invalid -->
- <dict>
- <key>name</key>
- <string>Invalid</string>
- <key>scope</key>
- <string>invalid</string>
- <key>settings</key>
- <dict>
- <key>foreground</key>
- <string>#{{base07}}</string>
- <key>background</key>
- <string>#{{base08}}</string>
- </dict>
- </dict>
-
- <dict>
- <key>name</key>
- <string>Invalid - Deprecated</string>
- <key>scope</key>
- <string>invalid.deprecated</string>
- <key>settings</key>
- <dict>
- <key>foreground</key>
- <string>#{{base07}}</string>
- <key>background</key>
- <string>#{{base0F}}</string>
- </dict>
- </dict>
-
- <!-- Diff -->
- <dict>
- <key>name</key>
- <string>Diff - Inserted</string>
- <key>scope</key>
- <string>markup.inserted</string>
- <key>settings</key>
- <dict>
- <key>foreground</key>
- <string>#{{base0B}}</string>
- </dict>
- </dict>
-
- <dict>
- <key>name</key>
- <string>Diff - Deleted</string>
- <key>scope</key>
- <string>markup.deleted</string>
- <key>settings</key>
- <dict>
- <key>foreground</key>
- <string>#{{base08}}</string>
- </dict>
- </dict>
-
- <dict>
- <key>name</key>
- <string>Diff - Changed</string>
- <key>scope</key>
- <string>markup.changed</string>
- <key>settings</key>
- <dict>
- <key>foreground</key>
- <string>#{{base0E}}</string>
- </dict>
- </dict>
-
- <!-- Markup -->
- <dict>
- <key>name</key>
- <string>Markup - Heading</string>
- <key>scope</key>
- <string>markup.heading, entity.name.section</string>
- <key>settings</key>
- <dict>
- <key>foreground</key>
- <string>#{{base0D}}</string>
- <key>fontStyle</key>
- <string>bold</string>
- </dict>
- </dict>
-
- <dict>
- <key>name</key>
- <string>Markup - Bold</string>
- <key>scope</key>
- <string>markup.bold</string>
- <key>settings</key>
- <dict>
- <key>foreground</key>
- <string>#{{base09}}</string>
- <key>fontStyle</key>
- <string>bold</string>
- </dict>
- </dict>
-
- <dict>
- <key>name</key>
- <string>Markup - Italic</string>
- <key>scope</key>
- <string>markup.italic</string>
- <key>settings</key>
- <dict>
- <key>foreground</key>
- <string>#{{base0E}}</string>
- <key>fontStyle</key>
- <string>italic</string>
- </dict>
- </dict>
-
- <dict>
- <key>name</key>
- <string>Markup - Inline Code</string>
- <key>scope</key>
- <string>markup.inline.raw, markup.raw.inline</string>
- <key>settings</key>
- <dict>
- <key>foreground</key>
- <string>#{{base0C}}</string>
- </dict>
- </dict>
-
- <dict>
- <key>name</key>
- <string>Markup - Link</string>
- <key>scope</key>
- <string>markup.underline.link, string.other.link</string>
- <key>settings</key>
- <dict>
- <key>foreground</key>
- <string>#{{base0D}}</string>
- <key>fontStyle</key>
- <string>underline</string>
- </dict>
- </dict>
-
- <dict>
- <key>name</key>
- <string>Markup - Quote</string>
- <key>scope</key>
- <string>markup.quote</string>
- <key>settings</key>
- <dict>
- <key>foreground</key>
- <string>#{{base0B}}</string>
- <key>fontStyle</key>
- <string>italic</string>
- </dict>
- </dict>
-
- <dict>
- <key>name</key>
- <string>Markup - List</string>
- <key>scope</key>
- <string>markup.list, punctuation.definition.list</string>
- <key>settings</key>
- <dict>
- <key>foreground</key>
- <string>#{{base08}}</string>
- </dict>
- </dict>
-
- <!-- Meta -->
- <dict>
- <key>name</key>
- <string>Meta - Function Call</string>
- <key>scope</key>
- <string>meta.function-call</string>
- <key>settings</key>
- <dict>
- <key>foreground</key>
- <string>#{{base0D}}</string>
- </dict>
- </dict>
-
- <dict>
- <key>name</key>
- <string>Meta - Preprocessor</string>
- <key>scope</key>
- <string>meta.preprocessor</string>
- <key>settings</key>
- <dict>
- <key>foreground</key>
- <string>#{{base09}}</string>
- </dict>
- </dict>
-
- </array>
- <key>uuid</key>
- <string>a6f0d8c2-3b1e-4f5a-9c7d-2e8b0f4a6d1c</string>
-</dict>
-</plist>
diff --git a/modules/programs/bat/default.nix b/modules/programs/bat/default.nix
deleted file mode 100644
index 3c962a3..0000000
--- a/modules/programs/bat/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}:
-
-# bat - a cat clone with wings
-{
- config = lib.mkIf config.programs.bat.enable {
- programs.bat = {
- config = {
- theme = "base16";
- };
- themes = {
- base16 = {
- src = pkgs.runCommand "bat-base16-theme" { } ''
- mkdir -p $out
- cp ${config.scheme { template = ./base16.mustache.tmTheme; }} $out/base16.tmTheme
- '';
- file = "base16.tmTheme";
- };
- };
- };
- };
-}
diff --git a/modules/programs/bluetui/default.nix b/modules/programs/bluetui/default.nix
deleted file mode 100644
index a2a97ec..0000000
--- a/modules/programs/bluetui/default.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}:
-
-# Bluetui - Terminal UI for Bluetooth management
-{
- options.programs.bluetui = {
- enable = lib.mkEnableOption "Enables bluetui.";
- package = lib.mkPackageOption pkgs "bluetui" { };
- };
-
- config = lib.mkIf config.programs.bluetui.enable {
- home.packages = [ config.programs.bluetui.package ];
- };
-}
diff --git a/modules/programs/bottom/default.nix b/modules/programs/bottom/default.nix
deleted file mode 100644
index 3ecda86..0000000
--- a/modules/programs/bottom/default.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}:
-
-# Bottom - Cross-platform graphical process/system monitor (Rust-based)
-{
- config = lib.mkIf config.programs.bottom.enable {
- programs.bottom = {
- package = pkgs.bottom;
- };
- };
-}
diff --git a/modules/programs/brave/default.nix b/modules/programs/brave/default.nix
deleted file mode 100644
index 936da6a..0000000
--- a/modules/programs/brave/default.nix
+++ /dev/null
@@ -1,86 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}:
-
-{
- config = lib.mkIf config.programs.brave.enable {
- programs.brave = {
- package = pkgs.brave;
-
- commandLineArgs = [
- "--enable-features=BraveUltraDarkTheme"
- "--force-device-scale-factor=1.15"
- ];
-
- extensions = [
- { id = "nngceckbapebfimnlniiiahkandclblb"; } # Bitwarden
- { id = "mpkodccbngfoacfalldjimigbofkhgjn"; } # Aria2 Explorer
- { id = "eimadpbcbfnmbkopoojfekhnkhdbieeh"; } # Dark Reader
- { id = "hpejmncgbammabkkodflfeekpcicfjnk"; } # Quite Black
- ];
- };
-
- xdg.configFile."BraveSoftware/Brave-Browser/policies/managed/policy.json" = {
- text = builtins.toJSON {
- RestoreOnStartup = 1;
- DefaultNotificationsSetting = 2;
- ForceDarkMode = true;
- DefaultCookiesSetting = 1;
- PasswordManagerEnabled = false;
- };
- };
-
- xdg.mimeApps.defaultApplications = {
- "x-scheme-handler/http" = "brave-browser.desktop";
- "x-scheme-handler/https" = "brave-browser.desktop";
- "x-scheme-handler/chrome" = "brave-browser.desktop";
- "text/html" = "brave-browser.desktop";
- "application/xhtml+xml" = "brave-browser.desktop";
- };
-
- xdg.configFile."BraveSoftware/Brave-Browser/Default/Preferences" = {
- force = true;
- text = builtins.toJSON {
- brave = {
- darker_mode = false;
- enable_window_closing_confirm = false;
- tabs = {
- vertical_tabs_enabled = true;
- vertical_tabs_collapsed = true;
- vertical_tabs_floating_enabled = false;
- always_hide_tab_close_button = true;
- };
- show_side_panel_button = false;
- ai_chat = {
- show_toolbar_button = false;
- };
- wallet = {
- show_wallet_icon_on_toolbar = false;
- };
- };
- browser = {
- show_full_urls = true;
- };
- credentials_enable_service = false;
- credentials_enable_autosignin = false;
- extensions = {
- pinned_extensions = [
- "nngceckbapebfimnlniiiahkandclblb"
- "eimadpbcbfnmbkopoojfekhnkhdbieeh"
- ];
- ui = {
- developer_mode = true;
- };
- };
- profile = {
- default_content_setting_values = {
- notifications = 2;
- };
- };
- };
- };
- };
-}
diff --git a/modules/programs/brightnessctl/default.nix b/modules/programs/brightnessctl/default.nix
deleted file mode 100644
index cea3517..0000000
--- a/modules/programs/brightnessctl/default.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}:
-
-# brightnessctl - Backlight brightness control tool
-{
- options.programs.brightnessctl = {
- enable = lib.mkEnableOption "Enables brightnessctl.";
- package = lib.mkPackageOption pkgs "brightnessctl" { };
- };
-
- config = lib.mkIf config.programs.brightnessctl.enable {
- home.packages = [ config.programs.brightnessctl.package ];
- };
-}
diff --git a/modules/programs/bruno/default.nix b/modules/programs/bruno/default.nix
deleted file mode 100644
index 7205f31..0000000
--- a/modules/programs/bruno/default.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}:
-
-# Bruno - Open-source API client for testing HTTP endpoints
-{
- options.programs.bruno = {
- enable = lib.mkEnableOption "Enables bruno.";
- package = lib.mkPackageOption pkgs "bruno" { };
- };
-
- config = lib.mkIf config.programs.bruno.enable {
- home.packages = [ config.programs.bruno.package ];
-
- xdg.mimeApps.defaultApplications = {
- "x-scheme-handler/bruno" = "bruno.desktop";
- };
- };
-}
diff --git a/modules/programs/default.nix b/modules/programs/default.nix
deleted file mode 100644
index 4039f0b..0000000
--- a/modules/programs/default.nix
+++ /dev/null
@@ -1,56 +0,0 @@
-{ ... }:
-
-# Tools - Collection of tool configurations (browsers, editors, utilities, etc.)
-{
- imports = [
- ./aria2
- ./bat
- ./bluetui
- ./bottom
- ./brave
- ./brightnessctl
- ./bruno
- ./delta
- ./enteauth
- ./feh
- ./ffmpeg
- ./fzf
- ./git
- ./gpg
- ./htop
- ./impala
- ./kitty
- ./lazygit
- ./less
- ./lf
- ./lsd
- ./maim
- ./neomutt
- ./nixvim
- ./nvtop
- ./opencode
- ./ssh
- ./openvpn
- ./ouch
- ./pamixer
- ./gopass
- ./email
- ./playerctl
- ./qemu
- ./slop
- ./starship
- ./systemctl-tui
- ./tmux
- ./tor
- ./vlc
- ./vscodium
- ./zathura
- ./zsh
- ];
-
- config = {
- xdg.mimeApps = {
- enable = true;
- };
- };
-}
diff --git a/modules/programs/delta/default.nix b/modules/programs/delta/default.nix
deleted file mode 100644
index 90e35d4..0000000
--- a/modules/programs/delta/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- config,
- lib,
- ...
-}:
-# Delta - A syntax-highlighting pager for git, diff, and grep output
-{
- config = lib.mkIf config.programs.delta.enable {
- programs.delta.options = {
- line-numbers = true;
- hunk-header-style = "omit";
- hunk-header-decoration-style = "omit";
- line-numbers-left-format = "{nm}│ ";
- line-numbers-right-format = "{np}│ ";
- };
-
- programs.git.settings = lib.mkIf config.programs.git.enable {
- core.pager = "delta";
- interactive.diffFilter = "delta --color-only";
- delta.navigate = true;
- };
-
- programs.lazygit.settings = lib.mkIf config.programs.lazygit.enable {
- git.pagers = [
- {
- colorArg = "always";
- pager = "delta --paging=never {{diffArgs}}";
- }
- ];
- };
- };
-}
diff --git a/modules/programs/email/default.nix b/modules/programs/email/default.nix
deleted file mode 100644
index 3a57cf0..0000000
--- a/modules/programs/email/default.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-# email - Mbsync and notmuch mail synchronization
-{
- config,
- lib,
- ...
-}:
-
-let
- mailDir = "${config.home.homeDirectory}/.local/share/mail";
-in
-{
- options.programs.email = {
- enable = lib.mkEnableOption "Email suite (mbsync + notmuch)";
- };
-
- config = lib.mkIf config.programs.email.enable {
- programs.mbsync.enable = true;
- programs.notmuch.enable = true;
-
- accounts.email.maildirBasePath = mailDir;
-
- home.sessionVariables.MAILDIR = mailDir;
- };
-}
diff --git a/modules/programs/enteauth/default.nix b/modules/programs/enteauth/default.nix
deleted file mode 100644
index a332bf3..0000000
--- a/modules/programs/enteauth/default.nix
+++ /dev/null
@@ -1,61 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}:
-
-# Ente Auth - end-to-end encrypted authentication (2FA)
-let
- enteAuthWithKeyring = pkgs.symlinkJoin {
- name = "ente-auth-wrapped";
- paths = [ pkgs.ente-auth ];
- buildInputs = [ pkgs.makeWrapper ];
- postBuild = ''
- wrapProgram $out/bin/enteauth \
- --prefix PATH : ${
- lib.makeBinPath [
- pkgs.gnome-keyring
- pkgs.dbus
- ]
- } \
- --run "echo 'password' | ${pkgs.gnome-keyring}/bin/gnome-keyring-daemon --unlock --components=secrets"
-
- rm -rf $out/share/applications/*
-
- ln -s ${customDesktopItem}/share/applications/* $out/share/applications/
- '';
- };
-
- customDesktopItem = pkgs.makeDesktopItem {
- name = "enteauth";
- exec = "enteauth";
- icon = "io.ente.auth";
- comment = "End-to-end encrypted 2FA authenticator";
- desktopName = "Ente Auth";
- genericName = "2FA Authenticator";
- categories = [
- "Utility"
- "Security"
- ];
- terminal = false;
- };
-in
-{
- options.programs.enteauth = {
- enable = lib.mkEnableOption "Enables wrapped ente-auth with automated keyring unlocks and a desktop entry.";
- package = lib.mkOption {
- type = lib.types.package;
- default = enteAuthWithKeyring;
- description = "The customized version of ente-auth with a self-unlocking daemon backend.";
- };
- };
-
- config = lib.mkIf config.programs.enteauth.enable {
- home.packages = [ config.programs.enteauth.package ];
-
- xdg.mimeApps.defaultApplications = {
- "x-scheme-handler/enteauth" = "enteauth.desktop";
- };
- };
-}
diff --git a/modules/programs/feh/default.nix b/modules/programs/feh/default.nix
deleted file mode 100644
index 401a68a..0000000
--- a/modules/programs/feh/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}:
-
-# Feh - Lightweight image viewer and wallpaper setter
-{
- config = lib.mkIf config.programs.feh.enable {
- programs.feh = {
- package = pkgs.feh;
- };
-
- xdg.mimeApps.defaultApplications = {
- "image/bmp" = "feh.desktop";
- "image/gif" = "feh.desktop";
- "image/jpeg" = "feh.desktop";
- "image/png" = "feh.desktop";
- "image/tiff" = "feh.desktop";
- "image/webp" = "feh.desktop";
- "image/x-bmp" = "feh.desktop";
- "image/x-png" = "feh.desktop";
- "image/x-tga" = "feh.desktop";
- };
- };
-}
diff --git a/modules/programs/ffmpeg/default.nix b/modules/programs/ffmpeg/default.nix
deleted file mode 100644
index d86b5a6..0000000
--- a/modules/programs/ffmpeg/default.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- config,
- pkgs,
- lib,
- ...
-}:
-
-# FFmpeg - Command-line audio/video converter and streaming tool
-{
- options.programs.ffmpeg = {
- enable = lib.mkEnableOption "Enables ffmpeg.";
- package = lib.mkPackageOption pkgs "ffmpeg-full" { };
- };
-
- config = lib.mkIf config.programs.ffmpeg.enable {
- home.packages = [ config.programs.ffmpeg.package ];
- };
-}
diff --git a/modules/programs/fzf/assertions.nix b/modules/programs/fzf/assertions.nix
deleted file mode 100644
index 7c2e79c..0000000
--- a/modules/programs/fzf/assertions.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ config, ... }:
-{
- assertions = [
- {
- assertion =
- !config.programs.fzf.enable || config.programs.zsh.enable || config.programs.bash.enable;
- message = ''
- programs.fzf is enabled but neither programs.zsh.enable nor programs.bash.enable is set.
- fzf shell integration requires zsh or bash. Please enable at least one.
- '';
- }
- ];
-}
diff --git a/modules/programs/fzf/default.nix b/modules/programs/fzf/default.nix
deleted file mode 100644
index 7671b3c..0000000
--- a/modules/programs/fzf/default.nix
+++ /dev/null
@@ -1,51 +0,0 @@
-{ config, lib, ... }:
-
-# FZF - Fuzzy finder, CLI fuzzy search tool
-{
- imports = [ ./assertions.nix ];
-
- config =
- let
- shellIntegration = ''
- ${if config.programs.zsh.enable then "eval \"$(fzf --zsh)\"" else "eval \"$(fzf --bash)\""}
- '';
- in
- lib.mkIf config.programs.fzf.enable {
- programs.fzf = {
- defaultOptions = [
- "--height 100%"
- "--layout=reverse"
- ''--pointer=\" \"''
- ''--header=\" \"''
- ''--prompt=\" \"''
- ''--marker=\"✓ \"''
- "--border=none"
- "--cycle"
- "--no-info"
- "--margin=\"1,2\""
- ];
-
- colors = with config.scheme.withHashtag; {
- fg = base05; # Foreground
- bg = "-1"; # Background (-1 for transparent)
- hl = base0D; # Highlight
-
- "fg+" = base07; # Foreground for selected item
- "bg+" = "-1"; # Background for selected item
- "hl+" = base0D; # Highlight for selected item
-
- gutter = "-1"; # Remove the white margin at the left
-
- info = base0B; # Info text (usually count of items)
- border = base03; # Border color
- prompt = base0A; # Prompt text color
- pointer = base0F; # Pointer color (e.g., > for selected)
- marker = base0C; # Marker color (e.g., for multi-select)
- spinner = base0C; # Spinner color (during search)
- };
- };
-
- programs.zsh.initContent = lib.mkIf config.programs.zsh.enable (lib.mkAfter shellIntegration);
- programs.bash.initExtra = lib.mkIf config.programs.bash.enable (lib.mkAfter shellIntegration);
- };
-}
diff --git a/modules/programs/git/assertions.nix b/modules/programs/git/assertions.nix
deleted file mode 100644
index fbe5d3c..0000000
--- a/modules/programs/git/assertions.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ config, ... }:
-{
- assertions = [
- {
- assertion =
- !config.programs.git.useSSH || (config.programs.git.enable && config.programs.ssh.enable);
- message = ''
- programs.git.useSSH is enabled but programs.ssh.enable is not.
- SSH must be enabled (programs.ssh.enable = true) to use SSH for git.
- '';
- }
- ];
-}
diff --git a/modules/programs/git/default.nix b/modules/programs/git/default.nix
deleted file mode 100644
index c1aade5..0000000
--- a/modules/programs/git/default.nix
+++ /dev/null
@@ -1,112 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}:
-
-# Git - Distributed version control system
-{
- imports = [
- ./assertions.nix
- ]
- ++ lib.optional (builtins.pathExists ../../private/git.nix) ../../private/git.nix;
-
- options.programs.git = {
- username = lib.mkOption {
- type = lib.types.str;
- description = "Git username.";
- };
-
- email = lib.mkOption {
- type = lib.types.str;
- description = "Git email.";
- };
-
- useSSH = lib.mkEnableOption "Use SSH instead of HTTPS for common git platforms.";
- };
-
- config = lib.mkIf config.programs.git.enable {
- home.packages = with pkgs; [
- git-graph
- ];
-
- xdg.configFile."git-graph/models/custom.toml".text = ''
- persistence = [
- '^(master|main|trunk)$',
- '^(develop|dev)$',
- '^feature.*$',
- '^release.*$',
- '^hotfix.*$',
- '^bugfix.*$',
- ]
-
- order = [
- '^(master|main|trunk)$',
- '^(hotfix|release).*$',
- '^(develop|dev)$',
- ]
-
- [terminal_colors]
- matches = [
- ['^(master|main|trunk)$', ['bright_blue']],
- ['^(develop|dev)$', ['bright_yellow']],
- ['^(feature|fork/).*$', ['bright_magenta', 'bright_cyan']],
- ['^release.*$', ['bright_green']],
- ['^(bugfix|hotfix).*$', ['bright_red']],
- ['^tags/.*$', ['bright_green']],
- ]
- # Everything else (e.g. custom/service branches) cycles through these instead of all being white
- unknown = ['bright_white', 'bright_red', 'bright_green', 'bright_yellow', 'bright_blue', 'bright_magenta', 'bright_cyan']
-
- [svg_colors]
- matches = [
- ['^(master|main|trunk)$', ['blue']],
- ['^(develop|dev)$', ['orange']],
- ['^(feature|fork/).*$', ['magenta', 'cyan']],
- ['^release.*$', ['green']],
- ['^(bugfix|hotfix).*$', ['red']],
- ['^tags/.*$', ['green']],
- ]
- unknown = ['gray', 'purple', 'teal', 'brown']
- '';
-
- programs.git = {
- settings =
- lib.recursiveUpdate
- {
- user = {
- name = config.programs.git.username;
- email = config.programs.git.email;
- };
- core.askPass = "";
- alias = {
- # The exclamation mark (!) tells Git to execute this as an external shell command.
- # This overrides standard git-graph behavior with your custom format string.
- log-graph = ''
- !f() {
- fmt=$(printf '\033[1;34mCommit:\033[0m \033[33m%%h\033[0m \033[91m%%d\033[0m%%n\033[1;34mParents:\033[0m \033[35m%%p\033[0m%%n\033[1;34mAuthor:\033[0m \033[32m%%an\033[0m <\033[96m%%ae\033[0m>%%n\033[1;34mDate:\033[0m \033[36m%%ad (%%ar)\033[0m%%n%%n%%B%%n\033[90m--------------------------------------------------------\033[0m')
- git-graph --model custom --color always --sparse --style round --format="$fmt"
- }; f | less -R
- '';
- # Same formatting, but no pager — meant for embedding (lazygit, etc.)
- log-graph-embed = ''
- !f() {
- fmt=$(printf '\033[1;34mCommit:\033[0m \033[33m%%h\033[0m \033[91m%%d\033[0m%%n\033[1;34mParents:\033[0m \033[35m%%p\033[0m%%n\033[1;34mAuthor:\033[0m \033[32m%%an\033[0m <\033[96m%%ae\033[0m>%%n\033[1;34mDate:\033[0m \033[36m%%ad (%%ar)\033[0m%%n%%n%%B%%n\033[90m--------------------------------------------------------\033[0m')
- git-graph --model custom --color always --sparse --style round --no-pager --format="$fmt"
- }; f
- '';
- };
- }
- (
- lib.optionalAttrs config.programs.git.useSSH {
- url."git@github.com:".insteadOf = "https://github.com/";
- url."git@gitlab.com:".insteadOf = "https://gitlab.com/";
- url."git@bitbucket.org:".insteadOf = "https://bitbucket.org/";
- url."git@codeberg.org:".insteadOf = "https://codeberg.org/";
- url."git@git.sr.ht:".insteadOf = "https://git.sr.ht/";
- }
- );
- };
- };
-}
diff --git a/modules/programs/gopass/default.nix b/modules/programs/gopass/default.nix
deleted file mode 100644
index 3990f7f..0000000
--- a/modules/programs/gopass/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-# gopass - Standard Unix password manager (Go implementation)
-{
- config,
- lib,
- pkgs,
- ...
-}:
-
-{
- options.programs.gopass = {
- enable = lib.mkEnableOption "Enables gopass.";
-
- package = lib.mkOption {
- type = lib.types.package;
- default = pkgs.gopass.override { passAlias = true; };
- defaultText = lib.literalExpression "pkgs.gopass.override { passAlias = true; }";
- description = "The gopass package to use.";
- };
- };
-
- config = lib.mkIf config.programs.gopass.enable {
- programs.password-store = {
- enable = true;
- package = config.programs.gopass.package;
- settings = {
- PASSWORD_STORE_DIR = "${config.home.homeDirectory}/.local/share/pass";
- };
- };
- };
-}
diff --git a/modules/programs/gpg/default.nix b/modules/programs/gpg/default.nix
deleted file mode 100644
index 858f79f..0000000
--- a/modules/programs/gpg/default.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}:
-
-# gpg - GNU Privacy Guard
-{
- config = lib.mkIf config.programs.gpg.enable {
- services.gpg-agent = {
- enable = true;
- enableZshIntegration = true;
- defaultCacheTtl = 3600;
- maxCacheTtl = 86400;
- enableSshSupport = config.programs.ssh.enable;
- pinentry.package = pkgs.pinentry-gtk2;
- };
- };
-}
diff --git a/modules/programs/htop/default.nix b/modules/programs/htop/default.nix
deleted file mode 100644
index 7781464..0000000
--- a/modules/programs/htop/default.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- pkgs,
- lib,
- config,
- ...
-}:
-
-# Htop - Interactive process viewer (using htop-vim version)
-{
- config = lib.mkIf config.programs.htop.enable {
- programs.htop = {
- package = pkgs.htop-vim;
- };
- };
-}
diff --git a/modules/programs/impala/default.nix b/modules/programs/impala/default.nix
deleted file mode 100644
index 9c4d1f4..0000000
--- a/modules/programs/impala/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}:
-
-# Impala - Apache Impala: SQL query engine for Apache Hadoop
-{
- options.programs.impala = {
- enable = lib.mkEnableOption "Enables impala.";
- package = lib.mkPackageOption pkgs "impala" { };
- };
-
- config = lib.mkIf config.programs.impala.enable {
- home.packages = [ config.programs.impala.package ];
-
- xdg.mimeApps.defaultApplications = {
- "x-scheme-handler/impala" = "impala.desktop";
- "audio/mpeg" = "impala.desktop";
- "audio/ogg" = "impala.desktop";
- "audio/flac" = "impala.desktop";
- "audio/x-flac" = "impala.desktop";
- };
- };
-}
diff --git a/modules/programs/kitty/default.nix b/modules/programs/kitty/default.nix
deleted file mode 100644
index 3701180..0000000
--- a/modules/programs/kitty/default.nix
+++ /dev/null
@@ -1,55 +0,0 @@
-{
- config,
- lib,
- ...
-}:
-
-# Kitty - GPU-accelerated terminal emulator
-{
- config = lib.mkIf config.programs.kitty.enable {
- xdg.mimeApps.defaultApplications = {
- "x-scheme-handler/terminal" = "kitty.desktop";
- };
-
- programs.kitty = {
- settings = with config.scheme.withHashtag; {
- window_padding_width = 10;
- font_size = config.fonts.size;
- font_family = config.fonts.normal;
- filter_notification = "all";
- update_check_interval = 0;
- scrollback_indicator_opacity = "0.5";
-
- dynamic_background_opacity = false;
- enable_audio_bell = false;
-
- background = base00;
- foreground = base05;
-
- color0 = base00;
- color1 = base08;
- color2 = base0B;
- color3 = base0A;
- color4 = base0D;
- color5 = base0E;
- color6 = base0C;
- color7 = base05;
- color8 = base03;
- color9 = base09;
- color10 = base0B;
- color11 = base0A;
- color12 = base0D;
- color13 = base0E;
- color14 = base0F;
- color15 = base07;
-
- selection_background = base05;
- selection_foreground = base00;
-
- allow_remote_control = "yes";
- listen_on = "unix:/tmp/kitty";
- shell = lib.mkIf config.programs.zsh.enable (lib.getExe config.programs.zsh.package);
- };
- };
- };
-}
diff --git a/modules/programs/lazygit/default.nix b/modules/programs/lazygit/default.nix
deleted file mode 100644
index cf46e9a..0000000
--- a/modules/programs/lazygit/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ config, lib, ... }:
-
-# Lazygit - A simple terminal UI for git commands
-{
- config = lib.mkIf config.programs.lazygit.enable {
- programs.lazygit = {
- enableBashIntegration = config.programs.bash.enable;
- enableFishIntegration = config.programs.fish.enable;
- enableNushellIntegration = config.programs.nushell.enable;
- enableZshIntegration = config.programs.zsh.enable;
-
- settings = {
- gui = {
- theme = {
- lightTheme = false;
- };
- showIcons = true;
- scrollHeight = 2;
- nerdFontsVersion = "3";
- scrollPastBottom = true;
- mouseEvents = true;
- border = "single";
- };
- git = {
- log.showWholeGraph = true;
- branchLogCmd = "git log-graph-embed";
- overrideGpg = true;
- };
- update.method = "never";
- };
- };
- };
-}
diff --git a/modules/programs/less/default.nix b/modules/programs/less/default.nix
deleted file mode 100644
index 516377d..0000000
--- a/modules/programs/less/default.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ config, lib, ... }:
-
-# less - terminal pager
-{
- config = lib.mkIf config.programs.less.enable {
- programs.less = {
- options = [
- "--RAW-CONTROL-CHARS"
- "--quit-if-one-screen"
- "--no-init"
- "--ignore-case"
- ];
- };
- };
-}
diff --git a/modules/programs/lf/default.nix b/modules/programs/lf/default.nix
deleted file mode 100644
index 47a950f..0000000
--- a/modules/programs/lf/default.nix
+++ /dev/null
@@ -1,56 +0,0 @@
-{
- pkgs,
- lib,
- config,
- ...
-}:
-
-# lf - terminal file manager
-{
- config = lib.mkIf config.programs.lf.enable {
- xdg.mimeApps.defaultApplications = {
- "inode/directory" = "lf.desktop";
- };
-
- home.packages = with pkgs; [
- busybox
- ];
-
- programs.lf = {
- package = pkgs.lf.overrideAttrs (old: {
- dontWrapQtApps = true;
- dontPatchShebangs = true;
- });
-
- settings = {
- number = true;
- icons = true;
- drawbox = true;
- hidden = true;
- preview = true;
-
- shell = "sh";
- ifs = "\n";
- scrolloff = "4";
- period = "1";
- incsearch = true;
- smartcase = true;
- info = "size";
- sortby = "natural";
- dirfirst = true;
-
- cleaner = lib.getExe config.scripts.file-preview-clean.package;
- };
-
- previewer = {
- source = lib.getExe config.scripts.file-preview.package;
- };
-
- extraConfig = ''
- ${builtins.readFile ./lfrc}
- '';
- };
-
- home.file.".config/lf/icons".source = ./icons;
- };
-}
diff --git a/modules/programs/lf/icons b/modules/programs/lf/icons
deleted file mode 100644
index 8697cf2..0000000
--- a/modules/programs/lf/icons
+++ /dev/null
@@ -1,342 +0,0 @@
-# vim:ft=conf
-
-# file types (with matching order)
-ln  # LINK
-or  # ORPHAN
-tw t # STICKY_OTHER_WRITABLE
-ow  # OTHER_WRITABLE
-st t # STICKY
-di  # DIR
-pi p # FIFO
-so s # SOCK
-bd b # BLK
-cd c # CHR
-su u # SETUID
-sg g # SETGID
-ex  # EXEC
-fi  # FILE
-
-# file extensions (vim-devicons)
-*.styl 
-*.sass 
-*.scss 
-*.htm 
-*.html 
-*.slim 
-*.haml 
-*.ejs 
-*.css 
-*.less 
-*.md 
-*.mdx 
-*.markdown 
-*.rmd 
-*.json 
-*.webmanifest 
-*.js 
-*.mjs 
-*.jsx 
-*.rb 
-*.gemspec 
-*.rake 
-*.php 
-*.py 
-*.pyc 
-*.pyo 
-*.pyd 
-*.coffee 
-*.mustache 
-*.hbs 
-*.conf 
-*.ini 
-*.yml 
-*.yaml 
-*.toml 
-*.bat 
-*.mk 
-*.jpg 
-*.jpeg 
-*.bmp 
-*.png 
-*.webp 
-*.gif 
-*.ico 
-*.twig 
-*.cpp 
-*.c++ 
-*.cxx 
-*.cc 
-*.cp 
-*.c 
-*.cs 󰌛
-*.h 
-*.hh 
-*.hpp 
-*.hxx 
-*.hs 
-*.lhs 
-*.nix 
-*.lua 
-*.java 
-*.sh 
-*.fish 
-*.bash 
-*.zsh 
-*.ksh 
-*.csh 
-*.awk 
-*.ps1 
-*.ml λ
-*.mli λ
-*.diff 
-*.db 
-*.sql 
-*.dump 
-*.clj 
-*.cljc 
-*.cljs 
-*.edn 
-*.scala 
-*.go 
-*.dart 
-*.xul 
-*.sln 
-*.suo 
-*.pl 
-*.pm 
-*.t 
-*.rss 
-'*.f#' 
-*.fsscript 
-*.fsx 
-*.fs 
-*.fsi 
-*.rs 
-*.rlib 
-*.d 
-*.erl 
-*.hrl 
-*.ex 
-*.exs 
-*.eex 
-*.leex 
-*.heex 
-*.vim 
-*.ai 
-*.psd 
-*.psb 
-*.ts 
-*.tsx 
-*.jl 
-*.pp 
-*.vue 
-*.elm 
-*.swift 
-*.xcplayground 
-*.tex 󰙩
-*.r 󰟔
-*.rproj 󰗆
-*.sol 󰡪
-*.pem 
-
-# file names (vim-devicons) (case-insensitive not supported in lf)
-*gruntfile.coffee 
-*gruntfile.js 
-*gruntfile.ls 
-*gulpfile.coffee 
-*gulpfile.js 
-*gulpfile.ls 
-*mix.lock 
-*dropbox 
-*.ds_store 
-*.gitconfig 
-*.gitignore 
-*.gitattributes 
-*.gitlab-ci.yml 
-*.bashrc 
-*.zshrc 
-*.zshenv 
-*.zprofile 
-*.vimrc 
-*.gvimrc 
-*_vimrc 
-*_gvimrc 
-*.bashprofile 
-*favicon.ico 
-*license 
-*node_modules 
-*react.jsx 
-*procfile 
-*dockerfile 
-*docker-compose.yml 
-*docker-compose.yaml 
-*compose.yml 
-*compose.yaml 
-*rakefile 
-*config.ru 
-*gemfile 
-*makefile 
-*cmakelists.txt 
-*robots.txt 󰚩
-
-# file names (case-sensitive adaptations)
-*Gruntfile.coffee 
-*Gruntfile.js 
-*Gruntfile.ls 
-*Gulpfile.coffee 
-*Gulpfile.js 
-*Gulpfile.ls 
-*Dropbox 
-*.DS_Store 
-*LICENSE 
-*React.jsx 
-*Procfile 
-*Dockerfile 
-*Docker-compose.yml 
-*Docker-compose.yaml 
-*Rakefile 
-*Gemfile 
-*Makefile 
-*CMakeLists.txt 
-
-# file patterns (vim-devicons) (patterns not supported in lf)
-# .*jquery.*\.js$ 
-# .*angular.*\.js$ 
-# .*backbone.*\.js$ 
-# .*require.*\.js$ 
-# .*materialize.*\.js$ 
-# .*materialize.*\.css$ 
-# .*mootools.*\.js$ 
-# .*vimrc.* 
-# Vagrantfile$ 
-
-# file patterns (file name adaptations)
-*jquery.min.js 
-*angular.min.js 
-*backbone.min.js 
-*require.min.js 
-*materialize.min.js 
-*materialize.min.css 
-*mootools.min.js 
-*vimrc 
-Vagrantfile 
-
-# archives or compressed (extensions from dircolors defaults)
-*.tar 
-*.tgz 
-*.arc 
-*.arj 
-*.taz 
-*.lha 
-*.lz4 
-*.lzh 
-*.lzma 
-*.tlz 
-*.txz 
-*.tzo 
-*.t7z 
-*.zip 
-*.z 
-*.dz 
-*.gz 
-*.lrz 
-*.lz 
-*.lzo 
-*.xz 
-*.zst 
-*.tzst 
-*.bz2 
-*.bz 
-*.tbz 
-*.tbz2 
-*.tz 
-*.deb 
-*.rpm 
-*.jar 
-*.war 
-*.ear 
-*.sar 
-*.rar 
-*.alz 
-*.ace 
-*.zoo 
-*.cpio 
-*.7z 
-*.rz 
-*.cab 
-*.wim 
-*.swm 
-*.dwm 
-*.esd 
-
-# image formats (extensions from dircolors defaults)
-*.jpg 
-*.jpeg 
-*.mjpg 
-*.mjpeg 
-*.gif 
-*.bmp 
-*.pbm 
-*.pgm 
-*.ppm 
-*.tga 
-*.xbm 
-*.xpm 
-*.tif 
-*.tiff 
-*.png 
-*.svg 
-*.svgz 
-*.mng 
-*.pcx 
-*.mov 
-*.mpg 
-*.mpeg 
-*.m2v 
-*.mkv 
-*.webm 
-*.ogm 
-*.mp4 
-*.m4v 
-*.mp4v 
-*.vob 
-*.qt 
-*.nuv 
-*.wmv 
-*.asf 
-*.rm 
-*.rmvb 
-*.flc 
-*.avi 
-*.fli 
-*.flv 
-*.gl 
-*.dl 
-*.xcf 
-*.xwd 
-*.yuv 
-*.cgm 
-*.emf 
-*.ogv 
-*.ogx 
-
-# audio formats (extensions from dircolors defaults)
-*.aac 
-*.au 
-*.flac 
-*.m4a 
-*.mid 
-*.midi 
-*.mka 
-*.mp3 
-*.mpc 
-*.ogg 
-*.ra 
-*.wav 
-*.oga 
-*.opus 
-*.spx 
-*.xspf 
-
-# other formats
-*.pdf 
diff --git a/modules/programs/lf/lfrc b/modules/programs/lf/lfrc
deleted file mode 100644
index 7ae847c..0000000
--- a/modules/programs/lf/lfrc
+++ /dev/null
@@ -1,168 +0,0 @@
-# =========================
-# BASIC MOVEMENT (nvim-like)
-# =========================
-
-map j down
-map k up
-map h updir
-map l open
-
-map gg top
-map G bottom
-
-map <c-u> half-up
-map <c-d> half-down
-
-map <c-b> page-up
-map <c-f> page-down
-
-# =========================
-# SELECTION
-# =========================
-
-map <space> toggle
-map v invert
-map V select
-
-# =========================
-# OPENING
-# =========================
-
-map o open
-map <enter> open
-map L open
-
-# =========================
-# DIRECTORY NAVIGATION
-# =========================
-
-map H cd ..
-map gh cd ~
-map ge cd /
-
-# =========================
-# FILE OPERATIONS
-# =========================
-
-map y copy
-map x cut
-map p paste
-
-map d delete
-
-map a :push %mkdir<space>
-map A :push %touch<space>
-
-map r rename
-
-# =========================
-# SEARCH
-# =========================
-
-map / search
-map n search-next
-map N search-prev
-
-map f find
-map F find-back
-
-# =========================
-# FILTER
-# =========================
-
-map zf filter
-map zc clear
-
-# =========================
-# MARKS (vim-style)
-# =========================
-
-map m mark-save
-map ' mark-load
-
-# =========================
-# HISTORY
-# =========================
-
-map <c-o> history-prev
-map <c-i> history-next
-
-# =========================
-# RELOAD
-# =========================
-
-map R reload
-
-# =========================
-# SHELL / COMMANDS
-# =========================
-
-map ! shell
-map : read
-
-map & shell-async
-
-# =========================
-# VISUAL MODES / TAGGING
-# =========================
-
-map t tag
-map T tag-toggle
-
-# =========================
-# SORTING
-# =========================
-
-map sn set sortby name
-map ss set sortby size
-map st set sortby time
-map se set sortby ext
-
-# =========================
-# TOGGLES
-# =========================
-
-map zh set hidden!
-map zr set reverse!
-
-# =========================
-# VIEW
-# =========================
-
-map zi set info
-map zs set preview
-
-# =========================
-# JUMPS
-# =========================
-
-map [ jump-prev
-map ] jump-next
-
-# =========================
-# CLIPBOARD-LIKE
-# =========================
-
-map c clear
-map u unselect
-
-# =========================
-# MULTI-SELECTION NAV
-# =========================
-
-map J down-select
-map K up-select
-
-# =========================
-# COMMAND MODE SHORTCUTS
-# =========================
-
-map w :write
-map q quit
-map Q quit!
-
-# =========================
-# FILE INFO
-# =========================
-
-map i info
diff --git a/modules/programs/lsd/default.nix b/modules/programs/lsd/default.nix
deleted file mode 100644
index 99fe1bd..0000000
--- a/modules/programs/lsd/default.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ config, lib, ... }:
-
-# LSD - Ls alternative with icons and colors (Rust-based)
-{
- config = lib.mkIf config.programs.lsd.enable {
- programs.lsd = {
- settings.icons.separator = " ";
- };
- };
-}
diff --git a/modules/programs/maim/default.nix b/modules/programs/maim/default.nix
deleted file mode 100644
index 3e30c88..0000000
--- a/modules/programs/maim/default.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}:
-
-# Maim - Screenshot utility (slop-based region selection)
-{
- options.programs.maim = {
- enable = lib.mkEnableOption "Enables maim.";
- package = lib.mkPackageOption pkgs "maim" { };
- };
-
- config = lib.mkIf config.programs.maim.enable {
- home.packages = [ config.programs.maim.package ];
- };
-}
diff --git a/modules/programs/neomutt/assertions.nix b/modules/programs/neomutt/assertions.nix
deleted file mode 100644
index 989d273..0000000
--- a/modules/programs/neomutt/assertions.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ config, ... }:
-
-{
- assertions = [
- {
- assertion = !config.programs.neomutt.enable || config.programs.less.enable;
- message = ''
- programs.neomutt is enabled but programs.less.enable is not.
- neomutt requires less as its pager. Please enable programs.less.
- '';
- }
- {
- assertion = !config.programs.neomutt.enable || config.programs.bat.enable;
- message = ''
- programs.neomutt is enabled but programs.bat.enable is not.
- neomutt requires bat for text/html filtering. Please enable programs.bat.
- '';
- }
- {
- assertion = !config.programs.neomutt.enable || config.programs.email.enable;
- message = ''
- programs.neomutt is enabled but programs.email.enable is not.
- neomutt requires the email module (mbsync + notmuch) to be enabled.
- '';
- }
- {
- assertion = !config.programs.neomutt.enable || config.programs.kitty.enable;
- message = ''
- programs.neomutt is enabled but programs.kitty.enable is not.
- neomutt's desktop entry requires kitty as the terminal launcher. Please enable programs.kitty.
- '';
- }
- ];
-}
diff --git a/modules/programs/neomutt/default.nix b/modules/programs/neomutt/default.nix
deleted file mode 100644
index 3626341..0000000
--- a/modules/programs/neomutt/default.nix
+++ /dev/null
@@ -1,427 +0,0 @@
-# neomutt - Terminal email client
-{
- config,
- lib,
- pkgs,
- ...
-}:
-let
- neomuttDesktopItem = pkgs.makeDesktopItem {
- name = "neomutt";
- desktopName = "NeoMutt";
- exec = "${lib.getExe config.programs.kitty.package} -e ${lib.getExe config.programs.neomutt.package}";
- icon = "kitty";
- categories = [
- "Network"
- "Email"
- ];
- comment = "Terminal email client";
- terminal = false;
- type = "Application";
- };
-in
-{
- imports = [
- ./assertions.nix
- ./theme.nix
- ];
- config = lib.mkIf config.programs.neomutt.enable {
- xdg.mimeApps.defaultApplications = {
- "x-scheme-handler/mailto" = "neomutt.desktop";
- };
-
- home.packages = [
- pkgs.urlscan
- pkgs.w3m
- neomuttDesktopItem
- ];
-
- xdg.configFile."neomutt/mailcap".text = ''
- text/html; w3m -dump -T text/html '%s'; copiousoutput; nametemplate=%s.html
- text/html; $BROWSER '%s'; nametemplate=%s.html
- image/*; xdg-open '%s' &
- application/pdf; xdg-open '%s'; nametemplate=%s.pdf
- video/*; xdg-open '%s' &
- audio/*; xdg-open '%s' &
- application/*; xdg-open '%s' &
- '';
-
- xdg.configFile."neomutt/flag_legend.txt".text = ''
- NeoMutt Index Flags
- ===================
-
- Message state ($flag_chars) -- unchanged defaults
- N New - unread, arrived since you last checked
- O Old - unread, but seen in a previous session
- D Deleted - marked for deletion (pending expunge)
- d Att-del - has attachments marked for deletion
- ! Flagged - important (toggle with F)
- * Tagged - selected for a bulk operation (toggle with t)
- r Replied - you've replied to this message
- (blank) - read, nothing else notable
-
- Cryptography ($crypt_chars)
-  Verified - signed, and the signature checks out
-  Encrypted - PGP/SMIME encrypted
-  Signed - PGP/SMIME signed (unverified)
-  PGP key - message contains a PGP public key
- (blank) - no cryptography info
-
- Addressing ($to_chars)
-  To you only - sent to you and only you
-  To (with others) - you're in the To: list, among others
-  Cc only - you're only in the Cc: list
-  From you - sent by you
-  Mailing list - sent to a list you're subscribed to
- (blank) - not in To/Cc (e.g. Bcc, unlisted)
-
- Press q to close.
- '';
-
- programs.neomutt = {
- sidebar.enable = true;
- sort = "reverse-threads";
- vimKeys = true;
- unmailboxes = true;
- checkStatsInterval = 20;
-
- extraConfig = ''
- set menu_scroll = yes
-
- # cancel any prompt/command-line entry with Esc, vim-style
- set abort_key = "<Esc>"
-
- # attachments: use our mailcap for dedicated openers,
- # and auto-render html/images inline where sensible
- set mailcap_path = "~/.config/neomutt/mailcap"
- auto_view text/html image/png image/jpeg image/gif application/pdf
- '';
-
- binds = [
- # --- sidebar navigation (vim: k=up, j=down) ---
- {
- map = [
- "index"
- "pager"
- ];
- key = "\\CK";
- action = "sidebar-prev";
- }
- {
- map = [
- "index"
- "pager"
- ];
- key = "\\CJ";
- action = "sidebar-next";
- }
- {
- # select the highlighted mailbox directly, no Ctrl+O needed
- map = [
- "index"
- "pager"
- ];
- key = "o";
- action = "sidebar-open";
- }
-
- # --- open / go deeper (vim: l = right/forward) ---
- {
- map = [ "index" ];
- key = "<Return>";
- action = "display-message";
- }
- {
- map = [ "index" ];
- key = "l";
- action = "display-message";
- }
- {
- map = [ "browser" ];
- key = "<Return>";
- action = "select-entry";
- }
- {
- map = [ "browser" ];
- key = "l";
- action = "select-entry";
- }
- {
- map = [ "attach" ];
- key = "<Return>";
- action = "view-attach";
- }
- {
- map = [ "attach" ];
- key = "l";
- action = "view-attach";
- }
- {
- map = [
- "alias"
- "query"
- ];
- key = "<Return>";
- action = "select-entry";
- }
-
- # --- back / exit (vim: h = left/back) ---
- {
- map = [ "pager" ];
- key = "h";
- action = "exit";
- }
- {
- map = [ "browser" ];
- key = "h";
- action = "exit";
- }
- {
- map = [ "attach" ];
- key = "h";
- action = "exit";
- }
- {
- map = [ "index" ];
- key = "h";
- action = "collapse-thread";
- }
-
- # --- pager line scrolling (vim: j/k move by line) ---
- {
- map = [ "pager" ];
- key = "j";
- action = "next-line";
- }
- {
- map = [ "pager" ];
- key = "k";
- action = "previous-line";
- }
- {
- # kept from before: jump straight to the next unread message,
- # extends the h/l "back/forward" metaphor already in use
- map = [ "pager" ];
- key = "l";
- action = "next-unread";
- }
-
- # --- top/bottom of buffer (vim: gg/G -- NOT 0/$, which mean
- # start/end of *line* in vim and would be a false friend here) ---
- {
- map = [ "index" ];
- key = "gg";
- action = "first-entry";
- }
- {
- map = [ "index" ];
- key = "G";
- action = "last-entry";
- }
- {
- map = [ "pager" ];
- key = "gg";
- action = "top";
- }
- {
- map = [ "pager" ];
- key = "G";
- action = "bottom";
- }
- {
- map = [ "browser" ];
- key = "gg";
- action = "first-entry";
- }
- {
- map = [ "browser" ];
- key = "G";
- action = "last-entry";
- }
-
- # --- page scrolling (vim: Ctrl-f/b full page, Ctrl-d/u half page) ---
- {
- map = [ "pager" ];
- key = "\\Cf";
- action = "next-page";
- }
- {
- map = [ "pager" ];
- key = "\\Cb";
- action = "previous-page";
- }
- {
- map = [ "pager" ];
- key = "\\Cd";
- action = "half-down";
- }
- {
- map = [ "pager" ];
- key = "\\Cu";
- action = "half-up";
- }
- {
- # index has no half-page concept, so Ctrl-d/u fall back to
- # the same full-page scroll as Ctrl-f/b
- map = [ "index" ];
- key = "\\Cf";
- action = "next-page";
- }
- {
- map = [ "index" ];
- key = "\\Cb";
- action = "previous-page";
- }
- {
- map = [ "index" ];
- key = "\\Cd";
- action = "half-down";
- }
- {
- map = [ "index" ];
- key = "\\Cu";
- action = "half-up";
- }
-
- # --- search (vim: / forward, ? backward, n/N repeat) ---
- {
- map = [
- "index"
- "pager"
- ];
- key = "/";
- action = "search";
- }
- {
- map = [
- "index"
- "pager"
- ];
- key = "?";
- action = "search-reverse";
- }
- {
- map = [
- "index"
- "pager"
- ];
- key = "n";
- action = "search-next";
- }
- {
- map = [
- "index"
- "pager"
- ];
- key = "N";
- action = "search-opposite";
- }
-
- {
- map = [
- "index"
- "pager"
- ];
- key = "u";
- action = "undelete-message";
- }
-
- # --- copy (vim: yy yank -- non-destructive, unlike save-message
- # which moves/deletes the original) ---
- {
- map = [ "index" ];
- key = "y";
- action = "noop";
- }
- {
- map = [ "index" ];
- key = "yy";
- action = "copy-message";
- }
-
- # --- tagging (vim: v/V visual select single/whole block) ---
- # NOTE: this overrides neomutt's default "v" (view-attachments).
- # Attachments are still reachable from the pager/index via the
- # mailcap auto-view or the attach menu, but if you want plain
- # "v" back for view-attachments, just delete these two binds.
- {
- map = [ "index" ];
- key = "v";
- action = "tag-entry";
- }
- {
- map = [ "index" ];
- key = "V";
- action = "tag-thread";
- }
-
- # --- mailbox switching (vim: gt = next tab) ---
- {
- map = [ "index" ];
- key = "gt";
- action = "next-unread-mailbox";
- }
-
- # --- filter/limit (vim: gf to 'find' or 'filter') ---
- {
- map = [ "index" ];
- key = "gf";
- action = "limit";
- }
-
- # --- filter/limit (vim: gf to 'find' or 'filter') ---
- {
- map = [ "index" ];
- key = "gF";
- action = "limit";
- }
-
- # --- help message to show functions and keybindings ---
- {
- map = [
- "index"
- "pager"
- "browser"
- "attach"
- ];
- key = "g?";
- action = "help";
- }
- ];
-
- macros = [
- {
- map = [
- "index"
- "pager"
- ];
- key = "O";
- action = "<sync-mailbox><shell-escape>mbsync -a<enter><sync-mailbox>";
- }
- {
- # gx: extract links from the current message and open one, vim-netrw style
- map = [
- "index"
- "pager"
- ];
- key = "gx";
- action = "<pipe-message>urlscan<Enter>";
- }
- {
- map = [
- "index"
- "pager"
- ];
- key = "gl";
- action = "<shell-escape>less ~/.config/neomutt/flag_legend.txt<enter>";
- }
- {
- # ZZ: save and quit, vim-style (sync mailbox, then quit)
- map = [ "index" ];
- key = "ZZ";
- action = "<sync-mailbox><quit>";
- }
- ];
- };
- };
-}
diff --git a/modules/programs/neomutt/theme.nix b/modules/programs/neomutt/theme.nix
deleted file mode 100644
index 52845ee..0000000
--- a/modules/programs/neomutt/theme.nix
+++ /dev/null
@@ -1,130 +0,0 @@
-{ config, lib, ... }:
-
-# Colorscheme - True base16 OneDark colors for neomutt
-# Leverages Kitty's precise mapping to base16 (color0-15)
-{
- config.programs.neomutt.extraConfig = lib.mkIf config.programs.neomutt.enable ''
- # vim: filetype=muttrc
- #
- # Base16 OneDark Dark terminal colors for neomutt
- # Each column in the index receives a distinct color to keep the UI organized.
-
- # Nerd Font icon-based flag/attachment/crypto indicators
- # order: new, old, deleted, flagged, replied, old(unused), tagged, encrypt, ...
- set flag_chars = "󰓹󰀼󰆴󰁟󰇰󰇮󰍩󰍨󰇱󰗚"
- set to_chars = " "
- set crypt_chars = " "
- set attach_format = "%u%D%I %t%4n %T%.40d %> [%m/%M, %e%?C?, %C?, %s] "
-
- set index_format = " %5C │ %Z │ %{%d/%m/%y %H:%M} │ %-25.25a │ %s%* "
-
- # Hide the keybindings help bar at the top to save vertical space
- set help = no
-
- # Status bar with Nerd Font icons per field
- set status_format = "  Unread: %5u │ 󰛏 New: %5n │  Tagged: %5t │  Search: %f │  Filter: %v │  Sorted By: %s │"
-
- # --- Basic UI Colors --------------------------------------------------
- # target foreground background
- color normal white default # base05 (Standard text)
- color error red default # base08 (Red)
- color tilde brightblack default # base03 (Dark Grey)
- color message cyan default # base0C (Cyan)
- color markers red default # base08 (Red)
- color attachment magenta default # base0E (Magenta)
- color search magenta default # base0E (Magenta)
- color prompt cyan default # base0C (Questions/prompts)
- color progress black yellow # 󰦖 base0A bg (Progress bar)
-
- # Selected row and status bar
- color status white brightblack # base05 on base03
- color indicator default brightblack # default on base03 (Selected email)
- color tree magenta default # base03 (Thread arrows)
-
- # Whole-line fallback for the index (base for anything not caught below)
- color index white default # base05
-
- # --- Index Columns (The Multi-Color Table) ----------------------------
- # Applies distinct colors to specific columns for ALL messages (~A)
- color index_number cyan default "~A" # base05 (Fixed: was brightblack)
- color index_date green default "~A" # base0B (Green)
- color index_flags red default "~A" # base08 (Red)
- color index_size cyan default "~A" # 󰈔 base0C (Cyan)
- color index_author yellow default "~A" # base0A (Yellow)
- color index_subject white default "~A" # base05 (Standard text for Read messages)
- color index_collapsed yellow default # base0A (Collapsed thread count, %M)
- color index_label magenta default # 󰓹 base0E (Message label, %y %Y)
- color index_tag cyan default # base0C (Message tags, %G)
- color index_tags cyan default # 󰓼 base0C (Transformed tags, %g %J)
-
- # --- Index Message States ---------------------------------------------
- # By targeting *only* `index_subject`, we preserve your multi-color
- # columns while still easily identifying unread or flagged emails.
- color index_subject blue default "~U" # Unread: Blue (base0D)
- color index_subject blue default "~N" # 󰄯 New: Blue (base0D)
- color index_subject red default "~F" # Flagged: Red (base08)
- color index_subject magenta default "~Q" # 󰛃 Replied: Magenta (base0E)
- color index_subject black red "~D" # Deleted
-
- # This rule now colors the "email (name)" column as it is considered the 'author'
- color index_author yellow default "~A"
- color index_subject white default "~A" # %s
-
- # We removed the ~R (Read) override so it stays white.
- # For Deleted (~D), if brightblack is still too dark to see, we can use a red background instead:
- color index_subject black red "~D" # Deleted: Black on Red background
-
- # Thread collapsing states
- color index_subject yellow default "~v" # Collapsed thread
- color index_subject blue default "~v~(~N)" # 󰝜 Collapsed with unread inside
- color index_subject red default "~v~(~F)" # 󰈺 Collapsed with flagged inside
-
- # Subtle zebra striping between adjacent index rows (barely-there contrast)
- color stripe_odd default default
- color stripe_even default default
-
- # --- Message Headers --------------------------------------------------
- color hdrdefault cyan default # base0C
- color header yellow default "^(From|To|Cc|Bcc)" # base0A
- color header blue default "^(Subject)" # base0D
- color header green default "^(Date)" # base03
-
- # Attachment header lines (shown above each MIME part in the pager)
- color attach_headers cyan default #
-
- # --- Message Body -----------------------------------------------------
- color quoted blue default # base0D
- color quoted1 cyan default # base0C
- color quoted2 yellow default # base0A
- color quoted3 red default # base08
- color quoted4 magenta default # base0E
- color quoted5 blue default # base0D (cycle repeats)
- color quoted6 cyan default # base0C
- color quoted7 yellow default # base0A
- color quoted8 red default # base08
- color quoted9 magenta default # base0E
-
- color signature green default # 󰛿 base0B
- color bold white default # base05
- color underline white default # base05
-
- # URLs
- color body blue default "([a-z][a-z0-9+-]*://[^ ]+)"
-
- # PGP
- color body green default "(Good signature)" # verified
- color body red default "(BAD signature)" # bad
- color body brightblack default "^gpg: " #
-
- # --- Sidebar (was completely unset despite sidebar.enable = true) -----
- set sidebar_format = " %D%* %?N? %N?%?F? %F? "
- color sidebar_background default default # transparent, blends with terminal bg
- color sidebar_divider white default # base03 (matches old tree color)
- color sidebar_ordinary white default # base05 (normal mailbox entries)
- color sidebar_new green default # 󰇮 base0B (mailboxes with new mail)
- color sidebar_flagged red default # base08 (mailboxes with flagged mail)
- color sidebar_spool_file yellow default # 󰇰 base0A (your inbox/spool)
- color sidebar_highlight white brightblack # base05 on base03 (cursor position)
- color sidebar_indicator default brightblack # default on base03 (currently open mailbox)
- '';
-}
diff --git a/modules/programs/nixvim/colorscheme.nix b/modules/programs/nixvim/colorscheme.nix
deleted file mode 100644
index ba81634..0000000
--- a/modules/programs/nixvim/colorscheme.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ config, lib, ... }:
-
-# Colorscheme - Base16 theme configuration for nixvim
-{
- config.programs.nixvim.colorschemes.base16 = lib.mkIf config.programs.nixvim.enable {
- enable = true;
- colorscheme = with config.scheme.withHashtag; {
- base00 = base00;
- base01 = base01;
- base02 = base02;
- base03 = base03;
- base04 = base04;
- base05 = base05;
- base06 = base06;
- base07 = base07;
- base08 = base08;
- base09 = base09;
- base0A = base0A;
- base0B = base0B;
- base0C = base0C;
- base0D = base0D;
- base0E = base0E;
- base0F = base0F;
- };
- };
-}
diff --git a/modules/programs/nixvim/default.nix b/modules/programs/nixvim/default.nix
deleted file mode 100644
index c7978d4..0000000
--- a/modules/programs/nixvim/default.nix
+++ /dev/null
@@ -1,103 +0,0 @@
-{ config, lib, ... }:
-
-# Nixvim - Neovim configured through Nix (home-manager integration)
-{
- imports = [
- ./colorscheme.nix
- ./keymaps.nix
- ./plugins
- ];
-
- config = {
- programs.nixvim = {
- defaultEditor = true;
- opts = {
- number = true;
- relativenumber = true;
- shiftwidth = 2;
- tabstop = 2;
- softtabstop = 2;
- expandtab = true;
- list = true;
- laststatus = 3;
- foldlevel = 99;
- clipboard = "unnamedplus";
- updatetime = 500;
- };
- clipboard.providers.xclip.enable = true;
- extraConfigLuaPre = with config.scheme.withHashtag; ''
- vim.opt.fillchars:append({ eob = " " })
- vim.opt.listchars = { tab = " ", trail = "_", lead = " " }
- vim.api.nvim_set_hl(0, "WinSeparator", {
- fg = "${base01}",
- bg = "${base00}",
- })
- vim.api.nvim_set_hl(0, 'NotifyERRORBorder', { fg = '${base08}' })
- vim.api.nvim_set_hl(0, 'NotifyWARNBorder', { fg = '${base09}' })
- vim.api.nvim_set_hl(0, 'NotifyINFOBorder', { fg = '${base0B}' })
- vim.api.nvim_set_hl(0, 'NotifyDEBUGBorder', { fg = '${base03}' })
- vim.api.nvim_set_hl(0, 'NotifyTRACEBorder', { fg = '${base0E}' })
-
- vim.api.nvim_set_hl(0, 'NotifyERRORIcon', { fg = '${base08}' })
- vim.api.nvim_set_hl(0, 'NotifyWARNIcon', { fg = '${base09}' })
- vim.api.nvim_set_hl(0, 'NotifyINFOIcon', { fg = '${base0B}' })
- vim.api.nvim_set_hl(0, 'NotifyDEBUGIcon', { fg = '${base03}' })
- vim.api.nvim_set_hl(0, 'NotifyTRACEIcon', { fg = '${base0E}' })
-
- vim.api.nvim_set_hl(0, 'NotifyERRORTitle', { fg = '${base08}' })
- vim.api.nvim_set_hl(0, 'NotifyWARNTitle', { fg = '${base09}' })
- vim.api.nvim_set_hl(0, 'NotifyINFOTitle', { fg = '${base0B}' })
- vim.api.nvim_set_hl(0, 'NotifyDEBUGTitle', { fg = '${base03}' })
- vim.api.nvim_set_hl(0, 'NotifyTRACETitle', { fg = '${base0E}' })
-
- vim.api.nvim_set_hl(0, 'NotifyERRORBody', { link = 'Normal' })
- vim.api.nvim_set_hl(0, 'NotifyWARNBody', { link = 'Normal' })
- vim.api.nvim_set_hl(0, 'NotifyINFOBody', { link = 'Normal' })
- vim.api.nvim_set_hl(0, 'NotifyDEBUGBody', { link = 'Normal' })
- vim.api.nvim_set_hl(0, 'NotifyTRACEBody', { link = 'Normal' })
-
- vim.api.nvim_create_autocmd({ "FileType" }, {
- pattern = { "yaml", "yml" },
- callback = function()
- vim.opt_local.expandtab = true
- vim.opt_local.shiftwidth = 2
- vim.opt_local.softtabstop = 2
- vim.opt_local.tabstop = 2
- end,
- })
- '';
- performance = {
- byteCompileLua.enable = true;
- combinePlugins.enable = true;
- };
-
- diagnostic = {
- settings = {
- virtual_text = false;
- signs = true;
- underline = true;
- update_in_insert = false;
- float = {
- border = "rounded";
- source = true; # Show which LSP the diagnostic is from
- header = "";
- prefix = "";
- };
- };
- };
-
- # Show diagnostics float on cursor hold
- autoCmd = [
- {
- event = [ "CursorHold" ];
- pattern = "*";
- callback.__raw = ''
- function()
- vim.diagnostic.open_float(nil, { focus = false })
- end
- '';
- }
- ];
- };
- };
-}
diff --git a/modules/programs/nixvim/keymaps.nix b/modules/programs/nixvim/keymaps.nix
deleted file mode 100644
index 4e4b35a..0000000
--- a/modules/programs/nixvim/keymaps.nix
+++ /dev/null
@@ -1,41 +0,0 @@
-{ config, lib, ... }:
-
-# Keymaps - Keyboard shortcut configuration for nixvim
-{
- config.programs.nixvim.keymaps = lib.mkIf config.programs.nixvim.enable [
- {
- key = "<c-h>";
- action = "<c-w>h";
- options.desc = "Move to left window";
- }
- {
- key = "<c-w>";
- action = "<c-w>j";
- options.desc = "Move to bottom window";
- }
- {
- key = "<c-k>";
- action = "<c-w>k";
- options.desc = "Move to top window";
- }
- {
- key = "<c-l>";
- action = "<c-w>l";
- options.desc = "Move to right window";
- }
- {
- key = "<c-n>";
- action = "<cmd>NvimTreeToggle<cr>";
- mode = [
- "n"
- "i"
- ];
- options.desc = "Toggle file explorer";
- }
- {
- key = "<c-c>";
- action = "<cmd>NotificationsClear<cr>";
- options.desc = "Clear notifications";
- }
- ];
-}
diff --git a/modules/programs/nixvim/plugins/cmp.nix b/modules/programs/nixvim/plugins/cmp.nix
deleted file mode 100644
index 683e0d3..0000000
--- a/modules/programs/nixvim/plugins/cmp.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{ config, lib, ... }:
-
-# Cmp - Completion plugin (nvim-cmp) for auto-completion
-{
- config.programs.nixvim.plugins.cmp = lib.mkIf config.programs.nixvim.enable {
- enable = true;
- autoEnableSources = true;
- settings = {
- snippet.expand = "function(args) require('luasnip').lsp_expand(args.body) end";
- mapping = {
- "<C-Space>" = "cmp.mapping.complete()";
- "<CR>" = "cmp.mapping.confirm({ select = true })";
- "<Tab>" = "cmp.mapping.select_next_item()";
- "<S-Tab>" = "cmp.mapping.select_prev_item()";
- "<Down>" = "cmp.mapping.select_next_item()";
- "<Up>" = "cmp.mapping.select_prev_item()";
- "<C-u>" = "cmp.mapping.scroll_docs(-4)"; # scroll docs up
- "<C-d>" = "cmp.mapping.scroll_docs(4)"; # scroll docs down
-
- "<Escape>" = ''
- cmp.mapping(function(fallback)
- if cmp.visible() then
- cmp.abort()
- else
- fallback()
- end
- end, { "i" })
- '';
- };
- sources = [
- { name = "nvim_lsp"; }
- { name = "path"; }
- { name = "buffer"; }
- ];
- };
- };
-}
diff --git a/modules/programs/nixvim/plugins/comment.nix b/modules/programs/nixvim/plugins/comment.nix
deleted file mode 100644
index cc1b9cb..0000000
--- a/modules/programs/nixvim/plugins/comment.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ config, lib, ... }:
-
-# Comment - Comment toggling plugin (comment.nvim)
-{
- config.programs.nixvim.plugins.comment = lib.mkIf config.programs.nixvim.enable {
- enable = true;
- settings = {
- toggler = {
- line = "gcc"; # toggle line comment
- block = "gbc"; # toggle block comment
- };
- opleader = {
- line = "gc"; # line comment operator (gc + motion)
- block = "gb"; # block comment operator (gb + motion)
- };
- extra = {
- above = "gcO"; # add comment line above
- below = "gco"; # add comment line below
- eol = "gcA"; # add comment at end of line
- };
- };
- };
-}
diff --git a/modules/programs/nixvim/plugins/default.nix b/modules/programs/nixvim/plugins/default.nix
deleted file mode 100644
index a263c51..0000000
--- a/modules/programs/nixvim/plugins/default.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ ... }:
-
-# Plugins - Collection of nixvim plugin configurations
-{
- imports = [
- ./cmp.nix
- ./comment.nix
- ./gitsigns.nix
- ./indent-blankline.nix
- ./lsp.nix
- ./lualine.nix
- ./luasnip.nix
- ./noice.nix
- ./nvim-tree.nix
- ./telescope.nix
- ./treesitter.nix
- ./web-devicons.nix
- ./which-key.nix
- ];
-}
diff --git a/modules/programs/nixvim/plugins/gitsigns.nix b/modules/programs/nixvim/plugins/gitsigns.nix
deleted file mode 100644
index ea99eba..0000000
--- a/modules/programs/nixvim/plugins/gitsigns.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{ config, lib, ... }:
-
-# Gitsigns - Git status in the sign column (gitsigns.nvim)
-{
- config.programs.nixvim.plugins.gitsigns = lib.mkIf config.programs.nixvim.enable {
- enable = true;
- };
-}
diff --git a/modules/programs/nixvim/plugins/indent-blankline.nix b/modules/programs/nixvim/plugins/indent-blankline.nix
deleted file mode 100644
index eb2674a..0000000
--- a/modules/programs/nixvim/plugins/indent-blankline.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{ config, lib, ... }:
-
-# Indent-blankline - Visual indentation guides (indent-blankline.nvim)
-{
- config.programs.nixvim.plugins.indent-blankline = lib.mkIf config.programs.nixvim.enable {
- enable = true;
- settings = {
- indent = {
- char = "┊";
- tab_char = "│";
- };
- };
- };
-}
diff --git a/modules/programs/nixvim/plugins/lsp.nix b/modules/programs/nixvim/plugins/lsp.nix
deleted file mode 100644
index 7fc3ddd..0000000
--- a/modules/programs/nixvim/plugins/lsp.nix
+++ /dev/null
@@ -1,234 +0,0 @@
-{ config, lib, ... }:
-
-# LSP - Language Server Protocol configuration (nvim-lspconfig)
-{
- config.programs.nixvim.plugins.lsp = lib.mkIf config.programs.nixvim.enable {
- enable = true;
- inlayHints = true;
- autoLoad = true;
-
- keymaps.lspBuf = {
- K = "hover";
- gD = "references";
- gd = "definition";
- gi = "implementation";
- gt = "type_definition";
- };
-
- servers = {
- # -- System & Configuration --
- nixd = {
- enable = true;
- package = null;
- }; # Nix
- bashls = {
- enable = true;
- package = null;
- }; # Bash/Shell
- taplo = {
- enable = true;
- package = null;
- }; # TOML
- yamlls = {
- enable = true;
- package = null;
- }; # YAML
- jsonls = {
- enable = true;
- package = null;
- }; # JSON
- marksman = {
- enable = true;
- package = null;
- }; # Markdown
-
- # -- Web Development (HTML/CSS/JS/TS) --
- html = {
- enable = true;
- package = null;
- }; # HTML
- cssls = {
- enable = true;
- package = null;
- }; # CSS/SCSS/LESS
- tailwindcss = {
- enable = true;
- package = null;
- }; # Tailwind CSS
- vtsls = {
- # JS/TS (Modern fast wrapper for tsserver)
- enable = true;
- package = null;
- settings = {
- # Optional but recommended: stops huge generic types from taking over your screen
- vtsls.experimental.maxInlayHintLength = 30;
-
- # TypeScript type inferences
- typescript.inlayHints = {
- parameterNames.enabled = "all";
- parameterTypes.enabled = true;
- variableTypes.enabled = true;
- propertyDeclarationTypes.enabled = true;
- functionLikeReturnTypes.enabled = true;
- enumMemberValues.enabled = true;
- };
-
- # JavaScript type inferences (via JSDoc)
- javascript.inlayHints = {
- parameterNames.enabled = "all";
- parameterTypes.enabled = true;
- variableTypes.enabled = true;
- propertyDeclarationTypes.enabled = true;
- functionLikeReturnTypes.enabled = true;
- enumMemberValues.enabled = true;
- };
- };
- };
- eslint = {
- enable = true;
- package = null;
- }; # ESLint diagnostics/formatting
-
- # -- Web Frameworks --
- volar = {
- # Vue
- enable = true;
- package = null;
- tslsIntegration = false;
- };
- svelte = {
- enable = true;
- package = null;
- }; # Svelte
- astro = {
- enable = true;
- package = null;
- }; # Astro
-
- # -- Scripting & High-Level Languages --
- basedpyright = {
- # Python (Modern, faster fork of Pyright)
- enable = true;
- package = null;
- settings.basedpyright.analysis.inlayHints = {
- variableTypes = true;
- callArgumentNames = true;
- functionReturnTypes = true;
- genericTypes = false; # can get noisy, opt-in
- };
- };
- ruff = {
- enable = true;
- package = null;
- }; # Python (Ultra-fast linter/formatter)
- ruby_lsp = {
- enable = true;
- package = null;
- }; # Ruby (Shopify's modern standard)
- lua_ls = {
- # Lua
- enable = true;
- package = null;
- settings.Lua.hint = {
- enable = true;
- arrayIndex = "Auto";
- setType = true;
- paramName = "All";
- paramType = true;
- };
- };
- intelephense = {
- enable = true;
- package = null;
- }; # PHP
- elixirls = {
- enable = true;
- package = null;
- }; # Elixir
-
- # -- Systems, Compiled, & Enterprise --
- clangd = {
- enable = true;
- package = null;
- }; # C/C++ (inlay hints on by default)
- rust_analyzer = {
- # Rust (inlay hints on by default)
- enable = true;
- package = null;
- installCargo = false;
- installRustc = false;
- };
- gopls = {
- # Go
- enable = true;
- package = null;
- settings.gopls.hints = {
- assignVariableTypes = true;
- compositeLiteralFields = true;
- compositeLiteralTypes = true;
- constantValues = true;
- functionTypeParameters = true;
- parameterNames = true;
- rangeVariableTypes = true;
- };
- };
- zls = {
- enable = true;
- package = null;
- }; # Zig (inlay hints on by default)
- jdtls = {
- # Java
- enable = true;
- package = null;
- settings.java.inlayHints.parameterNames.enabled = "all";
- };
- kotlin_language_server = {
- enable = true;
- package = null;
- }; # Kotlin
- csharp_ls = {
- enable = true;
- package = null;
- }; # C# (.NET) — no inlay hint support
- hls = {
- # Haskell
- enable = true;
- package = null;
- installGhc = false;
- settings.haskell.plugin."inlay-hints".globalOn = true;
- };
- ocamllsp = {
- enable = true;
- package = null;
- }; # OCaml
-
- # -- Infrastructure & DevOps --
- dockerls = {
- enable = true;
- package = null;
- }; # Dockerfile
- docker_compose_language_service = {
- enable = true;
- package = null;
- }; # Docker Compose
- terraformls = {
- enable = true;
- package = null;
- }; # Terraform/HCL
-
- # -- Data & APIs --
- sqlls = {
- enable = true;
- package = null;
- }; # SQL
- graphql = {
- enable = true;
- package = null;
- }; # GraphQL
- prismals = {
- enable = true;
- package = null;
- }; # Prisma ORM
- };
- };
-}
diff --git a/modules/programs/nixvim/plugins/lualine.nix b/modules/programs/nixvim/plugins/lualine.nix
deleted file mode 100644
index 72f34be..0000000
--- a/modules/programs/nixvim/plugins/lualine.nix
+++ /dev/null
@@ -1,90 +0,0 @@
-{ config, lib, ... }:
-
-# Lualine - Statusline configuration (lualine.nvim)
-{
- config.programs.nixvim.plugins.lualine = lib.mkIf config.programs.nixvim.enable {
- enable = true;
- settings = {
- options = {
- theme = with config.scheme.withHashtag; {
- normal = {
- a = {
- fg = base00;
- bg = base0D;
- gui = "bold";
- };
- b = {
- fg = base05;
- bg = base01;
- };
- c = {
- fg = base05;
- bg = base00;
- };
- };
- insert = {
- a = {
- fg = base00;
- bg = base0B;
- gui = "bold";
- };
- b = {
- fg = base05;
- bg = base01;
- };
- c = {
- fg = base05;
- bg = base00;
- };
- };
- visual = {
- a = {
- fg = base00;
- bg = base0A;
- gui = "bold";
- };
- b = {
- fg = base05;
- bg = base01;
- };
- c = {
- fg = base05;
- bg = base00;
- };
- };
- replace = {
- a = {
- fg = base00;
- bg = base08;
- gui = "bold";
- };
- b = {
- fg = base05;
- bg = base01;
- };
- c = {
- fg = base05;
- bg = base00;
- };
- };
- inactive = {
- a = {
- fg = base04;
- bg = base00;
- gui = "bold";
- };
- b = {
- fg = base04;
- bg = base00;
- };
- c = {
- fg = base04;
- bg = base00;
- };
- };
- };
- icons_enabled = true;
- };
- };
- };
-}
diff --git a/modules/programs/nixvim/plugins/luasnip.nix b/modules/programs/nixvim/plugins/luasnip.nix
deleted file mode 100644
index 60571e9..0000000
--- a/modules/programs/nixvim/plugins/luasnip.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{ config, lib, ... }:
-
-# Luasnip - Snippet engine for Neovim (Lua-based)
-{
- config.programs.nixvim.plugins.luasnip = lib.mkIf config.programs.nixvim.enable {
- enable = true;
- };
-}
diff --git a/modules/programs/nixvim/plugins/noice.nix b/modules/programs/nixvim/plugins/noice.nix
deleted file mode 100644
index d466506..0000000
--- a/modules/programs/nixvim/plugins/noice.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{ config, lib, ... }:
-
-# Noice - Modern UI for Neovim (cmdline, popupmenu, messages)
-{
- config.programs.nixvim.plugins.noice = lib.mkIf config.programs.nixvim.enable {
- enable = true;
- };
-}
diff --git a/modules/programs/nixvim/plugins/nvim-tree.nix b/modules/programs/nixvim/plugins/nvim-tree.nix
deleted file mode 100644
index 2ad6570..0000000
--- a/modules/programs/nixvim/plugins/nvim-tree.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-{ config, lib, ... }:
-
-# Nvim-tree - File explorer sidebar (nvim-tree.lua)
-{
- config.programs.nixvim.plugins.nvim-tree = lib.mkIf config.programs.nixvim.enable {
- enable = true;
- settings = {
- filters = {
- dotfiles = false;
- git_clean = false;
- no_buffer = false;
- custom = { };
- };
- git = {
- enable = true;
- ignore = false;
- };
- view = {
- width = 30;
- };
- renderer = {
- indent_markers = {
- enable = true;
- inline_arrows = false;
- icons = {
- corner = "└";
- edge = "│";
- item = "├";
- bottom = "─";
- none = " ";
- };
- };
- icons = {
- show = {
- folder = true;
- folder_arrow = false;
- file = true;
- git = true;
- };
- };
- };
- };
- };
-}
diff --git a/modules/programs/nixvim/plugins/telescope.nix b/modules/programs/nixvim/plugins/telescope.nix
deleted file mode 100644
index b9678fc..0000000
--- a/modules/programs/nixvim/plugins/telescope.nix
+++ /dev/null
@@ -1,85 +0,0 @@
-{ config, lib, ... }:
-
-# Telescope - Fuzzy finder
-{
- config.programs.nixvim.plugins.telescope = lib.mkIf config.programs.nixvim.enable {
- enable = true;
- extensions = {
- fzf-native.enable = true; # faster fuzzy sorting
- ui-select.enable = true; # use telescope for vim.ui.select (code actions etc.)
- };
- settings = {
- defaults = {
- layout_strategy = "horizontal";
- layout_config = {
- horizontal = {
- preview_width = 0.55;
- results_width = 0.45;
- };
- width = 0.87;
- height = 0.80;
- };
- mappings = {
- i = {
- "<C-k>".__raw = "require('telescope.actions').move_selection_previous";
- "<C-j>".__raw = "require('telescope.actions').move_selection_next";
- "<Escape>".__raw = "require('telescope.actions').close";
- };
- };
- };
- };
- keymaps = {
- # Files
- "<leader>ff" = {
- action = "find_files";
- options.desc = "Find files";
- };
- "<leader>fg" = {
- action = "live_grep";
- options.desc = "Live grep";
- };
- "<leader>fb" = {
- action = "buffers";
- options.desc = "Find buffers";
- };
- "<leader>fr" = {
- action = "oldfiles";
- options.desc = "Recent files";
- };
-
- # LSP
- "<leader>fd" = {
- action = "diagnostics";
- options.desc = "Diagnostics";
- };
- "<leader>fs" = {
- action = "lsp_document_symbols";
- options.desc = "Document symbols";
- };
-
- # Git
- "<leader>gc" = {
- action = "git_commits";
- options.desc = "Git commits";
- };
- "<leader>gb" = {
- action = "git_branches";
- options.desc = "Git branches";
- };
-
- # Misc
- "<leader>fh" = {
- action = "help_tags";
- options.desc = "Help tags";
- };
- "<leader>fc" = {
- action = "commands";
- options.desc = "Commands";
- };
- "<leader>fk" = {
- action = "keymaps";
- options.desc = "Find keymaps";
- };
- };
- };
-}
diff --git a/modules/programs/nixvim/plugins/treesitter.nix b/modules/programs/nixvim/plugins/treesitter.nix
deleted file mode 100644
index 035ac7a..0000000
--- a/modules/programs/nixvim/plugins/treesitter.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{ config, lib, ... }:
-
-# Treesitter - Syntax highlighting and parsing (nvim-treesitter)
-{
- config.programs.nixvim.plugins.treesitter = lib.mkIf config.programs.nixvim.enable {
- enable = true;
- folding = {
- enable = true;
- };
- settings = {
- highlight = {
- enable = true;
- };
- indent = {
- enable = true;
- };
- };
- };
-}
diff --git a/modules/programs/nixvim/plugins/web-devicons.nix b/modules/programs/nixvim/plugins/web-devicons.nix
deleted file mode 100644
index 3c6ad86..0000000
--- a/modules/programs/nixvim/plugins/web-devicons.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{ config, lib, ... }:
-
-# Web-devicons - File icons for various file types (nvim-web-devicons)
-{
- config.programs.nixvim.plugins.web-devicons = lib.mkIf config.programs.nixvim.enable {
- enable = true;
- };
-}
diff --git a/modules/programs/nixvim/plugins/which-key.nix b/modules/programs/nixvim/plugins/which-key.nix
deleted file mode 100644
index 18018e7..0000000
--- a/modules/programs/nixvim/plugins/which-key.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ config, lib, ... }:
-
-# Which-key - Popup for keybindings (which-key.nvim)
-{
- config.programs.nixvim.plugins.which-key = lib.mkIf config.programs.nixvim.enable {
- enable = true;
- settings = {
- plugins = {
- marks = true;
- registers = true;
- spelling = {
- enabled = true;
- suggestions = 20;
- };
- };
- win = {
- border = "single";
- };
- };
- };
-}
diff --git a/modules/programs/nvtop/default.nix b/modules/programs/nvtop/default.nix
deleted file mode 100644
index 19dd61b..0000000
--- a/modules/programs/nvtop/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- config,
- pkgs,
- lib,
- ...
-}:
-
-# Nvtop - GPU process monitor (NVIDIA/AMD/Intel GPUs)
-{
- options.programs.nvtop = {
- enable = lib.mkEnableOption "Enables nvtop.";
- package = lib.mkOption {
- type = lib.types.package;
- default = pkgs.nvtopPackages.full;
- readOnly = true;
- description = "The nvtop package to use.";
- };
- };
-
- config = lib.mkIf config.programs.nvtop.enable {
- home.packages = [ config.programs.nvtop.package ];
- };
-}
diff --git a/modules/programs/opencode/default.nix b/modules/programs/opencode/default.nix
deleted file mode 100644
index 0b3f0b6..0000000
--- a/modules/programs/opencode/default.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}:
-
-# Opencode - AI-powered coding assistant (opencode.ai)
-{
- config = lib.mkIf config.programs.opencode.enable {
- programs.opencode = {
- package = pkgs.opencode;
- };
-
- xdg.mimeApps.defaultApplications = {
- "x-scheme-handler/opencode" = "opencode.desktop";
- };
- };
-}
diff --git a/modules/programs/openvpn/default.nix b/modules/programs/openvpn/default.nix
deleted file mode 100644
index d0edef3..0000000
--- a/modules/programs/openvpn/default.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}:
-
-# OpenVPN - Open-source VPN client for secure remote access
-{
- options.programs.openvpn = {
- enable = lib.mkEnableOption "Enables openvpn.";
- package = lib.mkPackageOption pkgs "openvpn" { };
- };
-
- config = lib.mkIf config.programs.openvpn.enable {
- home.packages = [ config.programs.openvpn.package ];
- };
-}
diff --git a/modules/programs/ouch/default.nix b/modules/programs/ouch/default.nix
deleted file mode 100644
index 2b4411e..0000000
--- a/modules/programs/ouch/default.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- pkgs,
- lib,
- config,
- ...
-}:
-
-# Ouch! - CLI tool for compressing and decompressing various formats.
-{
- options.programs.ouch = {
- enable = lib.mkEnableOption "Enables ouch.";
- package = lib.mkPackageOption pkgs "ouch" { };
- };
-
- config = lib.mkIf config.programs.ouch.enable {
- home.packages = [ config.programs.ouch.package ];
- };
-}
diff --git a/modules/programs/pamixer/default.nix b/modules/programs/pamixer/default.nix
deleted file mode 100644
index b84e9cf..0000000
--- a/modules/programs/pamixer/default.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}:
-
-# Pamixer - PulseAudio command-line mixer (volume control)
-{
- options.programs.pamixer = {
- enable = lib.mkEnableOption "Enables pamixer.";
- package = lib.mkPackageOption pkgs "pamixer" { };
- };
-
- config = lib.mkIf config.programs.pamixer.enable {
- home.packages = [ config.programs.pamixer.package ];
- };
-}
diff --git a/modules/programs/playerctl/default.nix b/modules/programs/playerctl/default.nix
deleted file mode 100644
index d501abd..0000000
--- a/modules/programs/playerctl/default.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}:
-
-# Playerctl - CLI for controlling media players (Spotify, MPRIS, etc.)
-{
- options.programs.playerctl = {
- enable = lib.mkEnableOption "Enables playerctl.";
- package = lib.mkPackageOption pkgs "playerctl" { };
- };
-
- config = lib.mkIf config.programs.playerctl.enable {
- home.packages = [ config.programs.playerctl.package ];
- };
-}
diff --git a/modules/programs/qemu/default.nix b/modules/programs/qemu/default.nix
deleted file mode 100644
index b34264c..0000000
--- a/modules/programs/qemu/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}:
-
-# QEMU - generic and open source machine & userspace emulator and virtualizer.
-{
- options.programs.qemu = {
- enable = lib.mkEnableOption "Enables qemu.";
- package = lib.mkOption {
- type = lib.types.package;
- default = pkgs.symlinkJoin {
- name = "qemu-bundle";
- paths = with pkgs; [
- qemu
- libvirt
- virtiofsd
- virt-manager
- ];
- };
- description = "Bundle of QEMU-related packages.";
- };
- };
-
- config = lib.mkIf config.programs.qemu.enable {
- home.packages = [ config.programs.qemu.package ];
- };
-}
diff --git a/modules/programs/slop/default.nix b/modules/programs/slop/default.nix
deleted file mode 100644
index c86181b..0000000
--- a/modules/programs/slop/default.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}:
-
-# Slop - Region selector for screenshots (used by maim/flameshot)
-{
- options.programs.slop = {
- enable = lib.mkEnableOption "Enables slop.";
- package = lib.mkPackageOption pkgs "slop" { };
- };
-
- config = lib.mkIf config.programs.slop.enable {
- home.packages = [ config.programs.slop.package ];
- };
-}
diff --git a/modules/programs/ssh/default.nix b/modules/programs/ssh/default.nix
deleted file mode 100644
index 7e8752a..0000000
--- a/modules/programs/ssh/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}:
-
-# OpenSSH - Secure shell (SSH) client for encrypted remote connections
-{
- imports = [ ./git.nix ];
-
- config = lib.mkIf config.programs.ssh.enable {
- programs.ssh = {
- package = pkgs.openssh;
- enableDefaultConfig = false;
- extraOptionOverrides = {
- AddKeysToAgent = "yes";
- ForwardAgent = "yes";
- ServerAliveInterval = "60";
- ServerAliveCountMax = "3";
- VisualHostKey = "yes";
- HashKnownHosts = "yes";
- };
- };
- };
-}
diff --git a/modules/programs/ssh/git.nix b/modules/programs/ssh/git.nix
deleted file mode 100644
index 9683629..0000000
--- a/modules/programs/ssh/git.nix
+++ /dev/null
@@ -1,49 +0,0 @@
-{ config, lib, ... }:
-
-let
- hosts = [
- {
- domain = "github.com";
- identityName = "github";
- }
- {
- domain = "gitlab.com";
- identityName = "gitlab";
- }
- {
- domain = "bitbucket.org";
- identityName = "bitbucket";
- }
- {
- domain = "codeberg.org";
- identityName = "codeberg";
- }
- {
- domain = "git.sr.ht";
- identityName = "sourcehut";
- }
- ];
-
- mkGitHost =
- { domain, identityName }:
- lib.nameValuePair domain {
- hostname = domain;
- user = "git";
- identityFile = "${config.home.homeDirectory}/.local/share/ssh/git/${identityName}";
- };
-
- mkKeyFile =
- { identityName, ... }:
- lib.nameValuePair identityName {
- enable = true;
- text = "";
- force = false;
- };
-in
-{
- config = lib.mkIf (config.programs.ssh.enable && config.programs.git.useSSH) {
- home.file = builtins.listToAttrs (map mkKeyFile hosts);
-
- programs.ssh.settings = builtins.listToAttrs (map mkGitHost hosts);
- };
-}
diff --git a/modules/programs/starship/default.nix b/modules/programs/starship/default.nix
deleted file mode 100644
index ae5e082..0000000
--- a/modules/programs/starship/default.nix
+++ /dev/null
@@ -1,63 +0,0 @@
-{ config, lib, ... }:
-
-# Starship - Minimal, blazing-fast shell prompt
-{
- config = lib.mkIf config.programs.starship.enable {
- programs.starship = {
- enableZshIntegration = config.programs.zsh.enable;
- settings =
- let
- mkSegment = content: ''[┄\[](red)[${content}]($style)[\]](red)'';
- in
- {
- add_newline = true;
-
- format = ''''\n[╭─\[](red)$username[@](red)$hostname[\]](red)$directory$git_branch$git_status$nix_shell''\n[╰─](red)$status$character ''\n'';
-
- character.format = "[](red)";
-
- username = {
- style_user = "blue";
- style_root = "red bold";
- format = "[$user]($style)";
- show_always = true;
- };
-
- hostname = {
- ssh_only = false;
- style = "green";
- format = "[$hostname]($style)";
- };
-
- directory = {
- style = "purple";
- truncate_to_repo = false;
- format = mkSegment "$path";
- };
-
- git_branch = {
- style = "bold yellow";
- format = ''[┄\[](red)[$symbol$branch(:$remote_branch)]($style)'';
- };
-
- git_status = {
- style = "cyan";
- format = ''( [$all_status$ahead_behind]($style))[\]](red)'';
- };
-
- nix_shell = {
- format = mkSegment "$symbol $state( \($name\))";
- symbol = "󱄅";
- impure_msg = "󰻌";
- pure_msg = "󰕥";
- };
-
- status = {
- disabled = false;
- format = "${mkSegment "$symbol $status"}[┄─](red)";
- style = "white";
- };
- };
- };
- };
-}
diff --git a/modules/programs/systemctl-tui/default.nix b/modules/programs/systemctl-tui/default.nix
deleted file mode 100644
index 77dca8c..0000000
--- a/modules/programs/systemctl-tui/default.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- config,
- pkgs,
- lib,
- ...
-}:
-
-# systemctl-tui - TUI for systemctl (systemd service management)
-{
- options.programs.systemctl-tui = {
- enable = lib.mkEnableOption "Enables systemctl-tui.";
- package = lib.mkPackageOption pkgs "systemctl-tui" { };
- };
-
- config = lib.mkIf config.programs.systemctl-tui.enable {
- home.packages = [ config.programs.systemctl-tui.package ];
- };
-}
diff --git a/modules/programs/tmux/default.nix b/modules/programs/tmux/default.nix
deleted file mode 100644
index e2e76c9..0000000
--- a/modules/programs/tmux/default.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}:
-
-# Tmux - Terminal multiplexer (window/pane management)
-{
- config = lib.mkIf config.programs.tmux.enable {
- programs.tmux = {
- package = pkgs.tmux;
- };
- };
-}
diff --git a/modules/programs/tor/default.nix b/modules/programs/tor/default.nix
deleted file mode 100644
index 3a19c8a..0000000
--- a/modules/programs/tor/default.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{
- pkgs,
- lib,
- config,
- ...
-}:
-
-# Tor - Local proxy server for connecting to the tor network
-{
- options.programs.tor = {
- enable = lib.mkEnableOption "Enables tor.";
- package = lib.mkPackageOption pkgs "tor" { };
- };
-
- config = lib.mkIf config.programs.tor.enable {
- home.packages = [ config.programs.tor.package ];
-
- home.file.".config/tor/torrc".text = ''
- SocksPort 127.0.0.1:9050
- CookieAuthentication 1
- # Prevents Tor from writing to disk too much
- AvoidDiskWrites 1
- '';
- };
-}
diff --git a/modules/programs/vlc/default.nix b/modules/programs/vlc/default.nix
deleted file mode 100644
index 8069f3e..0000000
--- a/modules/programs/vlc/default.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}:
-
-# VLC - Versatile multimedia player for audio/video playback
-{
- options.programs.vlc = {
- enable = lib.mkEnableOption "Enables vlc.";
- package = lib.mkPackageOption pkgs "vlc" { };
- };
-
- config = lib.mkIf config.programs.vlc.enable {
- home.packages = [ config.programs.vlc.package ];
-
- xdg.mimeApps.defaultApplications = {
- "x-scheme-handler/vlc" = "vlc.desktop";
- "video/mp4" = "vlc.desktop";
- "video/mpeg" = "vlc.desktop";
- "video/x-matroska" = "vlc.desktop";
- "video/x-msvideo" = "vlc.desktop";
- "video/quicktime" = "vlc.desktop";
- "video/webm" = "vlc.desktop";
- "video/x-ms-wmv" = "vlc.desktop";
- "video/x-flv" = "vlc.desktop";
- "video/ogg" = "vlc.desktop";
- "audio/mpeg" = "vlc.desktop";
- "audio/ogg" = "vlc.desktop";
- "audio/x-wav" = "vlc.desktop";
- "audio/x-flac" = "vlc.desktop";
- "audio/mp4" = "vlc.desktop";
- "audio/x-matroska" = "vlc.desktop";
- };
- };
-}
diff --git a/modules/programs/vscodium/default.nix b/modules/programs/vscodium/default.nix
deleted file mode 100644
index a8cbd37..0000000
--- a/modules/programs/vscodium/default.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}:
-
-# VSCodium - Visual Studio Code fork
-{
- config = lib.mkIf config.programs.vscodium.enable {
- programs.vscodium = {
- package = pkgs.vscodium;
- };
-
- xdg.mimeApps.defaultApplications = {
- "x-scheme-handler/vscodium" = "vscodium.desktop";
- "text/plain" = "vscodium.desktop";
- };
- };
-}
diff --git a/modules/programs/zathura/default.nix b/modules/programs/zathura/default.nix
deleted file mode 100644
index 167b04f..0000000
--- a/modules/programs/zathura/default.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}:
-
-# Zathura - Minimalistic document viewer (PDF, DJVU, etc.)
-{
- config = lib.mkIf config.programs.zathura.enable {
- programs.zathura = {
- package = pkgs.zathura;
- };
-
- xdg.mimeApps.defaultApplications = {
- "application/pdf" = "zathura.desktop";
- "application/x-pdf" = "zathura.desktop";
- "image/vnd.djvu" = "zathura.desktop";
- "application/epub+zip" = "zathura.desktop";
- "application/postscript" = "zathura.desktop";
- "application/vnd.comicbook+zip" = "zathura.desktop";
- "application/vnd.comicbook-rar" = "zathura.desktop";
- };
- };
-}
diff --git a/modules/programs/zsh/default.nix b/modules/programs/zsh/default.nix
deleted file mode 100644
index f3bdbb1..0000000
--- a/modules/programs/zsh/default.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}:
-
-# Zsh - Z shell, extended bash with additional features and plugins
-{
- config =
- let
- nixCommandWrappers = builtins.readFile ./nix-aliases.sh;
- in
- lib.mkIf config.programs.zsh.enable {
- programs.zsh = {
- package = pkgs.zsh;
- dotDir = "${config.xdg.configHome}/zsh";
- history.path = "${config.xdg.cacheHome}/zsh/history";
- enableCompletion = true;
- initContent = ''
- setopt PROMPT_SUBST
-
- autoload -U colors && colors
-
- export GPG_TTY="$(tty)"
- gpg-connect-agent updatestartuptty /bye >/dev/null 2>&1
-
- bindkey "^[[3~" delete-char
- bindkey "^?" backward-delete-char
- ${nixCommandWrappers}
- '';
- };
-
- programs.bash.initExtra = lib.mkIf config.programs.bash.enable (lib.mkAfter nixCommandWrappers);
-
- home.sessionVariables.SHELL = "${lib.getExe config.programs.zsh.package}";
- };
-}
diff --git a/modules/programs/zsh/nix-aliases.sh b/modules/programs/zsh/nix-aliases.sh
deleted file mode 100644
index 0a2f453..0000000
--- a/modules/programs/zsh/nix-aliases.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-nix-shell() {
- for arg in "$@"; do
- if [[ "$arg" == "--run" || "$arg" == "--command" ]]; then
- command nix-shell "$@"
- return
- fi
- done
-
- command nix-shell "$@" --run "$SHELL"
-}
-
-nix() {
- if [[ "$1" == "develop" ]]; then
- local args=("${@:2}")
-
- for arg in "${args[@]}"; do
- if [[ "$arg" == "-c" || "$arg" == "--command" ]]; then
- command nix "$@"
- return
- fi
- done
-
- command nix develop "${args[@]}" -c "$SHELL"
- else
- command nix "$@"
- fi
-}