148 lines
3.2 KiB
Nix
148 lines
3.2 KiB
Nix
{ lib, pkgs, ... }:
|
|
with lib;
|
|
{
|
|
options.mjallen.desktop.hyprland = {
|
|
enable = mkEnableOption "enable hyprland desktop";
|
|
|
|
primaryDisplay = mkOption {
|
|
type = types.str;
|
|
default = "DP-1";
|
|
};
|
|
|
|
display1 = {
|
|
input = mkOption {
|
|
type = types.str;
|
|
default = "DP-1";
|
|
};
|
|
|
|
resolution = mkOption {
|
|
type = types.str;
|
|
default = "3840x2160";
|
|
};
|
|
|
|
refreshRate = mkOption {
|
|
type = types.str;
|
|
default = "240.00000";
|
|
};
|
|
};
|
|
|
|
display2 = {
|
|
input = mkOption {
|
|
type = types.str;
|
|
default = "DP-1";
|
|
};
|
|
|
|
resolution = mkOption {
|
|
type = types.str;
|
|
default = "3840x2160";
|
|
};
|
|
|
|
refreshRate = mkOption {
|
|
type = types.str;
|
|
default = "240.00000";
|
|
};
|
|
};
|
|
|
|
wallpaper = mkOption {
|
|
type = with types; listOf str;
|
|
default = [ ];
|
|
description = "list of hyprland wallpaper configs";
|
|
};
|
|
|
|
monitor = mkOption {
|
|
type = with types; listOf str;
|
|
default = [ ];
|
|
description = "list of hyprland monitor configs";
|
|
};
|
|
|
|
monitorv2 = mkOption {
|
|
type = with types; listOf str;
|
|
default = [ ];
|
|
description = "list of hyprland monitorv2 configs";
|
|
};
|
|
|
|
workspace = mkOption {
|
|
type = with types; listOf str;
|
|
default = [ ];
|
|
description = "list of hyprland workspace definitions";
|
|
};
|
|
|
|
windowRule = mkOption {
|
|
type = with types; listOf str;
|
|
default = [ ];
|
|
description = "list of hyprland window rules";
|
|
};
|
|
|
|
extraConfig = mkOption {
|
|
type = with types; str;
|
|
default = '''';
|
|
description = "any extra options";
|
|
};
|
|
|
|
iconThemeName = mkOption {
|
|
type = types.str;
|
|
default = "Colloid-Dark";
|
|
};
|
|
|
|
gtkThemeName = mkOption {
|
|
type = types.str;
|
|
default = "Colloid-Dark";
|
|
};
|
|
|
|
defaultApps = mkOption {
|
|
type = types.submodule {
|
|
options = {
|
|
browser = mkOption {
|
|
type = types.package;
|
|
default = pkgs.firefox;
|
|
};
|
|
editor = mkOption {
|
|
type = types.package;
|
|
default = pkgs.micro;
|
|
};
|
|
fileExplorer = mkOption {
|
|
type = types.package;
|
|
default = pkgs.nemo;
|
|
};
|
|
visual = mkOption {
|
|
type = types.package;
|
|
default = pkgs.vscodium;
|
|
};
|
|
terminal = mkOption {
|
|
type = types.package;
|
|
default = pkgs.kitty;
|
|
};
|
|
office = mkOption {
|
|
type = types.package;
|
|
default = pkgs.onlyoffice-bin_latest;
|
|
};
|
|
video = mkOption {
|
|
type = types.package;
|
|
default = pkgs.vlc;
|
|
};
|
|
imageViewer = mkOption {
|
|
type = types.package;
|
|
default = pkgs.nomacs;
|
|
};
|
|
};
|
|
};
|
|
description = "Default applications used across the system.";
|
|
};
|
|
|
|
hyprIdle = {
|
|
lockScreenTimer = mkOption {
|
|
type = with types; int;
|
|
default = 300;
|
|
};
|
|
screenOffTimer = mkOption {
|
|
type = with types; int;
|
|
default = 900;
|
|
};
|
|
suspendTimer = mkOption {
|
|
type = with types; int;
|
|
default = 1800;
|
|
};
|
|
};
|
|
};
|
|
}
|