Add DMS configuration enhancements and new default settings
- Introduced a new private default settings file for Dank Material Shell (DMS) to manage user-specific settings. - Updated DMS home-manager module to generate a settings seed file, merging extra right-bar widgets into the first-run configuration. - Added support for dynamic inclusion of DMS window rules based on user configuration. - Enhanced the Niri configuration with a preference for no client-side decorations and improved keybindings for bar toggling.
This commit is contained in:
@@ -1,25 +1,24 @@
|
||||
{ ... }: {
|
||||
flake.homeManagerModules.wisdomDesktopGtkQtTheming =
|
||||
{ config, lib, pkgs, ... }:
|
||||
{ config, lib, pkgs, osConfig ? { }, ... }:
|
||||
let
|
||||
root = config.chiasson.home;
|
||||
cfg = config.chiasson.home.desktop.theming;
|
||||
dmsShell = (lib.attrByPath [ "chiasson" "desktop" "shell" ] null osConfig) == "dms";
|
||||
qtPlatformTheme = if dmsShell then "qt6ct" else cfg.qt.platformTheme;
|
||||
in
|
||||
{
|
||||
options.chiasson.home.desktop.theming = {
|
||||
enable = lib.mkEnableOption ''
|
||||
WhiteSur GTK + icon themes, Phinger cursor, and Qt via the KDE platform theme — same idea as
|
||||
the old `home-shared.nix` stack for Hyprland/Niri (no full Plasma session required). Optional
|
||||
`dank-colors.css` import for DMS/matugen GTK accents.
|
||||
WhiteSur GTK + icon themes, Phinger cursor, and Qt via qt6ct (DMS) or KDE platform theme.
|
||||
Matugen accent colors load via gtk3/gtk4 extraCss when matugenGtkColors is enabled.
|
||||
'';
|
||||
|
||||
matugenGtkColors = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Add `@import url("dank-colors.css");` to gtk3/gtk4 extraCss. DMS/matugen writes
|
||||
`~/.config/gtk-3.0` / `gtk-4.0` `dank-colors.css` when dynamic theming is on — disable if
|
||||
you use this module without DMS.
|
||||
Add `@import url("dank-colors.css");` to gtk3/gtk4 extraCss (DMS matugen writes the file).
|
||||
'';
|
||||
};
|
||||
|
||||
@@ -65,23 +64,30 @@
|
||||
type = lib.types.str;
|
||||
default = "kde";
|
||||
description = ''
|
||||
`QT_QPA_PLATFORMTHEME` (e.g. `kde` for Qt/KDE integration, matches previous flake).
|
||||
`QT_QPA_PLATFORMTHEME` when not using DMS shell. DMS hosts use qt6ct automatically.
|
||||
'';
|
||||
};
|
||||
extraPackages = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.package;
|
||||
default = [ pkgs.whitesur-kde pkgs.qt6Packages.qt6ct ];
|
||||
description = "Extra packages (KDE look-and-feel + qt6ct GUI).";
|
||||
default = [ pkgs.kdePackages.qt6ct ];
|
||||
description = "Qt platform integration packages.";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf (root.enable && cfg.enable) (lib.mkMerge [
|
||||
{
|
||||
home.packages = cfg.qt.extraPackages;
|
||||
home.packages =
|
||||
if dmsShell then
|
||||
[ pkgs.kdePackages.qt6ct ]
|
||||
else
|
||||
cfg.qt.extraPackages;
|
||||
|
||||
home.sessionVariables = {
|
||||
QT_QPA_PLATFORMTHEME = cfg.qt.platformTheme;
|
||||
QT_QPA_PLATFORMTHEME = qtPlatformTheme;
|
||||
}
|
||||
// lib.optionalAttrs (qtPlatformTheme == "qt6ct") {
|
||||
QT_QPA_PLATFORMTHEME_QT6 = "qt6ct";
|
||||
};
|
||||
|
||||
home.pointerCursor = {
|
||||
|
||||
Reference in New Issue
Block a user