Compare commits

..

9 Commits

Author SHA1 Message Date
ec7ada6ade Format config 2026-01-27 17:38:40 +00:00
de494a2a87 Update home and configuration files for improved package management and user experience 2026-01-27 17:21:44 +00:00
2b7d9a5b20 Small tweaks 2026-01-27 13:16:21 +00:00
b9ddd8eb78 Add Wivrn as a service (like Steam) 2026-01-26 19:26:30 +00:00
bd906ed581 Add file compressor 2026-01-26 18:01:18 +00:00
0d498744d7 Fix Steam 2026-01-26 17:38:00 +00:00
4102f034e6 Improve rebuild script 2026-01-26 17:14:53 +00:00
e3b28f3bfc Add support for multiple machines 2026-01-26 17:04:26 +00:00
5dc8fed824 fix rebuild script 2026-01-26 16:48:41 +00:00
6 changed files with 225 additions and 88 deletions

View File

@@ -1,13 +1,17 @@
# Shared configuration across all machines
# Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
# and in the NixOS manual (accessible by running 'nixos-help').
# man configuration.nix
{ config, pkgs, inputs, ... }:
{
config,
pkgs,
inputs,
...
}:
{
imports = [
./hardware-configuration.nix
imports = [
inputs.home-manager.nixosModules.default
];
@@ -19,8 +23,6 @@
boot.kernelPackages = pkgs.linuxPackages_latest;
# Networking
networking.hostName = "TrudePC";
#networking.wireless.enable = true;
networking.networkmanager.enable = true;
time.timeZone = "Europe/Lisbon";
i18n.defaultLocale = "en_US.UTF-8";
@@ -66,13 +68,16 @@
users.users.trude = {
isNormalUser = true;
description = "TrudeEH";
extraGroups = [ "networkmanager" "wheel" ];
packages = with pkgs; [
extraGroups = [
"networkmanager"
"wheel"
];
packages = with pkgs; [ ];
};
home-manager = {
useUserPackages = true;
useGlobalPkgs = true;
backupFileExtension = "~";
extraSpecialArgs = { inherit inputs; };
users = {
@@ -101,7 +106,37 @@
programs.nix-ld.libraries = with pkgs; [
# Add missing dynamic libraries for unpackaged executables here.
];
nix.settings.experimental-features = [ "nix-command" "flakes" ];
nix.settings.experimental-features = [
"nix-command"
"flakes"
];
# Steam and VR
programs.steam = {
enable = true;
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
};
services.wivrn = {
enable = true;
openFirewall = true;
# Write information to /etc/xdg/openxr/1/active_runtime.json, VR applications
# will automatically read this and work with WiVRn (Note: This does not currently
# apply for games run in Valve's Proton)
defaultRuntime = true;
autoStart = true;
};
# Kernel patch for SteamVR performance issues on AMD GPUs
# boot.kernelPatches = [
# {
# name = "amdgpu-ignore-ctx-privileges";
# patch = pkgs.fetchpatch {
# name = "cap_sys_nice_begone.patch";
# url = "https://github.com/Frogging-Family/community-patches/raw/master/linux61-tkg/cap_sys_nice_begone.mypatch";
# hash = "sha256-Y3a0+x2xvHsfLax/uwycdJf3xLxvVfkfDVqjkxNaYEo=";
# };
# }
# ];
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.

View File

@@ -1,5 +1,5 @@
{
description = "Nixos config flake";
description = "Trude's NixOS configuration flake";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
@@ -10,13 +10,26 @@
};
};
outputs = { self, nixpkgs, ... }@inputs: {
nixosConfigurations.TrudePC = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs;};
modules = [
./configuration.nix
inputs.home-manager.nixosModules.default
];
outputs =
{ self, nixpkgs, ... }@inputs:
{
nixosConfigurations = {
TrudePC = nixpkgs.lib.nixosSystem {
specialArgs = { inherit inputs; };
modules = [
./configuration.nix
./hosts/TrudePC
];
};
# Add future machines here following the same pattern:
# MachineName = nixpkgs.lib.nixosSystem {
# specialArgs = { inherit inputs; };
# modules = [
# ./common.nix
# ./hosts/MachineName
# ];
# };
};
};
};
}

View File

@@ -1,33 +0,0 @@
# 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 = [ "xhci_pci" "nvme" "ahci" "usb_storage" "usbhid" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/e8428e24-2b69-46e4-80d2-328a3fa676d0";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/1AEE-516A";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
swapDevices =
[ { device = "/dev/disk/by-uuid/4c979cc9-574c-4e15-865f-bde3031ccafa"; }
];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View File

@@ -1,14 +1,19 @@
# man home-configuration.nix
{ config, pkgs, lib, ... }:
{
config,
pkgs,
lib,
...
}:
{
home.username = "trude";
home.homeDirectory = "/home/trude";
home.stateVersion = "25.11"; # Do not change after initial installation.
nixpkgs.config.allowUnfree = true;
home.packages = with pkgs; [
nerd-fonts.jetbrains-mono
nixfmt
bat
vscode
@@ -21,20 +26,27 @@
# VR / Games
bs-manager
steam
slimevr
wivrn
prismlauncher
# Gnome Extensions
gnomeExtensions.caffeine
gnomeExtensions.vitals
gnomeExtensions.appindicator
gnomeExtensions.blur-my-shell
# gnomeExtensions.blur-my-shell
# Gnome Apps
file-roller
commit
binary
resources
raider
gnome-podcasts
gnome-obfuscate
collision
switcheroo
wordbook
textpieces
# Scripts
(pkgs.writeShellScriptBin "colors" ''
@@ -63,24 +75,41 @@
(pkgs.writeShellScriptBin "rebuild" ''
#! /bin/bash
set -e
# ANSI color codes
GRAY='\e[90m'
ORANGE='\e[38;5;214m'
RESET='\e[0m'
pushd ~/dotfiles
git diff -U0 *.nix
echo "NixOS Rebuilding..."
sudo nixos-rebuild switch --flake ./nixos#TrudePC &> ~/.nixos-rebuild.log || ( cat ~/.nixos-rebuild.log | grep --color error && false )
echo "Activating home-manager..."
~/.local/state/home-manager/gcroots/current-home/activate
gen=$(nixos-rebuild list-generations | grep current)
echo "Pushing changes..."
git commit -am "$gen"
git push
sudo nix-collect-garbage --delete-older-than 15d
echo -e "''${ORANGE}NixOS Rebuilding...''${RESET}"
if ! sudo nixos-rebuild switch --flake ./nixos#TrudePC &> ~/.nixos-rebuild.log; then
cat ~/.nixos-rebuild.log | grep --color error
exit 1
fi
cat ~/.nixos-rebuild.log | grep --color error
echo -e "''${ORANGE}Cleaning up old generations...''${RESET}"
echo -e "''${GRAY}$(sudo nix-collect-garbage --delete-older-than 15d 2>&1)''${RESET}"
popd
'')
];
home.sessionVariables = {
EDITOR = "gnome-text-editor";
SSH_AUTH_SOCK = "$XDG_RUNTIME_DIR/gcr/.ssh";
};
home.file = {
"Templates/markdown.md".text = "";
"Templates/text.txt".text = "";
".config/vesktop/settings/settings.json" = {
source = ../vencord/settings.json;
force = true;
};
".config/vesktop/themes/trude.theme.css" = {
source = ../vencord/trude.theme.css;
force = true;
};
};
programs.git = {
@@ -127,7 +156,7 @@
};
};
};
programs.bash = {
enable = true;
shellAliases = {
@@ -200,19 +229,6 @@
'';
};
home.file = {
"Templates/markdown.md".text = "";
"Templates/text.txt".text = "";
".config/vesktop/settings/settings.json" = {
source = ../vencord/settings.json;
force = true;
};
".config/vesktop/themes/trude.theme.css" = {
source = ../vencord/trude.theme.css;
force = true;
};
};
dconf = {
enable = true;
settings = {
@@ -227,7 +243,10 @@
"org/gnome/desktop/input-sources" = {
show-all-sources = true;
sources = [
(lib.hm.gvariant.mkTuple [ "xkb" "us+altgr-intl" ])
(lib.hm.gvariant.mkTuple [
"xkb"
"us+altgr-intl"
])
];
xkb-options = [ "terminate:ctrl_alt_bksp" ];
};
@@ -261,8 +280,19 @@
dynamic-workspaces = true;
};
"org/gnome/shell" = {
disabled-extensions = [ "tiling-assistant@ubuntu.com" "ubuntu-dock@ubuntu.com" "ding@rastersoft.com" ];
enabled-extensions = [ "blur-my-shell@aunetx" "gsconnect@andyholmes.github.io" "appindicatorsupport@rgcjonas.gmail.com" "caffeine@patapon.info" "Vitals@CoreCoding.com" ];
disable-user-extensions = false;
disabled-extensions = [
"tiling-assistant@ubuntu.com"
"ubuntu-dock@ubuntu.com"
"ding@rastersoft.com"
];
enabled-extensions = [
"blur-my-shell@aunetx"
"gsconnect@andyholmes.github.io"
"appindicatorsupport@rgcjonas.gmail.com"
"caffeine@patapon.info"
"Vitals@CoreCoding.com"
];
};
"org/gnome/shell/extensions/dash-to-dock" = {
dash-max-icon-size = 32;
@@ -276,7 +306,7 @@
show-home = false;
};
"org/gnome/shell/world-clocks" = {
locations = [];
locations = [ ];
};
"org/gnome/Console" = {
use-system-font = false;
@@ -287,7 +317,24 @@
cell-width-scale = 1.0;
font = "JetBrainsMono NF 10";
foreground-color = "rgb(208,207,204)";
palette = [ "rgb(36,31,49)" "rgb(192,28,40)" "rgb(46,194,126)" "rgb(245,194,17)" "rgb(30,120,228)" "rgb(152,65,187)" "rgb(10,185,220)" "rgb(192,191,188)" "rgb(94,92,100)" "rgb(237,51,59)" "rgb(87,227,137)" "rgb(248,228,92)" "rgb(81,161,255)" "rgb(192,97,203)" "rgb(79,210,253)" "rgb(246,245,244)" ];
palette = [
"rgb(36,31,49)"
"rgb(192,28,40)"
"rgb(46,194,126)"
"rgb(245,194,17)"
"rgb(30,120,228)"
"rgb(152,65,187)"
"rgb(10,185,220)"
"rgb(192,191,188)"
"rgb(94,92,100)"
"rgb(237,51,59)"
"rgb(87,227,137)"
"rgb(248,228,92)"
"rgb(81,161,255)"
"rgb(192,97,203)"
"rgb(79,210,253)"
"rgb(246,245,244)"
];
use-system-font = false;
use-theme-colors = false;
};
@@ -333,7 +380,12 @@
};
"org/gnome/shell/extensions/vitals" = {
fixed-widths = false;
hot-sensors = [ "_processor_usage_" "_gpu#1_usage_" "_memory_usage_" "__temperature_max__" ];
hot-sensors = [
"_processor_usage_"
"_gpu#1_usage_"
"_memory_usage_"
"__temperature_max__"
];
icon-style = 1;
menu-centered = false;
position-in-panel = 0;
@@ -345,6 +397,18 @@
};
};
xdg = {
enable = true;
mimeApps = {
associations.added = {
"text/x-shellscript" = [ "org.gnome.TextEditor.desktop" ];
};
defaultApplications = {
"text/x-shellscript" = [ "org.gnome.TextEditor.desktop" ];
};
};
};
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
}

View File

@@ -0,0 +1,11 @@
# TrudePC-specific configuration
{ config, pkgs, ... }:
{
imports = [
./hardware-configuration.nix
];
# Machine-specific settings
networking.hostName = "TrudePC";
}

View File

@@ -0,0 +1,47 @@
# 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 = [
"xhci_pci"
"nvme"
"ahci"
"usbhid"
];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" = {
device = "/dev/disk/by-uuid/e8428e24-2b69-46e4-80d2-328a3fa676d0";
fsType = "ext4";
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/1AEE-516A";
fsType = "vfat";
options = [
"fmask=0077"
"dmask=0077"
];
};
swapDevices = [
{ device = "/dev/disk/by-uuid/4c979cc9-574c-4e15-865f-bde3031ccafa"; }
];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}