82 lines
1.7 KiB
Nix
82 lines
1.7 KiB
Nix
{
|
|
pkgs,
|
|
config,
|
|
lib,
|
|
...
|
|
}:
|
|
let
|
|
cfg = config.youthlic.programs.niri;
|
|
in
|
|
{
|
|
options = {
|
|
youthlic.programs.niri = {
|
|
enable = lib.mkEnableOption "niri";
|
|
config = lib.mkOption {
|
|
type = lib.types.path;
|
|
example = ./config.kdl;
|
|
description = ''
|
|
the pach to config.kdl
|
|
'';
|
|
};
|
|
};
|
|
};
|
|
config = lib.mkIf cfg.enable {
|
|
home.packages = with pkgs; [
|
|
swaynotificationcenter
|
|
swaybg
|
|
xwayland-satellite
|
|
niri-unstable
|
|
kdePackages.polkit-kde-agent-1
|
|
wl-clipboard
|
|
cliphist
|
|
];
|
|
qt = {
|
|
enable = true;
|
|
};
|
|
xdg.portal = {
|
|
configPackages = [ pkgs.niri-unstable ];
|
|
config = {
|
|
common = {
|
|
default = [
|
|
"cosmic"
|
|
];
|
|
};
|
|
};
|
|
enable = true;
|
|
extraPortals = lib.mkIf (
|
|
!pkgs.niri-unstable.cargoBuildNoDefaultFeatures
|
|
|| builtins.elem "xdp-gnome-screencast" pkgs.niri-unstable.cargoBuildFeatures
|
|
) [ pkgs.xdg-desktop-portal-gnome ];
|
|
};
|
|
xdg.configFile =
|
|
let
|
|
qtctConf =
|
|
''
|
|
[Appearance]
|
|
standard_dialogs=xdgdesktopportal
|
|
''
|
|
+ lib.optionalString (config.qt.style ? name) ''
|
|
style=${config.qt.style.name}
|
|
'';
|
|
in
|
|
{
|
|
"qt5ct/qt5ct.conf" = lib.mkForce {
|
|
text = qtctConf;
|
|
};
|
|
"qt6ct/qt6ct.conf" = lib.mkForce {
|
|
text = qtctConf;
|
|
};
|
|
};
|
|
youthlic.programs = {
|
|
fuzzel.enable = true;
|
|
wluma.enable = true;
|
|
waybar.enable = true;
|
|
swaync.enable = true;
|
|
swaylock.enable = true;
|
|
};
|
|
programs.niri = {
|
|
config = builtins.readFile cfg.config;
|
|
package = pkgs.niri-unstable;
|
|
};
|
|
};
|
|
}
|