187 lines
7.9 KiB
Nix
187 lines
7.9 KiB
Nix
# Hyprpanel is the bar on top of the screen
|
|
# Display informations like workspaces, battery, wifi, ...
|
|
{ pkgs, config, inputs, ... }:
|
|
let
|
|
transparentButtons = config.var.theme.bar.transparentButtons;
|
|
|
|
accent = "#${config.lib.stylix.colors.base0D}";
|
|
accent-alt = "#${config.lib.stylix.colors.base03}";
|
|
background = "#${config.lib.stylix.colors.base00}";
|
|
background-alt = "#${config.lib.stylix.colors.base01}";
|
|
foreground = "#${config.lib.stylix.colors.base05}";
|
|
font = "${config.stylix.fonts.serif.name}";
|
|
fontSize = "${toString config.stylix.fonts.sizes.desktop}px";
|
|
|
|
rounding = config.var.theme.rounding;
|
|
border-size = config.var.theme.border-size;
|
|
|
|
gaps-out = config.var.theme.gaps-out;
|
|
gaps-in = config.var.theme.gaps-in;
|
|
|
|
floating = config.var.theme.bar.floating;
|
|
transparent = config.var.theme.bar.transparent;
|
|
position = config.var.theme.bar.position;
|
|
|
|
location = config.var.location;
|
|
username = config.var.username;
|
|
weatherapikey = config.var.weatherapikey;
|
|
in {
|
|
imports = [ inputs.hyprpanel.homeManagerModules.hyprpanel ];
|
|
|
|
programs.hyprpanel = {
|
|
enable = true;
|
|
systemd.enable = true;
|
|
hyprland.enable = true;
|
|
overwrite.enable = true;
|
|
layout = {
|
|
"bar.layouts" = {
|
|
"0" = {
|
|
left = [ "dashboard" "workspaces" ];
|
|
middle = [ "media" ];
|
|
right = [
|
|
"volume"
|
|
"network"
|
|
"bluetooth"
|
|
"battery"
|
|
"cputemp"
|
|
"systray"
|
|
"clock"
|
|
"notifications"
|
|
];
|
|
};
|
|
"*" = {
|
|
left = [ "dashboard" "workspaces" ];
|
|
middle = [ "clock" ];
|
|
right = [ "volume" "notifications" ];
|
|
};
|
|
};
|
|
};
|
|
override = {
|
|
theme.bar.buttons.workspaces.hover = accent-alt;
|
|
theme.bar.buttons.workspaces.active = accent;
|
|
theme.bar.buttons.workspaces.available = accent-alt;
|
|
theme.bar.buttons.workspaces.occupied = accent;
|
|
theme.bar.menus.background = background;
|
|
theme.bar.menus.card = background-alt;
|
|
theme.bar.menus.label = foreground;
|
|
theme.bar.menus.text = foreground;
|
|
theme.bar.menus.popover.text = foreground;
|
|
theme.bar.menus.popover.background = background-alt;
|
|
theme.bar.menus.card_radius = "${toString rounding}px";
|
|
theme.bar.menus.border.size = "${toString border-size}px";
|
|
theme.bar.menus.border.color = "${accent}";
|
|
theme.bar.menus.border.radius = "${toString rounding}px";
|
|
theme.bar.menus.listitems.active = "${accent}";
|
|
theme.bar.menus.icons.active = "${accent}";
|
|
theme.bar.menus.switch.enabled = "${accent}";
|
|
theme.bar.menus.check_radio_button.active = "${accent}";
|
|
theme.bar.menus.buttons.default = "${accent}";
|
|
theme.bar.menus.buttons.active = "${accent}";
|
|
theme.bar.menus.iconbuttons.active = "${accent}";
|
|
theme.bar.menus.progressbar.foreground = "${accent}";
|
|
theme.bar.menus.slider.primary = "${accent}";
|
|
theme.bar.menus.tooltip.background = "${background-alt}";
|
|
theme.bar.menus.tooltip.text = "${foreground}";
|
|
theme.bar.menus.dropdownmenu.background = "${background-alt}";
|
|
theme.bar.menus.dropdownmenu.text = "${foreground}";
|
|
theme.bar.margin_top =
|
|
"${if position == "top" then toString (gaps-in * 2) else "0"}px";
|
|
theme.bar.margin_bottom =
|
|
"${if position == "top" then "0" else toString (gaps-in * 2)}px";
|
|
theme.bar.margin_sides = "${toString gaps-out}px";
|
|
theme.bar.border_radius = "${toString rounding}px";
|
|
theme.bar.menus.monochrome = true;
|
|
theme.bar.buttons.monochrome = true;
|
|
theme.bar.outer_spacing = if floating && transparent then "0" else "8";
|
|
theme.bar.buttons.y_margins =
|
|
if floating && transparent then "0" else "8";
|
|
theme.bar.background =
|
|
"${background + (if transparentButtons then "00" else "")}";
|
|
theme.bar.buttons.background =
|
|
"${(if transparent then background else background-alt)
|
|
+ (if transparentButtons then "00" else "")}";
|
|
|
|
theme.bar.buttons.icon = "${accent}";
|
|
theme.bar.buttons.notifications.background = "${background-alt}";
|
|
theme.bar.buttons.hover = "${background}";
|
|
theme.bar.buttons.notifications.hover = "${background}";
|
|
theme.bar.buttons.notifications.total = "${accent}";
|
|
theme.bar.buttons.notifications.icon = "${accent}";
|
|
theme.notification.background = "${background-alt}";
|
|
theme.notification.actions.background = "${accent}";
|
|
theme.notification.actions.text = "${foreground}";
|
|
theme.notification.label = "${accent}";
|
|
theme.notification.border = "${background-alt}";
|
|
theme.notification.text = "${foreground}";
|
|
theme.notification.labelicon = "${accent}";
|
|
theme.osd.bar_color = "${accent}";
|
|
theme.osd.bar_overflow_color = "${accent-alt}";
|
|
theme.osd.icon = "${background}";
|
|
theme.osd.icon_container = "${accent}";
|
|
theme.osd.label = "${accent}";
|
|
theme.osd.bar_container = "${background-alt}";
|
|
theme.bar.menus.menu.media.background.color = "${background-alt}";
|
|
theme.bar.menus.menu.media.card.color = "${background-alt}";
|
|
theme.bar.menus.menu.media.card.tint = 90;
|
|
theme.bar.floating = if floating then "true" else "false";
|
|
theme.bar.buttons.padding_x = "0.6rem";
|
|
theme.bar.buttons.padding_y = "0.3rem";
|
|
theme.bar.buttons.spacing = "0.1em";
|
|
theme.bar.buttons.text = foreground;
|
|
theme.bar.location = position;
|
|
theme.bar.transparent = transparent;
|
|
theme.font.name = font;
|
|
theme.font.size = fontSize;
|
|
theme.bar.buttons.dashboard.spacing = "0.2em";
|
|
};
|
|
settings = {
|
|
bar.battery.hideLabelWhenFull = true;
|
|
bar.launcher.icon = "";
|
|
bar.clock.format = "%a, %d %b %H:%M";
|
|
menus.clock.time.military = true;
|
|
menus.clock.time.hideSeconds = true;
|
|
menus.clock.weather.unit = "metric";
|
|
menus.clock.weather.key = weatherapikey;
|
|
menus.clock.weather.location = location;
|
|
theme.osd.orientation = "vertical";
|
|
theme.osd.location = "left";
|
|
theme.osd.radius = "${toString rounding}px";
|
|
theme.osd.margins = "0px 0px 0px 10px";
|
|
theme.osd.muted_zero = true;
|
|
wallpaper.enable = false;
|
|
bar.media.show_active_only = true;
|
|
bar.workspaces.monitorSpecific = true;
|
|
bar.workspaces.hideUnoccupied = false;
|
|
bar.windowtitle.label = true;
|
|
bar.volume.label = false;
|
|
bar.network.truncation_size = 12;
|
|
bar.bluetooth.label = false;
|
|
menus.dashboard.powermenu.avatar.image =
|
|
"/home/${username}/.profile_picture.png";
|
|
menus.dashboard.powermenu.confirmation = false;
|
|
menus.dashboard.shortcuts.left.shortcut1.icon = "";
|
|
menus.dashboard.shortcuts.left.shortcut1.command = "firefox";
|
|
menus.dashboard.shortcuts.left.shortcut1.tooltip = "Firefox";
|
|
menus.dashboard.shortcuts.left.shortcut2.icon = "";
|
|
menus.dashboard.shortcuts.left.shortcut2.command = "caffeine";
|
|
menus.dashboard.shortcuts.left.shortcut2.tooltip = "Caffeine";
|
|
menus.dashboard.shortcuts.left.shortcut3.icon = "";
|
|
menus.dashboard.shortcuts.left.shortcut3.command = "night-shift";
|
|
menus.dashboard.shortcuts.left.shortcut3.tooltip = "Night-shift";
|
|
menus.dashboard.shortcuts.left.shortcut4.icon = "";
|
|
menus.dashboard.shortcuts.left.shortcut4.command = "menu";
|
|
menus.dashboard.shortcuts.left.shortcut4.tooltip = "Search Apps";
|
|
menus.dashboard.shortcuts.right.shortcut1.icon = "";
|
|
menus.dashboard.shortcuts.right.shortcut1.command = "hyprpicker -a";
|
|
menus.dashboard.shortcuts.right.shortcut1.tooltip = "Color Picker";
|
|
menus.dashboard.shortcuts.right.shortcut3.icon = "";
|
|
menus.dashboard.shortcuts.right.shortcut3.command =
|
|
"screenshot region swappy";
|
|
menus.dashboard.shortcuts.right.shortcut3.tooltip = "Screenshot";
|
|
menus.dashboard.stats.enabled = false;
|
|
bar.customModules.cpuTemp.sensor =
|
|
"/sys/devices/platform/thinkpad_hwmon/hwmon/hwmon5/temp1_input";
|
|
};
|
|
};
|
|
}
|