2024-09-08 19:22:14 -05:00
|
|
|
{
|
2024-09-12 20:50:53 -05:00
|
|
|
config,
|
|
|
|
lib,
|
|
|
|
...
|
|
|
|
}:
|
|
|
|
with lib; let
|
|
|
|
cfg = config.custom;
|
|
|
|
in {
|
2024-09-08 19:22:14 -05:00
|
|
|
options.custom = {
|
|
|
|
### Profiles
|
2024-09-12 20:50:53 -05:00
|
|
|
default = mkOption {default = true;};
|
|
|
|
full = mkOption {default = false;};
|
|
|
|
minimal = mkOption {default = cfg.full;};
|
|
|
|
profile = mkOption {};
|
2024-09-08 19:22:14 -05:00
|
|
|
|
|
|
|
### Users
|
2024-09-12 20:50:53 -05:00
|
|
|
domain = mkOption {default = "bjork.tech";};
|
|
|
|
hostname = mkOption {};
|
|
|
|
realname = mkOption {default = "Myned";};
|
|
|
|
username = mkOption {default = "myned";};
|
2024-11-17 14:14:42 -06:00
|
|
|
sync = mkOption {default = "/home/myned/SYNC";};
|
2024-09-08 19:22:14 -05:00
|
|
|
|
|
|
|
### Hardware
|
2024-09-12 20:50:53 -05:00
|
|
|
width = mkOption {default = 1920;};
|
|
|
|
height = mkOption {default = 1080;};
|
2024-11-06 11:37:37 -06:00
|
|
|
refresh = mkOption {default = 60;};
|
2024-09-12 20:50:53 -05:00
|
|
|
ultrawide = mkOption {default = cfg.width * 9 / 16 > cfg.height;}; # Wider than 16:9
|
|
|
|
hidpi = mkOption {default = cfg.scale > 1;};
|
|
|
|
scale = mkOption {default = 1;};
|
2024-09-08 19:22:14 -05:00
|
|
|
|
|
|
|
# TODO: Use option for border size
|
2024-09-12 20:50:53 -05:00
|
|
|
border = mkOption {default = 2;};
|
2024-09-08 19:22:14 -05:00
|
|
|
|
2024-12-23 13:03:34 -05:00
|
|
|
gap = mkOption {default = 15;};
|
2024-10-06 10:45:50 -05:00
|
|
|
padding = mkOption {default = 51;}; # ?? journalctl --user -u waybar.service | grep height:
|
2024-12-23 14:45:57 -05:00
|
|
|
rounding = mkOption {default = 15;};
|
2024-09-08 19:22:14 -05:00
|
|
|
|
|
|
|
### Misc
|
2024-12-30 10:09:03 -06:00
|
|
|
desktop = mkOption {
|
|
|
|
default =
|
|
|
|
if config.custom.full
|
|
|
|
then "niri"
|
|
|
|
else "gnome";
|
|
|
|
};
|
|
|
|
|
2024-12-30 10:08:25 -06:00
|
|
|
lockscreen = mkOption {default = "hyprlock";};
|
2024-09-12 20:50:53 -05:00
|
|
|
wallpaper = mkOption {default = false;};
|
2024-09-21 10:47:31 -05:00
|
|
|
|
2024-12-21 13:40:32 -05:00
|
|
|
browser = {
|
2024-12-28 18:40:50 -05:00
|
|
|
# TODO: Use lib.getExe' instead of /bin/ where possible
|
2024-12-22 07:13:48 -05:00
|
|
|
# HACK: Find first matching package in final home-manager list
|
|
|
|
command = mkOption {
|
|
|
|
default = "${lib.findFirst (pkg:
|
|
|
|
if (lib.hasAttr "pname" pkg)
|
|
|
|
then pkg.pname == "google-chrome"
|
|
|
|
else false)
|
|
|
|
null
|
|
|
|
config.home-manager.users.${config.custom.username}.home.packages}/bin/google-chrome-stable";
|
|
|
|
};
|
|
|
|
|
2024-12-21 13:40:32 -05:00
|
|
|
desktop = mkOption {default = "google-chrome.desktop";};
|
|
|
|
};
|
|
|
|
|
2024-09-21 10:47:31 -05:00
|
|
|
font = {
|
|
|
|
emoji = mkOption {default = "Noto Color Emoji";};
|
2024-12-07 22:06:49 -06:00
|
|
|
monospace = mkOption {default = "IosevkaTermSlab NFP Medium";};
|
2024-09-21 14:24:10 -05:00
|
|
|
sans-serif = mkOption {default = "Outfit";};
|
2024-09-21 10:47:31 -05:00
|
|
|
serif = mkOption {default = "Liberation Serif";};
|
|
|
|
};
|
2024-09-08 19:22:14 -05:00
|
|
|
};
|
|
|
|
}
|