Big omen laptop migration
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./waybar
|
||||
];
|
||||
}
|
||||
@@ -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;
|
||||
};
|
||||
}
|
||||
@@ -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": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user