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

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