2024-05-04 23:15:57 +03:00
|
|
|
# Global settings.
|
|
|
|
# Just like I can configure each package, here I configure my config! :O)
|
2024-06-24 13:36:10 +03:00
|
|
|
{ pkgs
|
|
|
|
, config
|
|
|
|
,lib
|
|
|
|
, ... }: {
|
|
|
|
options.setting = with lib; {
|
2024-06-25 04:04:39 +03:00
|
|
|
# Ollama settings.
|
|
|
|
# I use the best light model by default.
|
2024-06-24 13:36:10 +03:00
|
|
|
ollama = mkOption {
|
|
|
|
default = { };
|
|
|
|
type = types.submodule {
|
|
|
|
# freeformType = lib.jsonFormat.type;
|
|
|
|
options = {
|
|
|
|
primaryModel = mkOption {
|
|
|
|
default = "llama3";
|
|
|
|
type = types.str;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
2024-06-21 10:50:04 +03:00
|
|
|
|
2024-06-25 04:04:39 +03:00
|
|
|
# Default browser settings.
|
2024-06-24 13:36:10 +03:00
|
|
|
browser = mkOption {
|
|
|
|
default = { };
|
|
|
|
type = types.submodule {
|
|
|
|
options = {
|
|
|
|
bin = mkOption {
|
|
|
|
default = "firefox-esr";
|
|
|
|
type = types.str;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
2024-06-22 23:34:03 +03:00
|
|
|
|
2024-06-25 04:04:39 +03:00
|
|
|
# Terminal settings.
|
2024-06-24 13:36:10 +03:00
|
|
|
terminal = mkOption {
|
|
|
|
default = { };
|
|
|
|
type = types.submodule {
|
|
|
|
options = {
|
|
|
|
bin = mkOption {
|
|
|
|
default = "foot";
|
|
|
|
type = types.str;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2024-06-25 04:04:39 +03:00
|
|
|
# Whether to use Dpi-aware setting in supported apps.
|
2024-06-24 13:36:10 +03:00
|
|
|
dpiAware = mkOption {
|
|
|
|
default = false;
|
|
|
|
type = types.bool;
|
|
|
|
};
|
|
|
|
|
2024-06-25 04:04:39 +03:00
|
|
|
# The key used for system-related shortcuts.
|
2024-06-24 13:36:10 +03:00
|
|
|
sysctrl = mkOption {
|
|
|
|
default = "print";
|
|
|
|
type = types.str;
|
|
|
|
};
|
|
|
|
|
2024-06-25 04:04:39 +03:00
|
|
|
# Keyboard options.
|
2024-06-24 13:36:10 +03:00
|
|
|
keyboard = mkOption {
|
|
|
|
default = { };
|
|
|
|
type = types.submodule {
|
|
|
|
options = {
|
|
|
|
layouts = mkOption {
|
|
|
|
default = "us,ru";
|
|
|
|
type = types.str;
|
|
|
|
};
|
|
|
|
options = mkOption {
|
|
|
|
default = "grp:toggle";
|
|
|
|
type = types.str;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2024-06-25 04:04:39 +03:00
|
|
|
# Settings related to different refreshes, like top apps.
|
2024-06-24 13:36:10 +03:00
|
|
|
refresh = mkOption {
|
|
|
|
default = { };
|
|
|
|
type = types.submodule {
|
|
|
|
options = {
|
|
|
|
top = mkOption {
|
|
|
|
default = 2000;
|
|
|
|
type = types.int;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2024-06-25 04:04:39 +03:00
|
|
|
# Configure steps for different actions.
|
2024-06-24 13:36:10 +03:00
|
|
|
step = mkOption {
|
|
|
|
default = { };
|
|
|
|
type = types.submodule {
|
|
|
|
options = {
|
|
|
|
brightness = mkOption {
|
|
|
|
default = 5;
|
|
|
|
type = types.int;
|
|
|
|
};
|
|
|
|
volume = mkOption {
|
|
|
|
default = 5;
|
|
|
|
type = types.int;
|
|
|
|
};
|
|
|
|
media = mkOption {
|
|
|
|
default = 10;
|
|
|
|
type = types.int;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
2024-06-23 00:40:52 +03:00
|
|
|
|
2024-06-25 04:04:39 +03:00
|
|
|
# Specify timeouts.
|
2024-06-24 13:36:10 +03:00
|
|
|
timeout = mkOption {
|
|
|
|
default = { };
|
|
|
|
type = types.submodule {
|
|
|
|
options = {
|
|
|
|
popup = mkOption {
|
|
|
|
default = 5000;
|
|
|
|
type = types.int;
|
|
|
|
};
|
|
|
|
keyd = mkOption {
|
|
|
|
default = 150;
|
|
|
|
type = types.int;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
2024-06-23 04:55:57 +03:00
|
|
|
};
|
2024-04-06 03:03:58 +03:00
|
|
|
}
|