Ver 1.0
This commit is contained in:
parent
b6b87d5aed
commit
9c72a71585
3546 changed files with 18655 additions and 0 deletions
290
nixosVista/options.nix
Normal file
290
nixosVista/options.nix
Normal file
|
|
@ -0,0 +1,290 @@
|
|||
{lib, ...}:
|
||||
with lib; {
|
||||
# i wanna migrate all the options to the respective file but write in here a list of files that define options
|
||||
|
||||
options.nixosVista = {
|
||||
############################################################
|
||||
# Core
|
||||
############################################################
|
||||
|
||||
enable = mkEnableOption "Enable NixOS Vista";
|
||||
|
||||
theme.enable = mkEnableOption "Enable Vista styling";
|
||||
|
||||
displayManager.enable = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = "Enable SDDM login manager.";
|
||||
};
|
||||
|
||||
############################################################
|
||||
# Monitors
|
||||
############################################################
|
||||
|
||||
monitor.list = mkOption {
|
||||
type = types.attrsOf types.str;
|
||||
default = {};
|
||||
example = {
|
||||
"DP-1" = "1920x1080@144, 0x0, 1";
|
||||
"HDMI-A-1" = "2560x1440@60, 1920x0, 1";
|
||||
};
|
||||
description = "Explicit Hyprland monitor definitions.";
|
||||
};
|
||||
|
||||
monitor.defaultMonitor = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
example = "preferred, auto, 1";
|
||||
description = "Fallback monitor rule when no monitor name is specified.";
|
||||
};
|
||||
|
||||
# additionally:
|
||||
# nixosVista/homeManager/eww/
|
||||
|
||||
eww = {
|
||||
enable = mkEnableOption "Modular EWW system";
|
||||
|
||||
widgets = {
|
||||
daybox.enable = mkEnableOption "Daybox";
|
||||
menu.enable = mkEnableOption "Menu";
|
||||
gif1.enable = mkEnableOption "Gif1";
|
||||
gif2.enable = mkEnableOption "Gif2";
|
||||
gif3.enable = mkEnableOption "Gif3";
|
||||
|
||||
diinkitemperature = {
|
||||
enable = mkEnableOption "Temperature widget";
|
||||
|
||||
apiKey = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
};
|
||||
|
||||
cityID = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
};
|
||||
|
||||
unit = mkOption {
|
||||
type = types.enum ["metric" "imperial"];
|
||||
default = "metric";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
############################################################
|
||||
# Wallpaper
|
||||
############################################################
|
||||
|
||||
hyprpaper = {
|
||||
enable = mkEnableOption "Enable hyprpaper wallpaper management";
|
||||
|
||||
settings = mkOption {
|
||||
type = types.attrs;
|
||||
default = {};
|
||||
description = ''
|
||||
Direct passthrough to services.hyprpaper.settings.
|
||||
See: https://wiki.hypr.land/Hypr-Ecosystem/hyprpaper/
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
############################################################
|
||||
# Hyprland
|
||||
############################################################
|
||||
|
||||
hyprland.special = {
|
||||
noHardwareCursor = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = "Disable hardware cursors in Hyprland.";
|
||||
};
|
||||
};
|
||||
|
||||
hyprland.style.animation.enabled = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = "Enable Hyprland animations.";
|
||||
};
|
||||
|
||||
hyprland.style.animation.config = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [
|
||||
"bezier = myBezier, 0, 1, 0.18, 1.0"
|
||||
"animation = windows, 1, 1.5, myBezier"
|
||||
"animation = windowsOut, 1, 2, myBezier, popin 95%"
|
||||
"animation = border, 1, 12, myBezier"
|
||||
"animation = borderangle, 1, 5, default"
|
||||
"animation = fade, 1, 6, default"
|
||||
"animation = workspaces, 1, 6, default"
|
||||
];
|
||||
description = "Hyprland animation configuration lines.";
|
||||
};
|
||||
|
||||
hyprland.input = {
|
||||
kb_layout = mkOption {
|
||||
type = types.str;
|
||||
default = "us";
|
||||
description = "Keyboard layout(s). Comma separated.";
|
||||
};
|
||||
|
||||
kb_options = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
description = "Keyboard options (e.g. grp:alt_shift_toggle).";
|
||||
};
|
||||
|
||||
kb_rules = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
};
|
||||
|
||||
kb_variant = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
};
|
||||
|
||||
kb_model = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
};
|
||||
|
||||
follow_mouse = mkOption {
|
||||
type = types.int;
|
||||
default = 1;
|
||||
};
|
||||
|
||||
sensitivity = mkOption {
|
||||
type = types.float;
|
||||
default = 0.0;
|
||||
};
|
||||
|
||||
touchpad.natural_scroll = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
};
|
||||
};
|
||||
|
||||
hyprland.variables = mkOption {
|
||||
type = types.attrsOf types.str;
|
||||
default = {
|
||||
terminal = "kitty";
|
||||
fileManager = "caja";
|
||||
menu = "wofi --show drun";
|
||||
};
|
||||
description = "Hyprland $variables.";
|
||||
};
|
||||
|
||||
hyprland.env = mkOption {
|
||||
type = types.attrsOf types.str;
|
||||
default = {
|
||||
XCURSOR_SIZE = "24";
|
||||
HYPRCURSOR_SIZE = "24";
|
||||
};
|
||||
description = "Hyprland environment variables.";
|
||||
};
|
||||
|
||||
hyprland.keybindings = {
|
||||
preset = mkOption {
|
||||
type = types.enum ["default" "minimal" "none"];
|
||||
default = "default";
|
||||
description = "Keybinding preset to use.";
|
||||
};
|
||||
|
||||
extra = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
description = "Additional raw Hyprland bind lines.";
|
||||
};
|
||||
};
|
||||
|
||||
hyprland.windowRules = {
|
||||
preset = mkOption {
|
||||
type = types.enum ["default" "minimal" "none"];
|
||||
default = "default";
|
||||
description = "Window rule preset to use.";
|
||||
};
|
||||
|
||||
extra = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
description = "Additional raw Hyprland window rules.";
|
||||
};
|
||||
};
|
||||
|
||||
hyprland.startup = {
|
||||
preset = mkOption {
|
||||
type = types.enum ["default" "minimal" "none"];
|
||||
default = "default";
|
||||
description = "Startup preset.";
|
||||
};
|
||||
|
||||
extraExecOnce = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
description = "Additional commands rendered as 'exec-once = ...'.";
|
||||
};
|
||||
|
||||
extraExec = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
description = "Additional commands rendered as 'exec = ...'.";
|
||||
};
|
||||
};
|
||||
|
||||
waybar = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = "Enable Waybar.";
|
||||
};
|
||||
|
||||
style.preset = mkOption {
|
||||
type = types.enum ["default" "translucent" "opaque" "none"];
|
||||
default = "default";
|
||||
description = "Waybar visual preset.";
|
||||
};
|
||||
|
||||
settings.extra = mkOption {
|
||||
type = types.attrs;
|
||||
default = {};
|
||||
description = "Extra Waybar JSON settings merged into preset.";
|
||||
};
|
||||
};
|
||||
|
||||
wofi = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = "Enable Wofi launcher.";
|
||||
};
|
||||
|
||||
style.preset = mkOption {
|
||||
type = types.enum ["default" "translucent" "opaque" "none"];
|
||||
default = "default";
|
||||
description = "Wofi style preset.";
|
||||
};
|
||||
|
||||
settings.extra = mkOption {
|
||||
type = types.attrs;
|
||||
default = {};
|
||||
description = "Extra Wofi settings merged into preset.";
|
||||
};
|
||||
};
|
||||
|
||||
terminal = {
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
default = null;
|
||||
example = lib.literalExpression "pkgs.kitty";
|
||||
description = "Terminal package to install.";
|
||||
};
|
||||
|
||||
command = mkOption {
|
||||
type = types.str;
|
||||
default = "kitty";
|
||||
description = "Command used to launch the terminal.";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue