615 lines
16 KiB
Nix
615 lines
16 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
namespace,
|
|
pkgs,
|
|
...
|
|
}:
|
|
let
|
|
inherit (lib)
|
|
mkIf
|
|
mkEnableOption
|
|
mkMerge
|
|
mkOption
|
|
literalExpression
|
|
;
|
|
|
|
cfg = config.${namespace}.desktop.addons.hyprpanel;
|
|
username = config.${namespace}.user.name;
|
|
|
|
settingsFormat = pkgs.formats.json { };
|
|
|
|
iconColor = "#242438";
|
|
|
|
light-cyan = "#73daca";
|
|
lightBlue = "#414868";
|
|
medium-blue = "#9aa5ce";
|
|
cyan-blue = "#7dcfff";
|
|
navy-blue = "#24283b";
|
|
dark-blue = "#1a1b26";
|
|
dark-blue-gray = "565f89";
|
|
dark-blue-yankees = "#272a3d";
|
|
blue-magenta = "#181825";
|
|
|
|
lightPurple = "#bb9af7";
|
|
|
|
lightRed = "#f7768e";
|
|
red = "#c0caf5";
|
|
|
|
lightGreen = "#9ece6a";
|
|
yellow = "#e0af68";
|
|
|
|
settings = {
|
|
tear = true;
|
|
scalingPriority = "hyprland";
|
|
font.name = "CodeNewRoman Nerd Font Mono";
|
|
|
|
bar = {
|
|
customModules = {
|
|
updates.pollingInterval = 1440000;
|
|
ram = {
|
|
labelType = "used/total";
|
|
icon = " ";
|
|
};
|
|
cpu = {
|
|
label = true;
|
|
leftClick = "kitty --hold btop";
|
|
icon = " ";
|
|
};
|
|
};
|
|
layouts = {
|
|
"0" = {
|
|
left = [
|
|
"workspaces"
|
|
];
|
|
middle = [
|
|
"windowtitle"
|
|
];
|
|
right = [
|
|
"clock"
|
|
];
|
|
};
|
|
"1" = {
|
|
left = [
|
|
"dashboard"
|
|
"workspaces"
|
|
];
|
|
middle = [
|
|
"windowtitle"
|
|
];
|
|
right = [
|
|
"volume"
|
|
"bluetooth"
|
|
"battery"
|
|
"systray"
|
|
"cpu"
|
|
"ram"
|
|
"clock"
|
|
"notifications"
|
|
];
|
|
};
|
|
};
|
|
workspaces = {
|
|
showAllActive = true;
|
|
show_icons = false;
|
|
numbered_active_indicator = "underline";
|
|
show_numbered = true;
|
|
showWsIcons = false;
|
|
showApplicationIcons = false;
|
|
hideUnoccupied = true;
|
|
};
|
|
launcher = {
|
|
icon = "";
|
|
rightClick = "hyprpanel -t settings-dialog";
|
|
};
|
|
scrollSpeed = 0;
|
|
windowtitle = {
|
|
class_name = false;
|
|
custom_title = false;
|
|
icon = false;
|
|
label = true;
|
|
title_map = [
|
|
|
|
];
|
|
truncation = true;
|
|
};
|
|
network = {
|
|
label = false;
|
|
truncation = false;
|
|
};
|
|
clock.format = "%a %b %d %H:%M:%S";
|
|
notifications.show_total = true;
|
|
};
|
|
|
|
menus = {
|
|
clock.time.military = true;
|
|
dashboard = {
|
|
powermenu.avatar.image = "/home/cholli/Pictures/profile.png";
|
|
|
|
shortcuts.enabled = false;
|
|
directories.left = {
|
|
directory1.command = "kitty $HOME/Downloads";
|
|
directory3.command = "kitty $HOME/projects";
|
|
};
|
|
|
|
stats = {
|
|
enable_gpu = true;
|
|
enabled = false;
|
|
};
|
|
controls.enabled = false;
|
|
};
|
|
bluetooth = {
|
|
showBattery = true;
|
|
batteryState = "always";
|
|
};
|
|
transition = "crossfade";
|
|
};
|
|
|
|
theme = {
|
|
bar = {
|
|
floating = true;
|
|
outer_spacing = "0.2em";
|
|
buttons = {
|
|
enableBorders = true;
|
|
|
|
workspaces = {
|
|
enableBorder = false;
|
|
fontSize = "1.2em";
|
|
smartHighlight = false;
|
|
active = "#f7768e";
|
|
occupied = "#f7768e";
|
|
available = "#7dcfff";
|
|
hover = "#f7768e";
|
|
background = "#272a3d";
|
|
numbered_active_highlighted_text_color = "#181825";
|
|
numbered_active_underline_color = "#c678dd";
|
|
border = "#f7768e";
|
|
};
|
|
modules = {
|
|
power = {
|
|
icon = "#181825";
|
|
icon_background = "#f7768e";
|
|
background = "#272a3d";
|
|
border = "#f7768e";
|
|
};
|
|
ram = {
|
|
enableBorder = false;
|
|
spacing = "0.45em";
|
|
icon = "#181825";
|
|
icon_background = "#e0af68";
|
|
text = "#e0af68";
|
|
background = "#272a3d";
|
|
border = "#e0af68";
|
|
};
|
|
cpu = {
|
|
enableBorder = false;
|
|
background = "#272a3d";
|
|
icon = "#181825";
|
|
icon_background = "#f7768e";
|
|
text = "#f7768e";
|
|
border = "#f7768e";
|
|
};
|
|
submap = {
|
|
background = "#272a3d";
|
|
text = "#73daca";
|
|
border = "#73daca";
|
|
icon = "#181825";
|
|
icon_background = "#73daca";
|
|
};
|
|
};
|
|
|
|
style = "split";
|
|
icon = "#242438";
|
|
icon_background = "#bb9af7";
|
|
text = "#bb9af7";
|
|
hover = "#414868";
|
|
background = "#272a3d";
|
|
dashboard = {
|
|
enableBorder = false;
|
|
icon = "#272a3d";
|
|
background = "#e0af68";
|
|
border = "#e0af68";
|
|
};
|
|
volume = {
|
|
icon = "#272a3d";
|
|
text = "#f7768e";
|
|
background = "#272a3d";
|
|
icon_background = "#f7768e";
|
|
border = "#f7768e";
|
|
};
|
|
notifications = {
|
|
total = "#bb9af7";
|
|
icon = "#272a3d";
|
|
background = "#272a3d";
|
|
icon_background = "#bb9af7";
|
|
border = "#bb9af7";
|
|
};
|
|
clock = {
|
|
icon = "#272a3d";
|
|
text = "#f7768e";
|
|
background = "#272a3d";
|
|
icon_background = "#f7768e";
|
|
border = "#f7768e";
|
|
};
|
|
systray = {
|
|
background = "#272a3d";
|
|
border = "#414868";
|
|
customIcon = "#c0caf5";
|
|
};
|
|
bluetooth = {
|
|
icon = "#272a3d";
|
|
text = "#7dcfff";
|
|
background = "#272a3d";
|
|
icon_background = "#7dcfff";
|
|
border = "#7dcfff";
|
|
};
|
|
windowtitle = {
|
|
icon = "#272a3d";
|
|
text = "#f7768e";
|
|
background = "#272a3d";
|
|
icon_background = "#f7768e";
|
|
border = "#f7768e";
|
|
enableBorder = false;
|
|
};
|
|
radius = "0.3em";
|
|
borderSize = "0.0em";
|
|
padding_x = "0.7rem";
|
|
padding_y = "0.2rem";
|
|
};
|
|
|
|
menus = {
|
|
monochrome = false;
|
|
opacity = 95;
|
|
menu = {
|
|
dashboard = {
|
|
powermenu = {
|
|
shutdown = "#f7768e";
|
|
confirmation = {
|
|
deny = "#f7768e";
|
|
confirm = "#9ece6a";
|
|
button_text = "#1a1b26";
|
|
body = "#c0caf5";
|
|
label = "#bb9af7";
|
|
border = "#414868";
|
|
background = "#1a1b26";
|
|
card = "#24283b";
|
|
};
|
|
sleep = "#7dcfff";
|
|
logout = "#9ece6a";
|
|
restart = "#e0af68";
|
|
};
|
|
monitors = {
|
|
ram = {
|
|
label = "#e0af68";
|
|
bar = "#e0af68";
|
|
icon = "#e0af68";
|
|
};
|
|
cpu = {
|
|
label = "#f7768e";
|
|
bar = "#f7768e";
|
|
icon = "#f7768e";
|
|
};
|
|
bar_background = "#414868";
|
|
};
|
|
directories = {
|
|
right = {
|
|
bottom.color = "#bb9af7";
|
|
middle.color = "#bb9af7";
|
|
top.color = "#73daca";
|
|
};
|
|
left = {
|
|
bottom.color = "#f7768e";
|
|
middle.color = "#e0af68";
|
|
top.color = "#f7768e";
|
|
};
|
|
};
|
|
controls = {
|
|
input = {
|
|
text = "#1a1b26";
|
|
background = "#f7768e";
|
|
};
|
|
volume = {
|
|
text = "#1a1b26";
|
|
background = "#f7768e";
|
|
};
|
|
notifications = {
|
|
text = "#1a1b26";
|
|
background = "#e0af68";
|
|
};
|
|
bluetooth = {
|
|
text = "#1a1b26";
|
|
background = "#7dcfff";
|
|
};
|
|
disabled = "#414868";
|
|
};
|
|
profile.name = "#f7768e";
|
|
border.color = "#414868";
|
|
background.color = "#1a1b26";
|
|
card.color = "#24283b";
|
|
};
|
|
notifications = {
|
|
switch = {
|
|
puck = "#565f89";
|
|
disabled = "#565f89";
|
|
enabled = "#bb9af7";
|
|
};
|
|
clear = "#f7768e";
|
|
switch_divider = "#414868";
|
|
border = "#414868";
|
|
card = "#24283b";
|
|
background = "#1a1b26";
|
|
no_notifications_label = "#414868";
|
|
label = "#bb9af7";
|
|
scrollbar.color = "#bb9af7";
|
|
pager = {
|
|
button = "#bb9af7";
|
|
label = "#565f89";
|
|
background = "#1a1b26";
|
|
};
|
|
};
|
|
clock = {
|
|
text = "#c0caf5";
|
|
border.color = "#414868";
|
|
background.color = "#1a1b26";
|
|
card.color = "#24283b";
|
|
|
|
calendar = {
|
|
contextdays = "#414868";
|
|
days = "#c0caf5";
|
|
currentday = "#f7768e";
|
|
paginator = "#f7768e";
|
|
weekdays = "#f7768e";
|
|
yearmonth = "#73daca";
|
|
};
|
|
time = {
|
|
timeperiod = "#73daca";
|
|
time = "#f7768e";
|
|
};
|
|
};
|
|
systray = {
|
|
dropdownmenu.divider = "#24283b";
|
|
dropdownmenu.text = "#c0caf5";
|
|
dropdownmenu.background = "#1a1b26";
|
|
};
|
|
bluetooth = {
|
|
iconbutton = {
|
|
active = "#7dcfff";
|
|
passive = "#c0caf5";
|
|
};
|
|
icons = {
|
|
active = "#7dcfff";
|
|
passive = "#565f89";
|
|
};
|
|
listitems = {
|
|
active = "#7dcfff";
|
|
passive = "#c0caf5";
|
|
};
|
|
switch = {
|
|
puck = "#565f89";
|
|
disabled = "#565f89";
|
|
enabled = "#7dcfff";
|
|
};
|
|
switch_divider = "#414868";
|
|
status = "#565f89";
|
|
text = "#c0caf5";
|
|
label.color = "#7dcfff";
|
|
border.color = "#414868";
|
|
background.color = "#1a1b26";
|
|
card.color = "#24283b";
|
|
};
|
|
volume = {
|
|
text = "#c0caf5";
|
|
card.color = "#24283b";
|
|
label.color = "#f7768e";
|
|
input_slider = {
|
|
puck = "#414868";
|
|
backgroundhover = "#414868";
|
|
background = "#565f89";
|
|
primary = "#f7768e";
|
|
};
|
|
audio_slider = {
|
|
puck = "#414868";
|
|
backgroundhover = "#414868";
|
|
background = "#565f89";
|
|
primary = "#f7768e";
|
|
};
|
|
icons = {
|
|
active = "#f7768e";
|
|
passive = "#565f89";
|
|
};
|
|
iconbutton = {
|
|
active = "#f7768e";
|
|
passive = "#c0caf5";
|
|
};
|
|
listitems = {
|
|
active = "#f7768e";
|
|
passive = "#c0caf5";
|
|
};
|
|
border.color = "#414868";
|
|
background.color = "#1a1b26";
|
|
};
|
|
media = {
|
|
card.color = "#24283b";
|
|
slider = {
|
|
puck = "#565f89";
|
|
backgroundhover = "#414868";
|
|
background = "#565f89";
|
|
primary = "#f7768e";
|
|
};
|
|
buttons = {
|
|
text = "#1a1b26";
|
|
background = "#bb9af7";
|
|
enabled = "#73daca";
|
|
inactive = "#414868";
|
|
};
|
|
border.color = "#414868";
|
|
background.color = "#1a1b26";
|
|
album = "#f7768e";
|
|
artist = "#73daca";
|
|
song = "#bb9af7";
|
|
};
|
|
power = {
|
|
border.color = "#414868";
|
|
buttons = {
|
|
sleep = {
|
|
icon_background = "#7dcfff";
|
|
text = "#7dcfff";
|
|
background = "#24283b";
|
|
icon = "#1a1b26";
|
|
};
|
|
restart = {
|
|
text = "#e0af68";
|
|
icon_background = "#e0af68";
|
|
icon = "#1a1b26";
|
|
background = "#24283b";
|
|
};
|
|
shutdown = {
|
|
icon = "#1a1b26";
|
|
background = "#24283b";
|
|
icon_background = "#f7768e";
|
|
text = "#f7768e";
|
|
};
|
|
logout = {
|
|
icon = "#1a1b26";
|
|
background = "#24283b";
|
|
text = "#9ece6a";
|
|
icon_background = "#9ece6a";
|
|
};
|
|
};
|
|
background.color = "#1a1b26";
|
|
scaling = 90;
|
|
};
|
|
};
|
|
background = "#1a1b26";
|
|
text = "#c0caf5";
|
|
border.color = "#414868";
|
|
popover = {
|
|
text = "#bb9af7";
|
|
background = "#1a1b26";
|
|
border = "#1a1b26";
|
|
};
|
|
tooltip = {
|
|
text = "#c0caf5";
|
|
background = "#1a1b26";
|
|
};
|
|
dropdownmenu = {
|
|
divider = "#24283b";
|
|
text = "#c0caf5";
|
|
background = "#1a1b26";
|
|
};
|
|
slider = {
|
|
puck = "#565f89";
|
|
backgroundhover = "#414868";
|
|
background = "#565f89";
|
|
primary = "#bb9af7";
|
|
};
|
|
progressbar = {
|
|
background = "#414868";
|
|
foreground = "#bb9af7";
|
|
};
|
|
iconbuttons = {
|
|
active = "#bb9af7";
|
|
passive = "#c0caf5";
|
|
};
|
|
buttons = {
|
|
text = "#1a1b26";
|
|
disabled = "#565f89";
|
|
active = "#f7768e";
|
|
default = "#bb9af7";
|
|
};
|
|
switch = {
|
|
puck = "#565f89";
|
|
disabled = "#565f89";
|
|
enabled = "#bb9af7";
|
|
};
|
|
icons = {
|
|
active = "#bb9af7";
|
|
passive = "#414868";
|
|
};
|
|
listitems = {
|
|
active = "#bb9af7";
|
|
passive = "#c0caf5";
|
|
};
|
|
label = "#bb9af7";
|
|
feinttext = "#414868";
|
|
dimtext = "#414868";
|
|
cards = "#24283b";
|
|
check_radio_button.background = "#3b4261";
|
|
check_radio_button.active = "#bb9af7";
|
|
};
|
|
transparent = true;
|
|
background = "#1a1b26";
|
|
margin_sides = "0.0em";
|
|
location = "top";
|
|
};
|
|
osd = {
|
|
monitor = 1;
|
|
muted_zero = true;
|
|
label = "#bb9af7";
|
|
icon = "#1a1b26";
|
|
bar_overflow_color = "#f7768e";
|
|
bar_empty_color = "#414868";
|
|
bar_color = "#bb9af7";
|
|
icon_container = "#bb9af7";
|
|
bar_container = "#1a1b26";
|
|
};
|
|
notification = {
|
|
close_button.label = "#1a1b26";
|
|
close_button.background = "#f7768e";
|
|
labelicon = "#bb9af7";
|
|
text = "#c0caf5";
|
|
time = "#9aa5ce";
|
|
border = "#565f89";
|
|
label = "#bb9af7";
|
|
actions.text = "#24283b";
|
|
actions.background = "#bb9af7";
|
|
background = "#1a1b26";
|
|
};
|
|
font.size = "1.3rem";
|
|
};
|
|
notifications = {
|
|
monitor = 1;
|
|
active_monitor = false;
|
|
};
|
|
wallpaper = {
|
|
pywal = false;
|
|
image = "/home/cholli/Pictures/firewatch.jpg";
|
|
enable = false;
|
|
};
|
|
};
|
|
in
|
|
{
|
|
options.${namespace}.desktop.addons.hyprpanel = {
|
|
enable = mkEnableOption "Enable HyprIdle";
|
|
extraSettings = mkOption {
|
|
default = { };
|
|
inherit (settingsFormat) type;
|
|
description = ''
|
|
Additional Options to pass to hyprpanel
|
|
'';
|
|
example = literalExpression ''
|
|
{
|
|
|
|
}
|
|
'';
|
|
};
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
|
|
snowfallorg.users.${username}.home.config = {
|
|
wayland.windowManager.hyprland.settings.exec-once = [
|
|
"${pkgs.hyprpanel}/bin/hyprpanel"
|
|
];
|
|
};
|
|
|
|
${namespace}.home.file = {
|
|
".cache/ags/hyprpanel/options_test.json" = {
|
|
|
|
# source = pkgs.formats.json.generate "options.json" settings;
|
|
text = builtins.toJSON settings;
|
|
};
|
|
};
|
|
};
|
|
}
|