From f4382c7a9706b5f478f89e5d0f71ebace73e6f97 Mon Sep 17 00:00:00 2001 From: glennigen Date: Sun, 12 Jul 2026 14:39:07 +0200 Subject: [PATCH] upload af nix configs --- configuration.nix | 31 ++++++++++++++++++++++++++++ flake.nix | 25 ++++++++++++++++++++++ home.nix | 31 ++++++++++++++++++++++++++++ modules/apps/default.nix | 6 ++++++ modules/apps/flatpak.nix | 33 +++++++++++++++++++++++++++++ modules/apps/native.nix | 41 +++++++++++++++++++++++++++++++++++++ modules/desktop/default.nix | 5 +++++ modules/desktop/kde.nix | 17 +++++++++++++++ 8 files changed, 189 insertions(+) create mode 100644 configuration.nix create mode 100644 flake.nix create mode 100644 home.nix create mode 100644 modules/apps/default.nix create mode 100644 modules/apps/flatpak.nix create mode 100644 modules/apps/native.nix create mode 100644 modules/desktop/default.nix create mode 100644 modules/desktop/kde.nix diff --git a/configuration.nix b/configuration.nix new file mode 100644 index 0000000..5a2a5ff --- /dev/null +++ b/configuration.nix @@ -0,0 +1,31 @@ +{ config, pkgs, ... }: { + imports = [ + ./modules/apps + ./modules/desktop + ]; + + # System + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + networking.hostName = "nixos"; + networking.networkmanager.enable = true; + + time.timeZone = "Europe/Copenhagen"; + i18n.defaultLocale = "da_DK.UTF-8"; + + # User + users.users.glennigen = { + isNormalUser = true; + extraGroups = [ "wheel" "networkmanager" ]; + shell = pkgs.fish; + }; + + # Nix + nix.settings.experimental-features = [ "nix-command" "flakes" ]; + + # OpenGL / GPU + hardware.opengl.enable = true; + + system.stateVersion = "24.11"; +} \ No newline at end of file diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..5f1ecf9 --- /dev/null +++ b/flake.nix @@ -0,0 +1,25 @@ +{ + description = "glennigen's NixOS config"; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + home-manager = { + url = "github:nix-community/home-manager/master"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; + + outputs = { self, nixpkgs, home-manager, ... }: { + nixosConfigurations.nixos = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + modules = [ + ./configuration.nix + home-manager.nixosModules.home-manager { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.glennigen = import ./home.nix; + } + ]; + }; + }; +} \ No newline at end of file diff --git a/home.nix b/home.nix new file mode 100644 index 0000000..beade31 --- /dev/null +++ b/home.nix @@ -0,0 +1,31 @@ +{ config, pkgs, ... }: { + home.username = "glennigen"; + home.homeDirectory = "/home/glennigen"; + home.stateVersion = "24.11"; + + # Bruger-specifikke pakker — kun til glennigen + home.packages = with pkgs; [ + # Editorer (personlige valg) + vscodium + sublime4 + + # Media + sone # musikafspiller + obs-studio # streaming/optagelse + + # Discord (Equibop) + equibop + + # 1Password GUI + _1password-gui + ]; + + programs.bash.enable = true; + programs.starship.enable = true; + + programs.git = { + enable = true; + userName = "glennigen"; + userEmail = "glennigen@example.com"; + }; +} diff --git a/modules/apps/default.nix b/modules/apps/default.nix new file mode 100644 index 0000000..c750d2e --- /dev/null +++ b/modules/apps/default.nix @@ -0,0 +1,6 @@ +{ pkgs, ... }: { + imports = [ + ./native.nix + ./flatpak.nix + ]; +} \ No newline at end of file diff --git a/modules/apps/flatpak.nix b/modules/apps/flatpak.nix new file mode 100644 index 0000000..c1149bf --- /dev/null +++ b/modules/apps/flatpak.nix @@ -0,0 +1,33 @@ +{ pkgs, ... }: { + services.flatpak.enable = true; + + # Auto-install flatpak-apps ved rebuild + system.activationScripts.flatpak = { + text = '' + FLATPAK="${pkgs.flatpak}/bin/flatpak" + + # Tilføj flathub remote + $FLATPAK remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo + + # Installer apps (--or-update opdaterer hvis allerede installeret) + apps=" + io.github.Faugus.faugus-launcher + com.adamcake.Bolt + com.notesnook.Notesnook + com.saivert.pwvucontrol + com.github.tchx84.Flatseal + org.kde.kdenlive + it.mijorus.gearlever + com.github.Matoking.protontricks + com.vysp3r.ProtonPlus + org.musicbrainz.Picard + io.github.radiolamp.mangojuice + " + + for app in $apps; do + $FLATPAK install --noninteractive --or-update flathub "$app" 2>/dev/null || true + done + ''; + description = "Install flatpak apps"; + }; +} \ No newline at end of file diff --git a/modules/apps/native.nix b/modules/apps/native.nix new file mode 100644 index 0000000..21b54b3 --- /dev/null +++ b/modules/apps/native.nix @@ -0,0 +1,41 @@ +{ pkgs, ... }: { + # Native system packages — fra din Ansible DNF-liste + environment.systemPackages = with pkgs; [ + # Terminal / shell + kitty + fish + fastfetch + lsd + glow + btop + tldr + neovim + + # Git + git + gh + + # Gaming + steam + gamemode + gamescope + + # Utility + stow + tailscale + ]; + + # Fish som default shell for glennigen + programs.fish.enable = true; + + # Steam + programs.steam.enable = true; + + # Tailscale (service, ikke package) + services.tailscale.enable = true; + + # 1Password — PolKit integration (system-level) + security.polkit.enable = true; + programs._1password.enable = true; + programs._1password-gui.enable = true; +} \ No newline at end of file diff --git a/modules/desktop/default.nix b/modules/desktop/default.nix new file mode 100644 index 0000000..056f74a --- /dev/null +++ b/modules/desktop/default.nix @@ -0,0 +1,5 @@ +{ ... }: { + imports = [ + ./kde.nix + ]; +} \ No newline at end of file diff --git a/modules/desktop/kde.nix b/modules/desktop/kde.nix new file mode 100644 index 0000000..969d3ce --- /dev/null +++ b/modules/desktop/kde.nix @@ -0,0 +1,17 @@ +{ ... }: { + # KDE Plasma — desktop environment + services.xserver.enable = true; + services.displayManager.sddm.enable = true; + services.desktopManager.plasma6.enable = true; + + # Lyd + security.rtkit.enable = true; + services.pipewire = { + enable = true; + alsa.enable = true; + pulse.enable = true; + }; + + # Printing + services.printing.enable = true; +} \ No newline at end of file