From 011f04fbf2a2986a38a0400c1e7f1e6f889d73cc Mon Sep 17 00:00:00 2001 From: ulve Date: Tue, 14 Jul 2026 16:00:16 +0200 Subject: [PATCH] Added new desktop --- flake.lock | 44 ++++-- flake.nix | 17 +++ hosts/fractalus/default.nix | 152 +++++++++++++++++++++ hosts/fractalus/hardware-configuration.nix | 31 +++++ hosts/fractalus/home.nix | 35 +++++ 5 files changed, 268 insertions(+), 11 deletions(-) create mode 100644 hosts/fractalus/default.nix create mode 100644 hosts/fractalus/hardware-configuration.nix create mode 100644 hosts/fractalus/home.nix diff --git a/flake.lock b/flake.lock index 39ff0ce..4c31177 100644 --- a/flake.lock +++ b/flake.lock @@ -2,14 +2,15 @@ "nodes": { "herdr": { "inputs": { - "nixpkgs": "nixpkgs" + "nixpkgs": "nixpkgs", + "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1783468284, - "narHash": "sha256-no8aODMs+tYEnEShJPHKap2imToiA++joPFL+o/ZAmg=", + "lastModified": 1784033668, + "narHash": "sha256-aVBkCdY2OIpDRNcn4Sp9T0OWfXp8iYnY+12EsYAqFuQ=", "owner": "ogulcancelik", "repo": "herdr", - "rev": "77f0339c3cd387c4ca3f4f240ff8b88065d66a22", + "rev": "b0d46fb9bc2a3e7fb58864939e2580b8a9a2f1bc", "type": "github" }, "original": { @@ -25,11 +26,11 @@ ] }, "locked": { - "lastModified": 1783221248, - "narHash": "sha256-ESQnuNHEDChsB4IxoLRhscVahqkDWkTb+qdIz8euYt4=", + "lastModified": 1783740085, + "narHash": "sha256-qajyHfZY29G2oEQk+uHxmsJcRoBUBXP9maTpFlwP/dI=", "owner": "nix-community", "repo": "home-manager", - "rev": "af2beae5f0fae0a4310cc0e6aef2572f56090353", + "rev": "3cd22efe6471dc7365c822bd9ad73a21e55f38fb", "type": "github" }, "original": { @@ -57,11 +58,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1783389287, - "narHash": "sha256-R5cxRkQCq5wIM91F9OkIEgu8YoSGjlMeTjYl9o4gpKw=", - "rev": "0ad6f47ea4fe188f4bc8f0380f93ae8523337c6c", + "lastModified": 1783856661, + "narHash": "sha256-+nv/MctTR0m3m5D9cFV2aZC0dQSJB5cThnML4dgVYdg=", + "rev": "569d578509928497eddc3fdbf94a799027050be4", "type": "tarball", - "url": "https://releases.nixos.org/nixos/26.05/nixos-26.05.4364.0ad6f47ea4fe/nixexprs.tar.xz" + "url": "https://releases.nixos.org/nixos/26.05/nixos-26.05.4808.569d57850992/nixexprs.tar.xz" }, "original": { "id": "nixpkgs", @@ -75,6 +76,27 @@ "home-manager": "home-manager", "nixpkgs": "nixpkgs_2" } + }, + "rust-overlay": { + "inputs": { + "nixpkgs": [ + "herdr", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1783577481, + "narHash": "sha256-EWMxOWrJ031f8f/lrcEmhTRs4npw1/5N3Hcjin846c8=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "4cdea398dc491b082dccdce0fad1ed0b75fa3394", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 54e5cb6..582fce6 100644 --- a/flake.nix +++ b/flake.nix @@ -29,6 +29,23 @@ ]; }; + nixosConfigurations.fractalus = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + modules = [ + ./hosts/fractalus + home-manager.nixosModules.home-manager + { + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + users.ulve = import ./hosts/fractalus/home.nix; + backupFileExtension = "backup"; + extraSpecialArgs = { inherit herdr; }; + }; + } + ]; + }; + nixosConfigurations.macnix = nixpkgs.lib.nixosSystem { system = "aarch64-linux"; modules = [ diff --git a/hosts/fractalus/default.nix b/hosts/fractalus/default.nix new file mode 100644 index 0000000..496bcb2 --- /dev/null +++ b/hosts/fractalus/default.nix @@ -0,0 +1,152 @@ +# Edit this configuration file to define what should be installed on +# your system. Help is available in the configuration.nix(5) man page +# and in the NixOS manual (accessible by running ‘nixos-help’). + +{ config, pkgs, ... }: + +{ + imports = + [ # Include the results of the hardware scan. + ./hardware-configuration.nix + ]; + + services.openssh = { + enable = true; + settings = { + X11Forwarding = false; + PermitRootLogin = "no"; + PasswordAuthentication = false; + }; + openFirewall = true; + }; + + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + networking.hostName = "fractalus"; # Define your hostname. + + networking.networkmanager.enable = true; + + time.timeZone = "Europe/Stockholm"; + + i18n.defaultLocale = "en_US.UTF-8"; + + i18n.extraLocaleSettings = { + LC_ADDRESS = "sv_SE.UTF-8"; + LC_IDENTIFICATION = "sv_SE.UTF-8"; + LC_MEASUREMENT = "sv_SE.UTF-8"; + LC_MONETARY = "sv_SE.UTF-8"; + LC_NAME = "sv_SE.UTF-8"; + LC_NUMERIC = "sv_SE.UTF-8"; + LC_PAPER = "sv_SE.UTF-8"; + LC_TELEPHONE = "sv_SE.UTF-8"; + LC_TIME = "sv_SE.UTF-8"; + }; + + services.xserver = { + enable = true; + autoRepeatInterval = 35; + }; + + services.displayManager.ly.enable = true; + + services.xserver.xkb = { + layout = "se"; + variant = "nodeadkeys"; + options = "caps:escape"; + }; + + console.keyMap = "sv-latin1"; + + security.rtkit.enable = true; + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + }; + + users.users."ulve" = { + isNormalUser = true; + shell = pkgs.zsh; + openssh.authorizedKeys.keys = [ + # macbook + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICpiU4gStAtrJOBSkQA2YJh98fpWPpxWtWgwAGzVa/wc johansson.olov@gmail.com" + # phone + "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDHCIwXs/XPwWfdvaAbGYYX8jVu6CP8MhR7qFTaW2hu6Go4X1+1RTuPQ5RwZSj5pKf2Cyn33pY9KuzIChpKLs9uZrNS08BO6SrcjNtcRJrUOAIq8uKqHOXmq2x2PXbHm6vKp5MwRRanQ/Pa1O2P8kYq8HIBlviD5jUzOtEj8neBfJ/x49+27eHvJdwD2whSy0uty7TfNJi180sJGmepjL4SftGTwcevyvkm+koHj0aDRXxOlFhtrpsbdagg4UHe04ljiUF9urGcA3BSRTKuYbSl+MBsX+YxS97Vi4zT6oqwfh5RPzNZ8v3kZaN51jB369UWlAws0+OgGxIfwVUCf6j1 nixserve" + ]; + description = "ulve"; + extraGroups = [ "networkmanager" "wheel" ]; + }; + + programs.steam.enable = true; + programs.zsh.enable = true; + + security.pam.services.swaylock = {}; + security.polkit.enable = true; + + programs.firefox.enable = true; + programs.niri.enable = true; + + services.tailscale = { + enable = true; + openFirewall = true; + }; + + services.syncthing = { + enable = true; + user = "ulve"; + dataDir = "/home/ulve"; + configDir = "/home/ulve/.config/syncthing"; + openDefaultPorts = true; + settings.devices."macbook" = { + id = "U4YVRUT-JAAXHQ4-TA6FAGH-SO6Z7CI-KDFPRNG-UZYNXDK-6OQY7ZA-UBTZRQW"; + }; + settings.devices."phone" = { + id = "WXTP2PT-GW3C3EJ-JYYYXUT-VEKCAQV-NQTPQLI-TOMDAI3-CSUUHF5-6DH72AM"; + }; + settings.folders."xdnt7-iaqtd" = { + path = "/home/ulve/Vaults"; + devices = [ "macbook" ]; + }; + settings.folders."yrw8u-ut036" = { + path = "/home/ulve/Phone"; + devices = [ "phone" ]; + }; + }; + + services.upower.enable = true; + + xdg.portal = { + enable = true; + wlr.enable = true; + extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; + }; + + nixpkgs.config.allowUnfree = true; + nixpkgs.overlays = [ + (final: prev: { + steam = prev.steam.override { + extraArgs = "-cef-disable-gpu-compositing"; + }; + }) + ]; + + environment.systemPackages = with pkgs; [ + wget + curl + ]; + + fonts.packages = with pkgs; [ + nerd-fonts.jetbrains-mono + ]; + + nix.gc = { + automatic = true; + dates = "weekly"; + options = "--delete-older-than 14d"; + }; + nix.settings.auto-optimise-store = true; + nix.settings.experimental-features = ["nix-command" "flakes"]; + system.stateVersion = "26.05"; # Did you read the comment? +} diff --git a/hosts/fractalus/hardware-configuration.nix b/hosts/fractalus/hardware-configuration.nix new file mode 100644 index 0000000..22fc800 --- /dev/null +++ b/hosts/fractalus/hardware-configuration.nix @@ -0,0 +1,31 @@ +# Do not modify this file! It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/4f5c84b3-0437-4213-ab13-71068ef2ab4c"; + fsType = "ext4"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/B4B3-B2F0"; + fsType = "vfat"; + options = [ "fmask=0077" "dmask=0077" ]; + }; + + swapDevices = [ ]; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/hosts/fractalus/home.nix b/hosts/fractalus/home.nix new file mode 100644 index 0000000..0445558 --- /dev/null +++ b/hosts/fractalus/home.nix @@ -0,0 +1,35 @@ +{config, pkgs, herdr, ...}: +{ + imports = [ ../../modules/home-common.nix ../../modules/niri.nix ]; + + niri.useNoctalia = true; + + home.sessionVariables = { + NIXOS_OZONE_WL = "1"; + }; + + # ── Config files ───────────────────────────────────────────────────────────── + xdg.dataFile."applications/switch-wallpaper.desktop".source = ../../config/applications/switch-wallpaper.desktop; + xdg.dataFile."applications/signal.desktop".source = ../../config/applications/signal.desktop; + xdg.dataFile."applications/vesktop.desktop".source = ../../config/applications/vesktop.desktop; + xdg.dataFile."applications/steam.desktop".source = ../../config/applications/steam.desktop; + + # ── Packages ───────────────────────────────────────────────────────────────── + home.packages = with pkgs; [ + herdr.packages.${pkgs.system}.default # wallpaper manager + brave # browser + teams-for-linux # teams + + # terminal + foot # terminal + + # file managers + thunar # gui file manager + + # messaging + telegram-desktop + signal-desktop + vesktop + karere + ]; +}