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

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