remember to import the fonts also

This commit is contained in:
Geir Okkenhaug Jerstad 2025-06-10 21:59:00 +02:00
parent aea88565bd
commit 1fd6de2551
2 changed files with 56 additions and 51 deletions

View file

@ -1,29 +1,31 @@
# Primary User Configuration - geir
# Main user account for development and desktop use
{ config, pkgs, ... }:
let
# Import custom packages from the flake
homeLabPackages = import ../../packages { inherit pkgs; };
in
{
config,
pkgs,
...
}: let
# Import custom packages from the flake
homeLabPackages = import ../../packages {inherit pkgs;};
in {
users.users.geir = {
description = "Geir Okkenhaug Jerstad - Primary User";
isNormalUser = true;
# User groups for development and desktop use
extraGroups = [
"wheel" # sudo access
extraGroups = [
"wheel" # sudo access
"networkmanager" # network management
"libvirt" # virtualization
"incus-admin" # container management
"podman" # container runtime
"audio" # audio devices
"video" # video devices
"render" # GPU access
"libvirt" # virtualization
"incus-admin" # container management
"podman" # container runtime
"audio" # audio devices
"video" # video devices
"render" # GPU access
];
shell = pkgs.zsh;
# SSH access with development keys
openssh.authorizedKeys.keys = [
# Current key (keep for continuity during transition)
@ -31,7 +33,7 @@ in
# New development key
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHukJK0Kc1YexvzF8PdqaqWNZdVffGoM6ePPMecrU6dM geir@geokkjer.eu-dev"
];
# User-specific packages
packages = with pkgs; [
# Home lab management tools
@ -41,29 +43,30 @@ in
kitty
terminator
starship
# Essential system tools (moved duplicates to base.nix)
mc
# Browsers & Communication
firefox
chromium
vesktop
vivaldi vivaldi-ffmpeg-codecs
vivaldi
vivaldi-ffmpeg-codecs
# Shell Enhancement & Fun
nerdfetch
neo-cowsay
fortune
clolcat
# Audio & System Control
ncpamixer
pavucontrol
# Productivity
koodo-reader
# Development & System Management
neovim
vscode
@ -71,7 +74,7 @@ in
nodejs
nodePackages.npm
virt-manager
# Creative Tools (optional - remove if not needed)
gimp
obs-studio
@ -83,13 +86,13 @@ in
# Container tools
podman-compose
podman-desktop
# Media
celluloid
# Emacs Integration
emacsPackages.vterm
# Desktop integration (moved from system)
dbus
wayland
@ -98,7 +101,7 @@ in
};
# User-specific services and configurations
# Enable automatic login for primary user (optional, can be disabled for security)
# services.xserver.displayManager.autoLogin = {
# enable = true;
@ -111,64 +114,64 @@ in
EDITOR = "emacs";
BROWSER = "firefox";
TERMINAL = "kitty";
# Git configuration
GIT_EDITOR = "emacs";
GIT_EDITOR = "nano";
};
# Comprehensive zsh configuration for geir
programs.zsh = {
enable = true;
# Shell aliases
shellAliases = {
# Development workflow
"home-lab" = "z /home/geir/Home-lab";
"configs" = "z /home/geir/Home-lab/user_configs/geir";
"emacs-config" = "emacs /home/geir/Home-lab/user_configs/geir/emacs.org";
# Quick system management
"rebuild-test" = "sudo nixos-rebuild test --flake /home/geir/Home-lab";
"rebuild" = "sudo nixos-rebuild switch --flake /home/geir/Home-lab";
"collect" = "sudo nix-collect-garbage --d";
"optimise" = "sudo nix-store --optimise";
# Git shortcuts for multi-remote workflow
# Git shortcuts for multi-remote workflow
"git-status-all" = "git status && echo '--- Checking origin ---' && git log origin/main..HEAD --oneline && echo '--- Checking github ---' && git log github/main..HEAD --oneline";
# Container shortcuts
"pdm" = "podman";
"pdc" = "podman-compose";
# Media shortcuts
"youtube-dl" = "yt-dlp";
};
# History configuration
histSize = 10000;
histFile = "$HOME/.histfile";
# Shell options
setOptions = [ "autocd" "extendedglob" ];
setOptions = ["autocd" "extendedglob"];
# Interactive shell initialization
interactiveShellInit = ''
# Emacs-style keybindings
bindkey -e
# Disable annoying shell options
unsetopt beep nomatch
# Completion configuration
zstyle ':completion:*' completer _expand _complete _ignored
zstyle ':completion:*' matcher-list ""
autoload -Uz compinit
compinit
# Initialize shell enhancements
eval "$(starship init zsh)"
eval "$(direnv hook zsh)"
eval "$(zoxide init zsh)"
'';
};
}
}