Split home config off

This commit is contained in:
Fern Garden 2025-08-07 11:08:38 +08:00
parent e1436242fe
commit d86a989bbd
9 changed files with 90 additions and 61 deletions

View file

@ -88,7 +88,20 @@ with inputs.nixpkgs.lib; {
useGlobalPkgs = true;
useUserPackages = true;
backupFileExtension = "backup";
users.fern = ./home.nix;
users.fern = {
# Me!
home.username = "fern";
home.homeDirectory = "/home/fern";
# Home manager version.
home.stateVersion = "25.05";
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
# Import config.
imports = [./suites/${suite}/home.nix];
};
};
}
]

View file

@ -1,15 +0,0 @@
{
config,
pkgs,
...
}: {
# Me!
home.username = "fern";
home.homeDirectory = "/home/fern";
# Home manager version.
home.stateVersion = "25.05";
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
}

View file

@ -50,6 +50,7 @@ with lib; {
# Enable networking.
networking.networkmanager.enable = true;
users.groups.networkmanager.members = ["fern"];
# Set hostname
networking.hostName = hostname;
@ -61,13 +62,13 @@ with lib; {
description = "Fern Garden";
extraGroups = [
"wheel"
"networkmanager"
];
};
# Use fish shell
programs.fish = {
enable = true;
shellAbbrs = let
flake = "/home/fern/Repositories/flock";
in {
@ -75,11 +76,20 @@ with lib; {
nt = "nh os test ${flake}";
nb = "nh os boot ${flake}";
};
interactiveShellInit = ''
# set gruvbox theme
theme_gruvbox dark hard
# yazi cd on quit.
interactiveShellInit = let
kanagawaTheme = builtins.readFile (pkgs.fetchurl {
url = "https://raw.githubusercontent.com/rebelot/kanagawa.nvim/refs/heads/master/extras/fish/kanagawa.fish";
hash = "sha256-2sRTcX/ktf4aiALCn4w88PiGF8K3BtUeSSIQOdDxtWo=";
});
in ''
# Kanagawa theme.
${kanagawaTheme}
# Disable greeting
set fish_greeting
# Yazi cd on quit.
function y
set tmp (mktemp -t "yazi-cwd.XXXXXX")
yazi $argv --cwd-file="$tmp"
@ -144,15 +154,16 @@ with lib; {
}
];
colorschemes.gruvbox = {
colorschemes.kanagawa = {
enable = true;
settings = {
contrast = "hard";
overrides.SignColumn.bg = "none";
background.dark = "dragon";
colors.theme.all.ui.bg_gutter = "none";
};
};
opts = rec {
background = "dark";
shiftwidth = 2;
tabstop = shiftwidth;
softtabstop = shiftwidth;
@ -253,24 +264,28 @@ with lib; {
programs.yazi = {
enable = true;
flavors."gruvbox-dark.yazi" = pkgs.yazi-flavour-gruvbox-dark;
settings.theme = {
flavor.dark = "gruvbox-dark";
};
flavors."kanagawa-dragon.yazi" = pkgs.yazi-flavour-kanagawa-dragon;
settings.theme.flavor.dark = "kanagawa-dragon";
};
programs.tmux = {
enable = true;
plugins = [pkgs.tmuxPlugins.gruvbox];
plugins = [pkgs.tmuxPlugins.kanagawa];
};
programs.nh = {
enable = true;
clean = {
enable = true;
extraArgs = "--keep 5";
};
};
environment.systemPackages = with pkgs; [
aria2
btop
fishPlugins.gruvbox
lynx
ncdu
nh
rsync
trash-cli
];
@ -286,13 +301,4 @@ with lib; {
userServices = true;
};
};
# Home manager settings.
home-manager.users.fern = {
programs.git = {
enable = true;
userEmail = "mail@fern.garden";
userName = "Fern Garden";
};
};
}

View file

@ -115,7 +115,6 @@ with lib; {
caligula
celluloid
deploy-rs
discord
feishin
fluffychat
fusee-nano
@ -124,6 +123,7 @@ with lib; {
glabels-qt
gnome-tweaks
gnomeExtensions.adw-gtk3-colorizer
gnomeExtensions.alphabetical-app-grid
gnomeExtensions.auto-move-windows
gnomeExtensions.caffeine
gnomeExtensions.color-picker
@ -131,6 +131,7 @@ with lib; {
gnomeExtensions.smile-complementary-extension
jellyfin-media-player
libreoffice
minipro
nextcloud-client
ns-usbloader
obsidian
@ -140,6 +141,7 @@ with lib; {
signal-desktop
smile
via
webcord
yubioath-flutter
];
@ -190,24 +192,4 @@ with lib; {
services.power-profiles-daemon.enable = mkForce false; # enabled by gnome
services.tlp.enable = mkForce false; # enabled by nixos-hardware
services.auto-cpufreq.enable = true;
# Home manager settings.
home-manager.users.fern = {
# Ghostty settings.
programs.ghostty = {
enable = true;
settings = {
font-family = "IosevkaCustom";
theme = "GruvboxDarkHard";
};
};
# virt-manager - autoconnect to qemu.
dconf.settings = {
"org/virt-manager/virt-manager/connections" = {
autoconnect = ["qemu:///system"];
uris = ["qemu:///system"];
};
};
};
}

27
suites/desktop/home.nix Normal file
View file

@ -0,0 +1,27 @@
{
imports = [../home.nix];
# Ghostty settings.
programs.ghostty = {
enable = true;
settings = {
font-family = "IosevkaCustom";
theme = "Kanagawa Dragon";
};
};
# Firefox settings
programs.firefox = {
enable = true;
profiles.default = {};
profiles.default.settings."identity.sync.tokenserver.uri" = "https://fxsync.fern.garden/1.0/sync/1.5";
};
# virt-manager - autoconnect to qemu.
dconf.settings = {
"org/virt-manager/virt-manager/connections" = {
autoconnect = ["qemu:///system"];
uris = ["qemu:///system"];
};
};
}

7
suites/home.nix Normal file
View file

@ -0,0 +1,7 @@
{
programs.git = {
enable = true;
userEmail = "mail@fern.garden";
userName = "Fern Garden";
};
}

3
suites/server/home.nix Normal file
View file

@ -0,0 +1,3 @@
{
imports = [../home.nix];
}

View file

@ -0,0 +1,3 @@
{
imports = [../home.nix];
}

View file

@ -0,0 +1,3 @@
{
imports = [../home.nix];
}