nix-conf/home-modules/common/default.nix
2024-08-08 21:08:25 +02:00

81 lines
2.4 KiB
Nix

{
config,
lib,
pkgs,
...
}:
let
cfg = config.jopejoe1.common;
in
{
options.jopejoe1.common = {
enable = lib.mkEnableOption "Enable Common Homanger settings";
gui = lib.mkEnableOption "Graphical programms";
fonts = {
monospace = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [ ];
};
sansSerif = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [ ];
};
serif = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [ ];
};
emoji = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [ ];
};
};
};
config = lib.mkIf cfg.enable {
home = {
sessionVariables = {
XCOMPOSECACHE = "${config.xdg.cacheHome}/X11/xcompos";
XAUTHORITY = "$XDG_RUNTIME_DIR/Xauthority";
ANDROID_HOME = "${config.xdg.dataHome}/android";
CUDA_CACHE_PATH = "${config.xdg.cacheHome}/nv";
GRADLE_USER_HOME = "${config.xdg.dataHome}/gradle";
KODI_DATA = "${config.xdg.dataHome}/kodi";
_JAVA_OPTIONS = "-Djava.util.prefs.userRoot=${config.xdg.configHome}/java";
WINEPREFIX = "${config.xdg.dataHome}/wine";
};
};
xdg = {
enable = true;
mime.enable = true;
cacheHome = "${config.home.homeDirectory}/.cache";
configHome = "${config.home.homeDirectory}/.config";
dataHome = "${config.home.homeDirectory}/.local/share";
stateHome = "${config.home.homeDirectory}/.local/state";
userDirs = {
enable = true;
createDirectories = true;
desktop = "${config.home.homeDirectory}/Desktop";
documents = "${config.home.homeDirectory}/Documents";
download = "${config.home.homeDirectory}/Downloads";
music = "${config.home.homeDirectory}/Music";
pictures = "${config.home.homeDirectory}/Pictures";
publicShare = "${config.home.homeDirectory}/Public";
templates = "${config.home.homeDirectory}/Templates";
videos = "${config.home.homeDirectory}/Videos";
};
};
qt = {
enable = true;
style.name = "kvantum";
platformTheme.name = "kvantum";
};
gtk.enable = true;
gtk.gtk2.configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc";
gtk.iconTheme.package = pkgs.tela-icon-theme;
gtk.iconTheme.name = "Tela-purple-dark";
};
}