Port iogamasters hyprland config
This commit is contained in:
80
modules/home/hyprland/waybar/config.jsonc
Normal file
80
modules/home/hyprland/waybar/config.jsonc
Normal file
@ -0,0 +1,80 @@
|
||||
{
|
||||
"layer": "top",
|
||||
"position": "top",
|
||||
"mod": "dock",
|
||||
"exclusive": true,
|
||||
"passtrough": false,
|
||||
"gtk-layer-shell": true,
|
||||
"height": 32,
|
||||
|
||||
"modules-left": [
|
||||
"hyprland/workspaces"
|
||||
],
|
||||
|
||||
"modules-center": [],
|
||||
|
||||
"modules-right": [
|
||||
"tray",
|
||||
"network",
|
||||
"battery",
|
||||
"clock"
|
||||
],
|
||||
|
||||
"hyprland/window": {
|
||||
"format": "{}"
|
||||
},
|
||||
|
||||
"hyprland/workspaces": {
|
||||
"on-scroll-up": "hyprctl dispatch workspace e+1",
|
||||
"on-scroll-down": "hyprctl dispatch workspace e-1",
|
||||
"all-outputs": true,
|
||||
"on-click": "activate",
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"1": "1",
|
||||
"2": "2",
|
||||
"3": "3",
|
||||
"4": "4",
|
||||
"5": "5",
|
||||
"6": "6",
|
||||
"7": "7",
|
||||
"8": "8",
|
||||
"9": "9",
|
||||
"10": "10"
|
||||
}
|
||||
},
|
||||
|
||||
"tray": {
|
||||
"icon-size": 12,
|
||||
"tooltip": false,
|
||||
"spacing": 10
|
||||
},
|
||||
|
||||
"clock": {
|
||||
"format": "{:%H:%M}",
|
||||
},
|
||||
|
||||
"pulseaudio": {
|
||||
"format": " {volume}%",
|
||||
"tooltip": false,
|
||||
"format-muted": " N/A",
|
||||
"on-click": "pavucontrol &",
|
||||
"scroll-step": 5
|
||||
},
|
||||
|
||||
"network": {
|
||||
"format-wifi": " {essid} {signalStrength}%",
|
||||
"format-ethernet": "",
|
||||
"format-disconnected": ""
|
||||
},
|
||||
|
||||
"battery": {
|
||||
"states": {
|
||||
"warning": 20,
|
||||
"critical": 15
|
||||
},
|
||||
"format": " {capacity}%",
|
||||
"format-charging": " {capacity}%",
|
||||
"format-plugged": " {capacity}%"
|
||||
}
|
||||
}
|
228
modules/home/hyprland/waybar/default.nix
Normal file
228
modules/home/hyprland/waybar/default.nix
Normal file
@ -0,0 +1,228 @@
|
||||
{
|
||||
options,
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
with lib.frajul;
|
||||
let
|
||||
cfg = config.modules.desktop.addons.waybar;
|
||||
inherit (inputs.nix-colors.colorschemes.${builtins.toString config.modules.desktop.colorscheme})
|
||||
palette
|
||||
;
|
||||
in
|
||||
{
|
||||
options.modules.desktop.addons.waybar = with types; {
|
||||
enable = mkBoolOpt false "Enable or disable waybar";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
systemd.enable = true;
|
||||
};
|
||||
|
||||
xdg.configFile."waybar/config.jsonc" = {
|
||||
source = ./config.jsonc;
|
||||
onChange = ''
|
||||
${pkgs.busybox}/bin/pkill -SIGUSR2 waybar
|
||||
'';
|
||||
};
|
||||
xdg.configFile."waybar/style.css" = {
|
||||
text = ''
|
||||
* {
|
||||
/* `otf-font-awesome` is required to be installed for icons */
|
||||
font-family: JetBrainsMono Nerd Font;
|
||||
font-size: 13px;
|
||||
border-radius: 17px;
|
||||
}
|
||||
|
||||
#clock,
|
||||
#custom-notification,
|
||||
#custom-launcher,
|
||||
#custom-power-menu,
|
||||
/*#custom-colorpicker,*/
|
||||
#custom-window,
|
||||
#memory,
|
||||
#disk,
|
||||
#network,
|
||||
#battery,
|
||||
#custom-spotify,
|
||||
#pulseaudio,
|
||||
#window,
|
||||
#tray {
|
||||
padding: 5 15px;
|
||||
border-radius: 12px;
|
||||
background: #${palette.base00};
|
||||
color: #${palette.base07};
|
||||
margin-top: 8px;
|
||||
margin-bottom: 8px;
|
||||
margin-right: 2px;
|
||||
margin-left: 2px;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
#window {
|
||||
background-color: transparent;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background-color: rgba(0, 0, 0, 0.096);
|
||||
border-radius: 17px;
|
||||
}
|
||||
|
||||
window * {
|
||||
background-color: transparent;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
#workspaces button label {
|
||||
color: #${palette.base07};
|
||||
}
|
||||
|
||||
#workspaces button.active label {
|
||||
color: #${palette.base00};
|
||||
font-weight: bolder;
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
box-shadow: #${palette.base07} 0 0 0 1.5px;
|
||||
background-color: #${palette.base00};
|
||||
min-width: 50px;
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
background-color: transparent;
|
||||
border-radius: 17px;
|
||||
padding: 5 0px;
|
||||
margin-top: 3px;
|
||||
margin-bottom: 3px;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
background-color: #${palette.base00};
|
||||
border-radius: 12px;
|
||||
margin-left: 10px;
|
||||
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
min-width: 50px;
|
||||
box-shadow: rgba(0, 0, 0, 0.288) 2 2 5 2px;
|
||||
background-color: #${palette.base0F};
|
||||
background-size: 400% 400%;
|
||||
transition: all 0.3s ease;
|
||||
background: linear-gradient(
|
||||
58deg,
|
||||
#${palette.base0E},
|
||||
#${palette.base0E},
|
||||
#${palette.base0E},
|
||||
#${palette.base0D},
|
||||
#${palette.base0D},
|
||||
#${palette.base0E},
|
||||
#${palette.base08}
|
||||
);
|
||||
background-size: 300% 300%;
|
||||
animation: colored-gradient 20s ease infinite;
|
||||
}
|
||||
|
||||
@keyframes colored-gradient {
|
||||
0% {
|
||||
background-position: 71% 0%;
|
||||
}
|
||||
50% {
|
||||
background-position: 30% 100%;
|
||||
}
|
||||
100% {
|
||||
background-position: 71% 0%;
|
||||
}
|
||||
}
|
||||
|
||||
#custom-power-menu {
|
||||
margin-right: 10px;
|
||||
padding-left: 12px;
|
||||
padding-right: 15px;
|
||||
padding-top: 3px;
|
||||
}
|
||||
|
||||
#custom-spotify {
|
||||
margin-left: 5px;
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
padding-top: 3px;
|
||||
color: #${palette.base07};
|
||||
background-color: #${palette.base00};
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
#custom-spotify.playing {
|
||||
color: rgb(180, 190, 254);
|
||||
background: rgba(30, 30, 46, 0.6);
|
||||
background: linear-gradient(
|
||||
90deg,
|
||||
#${palette.base02},
|
||||
#${palette.base00},
|
||||
#${palette.base00},
|
||||
#${palette.base00},
|
||||
#${palette.base00},
|
||||
#${palette.base02}
|
||||
);
|
||||
background-size: 400% 100%;
|
||||
animation: grey-gradient 3s linear infinite;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
@keyframes grey-gradient {
|
||||
0% {
|
||||
background-position: 100% 50%;
|
||||
}
|
||||
100% {
|
||||
background-position: -33% 50%;
|
||||
}
|
||||
}
|
||||
|
||||
#tray menu {
|
||||
background-color: #${palette.base00};
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
#pulseaudio.muted {
|
||||
color: #${palette.base08};
|
||||
padding-right: 16px;
|
||||
}
|
||||
|
||||
#custom-notification.collapsed,
|
||||
#custom-notification.waiting_done {
|
||||
min-width: 12px;
|
||||
padding-right: 17px;
|
||||
}
|
||||
|
||||
#custom-notification.waiting_start,
|
||||
#custom-notification.expanded {
|
||||
background-color: transparent;
|
||||
background: linear-gradient(
|
||||
90deg,
|
||||
#${palette.base02},
|
||||
#${palette.base00},
|
||||
#${palette.base00},
|
||||
#${palette.base00},
|
||||
#${palette.base00},
|
||||
#${palette.base02}
|
||||
);
|
||||
background-size: 400% 100%;
|
||||
animation: grey-gradient 3s linear infinite;
|
||||
min-width: 500px;
|
||||
border-radius: 17px;
|
||||
}
|
||||
'';
|
||||
onChange = ''
|
||||
${pkgs.busybox}/bin/pkill -SIGUSR2 waybar
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user