diff --git a/machines/congenital-optimist/configuration.nix b/machines/congenital-optimist/configuration.nix index c9e6b24..9b74242 100644 --- a/machines/congenital-optimist/configuration.nix +++ b/machines/congenital-optimist/configuration.nix @@ -8,27 +8,29 @@ imports = [ ./hardware-configuration.nix ./network-congenital-optimist.nix - + # Security modules ../../modules/security/ssh-keys.nix - + # Network modules ../../modules/network/extraHosts.nix - + # Hardware modules ../../modules/hardware/amd-workstation.nix - + # Desktop environments ../../modules/desktop/common.nix ../../modules/desktop/gnome.nix ../../modules/desktop/cosmic.nix ../../modules/desktop/sway.nix ../../modules/desktop/niri.nix - - + + # Fonts + ../../modules/desktop/fonts.nix + # Development tools ../../modules/development/tools.nix - + # User configuration ../../modules/users/geir.nix @@ -50,7 +52,7 @@ path = "/boot"; } ]; - }; # ZFS services for this machine + }; # ZFS services for this machine services.zfs = { autoScrub.enable = true; trim.enable = true; diff --git a/modules/users/geir.nix b/modules/users/geir.nix index 033c5d8..e0c2de5 100644 --- a/modules/users/geir.nix +++ b/modules/users/geir.nix @@ -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)" ''; }; -} \ No newline at end of file +}