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";
};
}