nixfmt
This commit is contained in:
@@ -1,7 +1,6 @@
|
|||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
home,
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
|
||||||
namespace,
|
namespace,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -3,19 +3,23 @@ with lib;
|
|||||||
let
|
let
|
||||||
cfg = config.mjallen.theme;
|
cfg = config.mjallen.theme;
|
||||||
|
|
||||||
mkPalettePath = name:
|
mkPalettePath = name: lib.snowfall.fs.get-file "modules/home/desktop/theme/palettes/${name}.nix";
|
||||||
lib.snowfall.fs.get-file "modules/home/desktop/theme/palettes/${name}.nix";
|
|
||||||
|
|
||||||
cap = s: let
|
cap =
|
||||||
len = builtins.stringLength s;
|
s:
|
||||||
in
|
let
|
||||||
(lib.toUpper (builtins.substring 0 1 s))
|
len = builtins.stringLength s;
|
||||||
+ (builtins.substring 1 (len - 1) s);
|
in
|
||||||
|
(lib.toUpper (builtins.substring 0 1 s)) + (builtins.substring 1 (len - 1) s);
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.mjallen.theme = {
|
options.mjallen.theme = {
|
||||||
name = mkOption {
|
name = mkOption {
|
||||||
type = types.enum [ "nord" "dracula" "everforest" ];
|
type = types.enum [
|
||||||
|
"nord"
|
||||||
|
"dracula"
|
||||||
|
"everforest"
|
||||||
|
];
|
||||||
default = "nord";
|
default = "nord";
|
||||||
description = "Global theme palette name.";
|
description = "Global theme palette name.";
|
||||||
};
|
};
|
||||||
@@ -51,25 +55,47 @@ in
|
|||||||
|
|
||||||
# e.g. Colloid-Dark-Compact-*
|
# e.g. Colloid-Dark-Compact-*
|
||||||
color = mkOption {
|
color = mkOption {
|
||||||
type = types.enum [ "dark" "light" ];
|
type = types.enum [
|
||||||
|
"dark"
|
||||||
|
"light"
|
||||||
|
];
|
||||||
default = "dark";
|
default = "dark";
|
||||||
description = "GTK color variant.";
|
description = "GTK color variant.";
|
||||||
};
|
};
|
||||||
|
|
||||||
size = mkOption {
|
size = mkOption {
|
||||||
type = types.enum [ "standard" "compact" ];
|
type = types.enum [
|
||||||
|
"standard"
|
||||||
|
"compact"
|
||||||
|
];
|
||||||
default = "compact";
|
default = "compact";
|
||||||
description = "GTK size variant.";
|
description = "GTK size variant.";
|
||||||
};
|
};
|
||||||
|
|
||||||
accent = mkOption {
|
accent = mkOption {
|
||||||
type = types.enum [ "default" "purple" "pink" "red" "orange" "yellow" "green" "teal" "grey" "all" ];
|
type = types.enum [
|
||||||
|
"default"
|
||||||
|
"purple"
|
||||||
|
"pink"
|
||||||
|
"red"
|
||||||
|
"orange"
|
||||||
|
"yellow"
|
||||||
|
"green"
|
||||||
|
"teal"
|
||||||
|
"grey"
|
||||||
|
"all"
|
||||||
|
];
|
||||||
default = "all";
|
default = "all";
|
||||||
description = "GTK accent (Colloid themeVariants).";
|
description = "GTK accent (Colloid themeVariants).";
|
||||||
};
|
};
|
||||||
|
|
||||||
tweak = mkOption {
|
tweak = mkOption {
|
||||||
type = types.enum [ "normal" "rimless" "float" "black" ];
|
type = types.enum [
|
||||||
|
"normal"
|
||||||
|
"rimless"
|
||||||
|
"float"
|
||||||
|
"black"
|
||||||
|
];
|
||||||
default = "normal";
|
default = "normal";
|
||||||
description = "GTK tweak (Colloid tweaks).";
|
description = "GTK tweak (Colloid tweaks).";
|
||||||
};
|
};
|
||||||
@@ -84,13 +110,31 @@ in
|
|||||||
icons = {
|
icons = {
|
||||||
# Colloid icon scheme usually supports several named schemes. Default follows palette name.
|
# Colloid icon scheme usually supports several named schemes. Default follows palette name.
|
||||||
scheme = mkOption {
|
scheme = mkOption {
|
||||||
type = types.enum [ "default" "nord" "dracula" "gruvbox" "everforest" "catppuccin" ];
|
type = types.enum [
|
||||||
|
"default"
|
||||||
|
"nord"
|
||||||
|
"dracula"
|
||||||
|
"gruvbox"
|
||||||
|
"everforest"
|
||||||
|
"catppuccin"
|
||||||
|
];
|
||||||
default = cfg.name;
|
default = cfg.name;
|
||||||
description = "Icon scheme to use (Colloid schemeVariants).";
|
description = "Icon scheme to use (Colloid schemeVariants).";
|
||||||
};
|
};
|
||||||
|
|
||||||
variant = mkOption {
|
variant = mkOption {
|
||||||
type = types.enum [ "default" "purple" "pink" "red" "orange" "yellow" "green" "teal" "grey" "all" ];
|
type = types.enum [
|
||||||
|
"default"
|
||||||
|
"purple"
|
||||||
|
"pink"
|
||||||
|
"red"
|
||||||
|
"orange"
|
||||||
|
"yellow"
|
||||||
|
"green"
|
||||||
|
"teal"
|
||||||
|
"grey"
|
||||||
|
"all"
|
||||||
|
];
|
||||||
default = "all";
|
default = "all";
|
||||||
description = "Icon variant (Colloid colorVariants).";
|
description = "Icon variant (Colloid colorVariants).";
|
||||||
};
|
};
|
||||||
@@ -110,7 +154,10 @@ in
|
|||||||
|
|
||||||
# Pull tokens directly from the palette file for convenience
|
# Pull tokens directly from the palette file for convenience
|
||||||
mjallen.theme.tokens = mkDefault (
|
mjallen.theme.tokens = mkDefault (
|
||||||
let pal = import cfg.paletteFile; in pal.tokens or { }
|
let
|
||||||
|
pal = import cfg.paletteFile;
|
||||||
|
in
|
||||||
|
pal.tokens or { }
|
||||||
);
|
);
|
||||||
|
|
||||||
# Expose the imported palette for convenience
|
# Expose the imported palette for convenience
|
||||||
@@ -129,12 +176,16 @@ in
|
|||||||
# Computed GTK/Icon theme names if not overridden
|
# Computed GTK/Icon theme names if not overridden
|
||||||
_module.args.mjallenThemeComputed = {
|
_module.args.mjallenThemeComputed = {
|
||||||
gtkTheme =
|
gtkTheme =
|
||||||
if cfg.gtk.themeName != null then cfg.gtk.themeName
|
if cfg.gtk.themeName != null then
|
||||||
else "Colloid-${cap cfg.gtk.color}-${cap cfg.gtk.size}";
|
cfg.gtk.themeName
|
||||||
|
else
|
||||||
|
"Colloid-${cap cfg.gtk.color}-${cap cfg.gtk.size}";
|
||||||
|
|
||||||
iconTheme =
|
iconTheme =
|
||||||
if cfg.icons.themeName != null then cfg.icons.themeName
|
if cfg.icons.themeName != null then
|
||||||
else "Colloid-${cap cfg.icons.scheme}-${cap cfg.gtk.color}";
|
cfg.icons.themeName
|
||||||
|
else
|
||||||
|
"Colloid-${cap cfg.icons.scheme}-${cap cfg.gtk.color}";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,11 +11,11 @@ rec {
|
|||||||
textMuted = "#e2e2dc";
|
textMuted = "#e2e2dc";
|
||||||
|
|
||||||
primary = "#6272a4"; # dark blue
|
primary = "#6272a4"; # dark blue
|
||||||
info = "#8be9fd"; # cyan
|
info = "#8be9fd"; # cyan
|
||||||
accent = "#bd93f9"; # purple
|
accent = "#bd93f9"; # purple
|
||||||
success = "#50fa7b"; # green
|
success = "#50fa7b"; # green
|
||||||
warning = "#f1fa8c"; # yellow
|
warning = "#f1fa8c"; # yellow
|
||||||
danger = "#ff5555"; # red
|
danger = "#ff5555"; # red
|
||||||
};
|
};
|
||||||
|
|
||||||
# Shared styling tokens for CSS consumers
|
# Shared styling tokens for CSS consumers
|
||||||
|
|||||||
@@ -11,11 +11,11 @@ rec {
|
|||||||
textMuted = "#9da9a0";
|
textMuted = "#9da9a0";
|
||||||
|
|
||||||
primary = "#7fbbb3"; # blue/aqua
|
primary = "#7fbbb3"; # blue/aqua
|
||||||
info = "#83c092"; # teal
|
info = "#83c092"; # teal
|
||||||
accent = "#d699b6"; # magenta
|
accent = "#d699b6"; # magenta
|
||||||
success = "#a7c080"; # green
|
success = "#a7c080"; # green
|
||||||
warning = "#dbbc7f"; # yellow
|
warning = "#dbbc7f"; # yellow
|
||||||
danger = "#e67e80"; # red
|
danger = "#e67e80"; # red
|
||||||
};
|
};
|
||||||
|
|
||||||
# Shared styling tokens for CSS consumers
|
# Shared styling tokens for CSS consumers
|
||||||
|
|||||||
@@ -11,11 +11,11 @@ rec {
|
|||||||
textMuted = "#e5e9f0";
|
textMuted = "#e5e9f0";
|
||||||
|
|
||||||
primary = "#5e81ac"; # blue
|
primary = "#5e81ac"; # blue
|
||||||
info = "#88c0d0"; # cyan/teal
|
info = "#88c0d0"; # cyan/teal
|
||||||
accent = "#b48ead"; # purple
|
accent = "#b48ead"; # purple
|
||||||
success = "#a3be8c"; # green
|
success = "#a3be8c"; # green
|
||||||
warning = "#ebcb8b"; # yellow
|
warning = "#ebcb8b"; # yellow
|
||||||
danger = "#bf616a"; # red
|
danger = "#bf616a"; # red
|
||||||
};
|
};
|
||||||
|
|
||||||
# Shared styling tokens for CSS consumers
|
# Shared styling tokens for CSS consumers
|
||||||
|
|||||||
@@ -374,10 +374,17 @@ in
|
|||||||
scale
|
scale
|
||||||
];
|
];
|
||||||
# Append transform only when set, as "transform, <value>"
|
# Append transform only when set, as "transform, <value>"
|
||||||
transformTokens = if m.transform == null then [ ] else [ "transform" m.transform ];
|
transformTokens =
|
||||||
|
if m.transform == null then
|
||||||
|
[ ]
|
||||||
|
else
|
||||||
|
[
|
||||||
|
"transform"
|
||||||
|
m.transform
|
||||||
|
];
|
||||||
tokens = parts ++ transformTokens ++ m.extra;
|
tokens = parts ++ transformTokens ++ m.extra;
|
||||||
in
|
in
|
||||||
builtins.concatStringsSep ", " tokens
|
builtins.concatStringsSep ", " tokens
|
||||||
) cfg.monitorv2;
|
) cfg.monitorv2;
|
||||||
|
|
||||||
render = {
|
render = {
|
||||||
|
|||||||
@@ -6,42 +6,47 @@ let
|
|||||||
|
|
||||||
# Back-compat shims for deprecated options
|
# Back-compat shims for deprecated options
|
||||||
rightModules =
|
rightModules =
|
||||||
if builtins.hasAttr "modules-right" cfg && (cfg."modules-right" != [ ])
|
if builtins.hasAttr "modules-right" cfg && (cfg."modules-right" != [ ]) then
|
||||||
then cfg."modules-right"
|
cfg."modules-right"
|
||||||
else cfg.layout.right;
|
else
|
||||||
|
cfg.layout.right;
|
||||||
|
|
||||||
netIf =
|
netIf =
|
||||||
if (cfg ? networkInterface) && (cfg.networkInterface != "wlan0")
|
if (cfg ? networkInterface) && (cfg.networkInterface != "wlan0") then
|
||||||
then cfg.networkInterface
|
cfg.networkInterface
|
||||||
else cfg.network.interface;
|
else
|
||||||
|
cfg.network.interface;
|
||||||
|
|
||||||
defaultOpacity = palette.tokens.opacity or "opacity: 0.85;";
|
defaultOpacity = palette.tokens.opacity or "opacity: 0.85;";
|
||||||
defaultBorderRadius = palette.tokens.borderRadius or "border-radius: 1rem;";
|
defaultBorderRadius = palette.tokens.borderRadius or "border-radius: 1rem;";
|
||||||
defaultCenterOptions = palette.tokens.centerOptions or ''
|
defaultCenterOptions =
|
||||||
padding-top: 0.2rem;
|
palette.tokens.centerOptions or ''
|
||||||
padding-bottom: 0.2rem;
|
padding-top: 0.2rem;
|
||||||
padding-left: 0.5rem;
|
padding-bottom: 0.2rem;
|
||||||
padding-right: 0.5rem;
|
padding-left: 0.5rem;
|
||||||
margin: 3px 0;
|
padding-right: 0.5rem;
|
||||||
'';
|
margin: 3px 0;
|
||||||
borderRight = palette.tokens.borderRight or ''
|
'';
|
||||||
padding-top: 0.2rem;
|
borderRight =
|
||||||
padding-bottom: 0.2rem;
|
palette.tokens.borderRight or ''
|
||||||
padding-left: 0.5rem;
|
padding-top: 0.2rem;
|
||||||
padding-right: 0.5rem;
|
padding-bottom: 0.2rem;
|
||||||
margin: 3px 0;
|
padding-left: 0.5rem;
|
||||||
border-radius: 0rem 1rem 1rem 0rem;
|
padding-right: 0.5rem;
|
||||||
margin-right: 0.5rem;
|
margin: 3px 0;
|
||||||
'';
|
border-radius: 0rem 1rem 1rem 0rem;
|
||||||
borderLeft = palette.tokens.borderLeft or ''
|
margin-right: 0.5rem;
|
||||||
padding-top: 0.2rem;
|
'';
|
||||||
padding-bottom: 0.2rem;
|
borderLeft =
|
||||||
padding-left: 0.5rem;
|
palette.tokens.borderLeft or ''
|
||||||
padding-right: 0.5rem;
|
padding-top: 0.2rem;
|
||||||
margin: 3px 0;
|
padding-bottom: 0.2rem;
|
||||||
border-radius: 1rem 0rem 0rem 1rem;
|
padding-left: 0.5rem;
|
||||||
margin-left: 0.5rem;
|
padding-right: 0.5rem;
|
||||||
'';
|
margin: 3px 0;
|
||||||
|
border-radius: 1rem 0rem 0rem 1rem;
|
||||||
|
margin-left: 0.5rem;
|
||||||
|
'';
|
||||||
|
|
||||||
baseStyle =
|
baseStyle =
|
||||||
if cfg.style.file != null then
|
if cfg.style.file != null then
|
||||||
@@ -312,289 +317,282 @@ in
|
|||||||
enable = true;
|
enable = true;
|
||||||
systemd.enable = true;
|
systemd.enable = true;
|
||||||
|
|
||||||
settings =
|
settings = ({
|
||||||
(
|
mainBar = (
|
||||||
{
|
(mkMerge [
|
||||||
mainBar =
|
{
|
||||||
(
|
layer = cfg.layer;
|
||||||
(mkMerge [
|
position = "top";
|
||||||
{
|
mod = "dock";
|
||||||
layer = cfg.layer;
|
exclusive = true;
|
||||||
position = "top";
|
passthrough = false;
|
||||||
mod = "dock";
|
gtk-layer-shell = true;
|
||||||
exclusive = true;
|
height = 0;
|
||||||
passthrough = false;
|
|
||||||
gtk-layer-shell = true;
|
|
||||||
height = 0;
|
|
||||||
|
|
||||||
# Module Layout
|
# Module Layout
|
||||||
modules-left = cfg.layout.left;
|
modules-left = cfg.layout.left;
|
||||||
modules-center = cfg.layout.center;
|
modules-center = cfg.layout.center;
|
||||||
modules-right = rightModules;
|
modules-right = rightModules;
|
||||||
|
|
||||||
# Base module definitions always present unless individually gated
|
# Base module definitions always present unless individually gated
|
||||||
"hyprland/workspaces" = {
|
"hyprland/workspaces" = {
|
||||||
disable-scroll = true;
|
disable-scroll = true;
|
||||||
all-outputs = true;
|
all-outputs = true;
|
||||||
on-click = "activate";
|
on-click = "activate";
|
||||||
persistent_workspaces = {
|
persistent_workspaces = {
|
||||||
"*" = 1;
|
"*" = 1;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
"hyprland/window" = {
|
"hyprland/window" = {
|
||||||
separate-outputs = true;
|
separate-outputs = true;
|
||||||
format = { };
|
format = { };
|
||||||
};
|
};
|
||||||
|
|
||||||
temperature = {
|
temperature = {
|
||||||
hwmon-path = cfg.temperature.cpu.hwmonPath;
|
hwmon-path = cfg.temperature.cpu.hwmonPath;
|
||||||
critical-threshold = 110;
|
critical-threshold = 110;
|
||||||
format-critical = "{temperatureC}°C ";
|
format-critical = "{temperatureC}°C ";
|
||||||
format = "{temperatureC}°C {icon}";
|
format = "{temperatureC}°C {icon}";
|
||||||
format-icons = [
|
format-icons = [
|
||||||
""
|
""
|
||||||
""
|
""
|
||||||
""
|
""
|
||||||
""
|
""
|
||||||
""
|
""
|
||||||
];
|
];
|
||||||
tooltip-format = "CPU: {temperatureC}°C";
|
tooltip-format = "CPU: {temperatureC}°C";
|
||||||
};
|
};
|
||||||
|
|
||||||
network = {
|
network = {
|
||||||
interface = netIf;
|
interface = netIf;
|
||||||
on-click = "nm-connection-editor";
|
on-click = "nm-connection-editor";
|
||||||
format = "{icon}";
|
format = "{icon}";
|
||||||
tooltip-format = "{ifname} via {gwaddr} ";
|
tooltip-format = "{ifname} via {gwaddr} ";
|
||||||
tooltip-format-wifi = ''
|
tooltip-format-wifi = ''
|
||||||
{essid} ({signalStrength}%) {icon}
|
{essid} ({signalStrength}%) {icon}
|
||||||
{bandwidthDownBits} {bandwidthUpBits}
|
{bandwidthDownBits} {bandwidthUpBits}
|
||||||
'';
|
'';
|
||||||
tooltip-format-ethernet = "{ifname} ";
|
tooltip-format-ethernet = "{ifname} ";
|
||||||
tooltip-format-disconnected = "Disconnected";
|
tooltip-format-disconnected = "Disconnected";
|
||||||
max-length = 50;
|
max-length = 50;
|
||||||
format-icons = {
|
format-icons = {
|
||||||
wifi = [
|
wifi = [
|
||||||
""
|
""
|
||||||
""
|
""
|
||||||
""
|
""
|
||||||
""
|
""
|
||||||
""
|
""
|
||||||
];
|
];
|
||||||
ethernet = "";
|
ethernet = "";
|
||||||
linked = "";
|
linked = "";
|
||||||
disconnected = "";
|
disconnected = "";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
"custom/left-end" = {
|
"custom/left-end" = {
|
||||||
format = " ";
|
format = " ";
|
||||||
tooltip = false;
|
tooltip = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
"custom/right-end" = {
|
"custom/right-end" = {
|
||||||
format = " ";
|
format = " ";
|
||||||
tooltip = false;
|
tooltip = false;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
(mkIf cfg.features.tray.enable {
|
(mkIf cfg.features.tray.enable {
|
||||||
tray = {
|
tray = {
|
||||||
icon-size = 16;
|
icon-size = 16;
|
||||||
spacing = 10;
|
spacing = 10;
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
|
||||||
(mkIf cfg.features.keyboardIndicators.enable {
|
(mkIf cfg.features.keyboardIndicators.enable {
|
||||||
"keyboard-state#capslock" = {
|
"keyboard-state#capslock" = {
|
||||||
capslock = true;
|
capslock = true;
|
||||||
format = "{icon}";
|
format = "{icon}";
|
||||||
tooltip-format = "Caps Lock {state}";
|
tooltip-format = "Caps Lock {state}";
|
||||||
format-icons = {
|
format-icons = {
|
||||||
locked = "";
|
locked = "";
|
||||||
unlocked = "";
|
unlocked = "";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
"keyboard-state#numlock" = {
|
"keyboard-state#numlock" = {
|
||||||
numlock = true;
|
numlock = true;
|
||||||
format = "{icon}";
|
format = "{icon}";
|
||||||
tooltip-format = "Num Lock {state}";
|
tooltip-format = "Num Lock {state}";
|
||||||
format-icons = {
|
format-icons = {
|
||||||
locked = "";
|
locked = "";
|
||||||
unlocked = "";
|
unlocked = "";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
|
||||||
(mkIf cfg.features.audio.sink.enable {
|
(mkIf cfg.features.audio.sink.enable {
|
||||||
"wireplumber#sink" = {
|
"wireplumber#sink" = {
|
||||||
format = "{icon} {volume}%";
|
format = "{icon} {volume}%";
|
||||||
tooltip = false;
|
tooltip = false;
|
||||||
format-muted = "{icon} Muted";
|
format-muted = "{icon} Muted";
|
||||||
on-click = "wpctl set-mute @DEFAULT_SINK@ toggle";
|
on-click = "wpctl set-mute @DEFAULT_SINK@ toggle";
|
||||||
on-click-right = "pavucontrol -t 1";
|
on-click-right = "pavucontrol -t 1";
|
||||||
on-scroll-up = "wpctl set-volume @DEFAULT_SINK@ 5%+";
|
on-scroll-up = "wpctl set-volume @DEFAULT_SINK@ 5%+";
|
||||||
on-scroll-down = "wpctl set-volume @DEFAULT_SINK@ 5%-";
|
on-scroll-down = "wpctl set-volume @DEFAULT_SINK@ 5%-";
|
||||||
scroll-step = 5;
|
scroll-step = 5;
|
||||||
format-icons = {
|
format-icons = {
|
||||||
headphone = "";
|
headphone = "";
|
||||||
headphone-muted = "";
|
headphone-muted = "";
|
||||||
hands-free = "";
|
hands-free = "";
|
||||||
headset = "";
|
headset = "";
|
||||||
phone = "";
|
phone = "";
|
||||||
portable = "";
|
portable = "";
|
||||||
car = "";
|
car = "";
|
||||||
default = [
|
default = [
|
||||||
""
|
""
|
||||||
""
|
""
|
||||||
""
|
""
|
||||||
""
|
""
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
|
||||||
(mkIf cfg.features.audio.source.enable {
|
(mkIf cfg.features.audio.source.enable {
|
||||||
"wireplumber#source" = {
|
"wireplumber#source" = {
|
||||||
node-type = "Audio/Source";
|
node-type = "Audio/Source";
|
||||||
format = "";
|
format = "";
|
||||||
format-muted = "";
|
format-muted = "";
|
||||||
tooltip = false;
|
tooltip = false;
|
||||||
on-click = "wpctl set-mute @DEFAULT_SOURCE@ toggle";
|
on-click = "wpctl set-mute @DEFAULT_SOURCE@ toggle";
|
||||||
on-click-right = "pavucontrol -t 2";
|
on-click-right = "pavucontrol -t 2";
|
||||||
on-scroll-up = "wpctl set-volume @DEFAULT_SOURCE@ 5%+";
|
on-scroll-up = "wpctl set-volume @DEFAULT_SOURCE@ 5%+";
|
||||||
on-scroll-down = "wpctl set-volume @DEFAULT_SOURCE@ 5%-";
|
on-scroll-down = "wpctl set-volume @DEFAULT_SOURCE@ 5%-";
|
||||||
scroll-step = 5;
|
scroll-step = 5;
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
|
||||||
(mkIf cfg.features.bluetooth.enable {
|
(mkIf cfg.features.bluetooth.enable {
|
||||||
bluetooth = {
|
bluetooth = {
|
||||||
on-click = "overskride";
|
on-click = "overskride";
|
||||||
tooltip = true;
|
tooltip = true;
|
||||||
format = "{icon}";
|
format = "{icon}";
|
||||||
tooltip-format = "{status}";
|
tooltip-format = "{status}";
|
||||||
tooltip-format-disabled = "{status}";
|
tooltip-format-disabled = "{status}";
|
||||||
tooltip-format-off = "{status}";
|
tooltip-format-off = "{status}";
|
||||||
tooltip-format-on = "{status}";
|
tooltip-format-on = "{status}";
|
||||||
tooltip-format-connected = "{status}";
|
tooltip-format-connected = "{status}";
|
||||||
tooltip-format-enumerate-connected = { };
|
tooltip-format-enumerate-connected = { };
|
||||||
format-icons = {
|
format-icons = {
|
||||||
disabled = "";
|
disabled = "";
|
||||||
off = "";
|
off = "";
|
||||||
on = "";
|
on = "";
|
||||||
connected = "";
|
connected = "";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
|
||||||
(mkIf cfg.features.idleInhibitor.enable {
|
(mkIf cfg.features.idleInhibitor.enable {
|
||||||
idle_inhibitor = {
|
idle_inhibitor = {
|
||||||
format = "{icon}";
|
format = "{icon}";
|
||||||
format-icons = {
|
format-icons = {
|
||||||
activated = "";
|
activated = "";
|
||||||
deactivated = "";
|
deactivated = "";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
|
||||||
(mkIf cfg.features.clock.enable {
|
(mkIf cfg.features.clock.enable {
|
||||||
clock = {
|
clock = {
|
||||||
format = "{:%I:%M %p}";
|
format = "{:%I:%M %p}";
|
||||||
tooltip-format = "<tt><small>{calendar}</small></tt>";
|
tooltip-format = "<tt><small>{calendar}</small></tt>";
|
||||||
calendar = {
|
calendar = {
|
||||||
mode = "month";
|
mode = "month";
|
||||||
format = {
|
format = {
|
||||||
months = "<span color='${palette.colors.primary}'><b>{}</b></span>";
|
months = "<span color='${palette.colors.primary}'><b>{}</b></span>";
|
||||||
days = "<span color='${palette.colors.primary}'><b>{}</b></span>";
|
days = "<span color='${palette.colors.primary}'><b>{}</b></span>";
|
||||||
weekdays = "<span color='${palette.colors.info}'><b>{}</b></span>";
|
weekdays = "<span color='${palette.colors.info}'><b>{}</b></span>";
|
||||||
today = "<span color='${palette.colors.success}'><b><u>{}</u></b></span>";
|
today = "<span color='${palette.colors.success}'><b><u>{}</u></b></span>";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
|
||||||
(mkIf cfg.features.battery.enable {
|
(mkIf cfg.features.battery.enable {
|
||||||
battery = {
|
battery = {
|
||||||
interval = 60;
|
interval = 60;
|
||||||
states = {
|
states = {
|
||||||
warning = 30;
|
warning = 30;
|
||||||
critical = 15;
|
critical = 15;
|
||||||
};
|
};
|
||||||
format = "{capacity}% {icon}";
|
format = "{capacity}% {icon}";
|
||||||
format-icons = {
|
format-icons = {
|
||||||
default = [
|
default = [
|
||||||
""
|
""
|
||||||
""
|
""
|
||||||
""
|
""
|
||||||
""
|
""
|
||||||
""
|
""
|
||||||
""
|
""
|
||||||
""
|
""
|
||||||
""
|
""
|
||||||
""
|
""
|
||||||
""
|
""
|
||||||
""
|
""
|
||||||
];
|
];
|
||||||
charging = [
|
charging = [
|
||||||
""
|
""
|
||||||
""
|
""
|
||||||
""
|
""
|
||||||
""
|
""
|
||||||
""
|
""
|
||||||
""
|
""
|
||||||
""
|
""
|
||||||
""
|
""
|
||||||
""
|
""
|
||||||
""
|
""
|
||||||
""
|
""
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
max-length = 25;
|
max-length = 25;
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
|
||||||
(mkIf cfg.temperature.gpu.enable {
|
(mkIf cfg.temperature.gpu.enable {
|
||||||
"temperature#gpu" = {
|
"temperature#gpu" = {
|
||||||
hwmon-path = cfg.temperature.gpu.hwmonPath;
|
hwmon-path = cfg.temperature.gpu.hwmonPath;
|
||||||
critical-threshold = 110;
|
critical-threshold = 110;
|
||||||
format-critical = "{temperatureC}°C ";
|
format-critical = "{temperatureC}°C ";
|
||||||
format = "{temperatureC}°C {icon}";
|
format = "{temperatureC}°C {icon}";
|
||||||
format-icons = [
|
format-icons = [
|
||||||
""
|
""
|
||||||
""
|
""
|
||||||
""
|
""
|
||||||
""
|
""
|
||||||
""
|
""
|
||||||
];
|
];
|
||||||
on-click = "lact";
|
on-click = "lact";
|
||||||
tooltip-format = "GPU: {temperatureC}°C";
|
tooltip-format = "GPU: {temperatureC}°C";
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
|
||||||
(mkIf cfg.features.weather.enable {
|
(mkIf cfg.features.weather.enable {
|
||||||
"custom/weather" = {
|
"custom/weather" = {
|
||||||
tooltip = true;
|
tooltip = true;
|
||||||
format = { };
|
format = { };
|
||||||
interval = 30;
|
interval = 30;
|
||||||
exec = "waybar-weather";
|
exec = "waybar-weather";
|
||||||
return-type = "json";
|
return-type = "json";
|
||||||
markup = "pango";
|
markup = "pango";
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
])
|
])
|
||||||
// cfg.extra.settings
|
// cfg.extra.settings
|
||||||
);
|
);
|
||||||
}
|
})
|
||||||
)
|
// cfg.extraModules; # keep legacy top-level extra modules for compatibility
|
||||||
// cfg.extraModules; # keep legacy top-level extra modules for compatibility
|
|
||||||
|
|
||||||
style =
|
style = baseStyle + (cfg.extra.style or "") + (cfg.extraModulesStyle or "");
|
||||||
baseStyle
|
|
||||||
+ (cfg.extra.style or "")
|
|
||||||
+ (cfg.extraModulesStyle or "");
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,16 @@
|
|||||||
{ lib, ... }:
|
{ lib, ... }:
|
||||||
with lib;
|
with lib;
|
||||||
let
|
let
|
||||||
inherit (types) str int bool listOf attrs path nullOr submodule;
|
inherit (types)
|
||||||
|
str
|
||||||
|
int
|
||||||
|
bool
|
||||||
|
listOf
|
||||||
|
attrs
|
||||||
|
path
|
||||||
|
nullOr
|
||||||
|
submodule
|
||||||
|
;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.mjallen.programs.waybar = {
|
options.mjallen.programs.waybar = {
|
||||||
@@ -161,22 +170,50 @@ in
|
|||||||
type = submodule {
|
type = submodule {
|
||||||
options = {
|
options = {
|
||||||
tray = mkOption {
|
tray = mkOption {
|
||||||
type = submodule { options = { enable = mkOption { type = bool; default = true; }; }; };
|
type = submodule {
|
||||||
|
options = {
|
||||||
|
enable = mkOption {
|
||||||
|
type = bool;
|
||||||
|
default = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
default = { };
|
default = { };
|
||||||
};
|
};
|
||||||
|
|
||||||
bluetooth = mkOption {
|
bluetooth = mkOption {
|
||||||
type = submodule { options = { enable = mkOption { type = bool; default = true; }; }; };
|
type = submodule {
|
||||||
|
options = {
|
||||||
|
enable = mkOption {
|
||||||
|
type = bool;
|
||||||
|
default = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
default = { };
|
default = { };
|
||||||
};
|
};
|
||||||
|
|
||||||
idleInhibitor = mkOption {
|
idleInhibitor = mkOption {
|
||||||
type = submodule { options = { enable = mkOption { type = bool; default = true; }; }; };
|
type = submodule {
|
||||||
|
options = {
|
||||||
|
enable = mkOption {
|
||||||
|
type = bool;
|
||||||
|
default = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
default = { };
|
default = { };
|
||||||
};
|
};
|
||||||
|
|
||||||
keyboardIndicators = mkOption {
|
keyboardIndicators = mkOption {
|
||||||
type = submodule { options = { enable = mkOption { type = bool; default = true; }; }; };
|
type = submodule {
|
||||||
|
options = {
|
||||||
|
enable = mkOption {
|
||||||
|
type = bool;
|
||||||
|
default = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
default = { };
|
default = { };
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -184,11 +221,25 @@ in
|
|||||||
type = submodule {
|
type = submodule {
|
||||||
options = {
|
options = {
|
||||||
sink = mkOption {
|
sink = mkOption {
|
||||||
type = submodule { options = { enable = mkOption { type = bool; default = true; }; }; };
|
type = submodule {
|
||||||
|
options = {
|
||||||
|
enable = mkOption {
|
||||||
|
type = bool;
|
||||||
|
default = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
default = { };
|
default = { };
|
||||||
};
|
};
|
||||||
source = mkOption {
|
source = mkOption {
|
||||||
type = submodule { options = { enable = mkOption { type = bool; default = false; }; }; };
|
type = submodule {
|
||||||
|
options = {
|
||||||
|
enable = mkOption {
|
||||||
|
type = bool;
|
||||||
|
default = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
default = { };
|
default = { };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -197,22 +248,50 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
weather = mkOption {
|
weather = mkOption {
|
||||||
type = submodule { options = { enable = mkOption { type = bool; default = true; }; }; };
|
type = submodule {
|
||||||
|
options = {
|
||||||
|
enable = mkOption {
|
||||||
|
type = bool;
|
||||||
|
default = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
default = { };
|
default = { };
|
||||||
};
|
};
|
||||||
|
|
||||||
hass = mkOption {
|
hass = mkOption {
|
||||||
type = submodule { options = { enable = mkOption { type = bool; default = false; }; }; };
|
type = submodule {
|
||||||
|
options = {
|
||||||
|
enable = mkOption {
|
||||||
|
type = bool;
|
||||||
|
default = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
default = { };
|
default = { };
|
||||||
};
|
};
|
||||||
|
|
||||||
clock = mkOption {
|
clock = mkOption {
|
||||||
type = submodule { options = { enable = mkOption { type = bool; default = true; }; }; };
|
type = submodule {
|
||||||
|
options = {
|
||||||
|
enable = mkOption {
|
||||||
|
type = bool;
|
||||||
|
default = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
default = { };
|
default = { };
|
||||||
};
|
};
|
||||||
|
|
||||||
battery = mkOption {
|
battery = mkOption {
|
||||||
type = submodule { options = { enable = mkOption { type = bool; default = true; }; }; };
|
type = submodule {
|
||||||
|
options = {
|
||||||
|
enable = mkOption {
|
||||||
|
type = bool;
|
||||||
|
default = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
default = { };
|
default = { };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
{ lib
|
{
|
||||||
, stdenv
|
lib,
|
||||||
, fetchFromGitHub
|
stdenv,
|
||||||
, pciutils
|
fetchFromGitHub,
|
||||||
, bash
|
pciutils,
|
||||||
|
bash,
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
@@ -36,7 +37,7 @@ stdenv.mkDerivation {
|
|||||||
homepage = "https://github.com/ryanrudolfoba/SteamDeck-BIOS-Manager";
|
homepage = "https://github.com/ryanrudolfoba/SteamDeck-BIOS-Manager";
|
||||||
license = licenses.agpl3Only;
|
license = licenses.agpl3Only;
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
maintainers = [];
|
maintainers = [ ];
|
||||||
sourceProvenance = with sourceTypes; [ ];
|
sourceProvenance = with sourceTypes; [ ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ lib, pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
let
|
let
|
||||||
kernel = pkgs.linuxPackages_cachyos;
|
kernel = pkgs.linuxPackages_cachyos;
|
||||||
in
|
in
|
||||||
|
|||||||
@@ -1,6 +1,12 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
|
||||||
{
|
{
|
||||||
services.greetd.settings.default_session.command = lib.mkForce ''${lib.getExe' pkgs.coreutils "env"} XCURSOR_THEME="''${XCURSOR_THEME:-Pop}" ${lib.getExe' config.services.displayManager.cosmic-greeter.package "cosmic-greeter-start"}'';
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
services.greetd.settings.default_session.command =
|
||||||
|
lib.mkForce ''${lib.getExe' pkgs.coreutils "env"} XCURSOR_THEME="''${XCURSOR_THEME:-Pop}" ${lib.getExe' config.services.displayManager.cosmic-greeter.package "cosmic-greeter-start"}'';
|
||||||
services.greetd.settings.default_session.user = lib.mkForce "cosmic-greeter";
|
services.greetd.settings.default_session.user = lib.mkForce "cosmic-greeter";
|
||||||
jovian = {
|
jovian = {
|
||||||
steam = {
|
steam = {
|
||||||
|
|||||||
Reference in New Issue
Block a user