2025-03-01 15:04:56 +01:00
|
|
|
{
|
|
|
|
pkgs,
|
|
|
|
inputs,
|
2025-03-09 11:25:26 +01:00
|
|
|
common,
|
|
|
|
theme,
|
2025-03-01 15:04:56 +01:00
|
|
|
lib,
|
|
|
|
...
|
|
|
|
}:
|
2025-03-09 11:25:26 +01:00
|
|
|
|
2025-01-09 19:52:08 +01:00
|
|
|
{
|
|
|
|
imports = [ inputs.hyprpanel.homeManagerModules.hyprpanel ];
|
|
|
|
|
|
|
|
programs.hyprpanel = {
|
|
|
|
enable = true;
|
|
|
|
# Add hyprpanel to the Hyprland config 'exec-once'.
|
|
|
|
hyprland.enable = true;
|
|
|
|
# Fix the overwrite issue with HyprPanel.
|
|
|
|
overwrite.enable = true;
|
|
|
|
|
|
|
|
# Override the final config with an arbitrary set.
|
|
|
|
# Useful for overriding colors in your selected theme.
|
2025-04-12 18:51:28 +02:00
|
|
|
# TODO fixes theming bugs in recent versions, should be removed when fixed
|
2025-01-09 19:52:08 +01:00
|
|
|
override = {
|
2025-04-12 18:51:28 +02:00
|
|
|
theme = {
|
|
|
|
bar.transparent = true;
|
|
|
|
font = {
|
|
|
|
name = "${theme.nerdFont} NF";
|
|
|
|
size = "15px";
|
|
|
|
};
|
|
|
|
};
|
2025-01-09 19:52:08 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
# Configure and theme almost all options from the GUI.
|
|
|
|
# Options that require '{}' or '[]' are not yet implemented,
|
|
|
|
# except for the layout above.
|
|
|
|
# See 'https://hyprpanel.com/configuration/settings.html'.
|
|
|
|
# Default: <same as gui>
|
|
|
|
settings = {
|
|
|
|
bar = {
|
|
|
|
clock.format = "%a %b %d %H:%M";
|
|
|
|
customModules.kbLayout.leftClick = "hyprctl switchxkblayout keychron-keychron-k8-pro next";
|
|
|
|
launcher.autoDetectIcon = true;
|
|
|
|
network.label = false;
|
2025-04-13 11:40:05 +02:00
|
|
|
volume =
|
|
|
|
let
|
|
|
|
step = 1;
|
|
|
|
in
|
|
|
|
{
|
|
|
|
scrollDown = "${pkgs.hyprpanel}/bin/hyprpanel 'vol -${step}'";
|
|
|
|
scrollUp = "${pkgs.hyprpanel}/bin/hyprpanel 'vol +${step}'";
|
|
|
|
};
|
2025-01-09 19:52:08 +01:00
|
|
|
workspaces = {
|
|
|
|
show_icons = false;
|
|
|
|
show_numbered = true;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2025-04-12 17:05:38 +02:00
|
|
|
# Configure bar layouts for monitors.
|
|
|
|
layout = {
|
|
|
|
"bar.layouts" = {
|
|
|
|
"*" = {
|
|
|
|
left = [
|
|
|
|
"dashboard"
|
|
|
|
"workspaces"
|
|
|
|
"windowtitle"
|
|
|
|
];
|
|
|
|
middle = [ "media" ];
|
|
|
|
right = [
|
|
|
|
"kbinput"
|
|
|
|
"volume"
|
|
|
|
"network"
|
|
|
|
"systray"
|
|
|
|
"clock"
|
|
|
|
"notifications"
|
|
|
|
];
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2025-01-09 21:49:54 +01:00
|
|
|
menus = {
|
|
|
|
clock = {
|
|
|
|
time = {
|
|
|
|
military = true;
|
|
|
|
hideSeconds = true;
|
|
|
|
};
|
|
|
|
weather = {
|
|
|
|
unit = "metric";
|
2025-03-01 15:04:56 +01:00
|
|
|
location = "Bergen, Norway";
|
2025-04-12 20:25:10 +02:00
|
|
|
key = with lib.custom; getSecret (relativeToRoot "shared/secrets/weather-api-key");
|
2025-01-09 21:49:54 +01:00
|
|
|
};
|
2025-01-09 19:52:08 +01:00
|
|
|
};
|
|
|
|
|
2025-01-09 21:49:54 +01:00
|
|
|
dashboard = {
|
|
|
|
directories.enabled = false;
|
2025-03-09 11:53:49 +01:00
|
|
|
powermenu.avatar.image = "${theme.avatar.image}";
|
2025-01-09 21:49:54 +01:00
|
|
|
shortcuts.left = {
|
|
|
|
shortcut1 = {
|
|
|
|
command = common.default.browser;
|
|
|
|
icon = ""; # TODO replace with Zen icon
|
2025-03-09 11:25:26 +01:00
|
|
|
tooltip = "Zen Browser";
|
2025-01-09 21:49:54 +01:00
|
|
|
};
|
|
|
|
shortcut2 = {
|
|
|
|
command = "spotify";
|
|
|
|
icon = "";
|
|
|
|
tooltip = "Spotify";
|
|
|
|
};
|
|
|
|
## shortcut3 === discord
|
|
|
|
## shortcut4 === rofi -show drun
|
2025-01-09 19:52:08 +01:00
|
|
|
};
|
2025-01-09 21:49:54 +01:00
|
|
|
stats.enable_gpu = true;
|
2025-01-09 19:52:08 +01:00
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
scalingPriority = "hyprland";
|
|
|
|
|
|
|
|
theme = {
|
|
|
|
bar.transparent = true;
|
|
|
|
font = {
|
|
|
|
name = "${theme.nerdFont} NF";
|
|
|
|
size = "16px";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2025-03-02 08:19:45 +01:00
|
|
|
wallpaper.enable = false;
|
2025-01-09 19:52:08 +01:00
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|