reconfigured how home manager gets applied
This commit is contained in:
parent
26b231a329
commit
ff295dc7ac
|
@ -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`
|
||||||
|
|
14
flake.nix
14
flake.nix
|
@ -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
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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
5
users/home.nix
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
leyla = import ./leyla/home.nix;
|
||||||
|
# ester = import ./ester/home.nix;
|
||||||
|
# eve = import ./eve/home.nix;
|
||||||
|
}
|
|
@ -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);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -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 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -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)
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue