From cd5a912929381afb2c6b5bae198b66a05035719d Mon Sep 17 00:00:00 2001 From: jopejoe1 Date: Fri, 24 Feb 2023 16:41:24 +0100 Subject: [PATCH] Turn home manager into sperate module --- modules/user/jopejoe1/default.nix | 2 +- modules/user/jopejoe1/home.nix | 251 ------------------------ modules/user/jopejoe1/home/default.nix | 260 +++++++++++++++++++++++++ modules/user/root/default.nix | 2 +- modules/user/root/home.nix | 62 ------ modules/user/root/home/default.nix | 71 +++++++ 6 files changed, 333 insertions(+), 315 deletions(-) delete mode 100644 modules/user/jopejoe1/home.nix create mode 100644 modules/user/jopejoe1/home/default.nix delete mode 100644 modules/user/root/home.nix create mode 100644 modules/user/root/home/default.nix diff --git a/modules/user/jopejoe1/default.nix b/modules/user/jopejoe1/default.nix index 3be9bf6..c905c70 100644 --- a/modules/user/jopejoe1/default.nix +++ b/modules/user/jopejoe1/default.nix @@ -10,7 +10,7 @@ in }; config = mkIf cfg.enable { - imports = [ ./home.nix ]; + custom.user.jopejoe1.home.enable = true; users.users.jopejoe1 = { isNormalUser = true; description = "jopejoe1 🚫"; diff --git a/modules/user/jopejoe1/home.nix b/modules/user/jopejoe1/home.nix deleted file mode 100644 index 1646502..0000000 --- a/modules/user/jopejoe1/home.nix +++ /dev/null @@ -1,251 +0,0 @@ -{ config, pkgs, ... }: - -let cfg = config.home-manager.users.jopejoe1; -in -{ - home-manager.users.jopejoe1 = { - home = { - # Basic information for home-manager - username = "jopejoe1"; - homeDirectory = "/home/${cfg.home.username}"; - - # Enviroment variables - sessionVariables = { - XCOMPOSECACHE = "${cfg.xdg.cacheHome}/X11/xcompos"; - XAUTHORITY = "$XDG_RUNTIME_DIR/Xauthority"; - }; - - stateVersion = config.system.stateVersion; - }; - - accounts.email.accounts = { - main = { - address = "johannes@joens.email"; - flavor = "gmail.com"; - primary = true; - realName = "Johannes Joens"; - thunderbird.enable = true; - }; - }; - - # XDG base dirs - xdg = { - enable = true; - mime.enable = true; - cacheHome = "${cfg.home.homeDirectory}/.cache"; - configHome = "${cfg.home.homeDirectory}/.config"; - dataHome = "${cfg.home.homeDirectory}/.local/share"; - stateHome = "${cfg.home.homeDirectory}/.local/state"; - userDirs = { - enable = true; - createDirectories = false; - desktop = "${cfg.home.homeDirectory}/Desktop"; - documents = "${cfg.home.homeDirectory}/Documents"; - download = "${cfg.home.homeDirectory}/Downloads"; - music = "${cfg.home.homeDirectory}/Music"; - pictures = "${cfg.home.homeDirectory}/Pictures"; - publicShare = "${cfg.home.homeDirectory}/Public"; - templates = "${cfg.home.homeDirectory}/Templates"; - videos = "${cfg.home.homeDirectory}/Videos"; - }; - }; - - gtk = { - enable = true; - gtk2 = { - configLocation = "${cfg.xdg.configHome}/gtk-2.0/gtkrc"; - }; - gtk3 = { - extraConfig = { - gtk-application-prefer-dark-theme = true; - gtk-button-images = true; - gtk-decoration-layout = "icon:minimize,maximize,close"; - gtk-enable-animations = true; - gtk-menu-images = true; - gtk-modules = "colorreload-gtk-module"; - gtk-primary-button-warps-slider = false; - gtk-toolbar-style = 3; - }; - }; - gtk4 = { - extraConfig = { - gtk-application-prefer-dark-theme = true; - gtk-decoration-layout = "icon:minimize,maximize,close"; - gtk-enable-animations = true; - gtk-primary-button-warps-slider = false; - }; - }; - cursorTheme = { - package = pkgs.libsForQt5.breeze-icons; - name = "breeze_cursors"; - size = 24; - }; - font = { - package = pkgs.noto-fonts; - name = "Noto Sans"; - size = 10; - }; - theme = { - package = pkgs.libsForQt5.breeze-gtk; - name = "breeze-dark"; - }; - iconTheme = { - package = pkgs.tela-icon-theme; - name = "Tela-purple"; - }; - }; - - # Let Home Manager install and manage itself. - programs = { - home-manager.enable = true; - git = { - enable = true; - package = pkgs.gitAndTools.gitFull; - userEmail = "johannes@joens.email"; - userName = "jopejoe1"; - }; - bash = { - enable = true; - historyFile = "${cfg.xdg.stateHome}/bash/history"; - shellAliases = { - gc = "sudo nix store gc"; - rb = "sudo git -C /etc/nixos pull && sudo nix flake update /etc/nixos/ && sudo nixos-rebuild switch && sudo git -C /etc/nixos add . && sudo git -C /etc/nixos commit -m 'Updated flake.lock' && sudo git -C /etc/nixos push"; - }; - }; - zsh = { - enable = true; - shellAliases = cfg.programs.bash.shellAliases; - enableAutosuggestions = true; - enableCompletion = true; - enableSyntaxHighlighting = true; - enableVteIntegration = true; - dotDir = ".config/zsh"; - }; - fish.shellAbbrs = cfg.programs.bash.shellAliases; - thunderbird = { - enable = false; - profiles = { - default = { - isDefault = true; - }; - }; - }; - firefox = { - enable = true; - package = pkgs.wrapFirefox pkgs.firefox-unwrapped { - extraPolicies = { - AppAutoUpdate = false; - BackgroundAppUpdate = false; - DisableAppUpdate = true; - CaptivePortal = false; - DisableFirefoxStudies = true; - DisablePocket = true; - DisableTelemetry = true; - DisableFirefoxAccounts = true; - DisableFormHistory = true; - DefaultDownloadDirectory = "${cfg.xdg.userDirs.download}"; - DontCheckDefaultBrowser = true; - ExtensionUpdate = false; - NoDefaultBookmarks = true; - PasswordManagerEnabled = false; - OfferToSaveLogins = false; - OfferToSaveLoginsDefault = false; - EnableTrackingProtection = { - Value = true; - Cryptomining = true; - Fingerprinting = true; - }; - FirefoxHome = { - Search = true; - Pocket = false; - SponsoredPocket = false; - Snippets = false; - TopSites = true; - SponsoredTopSites = false; - Highlights = false; - }; - UserMessaging = { - ExtensionRecommendations = false; - SkipOnboarding = true; - }; - }; - }; - profiles = { - default = { - extensions = with pkgs.nur.repos.rycee.firefox-addons; [ - ublock-origin - privacy-badger - bitwarden - clearurls - decentraleyes - duckduckgo-privacy-essentials - ghostery - libredirect - privacy-badger - languagetool - fastforward - return-youtube-dislikes - sponsorblock - augmented-steam - steam-database - refined-github - plasma-integration - #bypass-paywalls-clean - lovely-forks - search-by-image - skip-redirect - terms-of-service-didnt-read - unpaywall - wappalyzer - wayback-machine - modrinthify - ]; - id = 0; - isDefault = true; - name = "default"; - search = { - default = "DuckDuckGo"; - force = true; - engines = { - "Nix Packages" = { - urls = [{ - template = "https://search.nixos.org/packages"; - params = [ - { name = "type"; value = "packages"; } - { name = "query"; value = "{searchTerms}"; } - ]; - }]; - icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; - definedAliases = [ "@np" ]; - }; - "NixOS Wiki" = { - urls = [{ template = "https://nixos.wiki/index.php?search={searchTerms}"; }]; - icon = "${cfg.programs.firefox.profiles.default.search.engines."Nix Packages".icon}"; - definedAliases = [ "@nw" ]; - }; - "Bing".metaData.hidden = true; - "Google".metaData.hidden = true; - "eBay".metaData.hidden = true; - "Amazon.de".metaData.hidden = true; - "Wikipedia (en)".metaData.alias = "@wiki"; - }; - }; - settings = { - "privacy.resistFingerprinting" = true; - "privacy.trackingprotection.fingerprinting.enabled" = true; - "privacy.trackingprotection.cryptomining.enabled" = true; - "dom.event.clipboardevents.enabled" = false; - "dom.battery.enabled" = false; - "browser.safebrowsing.phishing.enabled" = false; - "browser.safebrowsing.malware.enabled" = false; - "browser.zoom.siteSpecific" = true; - "config.trim_on_minimize" = true; - "pdfjs.annotationEditorMode" = 0; - "pdfjs.annotationmode" = 2; - }; - }; - }; - }; - }; - }; -} diff --git a/modules/user/jopejoe1/home/default.nix b/modules/user/jopejoe1/home/default.nix new file mode 100644 index 0000000..2bb3dcb --- /dev/null +++ b/modules/user/jopejoe1/home/default.nix @@ -0,0 +1,260 @@ +{ options, config, pkgs, lib, ... }: + +with lib; +#with lib.internal; +let cfg = config.custom.user.jopejoe1.home; +let hcfg = config.home-manager.users.jopejoe1; +in +{ + options.custom.user.jopejoe1.home = with types; { + enable = mkBoolOpt false "Enable the home-manger for jopejoe1"; + }; + + config = mkIf cfg.enable { + home-manager.users.jopejoe1 = { + home = { + # Basic information for home-manager + username = "jopejoe1"; + homeDirectory = "/home/${hcfg.home.username}"; + + # Enviroment variables + sessionVariables = { + XCOMPOSECACHE = "${hcfg.xdg.cacheHome}/X11/xcompos"; + XAUTHORITY = "$XDG_RUNTIME_DIR/Xauthority"; + }; + + stateVersion = config.system.stateVersion; + }; + + accounts.email.accounts = { + main = { + address = "johannes@joens.email"; + flavor = "gmail.com"; + primary = true; + realName = "Johannes Joens"; + thunderbird.enable = true; + }; + }; + + # XDG base dirs + xdg = { + enable = true; + mime.enable = true; + cacheHome = "${hcfg.home.homeDirectory}/.cache"; + configHome = "${hcfg.home.homeDirectory}/.config"; + dataHome = "${hcfg.home.homeDirectory}/.local/share"; + stateHome = "${hcfg.home.homeDirectory}/.local/state"; + userDirs = { + enable = true; + createDirectories = false; + desktop = "${hcfg.home.homeDirectory}/Desktop"; + documents = "${hcfg.home.homeDirectory}/Documents"; + download = "${hcfg.home.homeDirectory}/Downloads"; + music = "${hcfg.home.homeDirectory}/Music"; + pictures = "${hcfg.home.homeDirectory}/Pictures"; + publicShare = "${hcfg.home.homeDirectory}/Public"; + templates = "${hcfg.home.homeDirectory}/Templates"; + videos = "${hcfg.home.homeDirectory}/Videos"; + }; + }; + + gtk = { + enable = true; + gtk2 = { + configLocation = "${hcfg.xdg.configHome}/gtk-2.0/gtkrc"; + }; + gtk3 = { + extraConfig = { + gtk-application-prefer-dark-theme = true; + gtk-button-images = true; + gtk-decoration-layout = "icon:minimize,maximize,close"; + gtk-enable-animations = true; + gtk-menu-images = true; + gtk-modules = "colorreload-gtk-module"; + gtk-primary-button-warps-slider = false; + gtk-toolbar-style = 3; + }; + }; + gtk4 = { + extraConfig = { + gtk-application-prefer-dark-theme = true; + gtk-decoration-layout = "icon:minimize,maximize,close"; + gtk-enable-animations = true; + gtk-primary-button-warps-slider = false; + }; + }; + cursorTheme = { + package = pkgs.libsForQt5.breeze-icons; + name = "breeze_cursors"; + size = 24; + }; + font = { + package = pkgs.noto-fonts; + name = "Noto Sans"; + size = 10; + }; + theme = { + package = pkgs.libsForQt5.breeze-gtk; + name = "breeze-dark"; + }; + iconTheme = { + package = pkgs.tela-icon-theme; + name = "Tela-purple"; + }; + }; + + # Let Home Manager install and manage itself. + programs = { + home-manager.enable = true; + git = { + enable = true; + package = pkgs.gitAndTools.gitFull; + userEmail = "johannes@joens.email"; + userName = "jopejoe1"; + }; + bash = { + enable = true; + historyFile = "${hcfg.xdg.stateHome}/bash/history"; + shellAliases = { + gc = "sudo nix store gc"; + rb = "sudo git -C /etc/nixos pull && sudo nix flake update /etc/nixos/ && sudo nixos-rebuild switch && sudo git -C /etc/nixos add . && sudo git -C /etc/nixos commit -m 'Updated flake.lock' && sudo git -C /etc/nixos push"; + }; + }; + zsh = { + enable = true; + shellAliases = hcfg.programs.bash.shellAliases; + enableAutosuggestions = true; + enableCompletion = true; + enableSyntaxHighlighting = true; + enableVteIntegration = true; + dotDir = ".config/zsh"; + }; + fish.shellAbbrs = hcfg.programs.bash.shellAliases; + thunderbird = { + enable = false; + profiles = { + default = { + isDefault = true; + }; + }; + }; + firefox = { + enable = true; + package = pkgs.wrapFirefox pkgs.firefox-unwrapped { + extraPolicies = { + AppAutoUpdate = false; + BackgroundAppUpdate = false; + DisableAppUpdate = true; + CaptivePortal = false; + DisableFirefoxStudies = true; + DisablePocket = true; + DisableTelemetry = true; + DisableFirefoxAccounts = true; + DisableFormHistory = true; + DefaultDownloadDirectory = "${hcfg.xdg.userDirs.download}"; + DontCheckDefaultBrowser = true; + ExtensionUpdate = false; + NoDefaultBookmarks = true; + PasswordManagerEnabled = false; + OfferToSaveLogins = false; + OfferToSaveLoginsDefault = false; + EnableTrackingProtection = { + Value = true; + Cryptomining = true; + Fingerprinting = true; + }; + FirefoxHome = { + Search = true; + Pocket = false; + SponsoredPocket = false; + Snippets = false; + TopSites = true; + SponsoredTopSites = false; + Highlights = false; + }; + UserMessaging = { + ExtensionRecommendations = false; + SkipOnboarding = true; + }; + }; + }; + profiles = { + default = { + extensions = with pkgs.nur.repos.rycee.firefox-addons; [ + ublock-origin + privacy-badger + bitwarden + clearurls + decentraleyes + duckduckgo-privacy-essentials + ghostery + libredirect + privacy-badger + languagetool + fastforward + return-youtube-dislikes + sponsorblock + augmented-steam + steam-database + refined-github + plasma-integration + #bypass-paywalls-clean + lovely-forks + search-by-image + skip-redirect + terms-of-service-didnt-read + unpaywall + wappalyzer + wayback-machine + modrinthify + ]; + id = 0; + isDefault = true; + name = "default"; + search = { + default = "DuckDuckGo"; + force = true; + engines = { + "Nix Packages" = { + urls = [{ + template = "https://search.nixos.org/packages"; + params = [ + { name = "type"; value = "packages"; } + { name = "query"; value = "{searchTerms}"; } + ]; + }]; + icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; + definedAliases = [ "@np" ]; + }; + "NixOS Wiki" = { + urls = [{ template = "https://nixos.wiki/index.php?search={searchTerms}"; }]; + icon = "${hcfg.programs.firefox.profiles.default.search.engines."Nix Packages".icon}"; + definedAliases = [ "@nw" ]; + }; + "Bing".metaData.hidden = true; + "Google".metaData.hidden = true; + "eBay".metaData.hidden = true; + "Amazon.de".metaData.hidden = true; + "Wikipedia (en)".metaData.alias = "@wiki"; + }; + }; + settings = { + "privacy.resistFingerprinting" = true; + "privacy.trackingprotection.fingerprinting.enabled" = true; + "privacy.trackingprotection.cryptomining.enabled" = true; + "dom.event.clipboardevents.enabled" = false; + "dom.battery.enabled" = false; + "browser.safebrowsing.phishing.enabled" = false; + "browser.safebrowsing.malware.enabled" = false; + "browser.zoom.siteSpecific" = true; + "config.trim_on_minimize" = true; + "pdfjs.annotationEditorMode" = 0; + "pdfjs.annotationmode" = 2; + }; + }; + }; + }; + }; + }; + }; +} diff --git a/modules/user/root/default.nix b/modules/user/root/default.nix index 6a37471..976f989 100644 --- a/modules/user/root/default.nix +++ b/modules/user/root/default.nix @@ -10,6 +10,6 @@ in }; config = mkIf cfg.enable { - imports = [ ./home.nix ]; + custom.user.root.home.enable = true; }; } diff --git a/modules/user/root/home.nix b/modules/user/root/home.nix deleted file mode 100644 index fde330a..0000000 --- a/modules/user/root/home.nix +++ /dev/null @@ -1,62 +0,0 @@ -{ config, pkgs, ... }: - -let cfg = config.home-manager.users.root; -in -{ - home-manager.users.root = { - home = { - # Basic information for home-manager - username = "root"; - homeDirectory = "/${cfg.home.username}"; - - # Enviroment variables - sessionVariables = { - XCOMPOSECACHE = "${cfg.xdg.cacheHome}/X11/xcompos"; - XAUTHORITY = "$XDG_RUNTIME_DIR/Xauthority"; - }; - - stateVersion = config.system.stateVersion; - }; - - xdg = { - enable = true; - mime.enable = true; - cacheHome = "${cfg.home.homeDirectory}/.cache"; - configHome = "${cfg.home.homeDirectory}/.config"; - dataHome = "${cfg.home.homeDirectory}/.local/share"; - stateHome = "${cfg.home.homeDirectory}/.local/state"; - userDirs = { - enable = true; - createDirectories = false; - desktop = "${cfg.home.homeDirectory}/Desktop"; - documents = "${cfg.home.homeDirectory}/Documents"; - download = "${cfg.home.homeDirectory}/Downloads"; - music = "${cfg.home.homeDirectory}/Music"; - pictures = "${cfg.home.homeDirectory}/Pictures"; - publicShare = "${cfg.home.homeDirectory}/Public"; - templates = "${cfg.home.homeDirectory}/Templates"; - videos = "${cfg.home.homeDirectory}/Videos"; - }; - }; - - programs = { - home-manager.enable = true; - git = { - enable = true; - package = pkgs.gitAndTools.gitFull; - userEmail = "johannes@joens.email"; - userName = "jopejoe1"; - }; - bash = { - enable = true; - historyFile = "${cfg.xdg.stateHome}/bash/history"; - shellAliases = { - gc = "sudo nix store gc"; - rb = "sudo nix flake update /etc/nixos/ && sudo nixos-rebuild switch"; - }; - }; - zsh.shellAliases = cfg.programs.bash.shellAliases; - fish.shellAbbrs = cfg.programs.bash.shellAliases; - }; - }; -} diff --git a/modules/user/root/home/default.nix b/modules/user/root/home/default.nix new file mode 100644 index 0000000..e477a2b --- /dev/null +++ b/modules/user/root/home/default.nix @@ -0,0 +1,71 @@ +{ options, config, pkgs, lib, ... }: + +with lib; +#with lib.internal; +let cfg = config.custom.user.root.home; +let hcfg = config.home-manager.users.root; +in +{ + options.custom.user.root.home = with types; { + enable = mkBoolOpt false "Enable the home-manger for root"; + }; + + config = mkIf cfg.enable { + home-manager.users.root = { + home = { + # Basic information for home-manager + username = "root"; + homeDirectory = "/${hcfg.home.username}"; + + # Enviroment variables + sessionVariables = { + XCOMPOSECACHE = "${hcfg.xdg.cacheHome}/X11/xcompos"; + XAUTHORITY = "$XDG_RUNTIME_DIR/Xauthority"; + }; + + stateVersion = config.system.stateVersion; + }; + + xdg = { + enable = true; + mime.enable = true; + cacheHome = "${hcfg.home.homeDirectory}/.cache"; + configHome = "${hcfg.home.homeDirectory}/.config"; + dataHome = "${hcfg.home.homeDirectory}/.local/share"; + stateHome = "${hcfg.home.homeDirectory}/.local/state"; + userDirs = { + enable = true; + createDirectories = false; + desktop = "${hcfg.home.homeDirectory}/Desktop"; + documents = "${hcfg.home.homeDirectory}/Documents"; + download = "${hcfg.home.homeDirectory}/Downloads"; + music = "${hcfg.home.homeDirectory}/Music"; + pictures = "${hcfg.home.homeDirectory}/Pictures"; + publicShare = "${hcfg.home.homeDirectory}/Public"; + templates = "${hcfg.home.homeDirectory}/Templates"; + videos = "${hcfg.home.homeDirectory}/Videos"; + }; + }; + + programs = { + home-manager.enable = true; + git = { + enable = true; + package = pkgs.gitAndTools.gitFull; + userEmail = "johannes@joens.email"; + userName = "jopejoe1"; + }; + bash = { + enable = true; + historyFile = "${hcfg.xdg.stateHome}/bash/history"; + shellAliases = { + gc = "sudo nix store gc"; + rb = "sudo nix flake update /etc/nixos/ && sudo nixos-rebuild switch"; + }; + }; + zsh.shellAliases = hcfg.programs.bash.shellAliases; + fish.shellAbbrs = hcfg.programs.bash.shellAliases; + }; + }; + }; +}