reconfigured how home manager gets applied

This commit is contained in:
Leyla Becker 2024-10-03 14:48:14 +02:00
parent 26b231a329
commit ff295dc7ac
8 changed files with 438 additions and 361 deletions

View file

@ -30,6 +30,7 @@
- Look into this for flake templates https://nix.dev/manual/nix/2.22/command-ref/new-cli/nix3-flake-init - Look into this for flake templates https://nix.dev/manual/nix/2.22/command-ref/new-cli/nix3-flake-init
- Look into this for headscale https://carlosvaz.com/posts/setting-up-headscale-on-nixos/ - Look into this for headscale https://carlosvaz.com/posts/setting-up-headscale-on-nixos/
- Look into this for home assistant configuration https://nixos.wiki/wiki/Home_Assistant https://myme.no/posts/2021-11-25-nixos-home-assistant.html - Look into this for home assistant configuration https://nixos.wiki/wiki/Home_Assistant https://myme.no/posts/2021-11-25-nixos-home-assistant.html
- This person seams to know what they are doing with home manager https://github.com/arvigeus/nixos-config/
## Configuration ## Configuration
set up git configuration for local development: `git config --local include.path .gitconfig` set up git configuration for local development: `git config --local include.path .gitconfig`

View file

@ -71,13 +71,13 @@
modules = [ modules = [
./hosts/horizon/configuration.nix ./hosts/horizon/configuration.nix
nixos-hardware.nixosModules.framework-11th-gen-intel nixos-hardware.nixosModules.framework-11th-gen-intel
home-manager.nixosModules.default home-manager.nixosModules.home-manager
# { {
# home-manager.useGlobalPkgs = true; home-manager.useGlobalPkgs = true;
# home-manager.useUserPackages = true; home-manager.useUserPackages = true;
# home-manager.extraSpecialArgs = { inherit inputs; }; home-manager.backupFileExtension = "backup";
# home-manager.users = import ./users; home-manager.extraSpecialArgs = { inherit inputs; };
# } }
]; ];
}; };
# Leyla Desktop # Leyla Desktop

View file

@ -14,6 +14,10 @@
../../enviroments/client ../../enviroments/client
]; ];
home-manager.users.leyla.config = {
isFullUser = true;
};
users = { users = {
leyla.isFullUser = true; leyla.isFullUser = true;
ester.isFullUser = true; ester.isFullUser = true;

View file

@ -4,4 +4,5 @@
users.mutableUsers = false; users.mutableUsers = false;
home-manager.extraSpecialArgs = {inherit inputs;}; home-manager.extraSpecialArgs = {inherit inputs;};
home-manager.users = import ./home.nix;
} }

5
users/home.nix Normal file
View file

@ -0,0 +1,5 @@
{
leyla = import ./leyla/home.nix;
# ester = import ./ester/home.nix;
# eve = import ./eve/home.nix;
}

View file

@ -6,9 +6,9 @@
}: let }: let
cfg = config.users.leyla; cfg = config.users.leyla;
in { in {
imports = [ # imports = [
./packages.nix # ./packages.nix
]; # ];
options.users.leyla = { options.users.leyla = {
isFullUser = lib.mkEnableOption "create usable leyla user"; isFullUser = lib.mkEnableOption "create usable leyla user";
@ -69,6 +69,6 @@ in {
]; ];
}; };
home-manager.users.leyla = lib.mkIf (cfg.isFullUser || cfg.isThinUser) (import ./home.nix); # home-manager.users.leyla = lib.mkIf (cfg.isFullUser || cfg.isThinUser) (import ./home.nix);
}; };
} }

View file

@ -1,8 +1,20 @@
{ {
lib,
config, config,
pkgs, pkgs,
... ...
}: { }: {
imports = [
./packages.nix
];
options = {
isFullUser = lib.mkEnableOption "create usable leyla user";
isThinUser = lib.mkEnableOption "create usable user but witohut user applications";
hasGPU = lib.mkEnableOption "installs gpu intensive programs";
};
config = {
# Home Manager needs a bit of information about you and the paths it should # Home Manager needs a bit of information about you and the paths it should
# manage. # manage.
home = { home = {
@ -257,4 +269,5 @@
}; };
}; };
}; };
};
} }

View file

@ -1,17 +1,12 @@
{ {
lib, lib,
config, config,
osConfig,
pkgs, pkgs,
inputs, inputs,
... ...
}: let }:
cfg = config.users.leyla; {
in {
imports = [
../../overlays/intellij.nix
../../overlays/vscodium.nix
];
nixpkgs = { nixpkgs = {
overlays = [ overlays = [
inputs.nix-vscode-extensions.overlays.default inputs.nix-vscode-extensions.overlays.default
@ -19,67 +14,29 @@ in {
}; };
programs = { programs = {
bash.shellAliases = lib.mkIf cfg.isFullUser { bash.shellAliases = lib.mkIf config.isFullUser {
code = "codium"; code = "codium";
}; };
steam = lib.mkIf cfg.isFullUser { vscode = let
extensions = inputs.nix-vscode-extensions.extensions.${pkgs.system};
open-vsx = extensions.open-vsx;
vscode-marketplace = extensions.vscode-marketplace;
in
{
enable = true; enable = true;
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server package = pkgs.vscodium;
mutableExtensionsDir = false;
enableUpdateCheck = false;
enableExtensionUpdateCheck = false;
userSettings = {
"workbench.colorTheme" = "Atom One Dark";
}; };
noisetorch.enable = cfg.isFullUser; extensions = with extensions.open-vsx; [
adb.enable = cfg.isFullUser;
};
users.users.leyla.packages = lib.mkIf (cfg.isFullUser || cfg.isThinUser) (
lib.mkMerge [
(
with pkgs; [
# comand line tools
yt-dlp
ffmpeg
imagemagick
]
)
(
lib.mkIf (!cfg.isThinUser) (
with pkgs; [
#foss platforms
signal-desktop
bitwarden
firefox
ungoogled-chromium
libreoffice
inkscape
gimp
krita
freecad
# cura
kicad-small
makemkv
transmission_4-gtk
onionshare
easytag
# rhythmbox
(lib.mkIf cfg.hasGPU obs-studio)
# wireshark
# rpi-imager
# fritzing
# proprietary platforms
discord
obsidian
steam
(lib.mkIf cfg.hasGPU davinci-resolve)
# development tools
(vscode-with-extensions.override {
vscode = vscodium;
vscodeExtensions = with open-vsx;
[
# vs code feel extensions # vs code feel extensions
ms-vscode.atom-keybindings ms-vscode.atom-keybindings
akamud.vscode-theme-onedark akamud.vscode-theme-onedark
@ -107,13 +64,108 @@ in {
# misc extensions # misc extensions
bungcip.better-toml bungcip.better-toml
# the number at the start of the name here doesnt resolve nicely so we have to refernce it as a part of open-vsx directly instead of though with
open-vsx."10nates".ollama-autocoder open-vsx."10nates".ollama-autocoder
] ]
++ (with vscode-marketplace; [ ++ (with extensions.vscode-marketplace; [
# js extensions # js extensions
karyfoundation.nearley karyfoundation.nearley
]); ]);
}) };
# steam = lib.mkIf config.isFullUser {
# enable = true;
# remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
# dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
# };
# noisetorch.enable = config.isFullUser;
# adb.enable = config.isFullUser;
};
home = {
packages = lib.mkIf (config.isFullUser || config.isThinUser) (
lib.mkMerge [
(
with pkgs; [
# comand line tools
yt-dlp
ffmpeg
imagemagick
]
)
(
lib.mkIf (!config.isThinUser) (
with pkgs; [
#foss platforms
signal-desktop
bitwarden
firefox
ungoogled-chromium
libreoffice
inkscape
gimp
krita
freecad
# cura
kicad-small
makemkv
transmission_4-gtk
onionshare
easytag
# rhythmbox
(lib.mkIf config.hasGPU obs-studio)
# wireshark
# rpi-imager
# fritzing
# proprietary platforms
discord
obsidian
steam
(lib.mkIf config.hasGPU davinci-resolve)
# development tools
# (vscode-with-extensions.override {
# vscode = vscodium;
# vscodeExtensions = with open-vsx;
# [
# # vs code feel extensions
# ms-vscode.atom-keybindings
# akamud.vscode-theme-onedark
# streetsidesoftware.code-spell-checker
# streetsidesoftware.code-spell-checker-german
# streetsidesoftware.code-spell-checker-italian
# jeanp413.open-remote-ssh
# # nix extensions
# pinage404.nix-extension-pack
# jnoortheen.nix-ide
# # html extensions
# formulahendry.auto-rename-tag
# ms-vscode.live-server
# # js extensions
# dsznajder.es7-react-js-snippets
# dbaeumer.vscode-eslint
# standard.vscode-standard
# firsttris.vscode-jest-runner
# stylelint.vscode-stylelint
# tauri-apps.tauri-vscode
# # misc extensions
# bungcip.better-toml
# open-vsx."10nates".ollama-autocoder
# ]
# ++ (with vscode-marketplace; [
# # js extensions
# karyfoundation.nearley
# ]);
# })
androidStudioPackages.canary androidStudioPackages.canary
jetbrains.idea-community jetbrains.idea-community
dbeaver-bin dbeaver-bin
@ -126,12 +178,13 @@ in {
noisetorch noisetorch
# hardware managment tools # hardware managment tools
(lib.mkIf config.hardware.piperMouse.enable piper) (lib.mkIf osConfig.hardware.piperMouse.enable piper)
(lib.mkIf config.hardware.openRGB.enable openrgb) (lib.mkIf osConfig.hardware.openRGB.enable openrgb)
(lib.mkIf config.hardware.viaKeyboard.enable via) (lib.mkIf osConfig.hardware.viaKeyboard.enable via)
] ]
) )
) )
] ]
); );
};
} }