Compare commits
9 Commits
cb97c289d5
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| ec7ada6ade | |||
| de494a2a87 | |||
| 2b7d9a5b20 | |||
| b9ddd8eb78 | |||
| bd906ed581 | |||
| 0d498744d7 | |||
| 4102f034e6 | |||
| e3b28f3bfc | |||
| 5dc8fed824 |
@@ -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.
|
||||
|
||||
@@ -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
|
||||
# ];
|
||||
# };
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
134
nixos/home.nix
134
nixos/home.nix
@@ -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;
|
||||
}
|
||||
|
||||
11
nixos/hosts/TrudePC/default.nix
Normal file
11
nixos/hosts/TrudePC/default.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
# TrudePC-specific configuration
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
# Machine-specific settings
|
||||
networking.hostName = "TrudePC";
|
||||
}
|
||||
47
nixos/hosts/TrudePC/hardware-configuration.nix
Normal file
47
nixos/hosts/TrudePC/hardware-configuration.nix
Normal 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;
|
||||
}
|
||||
Reference in New Issue
Block a user