I have noticed a bizarre quirk of home manager. Namely, I have this in my home.nix file:
{ config, pkgs, ... }:
{
# Home Manager needs a bit of information about you and the paths it should
# manage.
home.username = "fusion809";
home.homeDirectory = "/home/fusion809";
# This value determines the Home Manager release that your configuration is
# compatible with. This helps avoid breakage when a new Home Manager release
# introduces backwards incompatible changes.
#
# You should not change this value, even if you update Home Manager. If you do
# want to update the value, then make sure to first check the Home Manager
# release notes.
home.stateVersion = "24.11"; # Please read the comment before changing.
# The home.packages option allows you to install Nix packages into your
# environment.
home.packages = [
# # Adds the 'hello' command to your environment. It prints a friendly
# # "Hello, world!" when run.
# pkgs.hello
# # It is sometimes useful to fine-tune packages, for example, by applying
# # overrides. You can do that directly here, just don't forget the
# # parentheses. Maybe you want to install Nerd Fonts with a limited number of
# # fonts?
# (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })
# # You can also create simple shell scripts directly inside your
# # configuration. For example, this adds a command 'my-hello' to your
# # environment:
# (pkgs.writeShellScriptBin "my-hello" ''
# echo "Hello, ${config.home.username}!"
# '')
];
# Home Manager is pretty good at managing dotfiles. The primary way to manage
# plain files is through 'home.file'.
home.file = {
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
# # symlink to the Nix store copy.
# ".screenrc".source = dotfiles/screenrc;
# # You can also set the file content immediately.
# ".gradle/gradle.properties".text = ''
# org.gradle.console=verbose
# org.gradle.daemon.idletimeout=3600000
# '';
};
# Home Manager can also manage your environment variables through
# 'home.sessionVariables'. These will be explicitly sourced when using a
# shell provided by Home Manager. If you don't want to manage your shell
# through Home Manager then you have to manually source 'hm-session-vars.sh'
# located at either
#
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
#
# or
#
# ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh
#
# or
#
# /etc/profiles/per-user/fusion809/etc/profile.d/hm-session-vars.sh
#
home.sessionVariables = {
EDITOR = "vim";
};
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
programs.git = {
enable = true;
userName = "fusion809";
userEmail = "brentonhorne77@gmail.com";
};
programs.bash = {
enable = true;
bashrcExtra = "
function sbash {
source $HOME/.bashrc
}
function vcf {
sudo vim /etc/nixos/configuration.nix
}
function nixcg {
sudo nix-collect-garbage -d
}
function nixcu {
sudo nix-channel --update
}
function nixrsu {
sudo nixos-rebuild switch --upgrade
}
function update {
nixcu
nixrsu
nixcg
}
function rebuild {
sudo nixos-rebuild switch
}
alias nixrb=rebuild
";
};
programs.zsh = {
enable = true;
initExtra = "
source $HOME/NixOS-configs/hnixos.zsh-theme
source $HOME/.bashrc
function szsh {
source $HOME/.zshrc
}
function clipf {
xclip -sel clip < $1
}
function rainbowfastfetch {
hyfetch -p rainbow -b fastfetch --args='--localip-show-ipv4 false'
}
export NIXPKGS_ALLOW_INSECURE=1
function sclipf {
sudo xclip -sel clip < $1
}
function git-branch {
if ! [[ -n \"$1\" ]]; then
git rev-parse --abbrev-ref HEAD
else
git -C \"$1\" rev-parse --abbrev-ref HEAD
fi
}
function push {
git add --all
git commit -m \"$@\"
git push origin $(git-branch)
}
function cdnc {
cd $HOME/NixOS-configs/$1
}
function hmr {
home-manager switch
}
";
};
programs.gnome-shell.theme.name = "WhiteSur-Dark-solid";
gtk.theme.name = "WhiteSur-Dark-solid";
gtk.iconTheme.name = "WhiteSur-Dark";
gtk.cursorTheme.name = "WhiteSur-cursors";
}
Interestingly, when I build this config with home-manager switch
, I get no errors. But when I import it into my system configuration.nix file with this start to that file:
{ config, pkgs, ... }:
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
./home.nix
];
...
}
I get this error from nixos-rebuild switch
:
error:
… while evaluating the attribute 'config'
at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:1:12284:
… while calling the 'seq' builtin
at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:1:12293:
(stack trace truncated; use '--show-trace' to show the full, detailed trace)
error: The option `gtk.cursorTheme' does not exist. Definition values:
- In `/home/fusion809/NixOS-configs/home.nix':
{
name = "WhiteSur-cursors";
}
building Nix...
any ideas what I need to do to this fix this error?