From b32cce9ca8c941a87e4bf57aa0fc5564151db008 Mon Sep 17 00:00:00 2001 From: Chris Dombroski Date: Sat, 21 Sep 2024 20:07:40 -0400 Subject: [PATCH] Home-manager! --- flake.nix | 14 +++++++ home-configurations/cdombroski.nix | 12 ++++++ home-configurations/root.nix | 16 ++++++++ home-modules/bash.nix | 8 ++++ home-modules/default.nix | 12 ++++++ home-modules/direnv.nix | 6 +++ home-modules/gpg.nix | 7 ++++ home-modules/syncthing.nix | 18 +++++++++ home-modules/vim.nix | 19 ++++++++++ home-modules/vscode.nix | 13 +++++++ home-modules/xdg.nix | 29 +++++++++++++++ nixos-configurations/smolboi.nix | 60 +++++++++++++++++++++++++----- 12 files changed, 205 insertions(+), 9 deletions(-) create mode 100644 home-configurations/cdombroski.nix create mode 100644 home-configurations/root.nix create mode 100644 home-modules/bash.nix create mode 100644 home-modules/default.nix create mode 100644 home-modules/direnv.nix create mode 100644 home-modules/gpg.nix create mode 100644 home-modules/syncthing.nix create mode 100644 home-modules/vim.nix create mode 100644 home-modules/vscode.nix create mode 100644 home-modules/xdg.nix diff --git a/flake.nix b/flake.nix index 85b61aa..3970f8c 100644 --- a/flake.nix +++ b/flake.nix @@ -64,6 +64,20 @@ globalArgs = { inherit inputs; }; + home.users.cdombroski.passInOsConfig = true; + home.users.root.importDefault = false; + nixos.hosts.smolboi.userHomeModules = [ + "root" + "cdombroski" + ]; + nixos.hosts.zeus.userHomeModules = [ + "root" + "cdombroski" + ]; + nixos.hosts.orangepihole.userHomeModules = [ + "root" + "cdombroski" + ]; }; flake = { deploy = { diff --git a/home-configurations/cdombroski.nix b/home-configurations/cdombroski.nix new file mode 100644 index 0000000..7afc4b8 --- /dev/null +++ b/home-configurations/cdombroski.nix @@ -0,0 +1,12 @@ +{ + home = { + username = "cdombroski"; + stateVersion = "23.11"; + homeDirectory = "/home/cdombroski"; + }; + + programs.git = { + userName = "Chris Dombroski"; + userEmail = "cdombroski@gmail.com"; + }; +} diff --git a/home-configurations/root.nix b/home-configurations/root.nix new file mode 100644 index 0000000..bd3660a --- /dev/null +++ b/home-configurations/root.nix @@ -0,0 +1,16 @@ +{ ezModules, osConfig, ... }: +{ + + imports = [ + ezModules.bash + ezModules.xdg + ]; + + programs.ssh.enable = true; + + home = { + username = "root"; + stateVersion = "23.11"; + homeDirectory = osConfig.users.users.root.home; + }; +} diff --git a/home-modules/bash.nix b/home-modules/bash.nix new file mode 100644 index 0000000..0c6db80 --- /dev/null +++ b/home-modules/bash.nix @@ -0,0 +1,8 @@ +{ config, ... }: +{ + programs.bash = { + enable = true; + enableCompletion = true; + historyFile = "${config.xdg.stateHome}/bash/history"; + }; +} diff --git a/home-modules/default.nix b/home-modules/default.nix new file mode 100644 index 0000000..b52b326 --- /dev/null +++ b/home-modules/default.nix @@ -0,0 +1,12 @@ +{ lib, ... }: +{ + imports = builtins.map (n: ./${n}) ( + builtins.attrNames ( + lib.filterAttrs (k: v: v == "regular" && lib.hasSuffix ".nix" k && k != "default.nix") ( + builtins.readDir ./. + ) + ) + ); + + programs.home-manager.enable = true; +} diff --git a/home-modules/direnv.nix b/home-modules/direnv.nix new file mode 100644 index 0000000..2b51c9d --- /dev/null +++ b/home-modules/direnv.nix @@ -0,0 +1,6 @@ +{ + programs.direnv = { + enable = true; + nix-direnv.enable = true; + }; +} diff --git a/home-modules/gpg.nix b/home-modules/gpg.nix new file mode 100644 index 0000000..004d4e8 --- /dev/null +++ b/home-modules/gpg.nix @@ -0,0 +1,7 @@ +{ config, ... }: +{ + programs.gpg = { + enable = true; + homedir = "${config.xdg.dataHome}/gnupg"; + }; +} diff --git a/home-modules/syncthing.nix b/home-modules/syncthing.nix new file mode 100644 index 0000000..ab267ae --- /dev/null +++ b/home-modules/syncthing.nix @@ -0,0 +1,18 @@ +{ osConfig, lib, ... }: + +{ + + services.syncthing = lib.mkIf (osConfig.nixpkgs.hostPlatform.system == "x86_64-linux") { + enable = true; + tray.enable = osConfig.services.displayManager.enable; + }; + + systemd.user = lib.mkIf osConfig.services.displayManager.enable { + targets.tray = { + Unit = { + Description = "System Tray"; + Requires = [ "graphical-session.target" ]; + }; + }; + }; +} diff --git a/home-modules/vim.nix b/home-modules/vim.nix new file mode 100644 index 0000000..32cd249 --- /dev/null +++ b/home-modules/vim.nix @@ -0,0 +1,19 @@ +{ pkgs, ... }: +{ + programs.vim = { + enable = true; + defaultEditor = true; + plugins = with pkgs.vimPlugins; [ + vim-sensible + vim-fugitive + vim-eunuch + vim-endwise + vim-lsp + vim-lsp-settings + nerdtree + nerdtree-git-plugin + vim-devicons + editorconfig-vim + ]; + }; +} diff --git a/home-modules/vscode.nix b/home-modules/vscode.nix new file mode 100644 index 0000000..022e99d --- /dev/null +++ b/home-modules/vscode.nix @@ -0,0 +1,13 @@ +{ pkgs, ... }: +{ + programs.vscode = { + enable = true; + package = pkgs.vscodium-fhs; + extensions = with pkgs.vscode-extensions; [ + mkhl.direnv + eamodio.gitlens + jnoortheen.nix-ide + redhat.java + ]; + }; +} diff --git a/home-modules/xdg.nix b/home-modules/xdg.nix new file mode 100644 index 0000000..35a834c --- /dev/null +++ b/home-modules/xdg.nix @@ -0,0 +1,29 @@ +{ + config, + lib, + osConfig, + ... +}: +{ + home.preferXdgDirectories = true; + xdg.enable = true; + home.sessionVariables = { + ANDROID_USER_HOME = "${config.xdg.dataHome}/android"; + CARGO_HOME = "${config.xdg.dataHome}/cargo"; + DOTNET_CLI_HOME = "${config.xdg.dataHome}/dotnet"; + DVDCSS_CACHE = "${config.xdg.dataHome}/dvdcss"; + GRADLE_USER_HOME = "${config.xdg.dataHome}/gradle"; + JAVA_OPTIONS = "-Djava.util.prefs.userRoot=${config.xdg.configHome}/java"; + NODE_REPL_HISTORY = "${config.xdg.stateHome}/node_repl_history"; + NPM_CONFIG_USERCONFIG = "${config.xdg.configHome}/npm/npmrc"; + PYTHON_HISTORY = "${config.xdg.stateHome}/python_history"; + RUSTUP_HOME = "${config.xdg.dataHome}/rustup"; + XCOMPOSE_CACHE = "${config.xdg.cacheHome}/X11/xcompose"; + }; + home.shellAliases = { + adb = ''HOME="${config.xdg.dataHome}/android" adb''; + mvn = "mvn -gs ${config.xdg.configHome}/maven/settings.xml"; + wget = "wget --hsts-file=${config.xdg.dataHome}/wget-hsts"; + }; + gtk.gtk2.configLocation = lib.mkIf osConfig.displayManager.enable "${config.xdg.configHome}/gtk-2.0/gtkrc"; +} diff --git a/nixos-configurations/smolboi.nix b/nixos-configurations/smolboi.nix index c03101d..387ca49 100644 --- a/nixos-configurations/smolboi.nix +++ b/nixos-configurations/smolboi.nix @@ -1,5 +1,4 @@ { - config, pkgs, ezModules, inputs, @@ -13,6 +12,7 @@ let in { imports = [ + "${modulesPath}/installer/scan/not-detected.nix" inputs.stylix.nixosModules.stylix inputs.impermanence.nixosModules.impermanence inputs.nixos-hardware.nixosModules.common-cpu-amd @@ -22,14 +22,14 @@ in inputs.nixos-hardware.nixosModules.common-pc inputs.nixos-hardware.nixosModules.common-pc-ssd inputs.nixos-hardware.nixosModules.gigabyte-b550 - inputs.home-manager.nixosModules.home-manager - { - home-manager.extraSpecialArgs = { - inherit pkgs-unstable; - }; - home-manager.useGlobalPkgs = true; - home-manager.users.cdombroski = import ../configs/home.nix; - } + # inputs.home-manager.nixosModules.home-manager + # { + # home-manager.extraSpecialArgs = { + # inherit pkgs-unstable; + # }; + # home-manager.useGlobalPkgs = true; + # home-manager.users.cdombroski = import ../configs/home.nix; + # } ezModules.aarch64-emu ezModules.smartd ezModules.plymouth @@ -143,6 +143,48 @@ in p7zip rar piper + element-desktop + discord + openrgb-with-all-plugins + keepassxc + heroic + r2modman + mangohud + hack-font + htop + jellyfin-media-player + konversation + nixd + yakuake + mgba + vlc + pkgs-unstable.jetbrains.idea-community + dolphin-emu-primehack + steamtinkerlaunch + mangohud + lutris + knossosnet + lilypond + musescore + protontricks + protonup-qt + (retroarch.override { + cores = with libretro; [ + beetle-psx-hw + pcsx2 + mesen + bsnes + parallel-n64 + dolphin + sameboy + citra + gpsp + desmume + fbneo + nxengine + mgba + ]; + }) ]; persistence."/persist" = { hideMounts = true;