From e27bdc0dc7b4b8d993ab73de0d85d6f0ce22b111 Mon Sep 17 00:00:00 2001 From: Gabriel Arazas Date: Tue, 12 Dec 2023 09:05:46 +0800 Subject: [PATCH] users/foo-dogsquared: modularize dotfile setup --- users/home-manager/foo-dogsquared/default.nix | 21 +----------- .../foo-dogsquared/modules/default.nix | 1 + .../foo-dogsquared/modules/dotfiles.nix | 34 +++++++++++++++++++ 3 files changed, 36 insertions(+), 20 deletions(-) create mode 100644 users/home-manager/foo-dogsquared/modules/dotfiles.nix diff --git a/users/home-manager/foo-dogsquared/default.nix b/users/home-manager/foo-dogsquared/default.nix index 93530de7..112e3000 100644 --- a/users/home-manager/foo-dogsquared/default.nix +++ b/users/home-manager/foo-dogsquared/default.nix @@ -1,15 +1,12 @@ { config, lib, pkgs, ... }: -let - dotfilesAsStorePath = config.lib.file.mkOutOfStoreSymlink config.home.mutableFile."library/dotfiles".path; - getDotfiles = path: "${dotfilesAsStorePath}/${path}"; -in { imports = [ ./modules ]; # All of the home-manager-user-specific setup are here. users.foo-dogsquared = { music.enable = true; + dotfiles.enable = false; programs = { browsers.brave.enable = true; @@ -63,10 +60,6 @@ in }; }; - home.sessionPath = [ - "${config.home.mutableFile."library/dotfiles".path}/bin" - ]; - # Making my favorite terminal multiplexer right now. programs.zellij.settings = { default_layout = "editor"; @@ -151,25 +144,13 @@ in createDirectories = true; }; - # All of the personal configurations. xdg.configFile = { distrobox.source = ./config/distrobox; - doom.source = getDotfiles "emacs"; kanidm.source = ./config/kanidm; - kitty.source = getDotfiles "kitty"; - nvim.source = getDotfiles "nvim"; - nyxt.source = getDotfiles "nyxt"; - wezterm.source = getDotfiles "wezterm"; }; # Automating some files to be fetched on activation. home.mutableFile = { - # Fetching my dotfiles,... - "library/dotfiles" = { - url = "https://github.com/foo-dogsquared/dotfiles.git"; - type = "git"; - }; - # ...my gopass secrets,... ".local/share/gopass/stores/personal" = { url = "gitea@code.foodogsquared.one:foodogsquared/gopass-secrets-personal.git"; diff --git a/users/home-manager/foo-dogsquared/modules/default.nix b/users/home-manager/foo-dogsquared/modules/default.nix index 238badc0..6c20fb1a 100644 --- a/users/home-manager/foo-dogsquared/modules/default.nix +++ b/users/home-manager/foo-dogsquared/modules/default.nix @@ -2,6 +2,7 @@ { imports = [ ./music-setup.nix + ./dotfiles.nix ./programs/browsers.nix ./programs/email.nix diff --git a/users/home-manager/foo-dogsquared/modules/dotfiles.nix b/users/home-manager/foo-dogsquared/modules/dotfiles.nix new file mode 100644 index 00000000..ba600d16 --- /dev/null +++ b/users/home-manager/foo-dogsquared/modules/dotfiles.nix @@ -0,0 +1,34 @@ +{ config, lib, pkgs, ... }: + +let + userCfg = config.users.foo-dogsquared; + cfg = userCfg.dotfiles; + + dotfiles = config.lib.file.mkOutOfStoreSymlink config.home.mutableFile."library/dotfiles".path; + getDotfiles = path: "${dotfiles}/${path}"; +in +{ + options.users.foo-dogsquared.dotfiles.enable = lib.mkEnableOption "custom outside dotfiles for other programs"; + + config = lib.mkIf cfg.enable { + # Fetching my dotfiles,... + home.mutableFile."library/dotfiles" = { + url = "https://github.com/foo-dogsquared/dotfiles.git"; + type = "git"; + }; + + # Add the custom scripts here. + home.sessionPath = [ + "${config.home.mutableFile."library/dotfiles".path}/bin" + ]; + + # All of the personal configurations. + xdg.configFile = { + doom.source = getDotfiles "emacs"; + kitty.source = getDotfiles "kitty"; + nvim.source = getDotfiles "nvim"; + nyxt.source = getDotfiles "nyxt"; + wezterm.source = getDotfiles "wezterm"; + }; + }; +}