First Commit

This commit is contained in:
2026-01-05 04:04:36 +01:00
commit c7a17f7772
83 changed files with 3574 additions and 0 deletions

3
modules/cli/adb.nix Normal file
View File

@@ -0,0 +1,3 @@
{
programs.adb.enable = true;
}

5
modules/cli/btop.nix Normal file
View File

@@ -0,0 +1,5 @@
{
systemd.tmpfiles.rules = [
"Z /sys/class/powercap/intel-rapl:0/energy_uj 0444 root root - -"
];
}

19
modules/cli/default.nix Normal file
View File

@@ -0,0 +1,19 @@
{ lib, ... }:
let
b = builtins;
module_files =
b.readDir ./. |>
lib.filterAttrs (name: type:
( (lib.strings.hasSuffix ".nix" name
&& name != "default.nix"
&& type == "regular" )
|| ( type == "directory"
&& b.pathExists ./${name}/default.nix))
) |>
b.attrNames |>
b.map (f: ./${f});
in
{
imports = module_files;
}

17
modules/cli/fish.nix Normal file
View File

@@ -0,0 +1,17 @@
{ pkgs, ...}:
{
environment.systemPackages = with pkgs; [
fish
grc
fishPlugins.done
fishPlugins.tide
fishPlugins.sponge
fishPlugins.grc
fishPlugins.fish-you-should-use
fishPlugins.autopair
fishPlugins.async-prompt
fishPlugins.fzf-fish
fishPlugins.git-abbr
];
}

36
modules/cli/packages.nix Normal file
View File

@@ -0,0 +1,36 @@
{ pkgs, ...}:
{
environment.systemPackages = with pkgs; [
duf
eza
ffmpeg
htop
killall
libnotify
lm_sensors
lshw
ncdu
pciutils
socat
unrar
unzip
usbutils
v4l-utils
nvtopPackages.full
wget
ytmdl
yt-dlp
python3
python313Packages.pynvml
python313Packages.py3nvml
git
zip
killall
zoxide
fzf
p7zip
curl
jq
];
}

10
modules/corsairLink.nix Normal file
View File

@@ -0,0 +1,10 @@
{ config, inputs, ... }:
let
cfg = config.my.openlinkhub;
in
{
imports = [
inputs.openlinkhub.nixosModules.default
];
openlinkhub.enable = cfg.enable;
}

15
modules/default.nix Normal file
View File

@@ -0,0 +1,15 @@
{
imports = [
./cli
./packages.nix
./desktop
./gaming
./hardware.nix
./network.nix
./services.nix
./fonts.nix
./ld.nix
./nvidia.nix
./corsairLink.nix
];
}

View File

@@ -0,0 +1,17 @@
{ config, pkgs, lib, ... }:
{
config = lib.mkIf config.my.desktop.enable {
catppuccin = {
enable = true;
accent = "mauve";
flavor = "mocha";
};
environment.systemPackages = with pkgs; [
libsForQt5.qtstyleplugin-kvantum
libsForQt5.qt5ct
catppuccin-kvantum
magnetic-catppuccin-gtk
];
};
}

View File

@@ -0,0 +1,19 @@
{ lib, ... }:
let
b = builtins;
module_files =
b.readDir ./. |>
lib.filterAttrs (name: type:
( (lib.strings.hasSuffix ".nix" name
&& name != "default.nix"
&& type == "regular" )
|| ( type == "directory"
&& b.pathExists ./${name}/default.nix))
) |>
b.attrNames |>
b.map (f: ./${f});
in
{
imports = module_files;
}

26
modules/desktop/dms.nix Normal file
View File

@@ -0,0 +1,26 @@
{ lib, config, inputs, ... }:
let
cfg = config.my.desktop;
in
{
imports = [
inputs.dms.nixosModules.dankMaterialShell
];
programs.dankMaterialShell = lib.mkIf (cfg.enable && cfg.hyprland.enable) {
enable = true;
systemd = {
enable = false; # Systemd service for auto-start
restartIfChanged = false; # Auto-restart dms.service when dankMaterialShell changes
};
# Core features
enableSystemMonitoring = true; # System monitoring widgets (dgop)
enableClipboard = true; # Clipboard history manager
enableVPN = true; # VPN management widget
enableDynamicTheming = true; # Wallpaper-based theming (matugen)
enableAudioWavelength = true; # Audio visualizer (cava)
enableCalendarEvents = true; # Calendar integration (khal)
};
}

View File

@@ -0,0 +1,3 @@
{
environment.sessionVariables.NIXOS_OZONE_WL = "1";
}

View File

@@ -0,0 +1,14 @@
{ config, lib, ... }:
{
services = {
flatpak = lib.mkIf config.my.desktop.flatpak.enable {
enable = true;
packages = [
"com.github.tchx84.Flatseal"
"org.jellyfin.JellyfinDesktop"
];
update.onActivation = true;
};
};
}

View File

@@ -0,0 +1,12 @@
# Glib Schemas Fix
# https://github.com/thomX75/nixos-modules
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [ gsettings-desktop-schemas ];
environment.variables = {
GSETTINGS_SCHEMA_DIR="${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}/glib-2.0/schemas";
};
}

View File

@@ -0,0 +1,11 @@
{ inputs, pkgs, ...}:
{
programs.hyprland = {
enable = true;
# set the flake package
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
# make sure to also set the portal package, so that they are in sync
portalPackage = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
withUWSM = true;
};
}

View File

@@ -0,0 +1,13 @@
{ pkgs, ... }:
{
programs.obs-studio = {
enable = true;
enableVirtualCamera = true;
plugins = [
pkgs.obs-studio-plugins.obs-vkcapture
pkgs.obs-studio-plugins.obs-tuna
pkgs.obs-studio-plugins.obs-pipewire-audio-capture
pkgs.obs-studio-plugins.droidcam-obs
];
};
}

View File

@@ -0,0 +1,50 @@
{ pkgs, ...}:
{
environment.systemPackages = with pkgs; [
kitty
thunderbird
bitwarden-desktop
pwvucontrol
firefox
gedit
wl-clipboard
tuigreet
brightnessctl
spotify
hyprshot
mpv
#jellyfin-media-player
gedit
nixfmt
nixd
xfce.thunar
xfce.thunar-archive-plugin
xfce.thunar-media-tags-plugin
droidcam
rustdesk
mailspring
rquickshare
btrfs-assistant
ungoogled-chromium
gparted
veracrypt
lshw
syncplay
tigervnc
solaar
logitech-udev-rules
yubioath-flutter
kdePackages.gwenview
gsettings-desktop-schemas
gnome-tweaks
appimage-run
];
programs.seahorse.enable = true;
programs.streamcontroller.enable = true;
programs.appimage = {
enable = true;
binfmt = true;
};
programs.yubikey-manager.enable = true;
}

14
modules/desktop/rgb.nix Normal file
View File

@@ -0,0 +1,14 @@
{ lib, config, inputs, pkgs, ... }:
let
cfg = config.my.rgb;
in
{
config = lib.mkIf cfg.enable {
services.hardware.openrgb = {
enable = true;
};
environment.systemPackages = [
inputs.artemisrgb.packages.${pkgs.stdenv.hostPlatform.system}.default
];
};
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 MiB

30
modules/desktop/sddm.nix Normal file
View File

@@ -0,0 +1,30 @@
{ pkgs, lib, username, config, ... }:
let
cfg = config.my.desktop;
in
{
services.displayManager.sddm = {
enable = cfg.sddm.enable;
theme = "catppuccin-mocha-mauve";
package = pkgs.kdePackages.sddm;
wayland.enable = true;
settings = {
Autologin = lib.optionalAttrs cfg.sddm.autoLogin.enable {
User = "${username}";
Session = cfg.sddm.autoLogin.session;
};
};
};
environment.systemPackages =
lib.optionals cfg.sddm.enable [(
pkgs.catppuccin-sddm.override {
flavor = "mocha";
accent = "mauve";
font = "Noto Sans";
fontSize = "9";
background = "${./sddm-background/wallpaper.png}";
loginBackground = true;
}
)];
}

16
modules/desktop/xdg.nix Normal file
View File

@@ -0,0 +1,16 @@
{ pkgs, inputs, ...}:
{
xdg = {
mime.enable = true;
menus.enable = true;
portal = {
enable = true;
extraPortals = [
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland
pkgs.xdg-desktop-portal-gtk
];
configPackages = [inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland];
};
};
}

31
modules/fonts.nix Normal file
View File

@@ -0,0 +1,31 @@
{pkgs, ...}: {
fonts = {
packages = with pkgs; [
dejavu_fonts
fira-code
fira-code-symbols
font-awesome
hackgen-nf-font
ibm-plex
inter
jetbrains-mono
material-icons
maple-mono.NF
minecraftia
nerd-fonts.im-writing
nerd-fonts.blex-mono
noto-fonts
noto-fonts-color-emoji
noto-fonts-cjk-sans
noto-fonts-cjk-serif
noto-fonts-monochrome-emoji
powerline-fonts
roboto
roboto-mono
symbola
terminus_font
corefonts
vista-fonts
];
};
}

View File

@@ -0,0 +1,13 @@
{ lib, config, inputs, ... }:
let
cfg = config.my.gaming;
in
{
imports = [
inputs.aagl.nixosModules.default
];
config = lib.mkIf cfg.enable {
programs.honkers-railway-launcher.enable = true;
programs.sleepy-launcher.enable = true;
};
}

View File

@@ -0,0 +1,19 @@
{ lib, ... }:
let
b = builtins;
module_files =
b.readDir ./. |>
lib.filterAttrs (name: type:
( (lib.strings.hasSuffix ".nix" name
&& name != "default.nix"
&& type == "regular" )
|| ( type == "directory"
&& b.pathExists ./${name}/default.nix))
) |>
b.attrNames |>
b.map (f: ./${f});
in
{
imports = module_files;
}

View File

@@ -0,0 +1,14 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
heroic
vulkan-hdr-layer-kwin6
lsfg-vk
lsfg-vk-ui
gamescope
gamescope-wsi
moonlight-qt
bs-manager
wine
];
}

25
modules/gaming/steam.nix Normal file
View File

@@ -0,0 +1,25 @@
{ pkgs, ... }:
{
programs = {
steam = {
enable = true;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = false;
gamescopeSession.enable = false;
extraPackages = with pkgs; [
steamtinkerlaunch
];
extraCompatPackages = with pkgs; [
steamtinkerlaunch
];
};
gamescope = {
enable = true;
capSysNice = true;
};
};
environment.systemPackages = with pkgs; [
steamtinkerlaunch
protonup-qt
];
}

21
modules/gaming/wivrn.nix Normal file
View File

@@ -0,0 +1,21 @@
{ pkgs, ... }:
{
services.wivrn = {
enable = true;
openFirewall = true;
# Write information to /etc/xdg/openxr/1/active_runtime.json, VR applications
# will automatically read this and work with WiVRn (Note: This does not currently
# apply for games run in Valve's Proton)
defaultRuntime = true;
# Run WiVRn as a systemd service on startup
autoStart = true;
# If you're running this with an nVidia GPU and want to use GPU Encoding (and don't otherwise have CUDA enabled system wide), you need to override the cudaSupport variable.
package = (pkgs.wivrn.override { cudaSupport = true; });
# You should use the default configuration (which is no configuration), as that works the best out of the box.
# However, if you need to configure something see https://github.com/WiVRn/WiVRn/blob/master/docs/configuration.md for configuration options and https://mynixos.com/nixpkgs/option/services.wivrn.config.json for an example configuration.
};
}

20
modules/hardware.nix Normal file
View File

@@ -0,0 +1,20 @@
{pkgs, ...}: {
hardware = {
sane = {
enable = true;
extraBackends = [pkgs.sane-airscan];
disabledDefaultBackends = ["escl"];
};
logitech.wireless.enable = true;
logitech.wireless.enableGraphical = true;
graphics = {
enable = true;
enable32Bit = true;
};
amdgpu.opencl.enable = true;
enableRedistributableFirmware = true;
keyboard.qmk.enable = true;
bluetooth.enable = true;
bluetooth.powerOnBoot = true;
};
}

35
modules/ld.nix Normal file
View File

@@ -0,0 +1,35 @@
{ pkgs, ... }:
{
programs.nix-ld.enable = true;
programs.nix-ld.libraries = with pkgs; [
stdenv.cc.cc
glibc
xorg.libX11
xorg.libXcursor
xorg.libXrandr
xorg.libXinerama
xorg.libXi
wayland
libGL
libdrm
alsa-lib
pulseaudio
glib
nspr.out
nss.out
dbus.lib
at-spi2-atk
cups.lib
cairo.out
gtk3.out
pango.out
libxcomposite.out
libxdamage.out
libxext.out
libxfixes.out
libgbm.out
expat.out
libxcb.out
libxkbcommon.out
];
}

30
modules/network.nix Normal file
View File

@@ -0,0 +1,30 @@
{
options,
...
}:
{
networking = {
hostName = "LillyPC";
networkmanager.enable = true;
timeServers = options.networking.timeServers.default ++ ["pool.ntp.org"];
firewall = {
enable = false;
allowedTCPPorts = [
22
80
443
59010
59011
8080
];
allowedUDPPorts = [
59010
59011
];
};
};
services.tailscale = {
enable = true;
useRoutingFeatures = "client";
};
}

32
modules/nvidia.nix Normal file
View File

@@ -0,0 +1,32 @@
{
config,
pkgs,
lib,
...
}:
let
cfg = config.my;
in
{
config = lib.mkIf cfg.nvidia.enable {
services.xserver.videoDrivers = lib.optionals cfg.nvidia.enable ["nvidia"];
hardware.nvidia = {
modesetting.enable = true;
powerManagement.enable = true;
powerManagement.finegrained = false;
open = true;
nvidiaSettings = cfg.desktop.enable;
# Optionally, you may need to select the appropriate driver version for your specific GPU.
package = config.boot.kernelPackages.nvidiaPackages.stable;
};
hardware.nvidia-container-toolkit.enable = config.virtualisation.docker.enable;
environment.systemPackages = with pkgs; [
nvidia_oc
nvidia-vaapi-driver
]
++ lib.optionals config.virtualisation.docker.enable [
nvidia-docker
nvidia-container-toolkit
];
};
}

12
modules/packages.nix Normal file
View File

@@ -0,0 +1,12 @@
{ pkgs, ...}:
{
environment.systemPackages = with pkgs; [
firefoxpwa
hyprpolkitagent
hypridle
hyprpicker
lsb-release
papirus-icon-theme
];
}

56
modules/services.nix Normal file
View File

@@ -0,0 +1,56 @@
{
# Services to start
services = {
upower.enable = true; # noctalia shell battery
libinput.enable = true; # Input Handling
fstrim.enable = true; # SSD Optimizer
gvfs.enable = true; # For Mounting USB & More
power-profiles-daemon.enable = true;
openssh = {
enable = true; # Enable SSH
settings = {
PermitRootLogin = "no"; # Prevent root from SSH login
PasswordAuthentication = true; #Users can SSH using kb and password
KbdInteractiveAuthentication = true;
};
ports = [22];
};
blueman.enable = true; # Bluetooth Support
tumbler.enable = true; # Image/video preview
gnome.gnome-keyring.enable = true;
smartd = {
enable = true;
autodetect = true;
};
pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
jack.enable = true;
extraConfig.pipewire."92-low-latency" = {
"context.properties" = {
"default.clock.rate" = 48000;
"default.clock.quantum" = 256;
"default.clock.min-quantum" = 256;
"default.clock.max-quantum" = 256;
};
};
extraConfig.pipewire-pulse."92-low-latency" = {
context.modules = [
{
name = "libpipewire-module-protocol-pulse";
args = {
pulse.min.req = "256/48000";
pulse.default.req = "256/48000";
pulse.max.req = "256/48000";
pulse.min.quantum = "256/48000";
pulse.max.quantum = "256/48000";
};
}
];
};
};
};
}