feat: initial NixOS home lab infrastructure setup
- Add modular flake-based NixOS configuration - Implement GitOps foundation with CI/CD pipeline - Create comprehensive documentation and branching strategy - Add modular desktop environments (GNOME, Cosmic, Sway) - Configure virtualization stack (Incus, Libvirt, Podman) - Set up development tools and hardware-specific modules - Establish user configuration with literate programming support This commit represents the completion of Phase 1: Flakes Migration with modular configuration, virtualization, and GitOps foundation.
This commit is contained in:
commit
f30013723e
43 changed files with 4220 additions and 0 deletions
29
modules/desktop/common.nix
Normal file
29
modules/desktop/common.nix
Normal file
|
@ -0,0 +1,29 @@
|
|||
{ config, pkgs, ... }: {
|
||||
# Common desktop configuration shared across all environments
|
||||
|
||||
# XDG Portal configuration for Wayland/X11 compatibility
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
wlr.enable = true;
|
||||
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
||||
};
|
||||
|
||||
# Display manager and session management
|
||||
services.dbus.enable = true;
|
||||
|
||||
# Common desktop packages
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Basic desktop tools
|
||||
firefox
|
||||
alacritty
|
||||
nautilus
|
||||
|
||||
# Media and graphics
|
||||
vlc
|
||||
gimp
|
||||
|
||||
# Utilities
|
||||
gnome-tweaks
|
||||
dconf-editor
|
||||
];
|
||||
}
|
11
modules/desktop/cosmic.nix
Normal file
11
modules/desktop/cosmic.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{ config, pkgs, ... }: {
|
||||
# Cosmic Desktop Environment (System76's new Rust-based DE)
|
||||
services.desktopManager.cosmic.enable = true;
|
||||
services.displayManager.cosmic-greeter.enable = true;
|
||||
services.desktopManager.cosmic.xwayland.enable = true;
|
||||
|
||||
# Cosmic-specific packages
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Cosmic is still in development, most packages come with the DE
|
||||
];
|
||||
}
|
22
modules/desktop/gnome.nix
Normal file
22
modules/desktop/gnome.nix
Normal file
|
@ -0,0 +1,22 @@
|
|||
{ config, pkgs, ... }: {
|
||||
# GNOME Desktop Environment
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
desktopManager.gnome.enable = true;
|
||||
xkb.layout = "no";
|
||||
};
|
||||
|
||||
# GNOME-specific packages
|
||||
environment.systemPackages = with pkgs; [
|
||||
gnome-extension-manager
|
||||
gnome-shell-extensions
|
||||
dconf-editor
|
||||
gnome-tweaks
|
||||
];
|
||||
|
||||
# GNOME services
|
||||
services.gnome = {
|
||||
gnome-keyring.enable = true;
|
||||
glib-networking.enable = true;
|
||||
};
|
||||
}
|
28
modules/desktop/sway.nix
Normal file
28
modules/desktop/sway.nix
Normal file
|
@ -0,0 +1,28 @@
|
|||
{ config, pkgs, ... }: {
|
||||
# Sway Window Manager (Wayland-based i3 replacement)
|
||||
programs.sway = {
|
||||
enable = true;
|
||||
wrapperFeatures.gtk = true;
|
||||
};
|
||||
|
||||
# Sway-specific packages
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Core Sway tools
|
||||
swaylock
|
||||
swayidle
|
||||
swaybg
|
||||
|
||||
# Wayland utilities
|
||||
waybar # Status bar
|
||||
fuzzel # Application launcher
|
||||
gammastep # Blue light filter
|
||||
mako # Notification daemon
|
||||
flameshot # Screenshot tool
|
||||
wl-clipboard # Clipboard utilities
|
||||
|
||||
# Additional Wayland tools
|
||||
grim # Screenshot utility
|
||||
slurp # Screen area selection
|
||||
wf-recorder # Screen recorder
|
||||
];
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue