From fcc60b84e5e3cc44986d40af63f5de488caae909 Mon Sep 17 00:00:00 2001 From: seth Date: Sat, 3 Feb 2024 19:27:26 -0500 Subject: make everything a module --- users/seth/default.nix | 13 +- users/seth/desktop/budgie/default.nix | 18 -- users/seth/desktop/default.nix | 23 -- users/seth/desktop/gnome/default.nix | 89 ------- users/seth/desktop/plasma/default.nix | 58 ----- users/seth/home.nix | 16 +- users/seth/module/default.nix | 10 + users/seth/module/desktop/budgie/default.nix | 18 ++ users/seth/module/desktop/default.nix | 27 +++ users/seth/module/desktop/gnome/default.nix | 89 +++++++ users/seth/module/desktop/plasma/default.nix | 58 +++++ users/seth/module/programs/bat.nix | 18 ++ users/seth/module/programs/chromium.nix | 35 +++ users/seth/module/programs/default.nix | 62 +++++ users/seth/module/programs/eza.nix | 19 ++ users/seth/module/programs/firefox/arkenfox.nix | 73 ++++++ users/seth/module/programs/firefox/default.nix | 54 +++++ users/seth/module/programs/git.nix | 54 +++++ users/seth/module/programs/gpg.nix | 26 +++ users/seth/module/programs/mangohud.nix | 31 +++ users/seth/module/programs/neovim.nix | 30 +++ users/seth/module/programs/ssh.nix | 51 ++++ users/seth/module/programs/starship/default.nix | 28 +++ users/seth/module/programs/starship/starship.toml | 272 ++++++++++++++++++++++ users/seth/module/programs/vim.nix | 43 ++++ users/seth/module/programs/vscode.nix | 23 ++ users/seth/module/shell/bash.nix | 34 +++ users/seth/module/shell/default.nix | 40 ++++ users/seth/module/shell/fish.nix | 52 +++++ users/seth/module/shell/nu.nix | 43 ++++ users/seth/module/shell/zsh.nix | 128 ++++++++++ users/seth/module/standalone.nix | 25 ++ users/seth/programs/bat.nix | 6 - users/seth/programs/chromium.nix | 22 -- users/seth/programs/default.nix | 57 ----- users/seth/programs/eza.nix | 7 - users/seth/programs/firefox/arkenfox.nix | 54 ----- users/seth/programs/firefox/default.nix | 38 --- users/seth/programs/git.nix | 41 ---- users/seth/programs/gpg.nix | 17 -- users/seth/programs/mangohud.nix | 16 -- users/seth/programs/ssh.nix | 42 ---- users/seth/programs/starship/default.nix | 16 -- users/seth/programs/starship/starship.toml | 272 ---------------------- users/seth/programs/vim.nix | 32 --- users/seth/programs/vscode.nix | 10 - users/seth/shell/bash.nix | 22 -- users/seth/shell/default.nix | 21 -- users/seth/shell/fish.nix | 40 ---- users/seth/shell/nu.nix | 36 --- users/seth/shell/zsh.nix | 115 --------- users/seth/system.nix | 36 --- 52 files changed, 1346 insertions(+), 1114 deletions(-) delete mode 100644 users/seth/desktop/budgie/default.nix delete mode 100644 users/seth/desktop/default.nix delete mode 100644 users/seth/desktop/gnome/default.nix delete mode 100644 users/seth/desktop/plasma/default.nix create mode 100644 users/seth/module/default.nix create mode 100644 users/seth/module/desktop/budgie/default.nix create mode 100644 users/seth/module/desktop/default.nix create mode 100644 users/seth/module/desktop/gnome/default.nix create mode 100644 users/seth/module/desktop/plasma/default.nix create mode 100644 users/seth/module/programs/bat.nix create mode 100644 users/seth/module/programs/chromium.nix create mode 100644 users/seth/module/programs/default.nix create mode 100644 users/seth/module/programs/eza.nix create mode 100644 users/seth/module/programs/firefox/arkenfox.nix create mode 100644 users/seth/module/programs/firefox/default.nix create mode 100644 users/seth/module/programs/git.nix create mode 100644 users/seth/module/programs/gpg.nix create mode 100644 users/seth/module/programs/mangohud.nix create mode 100644 users/seth/module/programs/neovim.nix create mode 100644 users/seth/module/programs/ssh.nix create mode 100644 users/seth/module/programs/starship/default.nix create mode 100644 users/seth/module/programs/starship/starship.toml create mode 100644 users/seth/module/programs/vim.nix create mode 100644 users/seth/module/programs/vscode.nix create mode 100644 users/seth/module/shell/bash.nix create mode 100644 users/seth/module/shell/default.nix create mode 100644 users/seth/module/shell/fish.nix create mode 100644 users/seth/module/shell/nu.nix create mode 100644 users/seth/module/shell/zsh.nix create mode 100644 users/seth/module/standalone.nix delete mode 100644 users/seth/programs/bat.nix delete mode 100644 users/seth/programs/chromium.nix delete mode 100644 users/seth/programs/default.nix delete mode 100644 users/seth/programs/eza.nix delete mode 100644 users/seth/programs/firefox/arkenfox.nix delete mode 100644 users/seth/programs/firefox/default.nix delete mode 100644 users/seth/programs/git.nix delete mode 100644 users/seth/programs/gpg.nix delete mode 100644 users/seth/programs/mangohud.nix delete mode 100644 users/seth/programs/ssh.nix delete mode 100644 users/seth/programs/starship/default.nix delete mode 100644 users/seth/programs/starship/starship.toml delete mode 100644 users/seth/programs/vim.nix delete mode 100644 users/seth/programs/vscode.nix delete mode 100644 users/seth/shell/bash.nix delete mode 100644 users/seth/shell/default.nix delete mode 100644 users/seth/shell/fish.nix delete mode 100644 users/seth/shell/nu.nix delete mode 100644 users/seth/shell/zsh.nix delete mode 100644 users/seth/system.nix (limited to 'users/seth') diff --git a/users/seth/default.nix b/users/seth/default.nix index f5a1be2..c54e5ff 100644 --- a/users/seth/default.nix +++ b/users/seth/default.nix @@ -1,12 +1,3 @@ -{inputs, ...}: { - imports = with inputs; [ - ./programs - ./shell - - arkenfox.hmModules.arkenfox - catppuccin.homeManagerModules.catppuccin - nix-index-database.hmModules.nix-index - ]; - - home.stateVersion = "23.11"; +{ + imports = [./module]; } diff --git a/users/seth/desktop/budgie/default.nix b/users/seth/desktop/budgie/default.nix deleted file mode 100644 index bf72ee5..0000000 --- a/users/seth/desktop/budgie/default.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ - lib, - osConfig, - ... -}: let - enable = osConfig.services.xserver.desktopManager.budgie.enable or false; -in { - config = lib.mkIf enable { - dconf = { - enable = true; - settings = { - "com.solus-project.budgie-panel:Budgie" = { - pinned-launchers = ["firefox.desktop" "nemo.desktop" "discord.desktop"]; - }; - }; - }; - }; -} diff --git a/users/seth/desktop/default.nix b/users/seth/desktop/default.nix deleted file mode 100644 index fb4b894..0000000 --- a/users/seth/desktop/default.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: { - options.desktop.enable = lib.mkEnableOption "desktop"; - - imports = [ - ./budgie - ./gnome - ./plasma - ]; - - config = lib.mkIf config.desktop.enable { - home.packages = with pkgs; [ - discord - element-desktop - spotify - prismlauncher - ]; - }; -} diff --git a/users/seth/desktop/gnome/default.nix b/users/seth/desktop/gnome/default.nix deleted file mode 100644 index 2ed45b2..0000000 --- a/users/seth/desktop/gnome/default.nix +++ /dev/null @@ -1,89 +0,0 @@ -{ - lib, - pkgs, - osConfig, - ... -}: let - enable = osConfig.services.xserver.desktopManager.gnome.enable or false; -in { - config = lib.mkIf enable { - home = { - packages = with pkgs; [ - adw-gtk3 - tuba - qadwaitadecorations - qadwaitadecorations-qt6 - - gnomeExtensions.caffeine - ]; - - sessionVariables = { - QT_WAYLAND_DECORATION = "adwaita"; - }; - }; - - dconf = { - enable = true; - settings = { - "org/gnome/shell" = { - disable-user-extensions = false; - - enabled-extensions = [ - "caffeine@patapon.info" - ]; - - favorite-apps = [ - "chromium-browser.desktop" - "org.gnome.Nautilus.desktop" - "discord.desktop" - ]; - }; - - "org/gnome/desktop/interface" = { - color-scheme = "prefer-dark"; - document-font-name = "Noto Sans 11"; - font-antialiasing = "rgba"; - font-name = "Noto Sans 11"; - monospace-font-name = "NotoMono Nerd Font 10"; - }; - - "org/gnome/desktop/peripherals/mouse" = { - accel-profile = "flat"; - }; - - "org/gnome/desktop/wm/preferences" = { - titlebar-font = "Noto Sans Bold 11"; - }; - - "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = { - name = "blackbox"; - command = "blackbox"; - binding = "t"; - }; - - "com/raggesilver/BlackBox" = { - font = "NotoMono Nerd Font 12"; - theme-dark = "Catppuccin-Mocha"; - remember-window-size = true; - }; - }; - }; - - gtk = { - enable = true; - theme = { - name = "adw-gtk3-dark"; - package = pkgs.adw-gtk3; - }; - }; - - xdg.dataFile."blackbox/schemes/Catppuccin-Mocha.json".source = - pkgs.fetchFromGitHub { - owner = "catppuccin"; - repo = "tilix"; - rev = "3fd05e03419321f2f2a6aad6da733b28be1765ef"; - sha256 = "sha256-SI7QxQ+WBHzeuXbTye+s8pi4tDVZOV4Aa33mRYO276k="; - } - + "/src/Catppuccin-Mocha.json"; - }; -} diff --git a/users/seth/desktop/plasma/default.nix b/users/seth/desktop/plasma/default.nix deleted file mode 100644 index e3735f1..0000000 --- a/users/seth/desktop/plasma/default.nix +++ /dev/null @@ -1,58 +0,0 @@ -{ - config, - lib, - pkgs, - osConfig, - ... -}: let - enable = osConfig.services.xserver.desktopManager.plasma5.enable or false; - themeDir = "${config.gtk.theme.package}/share/themes/${config.gtk.theme.name}"; -in { - config = lib.mkIf enable { - home.packages = with pkgs; [ - catppuccin-cursors - (catppuccin-kde.override - { - flavour = ["mocha"]; - accents = ["mauve"]; - }) - - (catppuccin-kvantum.override - { - variant = "Mocha"; - accent = "Mauve"; - }) - - libsForQt5.qtstyleplugin-kvantum - papirus-icon-theme - ]; - - xdg = { - configFile = { - "gtk-4.0/gtk.css".source = "${themeDir}/gtk-4.0/gtk.css"; - "gtk-4.0/gtk-dark.css".source = "${themeDir}/gtk-4.0/gtk-dark.css"; - }; - - dataFile."konsole/catppuccin-mocha.colorscheme".source = - pkgs.fetchFromGitHub { - owner = "catppuccin"; - repo = "konsole"; - rev = "7d86b8a1e56e58f6b5649cdaac543a573ac194ca"; - sha256 = "EwSJMTxnaj2UlNJm1t6znnatfzgm1awIQQUF3VPfCTM="; - } - + "/Catppuccin-Mocha.colorscheme"; - }; - - gtk = { - enable = true; - - theme = { - name = "Catppuccin-Mocha-Standard-Mauve-dark"; - package = pkgs.catppuccin-gtk.override { - accents = ["mauve"]; - variant = "mocha"; - }; - }; - }; - }; -} diff --git a/users/seth/home.nix b/users/seth/home.nix index a3529b0..218ef95 100644 --- a/users/seth/home.nix +++ b/users/seth/home.nix @@ -1,18 +1,4 @@ { - config, - pkgs, - self, - ... -}: { imports = [./.]; - - home = { - username = "seth"; - homeDirectory = - if pkgs.stdenv.isDarwin - then "/Users/${config.home.username}" - else "/home/${config.home.username}"; - }; - - nixpkgs.overlays = [self.overlays.default]; + seth.standalone.enable = true; } diff --git a/users/seth/module/default.nix b/users/seth/module/default.nix new file mode 100644 index 0000000..29163db --- /dev/null +++ b/users/seth/module/default.nix @@ -0,0 +1,10 @@ +{ + imports = [ + ./desktop + ./programs + ./shell + ./standalone.nix + ]; + + home.stateVersion = "23.11"; +} diff --git a/users/seth/module/desktop/budgie/default.nix b/users/seth/module/desktop/budgie/default.nix new file mode 100644 index 0000000..bf72ee5 --- /dev/null +++ b/users/seth/module/desktop/budgie/default.nix @@ -0,0 +1,18 @@ +{ + lib, + osConfig, + ... +}: let + enable = osConfig.services.xserver.desktopManager.budgie.enable or false; +in { + config = lib.mkIf enable { + dconf = { + enable = true; + settings = { + "com.solus-project.budgie-panel:Budgie" = { + pinned-launchers = ["firefox.desktop" "nemo.desktop" "discord.desktop"]; + }; + }; + }; + }; +} diff --git a/users/seth/module/desktop/default.nix b/users/seth/module/desktop/default.nix new file mode 100644 index 0000000..66a821d --- /dev/null +++ b/users/seth/module/desktop/default.nix @@ -0,0 +1,27 @@ +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.seth.desktop; +in { + options.seth.desktop = { + enable = lib.mkEnableOption "desktop"; + }; + + imports = [ + ./budgie + ./gnome + ./plasma + ]; + + config = lib.mkIf cfg.enable { + home.packages = with pkgs; [ + discord + element-desktop + spotify + prismlauncher + ]; + }; +} diff --git a/users/seth/module/desktop/gnome/default.nix b/users/seth/module/desktop/gnome/default.nix new file mode 100644 index 0000000..2ed45b2 --- /dev/null +++ b/users/seth/module/desktop/gnome/default.nix @@ -0,0 +1,89 @@ +{ + lib, + pkgs, + osConfig, + ... +}: let + enable = osConfig.services.xserver.desktopManager.gnome.enable or false; +in { + config = lib.mkIf enable { + home = { + packages = with pkgs; [ + adw-gtk3 + tuba + qadwaitadecorations + qadwaitadecorations-qt6 + + gnomeExtensions.caffeine + ]; + + sessionVariables = { + QT_WAYLAND_DECORATION = "adwaita"; + }; + }; + + dconf = { + enable = true; + settings = { + "org/gnome/shell" = { + disable-user-extensions = false; + + enabled-extensions = [ + "caffeine@patapon.info" + ]; + + favorite-apps = [ + "chromium-browser.desktop" + "org.gnome.Nautilus.desktop" + "discord.desktop" + ]; + }; + + "org/gnome/desktop/interface" = { + color-scheme = "prefer-dark"; + document-font-name = "Noto Sans 11"; + font-antialiasing = "rgba"; + font-name = "Noto Sans 11"; + monospace-font-name = "NotoMono Nerd Font 10"; + }; + + "org/gnome/desktop/peripherals/mouse" = { + accel-profile = "flat"; + }; + + "org/gnome/desktop/wm/preferences" = { + titlebar-font = "Noto Sans Bold 11"; + }; + + "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = { + name = "blackbox"; + command = "blackbox"; + binding = "t"; + }; + + "com/raggesilver/BlackBox" = { + font = "NotoMono Nerd Font 12"; + theme-dark = "Catppuccin-Mocha"; + remember-window-size = true; + }; + }; + }; + + gtk = { + enable = true; + theme = { + name = "adw-gtk3-dark"; + package = pkgs.adw-gtk3; + }; + }; + + xdg.dataFile."blackbox/schemes/Catppuccin-Mocha.json".source = + pkgs.fetchFromGitHub { + owner = "catppuccin"; + repo = "tilix"; + rev = "3fd05e03419321f2f2a6aad6da733b28be1765ef"; + sha256 = "sha256-SI7QxQ+WBHzeuXbTye+s8pi4tDVZOV4Aa33mRYO276k="; + } + + "/src/Catppuccin-Mocha.json"; + }; +} diff --git a/users/seth/module/desktop/plasma/default.nix b/users/seth/module/desktop/plasma/default.nix new file mode 100644 index 0000000..e3735f1 --- /dev/null +++ b/users/seth/module/desktop/plasma/default.nix @@ -0,0 +1,58 @@ +{ + config, + lib, + pkgs, + osConfig, + ... +}: let + enable = osConfig.services.xserver.desktopManager.plasma5.enable or false; + themeDir = "${config.gtk.theme.package}/share/themes/${config.gtk.theme.name}"; +in { + config = lib.mkIf enable { + home.packages = with pkgs; [ + catppuccin-cursors + (catppuccin-kde.override + { + flavour = ["mocha"]; + accents = ["mauve"]; + }) + + (catppuccin-kvantum.override + { + variant = "Mocha"; + accent = "Mauve"; + }) + + libsForQt5.qtstyleplugin-kvantum + papirus-icon-theme + ]; + + xdg = { + configFile = { + "gtk-4.0/gtk.css".source = "${themeDir}/gtk-4.0/gtk.css"; + "gtk-4.0/gtk-dark.css".source = "${themeDir}/gtk-4.0/gtk-dark.css"; + }; + + dataFile."konsole/catppuccin-mocha.colorscheme".source = + pkgs.fetchFromGitHub { + owner = "catppuccin"; + repo = "konsole"; + rev = "7d86b8a1e56e58f6b5649cdaac543a573ac194ca"; + sha256 = "EwSJMTxnaj2UlNJm1t6znnatfzgm1awIQQUF3VPfCTM="; + } + + "/Catppuccin-Mocha.colorscheme"; + }; + + gtk = { + enable = true; + + theme = { + name = "Catppuccin-Mocha-Standard-Mauve-dark"; + package = pkgs.catppuccin-gtk.override { + accents = ["mauve"]; + variant = "mocha"; + }; + }; + }; + }; +} diff --git a/users/seth/module/programs/bat.nix b/users/seth/module/programs/bat.nix new file mode 100644 index 0000000..267eb57 --- /dev/null +++ b/users/seth/module/programs/bat.nix @@ -0,0 +1,18 @@ +{ + config, + lib, + ... +}: let + cfg = config.seth.programs.bat; +in { + options.seth.programs.bat = { + enable = lib.mkEnableOption "bat configuration" // {default = true;}; + }; + + config = lib.mkIf cfg.enable { + programs.bat = { + enable = true; + catppuccin.enable = true; + }; + }; +} diff --git a/users/seth/module/programs/chromium.nix b/users/seth/module/programs/chromium.nix new file mode 100644 index 0000000..5c44dec --- /dev/null +++ b/users/seth/module/programs/chromium.nix @@ -0,0 +1,35 @@ +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.seth.programs.chromium; +in { + options.seth.programs.chromium = { + enable = + lib.mkEnableOption "Chromium configuration" + // { + default = config.seth.desktop.enable; + }; + }; + + config = lib.mkIf cfg.enable { + programs.chromium = { + enable = true; + + dictionaries = [pkgs.hunspellDictsChromium.en_US]; + + extensions = [ + # ublock origin + {id = "cjpalhdlnbpafiamejdnhcphjbkeiagm";} + # bitwarden + {id = "nngceckbapebfimnlniiiahkandclblb";} + # floccus bookmark sync + {id = "fnaicdffflnofjppbagibeoednhnbjhg";} + # tabby cat + {id = "mefhakmgclhhfbdadeojlkbllmecialg";} + ]; + }; + }; +} diff --git a/users/seth/module/programs/default.nix b/users/seth/module/programs/default.nix new file mode 100644 index 0000000..38556cf --- /dev/null +++ b/users/seth/module/programs/default.nix @@ -0,0 +1,62 @@ +{ + config, + lib, + pkgs, + inputs, + ... +}: let + cfg = config.seth.programs; +in { + options.seth.programs = { + basePrograms.enable = lib.mkEnableOption "Base programs and configurations" // {default = true;}; + }; + + imports = [ + inputs.catppuccin.homeManagerModules.catppuccin + inputs.nix-index-database.hmModules.nix-index + ./bat.nix + ./chromium.nix + ./eza.nix + ./firefox + ./git.nix + ./gpg.nix + ./mangohud.nix + ./neovim.nix + ./ssh.nix + ./starship + ./vim.nix + ./vscode.nix + ]; + + config = lib.mkIf cfg.basePrograms.enable { + home.packages = with pkgs; [ + fd + nix-output-monitor + nurl + rclone + restic + ]; + + catppuccin.flavour = "mocha"; + + programs = { + btop = { + enable = true; + catppuccin.enable = true; + }; + + direnv = { + enable = true; + nix-direnv.enable = true; + }; + + glamour.catppuccin.enable = true; + + ripgrep.enable = true; + + nix-index-database.comma.enable = true; + }; + + xdg.enable = true; + }; +} diff --git a/users/seth/module/programs/eza.nix b/users/seth/module/programs/eza.nix new file mode 100644 index 0000000..32fd664 --- /dev/null +++ b/users/seth/module/programs/eza.nix @@ -0,0 +1,19 @@ +{ + config, + lib, + ... +}: let + cfg = config.seth.programs.eza; +in { + options.seth.programs.eza = { + enable = lib.mkEnableOption "eza configuration" // {default = true;}; + }; + + config = lib.mkIf cfg.enable { + programs.eza = { + enable = true; + enableAliases = true; + icons = true; + }; + }; +} diff --git a/users/seth/module/programs/firefox/arkenfox.nix b/users/seth/module/programs/firefox/arkenfox.nix new file mode 100644 index 0000000..eb17666 --- /dev/null +++ b/users/seth/module/programs/firefox/arkenfox.nix @@ -0,0 +1,73 @@ +{ + config, + lib, + inputs, + ... +}: let + cfg = config.seth.programs.firefox.arkenfox; +in { + imports = [inputs.arkenfox.hmModules.arkenfox]; + + options.seth.programs.firefox.arkenfox = { + enable = + lib.mkEnableOption "Arkenfox settings for Firefox" + // { + default = config.seth.programs.firefox.enable; + }; + }; + + config = lib.mkIf cfg.enable { + programs.firefox = { + arkenfox = { + enable = true; + version = "119.0"; + }; + + profiles.arkenfox.arkenfox = let + enableSections = sections: lib.genAttrs sections (_: {enable = true;}); + in + lib.recursiveUpdate { + enable = true; + + # enable safe browsing + "0400"."0403"."browser.safebrowsing.downloads.remote.enabled".value = true; + + # fix hulu + "1200"."1201"."security.ssl.require_safe_negotiation".value = false; + + "2600"."2651"."browser.download.useDownloadDir" = { + enable = true; + value = true; + }; + + # disable rfp letterboxing + "4500"."4504"."privacy.resistFingerprinting.letterboxing".value = false; + + "5000" = { + "5003"."signon.rememberSignons".enable = true; + # enable search autocomplete + "5021"."keyword.enabled".value = true; + }; + } (enableSections [ + "0100" + "0200" + "0300" + "0400" + "0600" + "0700" + "0800" + "0900" + "1000" + "1200" + "1600" + "1700" + "2000" + "2400" + "2600" + "2700" + "2800" + "4500" + ]); + }; + }; +} diff --git a/users/seth/module/programs/firefox/default.nix b/users/seth/module/programs/firefox/default.nix new file mode 100644 index 0000000..fed31c5 --- /dev/null +++ b/users/seth/module/programs/firefox/default.nix @@ -0,0 +1,54 @@ +{ + config, + lib, + inputs, + pkgs, + ... +}: let + cfg = config.seth.programs.firefox; + + inherit (pkgs.stdenv.hostPlatform) system; +in { + options.seth.programs.firefox = { + enable = + lib.mkEnableOption "Firefox configuration" + // { + default = config.seth.desktop.enable; + }; + }; + + imports = [ + ./arkenfox.nix + ]; + + config = lib.mkIf cfg.enable { + home.sessionVariables = { + MOZ_ENABLE_WAYLAND = "1"; + }; + + programs.firefox = { + enable = true; + profiles.arkenfox = { + extensions = with inputs.firefox-addons.packages.${system}; [ + bitwarden + floccus + ublock-origin + ]; + + isDefault = true; + + settings = { + # disable firefox accounts & pocket + "extensions.pocket.enabled" = false; + "identity.fxaccounts.enabled" = false; + + # hw accel + "media.ffmpeg.vaapi.enabled" = true; + + # widevine drm + "media.gmp-widevinecdm.enabled" = true; + }; + }; + }; + }; +} diff --git a/users/seth/module/programs/git.nix b/users/seth/module/programs/git.nix new file mode 100644 index 0000000..8ba6587 --- /dev/null +++ b/users/seth/module/programs/git.nix @@ -0,0 +1,54 @@ +{ + config, + lib, + ... +}: let + cfg = config.seth.programs.git; +in { + options.seth.programs.git = { + enable = lib.mkEnableOption "Git configuration settings" // {default = true;}; + gh.enable = lib.mkEnableOption "GitHub CLI support" // {default = true;}; + }; + + config = lib.mkIf cfg.enable { + programs = { + gh = lib.mkIf cfg.gh.enable { + enable = true; + settings = { + git_protocol = "https"; + editor = "nvim"; + prompt = "enabled"; + # workaround for https://github.com/nix-community/home-manager/issues/474 + version = 1; + }; + + gitCredentialHelper = { + enable = true; + hosts = ["https://github.com" "https://github.example.com"]; + }; + }; + + git = { + enable = true; + + difftastic = { + enable = true; + background = "dark"; + display = "inline"; + }; + + extraConfig = { + init = {defaultBranch = "main";}; + }; + + signing = { + key = "D31BD0D494BBEE86"; + signByDefault = true; + }; + + userEmail = "getchoo@tuta.io"; + userName = "seth"; + }; + }; + }; +} diff --git a/users/seth/module/programs/gpg.nix b/users/seth/module/programs/gpg.nix new file mode 100644 index 0000000..b259525 --- /dev/null +++ b/users/seth/module/programs/gpg.nix @@ -0,0 +1,26 @@ +{ + config, + lib, + pkgs, + osConfig, + ... +}: let + cfg = config.seth.programs.gpg; +in { + options.seth.programs.gpg = { + enable = lib.mkEnableOption "GnuPG configuration" // {default = true;}; + }; + + config = lib.mkIf cfg.enable { + programs.gpg.enable = true; + + services.gpg-agent = lib.mkIf pkgs.stdenv.isLinux { + enable = true; + + pinentryFlavor = + if osConfig ? programs + then osConfig.programs.gnupg.agent.pinentryFlavor or "curses" + else "curses"; + }; + }; +} diff --git a/users/seth/module/programs/mangohud.nix b/users/seth/module/programs/mangohud.nix new file mode 100644 index 0000000..f104823 --- /dev/null +++ b/users/seth/module/programs/mangohud.nix @@ -0,0 +1,31 @@ +{ + config, + lib, + ... +}: let + cfg = config.seth.programs.mangohud; +in { + options.seth.programs.mangohud = { + enable = + lib.mkEnableOption "MangoHud configuration" + // { + default = config.seth.desktop.enable; + }; + }; + + config = lib.mkIf cfg.enable { + programs.mangohud = { + enable = true; + settings = { + cpu_stats = true; + cpu_temp = true; + gpu_stats = true; + gpu_temp = true; + fps = true; + frametime = true; + media_player = true; + media_player_name = "spotify"; + }; + }; + }; +} diff --git a/users/seth/module/programs/neovim.nix b/users/seth/module/programs/neovim.nix new file mode 100644 index 0000000..6220853 --- /dev/null +++ b/users/seth/module/programs/neovim.nix @@ -0,0 +1,30 @@ +{ + config, + lib, + pkgs, + inputs, + ... +}: let + cfg = config.seth.programs.neovim; + inherit (pkgs.stdenv.hostPlatform) system; +in { + options.seth.programs.neovim = { + enable = lib.mkEnableOption "Neovim configuration" // {default = true;}; + }; + + config = lib.mkIf cfg.enable { + home.packages = [ + (let + getchvim = inputs.getchvim.packages.${system}.default; + in + # remove desktop file + pkgs.symlinkJoin { + name = "${getchvim.name}-nodesktop"; + paths = [getchvim]; + postBuild = '' + rm -rf $out/share/{applications,icons} + ''; + }) + ]; + }; +} diff --git a/users/seth/module/programs/ssh.nix b/users/seth/module/programs/ssh.nix new file mode 100644 index 0000000..48f167c --- /dev/null +++ b/users/seth/module/programs/ssh.nix @@ -0,0 +1,51 @@ +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.seth.programs.ssh; +in { + options.seth.programs.ssh = { + enable = lib.mkEnableOption "SSH configuration" // {default = true;}; + }; + + config = lib.mkIf cfg.enable { + programs.ssh = { + enable = true; + package = pkgs.openssh; + + matchBlocks = let + sshDir = "${config.home.homeDirectory}/.ssh"; + in { + # git forges + "codeberg.org" = { + identityFile = "${sshDir}/codeberg"; + user = "git"; + }; + + # linux packaging + "aur.archlinux.org" = { + identityFile = "${sshDir}/aur"; + user = "aur"; + }; + + "pagure.io" = { + identityFile = "${sshDir}/copr"; + user = "git"; + }; + + # router + "192.168.1.1" = { + identityFile = "${sshDir}/openwrt"; + user = "root"; + }; + + # servers + "atlas".user = "atlas"; + }; + }; + + services.ssh-agent.enable = pkgs.stdenv.isLinux; + }; +} diff --git a/users/seth/module/programs/starship/default.nix b/users/seth/module/programs/starship/default.nix new file mode 100644 index 0000000..8f6e78c --- /dev/null +++ b/users/seth/module/programs/starship/default.nix @@ -0,0 +1,28 @@ +{ + config, + lib, + ... +}: let + cfg = config.seth.programs.starship; +in { + options.seth.programs.starship = { + enable = lib.mkEnableOption "Starship configuration" // {default = true;}; + }; + + config = lib.mkIf cfg.enable { + programs.starship = { + enable = true; + + enableBashIntegration = false; + enableZshIntegration = false; + + settings = + { + format = "$all"; + palette = "catppuccin_mocha"; + command_timeout = 250; + } + // fromTOML (builtins.readFile ./starship.toml); + }; + }; +} diff --git a/users/seth/module/programs/starship/starship.toml b/users/seth/module/programs/starship/starship.toml new file mode 100644 index 0000000..db66325 --- /dev/null +++ b/users/seth/module/programs/starship/starship.toml @@ -0,0 +1,272 @@ +# part of this is from catppuccin's starship port + +# MIT License +# +# Copyright (c) 2021 Catppuccin +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +[aws] +symbol = " " + +[buf] +format = "via [$symbol]($style)" +symbol = " " + +[bun] +format = "via [$symbol]($style)" + +[c] +symbol = " " + +[cmake] +format = "via [$symbol]($style)" + +[cobol] +format = "via [$symbol]($style)" + +[conda] +symbol = " " + +[crystal] +format = "via [$symbol]($style)" + +[daml] +format = "via [$symbol]($style)" + +[dart] +format = "via [$symbol]($style)" +symbol = " " + +[deno] +format = "via [$symbol]($style)" + +[directory] +read_only = " " + +[docker_context] +symbol = " " + +[dotnet] +format = "[$symbol(🎯 $tfm )]($style)" + +[elixir] +format = "via [$symbol]($style)" +symbol = " " + +[elm] +format = "via [$symbol]($style)" +symbol = " " + +[erlang] +format = "via [$symbol]($style)" + +[fennel] +format = "via [$symbol]($style)" + +[fossil_branch] +symbol = " " + +[git_branch] +symbol = " " + +[golang] +format = "via [$symbol]($style)" +symbol = " " + +[gradle] +format = "via [$symbol]($style)" + +[guix_shell] +symbol = " " + +[haskell] +symbol = " " + +[haxe] +format = "via [$symbol]($style)" +symbol = "⌘ " + +[helm] +format = "via [$symbol]($style)" + +[hg_branch] +symbol = " " + +[java] +symbol = " " + +[julia] +format = "via [$symbol]($style)" +symbol = " " + +[kotlin] +format = "via [$symbol]($style)" + +[lua] +format = "via [$symbol]($style)" +symbol = " " + +[memory_usage] +symbol = " " + +[meson] +format = "via [$symbol]($style)" +symbol = "喝 " + +[nim] +format = "via [$symbol]($style)" +symbol = " " + +[nix_shell] +symbol = " " + +[nodejs] +format = "via [$symbol]($style)" +symbol = " " + +[ocaml] +format = "via [$symbol(\\($switch_indicator$switch_name\\) )]($style)" + +[opa] +format = "via [$symbol]($style)" + +[os.symbols] +Alpine = " " +Amazon = " " +Android = " " +Arch = " " +CentOS = " " +Debian = " " +DragonFly = " " +Emscripten = " " +EndeavourOS = " " +Fedora = " " +FreeBSD = " " +Garuda = "﯑ " +Gentoo = " " +HardenedBSD = "ﲊ " +Illumos = " " +Linux = " " +Macos = " " +Manjaro = " " +Mariner = " " +MidnightBSD = " " +Mint = " " +NetBSD = " " +NixOS = " " +OpenBSD = " " +OracleLinux = " " +Pop = " " +Raspbian = " " +RedHatEnterprise = " " +Redhat = " " +Redox = " " +SUSE = " " +Solus = "ﴱ " +Ubuntu = " " +Unknown = " " +Windows = " " +openSUSE = " " + +[package] +symbol = " " + +[palettes.catppuccin_mocha] +base = "#1e1e2e" +blue = "#89b4fa" +crust = "#11111b" +flamingo = "#f2cdcd" +green = "#a6e3a1" +lavender = "#b4befe" +mantle = "#181825" +maroon = "#eba0ac" +mauve = "#cba6f7" +overlay0 = "#6c7086" +overlay1 = "#7f849c" +overlay2 = "#9399b2" +peach = "#fab387" +pink = "#f5c2e7" +red = "#f38ba8" +rosewater = "#f5e0dc" +sapphire = "#74c7ec" +sky = "#89dceb" +subtext0 = "#a6adc8" +subtext1 = "#bac2de" +surface0 = "#313244" +surface1 = "#45475a" +surface2 = "#585b70" +teal = "#94e2d5" +text = "#cdd6f4" +yellow = "#f9e2af" + +[perl] +format = "via [$symbol]($style)" + +[php] +format = "via [$symbol]($style)" + +[pijul_channel] +symbol = "🪺 " + +[pulumi] +format = "via [$symbol$stack]($style)" + +[purescript] +format = "via [$symbol]($style)" + +[python] +format = "via [$symbol]($style)" +symbol = " " + +[raku] +format = "via [$symbol]($style)" + +[red] +format = "via [$symbol]($style)" + +[rlang] +format = "via [$symbol]($style)" +symbol = "ﳒ " + +[ruby] +format = "via [$symbol]($style)" +symbol = " " + +[rust] +format = "via [$symbol]($style)" +symbol = " " + +[scala] +symbol = " " + +[spack] +symbol = "🅢 " + +[swift] +format = "via [$symbol]($style)" + +[vagrant] +format = "via [$symbol]($style)" + +[vlang] +format = "via [$symbol]($style)" + +[zig] +format = "via [$symbol]($style)" diff --git a/users/seth/module/programs/vim.nix b/users/seth/module/programs/vim.nix new file mode 100644 index 0000000..b8a198e --- /dev/null +++ b/users/seth/module/programs/vim.nix @@ -0,0 +1,43 @@ +{ + config, + lib, + ... +}: let + cfg = config.seth.programs.vim; + inherit (config.xdg) configHome dataHome stateHome; +in { + options.seth.programs.vim = { + enable = lib.mkEnableOption "Vim configuration" // {default = true;}; + }; + + config = lib.mkIf cfg.enable { + programs.vim = { + enable = true; + settings = { + expandtab = false; + shiftwidth = 2; + tabstop = 2; + }; + extraConfig = '' + " https://wiki.archlinux.org/title/XDG_Base_Directory + set runtimepath^=${configHome}/vim + set runtimepath+=${dataHome}/vim + set runtimepath+=${configHome}/vim/after + + set packpath^=${dataHome}/vim,${configHome}/vim + set packpath+=${configHome}/vim/after,${dataHome}/vim/after + set packpath^=${dataHome}/vim,${configHome}/vim + set packpath+=${configHome}/vim/after,${dataHome}/vim/after + + let g:netrw_home = "${dataHome}/vim" + call mkdir("${dataHome}/vim/spell", 'p') + + set backupdir=${stateHome}/vim/backup | call mkdir(&backupdir, 'p') + set directory=${stateHome}/vim/swap | call mkdir(&directory, 'p') + set undodir=${stateHome}/vim/undo | call mkdir(&undodir, 'p') + set viewdir=${stateHome}/vim/view | call mkdir(&viewdir, 'p') + set viminfofile=${stateHome}/vim/viminfo + ''; + }; + }; +} diff --git a/users/seth/module/programs/vscode.nix b/users/seth/module/programs/vscode.nix new file mode 100644 index 0000000..a2be13c --- /dev/null +++ b/users/seth/module/programs/vscode.nix @@ -0,0 +1,23 @@ +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.seth.programs.vscode; +in { + options.seth.programs.vscode = { + enable = + lib.mkEnableOption "VSCode configuration" + // { + default = config.seth.desktop.enable; + }; + }; + + config = lib.mkIf cfg.enable { + programs.vscode = { + enable = true; + package = pkgs.vscode.fhs; + }; + }; +} diff --git a/users/seth/module/shell/bash.nix b/users/seth/module/shell/bash.nix new file mode 100644 index 0000000..09a78a3 --- /dev/null +++ b/users/seth/module/shell/bash.nix @@ -0,0 +1,34 @@ +{ + config, + lib, + ... +}: let + cfg = config.seth.shell.bash; +in { + options.seth.shell.bash = { + enable = lib.mkEnableOption "Bash configuration" // {default = true;}; + }; + + config = lib.mkIf cfg.enable { + programs.bash = { + enable = true; + # TODO: find out if i need this anymore with standalone HM + bashrcExtra = '' + nixfile=${config.home.homeDirectory}/.nix-profile/etc/profile.d/nix.sh + [ -e "$nixfile" ] && source "$nixfile" + ''; + historyFile = "${config.xdg.stateHome}/bash/history"; + historyFileSize = 1000; + historySize = 100; + shellOptions = [ + "cdspell" + "checkjobs" + "checkwinsize" + "dirspell" + "globstar" + "histappend" + "no_empty_cmd_completion" + ]; + }; + }; +} diff --git a/users/seth/module/shell/default.nix b/users/seth/module/shell/default.nix new file mode 100644 index 0000000..050cb0c --- /dev/null +++ b/users/seth/module/shell/default.nix @@ -0,0 +1,40 @@ +{ + config, + lib, + ... +}: let + cfg = config.seth.shell; +in { + options.seth.shell = { + aliases.enable = lib.mkEnableOption "Shell aliases" // {default = true;}; + variables.enable = lib.mkEnableOption "Shell variables" // {default = true;}; + }; + + imports = [ + ./bash.nix + ./fish.nix + ./nu.nix + ./zsh.nix + ]; + + config = { + home = lib.mkMerge [ + (lib.mkIf cfg.variables.enable { + sessionVariables = rec { + EDITOR = "nvim"; + VISUAL = EDITOR; + CARGO_HOME = "${config.xdg.dataHome}/cargo"; + LESSHISTFILE = "${config.xdg.stateHome}/less/history"; + }; + }) + + (lib.mkIf cfg.aliases.enable { + shellAliases = { + diff = "diff --color=auto"; + g = "git"; + gs = "g status"; + }; + }) + ]; + }; +} diff --git a/users/seth/module/shell/fish.nix b/users/seth/module/shell/fish.nix new file mode 100644 index 0000000..6dfebb9 --- /dev/null +++ b/users/seth/module/shell/fish.nix @@ -0,0 +1,52 @@ +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.seth.shell.fish; +in { + options.seth.shell.fish = { + enable = lib.mkEnableOption "Fish configuration" // {default = true;}; + withPlugins = lib.mkEnableOption "Fish plugins" // {default = true;}; + }; + + config = lib.mkIf cfg.enable { + programs.fish = lib.mkMerge [ + { + enable = true; + catppuccin.enable = true; + + interactiveShellInit = '' + set -l nixfile ${config.home.homeDirectory}/.nix-profile/etc/profile.d/nix.fish + if test -e $nixfile + source $nixfile + end + + ${lib.getExe pkgs.nix-your-shell} fish | source + + abbr -a !! --position anywhere --function last_history_item + ''; + + functions = { + last_history_item.body = "echo $history[1]"; + }; + + shellAbbrs = { + nixgc = "sudo nix-collect-garbage -d && nix-collect-garbage -d"; + }; + } + (lib.mkIf cfg.withPlugins { + plugins = let + mkFishPlugins = builtins.map (plugin: { + name = plugin; + inherit (pkgs.fishPlugins.${plugin}) src; + }); + in + mkFishPlugins [ + "autopair" + ]; + }) + ]; + }; +} diff --git a/users/seth/module/shell/nu.nix b/users/seth/module/shell/nu.nix new file mode 100644 index 0000000..b5b1529 --- /dev/null +++ b/users/seth/module/shell/nu.nix @@ -0,0 +1,43 @@ +{ + config, + lib, + inputs, + ... +}: let + cfg = config.seth.shell.nushell; + theme = "catppuccin-${config.catppuccin.flavour}"; +in { + options.seth.shell.nushell = { + enable = lib.mkEnableOption "Nushell configuration"; + }; + + config = lib.mkIf cfg.enable { + programs = { + nushell = { + enable = true; + + configFile.text = '' + def "nixgc" [] { + sudo nix-collect-garbage -d; nix-collect-garbage -d + } + ''; + + envFile.text = '' + use ${inputs.nu-scripts}/themes/nu-themes/${theme}.nu + $env.config.color_config = (${theme}) + ''; + + inherit (config.home) shellAliases; + }; + + bash.initExtra = lib.mkAfter '' + if [[ $(ps --no-header --pid=$PPID --format=comm) != "nu" && -z ''${BASH_EXECUTION_STRING} ]]; then + exec ${lib.getExe config.programs.nushell.package} + fi + ''; + + # builtin `ls` is good here! + eza.enable = lib.mkForce false; + }; + }; +} diff --git a/users/seth/module/shell/zsh.nix b/users/seth/module/shell/zsh.nix new file mode 100644 index 0000000..b3f31b9 --- /dev/null +++ b/users/seth/module/shell/zsh.nix @@ -0,0 +1,128 @@ +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.seth.shell.zsh; +in { + options.seth.shell.zsh = { + enable = lib.mkEnableOption "Zsh configuration"; + withPlugins = lib.mkEnableOption "Zsh plugins" // {default = true;}; + }; + + config = lib.mkIf cfg.enable { + programs.zsh = lib.mkMerge [ + { + enable = true; + enableAutosuggestions = true; + + completionInit = '' + autoload -Uz bashcompinit compinit + local zdump="${config.xdg.cacheHome}/zsh/zdump" + bashcompinit + compinit -d "$zdump" + if [[ ! "$zdump.zwc" -nt "$zdump" ]] + then + zcompile "$zdump" + fi + unset zdump + ''; + + defaultKeymap = "emacs"; + dotDir = ".config/zsh"; + + initExtra = '' + if [[ -r "$XDG_CACHE_HOME/p10k-instant-prompt-*.zsh" ]]; then + source "$XDG_CACHE_HOME/p10k-instant-prompt-*.zsh" + fi + autoload -Uz promptinit colors + promptinit + colors + + ${lib.getExe pkgs.nix-your-shell} zsh | source /dev/stdin + + zmodload zsh/zutil + zmodload zsh/complist + zstyle ":completion::*" group-name "" + zstyle ":completion:*" menu "select" + zstyle ":completion:*" squeeze-slashes "true" + zstyle ":completion::*" use-cache "true" + zstyle ":completion::*" cache-path "$zdump" + + unsetopt beep + unsetopt hist_beep + unsetopt ignore_braces + unsetopt list_beep + setopt always_to_end + setopt prompt_subst + setopt share_history + + # clear backbuffer with ctrl-l + function clear-screen-and-scrollback() { + echoti civis >"$TTY" + printf '%b' '\e[H\e[2J' >"$TTY" + zle .reset-prompt + zle -R + printf '%b' '\e[3J' >"$TTY" + echoti cnorm >"$TTY" + } + + zle -N clear-screen-and-scrollback + bindkey '^L' clear-screen-and-scrollback + + [[ ! -f ~/.config/zsh/.p10k.zsh ]] || source ~/.config/zsh/.p10k.zsh + ''; + + history = { + expireDuplicatesFirst = true; + path = "${config.xdg.stateHome}/zsh/zsh_history"; + save = 1000; + size = 100; + }; + } + + (lib.mkIf cfg.withPlugins { + plugins = [ + { + name = "cattppuccin-zsh-syntax-highlighting"; + src = pkgs.fetchFromGitHub { + owner = "catppuccin"; + repo = "zsh-syntax-highlighting"; + rev = "06d519c20798f0ebe275fc3a8101841faaeee8ea"; + sha256 = "sha256-Q7KmwUd9fblprL55W0Sf4g7lRcemnhjh4/v+TacJSfo="; + }; + + file = "themes/catppuccin_mocha-zsh-syntax-highlighting.zsh"; + } + + { + name = "nix-zsh-completions"; + src = pkgs.nix-zsh-completions; + file = "share/zsh/plugins/nix/nix-zsh-completions.plugin.zsh"; + } + + { + name = "powerlevel10k"; + src = pkgs.zsh-powerlevel10k; + file = "share/zsh-powerlevel10k/powerlevel10k.zsh-theme"; + } + + { + name = "zsh-autopair"; + src = pkgs.zsh-autopair; + file = "share/zsh/zsh-autopair/autopair.zsh"; + } + + { + name = "zsh-completions"; + src = pkgs.zsh-completions; + file = "share/zsh-completions/zsh-completions.plugin.zsh"; + } + ]; + + enableSyntaxHighlighting = true; + }) + ]; + }; +} diff --git a/users/seth/module/standalone.nix b/users/seth/module/standalone.nix new file mode 100644 index 0000000..c08d2ae --- /dev/null +++ b/users/seth/module/standalone.nix @@ -0,0 +1,25 @@ +{ + config, + lib, + pkgs, + inputs, + ... +}: let + cfg = config.seth.standalone; +in { + options.seth.standalone = { + enable = lib.mkEnableOption "Standalone options"; + }; + + config = lib.mkIf cfg.enable { + home = { + username = "seth"; + homeDirectory = + if pkgs.stdenv.isDarwin + then "/Users/${config.home.username}" + else "/home/${config.home.username}"; + }; + + nixpkgs.overlays = [inputs.self.overlays.default]; + }; +} diff --git a/users/seth/programs/bat.nix b/users/seth/programs/bat.nix deleted file mode 100644 index e772849..0000000 --- a/users/seth/programs/bat.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ - programs.bat = { - enable = true; - catppuccin.enable = true; - }; -} diff --git a/users/seth/programs/chromium.nix b/users/seth/programs/chromium.nix deleted file mode 100644 index 8386040..0000000 --- a/users/seth/programs/chromium.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ - config, - pkgs, - ... -}: { - programs.chromium = { - inherit (config.desktop) enable; - - dictionaries = [pkgs.hunspellDictsChromium.en_US]; - - extensions = [ - # ublock origin - {id = "cjpalhdlnbpafiamejdnhcphjbkeiagm";} - # bitwarden - {id = "nngceckbapebfimnlniiiahkandclblb";} - # floccus bookmark sync - {id = "fnaicdffflnofjppbagibeoednhnbjhg";} - # tabby cat - {id = "mefhakmgclhhfbdadeojlkbllmecialg";} - ]; - }; -} diff --git a/users/seth/programs/default.nix b/users/seth/programs/default.nix deleted file mode 100644 index 24f508d..0000000 --- a/users/seth/programs/default.nix +++ /dev/null @@ -1,57 +0,0 @@ -{ - pkgs, - inputs', - ... -}: { - imports = [ - ./bat.nix - ./eza.nix - ./git.nix - ./gpg.nix - ./ssh.nix - ./starship - ./vim.nix - ]; - - home.packages = with pkgs; [ - fd - nix-output-monitor - nurl - rclone - restic - - (let - getchvim = inputs'.getchvim.packages.default; - in - # remove desktop file - symlinkJoin { - name = "${getchvim.name}-nodesktop"; - paths = [getchvim]; - postBuild = '' - rm -rf $out/share/{applications,icons} - ''; - }) - ]; - - catppuccin.flavour = "mocha"; - - programs = { - btop = { - enable = true; - catppuccin.enable = true; - }; - - direnv = { - enable = true; - nix-direnv.enable = true; - }; - - glamour.catppuccin.enable = true; - - ripgrep.enable = true; - - nix-index-database.comma.enable = true; - }; - - xdg.enable = true; -} diff --git a/users/seth/programs/eza.nix b/users/seth/programs/eza.nix deleted file mode 100644 index 0b63d54..0000000 --- a/users/seth/programs/eza.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ - programs.eza = { - enable = true; - enableAliases = true; - icons = true; - }; -} diff --git a/users/seth/programs/firefox/arkenfox.nix b/users/seth/programs/firefox/arkenfox.nix deleted file mode 100644 index a6f6d46..0000000 --- a/users/seth/programs/firefox/arkenfox.nix +++ /dev/null @@ -1,54 +0,0 @@ -{lib, ...}: { - programs.firefox = { - arkenfox = { - enable = true; - version = "119.0"; - }; - - profiles.arkenfox.arkenfox = let - enableSections = sections: lib.genAttrs sections (_: {enable = true;}); - in - lib.recursiveUpdate { - enable = true; - - # enable safe browsing - "0400"."0403"."browser.safebrowsing.downloads.remote.enabled".value = true; - - # fix hulu - "1200"."1201"."security.ssl.require_safe_negotiation".value = false; - - "2600"."2651"."browser.download.useDownloadDir" = { - enable = true; - value = true; - }; - - # disable rfp letterboxing - "4500"."4504"."privacy.resistFingerprinting.letterboxing".value = false; - - "5000" = { - "5003"."signon.rememberSignons".enable = true; - # enable search autocomplete - "5021"."keyword.enabled".value = true; - }; - } (enableSections [ - "0100" - "0200" - "0300" - "0400" - "0600" - "0700" - "0800" - "0900" - "1000" - "1200" - "1600" - "1700" - "2000" - "2400" - "2600" - "2700" - "2800" - "4500" - ]); - }; -} diff --git a/users/seth/programs/firefox/default.nix b/users/seth/programs/firefox/default.nix deleted file mode 100644 index 702193c..0000000 --- a/users/seth/programs/firefox/default.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ - config, - inputs', - ... -}: { - imports = [ - ./arkenfox.nix - ]; - - home.sessionVariables = { - MOZ_ENABLE_WAYLAND = "1"; - }; - - programs.firefox = { - inherit (config.desktop) enable; - profiles.arkenfox = { - extensions = with inputs'.firefox-addons.packages; [ - bitwarden - floccus - ublock-origin - ]; - - isDefault = true; - - settings = { - # disable firefox accounts & pocket - "extensions.pocket.enabled" = false; - "identity.fxaccounts.enabled" = false; - - # hw accel - "media.ffmpeg.vaapi.enabled" = true; - - # widevine drm - "media.gmp-widevinecdm.enabled" = true; - }; - }; - }; -} diff --git a/users/seth/programs/git.nix b/users/seth/programs/git.nix deleted file mode 100644 index 2cc3bfa..0000000 --- a/users/seth/programs/git.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ - programs = { - gh = { - enable = true; - settings = { - git_protocol = "https"; - editor = "nvim"; - prompt = "enabled"; - # workaround for https://github.com/nix-community/home-manager/issues/474 - version = 1; - }; - - gitCredentialHelper = { - enable = true; - hosts = ["https://github.com" "https://github.example.com"]; - }; - }; - - git = { - enable = true; - - difftastic = { - enable = true; - background = "dark"; - display = "inline"; - }; - - extraConfig = { - init = {defaultBranch = "main";}; - }; - - signing = { - key = "D31BD0D494BBEE86"; - signByDefault = true; - }; - - userEmail = "getchoo@tuta.io"; - userName = "seth"; - }; - }; -} diff --git a/users/seth/programs/gpg.nix b/users/seth/programs/gpg.nix deleted file mode 100644 index ff94e36..0000000 --- a/users/seth/programs/gpg.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ - lib, - pkgs, - osConfig, - ... -}: { - programs.gpg.enable = true; - - services.gpg-agent = lib.mkIf pkgs.stdenv.isLinux { - enable = true; - - pinentryFlavor = - if osConfig ? programs - then osConfig.programs.gnupg.agent.pinentryFlavor or "curses" - else "curses"; - }; -} diff --git a/users/seth/programs/mangohud.nix b/users/seth/programs/mangohud.nix deleted file mode 100644 index fcdad87..0000000 --- a/users/seth/programs/mangohud.nix +++ /dev/null @@ -1,16 +0,0 @@ -{config, ...}: { - programs.mangohud = { - inherit (config.desktop) enable; - settings = { - legacy_layout = false; - cpu_stats = true; - cpu_temp = true; - gpu_stats = true; - gpu_temp = true; - fps = true; - frametime = true; - media_player = true; - media_player_name = "spotify"; - }; - }; -} diff --git a/users/seth/programs/ssh.nix b/users/seth/programs/ssh.nix deleted file mode 100644 index 627453e..0000000 --- a/users/seth/programs/ssh.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ - config, - pkgs, - ... -}: { - programs.ssh = { - enable = true; - package = pkgs.openssh; - - matchBlocks = let - sshDir = "${config.home.homeDirectory}/.ssh"; - in { - # git forges - "codeberg.org" = { - identityFile = "${sshDir}/codeberg"; - user = "git"; - }; - - # linux packaging - "aur.archlinux.org" = { - identityFile = "${sshDir}/aur"; - user = "aur"; - }; - - "pagure.io" = { - identityFile = "${sshDir}/copr"; - user = "git"; - }; - - # router - "192.168.1.1" = { - identityFile = "${sshDir}/openwrt"; - user = "root"; - }; - - # servers - "atlas".user = "atlas"; - }; - }; - - services.ssh-agent.enable = pkgs.stdenv.isLinux; -} diff --git a/users/seth/programs/starship/default.nix b/users/seth/programs/starship/default.nix deleted file mode 100644 index a1b9104..0000000 --- a/users/seth/programs/starship/default.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ - programs.starship = { - enable = true; - - enableBashIntegration = false; - enableZshIntegration = false; - - settings = - { - format = "$all"; - palette = "catppuccin_mocha"; - command_timeout = 250; - } - // fromTOML (builtins.readFile ./starship.toml); - }; -} diff --git a/users/seth/programs/starship/starship.toml b/users/seth/programs/starship/starship.toml deleted file mode 100644 index db66325..0000000 --- a/users/seth/programs/starship/starship.toml +++ /dev/null @@ -1,272 +0,0 @@ -# part of this is from catppuccin's starship port - -# MIT License -# -# Copyright (c) 2021 Catppuccin -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -[aws] -symbol = " " - -[buf] -format = "via [$symbol]($style)" -symbol = " " - -[bun] -format = "via [$symbol]($style)" - -[c] -symbol = " " - -[cmake] -format = "via [$symbol]($style)" - -[cobol] -format = "via [$symbol]($style)" - -[conda] -symbol = " " - -[crystal] -format = "via [$symbol]($style)" - -[daml] -format = "via [$symbol]($style)" - -[dart] -format = "via [$symbol]($style)" -symbol = " " - -[deno] -format = "via [$symbol]($style)" - -[directory] -read_only = " " - -[docker_context] -symbol = " " - -[dotnet] -format = "[$symbol(🎯 $tfm )]($style)" - -[elixir] -format = "via [$symbol]($style)" -symbol = " " - -[elm] -format = "via [$symbol]($style)" -symbol = " " - -[erlang] -format = "via [$symbol]($style)" - -[fennel] -format = "via [$symbol]($style)" - -[fossil_branch] -symbol = " " - -[git_branch] -symbol = " " - -[golang] -format = "via [$symbol]($style)" -symbol = " " - -[gradle] -format = "via [$symbol]($style)" - -[guix_shell] -symbol = " " - -[haskell] -symbol = " " - -[haxe] -format = "via [$symbol]($style)" -symbol = "⌘ " - -[helm] -format = "via [$symbol]($style)" - -[hg_branch] -symbol = " " - -[java] -symbol = " " - -[julia] -format = "via [$symbol]($style)" -symbol = " " - -[kotlin] -format = "via [$symbol]($style)" - -[lua] -format = "via [$symbol]($style)" -symbol = " " - -[memory_usage] -symbol = " " - -[meson] -format = "via [$symbol]($style)" -symbol = "喝 " - -[nim] -format = "via [$symbol]($style)" -symbol = " " - -[nix_shell] -symbol = " " - -[nodejs] -format = "via [$symbol]($style)" -symbol = " " - -[ocaml] -format = "via [$symbol(\\($switch_indicator$switch_name\\) )]($style)" - -[opa] -format = "via [$symbol]($style)" - -[os.symbols] -Alpine = " " -Amazon = " " -Android = " " -Arch = " " -CentOS = " " -Debian = " " -DragonFly = " " -Emscripten = " " -EndeavourOS = " " -Fedora = " " -FreeBSD = " " -Garuda = "﯑ " -Gentoo = " " -HardenedBSD = "ﲊ " -Illumos = " " -Linux = " " -Macos = " " -Manjaro = " " -Mariner = " " -MidnightBSD = " " -Mint = " " -NetBSD = " " -NixOS = " " -OpenBSD = " " -OracleLinux = " " -Pop = " " -Raspbian = " " -RedHatEnterprise = " " -Redhat = " " -Redox = " " -SUSE = " " -Solus = "ﴱ " -Ubuntu = " " -Unknown = " " -Windows = " " -openSUSE = " " - -[package] -symbol = " " - -[palettes.catppuccin_mocha] -base = "#1e1e2e" -blue = "#89b4fa" -crust = "#11111b" -flamingo = "#f2cdcd" -green = "#a6e3a1" -lavender = "#b4befe" -mantle = "#181825" -maroon = "#eba0ac" -mauve = "#cba6f7" -overlay0 = "#6c7086" -overlay1 = "#7f849c" -overlay2 = "#9399b2" -peach = "#fab387" -pink = "#f5c2e7" -red = "#f38ba8" -rosewater = "#f5e0dc" -sapphire = "#74c7ec" -sky = "#89dceb" -subtext0 = "#a6adc8" -subtext1 = "#bac2de" -surface0 = "#313244" -surface1 = "#45475a" -surface2 = "#585b70" -teal = "#94e2d5" -text = "#cdd6f4" -yellow = "#f9e2af" - -[perl] -format = "via [$symbol]($style)" - -[php] -format = "via [$symbol]($style)" - -[pijul_channel] -symbol = "🪺 " - -[pulumi] -format = "via [$symbol$stack]($style)" - -[purescript] -format = "via [$symbol]($style)" - -[python] -format = "via [$symbol]($style)" -symbol = " " - -[raku] -format = "via [$symbol]($style)" - -[red] -format = "via [$symbol]($style)" - -[rlang] -format = "via [$symbol]($style)" -symbol = "ﳒ " - -[ruby] -format = "via [$symbol]($style)" -symbol = " " - -[rust] -format = "via [$symbol]($style)" -symbol = " " - -[scala] -symbol = " " - -[spack] -symbol = "🅢 " - -[swift] -format = "via [$symbol]($style)" - -[vagrant] -format = "via [$symbol]($style)" - -[vlang] -format = "via [$symbol]($style)" - -[zig] -format = "via [$symbol]($style)" diff --git a/users/seth/programs/vim.nix b/users/seth/programs/vim.nix deleted file mode 100644 index d73c131..0000000 --- a/users/seth/programs/vim.nix +++ /dev/null @@ -1,32 +0,0 @@ -{config, ...}: let - inherit (config.xdg) configHome dataHome stateHome; -in { - programs.vim = { - enable = true; - settings = { - expandtab = false; - shiftwidth = 2; - tabstop = 2; - }; - extraConfig = '' - " https://wiki.archlinux.org/title/XDG_Base_Directory - set runtimepath^=${configHome}/vim - set runtimepath+=${dataHome}/vim - set runtimepath+=${configHome}/vim/after - - set packpath^=${dataHome}/vim,${configHome}/vim - set packpath+=${configHome}/vim/after,${dataHome}/vim/after - set packpath^=${dataHome}/vim,${configHome}/vim - set packpath+=${configHome}/vim/after,${dataHome}/vim/after - - let g:netrw_home = "${dataHome}/vim" - call mkdir("${dataHome}/vim/spell", 'p') - - set backupdir=${stateHome}/vim/backup | call mkdir(&backupdir, 'p') - set directory=${stateHome}/vim/swap | call mkdir(&directory, 'p') - set undodir=${stateHome}/vim/undo | call mkdir(&undodir, 'p') - set viewdir=${stateHome}/vim/view | call mkdir(&viewdir, 'p') - set viminfofile=${stateHome}/vim/viminfo - ''; - }; -} diff --git a/users/seth/programs/vscode.nix b/users/seth/programs/vscode.nix deleted file mode 100644 index 8aec6aa..0000000 --- a/users/seth/programs/vscode.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ - config, - pkgs, - ... -}: { - programs.vscode = { - inherit (config.desktop) enable; - package = pkgs.vscode.fhs; - }; -} diff --git a/users/seth/shell/bash.nix b/users/seth/shell/bash.nix deleted file mode 100644 index 46c03d4..0000000 --- a/users/seth/shell/bash.nix +++ /dev/null @@ -1,22 +0,0 @@ -{config, ...}: { - programs.bash = { - enable = true; - # TODO: find out if i need this anymore with standalone HM - bashrcExtra = '' - nixfile=${config.home.homeDirectory}/.nix-profile/etc/profile.d/nix.sh - [ -e "$nixfile" ] && source "$nixfile" - ''; - historyFile = "${config.xdg.stateHome}/bash/history"; - historyFileSize = 1000; - historySize = 100; - shellOptions = [ - "cdspell" - "checkjobs" - "checkwinsize" - "dirspell" - "globstar" - "histappend" - "no_empty_cmd_completion" - ]; - }; -} diff --git a/users/seth/shell/default.nix b/users/seth/shell/default.nix deleted file mode 100644 index 49192ce..0000000 --- a/users/seth/shell/default.nix +++ /dev/null @@ -1,21 +0,0 @@ -{config, ...}: { - imports = [ - ./bash.nix - ./fish.nix - ]; - - home = { - sessionVariables = rec { - EDITOR = "nvim"; - VISUAL = EDITOR; - CARGO_HOME = "${config.xdg.dataHome}/cargo"; - LESSHISTFILE = "${config.xdg.stateHome}/less/history"; - }; - - shellAliases = { - diff = "diff --color=auto"; - g = "git"; - gs = "g status"; - }; - }; -} diff --git a/users/seth/shell/fish.nix b/users/seth/shell/fish.nix deleted file mode 100644 index 279b021..0000000 --- a/users/seth/shell/fish.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: { - programs.fish = { - enable = true; - catppuccin.enable = true; - - interactiveShellInit = '' - set -l nixfile ${config.home.homeDirectory}/.nix-profile/etc/profile.d/nix.fish - if test -e $nixfile - source $nixfile - end - - ${lib.getExe pkgs.nix-your-shell} fish | source - - abbr -a !! --position anywhere --function last_history_item - ''; - - functions = { - last_history_item.body = "echo $history[1]"; - }; - - shellAbbrs = { - nixgc = "sudo nix-collect-garbage -d && nix-collect-garbage -d"; - }; - - plugins = let - mkFishPlugins = builtins.map (plugin: { - name = plugin; - inherit (pkgs.fishPlugins.${plugin}) src; - }); - in - mkFishPlugins [ - "autopair" - ]; - }; -} diff --git a/users/seth/shell/nu.nix b/users/seth/shell/nu.nix deleted file mode 100644 index 1437a97..0000000 --- a/users/seth/shell/nu.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ - config, - lib, - inputs, - ... -}: let - theme = "catppuccin-${config.catppuccin.flavour}"; -in { - programs = { - nushell = { - enable = true; - - configFile.text = '' - def "nixgc" [] { - sudo nix-collect-garbage -d; nix-collect-garbage -d - } - ''; - - envFile.text = '' - use ${inputs.nu-scripts}/themes/nu-themes/${theme}.nu - $env.config.color_config = (${theme}) - ''; - - inherit (config.home) shellAliases; - }; - - bash.initExtra = lib.mkAfter '' - if [[ $(ps --no-header --pid=$PPID --format=comm) != "nu" && -z ''${BASH_EXECUTION_STRING} ]]; then - exec ${lib.getExe config.programs.nushell.package} - fi - ''; - - # builtin `ls` is good here! - eza.enable = lib.mkForce false; - }; -} diff --git a/users/seth/shell/zsh.nix b/users/seth/shell/zsh.nix deleted file mode 100644 index 2842a1f..0000000 --- a/users/seth/shell/zsh.nix +++ /dev/null @@ -1,115 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: { - programs.zsh = { - enable = true; - enableAutosuggestions = true; - - completionInit = '' - autoload -Uz bashcompinit compinit - local zdump="${config.xdg.cacheHome}/zsh/zdump" - bashcompinit - compinit -d "$zdump" - if [[ ! "$zdump.zwc" -nt "$zdump" ]] - then - zcompile "$zdump" - fi - unset zdump - ''; - - defaultKeymap = "emacs"; - dotDir = ".config/zsh"; - - initExtra = '' - if [[ -r "$XDG_CACHE_HOME/p10k-instant-prompt-*.zsh" ]]; then - source "$XDG_CACHE_HOME/p10k-instant-prompt-*.zsh" - fi - autoload -Uz promptinit colors - promptinit - colors - - ${lib.getExe pkgs.nix-your-shell} zsh | source /dev/stdin - - zmodload zsh/zutil - zmodload zsh/complist - zstyle ":completion::*" group-name "" - zstyle ":completion:*" menu "select" - zstyle ":completion:*" squeeze-slashes "true" - zstyle ":completion::*" use-cache "true" - zstyle ":completion::*" cache-path "$zdump" - - unsetopt beep - unsetopt hist_beep - unsetopt ignore_braces - unsetopt list_beep - setopt always_to_end - setopt prompt_subst - setopt share_history - - # clear backbuffer with ctrl-l - function clear-screen-and-scrollback() { - echoti civis >"$TTY" - printf '%b' '\e[H\e[2J' >"$TTY" - zle .reset-prompt - zle -R - printf '%b' '\e[3J' >"$TTY" - echoti cnorm >"$TTY" - } - - zle -N clear-screen-and-scrollback - bindkey '^L' clear-screen-and-scrollback - - [[ ! -f ~/.config/zsh/.p10k.zsh ]] || source ~/.config/zsh/.p10k.zsh - ''; - - history = { - expireDuplicatesFirst = true; - path = "${config.xdg.stateHome}/zsh/zsh_history"; - save = 1000; - size = 100; - }; - - plugins = [ - { - name = "cattppuccin-zsh-syntax-highlighting"; - src = pkgs.fetchFromGitHub { - owner = "catppuccin"; - repo = "zsh-syntax-highlighting"; - rev = "06d519c20798f0ebe275fc3a8101841faaeee8ea"; - sha256 = "sha256-Q7KmwUd9fblprL55W0Sf4g7lRcemnhjh4/v+TacJSfo="; - }; - - file = "themes/catppuccin_mocha-zsh-syntax-highlighting.zsh"; - } - - { - name = "nix-zsh-completions"; - src = pkgs.nix-zsh-completions; - file = "share/zsh/plugins/nix/nix-zsh-completions.plugin.zsh"; - } - - { - name = "powerlevel10k"; - src = pkgs.zsh-powerlevel10k; - file = "share/zsh-powerlevel10k/powerlevel10k.zsh-theme"; - } - - { - name = "zsh-autopair"; - src = pkgs.zsh-autopair; - file = "share/zsh/zsh-autopair/autopair.zsh"; - } - - { - name = "zsh-completions"; - src = pkgs.zsh-completions; - file = "share/zsh-completions/zsh-completions.plugin.zsh"; - } - ]; - - enableSyntaxHighlighting = true; - }; -} diff --git a/users/seth/system.nix b/users/seth/system.nix deleted file mode 100644 index 3d1c2ba..0000000 --- a/users/seth/system.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: { - users.users.seth = - { - shell = pkgs.fish; - home = - if pkgs.stdenv.isDarwin - then "/Users/seth" - else "/home/seth"; - } - // lib.optionalAttrs pkgs.stdenv.isLinux { - extraGroups = ["wheel"]; - isNormalUser = true; - hashedPasswordFile = config.age.secrets.sethPassword.path; - }; - - programs.fish.enable = true; - - home-manager.users.seth = { - imports = - [ - ./. - ] - ++ lib.optionals pkgs.stdenv.isLinux [ - ./desktop - ./programs/chromium.nix - ./programs/firefox - ./programs/mangohud.nix - ./programs/vscode.nix - ]; - }; -} -- cgit v1.2.3