The Great Modularization

This commit is contained in:
wo2wz 2025-07-20 13:02:43 -04:00
parent e0b7d60a8d
commit eb279f1f65
34 changed files with 1356 additions and 1286 deletions

12
common/boot.nix Normal file
View file

@ -0,0 +1,12 @@
{ config, pkgs, ... }:
{
boot.loader = {
systemd-boot = {
enable = true;
editor = false;
configurationLimit = 5;
};
efi.canTouchEfiVariables = true;
};
}

13
common/default.nix Normal file
View file

@ -0,0 +1,13 @@
{ config, pkgs, ... }:
{
imports = [
./boot.nix
./home-manager.nix
./locales.nix
./networking.nix
./nix.nix
./swap.nix
./users.nix
];
}

301
common/desktop/default.nix Normal file
View file

@ -0,0 +1,301 @@
{ config, pkgs, ... }:
{
hardware = {
bluetooth = {
enable = true;
powerOnBoot = true;
};
# mesa graphics library
graphics.enable = true;
};
# audio
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
security.rtkit.enable = true;
# CUPS
services.printing.enable = true;
# enable native wayland in chromium/electron
environment.sessionVariables.NIXOS_OZONE_WL = "1";
environment.systemPackages = with pkgs; [
bitwarden
krita
gpu-screen-recorder-gtk
vlc
];
# hard coded since i don't know a way to easily check a package's existence
home-manager.users.wo2w.home.file = {
".local/share/applications/com.dec05eba.gpu_screen_recorder.desktop".text = ''
[Desktop Entry]
Categories=AudioVideo;Recorder;
Comment[en_US]=A gpu based screen recorder / streaming program
Comment=A gpu based screen recorder / streaming program
Exec=nvidia-offload gpu-screen-recorder-gtk
GenericName[en_US]=Screen recorder
GenericName=Screen recorder
Icon=com.dec05eba.gpu_screen_recorder
Keywords=gpu-screen-recorder;screen recorder;streaming;twitch;replay;
MimeType=
Name[en_US]=GPU Screen Recorder
Name=GPU Screen Recorder
Path=
StartupNotify=true
Terminal=false
TerminalOptions=
Type=Application
X-KDE-SubstituteUID=false
X-KDE-Username=
'';
".local/share/applications/vlc.desktop".text = ''
[Desktop Entry]
Categories=AudioVideo;Player;Recorder;
Comment[en_US]=Read, capture, broadcast your multimedia streams
Comment=Read, capture, broadcast your multimedia streams
Comment[af]=Lees, vang, send u multimediastrome
Comment[am]= :
Comment[ar]=اقرأ ، التقط ، و بث تدفقات وسائطك المتعددة
Comment[as_IN]= িিি , ,
Comment[ast]=Llei, captura y emiti fluxos multimedia
Comment[az]=Multinedia axınlarını oxudun, yazın və yayımlayın
Comment[be]=Чытаць, лавіць і трансляваць мультымедыйныя патокі
Comment[bg]=Прочитане, прихващане и излъчване на мултимедийни потоци.
Comment[bn_BD]= িিি , ি ি
Comment[br]=Lenn, enrollañ, skignañ ho froudoù liesvedia
Comment[ca]=Reproduïu, captureu i emeteu fluxos multimèdia
Comment[co]=Leghje, cattura, diffonde i vostri flussi multimedia
Comment[cs]=Čtěte, zachytávejte, a vysílejte své multimediální proudy
Comment[cy]=Darllen, cipio a darlledu dy ffrydiau aml-gyfrwng
Comment[da]=Læs, indspil, transmittér dine multimediestreams
Comment[de]=Wiedergabe, Aufnahme und Verbreitung Ihrer Multimedia-Streams
Comment[el]=Διαβάστε, καταγράψτε, μεταδώστε τα πολυμέσα σας
Comment[en_GB]=Read, capture, broadcast your multimedia streams
Comment[es]=Lea, capture y emita sus contenidos multimedia
Comment[es_MX]=Lea, capture, emita sus transmisiones multimedia
Comment[et]=Multimeediafailide ja -voogude taasesitamine, lindistamine ja edastamine
Comment[eu]=Irakurri, hartu, igorri zure multimedia jarioak
Comment[fi]=Toista, tallenna ja lähetä multimediaa
Comment[fr]=Lit, capture, diffuse vos flux multimédias
Comment[fy]=Jo multimedia-streams lêze, opnimme en útstjoere
Comment[ga]=Léigh, gabh, craol do shruthanna ilmheán
Comment[gd]=Leugh, glac is craol sruthan ioma-mheadhain
Comment[gl]=Lea, capture e emita os seus fluxos multimedia
Comment[he]=קריאה, לכידה ושידור של תזרימי המולטימדיה שלך
Comment[hi]= ि , ि , ि
Comment[hu]=Multimédia adatfolyamok olvasása, felvétele és továbbítása
Comment[id]=Baca, tangkap, pancarkan/broadcast aliran multimedia
Comment[ie]=Leer, registrar e difuser vor fluvies multimedia
Comment[is]=Lesa, taka upp og útvarpa margmiðlunarstreymi
Comment[it]=Leggi, cattura, trasmetti i tuoi flussi multimediali
Comment[ja]=
Comment[ka]=, ,
Comment[kab]=Ɣe, ef agdil, suffeɣ-d isuddam n umidya-ik
Comment[km]=
Comment[ko]=
Comment[lt]=Groti, įrašyti, siųsti įvairialypės terpės kūrinius
Comment[lv]=Lasiet, tveriet un apraidiet savas multimediju straumes
Comment[ml]=ി ിി , ,
Comment[mn]=Таны дамжуулгын урсгалыг унших, бичиж авах, цацах
Comment[mr]= िि , , ि
Comment[ms]=Baca, tangkap, siarkan strim multimedia anda
Comment[my]= ကက ကက
Comment[nb]=Innless, ta opp, og kringkast dine multimediastrømmer
Comment[ne]=, , ििि ि
Comment[nl]=Uw multimedia-streams lezen, opnemen en uitzenden
Comment[nn]=Spel av, ta opp og send ut multimedia
Comment[oc]=Legissètz, capturatz, difusatz vòstres fluxes multimèdia
Comment[pa]= ਿ ,
Comment[pl]=Odczytywanie, przechwytywanie i nadawanie strumieni multimedialnych
Comment[pt_BR]=Reproduza, capture e transmita os seus transmissões multimídia
Comment[pt_PT]=Ler, capturar, transmitir as suas emissões de multimédia
Comment[ro]=Citește, capturează, difuzează fluxurile multimedia
Comment[ru]=Универсальный проигрыватель видео и аудио
Comment[sc]=Leghe, catura, trasmite sos flussos multimediales tuos
Comment[sk]=Načítavajte, zaznamenávajte, vysielajte svoje multimediálne streamy
Comment[sl]=Berite, zajemite, oddajajte vaše večpredstavne pretoke
Comment[sq]=Lexoni, kapni dhe transmetoni transmetimet tuaja multimedia
Comment[sr]=Читај, хватај, емитуј своје мултимедијалне токове
Comment[sv]=Läs, fånga, sänd dina multimediaströmmar
Comment[te]= , ి ి ి
Comment[th]=
Comment[tr]=Çoklu ortam akışlarınızı okuyun, yakalayın, yayınlayın
Comment[uk]=Читання, захоплення та поширення ваших мультимедійних потоків
Comment[vi]=Đc, chp, phát các lung đa phương tin ca bn
Comment[wa]=Lét, egaloye, evoye vos floûs multimedia
Comment[zh_CN]=广
Comment[zh_TW]=
Exec=env QT_SCALE_FACTOR=1.4 __NV_PRIME_RENDER_OFFLOAD=1 __NV_PRIME_RENDER_OFFLOAD_PROVIDER=NVIDIA-G0 __GLX_VENDOR_LIBRARY_NAME=nvidia __VK_LAYER_NV_optimus=NVIDIA_only /nix/store/kd85dylgr1pj6h696qs553miaffhhp6n-vlc-3.0.21/bin/vlc --started-from-file %U
GenericName[en_US]=Media player
GenericName=Media player
GenericName[af]=Mediaspeler
GenericName[am]=
GenericName[ar]=مشغل الوسائط
GenericName[as_IN]=িি
GenericName[ast]=Reproductor multimedia
GenericName[az]=Media pleyeri
GenericName[be]=Медыяпрайгравальнік
GenericName[bg]=Медиен плейър
GenericName[bn_BD]=িি
GenericName[br]=Lenner mediaoù
GenericName[ca]=Reproductor multimèdia
GenericName[co]=Lettore multimedia
GenericName[cs]=Multimediální přehrávač
GenericName[cy]=Chwaraeydd cyfryngau
GenericName[da]=Medieafspiller
GenericName[de]=Medienwiedergabe
GenericName[el]=Αναπαραγωγός πολυμέσων
GenericName[en_GB]=Media player
GenericName[es]=Reproductor multimedia
GenericName[es_MX]=Reproductor multimedia
GenericName[et]=Meediaesitaja
GenericName[eu]=Multimedia irakurgailua
GenericName[fi]=Mediasoitin
GenericName[fr]=Lecteur multimédia
GenericName[fy]=Mediaspiler
GenericName[ga]=Seinnteoir meán
GenericName[gd]=Cluicheadair mheadhanan
GenericName[gl]=Reprodutor multimedia
GenericName[he]=נגן מדיה
GenericName[hi]=ि
GenericName[hu]=Médialejátszó
GenericName[id]=Pemutar Media
GenericName[ie]=Reproductor de media
GenericName[is]=Margmiðlunarspilari
GenericName[it]=Lettore multimediale
GenericName[ja]=
GenericName[ka]=
GenericName[kab]=Imeɣri n umidya
GenericName[km]=
GenericName[ko]=
GenericName[lt]=Leistuvė
GenericName[lv]=Mediju atskaņotājs
GenericName[ml]=ി
GenericName[mn]=Дамжуулга тоглуулагч
GenericName[mr]=ि
GenericName[ms]=Pemain media
GenericName[my]= က
GenericName[nb]=Mediespiller
GenericName[ne]=िि
GenericName[nl]=Mediaspeler
GenericName[nn]=Mediespelar
GenericName[oc]=Lector multimèdia
GenericName[pa]=ਿ
GenericName[pl]=Odtwarzacz multimedialny
GenericName[pt_BR]=Reprodutor de Mídias
GenericName[pt_PT]=Reprodutor de multimédia
GenericName[ro]=Redor media
GenericName[ru]=Медиаплеер
GenericName[sc]=Leghidore multimediale
GenericName[sk]=Prehrávač médií
GenericName[sl]=Predvajalnik predstavnih vsebin
GenericName[sq]=Lexues Media
GenericName[sr]=Медијски плејер
GenericName[sv]=Mediaspelare
GenericName[te]=
GenericName[th]=
GenericName[tr]=Ortam oynatıcısı
GenericName[uk]=Медіапрогравач
GenericName[vi]=Trình phát Media
GenericName[wa]=Djouweu d' media
GenericName[zh_CN]=
GenericName[zh_TW]=
Icon=vlc
Keywords=Player;Capture;DVD;Audio;Video;Server;Broadcast;
MimeType=x-content/video-vcd;x-content/video-svcd;x-content/video-dvd;x-content/audio-player;x-content/audio-cdda;video/x-theora+ogg;video/x-theora+ogg;video/x-ogm+ogg;video/x-ogm+ogg;video/x-nsv;video/x-ms-wmv;video/x-matroska;video/x-flv;video/x-flv;video/x-flv;video/x-flic;video/x-flic;video/x-anim;video/webm;video/vnd.rn-realvideo;video/vnd.mpegurl;video/vnd.avi;video/vnd.avi;video/vnd.avi;video/vnd.avi;video/vnd.avi;video/vnd.avi;video/quicktime;video/ogg;video/mpeg;video/mpeg;video/mpeg;video/mpeg;video/mpeg;video/mp4;video/mp4;video/mp4;video/mp2t;video/dv;video/3gpp2;video/3gpp2;video/3gpp;video/3gpp;video/3gpp;text/x-google-video-pointer;text/x-google-video-pointer;image/vnd.rn-realpix;audio/x-xm;audio/x-wavpack;audio/x-vorbis+ogg;audio/x-vorbis+ogg;audio/x-vorbis+ogg;audio/x-tta;audio/x-speex;audio/x-scpls;audio/x-scpls;audio/x-s3m;audio/x-musepack;audio/x-ms-wma;audio/x-ms-asx;audio/x-ms-asx;audio/x-ms-asx;audio/x-mpegurl;audio/x-mpegurl;audio/x-mod;audio/x-matroska;audio/x-it;audio/x-gsm;audio/x-ape;audio/x-aiff;audio/x-adpcm;audio/webm;audio/vnd.wave;audio/vnd.wave;audio/vnd.rn-realaudio;audio/vnd.rn-realaudio;audio/vnd.dts.hd;audio/vnd.dts;audio/ogg;audio/mpeg;audio/mpeg;audio/mpeg;audio/mpeg;audio/mpeg;audio/mp4;audio/mp4;audio/mp4;audio/mp2;audio/mp2;audio/midi;audio/flac;audio/flac;audio/basic;audio/AMR-WB;audio/AMR;audio/ac3;audio/aac;audio/aac;application/xspf+xml;application/x-shorten;application/x-quicktime-media-link;application/x-quicktime-media-link;application/x-matroska;application/vnd.rn-realmedia;application/vnd.rn-realmedia;application/vnd.ms-wpl;application/vnd.ms-asf;application/vnd.ms-asf;application/vnd.ms-asf;application/vnd.ms-asf;application/vnd.efi.iso;application/vnd.apple.mpegurl;application/vnd.adobe.flash.movie;application/sdp;application/ram;application/ogg;application/ogg;application/mxf;
Name[en_US]=VLC media player
Name=VLC media player
Name[af]=VLC-mediaspeler
Name[am]=
Name[ar]=مشغل الوسائط VLC
Name[as_IN]=VLC িি
Name[ast]=Reproductor multimedia VLC
Name[az]=VLC media pleyeri
Name[be]=Медыяпрайгравальнік VLC
Name[bg]=Медиен плейър VLC
Name[bn_BD]=VLC িি
Name[br]=VLC lenner mediaoù
Name[ca]=Reproductor multimèdia VLC
Name[co]=Lettore multimedia VLC
Name[cs]=Multimediální přehrávač VLC
Name[cy]=Chwaraeydd VLC
Name[da]=VLC media player
Name[de]=VLC Media Player
Name[el]=Αναπαραγωγός πολυμέσων VLC
Name[en_GB]=VLC media player
Name[es]=Reproductor multimedia VLC
Name[es_MX]=Reproductor multimedia VLC
Name[et]=VLC meediaesitaja
Name[eu]=VLC multimedia-erreproduzigailua
Name[fi]=VLC-mediasoitin
Name[fr]=Lecteur multimédia VLC
Name[fy]=VLC media player
Name[ga]=Seinnteoir meán VLC
Name[gd]=Cluicheadair mheadhanan VLC
Name[gl]=Reprodutor multimedia VLC
Name[he]=נגן המדיה VLC
Name[hi]= ि
Name[hu]=VLC médialejátszó
Name[id]=Pemutar media VLC
Name[ie]=Reproductor de media VLC
Name[is]=VLC spilarinn
Name[it]=Lettore multimediale VLC
Name[ja]=VLC
Name[ka]=VLC
Name[kab]=Imeɣri n umidya VLC
Name[km]= VLC
Name[ko]=VLC
Name[lt]=VLC leistuvė
Name[lv]=VLC mediju atskaņotājs
Name[ml]=VLC ി
Name[mn]=VLC дамжуулга тоглуулагч
Name[mr]=VLC ि
Name[ms]=Pemain media VLC
Name[my]=VLC က
Name[nb]=VLC media player
Name[ne]=VLC िि
Name[nl]=VLC media player
Name[nn]=VLC mediespelar
Name[oc]=Lector multimèdia VLC
Name[pa]=VLC ਿ
Name[pl]=VLC media player
Name[pt_BR]=Reprodutor de Mídias VLC
Name[pt_PT]=VLC media player
Name[ro]=Redor media VLC
Name[ru]=Медиаплеер VLC
Name[sc]=Leghidore multimediale VLC
Name[sk]=VLC media player
Name[sl]=Predvajalnik VLC
Name[sq]=VLC lexues media
Name[sr]=ВЛЦ медијски плејер
Name[sv]=VLC media player
Name[te]=VLC
Name[th]= VLC
Name[tr]=VLC ortam oynatıcısı
Name[uk]=Медіапрогравач VLC
Name[vi]=Trình phát media VLC
Name[wa]=Djouweu d' media VLC
Name[zh_CN]=VLC
Name[zh_TW]=VLC
Path=
StartupNotify=true
Terminal=false
TerminalOptions=
TryExec=/nix/store/kd85dylgr1pj6h696qs553miaffhhp6n-vlc-3.0.21/bin/vlc
Type=Application
Version=1.0
X-KDE-Protocols=ftp,http,https,mms,rtmp,rtsp,sftp,smb
X-KDE-SubstituteUID=false
X-KDE-Username=
'';
};
}

18
common/home-manager.nix Normal file
View file

@ -0,0 +1,18 @@
{ inputs, config, ... }:
{
imports = [ inputs.home-manager.nixosModules.home-manager ];
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
backupFileExtension = "bak";
extraSpecialArgs = { inherit inputs; };
users.wo2w = {
home = {
username = "wo2w";
homeDirectory = "/home/wo2w";
};
};
};
}

26
common/locales.nix Normal file
View file

@ -0,0 +1,26 @@
{ config, pkgs, ... }:
{
i18n = {
defaultLocale = "en_US.UTF-8";
extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
};
};
time.timeZone = "America/New_York";
# x11 keymap
services.xserver.xkb = {
layout = "us";
variant = "";
};
}

8
common/networking.nix Normal file
View file

@ -0,0 +1,8 @@
{ hostName, config, ... }:
{
networking = {
networkmanager.enable = true;
hostName = "${hostName}";
};
}

18
common/nix.nix Normal file
View file

@ -0,0 +1,18 @@
{ config, pkgs, ... }:
{
nix = {
channel.enable = false;
gc.automatic = true;
optimise = {
automatic = true;
dates = [ "weekly" ];
};
settings = {
experimental-features = [ "nix-command" "flakes" ];
download-buffer-size = 524288000;
};
};
nixpkgs.config.allowUnfree = true;
}

8
common/swap.nix Normal file
View file

@ -0,0 +1,8 @@
{ config, ... }:
{
swapDevices = [ {
device = "/var/swapfile";
size = 16*1024;
} ];
}

12
common/users.nix Normal file
View file

@ -0,0 +1,12 @@
{ hostName, config, ... }:
{
users.users.wo2w = {
isNormalUser = true;
description = "${hostName}";
extraGroups = [ "networkmanager" "wheel" ];
# make new user logins (iso/vm/new machine) use a default password
initialPassword = "1234";
};
}

View file

@ -1,260 +0,0 @@
# 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, lib, pkgs, ... }:
{
# pin the latest nvidia driver that works because they are so awesome in releasing an update that broke opengl for my 1050ti
hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.mkDriver {
version = "570.144";
sha256_64bit = "sha256-wLjX7PLiC4N2dnS6uP7k0TI9xVWAJ02Ok0Y16JVfO+Y=";
sha256_aarch64 = "sha256-6kk2NLeKvG88QH7/YIrDXW4sgl324ddlAyTybvb0BP0=";
openSha256 = "sha256-PATw6u6JjybD2OodqbKrvKdkkCFQPMNPjrVYnAZhK/E=";
settingsSha256 = "sha256-VcCa3P/v3tDRzDgaY+hLrQSwswvNhsm93anmOhUymvM=";
persistencedSha256 = "sha256-hx4w4NkJ0kN7dkKDiSOsdJxj9+NZwRsZEuhqJ5Rq3nM=";
};
# enable yubikey auth
security.pam.services = {
login.u2fAuth = true;
sudo.u2fAuth = true;
sddm = {
u2fAuth = true;
kwallet.enable = true;
};
kde.u2fAuth = true;
# kde popups
polkit-1.u2fAuth = true;
};
# Bootloader.
boot.loader = {
systemd-boot = {
enable = true;
editor = false;
configurationLimit = 5;
};
efi.canTouchEfiVariables = true;
};
# swap
swapDevices = [ {
device = "/var/swapfile";
size = 16*1024;
} ];
# systemd timers
systemd.timers = {
"autoUpgrade" = {
wantedBy = [ "timers.target" ];
timerConfig = {
OnCalendar = "*-*-* 3:30:00";
Unit = "autoUpgrade.service";
};
};
# "rsync" = {
# wantedBy = [ "timers.target" ];
# timerConfig = {
# OnCalendar = "*-*-* 4:00:00";
# Unit = "rsync.service";
# };
# };
};
systemd.services = {
# "rsync" = {
# script = '' ${pkgs.bash}/bin/bash /home/wo2w/Scripts/rsync.sh '';
# serviceConfig = {
# Type = "oneshot";
# User = "root";
# };
# };
"autoUpgrade" = {
wants = [ "network-online.target" ];
after = [ "network-online.target" ];
script = '' /usr/bin/env -C /etc/nixos ${pkgs.nix}/bin/nix flake update '';
serviceConfig = {
Type = "oneshot";
User = "root";
};
};
};
# nix config
nix = {
gc.automatic = true;
optimise.automatic = true;
settings = {
experimental-features = [ "nix-command" "flakes" ];
download-buffer-size = 524288000;
};
};
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
# Enable networking
networking = {
networkmanager.enable = true;
hostName = "Ares"; # Define your hostname.
};
# Set your time zone.
time.timeZone = "America/New_York";
# Location (real)
location = {
latitude = 71.8260798;
longitude = 91.0350983;
};
# Select internationalisation properties.
i18n = {
defaultLocale = "en_US.UTF-8";
extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
};
};
# Enable the X11 windowing system.
# You can disable this if you're only using the Wayland session.
services.xserver.enable = true;
# Enable the KDE Plasma Desktop Environment.
services.displayManager.sddm = {
enable = true;
wayland = {
enable = true;
compositor = "kwin";
};
};
services.desktopManager.plasma6.enable = true;
programs.niri.enable = true;
# Configure keymap in X11
services.xserver.xkb = {
layout = "us";
variant = "";
};
# Enable sound with pipewire. + bluetooth
hardware.bluetooth.enable = true;
hardware.bluetooth.powerOnBoot = true;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
# libratbag for mouse config
services.ratbagd.enable = true;
users.users.wo2w = {
isNormalUser = true;
description = "Ares";
extraGroups = [ "networkmanager" "wheel" ];
};
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
# utilities
wget
xautomation
cameractrls
kdePackages.ksshaskpass
# for niri
fuzzel
mako
waybar
xwayland-satellite
# gamemode
# adb
# ratbagd
# graphical applications
# adb
# steam
# kdeconnect
];
# exclude some kde packages
environment.plasma6.excludePackages = with pkgs.kdePackages; [
elisa
discover
konsole
khelpcenter
krdp
];
programs = {
adb.enable = true;
gamemode.enable = true;
kdeconnect.enable = true;
steam = {
enable = true;
extraCompatPackages = [ pkgs.proton-ge-bin ];
};
};
stylix = {
enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/tokyo-night-dark.yaml";
targets = {
fontconfig.enable = false;
font-packages.enable = false;
};
fonts.sizes = {
applications = 12;
desktop = 10;
popups = 10;
terminal = 12;
};
};
services = {
# CUPS for printing
printing.enable = true;
};
# enable native wayland in chromium/electron
environment.sessionVariables.NIXOS_OZONE_WL = "1";
# ssh
programs.ssh = {
startAgent = true;
enableAskPassword = true;
extraConfig = "
Host gameserver
Hostname 192.168.2.221
Port 22
User wo2w
IdentityFile /home/wo2w/.ssh/ssh-key
";
};
environment.variables = {
SSH_ASKPASS_REQUIRE = "prefer";
};
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "24.11"; # Did you read the comment?
}

30
flake.lock generated
View file

@ -144,11 +144,11 @@
]
},
"locked": {
"lastModified": 1752391422,
"narHash": "sha256-ReX0NG6nIAEtQQjLqeu1vUU2jjZuMlpymNtb4VQYeus=",
"lastModified": 1752780124,
"narHash": "sha256-5dn97vIYxn6VozKePOQSDxVCsrl38nDdMJXx86KIJH0=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "c26266790678863cce8e7460fdbf0d80991b1906",
"rev": "c718918222bdb104397762dea67e6b397a7927fe",
"type": "github"
},
"original": {
@ -160,11 +160,11 @@
},
"nixos-hardware": {
"locked": {
"lastModified": 1752048960,
"narHash": "sha256-gATnkOe37eeVwKKYCsL+OnS2gU4MmLuZFzzWCtaKLI8=",
"lastModified": 1752666637,
"narHash": "sha256-P8J72psdc/rWliIvp8jUpoQ6qRDlVzgSDDlgkaXQ0Fw=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "7ced9122cff2163c6a0212b8d1ec8c33a1660806",
"rev": "d1bfa8f6ccfb5c383e1eba609c1eb67ca24ed153",
"type": "github"
},
"original": {
@ -176,11 +176,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1752162966,
"narHash": "sha256-3MxxkU8ZXMHXcbFz7UE4M6qnIPTYGcE/7EMqlZNnVDE=",
"lastModified": 1752620740,
"narHash": "sha256-f3pO+9lg66mV7IMmmIqG4PL3223TYMlnlw+pnpelbss=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "10e687235226880ed5e9f33f1ffa71fe60f2638a",
"rev": "32a4e87942101f1c9f9865e04dc3ddb175f5f32e",
"type": "github"
},
"original": {
@ -208,11 +208,11 @@
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1751984180,
"narHash": "sha256-LwWRsENAZJKUdD3SpLluwDmdXY9F45ZEgCb0X+xgOL0=",
"lastModified": 1752687322,
"narHash": "sha256-RKwfXA4OZROjBTQAl9WOZQFm7L8Bo93FQwSJpAiSRvo=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "9807714d6944a957c2e036f84b0ff8caf9930bc0",
"rev": "6e987485eb2c77e5dcc5af4e3c70843711ef9251",
"type": "github"
},
"original": {
@ -325,11 +325,11 @@
"tinted-zed": "tinted-zed"
},
"locked": {
"lastModified": 1752373703,
"narHash": "sha256-kJEYMaZYMBDDjUBLwI4u+OEwRwYaumKjrhCVFu2zfMs=",
"lastModified": 1752752240,
"narHash": "sha256-qSQ6oIJeIb5MX6LRszgqQYB46FOHemKrvrdzf2u+uxM=",
"owner": "nix-community",
"repo": "stylix",
"rev": "8d803bb9de0a762299142ffbe6c969c904f70b92",
"rev": "40f40bda4269f6e5490c25975069dc61aede6d52",
"type": "github"
},
"original": {

View file

@ -1,5 +1,5 @@
{
description = "GraalVM Java 17/21, Spotify, and Home Manager";
description = "all this does now is pass inputs to other modules and set the system variable";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
@ -41,45 +41,18 @@
stylix,
...
}@inputs:
let
let
system = "x86_64-linux";
# define overlays
nixpkgs-pin-overlay = final: prev: {
nixpkgs-pin = nixpkgs-pin.legacyPackages.${prev.system};
};
overlay-unstable = final: prev: {
unstable = import nixpkgs-unstable {
inherit system;
config.allowUnfree = true;
nixosSystem =
hostName:
nixpkgs.lib.nixosSystem {
specialArgs = { inherit hostName inputs system; };
modules = [ ./hosts/${hostName} ];
};
};
in {
nixosConfigurations.Ares = nixpkgs.lib.nixosSystem {
inherit system;
modules = [
# make nixpkgs-pin and unstable available in configuration.nix
({ config, pkgs, ... }: { nixpkgs.overlays = [ nixpkgs-pin-overlay ]; })
({ config, pkgs, ... }: { nixpkgs.overlays = [ overlay-unstable ]; })
./hardware-configuration.nix
./configuration.nix
nixos-hardware.nixosModules.dell-xps-15-9570-nvidia
home-manager.nixosModules.home-manager
stylix.nixosModules.stylix
{
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
users.wo2w = import ./home.nix;
backupFileExtension = "bak";
extraSpecialArgs = { inherit inputs; };
};
}
];
nixosConfigurations = {
Swordsmachine = nixosSystem "Swordsmachine";
Earthmover = nixosSystem "Earthmover";
};
};
}

974
home.nix
View file

@ -1,974 +0,0 @@
{ config, pkgs, inputs, ... }:
{
# link the configuration file in current directory to the specified location in home directory
# home.file.".config/i3/wallpaper.jpg".source = ./wallpaper.jpg;
# link all files in `./scripts` to `~/.config/i3/scripts`
# home.file.".config/i3/scripts" = {
# source = ./scripts;
# recursive = true; # link recursively
# executable = true; # make all files executable
# };
imports = [
inputs.spicetify-nix.homeManagerModules.default
inputs.plasma-manager.homeManagerModules.plasma-manager
];
home.packages = with pkgs; [
vlc
krita
gpu-screen-recorder-gtk
bitwarden
heroic
qtscrcpy
(prismlauncher.override {
# Change Java runtimes available to Prism Launcher
jdks = [
jdk8
unstable.graalvmPackages.graalvm-oracle_17
nixpkgs-pin.graalvm-ce
];
})
grayjay
# kitty
# vesktop
# spicetify
];
stylix = {
enable = true;
targets = {
spicetify.enable = false;
vesktop.enable = false;
vscode.enable = false;
librewolf.profileNames = [ "wo2w" ];
fontconfig.enable = false;
font-packages.enable = false;
};
};
programs = {
bash = {
enable = true;
shellAliases = {
switch = "sudo nixos-rebuild switch";
boot = "sudo nixos-rebuild boot";
};
};
git = {
enable = true;
userName = "wo2wz";
userEmail = "189177184+wo2wz@users.noreply.github.com";
extraConfig = {
init.defaultBranch = "main";
safe.directory = "/etc/nixos";
};
};
librewolf = {
enable = true;
nativeMessagingHosts = [ pkgs.kdePackages.plasma-browser-integration ];
settings = {
"identity.fxaccounts.enabled" = true;
"clipboard.autocopy" = false;
};
policies = {
DefaultDownloadDirectory = "\${home}/Downloads";
ExtensionSettings = with builtins; let
extension = shortId: uuid: {
name = uuid;
value = {
install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/${shortId}/latest.xpi";
installation_mode = "normal_installed";
};
};
in
listToAttrs [
(extension "bitwarden-password-manager" "{446900e4-71c2-419f-a6a7-df9c091e268b}")
(extension "clearurls" "{74145f27-f039-47ce-a470-a662b129930a}")
(extension "darkreader" "addon@darkreader.org")
(extension "decentraleyes" "jid1-BoFifL9Vbdl2zQ@jetpack")
(extension "happy-bonobo-disable-webrtc" "jid1-5Fs7iTLscUaZBgwr@jetpack")
(extension "enhancer-for-youtube" "enhancerforyoutube@maximerf.addons.mozilla.org")
(extension "private-relay" "private-relay@firefox.com")
(extension "indie-wiki-buddy" "{cb31ec5d-c49a-4e5a-b240-16c767444f62}")
(extension "libredirect" "7esoorv3@alefvanoon.anonaddy.me")
(extension "plasma-integration" "plasma-browser-integration@kde.org")
(extension "privacy-badger17" "jid1-MnnxcxisBPnSXQ@jetpack")
(extension "return-youtube-dislikes" "{762f9885-5a13-4abd-9c77-433dcd38b8fd}")
(extension "ublock-origin" "uBlock0@raymondhill.net")
];
};
profiles.wo2w = {
search = {
force = true;
default = "ddg";
privateDefault = "ddg";
};
settings = {
"browser.urlbar.suggest.history" = false;
"browser.urlbar.suggest.bookmark" = false;
"browser.urlbar.suggest.openpage" = false;
"browser.urlbar.suggest.topsites" = false;
"browser.urlbar.suggest.recentsearches" = false;
"browser.startup.page" = 3;
"network.trr.mode" = 2;
"network.trr.uri" = "https://base.dns.mullvad.net/dns-query";
"network.trr.custom_uri" = "https://base.dns.mullvad.net/dns-query";
"privacy.clearHistory.formdata" = true;
"privacy.clearHistory.siteSettings" = false;
"privacy.clearOnShutdown.cache" = false;
"privacy.clearOnShutdown.cookies" = false;
"privacy.clearOnShutdown.sessions" = false;
"privacy.donottrackheader.enabled" = true;
"widget.use-xdg-desktop-portal.file-picker" = 1;
};
};
};
plasma = {
enable = true;
workspace.cursor = {
theme = "Bibata-Modern-Classic";
size = 24;
};
};
spicetify =
let
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.system};
in {
enable = true;
theme = {
name = "Tokyo";
src = pkgs.fetchFromGitHub {
owner = "evening-hs";
repo = "Spotify-Tokyo-Night-Theme";
rev = "d88ca06eaeeb424d19e0d6f7f8e614e4bce962be";
hash = "sha256-cLj9v8qtHsdV9FfzV2Qf4pWO8AOBXu51U/lUMvdEXAk=";
};
};
colorScheme = "Night";
enabledExtensions = with spicePkgs.extensions; [
adblock
hidePodcasts
shuffle
volumePercentage
history
];
};
kitty = {
enable = true;
shellIntegration.enableBashIntegration = true;
settings = {
tab_bar_style = "powerline";
tab_powerline_style = "round";
confirm_os_window_close = -1;
};
};
vesktop = {
enable = true;
vencord.settings = {
themeLinks = [ "https://catppuccin.github.io/discord/dist/catppuccin-mocha.theme.css" ];
enabledThemes = [ "catppuccin-mocha.theme.css" ];
plugins = {
ChatInputButtonAPI.enabled = true;
CommandsAPI.enabled = true;
DynamicImageModalAPI.enabled = true;
MessageAccessoriesAPI.enabled = true;
MessageEventsAPI.enabled = true;
MessagePopoverAPI.enabled = true;
MessageUpdaterAPI.enabled = true;
UserSettingsAPI.enabled = true;
BetterGifPicker.enabled = true;
BetterUploadButton.enabled = true;
BiggerStreamPreview.enabled = true;
CallTimer = {
enabled = true;
format = "stopwatch";
};
ClearURLs.enabled = true;
CopyFileContents.enabled = true;
CrashHandler.enabled = true;
Experiments = {
enabled = true;
toolbarDevMenu = false;
};
FakeNitro = {
enabled = true;
enableStickerBypass = true;
enableStreamQualityBypass = true;
enableEmojiBypass = true;
transformEmojis = true;
transformStickers = true;
transformCompoundSentence = false;
stickerSize = 160;
hyperLinkText = "{{NAME}}";
useHyperLinks = true;
disableEmbedPermissionCheck = false;
emojiSize = 48;
};
FixYoutubeEmbeds.enabled = true;
MessageLogger = {
enabled = true;
collapseDeleted = false;
deleteStyle = "overlay";
ignoreBots = false;
ignoreSelf = false;
ignoreUsers = "";
ignoreChannels = "";
ignoreGuilds = "";
logEdits = true;
logDeletes = true;
inlineEdits = true;
};
OpenInApp = {
enabled = true;
spotify = true;
steam = true;
epic = false;
tidal = false;
itunes = false;
};
PreviewMessage.enabled = true;
RelationshipNotifier = {
enabled = true;
notices = true;
offlineRemovals = true;
friends = true;
friendRequestCancels = true;
servers = true;
groups = true;
};
ReplaceGoogleSearch = {
enabled = true;
customEngineName = "DuckDuckGo";
customEngineURL = "https://duckduckgo.com/&q=";
};
ReverseImageSearch.enabled = true;
ServerInfo.enabled = true;
ShowHiddenChannels = {
enabled = true;
showMode = 0;
hideUnreads = true;
defaultAllowedUsersAndRolesDropdownState = true;
};
SpotifyCrack = {
enabled = true;
noSpotifyAutoPause = true;
keepSpotifyActivityOnIdle = false;
};
Translate = {
enabled = true;
showChatBarButton = true;
service = "google";
deeplApiKey = "";
autoTranslate = false;
showAutoTranslateTooltip = true;
};
ValidReply.enabled = true;
ValidUser.enabled = true;
VoiceDownload.enabled = true;
VoiceMessages.enabled = true;
VolumeBooster = {
enabled = true;
multiplier = 5;
};
WebKeybinds.enabled = true;
WebScreenShareFixes.enabled = true;
YoutubeAdblock.enabled = true;
BadgeAPI.enabled = true;
NoTrack = {
enabled = true;
disableAnalytics = true;
};
WebContextMenus = {
enabled = true;
addBack = true;
};
Settings = {
enabled = true;
settingsLocation = "aboveNitro";
};
SupportHelper.enabled = true;
DisableDeepLinks.enabled = true;
};
};
};
vscode = {
enable = true;
package = pkgs.vscodium;
profiles.wo2w = {
extensions = with pkgs.vscode-extensions; [
# theme
enkia.tokyo-night
# language extensions
jnoortheen.nix-ide
];
};
};
};
home.file = {
# symlink for plasma browser integration native messaging in librewolf
".librewolf/native-messaging-hosts".source = "${pkgs.kdePackages.plasma-browser-integration}/lib/mozilla/native-messaging-hosts";
# pam-u2f config
".config/Yubico/u2f_keys".text = "wo2w:aKYaBOjCImRE58XcYJCqxpY0vABEIYWbk2Lvx4UqnN3M/A1uyr3boV4FZLkfxUwmlfBdMDm4caSaX1/SrNoNgw==,zruscj30G6zEt8xmlvTXBBEKIzg+fPCSq/FvhZO3X0HyP2uBLsWSXqCyRKXM8H9F/GJwJWBpyoHj/dhkxj7eZg==,es256,+presence";
# ~/.local/share/applications
"com.dec05eba.gpu_screen_recorder.desktop" = {
target = ".local/share/applications/com.dec05eba.gpu_screen_recorder.desktop";
text = ''
[Desktop Entry]
Categories=AudioVideo;Recorder;
Comment[en_US]=A gpu based screen recorder / streaming program
Comment=A gpu based screen recorder / streaming program
Exec=nvidia-offload gpu-screen-recorder-gtk
GenericName[en_US]=Screen recorder
GenericName=Screen recorder
Icon=com.dec05eba.gpu_screen_recorder
Keywords=gpu-screen-recorder;screen recorder;streaming;twitch;replay;
MimeType=
Name[en_US]=GPU Screen Recorder
Name=GPU Screen Recorder
Path=
StartupNotify=true
Terminal=false
TerminalOptions=
Type=Application
X-KDE-SubstituteUID=false
X-KDE-Username=
'';
};
"kitty.desktop" = {
target = ".local/share/applications/kitty.desktop";
text = ''
[Desktop Entry]
Version=1.0
Type=Application
Name=kitty
GenericName=Terminal emulator
Comment=Fast, feature-rich, GPU based terminal
TryExec=kitty
StartupNotify=true
Exec=kitty
Icon=kitty
Categories=System;TerminalEmulator;
X-TerminalArgExec=--
X-TerminalArgTitle=--title
X-TerminalArgAppId=--class
X-TerminalArgDir=--working-directory
X-TerminalArgHold=--hold
'';
};
"librewolf.desktop" = {
target = ".local/share/applications/librewolf.desktop";
text = ''
[Desktop Entry]
Actions=new-private-window;new-window;profile-manager-window
Categories=Network;WebBrowser
Exec=nvidia-offload librewolf --name librewolf %U
GenericName=Web Browser
Icon=librewolf
MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;x-scheme-handler/http;x-scheme-handler/https
Name=LibreWolf
StartupNotify=true
StartupWMClass=librewolf
Terminal=false
Type=Application
Version=1.4
[Desktop Action new-private-window]
Exec=nvidia-offload librewolf --private-window %U
Name=New Private Window
[Desktop Action new-window]
Exec=nvidia-offload librewolf --new-window %U
Name=New Window
[Desktop Action profile-manager-window]
Exec=nvidia-offload librewolf --ProfileManager
Name=Profile Manager
'';
};
"steam.desktop" = {
target = ".local/share/applications/steam.desktop";
text = ''
[Desktop Entry]
Name=Steam
Comment=Application for managing and playing games on Steam
Comment[pt_BR]=Aplicativo para jogar e gerenciar jogos no Steam
Comment[bg]=Приложение за ръководене и пускане на игри в Steam
Comment[cs]=Aplikace pro spravování a hraní her ve službě Steam
Comment[da]=Applikation til at håndtere og spille spil på Steam
Comment[nl]=Applicatie voor het beheer en het spelen van games op Steam
Comment[fi]=Steamin pelien hallintaan ja pelaamiseen tarkoitettu sovellus
Comment[fr]=Application de gestion et d'utilisation des jeux sur Steam
Comment[de]=Anwendung zum Verwalten und Spielen von Spielen auf Steam
Comment[el]=Εφαρμογή διαχείρισης παιχνιδιών στο Steam
Comment[hu]=Alkalmazás a Steames játékok futtatásához és kezeléséhez
Comment[it]=Applicazione per la gestione e l'esecuzione di giochi su Steam
Comment[ja]=Steam
Comment[ko]=Steam
Comment[no]=Program for å administrere og spille spill på Steam
Comment[pt_PT]=Aplicação para organizar e executar jogos no Steam
Comment[pl]=Aplikacja do zarządzania i uruchamiania gier na platformie Steam
Comment[ro]=Aplicație pentru administrarea și jucatul jocurilor pe Steam
Comment[ru]=Приложение для игр и управления играми в Steam
Comment[es]=Aplicación para administrar y ejecutar juegos en Steam
Comment[sv]=Ett program för att hantera samt spela spel på Steam
Comment[zh_CN]= Steam
Comment[zh_TW]= Steam
Comment[th]= Steam
Comment[tr]=Steam üzerinden oyun oynama ve düzenleme uygulaması
Comment[uk]=Програма для керування іграми та запуску ігор у Steam
Comment[vi]=ng dng đ qun lý và chơi trò chơi trên Steam
Exec=nvidia-offload steam %U
Icon=steam
Terminal=false
Type=Application
Categories=Network;FileTransfer;Game;
MimeType=x-scheme-handler/steam;x-scheme-handler/steamlink;
Actions=Store;Community;Library;Servers;Screenshots;News;Settings;BigPicture;Friends;
PrefersNonDefaultGPU=true
X-KDE-RunOnDiscreteGpu=true
[Desktop Action Store]
Name=Store
Name[pt_BR]=Loja
Name[bg]=Магазин
Name[cs]=Obchod
Name[da]=Butik
Name[nl]=Winkel
Name[fi]=Kauppa
Name[fr]=Magasin
Name[de]=Shop
Name[el]=ΚΑΤΑΣΤΗΜΑ
Name[hu]=Áruház
Name[it]=Negozio
Name[ja]=
Name[ko]=
Name[no]=Butikk
Name[pt_PT]=Loja
Name[pl]=Sklep
Name[ro]=Magazin
Name[ru]=Магазин
Name[es]=Tienda
Name[sv]=Butik
Name[zh_CN]=
Name[zh_TW]=
Name[th]=
Name[tr]=Mağaza
Name[uk]=Крамниця
Name[vi]=Ca hàng
Exec=nvidia-offload steam steam://store
[Desktop Action Community]
Name=Community
Name[pt_BR]=Comunidade
Name[bg]=Общност
Name[cs]=Komunita
Name[da]=Fællesskab
Name[nl]=Community
Name[fi]=Yhteisö
Name[fr]=Communauté
Name[de]=Community
Name[el]=Κοινότητα
Name[hu]=Közösség
Name[it]=Comunità
Name[ja]=
Name[ko]=
Name[no]=Samfunn
Name[pt_PT]=Comunidade
Name[pl]=Społeczność
Name[ro]=Comunitate
Name[ru]=Сообщество
Name[es]=Comunidad
Name[sv]=Gemenskap
Name[zh_CN]=
Name[zh_TW]=
Name[th]=
Name[tr]=Topluluk
Name[uk]=Спільнота
Name[vi]=Cng đng
Exec=nvidia-offload steam steam://url/SteamIDControlPage
[Desktop Action Library]
Name=Library
Name[pt_BR]=Biblioteca
Name[bg]=Библиотека
Name[cs]=Knihovna
Name[da]=Bibliotek
Name[nl]=Bibliotheek
Name[fi]=Kokoelma
Name[fr]=Bibliothèque
Name[de]=Bibliothek
Name[el]=Συλλογή
Name[hu]=Könyvtár
Name[it]=Libreria
Name[ja]=
Name[ko]=
Name[no]=Bibliotek
Name[pt_PT]=Biblioteca
Name[pl]=Biblioteka
Name[ro]=Colecţie
Name[ru]=Библиотека
Name[es]=Biblioteca
Name[sv]=Bibliotek
Name[zh_CN]=
Name[zh_TW]=
Name[th]=
Name[tr]=Kütüphane
Name[uk]=Бібліотека
Name[vi]=Thư vin
Exec=nvidia-offload steam steam://open/games
[Desktop Action Servers]
Name=Servers
Name[pt_BR]=Servidores
Name[bg]=Сървъри
Name[cs]=Servery
Name[da]=Servere
Name[nl]=Servers
Name[fi]=Palvelimet
Name[fr]=Serveurs
Name[de]=Server
Name[el]=Διακομιστές
Name[hu]=Szerverek
Name[it]=Server
Name[ja]=
Name[ko]=
Name[no]=Tjenere
Name[pt_PT]=Servidores
Name[pl]=Serwery
Name[ro]=Servere
Name[ru]=Серверы
Name[es]=Servidores
Name[sv]=Servrar
Name[zh_CN]=
Name[zh_TW]=
Name[th]=
Name[tr]=Sunucular
Name[uk]=Сервери
Name[vi]=Máy ch
Exec=nvidia-offload steam steam://open/servers
[Desktop Action Screenshots]
Name=Screenshots
Name[pt_BR]=Capturas de tela
Name[bg]=Снимки
Name[cs]=Snímky obrazovky
Name[da]=Skærmbilleder
Name[nl]=Screenshots
Name[fi]=Kuvankaappaukset
Name[fr]=Captures d'écran
Name[de]=Screenshots
Name[el]=Φωτογραφίες
Name[hu]=Képernyőmentések
Name[it]=Screenshot
Name[ja]=
Name[ko]=
Name[no]=Skjermbilder
Name[pt_PT]=Capturas de ecrã
Name[pl]=Zrzuty ekranu
Name[ro]=Capturi de ecran
Name[ru]=Скриншоты
Name[es]=Capturas
Name[sv]=Skärmdumpar
Name[zh_CN]=
Name[zh_TW]=
Name[th]=
Name[tr]=Ekran Görüntüleri
Name[uk]=Скріншоти
Name[vi]=nh chp
Exec=nvidia-offload steam steam://open/screenshots
[Desktop Action News]
Name=News
Name[pt_BR]=Notícias
Name[bg]=Новини
Name[cs]=Zprávy
Name[da]=Nyheder
Name[nl]=Nieuws
Name[fi]=Uutiset
Name[fr]=Actualités
Name[de]=Neuigkeiten
Name[el]=Νέα
Name[hu]=Hírek
Name[it]=Notizie
Name[ja]=
Name[ko]=
Name[no]=Nyheter
Name[pt_PT]=Novidades
Name[pl]=Aktualności
Name[ro]=Știri
Name[ru]=Новости
Name[es]=Noticias
Name[sv]=Nyheter
Name[zh_CN]=
Name[zh_TW]=
Name[th]=
Name[tr]=Haberler
Name[uk]=Новини
Name[vi]=Tin tc
Exec=nvidia-offload steam steam://open/news
[Desktop Action Settings]
Name=Settings
Name[pt_BR]=Configurações
Name[bg]=Настройки
Name[cs]=Nastavení
Name[da]=Indstillinger
Name[nl]=Instellingen
Name[fi]=Asetukset
Name[fr]=Paramètres
Name[de]=Einstellungen
Name[el]=Ρυθμίσεις
Name[hu]=Beállítások
Name[it]=Impostazioni
Name[ja]=
Name[ko]=
Name[no]=Innstillinger
Name[pt_PT]=Definições
Name[pl]=Ustawienia
Name[ro]=Setări
Name[ru]=Настройки
Name[es]=Parámetros
Name[sv]=Inställningar
Name[zh_CN]=
Name[zh_TW]=
Name[th]=
Name[tr]=Ayarlar
Name[uk]=Налаштування
Name[vi]=Thiết lp
Exec=nvidia-offload steam steam://open/settings
[Desktop Action BigPicture]
Name=Big Picture
Exec=nvidia-offload steam steam://open/bigpicture
[Desktop Action Friends]
Name=Friends
Name[pt_BR]=Amigos
Name[bg]=Приятели
Name[cs]=Přátelé
Name[da]=Venner
Name[nl]=Vrienden
Name[fi]=Kaverit
Name[fr]=Amis
Name[de]=Freunde
Name[el]=Φίλοι
Name[hu]=Barátok
Name[it]=Amici
Name[ja]=
Name[ko]=
Name[no]=Venner
Name[pt_PT]=Amigos
Name[pl]=Znajomi
Name[ro]=Prieteni
Name[ru]=Друзья
Name[es]=Amigos
Name[sv]=Vänner
Name[zh_CN]=
Name[zh_TW]=
Name[th]=
Name[tr]=Arkadaşlar
Name[uk]=Друзі
Name[vi]=Bn bè
Exec=nvidia-offload steam steam://open/friends
'';
};
"vesktop.desktop" = {
target = ".local/share/applications/vesktop.desktop";
text = ''
[Desktop Entry]
Categories=Network;InstantMessaging;Chat
Comment[en_US]=
Comment=
Exec=nvidia-offload vesktop %U
GenericName[en_US]=Internet Messenger
GenericName=Internet Messenger
Icon=vesktop
Keywords=discord;vencord;electron;chat
Name[en_US]=Vesktop
Name=Vesktop
Path=
StartupNotify=true
StartupWMClass=Vesktop
Terminal=false
TerminalOptions=
Type=Application
Version=1.4
X-KDE-SubstituteUID=false
X-KDE-Username=
MimeType=x-scheme-handler/discord;
'';
};
"vlc.desktop" = {
target = ".local/share/applications/vlc.desktop";
text = ''
[Desktop Entry]
Categories=AudioVideo;Player;Recorder;
Comment[en_US]=Read, capture, broadcast your multimedia streams
Comment=Read, capture, broadcast your multimedia streams
Comment[af]=Lees, vang, send u multimediastrome
Comment[am]= :
Comment[ar]=اقرأ ، التقط ، و بث تدفقات وسائطك المتعددة
Comment[as_IN]= িিি , ,
Comment[ast]=Llei, captura y emiti fluxos multimedia
Comment[az]=Multinedia axınlarını oxudun, yazın və yayımlayın
Comment[be]=Чытаць, лавіць і трансляваць мультымедыйныя патокі
Comment[bg]=Прочитане, прихващане и излъчване на мултимедийни потоци.
Comment[bn_BD]= িিি , ি ি
Comment[br]=Lenn, enrollañ, skignañ ho froudoù liesvedia
Comment[ca]=Reproduïu, captureu i emeteu fluxos multimèdia
Comment[co]=Leghje, cattura, diffonde i vostri flussi multimedia
Comment[cs]=Čtěte, zachytávejte, a vysílejte své multimediální proudy
Comment[cy]=Darllen, cipio a darlledu dy ffrydiau aml-gyfrwng
Comment[da]=Læs, indspil, transmittér dine multimediestreams
Comment[de]=Wiedergabe, Aufnahme und Verbreitung Ihrer Multimedia-Streams
Comment[el]=Διαβάστε, καταγράψτε, μεταδώστε τα πολυμέσα σας
Comment[en_GB]=Read, capture, broadcast your multimedia streams
Comment[es]=Lea, capture y emita sus contenidos multimedia
Comment[es_MX]=Lea, capture, emita sus transmisiones multimedia
Comment[et]=Multimeediafailide ja -voogude taasesitamine, lindistamine ja edastamine
Comment[eu]=Irakurri, hartu, igorri zure multimedia jarioak
Comment[fi]=Toista, tallenna ja lähetä multimediaa
Comment[fr]=Lit, capture, diffuse vos flux multimédias
Comment[fy]=Jo multimedia-streams lêze, opnimme en útstjoere
Comment[ga]=Léigh, gabh, craol do shruthanna ilmheán
Comment[gd]=Leugh, glac is craol sruthan ioma-mheadhain
Comment[gl]=Lea, capture e emita os seus fluxos multimedia
Comment[he]=קריאה, לכידה ושידור של תזרימי המולטימדיה שלך
Comment[hi]= ि , ि , ि
Comment[hu]=Multimédia adatfolyamok olvasása, felvétele és továbbítása
Comment[id]=Baca, tangkap, pancarkan/broadcast aliran multimedia
Comment[ie]=Leer, registrar e difuser vor fluvies multimedia
Comment[is]=Lesa, taka upp og útvarpa margmiðlunarstreymi
Comment[it]=Leggi, cattura, trasmetti i tuoi flussi multimediali
Comment[ja]=
Comment[ka]=, ,
Comment[kab]=Ɣe, ef agdil, suffeɣ-d isuddam n umidya-ik
Comment[km]=
Comment[ko]=
Comment[lt]=Groti, įrašyti, siųsti įvairialypės terpės kūrinius
Comment[lv]=Lasiet, tveriet un apraidiet savas multimediju straumes
Comment[ml]=ി ിി , ,
Comment[mn]=Таны дамжуулгын урсгалыг унших, бичиж авах, цацах
Comment[mr]= िि , , ि
Comment[ms]=Baca, tangkap, siarkan strim multimedia anda
Comment[my]= ကက ကက
Comment[nb]=Innless, ta opp, og kringkast dine multimediastrømmer
Comment[ne]=, , ििि ि
Comment[nl]=Uw multimedia-streams lezen, opnemen en uitzenden
Comment[nn]=Spel av, ta opp og send ut multimedia
Comment[oc]=Legissètz, capturatz, difusatz vòstres fluxes multimèdia
Comment[pa]= ਿ ,
Comment[pl]=Odczytywanie, przechwytywanie i nadawanie strumieni multimedialnych
Comment[pt_BR]=Reproduza, capture e transmita os seus transmissões multimídia
Comment[pt_PT]=Ler, capturar, transmitir as suas emissões de multimédia
Comment[ro]=Citește, capturează, difuzează fluxurile multimedia
Comment[ru]=Универсальный проигрыватель видео и аудио
Comment[sc]=Leghe, catura, trasmite sos flussos multimediales tuos
Comment[sk]=Načítavajte, zaznamenávajte, vysielajte svoje multimediálne streamy
Comment[sl]=Berite, zajemite, oddajajte vaše večpredstavne pretoke
Comment[sq]=Lexoni, kapni dhe transmetoni transmetimet tuaja multimedia
Comment[sr]=Читај, хватај, емитуј своје мултимедијалне токове
Comment[sv]=Läs, fånga, sänd dina multimediaströmmar
Comment[te]= , ి ి ి
Comment[th]=
Comment[tr]=Çoklu ortam akışlarınızı okuyun, yakalayın, yayınlayın
Comment[uk]=Читання, захоплення та поширення ваших мультимедійних потоків
Comment[vi]=Đc, chp, phát các lung đa phương tin ca bn
Comment[wa]=Lét, egaloye, evoye vos floûs multimedia
Comment[zh_CN]=广
Comment[zh_TW]=
Exec=env QT_SCALE_FACTOR=1.4 __NV_PRIME_RENDER_OFFLOAD=1 __NV_PRIME_RENDER_OFFLOAD_PROVIDER=NVIDIA-G0 __GLX_VENDOR_LIBRARY_NAME=nvidia __VK_LAYER_NV_optimus=NVIDIA_only /nix/store/kd85dylgr1pj6h696qs553miaffhhp6n-vlc-3.0.21/bin/vlc --started-from-file %U
GenericName[en_US]=Media player
GenericName=Media player
GenericName[af]=Mediaspeler
GenericName[am]=
GenericName[ar]=مشغل الوسائط
GenericName[as_IN]=িি
GenericName[ast]=Reproductor multimedia
GenericName[az]=Media pleyeri
GenericName[be]=Медыяпрайгравальнік
GenericName[bg]=Медиен плейър
GenericName[bn_BD]=িি
GenericName[br]=Lenner mediaoù
GenericName[ca]=Reproductor multimèdia
GenericName[co]=Lettore multimedia
GenericName[cs]=Multimediální přehrávač
GenericName[cy]=Chwaraeydd cyfryngau
GenericName[da]=Medieafspiller
GenericName[de]=Medienwiedergabe
GenericName[el]=Αναπαραγωγός πολυμέσων
GenericName[en_GB]=Media player
GenericName[es]=Reproductor multimedia
GenericName[es_MX]=Reproductor multimedia
GenericName[et]=Meediaesitaja
GenericName[eu]=Multimedia irakurgailua
GenericName[fi]=Mediasoitin
GenericName[fr]=Lecteur multimédia
GenericName[fy]=Mediaspiler
GenericName[ga]=Seinnteoir meán
GenericName[gd]=Cluicheadair mheadhanan
GenericName[gl]=Reprodutor multimedia
GenericName[he]=נגן מדיה
GenericName[hi]=ि
GenericName[hu]=Médialejátszó
GenericName[id]=Pemutar Media
GenericName[ie]=Reproductor de media
GenericName[is]=Margmiðlunarspilari
GenericName[it]=Lettore multimediale
GenericName[ja]=
GenericName[ka]=
GenericName[kab]=Imeɣri n umidya
GenericName[km]=
GenericName[ko]=
GenericName[lt]=Leistuvė
GenericName[lv]=Mediju atskaņotājs
GenericName[ml]=ി
GenericName[mn]=Дамжуулга тоглуулагч
GenericName[mr]=ि
GenericName[ms]=Pemain media
GenericName[my]= က
GenericName[nb]=Mediespiller
GenericName[ne]=िि
GenericName[nl]=Mediaspeler
GenericName[nn]=Mediespelar
GenericName[oc]=Lector multimèdia
GenericName[pa]=ਿ
GenericName[pl]=Odtwarzacz multimedialny
GenericName[pt_BR]=Reprodutor de Mídias
GenericName[pt_PT]=Reprodutor de multimédia
GenericName[ro]=Redor media
GenericName[ru]=Медиаплеер
GenericName[sc]=Leghidore multimediale
GenericName[sk]=Prehrávač médií
GenericName[sl]=Predvajalnik predstavnih vsebin
GenericName[sq]=Lexues Media
GenericName[sr]=Медијски плејер
GenericName[sv]=Mediaspelare
GenericName[te]=
GenericName[th]=
GenericName[tr]=Ortam oynatıcısı
GenericName[uk]=Медіапрогравач
GenericName[vi]=Trình phát Media
GenericName[wa]=Djouweu d' media
GenericName[zh_CN]=
GenericName[zh_TW]=
Icon=vlc
Keywords=Player;Capture;DVD;Audio;Video;Server;Broadcast;
MimeType=x-content/video-vcd;x-content/video-svcd;x-content/video-dvd;x-content/audio-player;x-content/audio-cdda;video/x-theora+ogg;video/x-theora+ogg;video/x-ogm+ogg;video/x-ogm+ogg;video/x-nsv;video/x-ms-wmv;video/x-matroska;video/x-flv;video/x-flv;video/x-flv;video/x-flic;video/x-flic;video/x-anim;video/webm;video/vnd.rn-realvideo;video/vnd.mpegurl;video/vnd.avi;video/vnd.avi;video/vnd.avi;video/vnd.avi;video/vnd.avi;video/vnd.avi;video/quicktime;video/ogg;video/mpeg;video/mpeg;video/mpeg;video/mpeg;video/mpeg;video/mp4;video/mp4;video/mp4;video/mp2t;video/dv;video/3gpp2;video/3gpp2;video/3gpp;video/3gpp;video/3gpp;text/x-google-video-pointer;text/x-google-video-pointer;image/vnd.rn-realpix;audio/x-xm;audio/x-wavpack;audio/x-vorbis+ogg;audio/x-vorbis+ogg;audio/x-vorbis+ogg;audio/x-tta;audio/x-speex;audio/x-scpls;audio/x-scpls;audio/x-s3m;audio/x-musepack;audio/x-ms-wma;audio/x-ms-asx;audio/x-ms-asx;audio/x-ms-asx;audio/x-mpegurl;audio/x-mpegurl;audio/x-mod;audio/x-matroska;audio/x-it;audio/x-gsm;audio/x-ape;audio/x-aiff;audio/x-adpcm;audio/webm;audio/vnd.wave;audio/vnd.wave;audio/vnd.rn-realaudio;audio/vnd.rn-realaudio;audio/vnd.dts.hd;audio/vnd.dts;audio/ogg;audio/mpeg;audio/mpeg;audio/mpeg;audio/mpeg;audio/mpeg;audio/mp4;audio/mp4;audio/mp4;audio/mp2;audio/mp2;audio/midi;audio/flac;audio/flac;audio/basic;audio/AMR-WB;audio/AMR;audio/ac3;audio/aac;audio/aac;application/xspf+xml;application/x-shorten;application/x-quicktime-media-link;application/x-quicktime-media-link;application/x-matroska;application/vnd.rn-realmedia;application/vnd.rn-realmedia;application/vnd.ms-wpl;application/vnd.ms-asf;application/vnd.ms-asf;application/vnd.ms-asf;application/vnd.ms-asf;application/vnd.efi.iso;application/vnd.apple.mpegurl;application/vnd.adobe.flash.movie;application/sdp;application/ram;application/ogg;application/ogg;application/mxf;
Name[en_US]=VLC media player
Name=VLC media player
Name[af]=VLC-mediaspeler
Name[am]=
Name[ar]=مشغل الوسائط VLC
Name[as_IN]=VLC িি
Name[ast]=Reproductor multimedia VLC
Name[az]=VLC media pleyeri
Name[be]=Медыяпрайгравальнік VLC
Name[bg]=Медиен плейър VLC
Name[bn_BD]=VLC িি
Name[br]=VLC lenner mediaoù
Name[ca]=Reproductor multimèdia VLC
Name[co]=Lettore multimedia VLC
Name[cs]=Multimediální přehrávač VLC
Name[cy]=Chwaraeydd VLC
Name[da]=VLC media player
Name[de]=VLC Media Player
Name[el]=Αναπαραγωγός πολυμέσων VLC
Name[en_GB]=VLC media player
Name[es]=Reproductor multimedia VLC
Name[es_MX]=Reproductor multimedia VLC
Name[et]=VLC meediaesitaja
Name[eu]=VLC multimedia-erreproduzigailua
Name[fi]=VLC-mediasoitin
Name[fr]=Lecteur multimédia VLC
Name[fy]=VLC media player
Name[ga]=Seinnteoir meán VLC
Name[gd]=Cluicheadair mheadhanan VLC
Name[gl]=Reprodutor multimedia VLC
Name[he]=נגן המדיה VLC
Name[hi]= ि
Name[hu]=VLC médialejátszó
Name[id]=Pemutar media VLC
Name[ie]=Reproductor de media VLC
Name[is]=VLC spilarinn
Name[it]=Lettore multimediale VLC
Name[ja]=VLC
Name[ka]=VLC
Name[kab]=Imeɣri n umidya VLC
Name[km]= VLC
Name[ko]=VLC
Name[lt]=VLC leistuvė
Name[lv]=VLC mediju atskaņotājs
Name[ml]=VLC ി
Name[mn]=VLC дамжуулга тоглуулагч
Name[mr]=VLC ि
Name[ms]=Pemain media VLC
Name[my]=VLC က
Name[nb]=VLC media player
Name[ne]=VLC िि
Name[nl]=VLC media player
Name[nn]=VLC mediespelar
Name[oc]=Lector multimèdia VLC
Name[pa]=VLC ਿ
Name[pl]=VLC media player
Name[pt_BR]=Reprodutor de Mídias VLC
Name[pt_PT]=VLC media player
Name[ro]=Redor media VLC
Name[ru]=Медиаплеер VLC
Name[sc]=Leghidore multimediale VLC
Name[sk]=VLC media player
Name[sl]=Predvajalnik VLC
Name[sq]=VLC lexues media
Name[sr]=ВЛЦ медијски плејер
Name[sv]=VLC media player
Name[te]=VLC
Name[th]= VLC
Name[tr]=VLC ortam oynatıcısı
Name[uk]=Медіапрогравач VLC
Name[vi]=Trình phát media VLC
Name[wa]=Djouweu d' media VLC
Name[zh_CN]=VLC
Name[zh_TW]=VLC
Path=
StartupNotify=true
Terminal=false
TerminalOptions=
TryExec=/nix/store/kd85dylgr1pj6h696qs553miaffhhp6n-vlc-3.0.21/bin/vlc
Type=Application
Version=1.0
X-KDE-Protocols=ftp,http,https,mms,rtmp,rtsp,sftp,smb
X-KDE-SubstituteUID=false
X-KDE-Username=
'';
};
};
home = {
stateVersion = "25.05";
username = "wo2w";
homeDirectory = "/home/wo2w";
};
}

View file

@ -0,0 +1,22 @@
{ config, ... }:
{
imports = [
./hardware-configuration.nix
../../common
../../common/desktop
../../modules/common
../../modules/nixos
];
home-manager.users.wo2w = {
imports = [
../../modules/home
];
home.stateVersion = "25.05";
};
system.stateVersion = "25.05";
}

View file

@ -0,0 +1,42 @@
{ inputs, config, pkgs, ... }:
{
imports = [
./hardware-configuration.nix
../../common
../../common/desktop
../../modules/common
../../modules/nixos
inputs.nixos-hardware.nixosModules.dell-xps-15-9570-nvidia
];
# pin the latest nvidia driver that works because they are so awesome in releasing an update that broke opengl for my 1050ti
hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.mkDriver {
version = "570.144";
sha256_64bit = "sha256-wLjX7PLiC4N2dnS6uP7k0TI9xVWAJ02Ok0Y16JVfO+Y=";
sha256_aarch64 = "sha256-6kk2NLeKvG88QH7/YIrDXW4sgl324ddlAyTybvb0BP0=";
openSha256 = "sha256-PATw6u6JjybD2OodqbKrvKdkkCFQPMNPjrVYnAZhK/E=";
settingsSha256 = "sha256-VcCa3P/v3tDRzDgaY+hLrQSwswvNhsm93anmOhUymvM=";
persistencedSha256 = "sha256-hx4w4NkJ0kN7dkKDiSOsdJxj9+NZwRsZEuhqJ5Rq3nM=";
};
environment.systemPackages = with pkgs; [
# necessary to make the camera not look like the sun
cameractrls
# for key replacement macros
xautomation
wget
];
home-manager.users.wo2w = {
imports = [
../../modules/home
];
home.stateVersion = "25.05";
};
system.stateVersion = "24.11";
}

View file

@ -0,0 +1,8 @@
{ config, ... }:
{
imports = [
./stylix.nix
./yubikey.nix
];
}

32
modules/common/stylix.nix Normal file
View file

@ -0,0 +1,32 @@
{ inputs, config, pkgs, ... }:
{
imports = [ inputs.stylix.nixosModules.stylix ];
stylix = {
enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/tokyo-night-dark.yaml";
targets = {
fontconfig.enable = false;
font-packages.enable = false;
};
fonts.sizes = {
applications = 12;
desktop = 10;
popups = 10;
terminal = 12;
};
};
home-manager.users.wo2w.stylix = {
enable = true;
targets = {
spicetify.enable = false;
vesktop.enable = false;
vscode.enable = false;
fontconfig.enable = false;
font-packages.enable = false;
librewolf.profileNames = [ "wo2w" ];
};
};
}

View file

@ -0,0 +1,12 @@
{ config, ... }:
{
# enable yubikey u2f for use with pam
security.pam.services = {
sudo.u2fAuth = true;
polkit-1.u2fAuth = if config.services.desktopManager.plasma6.enable then true else false;
};
# yubikey config
home-manager.users.wo2w.home.file.".config/Yubico/u2f_keys".text = "wo2w:aKYaBOjCImRE58XcYJCqxpY0vABEIYWbk2Lvx4UqnN3M/A1uyr3boV4FZLkfxUwmlfBdMDm4caSaX1/SrNoNgw==,zruscj30G6zEt8xmlvTXBBEKIzg+fPCSq/FvhZO3X0HyP2uBLsWSXqCyRKXM8H9F/GJwJWBpyoHj/dhkxj7eZg==,es256,+presence";
}

15
modules/home/bash.nix Normal file
View file

@ -0,0 +1,15 @@
{ config, ... }:
{
programs = {
bash = {
enable = true;
shellAliases = {
switch = "sudo nixos-rebuild switch";
boot = "sudo nixos-rebuild boot";
};
};
kitty.shellIntegration.enableBashIntegration = if config.programs.kitty.enable then true else false;
};
}

15
modules/home/default.nix Normal file
View file

@ -0,0 +1,15 @@
{ config, ... }:
{
imports = [
./bash.nix
./desktop-files.nix
./git.nix
./kitty.nix
./librewolf.nix
./plasma.nix
./spicetify.nix
./vesktop.nix
./vscodium.nix
];
}

View file

@ -0,0 +1,379 @@
{ config, pkgs, ... }:
let
ifHomeProgramEnable =
name:
if config.programs.${name}.enable then true else false;
in {
home.file = {
".local/share/applications/kitty.desktop" = {
enable = ifHomeProgramEnable "kitty";
text = ''
[Desktop Entry]
Version=1.0
Type=Application
Name=kitty
GenericName=Terminal emulator
Comment=Fast, feature-rich, GPU based terminal
TryExec=kitty
StartupNotify=true
Exec=kitty
Icon=kitty
Categories=System;TerminalEmulator;
X-TerminalArgExec=--
X-TerminalArgTitle=--title
X-TerminalArgAppId=--class
X-TerminalArgDir=--working-directory
X-TerminalArgHold=--hold
'';
};
".local/share/applications/librewolf.desktop" = {
enable = ifHomeProgramEnable "librewolf";
text = ''
[Desktop Entry]
Actions=new-private-window;new-window;profile-manager-window
Categories=Network;WebBrowser
Exec=nvidia-offload librewolf --name librewolf %U
GenericName=Web Browser
Icon=librewolf
MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;x-scheme-handler/http;x-scheme-handler/https
Name=LibreWolf
StartupNotify=true
StartupWMClass=librewolf
Terminal=false
Type=Application
Version=1.4
[Desktop Action new-private-window]
Exec=nvidia-offload librewolf --private-window %U
Name=New Private Window
[Desktop Action new-window]
Exec=nvidia-offload librewolf --new-window %U
Name=New Window
[Desktop Action profile-manager-window]
Exec=nvidia-offload librewolf --ProfileManager
Name=Profile Manager
'';
};
".local/share/applications/steam.desktop" = {
enable = true;
text = ''
[Desktop Entry]
Name=Steam
Comment=Application for managing and playing games on Steam
Comment[pt_BR]=Aplicativo para jogar e gerenciar jogos no Steam
Comment[bg]=Приложение за ръководене и пускане на игри в Steam
Comment[cs]=Aplikace pro spravování a hraní her ve službě Steam
Comment[da]=Applikation til at håndtere og spille spil på Steam
Comment[nl]=Applicatie voor het beheer en het spelen van games op Steam
Comment[fi]=Steamin pelien hallintaan ja pelaamiseen tarkoitettu sovellus
Comment[fr]=Application de gestion et d'utilisation des jeux sur Steam
Comment[de]=Anwendung zum Verwalten und Spielen von Spielen auf Steam
Comment[el]=Εφαρμογή διαχείρισης παιχνιδιών στο Steam
Comment[hu]=Alkalmazás a Steames játékok futtatásához és kezeléséhez
Comment[it]=Applicazione per la gestione e l'esecuzione di giochi su Steam
Comment[ja]=Steam
Comment[ko]=Steam
Comment[no]=Program for å administrere og spille spill på Steam
Comment[pt_PT]=Aplicação para organizar e executar jogos no Steam
Comment[pl]=Aplikacja do zarządzania i uruchamiania gier na platformie Steam
Comment[ro]=Aplicație pentru administrarea și jucatul jocurilor pe Steam
Comment[ru]=Приложение для игр и управления играми в Steam
Comment[es]=Aplicación para administrar y ejecutar juegos en Steam
Comment[sv]=Ett program för att hantera samt spela spel på Steam
Comment[zh_CN]= Steam
Comment[zh_TW]= Steam
Comment[th]= Steam
Comment[tr]=Steam üzerinden oyun oynama ve düzenleme uygulaması
Comment[uk]=Програма для керування іграми та запуску ігор у Steam
Comment[vi]=ng dng đ qun lý và chơi trò chơi trên Steam
Exec=nvidia-offload steam %U
Icon=steam
Terminal=false
Type=Application
Categories=Network;FileTransfer;Game;
MimeType=x-scheme-handler/steam;x-scheme-handler/steamlink;
Actions=Store;Community;Library;Servers;Screenshots;News;Settings;BigPicture;Friends;
PrefersNonDefaultGPU=true
X-KDE-RunOnDiscreteGpu=true
[Desktop Action Store]
Name=Store
Name[pt_BR]=Loja
Name[bg]=Магазин
Name[cs]=Obchod
Name[da]=Butik
Name[nl]=Winkel
Name[fi]=Kauppa
Name[fr]=Magasin
Name[de]=Shop
Name[el]=ΚΑΤΑΣΤΗΜΑ
Name[hu]=Áruház
Name[it]=Negozio
Name[ja]=
Name[ko]=
Name[no]=Butikk
Name[pt_PT]=Loja
Name[pl]=Sklep
Name[ro]=Magazin
Name[ru]=Магазин
Name[es]=Tienda
Name[sv]=Butik
Name[zh_CN]=
Name[zh_TW]=
Name[th]=
Name[tr]=Mağaza
Name[uk]=Крамниця
Name[vi]=Ca hàng
Exec=nvidia-offload steam steam://store
[Desktop Action Community]
Name=Community
Name[pt_BR]=Comunidade
Name[bg]=Общност
Name[cs]=Komunita
Name[da]=Fællesskab
Name[nl]=Community
Name[fi]=Yhteisö
Name[fr]=Communauté
Name[de]=Community
Name[el]=Κοινότητα
Name[hu]=Közösség
Name[it]=Comunità
Name[ja]=
Name[ko]=
Name[no]=Samfunn
Name[pt_PT]=Comunidade
Name[pl]=Społeczność
Name[ro]=Comunitate
Name[ru]=Сообщество
Name[es]=Comunidad
Name[sv]=Gemenskap
Name[zh_CN]=
Name[zh_TW]=
Name[th]=
Name[tr]=Topluluk
Name[uk]=Спільнота
Name[vi]=Cng đng
Exec=nvidia-offload steam steam://url/SteamIDControlPage
[Desktop Action Library]
Name=Library
Name[pt_BR]=Biblioteca
Name[bg]=Библиотека
Name[cs]=Knihovna
Name[da]=Bibliotek
Name[nl]=Bibliotheek
Name[fi]=Kokoelma
Name[fr]=Bibliothèque
Name[de]=Bibliothek
Name[el]=Συλλογή
Name[hu]=Könyvtár
Name[it]=Libreria
Name[ja]=
Name[ko]=
Name[no]=Bibliotek
Name[pt_PT]=Biblioteca
Name[pl]=Biblioteka
Name[ro]=Colecţie
Name[ru]=Библиотека
Name[es]=Biblioteca
Name[sv]=Bibliotek
Name[zh_CN]=
Name[zh_TW]=
Name[th]=
Name[tr]=Kütüphane
Name[uk]=Бібліотека
Name[vi]=Thư vin
Exec=nvidia-offload steam steam://open/games
[Desktop Action Servers]
Name=Servers
Name[pt_BR]=Servidores
Name[bg]=Сървъри
Name[cs]=Servery
Name[da]=Servere
Name[nl]=Servers
Name[fi]=Palvelimet
Name[fr]=Serveurs
Name[de]=Server
Name[el]=Διακομιστές
Name[hu]=Szerverek
Name[it]=Server
Name[ja]=
Name[ko]=
Name[no]=Tjenere
Name[pt_PT]=Servidores
Name[pl]=Serwery
Name[ro]=Servere
Name[ru]=Серверы
Name[es]=Servidores
Name[sv]=Servrar
Name[zh_CN]=
Name[zh_TW]=
Name[th]=
Name[tr]=Sunucular
Name[uk]=Сервери
Name[vi]=Máy ch
Exec=nvidia-offload steam steam://open/servers
[Desktop Action Screenshots]
Name=Screenshots
Name[pt_BR]=Capturas de tela
Name[bg]=Снимки
Name[cs]=Snímky obrazovky
Name[da]=Skærmbilleder
Name[nl]=Screenshots
Name[fi]=Kuvankaappaukset
Name[fr]=Captures d'écran
Name[de]=Screenshots
Name[el]=Φωτογραφίες
Name[hu]=Képernyőmentések
Name[it]=Screenshot
Name[ja]=
Name[ko]=
Name[no]=Skjermbilder
Name[pt_PT]=Capturas de ecrã
Name[pl]=Zrzuty ekranu
Name[ro]=Capturi de ecran
Name[ru]=Скриншоты
Name[es]=Capturas
Name[sv]=Skärmdumpar
Name[zh_CN]=
Name[zh_TW]=
Name[th]=
Name[tr]=Ekran Görüntüleri
Name[uk]=Скріншоти
Name[vi]=nh chp
Exec=nvidia-offload steam steam://open/screenshots
[Desktop Action News]
Name=News
Name[pt_BR]=Notícias
Name[bg]=Новини
Name[cs]=Zprávy
Name[da]=Nyheder
Name[nl]=Nieuws
Name[fi]=Uutiset
Name[fr]=Actualités
Name[de]=Neuigkeiten
Name[el]=Νέα
Name[hu]=Hírek
Name[it]=Notizie
Name[ja]=
Name[ko]=
Name[no]=Nyheter
Name[pt_PT]=Novidades
Name[pl]=Aktualności
Name[ro]=Știri
Name[ru]=Новости
Name[es]=Noticias
Name[sv]=Nyheter
Name[zh_CN]=
Name[zh_TW]=
Name[th]=
Name[tr]=Haberler
Name[uk]=Новини
Name[vi]=Tin tc
Exec=nvidia-offload steam steam://open/news
[Desktop Action Settings]
Name=Settings
Name[pt_BR]=Configurações
Name[bg]=Настройки
Name[cs]=Nastavení
Name[da]=Indstillinger
Name[nl]=Instellingen
Name[fi]=Asetukset
Name[fr]=Paramètres
Name[de]=Einstellungen
Name[el]=Ρυθμίσεις
Name[hu]=Beállítások
Name[it]=Impostazioni
Name[ja]=
Name[ko]=
Name[no]=Innstillinger
Name[pt_PT]=Definições
Name[pl]=Ustawienia
Name[ro]=Setări
Name[ru]=Настройки
Name[es]=Parámetros
Name[sv]=Inställningar
Name[zh_CN]=
Name[zh_TW]=
Name[th]=
Name[tr]=Ayarlar
Name[uk]=Налаштування
Name[vi]=Thiết lp
Exec=nvidia-offload steam steam://open/settings
[Desktop Action BigPicture]
Name=Big Picture
Exec=nvidia-offload steam steam://open/bigpicture
[Desktop Action Friends]
Name=Friends
Name[pt_BR]=Amigos
Name[bg]=Приятели
Name[cs]=Přátelé
Name[da]=Venner
Name[nl]=Vrienden
Name[fi]=Kaverit
Name[fr]=Amis
Name[de]=Freunde
Name[el]=Φίλοι
Name[hu]=Barátok
Name[it]=Amici
Name[ja]=
Name[ko]=
Name[no]=Venner
Name[pt_PT]=Amigos
Name[pl]=Znajomi
Name[ro]=Prieteni
Name[ru]=Друзья
Name[es]=Amigos
Name[sv]=Vänner
Name[zh_CN]=
Name[zh_TW]=
Name[th]=
Name[tr]=Arkadaşlar
Name[uk]=Друзі
Name[vi]=Bn bè
Exec=nvidia-offload steam steam://open/friends
'';
};
".local/applications/vesktop.desktop" = {
enable = ifHomeProgramEnable "vesktop";
text = ''
[Desktop Entry]
Categories=Network;InstantMessaging;Chat
Comment[en_US]=
Comment=
Exec=nvidia-offload vesktop %U
GenericName[en_US]=Internet Messenger
GenericName=Internet Messenger
Icon=vesktop
Keywords=discord;vencord;electron;chat
Name[en_US]=Vesktop
Name=Vesktop
Path=
StartupNotify=true
StartupWMClass=Vesktop
Terminal=false
TerminalOptions=
Type=Application
Version=1.4
X-KDE-SubstituteUID=false
X-KDE-Username=
MimeType=x-scheme-handler/discord;
'';
};
};
}

13
modules/home/git.nix Normal file
View file

@ -0,0 +1,13 @@
{ config, ... }:
{
programs.git = {
enable = true;
userName = "wo2wz";
userEmail = "189177184+wo2wz@users.noreply.github.com";
extraConfig = {
init.defaultBranch = "main";
safe.directory = "/etc/nixos";
};
};
}

12
modules/home/kitty.nix Normal file
View file

@ -0,0 +1,12 @@
{ config, ... }:
{
programs.kitty = {
enable = true;
settings = {
tab_bar_style = "powerline";
tab_powerline_style = "round";
confirm_os_window_close = -1;
};
};
}

View file

@ -0,0 +1,74 @@
{ config, pkgs, ... }:
{
programs.librewolf = {
enable = true;
nativeMessagingHosts = [ pkgs.kdePackages.plasma-browser-integration ];
settings = {
"identity.fxaccounts.enabled" = true;
"clipboard.autocopy" = false;
};
policies = {
DefaultDownloadDirectory = "/home/wo2w/Downloads";
ExtensionSettings = with builtins; let
extension = shortId: uuid: {
name = uuid;
value = {
install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/${shortId}/latest.xpi";
installation_mode = "normal_installed";
};
};
in
listToAttrs [
(extension "bitwarden-password-manager" "{446900e4-71c2-419f-a6a7-df9c091e268b}")
(extension "clearurls" "{74145f27-f039-47ce-a470-a662b129930a}")
(extension "darkreader" "addon@darkreader.org")
(extension "decentraleyes" "jid1-BoFifL9Vbdl2zQ@jetpack")
(extension "happy-bonobo-disable-webrtc" "jid1-5Fs7iTLscUaZBgwr@jetpack")
(extension "enhancer-for-youtube" "enhancerforyoutube@maximerf.addons.mozilla.org")
(extension "private-relay" "private-relay@firefox.com")
(extension "indie-wiki-buddy" "{cb31ec5d-c49a-4e5a-b240-16c767444f62}")
(extension "libredirect" "7esoorv3@alefvanoon.anonaddy.me")
(extension "plasma-integration" "plasma-browser-integration@kde.org")
(extension "privacy-badger17" "jid1-MnnxcxisBPnSXQ@jetpack")
(extension "return-youtube-dislikes" "{762f9885-5a13-4abd-9c77-433dcd38b8fd}")
(extension "ublock-origin" "uBlock0@raymondhill.net")
];
};
profiles.wo2w = {
search = {
force = true;
default = "ddg";
privateDefault = "ddg";
};
settings = {
"browser.urlbar.suggest.history" = false;
"browser.urlbar.suggest.bookmark" = false;
"browser.urlbar.suggest.openpage" = false;
"browser.urlbar.suggest.topsites" = false;
"browser.urlbar.suggest.recentsearches" = false;
"browser.startup.page" = 3;
"network.trr.mode" = 2;
"network.trr.uri" = "https://base.dns.mullvad.net/dns-query";
"network.trr.custom_uri" = "https://base.dns.mullvad.net/dns-query";
"privacy.clearHistory.formdata" = true;
"privacy.clearHistory.siteSettings" = false;
"privacy.clearOnShutdown.cache" = false;
"privacy.clearOnShutdown.cookies" = false;
"privacy.clearOnShutdown.sessions" = false;
"privacy.donottrackheader.enabled" = true;
"widget.use-xdg-desktop-portal.file-picker" = 1;
};
};
};
# symlink for plasma browser integration native messaging in librewolf
home.file.".librewolf/native-messaging-hosts" = {
enable = true;
source = "${pkgs.kdePackages.plasma-browser-integration}/lib/mozilla/native-messaging-hosts";
};
}

13
modules/home/plasma.nix Normal file
View file

@ -0,0 +1,13 @@
{ inputs, config, ... }:
{
imports = [ inputs.plasma-manager.homeManagerModules.plasma-manager ];
programs.plasma = {
enable = true;
workspace.cursor = {
theme = "Bibata-Modern-Classic";
size = 24;
};
};
}

View file

@ -0,0 +1,29 @@
{ inputs, config, pkgs, ... }:
{
imports = [ inputs.spicetify-nix.homeManagerModules.default ];
programs.spicetify =
let
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.system};
in {
enable = true;
theme = {
name = "Tokyo";
src = pkgs.fetchFromGitHub {
owner = "evening-hs";
repo = "Spotify-Tokyo-Night-Theme";
rev = "d88ca06eaeeb424d19e0d6f7f8e614e4bce962be";
hash = "sha256-cLj9v8qtHsdV9FfzV2Qf4pWO8AOBXu51U/lUMvdEXAk=";
};
};
colorScheme = "Night";
enabledExtensions = with spicePkgs.extensions; [
adblock
hidePodcasts
shuffle
volumePercentage
history
];
};
}

133
modules/home/vesktop.nix Normal file
View file

@ -0,0 +1,133 @@
{ config, ... }:
{
programs.vesktop = {
enable = true;
vencord.settings = {
themeLinks = [ "https://catppuccin.github.io/discord/dist/catppuccin-mocha.theme.css" ];
enabledThemes = [ "catppuccin-mocha.theme.css" ];
plugins = {
ChatInputButtonAPI.enabled = true;
CommandsAPI.enabled = true;
DynamicImageModalAPI.enabled = true;
MessageAccessoriesAPI.enabled = true;
MessageEventsAPI.enabled = true;
MessagePopoverAPI.enabled = true;
MessageUpdaterAPI.enabled = true;
UserSettingsAPI.enabled = true;
BetterGifPicker.enabled = true;
BetterUploadButton.enabled = true;
BiggerStreamPreview.enabled = true;
CallTimer = {
enabled = true;
format = "stopwatch";
};
ClearURLs.enabled = true;
CopyFileContents.enabled = true;
CrashHandler.enabled = true;
Experiments = {
enabled = true;
toolbarDevMenu = false;
};
FakeNitro = {
enabled = true;
enableStickerBypass = true;
enableStreamQualityBypass = true;
enableEmojiBypass = true;
transformEmojis = true;
transformStickers = true;
transformCompoundSentence = false;
stickerSize = 160;
hyperLinkText = "{{NAME}}";
useHyperLinks = true;
disableEmbedPermissionCheck = false;
emojiSize = 48;
};
FixYoutubeEmbeds.enabled = true;
MessageLogger = {
enabled = true;
collapseDeleted = false;
deleteStyle = "overlay";
ignoreBots = false;
ignoreSelf = false;
ignoreUsers = "";
ignoreChannels = "";
ignoreGuilds = "";
logEdits = true;
logDeletes = true;
inlineEdits = true;
};
OpenInApp = {
enabled = true;
spotify = true;
steam = true;
epic = false;
tidal = false;
itunes = false;
};
PreviewMessage.enabled = true;
RelationshipNotifier = {
enabled = true;
notices = true;
offlineRemovals = true;
friends = true;
friendRequestCancels = true;
servers = true;
groups = true;
};
ReplaceGoogleSearch = {
enabled = true;
customEngineName = "DuckDuckGo";
customEngineURL = "https://duckduckgo.com/&q=";
};
ReverseImageSearch.enabled = true;
ServerInfo.enabled = true;
ShowHiddenChannels = {
enabled = true;
showMode = 0;
hideUnreads = true;
defaultAllowedUsersAndRolesDropdownState = true;
};
SpotifyCrack = {
enabled = true;
noSpotifyAutoPause = true;
keepSpotifyActivityOnIdle = false;
};
Translate = {
enabled = true;
showChatBarButton = true;
service = "google";
deeplApiKey = "";
autoTranslate = false;
showAutoTranslateTooltip = true;
};
ValidReply.enabled = true;
ValidUser.enabled = true;
VoiceDownload.enabled = true;
VoiceMessages.enabled = true;
VolumeBooster = {
enabled = true;
multiplier = 5;
};
WebKeybinds.enabled = true;
WebScreenShareFixes.enabled = true;
YoutubeAdblock.enabled = true;
BadgeAPI.enabled = true;
NoTrack = {
enabled = true;
disableAnalytics = true;
};
WebContextMenus = {
enabled = true;
addBack = true;
};
Settings = {
enabled = true;
settingsLocation = "aboveNitro";
};
SupportHelper.enabled = true;
DisableDeepLinks.enabled = true;
};
};
};
}

18
modules/home/vscodium.nix Normal file
View file

@ -0,0 +1,18 @@
{ config, pkgs, ... }:
{
programs.vscode = {
enable = true;
package = pkgs.vscodium;
profiles.wo2w = {
extensions = with pkgs.vscode-extensions; [
# theme
enkia.tokyo-night
# language extensions
jnoortheen.nix-ide
# discord rpc
leonardssh.vscord
];
};
};
}

10
modules/nixos/default.nix Normal file
View file

@ -0,0 +1,10 @@
{ config, ... }:
{
imports = [
./gaming.nix
./kde.nix
# ./niri.nix
./ssh.nix
];
}

28
modules/nixos/gaming.nix Normal file
View file

@ -0,0 +1,28 @@
{ inputs, config, pkgs, ... }:
let
nixpkgs-unstable = import inputs.nixpkgs-unstable {
system = "${pkgs.system}";
config.allowUnfree = true;
};
in {
programs = {
gamemode.enable = true; # performance tuning for games
steam = {
enable = true;
extraCompatPackages = [ pkgs.proton-ge-bin ];
};
};
environment.systemPackages = with pkgs; [
# heroic games launcher
heroic
(prismlauncher.override {
# Change Java runtimes available to Prism Launcher
jdks = [
jdk8
nixpkgs-unstable.graalvmPackages.graalvm-oracle_17
inputs.nixpkgs-pin.legacyPackages.${pkgs.system}.graalvm-ce
];
})
];
}

26
modules/nixos/kde.nix Normal file
View file

@ -0,0 +1,26 @@
{ config, pkgs, ... }:
{
services = {
xserver.enable = true;
displayManager.sddm = {
enable = true;
wayland = {
enable = true;
compositor = "kwin";
};
};
desktopManager.plasma6.enable = true;
};
programs.kdeconnect.enable = true;
# remove unnecessary packages
environment.plasma6.excludePackages = with pkgs.kdePackages; [
elisa
discover
konsole
khelpcenter
krdp
];
}

12
modules/nixos/niri.nix Normal file
View file

@ -0,0 +1,12 @@
{ config, ... }:
{
programs.niri.enable = true;
environment.systemPackages = with pkgs; [
fuzzel
mako
waybar
xwayland-satellite
];
}

22
modules/nixos/ssh.nix Normal file
View file

@ -0,0 +1,22 @@
{ config, pkgs, ... }:
{
programs.ssh = {
startAgent = true;
enableAskPassword = true;
extraConfig = "
Host gameserver
Hostname 192.168.2.221
Port 22
User wo2w
IdentityFile /home/wo2w/.ssh/ssh-key
";
};
environment = {
systemPackages = if config.services.desktopManager.plasma6.enable then with pkgs; [ kdePackages.ksshaskpass ] else [];
variables = {
SSH_ASKPASS_REQUIRE = "prefer";
};
};
}