diff --git a/configs/thilo-pc/hardware-configuration.nix b/configs/thilo-pc/hardware-configuration.nix index 499a169..23ce156 100644 --- a/configs/thilo-pc/hardware-configuration.nix +++ b/configs/thilo-pc/hardware-configuration.nix @@ -15,21 +15,24 @@ boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ]; boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-amd" ]; + boot.kernelModules = [ ]; boot.extraModulePackages = [ ]; fileSystems."/" = - { device = "/dev/disk/by-uuid/caa83e18-f2f2-46f9-8c27-0842c3051dc1"; - fsType = "btrfs"; - options = [ "subvol=@" ]; + { device = "/dev/disk/by-uuid/ecc9110a-4510-4a67-9227-021e146b59ca"; + fsType = "ext4"; }; fileSystems."/boot" = - { device = "/dev/disk/by-uuid/DADB-44A9"; + { device = "/dev/disk/by-uuid/230E-6756"; fsType = "vfat"; options = [ "fmask=0077" "dmask=0077" ]; }; + swapDevices = + [ { device = "/dev/disk/by-uuid/9ad760a9-34e4-4858-96e6-98c7a8e497a4"; } + ]; + fileSystems = { "/data" = { device = "/dev/disk/by-uuid/a13a2cfa-12af-463d-ae5c-d46c881fcdd6"; diff --git a/configs/thilo-pc/home.nix b/configs/thilo-pc/home.nix index 2eaea42..0a881f9 100644 --- a/configs/thilo-pc/home.nix +++ b/configs/thilo-pc/home.nix @@ -13,6 +13,8 @@ extraSpecialArgs = { inherit inputs; }; + backupFileExtension = ".bak"; + users.thilo = { imports = [ ./../../home-manager/modules/machine.nix ]; @@ -42,6 +44,25 @@ home.packages = with pkgs; [ lix ]; + + programs.distrobox = { + enable = true; + containers = { + arch = { + image = "quay.io/toolbx/arch-toolbox"; + additional_packages = "python python-pip nodejs"; + volume = "/etc/static/profiles/per-user:/etc/profiles/per-user:ro"; + replace = true; + }; + fedora = { + image = "quay.io/fedora/fedora-toolbox:41"; + additional_packages = "python python-pip code"; + home = "/home/thilo/.distrobox/fedora"; + pre_init_hooks = ''rpm --import https://packages.microsoft.com/keys/microsoft.asc && echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\nautorefresh=1\ntype=rpm-md\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" | sudo tee /etc/yum.repos.d/vscode.repo > /dev/null''; + replace = true; + }; + }; + }; }; }; } diff --git a/configs/thilo-pc/nixos.nix b/configs/thilo-pc/nixos.nix index 0bc6a6a..f139162 100644 --- a/configs/thilo-pc/nixos.nix +++ b/configs/thilo-pc/nixos.nix @@ -1,7 +1,12 @@ # 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’). -{ pkgs, options, ... }: +{ + pkgs, + inputs, + lib, + ... +}: { imports = [ @@ -9,6 +14,7 @@ ./hardware-configuration.nix ./../../nixos/common.nix ./../../nixos/builders.nix + inputs.jovian-nixos.nixosModules.jovian ]; # Bootloader. @@ -17,6 +23,7 @@ grub = { efiSupport = true; device = "nodev"; + useOSProber = true; }; efi.canTouchEfiVariables = true; }; @@ -43,14 +50,7 @@ layout = "us"; variant = ""; }; - # AI - # ollama = { - # enable = true; - # acceleration = "rocm"; - # }; - # open-webui = { - # enable = true; - # }; + envfs.enable = true; }; programs.kdeconnect.enable = true; @@ -167,36 +167,29 @@ hardware.bluetooth.enable = true; hardware.bluetooth.powerOnBoot = true; - programs.steam.gamescopeSession = { - enable = false; - env = { - WLR_RENDERER = "vulkan"; - DXVK_HDR = "1"; - STEAM_GAMESCOPE_VRR_SUPPORTED = "1"; - SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS = "0"; - ENABLE_GAMESCOPE_WSI = "1"; - WINE_FULLSCREEN_FSR = "1"; + specialisation = { + game-console.configuration = { + services.displayManager.sddm.enable = lib.mkForce false; + jovian = { + steam = { + autoStart = true; + enable = true; + user = "thilo"; + desktopSession = "plasma"; + }; + }; }; - args = [ - "-f" - "-F fsr" - "--rt" - "--adaptive-sync" - "-w 1920" - "-h 1080" - "-r 120" - "--hdr-enabled" - "--hdr-itm-enable" - "-O DP-3" - ]; }; programs.gamescope.enable = true; + networking.firewall.enable = false; + system.stateVersion = "24.11"; environment.systemPackages = with pkgs; [ kdePackages.skanpage + qt5.qtwayland ]; services.resolved = { diff --git a/flake.lock b/flake.lock index 1891ff5..ee7ffe2 100644 --- a/flake.lock +++ b/flake.lock @@ -1,25 +1,5 @@ { "nodes": { - "dagger": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1741791233, - "narHash": "sha256-NyezPcnXjuZSsIkZZr4rRuThs7u1sYhPU+PwgJjmFgU=", - "owner": "dagger", - "repo": "nix", - "rev": "a16cf50595de02fd3cfa644794e0983d8761d177", - "type": "github" - }, - "original": { - "owner": "dagger", - "repo": "nix", - "type": "github" - } - }, "flake-compat": { "locked": { "lastModified": 1733328505, @@ -50,24 +30,6 @@ "type": "github" } }, - "flake-utils_2": { - "inputs": { - "systems": "systems_2" - }, - "locked": { - "lastModified": 1710146030, - "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, "home-manager": { "inputs": { "nixpkgs": [ @@ -75,11 +37,11 @@ ] }, "locked": { - "lastModified": 1741955947, - "narHash": "sha256-2lbURKclgKqBNm7hVRtWh0A7NrdsibD0EaWhahUVhhY=", + "lastModified": 1743527271, + "narHash": "sha256-EuanEW1qqXZ2h0zJnq7uz8BoHbsgHgUrqWkCZHwZ9FA=", "owner": "nix-community", "repo": "home-manager", - "rev": "4e12151c9e014e2449e0beca2c0e9534b96a26b4", + "rev": "f4d9d1e2ad19d544a0a0cf3f8f371c6139c762e9", "type": "github" }, "original": { @@ -88,6 +50,26 @@ "type": "github" } }, + "jovian-nixos": { + "inputs": { + "nix-github-actions": "nix-github-actions", + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1743144043, + "narHash": "sha256-QlEk4Xm5KG0jW5Kus9teY3bhxdf0GUTexxTUCaJM5ms=", + "owner": "Jovian-Experiments", + "repo": "Jovian-NixOS", + "rev": "1c17514c8558886af0afc34b6c348c1f2ee9fd24", + "type": "github" + }, + "original": { + "owner": "Jovian-Experiments", + "ref": "development", + "repo": "Jovian-NixOS", + "type": "github" + } + }, "mmdoc": { "inputs": { "nixpkgs": [ @@ -110,31 +92,11 @@ "type": "github" } }, - "muse-sounds-manager": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1711493694, - "narHash": "sha256-u6hPaeOUsV/d/kBNo1vlG6X0/gHvTkHfCECH9pjFnV8=", - "owner": "thilobillerbeck", - "repo": "muse-sounds-manager-nix", - "rev": "06b0da28c54331d5af73efd2ebf264ce914e5936", - "type": "github" - }, - "original": { - "owner": "thilobillerbeck", - "repo": "muse-sounds-manager-nix", - "type": "github" - } - }, "nix-alien": { "inputs": { "flake-compat": "flake-compat", "nix-index-database": "nix-index-database", - "nixpkgs": "nixpkgs" + "nixpkgs": "nixpkgs_2" }, "locked": { "lastModified": 1742038403, @@ -150,6 +112,28 @@ "type": "github" } }, + "nix-github-actions": { + "inputs": { + "nixpkgs": [ + "jovian-nixos", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1729697500, + "narHash": "sha256-VFTWrbzDlZyFHHb1AlKRiD/qqCJIripXKiCSFS8fAOY=", + "owner": "zhaofengli", + "repo": "nix-github-actions", + "rev": "e418aeb728b6aa5ca8c5c71974e7159c2df1d8cf", + "type": "github" + }, + "original": { + "owner": "zhaofengli", + "ref": "matrix-name", + "repo": "nix-github-actions", + "type": "github" + } + }, "nix-index-database": { "inputs": { "nixpkgs": [ @@ -193,6 +177,43 @@ } }, "nixpkgs": { + "locked": { + "lastModified": 1739214665, + "narHash": "sha256-26L8VAu3/1YRxS8MHgBOyOM8xALdo6N0I04PgorE7UM=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "64e75cd44acf21c7933d61d7721e812eac1b5a0a", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-update": { + "inputs": { + "mmdoc": "mmdoc", + "nixpkgs": "nixpkgs_4", + "runtimeDeps": "runtimeDeps", + "treefmt-nix": "treefmt-nix" + }, + "locked": { + "lastModified": 1742857708, + "narHash": "sha256-eKl1y0COzmaD5tPw8MgmEBSsH46t4jmPbneulCLgG3M=", + "owner": "ryantm", + "repo": "nixpkgs-update", + "rev": "30ca7d55d05bfc99bfb04521ba09c26ccbec8625", + "type": "github" + }, + "original": { + "owner": "ryantm", + "repo": "nixpkgs-update", + "type": "github" + } + }, + "nixpkgs_2": { "locked": { "lastModified": 1741851582, "narHash": "sha256-cPfs8qMccim2RBgtKGF+x9IBCduRvd/N5F4nYpU0TVE=", @@ -208,34 +229,13 @@ "type": "github" } }, - "nixpkgs-update": { - "inputs": { - "mmdoc": "mmdoc", - "nixpkgs": "nixpkgs_3", - "runtimeDeps": "runtimeDeps", - "treefmt-nix": "treefmt-nix" - }, + "nixpkgs_3": { "locked": { - "lastModified": 1738838691, - "narHash": "sha256-0vSf4gjSg/MGTdI+b3ZOjdvVZR53MZWRyRUvREc16jo=", - "owner": "ryantm", - "repo": "nixpkgs-update", - "rev": "ca25a2a7aaa94faeb209bf488c201b34dddcda27", - "type": "github" - }, - "original": { - "owner": "ryantm", - "repo": "nixpkgs-update", - "type": "github" - } - }, - "nixpkgs_2": { - "locked": { - "lastModified": 1742069588, - "narHash": "sha256-C7jVfohcGzdZRF6DO+ybyG/sqpo1h6bZi9T56sxLy+k=", + "lastModified": 1743315132, + "narHash": "sha256-6hl6L/tRnwubHcA4pfUUtk542wn2Om+D4UnDhlDW9BE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c80f6a7e10b39afcc1894e02ef785b1ad0b0d7e5", + "rev": "52faf482a3889b7619003c0daec593a1912fddc1", "type": "github" }, "original": { @@ -245,7 +245,7 @@ "type": "github" } }, - "nixpkgs_3": { + "nixpkgs_4": { "locked": { "lastModified": 1672428209, "narHash": "sha256-eejhqkDz2cb2vc5VeaWphJz8UXNuoNoM8/Op8eWv2tQ=", @@ -259,32 +259,14 @@ "type": "indirect" } }, - "nixpkgs_4": { - "locked": { - "lastModified": 1726142289, - "narHash": "sha256-Jks8O42La+nm5AMTSq/PvM5O+fUAhIy0Ce1QYqLkyZ4=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "280db3decab4cbeb22a4599bd472229ab74d25e1", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "root": { "inputs": { - "dagger": "dagger", "home-manager": "home-manager", - "muse-sounds-manager": "muse-sounds-manager", + "jovian-nixos": "jovian-nixos", "nix-alien": "nix-alien", "nixgl": "nixgl", - "nixpkgs": "nixpkgs_2", - "nixpkgs-update": "nixpkgs-update", - "suyu": "suyu" + "nixpkgs": "nixpkgs_3", + "nixpkgs-update": "nixpkgs-update" } }, "runtimeDeps": { @@ -303,25 +285,6 @@ "type": "github" } }, - "suyu": { - "inputs": { - "flake-utils": "flake-utils_2", - "nixpkgs": "nixpkgs_4" - }, - "locked": { - "lastModified": 1726259531, - "narHash": "sha256-84sIM3Gd7e6PhjsBT2EiiAInJlKQsb4HpgUPTYr6eg0=", - "owner": "Noodlez1232", - "repo": "suyu-flake", - "rev": "e3ea28163248edaf5fe2a65f92e9ef3593bdc20a", - "type": "github" - }, - "original": { - "owner": "Noodlez1232", - "repo": "suyu-flake", - "type": "github" - } - }, "systems": { "locked": { "lastModified": 1681028828, @@ -337,21 +300,6 @@ "type": "github" } }, - "systems_2": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, "treefmt-nix": { "inputs": { "nixpkgs": [ diff --git a/flake.nix b/flake.nix index 5a13390..331b035 100644 --- a/flake.nix +++ b/flake.nix @@ -12,18 +12,12 @@ url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; - dagger.url = "github:dagger/nix"; - dagger.inputs.nixpkgs.follows = "nixpkgs"; nixgl = { url = "github:guibou/nixGL"; inputs.nixpkgs.follows = "nixpkgs"; }; - muse-sounds-manager = { - url = "github:thilobillerbeck/muse-sounds-manager-nix"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - suyu.url = "github:Noodlez1232/suyu-flake"; nix-alien.url = "github:thiagokokada/nix-alien"; + jovian-nixos.url = "github:Jovian-Experiments/Jovian-NixOS/development"; }; nixConfig = { @@ -61,7 +55,7 @@ }; in { - nixosConfigurations.thilo-pc = nixpkgs.lib.nixosSystem { + nixosConfigurations."thilo-pc" = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ home-manager.nixosModules.home-manager diff --git a/home-manager/modules/machine.nix b/home-manager/modules/machine.nix index a6b6ff7..b973870 100644 --- a/home-manager/modules/machine.nix +++ b/home-manager/modules/machine.nix @@ -32,6 +32,7 @@ with lib; ./../programs/hstr.nix ./../programs/thefuck.nix ./../programs/ssh.nix + ./../programs/vscode.nix ./../programs/zed.nix ./../../nix.nix ./packages.nix diff --git a/home-manager/modules/packages.nix b/home-manager/modules/packages.nix index 9117039..e15ea25 100644 --- a/home-manager/modules/packages.nix +++ b/home-manager/modules/packages.nix @@ -14,14 +14,6 @@ let in { config = { - nixpkgs.overlays = [ - (_: prev: { - quickemu = prev.quickemu.overrideAttrs (old: { - patches = (old.patches or [ ]) ++ [ ./../patches/quickemu.patch ]; - }); - }) - ]; - home.packages = with pkgs; [ @@ -66,19 +58,15 @@ in ddev act mkcert - # pulumi kubectl - pulumiPackages.pulumi-language-nodejs ncdu devenv inputs.nixpkgs-update.packages.x86_64-linux.nixpkgs-update - inputs.dagger.packages.x86_64-linux.dagger + nixpkgs-review unzip nil nixd unrar - # inputs.w17.packages.x86_64-linux.default - aichat nix-output-monitor nodePackages.pnpm npm-check-updates @@ -94,8 +82,6 @@ in php (lib.hiPrio phpPackages.composer) - - nixfmt-rfc-style ] ++ ( if (!config.machine.isGeneric) then @@ -141,10 +127,8 @@ in bottles protontricks heroic - (vscode.override { commandLineArgs = electronFlags; }) quickemu quickgui - trilium-desktop anki muse-sounds-manager jetbrains-toolbox @@ -155,7 +139,6 @@ in inkscape musescore obsidian - syncthingtray reaper yabridge torzu @@ -166,6 +149,7 @@ in telegram-desktop thunderbird gearlever + kdePackages.merkuro ] else [ ] diff --git a/home-manager/programs/firefox.nix b/home-manager/programs/firefox.nix index 06ffc31..e1f7c1a 100644 --- a/home-manager/programs/firefox.nix +++ b/home-manager/programs/firefox.nix @@ -1,7 +1,7 @@ { config, ... }: { - programs.firefox = { + programs.floorp = { enable = if (config.machine.isGraphical && !config.machine.isGeneric) then true else false; }; } diff --git a/home-manager/programs/syncthing.nix b/home-manager/programs/syncthing.nix index 2ab81c9..1bdb3d1 100644 --- a/home-manager/programs/syncthing.nix +++ b/home-manager/programs/syncthing.nix @@ -1,5 +1,5 @@ { services.syncthing = { - enable = true; + enable = false; }; } diff --git a/home-manager/programs/topgrade.nix b/home-manager/programs/topgrade.nix index 26d70ed..7b22e66 100644 --- a/home-manager/programs/topgrade.nix +++ b/home-manager/programs/topgrade.nix @@ -25,6 +25,7 @@ in "nix" "uv" ]; + nix_arguments = "--builders \"\""; }; git.repos = [ configPath ]; firmware = { diff --git a/home-manager/programs/vscode.nix b/home-manager/programs/vscode.nix new file mode 100644 index 0000000..39292b7 --- /dev/null +++ b/home-manager/programs/vscode.nix @@ -0,0 +1,5 @@ +{ + programs.vscode = { + enable = true; + }; +} diff --git a/nixos/common.nix b/nixos/common.nix index 0055cac..acac05d 100644 --- a/nixos/common.nix +++ b/nixos/common.nix @@ -111,6 +111,7 @@ in }; tailscale = { enable = true; + useRoutingFeatures = "both"; }; flatpak.enable = true; avahi = {