nixos-config/modules/home/de/default.nix

113 lines
3.3 KiB
Nix

{
config,
pkgs,
lib,
...
}: let
cfg = config.myConfig.de;
in {
imports = [
./qtile.nix
./hyprland
];
options.myConfig.de = {
theming.enable = lib.mkEnableOption "";
wallpaper = lib.mkOption {
type = lib.types.path;
};
widget = {
backlight = {
enable = lib.mkEnableOption "";
device = lib.mkOption {
type = lib.types.str;
};
};
battery.enable = lib.mkEnableOption "";
};
tray = {
syncthing.enable = lib.mkEnableOption "";
networkmanager.enable = lib.mkEnableOption "";
};
};
config = lib.mkMerge [
(lib.mkIf cfg.theming.enable {
dconf.settings."org/gnome/desktop/interface".color-scheme = "prefer-dark";
gtk = {
enable = true;
gtk2.configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc";
theme.name = "Adwaita-dark";
theme.package = pkgs.gnome.gnome-themes-extra;
iconTheme.name = "Adwaita";
iconTheme.package = pkgs.gnome.adwaita-icon-theme;
font.name = "Open Sans";
font.package = pkgs.open-sans;
};
qt = {
enable = true;
platformTheme = "gtk";
style.name = "adwaita-dark";
style.package = pkgs.adwaita-qt;
};
home.pointerCursor = {
name = "Bibata-Original-Classic";
package = pkgs.bibata-cursors;
size = 24;
gtk.enable = true;
};
})
(lib.mkIf cfg.tray.syncthing.enable {
home.packages = [pkgs.syncthingtray-minimal];
systemd.user.services = {
syncthingtray = {
Unit = {
Description = "Syncthingtray";
Requires = ["tray.target"];
After = ["graphical-session-pre.target" "tray.target"];
PartOf = ["graphical-session.target"];
};
Service = {
ExecStart = "${lib.getExe' pkgs.syncthingtray-minimal "syncthingtray"} --wait";
};
Install = {
WantedBy = ["graphical-session.target"];
};
};
};
})
(lib.mkIf cfg.tray.networkmanager.enable {
home.packages = [pkgs.networkmanagerapplet];
systemd.user.services = {
nm-applet = {
Unit = {
Description = "Networkmanager-applet";
Requires = ["tray.target"];
After = ["graphical-session-pre.target" "tray.target"];
PartOf = ["graphical-session.target"];
};
Service = {
ExecStart = "${lib.getExe pkgs.networkmanagerapplet}";
};
Install = {
WantedBy = ["graphical-session.target"];
};
};
};
})
];
}