Big omen laptop migration

This commit is contained in:
Alexander Derevianko
2025-08-01 21:25:58 +02:00
parent 9bd163a32c
commit 2ed1f0163c
40 changed files with 3012 additions and 8 deletions
+299
View File
@@ -0,0 +1,299 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.dov.bar.waybar;
color = config.lib.stylix.colors;
backgound-color = color.base01;
icon-color = color.base0A;
in {
options.dov.bar.waybar.enable = mkEnableOption "waybar option";
config = mkIf cfg.enable {
home.packages = with pkgs; [
wlogout
];
programs.waybar = {
enable = true;
settings = {
mainBar = {
include = [ "~/.config/waybar/config.json" ];
layer = "top";
position = "top";
margin-top = 5;
margin-bottom = 5;
margin-left = 5;
margin-right = 5;
height = 15;
modules-left = [
# "custom/launcher"
"hyprland/workspaces"
"custom/media"
"hyprland/window"
];
modules-center = [
"clock"
];
modules-right = [
"tray"
"idle_inhibitor"
"hyprland/language"
"memory"
"cpu"
"backlight#value"
"pulseaudio"
"pulseaudio#microphone"
"network"
"battery"
"custom/power"
];
"clock" = {
format = "{:%H:%M, %d, %B, %Y} ";
format-alt = "{%R, :%A, %d %B, %Y} ";
tooltip-format = "<tt><small>{calendar}</small></tt>";
calendar = {
mode = "year";
mode-mon-col = 3;
weeks-pos = "right";
on-scroll = 1;
on-click-right = "mode";
format = {
months = "<span color='#${icon-color}'><b>{}</b></span>";
days = "<span color='#${icon-color}'><b>{}</b></span>";
weeks = "<span color='#${icon-color}'><b>W{}</b></span>";
weekdays = "<span color='#${icon-color}'><b>{}</b></span>";
today = "<span color='#${icon-color}'><b><u>{}</u></b></span>";
};
};
actions = {
on-click-right = "mode";
on-click-forward = "tz_up";
on-click-backward = "tz_down";
on-scroll-up = "shift_up";
on-scroll-down = "shift_down";
};
};
};
};
style = lib.mkForce ''
@keyframes blink-warning {
70% {
color: white;
}
to {
color: white;
background-color: orange;
}
}
@keyframes blink-critical {
70% {
color: white;
}
to {
color: white;
background-color: red;
}
}
/* Reset all styles */
* {
border: none;
border-radius: 0;
min-height: 0;
margin: 1px;
padding: 0;
color: #${icon-color};
}
/* The whole bar */
window#waybar {
background-color: rgba(0,0,0,0);
font-family: Intel One Mono Nerd Font;
font-size: 14px;
}
/* Every modules */
#battery,
#clock,
#backlight,
#cpu,
#custom-keyboard-layout,
#memory,
#mode,
#custom-weather,
#network,
#pulseaudio,
#temperature,
#tray,
#idle_inhibitor,
#window,
#workspaces,
#custom-media,
#language,
#custom-power,
#custom-PBPbattery {
padding:0.25rem 0.75rem;
margin: 1px 6px;
background-color: #${backgound-color};
border-radius: 20px;
}
#clock {
color: #${icon-color};
}
#custom-weather {
color: #ff4499;
}
#battery {
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
#battery.warning {
color: orange;
}
#battery.critical {
color: red;
}
#battery.warning.discharging {
animation-name: blink-warning;
animation-duration: 3s;
}
#battery.critical.discharging {
animation-name: blink-critical;
animation-duration: 2s;
}
#cpu {
color: #${icon-color};
}
#cpu.warning {
color: orange;
}
#cpu.critical {
color: red;
}
#memory {
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
color: #${icon-color};
}
#memory.warning {
color: orange;
}
#memory.critical {
color: red;
animation-name: blink-critical;
animation-duration: 2s;
padding-left:5px;
padding-right:5px;
}
#mode {
border-bottom: 3px transparent;
color:#ff4499;
margin-left: 5px;
padding: 7px;
}
#network.disconnected {
color: orange;
}
#pulseaudio {
color: #${icon-color};
border-left: 0px;
border-right: 0px;
margin-right: 0;
border-radius: 20px 0 0 20px;
}
#pulseaudio.microphone {
border-left: 0px;
border-right: 0px;
margin-left: 0;
padding-left: 0;
border-radius: 0 20px 20px 0;
}
#temperature.critical {
color: red;
}
#window {
font-weight: bold;
color: #${icon-color};
}
#custom-media {
color: #bb9af7;
}
#workspaces {
font-size:16px;
background-color: #${backgound-color};
border-radius: 20px;
}
#workspaces button {
border-bottom: 3px solid transparent;
margin-bottom: 0px;
color: #dfdfdf;
}
#workspaces button.active {
border-bottom: 1px solid #${color.base0B};
margin-bottom: 1px;
padding-left:0;
}
#workspaces button.urgent {
border-color: #c9545d;
color: #c9545d;
}
#custom-power {
font-size:18px;
padding-right: 1rem;
}
#custom-launcher {
font-size:15px;
margin-left:15px;
margin-right:10px;
}
#backlight.icon {
padding-right:1px;
font-size: 13px;
}
'';
};
home.file.".config/waybar/config.json".source = ./waybar4.json;
};
}
+203
View File
@@ -0,0 +1,203 @@
// Global
{
// Modules
"battery": {
"states": {
"warning": 30,
"critical": 15
},
"format": "{capacity}% {icon} ",
"format-charging": "{capacity}% ",
"format-plugged": "{capacity}% ",
"format-icons": ["", "", "", "", ""]
},
"custom/PBPbattery": {
"exec": "~/.config/waybar/scripts/PBPbattery.sh",
"format": "{}",
},
"cpu": {
"interval": 5,
"format": " {usage}% ({load})", // Icon: microchip
"states": {
"warning": 70,
"critical": 90,
},
"on-click": "kitty -e 'btm'",
},
"hyprland/language": {
"format": " {}",
"format-en": "us",
"format-ru": "ru",
"format-ua": "ua",
"keyboard-name": "at-translated-set-2-keyboard"
},
"custom/keyboard-layout": {
"exec": "swaymsg -t get_inputs | grep -m1 'xkb_active_layout_name' | cut -d '\"' -f4",
// Interval set only as a fallback, as the value is updated by signal
"interval": 30,
"format": " {}", // Icon: keyboard
// Signal sent by Sway key binding (~/.config/sway/key-bindings)
"signal": 1, // SIGHUP
"tooltip": false,
"on-click": "~/.config/waybar/scripts/keyhint.sh",
},
"memory": {
"interval": 5,
"format": " {}%", // Icon: memory
"on-click": "kitty -e 'btm'",
"states": {
"warning": 70,
"critical": 90
}
},
"network": {
"interval": 5,
"format-wifi": " ", // Icon: wifi
"format-ethernet": " ", // Icon: ethernet
"format-disconnected": "⚠ Disconnected",
"tooltip-format": "{ifname}: {ipaddr}",
"on-click": "kitty -e 'nmtui'",
},
"network#vpn": {
"interface": "tun0",
"format": " ",
"format-disconnected": "⚠ Disconnected",
"tooltip-format": "{ifname}: {ipaddr}/{cidr}",
},
"hyprland/mode": {
"format": "{}",
"tooltip": false
},
"hyprland/window": {
"format": "{}",
"max-length": 120
},
"hyprland/workspaces": {
"disable-scroll": true,
"disable-markup" : false,
"all-outputs": true,
"format": " {icon} ",
//"format":"{icon}",
"format-icons": {
"1": "",
"2": "",
"3": ""
}
},
"pulseaudio": {
"scroll-step": 1, // %, can be a float
"format": "{icon} {volume}%",
"format-bluetooth": "{volume}% {icon}  {format_source}",
"format-bluetooth-muted": " {icon}  {format_source}",
"format-muted": "",
"format-icons": {
"headphone": "",
"hands-free": "וֹ",
"headset": "  ",
"phone": "",
"portable": "",
"car": "",
"default": [""]
},
"on-click": "amixer -q sset Master toggle",
"on-click-right": "pavucontrol",
"on-scroll-up": "amixer -q sset Master 10%-",
"on-scroll-down": "amixer -q sset Master 10%+",
},
"pulseaudio#microphone": {
"format": "{format_source}",
"format-source": " {volume}%",
"format-source-muted": " ",
"on-click": "pamixer --default-source -t",
"on-click-right": "pavucontrol",
"on-scroll-up": "pamixer --default-source -i 5",
"on-scroll-down": "pamixer --default-source -d 5",
"scroll-step": 5
},
// to use the weather module replace <your_location> with your city or town
// note: do not use spaces: new york would be newyork
"custom/weather": {
"exec": "~/.config/waybar/scripts/weather.sh tampa",
"return-type": "json",
"interval": 600,
},
"tray": {
"icon-size": 18,
"spacing":10,
},
"backlight#icon": {
"format": "{icon}",
"format-icons": [""],
"on-scroll-down": "brightnessctl -c backlight set 1%-",
"on-scroll-up": "brightnessctl -c backlight set +1%"
},
"backlight#value" :{
"format": "{percent}%",
"on-scroll-down": "brightnessctl -c backlight set 1%-",
"on-scroll-up": "brightnessctl -c backlight set +1%"
},
"custom/firefox": {
"format": " ",
"on-click": "exec firefox",
"tooltip": false
},
"custom/terminal": {
"format": " ",
"on-click": "exec kitty",
"tooltip": false
},
"custom/files": {
"format": " ",
"on-click": "exec nautilus",
"tooltip": false
},
"custom/launcher": {
"format":" ",
"on-click": "exec wofi -c ~/.config/wofi/config -I",
"tooltip": false,
},
"custom/media": {
"format": "{icon} {}",
"return-type": "json",
"max-length": 40,
"format-icons": {
"spotify": "",
"default": "󰗃"
},
"escape": true,
"exec": "/usr/bin/python3 $HOME/.config/waybar/scripts/mediaplayer.py 2> /dev/null" // Script in resources folder
},
"custom/power": {
"format": "",
"on-click": "wlogout"
},
"idle_inhibitor": {
"format": "{icon}",
"format-icons": {
"activated": "",
"deactivated": ""
}
}
}