Split home config off
This commit is contained in:
parent
e1436242fe
commit
d86a989bbd
9 changed files with 90 additions and 61 deletions
15
helpers.nix
15
helpers.nix
|
@ -88,7 +88,20 @@ with inputs.nixpkgs.lib; {
|
||||||
useGlobalPkgs = true;
|
useGlobalPkgs = true;
|
||||||
useUserPackages = true;
|
useUserPackages = true;
|
||||||
backupFileExtension = "backup";
|
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];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
15
home.nix
15
home.nix
|
@ -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;
|
|
||||||
}
|
|
|
@ -50,6 +50,7 @@ with lib; {
|
||||||
|
|
||||||
# Enable networking.
|
# Enable networking.
|
||||||
networking.networkmanager.enable = true;
|
networking.networkmanager.enable = true;
|
||||||
|
users.groups.networkmanager.members = ["fern"];
|
||||||
|
|
||||||
# Set hostname
|
# Set hostname
|
||||||
networking.hostName = hostname;
|
networking.hostName = hostname;
|
||||||
|
@ -61,13 +62,13 @@ with lib; {
|
||||||
description = "Fern Garden";
|
description = "Fern Garden";
|
||||||
extraGroups = [
|
extraGroups = [
|
||||||
"wheel"
|
"wheel"
|
||||||
"networkmanager"
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
# Use fish shell
|
# Use fish shell
|
||||||
programs.fish = {
|
programs.fish = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
shellAbbrs = let
|
shellAbbrs = let
|
||||||
flake = "/home/fern/Repositories/flock";
|
flake = "/home/fern/Repositories/flock";
|
||||||
in {
|
in {
|
||||||
|
@ -75,11 +76,20 @@ with lib; {
|
||||||
nt = "nh os test ${flake}";
|
nt = "nh os test ${flake}";
|
||||||
nb = "nh os boot ${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
|
function y
|
||||||
set tmp (mktemp -t "yazi-cwd.XXXXXX")
|
set tmp (mktemp -t "yazi-cwd.XXXXXX")
|
||||||
yazi $argv --cwd-file="$tmp"
|
yazi $argv --cwd-file="$tmp"
|
||||||
|
@ -144,15 +154,16 @@ with lib; {
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
colorschemes.gruvbox = {
|
colorschemes.kanagawa = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
contrast = "hard";
|
background.dark = "dragon";
|
||||||
overrides.SignColumn.bg = "none";
|
colors.theme.all.ui.bg_gutter = "none";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
opts = rec {
|
opts = rec {
|
||||||
|
background = "dark";
|
||||||
shiftwidth = 2;
|
shiftwidth = 2;
|
||||||
tabstop = shiftwidth;
|
tabstop = shiftwidth;
|
||||||
softtabstop = shiftwidth;
|
softtabstop = shiftwidth;
|
||||||
|
@ -253,24 +264,28 @@ with lib; {
|
||||||
|
|
||||||
programs.yazi = {
|
programs.yazi = {
|
||||||
enable = true;
|
enable = true;
|
||||||
flavors."gruvbox-dark.yazi" = pkgs.yazi-flavour-gruvbox-dark;
|
flavors."kanagawa-dragon.yazi" = pkgs.yazi-flavour-kanagawa-dragon;
|
||||||
settings.theme = {
|
settings.theme.flavor.dark = "kanagawa-dragon";
|
||||||
flavor.dark = "gruvbox-dark";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.tmux = {
|
programs.tmux = {
|
||||||
enable = true;
|
enable = true;
|
||||||
plugins = [pkgs.tmuxPlugins.gruvbox];
|
plugins = [pkgs.tmuxPlugins.kanagawa];
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.nh = {
|
||||||
|
enable = true;
|
||||||
|
clean = {
|
||||||
|
enable = true;
|
||||||
|
extraArgs = "--keep 5";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
aria2
|
aria2
|
||||||
btop
|
btop
|
||||||
fishPlugins.gruvbox
|
|
||||||
lynx
|
lynx
|
||||||
ncdu
|
ncdu
|
||||||
nh
|
|
||||||
rsync
|
rsync
|
||||||
trash-cli
|
trash-cli
|
||||||
];
|
];
|
||||||
|
@ -286,13 +301,4 @@ with lib; {
|
||||||
userServices = true;
|
userServices = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Home manager settings.
|
|
||||||
home-manager.users.fern = {
|
|
||||||
programs.git = {
|
|
||||||
enable = true;
|
|
||||||
userEmail = "mail@fern.garden";
|
|
||||||
userName = "Fern Garden";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -115,7 +115,6 @@ with lib; {
|
||||||
caligula
|
caligula
|
||||||
celluloid
|
celluloid
|
||||||
deploy-rs
|
deploy-rs
|
||||||
discord
|
|
||||||
feishin
|
feishin
|
||||||
fluffychat
|
fluffychat
|
||||||
fusee-nano
|
fusee-nano
|
||||||
|
@ -124,6 +123,7 @@ with lib; {
|
||||||
glabels-qt
|
glabels-qt
|
||||||
gnome-tweaks
|
gnome-tweaks
|
||||||
gnomeExtensions.adw-gtk3-colorizer
|
gnomeExtensions.adw-gtk3-colorizer
|
||||||
|
gnomeExtensions.alphabetical-app-grid
|
||||||
gnomeExtensions.auto-move-windows
|
gnomeExtensions.auto-move-windows
|
||||||
gnomeExtensions.caffeine
|
gnomeExtensions.caffeine
|
||||||
gnomeExtensions.color-picker
|
gnomeExtensions.color-picker
|
||||||
|
@ -131,6 +131,7 @@ with lib; {
|
||||||
gnomeExtensions.smile-complementary-extension
|
gnomeExtensions.smile-complementary-extension
|
||||||
jellyfin-media-player
|
jellyfin-media-player
|
||||||
libreoffice
|
libreoffice
|
||||||
|
minipro
|
||||||
nextcloud-client
|
nextcloud-client
|
||||||
ns-usbloader
|
ns-usbloader
|
||||||
obsidian
|
obsidian
|
||||||
|
@ -140,6 +141,7 @@ with lib; {
|
||||||
signal-desktop
|
signal-desktop
|
||||||
smile
|
smile
|
||||||
via
|
via
|
||||||
|
webcord
|
||||||
yubioath-flutter
|
yubioath-flutter
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -190,24 +192,4 @@ with lib; {
|
||||||
services.power-profiles-daemon.enable = mkForce false; # enabled by gnome
|
services.power-profiles-daemon.enable = mkForce false; # enabled by gnome
|
||||||
services.tlp.enable = mkForce false; # enabled by nixos-hardware
|
services.tlp.enable = mkForce false; # enabled by nixos-hardware
|
||||||
services.auto-cpufreq.enable = true;
|
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
27
suites/desktop/home.nix
Normal 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
7
suites/home.nix
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
programs.git = {
|
||||||
|
enable = true;
|
||||||
|
userEmail = "mail@fern.garden";
|
||||||
|
userName = "Fern Garden";
|
||||||
|
};
|
||||||
|
}
|
3
suites/server/home.nix
Normal file
3
suites/server/home.nix
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
imports = [../home.nix];
|
||||||
|
}
|
3
suites/server/lxc/home.nix
Normal file
3
suites/server/lxc/home.nix
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
imports = [../home.nix];
|
||||||
|
}
|
3
suites/server/vm/home.nix
Normal file
3
suites/server/vm/home.nix
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
imports = [../home.nix];
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue