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
+7
View File
@@ -0,0 +1,7 @@
{ config, lib, pkgs, ... }:
{
imports = [
./waybar
];
}
+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": ""
}
}
}
+7
View File
@@ -0,0 +1,7 @@
{ config, lib, pkgs, ... }:
{
imports = [
./zen
];
}
+15
View File
@@ -0,0 +1,15 @@
{ inputs, config, lib, pkgs, ... }:
with lib;
let
cfg = config.dov.browser.zen;
in {
options.dov.browser.zen.enable = mkEnableOption "zen config";
config = mkIf cfg.enable {
home.packages = with pkgs; [
inputs.zen-browser.packages."${system}".default
];
};
}
+6
View File
@@ -3,5 +3,11 @@
{
imports = [
./shell
./window-manager
./bar
./launcher
./random
./browser
./terminal
];
}
+7
View File
@@ -0,0 +1,7 @@
{ config, lib, pkgs, ... }:
{
imports = [
./wofi
];
}
+15
View File
@@ -0,0 +1,15 @@
{ config, lib, pkgs, ... }:
with lib;
let cfg = config.dov.launcher.wofi;
in {
options.dov.launcher.wofi.enable = mkEnableOption "wofi configuration";
config = mkIf cfg.enable {
home.packages = [ pkgs.wofi ];
};
}
+7
View File
@@ -0,0 +1,7 @@
{ config, lib, pkgs, ... }:
{
imports = [
./kanshi
];
}
+8
View File
@@ -0,0 +1,8 @@
profile LAPTOP_ONLY {
output eDP-1 enable
}
profile HOME {
output eDP-1 mode 2560x1440 position 480,1440
output DP-3 mode 3440x1440 position 0,0
}
+61
View File
@@ -0,0 +1,61 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.dov.kanshi;
in {
options.dov.kanshi.enable = mkEnableOption "kanshi config";
config = mkIf cfg.enable {
home.packages = with pkgs; [ kanshi ];
services.kanshi = {
enable = true;
settings = [
{
profile = {
name = "default";
outputs = [
{
criteria = "eDP-1";
}
];
};
}
{
profile = {
name = "home";
outputs = [
{
criteria = "eDP-1";
position = "480,1440";
}
{
criteria = "LG Electronics LG ULTRAWIDE 201NTTQC5617";
position = "0,0";
mode = "3440x1440";
}
];
};
}
{
profile = {
name = "reserve-home";
outputs = [
{
criteria = "eDP-1";
position = "480,1440";
}
{
criteria = "DP-5";
position = "0,0";
mode = "3440x1440";
}
];
};
}
];
};
};
}
+7
View File
@@ -0,0 +1,7 @@
{ config, lib, pkgs, ... }:
{
imports = [
./starship
];
}
@@ -0,0 +1,33 @@
{ config, lib, pkgs, ... }:
with lib;
let cfg = config.dov.shell.addition.starship;
in {
options.dov.shell.addition.starship.enable = mkEnableOption "starship configuration";
config = mkIf cfg.enable {
programs.starship = {
enable = true;
enableZshIntegration = config.dov.shell.zsh.enable;
# TODO for now no bash - no integration
#enableBashIntegration = config.dov.shell.bash.enable;
settings = {
nix_shell = {
disabled = false;
impure_msg = "";
symbol = "";
format = "[$symbol$state]($style) ";
};
shlvl = {
disabled = false;
symbol = "λ ";
};
haskell.symbol = " ";
openstack.disabled = true;
gcloud.disabled = true;
};
};
};
}
+1
View File
@@ -3,5 +3,6 @@
{
imports = [
./zsh
./addition
];
}
+17
View File
@@ -0,0 +1,17 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.dov.terminal.alacritty;
in {
options.dov.terminal.alacritty.enable = mkEnableOption "alacritty configuration";
config = mkIf cfg.enable {
programs = {
alacritty = {
enable = true;
};
};
};
}
+7
View File
@@ -0,0 +1,7 @@
{ config, lib, pkgs, ... }:
{
imports = [
./alacritty
];
}
+7
View File
@@ -0,0 +1,7 @@
{ config, lib, pkgs, ... }:
{
imports = [
./hypr
];
}
+249
View File
@@ -0,0 +1,249 @@
{ config, lib, pkgs, inputs, ... }:
with lib;
let
colors = config.lib.stylix.colors;
cfg = config.dov.window-manager.hypr;
in {
options.dov.window-manager.hypr.enable = mkEnableOption "hypr configuration";
config = mkIf cfg.enable {
home.packages = with pkgs; [
swww
mako
pipewire
wireplumber
libnotify
kitty
jq # used in lock to get language
wayland-protocols
#hyprland extensions
hyprlock
hypridle
];
wayland.windowManager.hyprland = {
enable = true;
xwayland.enable = true;
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
plugins = [
inputs.split-monitor-workspaces.packages.${pkgs.system}.split-monitor-workspaces
];
settings = {
monitor = ",highres,auto,1";
source = "~/.config/hypr/colors";
env = [
"LIBVA_DRIVER_NAME,nvidia"
"XDG_SESSION_TYPE,wayland"
"WLR_NO_HARDWARE_CURSORS,1"
];
#Autostart
exec = [
# Fix slow startup
"systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
"dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
];
exec-once = [
"mako"
"polkit-kde-agent"
"emacs --fg-daemon"
"hypridle"
"kanshi"
"virsh net-start default"
#"thunderbird"
#"element-desktop"
"keepassxc"
"dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
] ++ lib.optionals config.dov.bar.waybar.enable [ "waybar" ];
"$mainMod" = "SUPER";
bind = [
"$mainMod, G, fullscreen,"
"$mainMod, t, togglegroup"
"$mainMod, v, togglefloating"
"$mainMod, s, togglesplit"
#bind = $mainMod, RETURN, exec, kitty
"$mainMod, RETURN, exec, alacritty"
"$mainMod, o, exec, emacsclient -c"
"SUPER_SHIFT, RETURN, exec, thunar"
"SUPER_SHIFT, l, exec, hyprctl switchxkblayout at-translated-set-2-keyboard 0 && hyprlock"
#bind = $mainMod, M, exit,
"SUPER_SHIFT, q, killactive,"
# Switch Keyboard Layouts
"$mainMod, SPACE, exec, hyprctl switchxkblayout teclado-gamer-husky-blizzard next"
", Print, exec, grim -g \"$(slurp)\" - | wl-copy"
"SHIFT, Print, exec, IMG=~/Pictures/$(date +%Y-%m-%d_%H-%m-%s).png && grim -g \"$(slurp)\" $IMG"
# Functional keybinds
",XF86AudioMicMute,exec,pamixer --default-source -t"
",XF86MonBrightnessDown,exec,brightnessctl s 20-"
",XF86MonBrightnessUp,exec,brightnessctl s 20+"
",XF86AudioMute,exec,amixer -q sset Master toggle"
",XF86AudioLowerVolume,exec,amixer -q sset Master 5%-"
",XF86AudioRaiseVolume,exec,amixer -q sset Master 5%+"
",XF86AudioPlay,exec,playerctl play-pause"
",XF86AudioPause,exec,playerctl play-pause"
# to switch between windows in a floating workspace
"SUPER,Tab,changegroupactive, f"
"SUPER_SHIFT,Tab,changegroupactive, b"
# Move focus with mainMod + arrow keys
"$mainMod, h, movefocus, l"
"$mainMod, l, movefocus, r"
"$mainMod, k, movefocus, u"
"$mainMod, j, movefocus, d"
# Switch workspaces with mainMod + [0-9]
"$mainMod, 1, split-workspace, 1"
"$mainMod, 2, split-workspace, 2"
"$mainMod, 3, split-workspace, 3"
"$mainMod, 4, split-workspace, 4"
"$mainMod, 5, split-workspace, 5"
"$mainMod, 6, split-workspace, 6"
"$mainMod, 7, split-workspace, 7"
"$mainMod, 8, split-workspace, 8"
"$mainMod, 9, split-workspace, 9"
"$mainMod, 0, split-workspace, 10"
# Move active window to a workspace with mainMod + SHIFT + [0-9]
"$mainMod SHIFT, 1, split-movetoworkspace, 1"
"$mainMod SHIFT, 2, split-movetoworkspace, 2"
"$mainMod SHIFT, 3, split-movetoworkspace, 3"
"$mainMod SHIFT, 4, split-movetoworkspace, 4"
"$mainMod SHIFT, 5, split-movetoworkspace, 5"
"$mainMod SHIFT, 6, split-movetoworkspace, 6"
"$mainMod SHIFT, 7, split-movetoworkspace, 7"
"$mainMod SHIFT, 8, split-movetoworkspace, 8"
"$mainMod SHIFT, 9, split-movetoworkspace, 9"
"$mainMod SHIFT, 0, split-movetoworkspace, 10"
# Scroll through existing workspaces with mainMod + scroll
"$mainMod, mouse_down, split-workspace, e+1"
"$mainMod, mouse_up, split-workspace, e-1"
"$mainMod,SPACE, exec, hyprctl switchxkblayout at-translated-set-2-keyboard next"
] ++ lib.optionals config.dov.launcher.wofi.enable [
"$mainMod, p, exec, wofi --show drun"
];
bindm = [
"$mainMod, mouse:272, movewindow"
"$mainMod, mouse:273, resizewindow"
"ALT, mouse:272, resizewindow"
];
input = {
kb_layout = "us,ru,ua";
kb_options = "grp:win_space_toggle";
follow_mouse = 1;
touchpad = {
natural_scroll = false;
};
sensitivity = 0;
};
general = {
gaps_in = 5;
gaps_out = 20;
border_size = 2;
"col.active_border" = lib.mkForce "rgba(33ccffee) rgba(00ff99ee) 45deg";
"col.inactive_border" = lib.mkForce "rgba(595959aa)";
layout = "dwindle";
};
decoration = {
rounding = 10;
shadow = {
enabled = true;
range = 4;
render_power = 3;
};
};
animations = {
enabled = "yes";
bezier = "ease,0.4,0.02,0.21,1";
animation = [
"windows, 1, 3.5, ease, slide"
"windowsOut, 1, 3.5, ease, slide"
"border, 1, 6, default"
"fade, 1, 3, ease"
"workspaces, 1, 3.5, ease"
];
};
dwindle = {
pseudotile = "yes";
preserve_split = "yes";
};
master = {
new_status = "master";
};
gestures = {
workspace_swipe = false;
};
workspace = [
#"0, monitor:DP-1"
"8, monitor:e-DP-1"
"9, monitor:e-DP-1"
#"9, on-created-empty:[tiled] thunderbird"
];
windowrulev2 = [
"workspace 9, class:^(.*thunderbird.*)$"
"group, class:^(.*thunderbird.*)$"
"workspace 9, class:^(.*Element.*)$"
"group, class:^(.*Element.*)$"
"workspace 8, title:^(.*KeePassXC.*)$"
"float, class:^(.*steam.*)$"
"noinitialfocus,class:(jetbrains-)(.*),title:^win(.*), initialTitle:win.*, floating:1"
];
};
};
home.file.".config/hypr/colors".text = ''
$background = ${colors.base00}
$foreground = ${colors.base05}
$color0 = ${colors.base00}
$color1 = ${colors.base01}
$color2 = ${colors.base02}
$color3 = ${colors.base03}
$color4 = ${colors.base04}
$color5 = ${colors.base05}
$color6 = ${colors.base06}
$color7 = ${colors.base07}
$color8 = ${colors.base08}
$color9 = ${colors.base09}
$color10 = ${colors.base0A}
$color11 = ${colors.base0B}
$color12 = ${colors.base0C}
$color13 = ${colors.base0D}
$color14 = ${colors.base0E}
$color15 = ${colors.base0F}
'';
xdg.configFile."hypr/hyprlock.conf".source = ./hyprlock.conf;
xdg.configFile."hypr/hypridle.conf".source = ./hypridle.conf;
};
}
@@ -0,0 +1,28 @@
general {
lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances.
#before_sleep_cmd = loginctl lock-session # lock before suspend.
#after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display.
}
listener {
timeout = 150 # 2.5min.
on-timeout = brightnessctl -s set 10 # set monitor backlight to minimum, avoid 0 on OLED monitor.
on-resume = brightnessctl -r # monitor backlight restor.
}
# change language to US before locking
listener {
timeout = 150 # 2.5min.
on-timeout = hyprctl switchxkblayout at-translated-set-2-keyboard 0 # switch to us layout
}
listener {
timeout = 300 # 5min
on-timeout = loginctl lock-session # lock screen when timeout has passed
}
# listener {
# timeout = 380 # 5.5min
# on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed
# on-resume = hyprctl dispatch dpms on # screen on when activity is detected after timeout has fired.
# }
@@ -0,0 +1,65 @@
source = ~/.cache/wal/colors-hyprland.conf
# BACKGROUND
background {
monitor =
path = screenshot
blur_passes = 3
contrast = 0.8916
brightness = 0.8172
vibrancy = 0.1696
vibrancy_darkness = 0.0
}
# GENERAL
general {
no_fade_in = false
grace = 0
disable_loading_bar = true
}
# INPUT FIELD
input-field {
monitor =
size = 250, 60
outline_thickness = 2
dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0
dots_center = true
outer_color = rgba(0, 0, 0, 0)
inner_color = rgba(0, 0, 0, 0.5)
font_color = rgb(200, 200, 200)
fade_on_empty = false
font_family = JetBrains Mono Nerd Font Mono
placeholder_text = <i><span foreground="##cdd6f4">Input Password...</span></i>
hide_input = false
position = 0, -120
halign = center
valign = center
}
# TIME
label {
monitor =
text = cmd[update:1000] echo "$(date +"%-I:%M%p")"
color = $foreground
#color = rgba(255, 255, 255, 0.6)
font_size = 120
font_family = JetBrains Mono Nerd Font Mono ExtraBold
position = 0, -300
halign = center
valign = top
}
# USER
label {
monitor =
text = Hi there, $USER
color = $foreground
#color = rgba(255, 255, 255, 0.6)
font_size = 25
font_family = JetBrains Mono Nerd Font Mono
position = 0, -40
halign = center
valign = center
}