Ahogy azt az eredeti bejegyzésben írtam, a Herbstluftwmhez "mellékelt" dzen2 alapú panel nekem iszonyú szívás volt, a lecserélése a Yambarra egy igazán indokolt lépés szerintem! Nézzük!

A jelenlegi Yambarban nincs natív Herbstluftwm modul, viszont ez könnyen megoldható a Yambar szkript moduljával (~/.config/yambar/herbst-tags.sh; tedd futathatóvá):
#!/bin/sh
# Aktuális herbstluftwm tag lekérdezése
current="$(herbstclient attr tags.focus.name)"
# 1-9 tagek megjelenítése.
# Az aktuális tag [ ] jelek között jelenik meg.
case "$current" in
1) text="[1] 2 3 4 5 6 7 8 9" ;;
2) text=" 1 [2] 3 4 5 6 7 8 9" ;;
3) text=" 1 2 [3] 4 5 6 7 8 9" ;;
4) text=" 1 2 3 [4] 5 6 7 8 9" ;;
5) text=" 1 2 3 4 [5] 6 7 8 9" ;;
6) text=" 1 2 3 4 5 [6] 7 8 9" ;;
7) text=" 1 2 3 4 5 6 [7] 8 9" ;;
8) text=" 1 2 3 4 5 6 7 [8] 9" ;;
9) text=" 1 2 3 4 5 6 7 8 [9]" ;;
*) text="$current" ;;
esac
printf 'tags|string|%s\n\n' "$text"Most jön a fő konfiguráció (~/.config/yambar/config.yml):
bar:
# ------------------------------------------------------------------
# Alapbeállítások
# ------------------------------------------------------------------
height: 28
location: top
background: 1e1e2eff
foreground: cdd6f4ff
font: JetBrainsMono Nerd Font:size=12
# A modulok közötti távolság
spacing: 8
# ------------------------------------------------------------------
# BAL OLDAL
# herbstluftwm tagek
# ------------------------------------------------------------------
left:
- script:
path: ~/.config/yambar/herbst-tags.sh
poll-interval: 250
content:
string:
text: "{tags}"
# ------------------------------------------------------------------
# KÖZÉP
# Aktuális X11 ablak
# ------------------------------------------------------------------
center:
- xwindow:
content:
string:
text: "{title}"
max: 80
# ------------------------------------------------------------------
# JOBB OLDAL
# ------------------------------------------------------------------
right:
# --------------------------------------------------------------
# CPU
# --------------------------------------------------------------
- cpu:
poll-interval: 2000
content:
map:
conditions:
# Csak a teljes CPU-terhelést mutatjuk.
# A cpu modul -1 ID-val jelzi az összesített értéket.
id < 0:
string:
text: "CPU {cpu}%"
# --------------------------------------------------------------
# RAM
# --------------------------------------------------------------
- mem:
poll-interval: 2000
content:
string:
text: "RAM {percent_used}%"
# --------------------------------------------------------------
# PulseAudio
# --------------------------------------------------------------
- pulse:
content:
string:
text: "VOL {sink_percent}%"
# --------------------------------------------------------------
# Billentyűzetkiosztás
# --------------------------------------------------------------
- xkb:
content:
string:
text: "{symbol}"
# --------------------------------------------------------------
# ÓRA
# --------------------------------------------------------------
- clock:
time-format: "%H:%M"
content:
string:
text: "{time}"És a módosított Herbstluftwm konfig (~/.config/herbstluftwm/autostart):
#!/usr/bin/env bash
# Berus ~/.config/herbstluftwm/autostart
# Segédfüggvény a herbstclient hívások egyszerűsítésére és rövidebbé tételére
hc() {
herbstclient "$@"
}
# Értesítés (hook) küldése a panelnek vagy egyéb scripteknek az újratöltésről
hc emit_hook reload
# Háttérszín beállítása (ha nincs panel, vagy amíg a panel betölt)
xsetroot -solid '#2A2A2A'
# ==========================================
# 1. MÓDOSÍTÓ GOMB (MODIFIER) BEÁLLÍTÁSA
# ==========================================
# Mod1 = Alt, Mod4 = Super (Windows gomb). A Super ajánlott a modern DE-kkel való ütközés elkerülésére.
Mod=Mod4
# ==========================================
# 2. GYORSBILLENTYŰK (KEYBINDINGS) TÖRLÉSE ÉS ÚJRADEFINIÁLÁSA
# ==========================================
hc keyunbind --all # Töröljük az alapértelmezetteket a tiszta lap érdekében
# Rendszervezérlés
hc keybind $Mod-Shift-e quit # WM bezárása
hc keybind $Mod-Shift-p spawn ~/.local/bin/rmenu.sh # WM bezárása
hc keybind $Mod-Shift-r reload # Konfiguráció újratöltése
hc keybind $Mod-q close # Fókuszált ablak bezárása
hc keybind Mod1+Control+t spawn kitty # Terminál indítása
#hc keybind $Mod-Return spawn kitty # Terminál indítása
hc keybind $Mod-d spawn rofi -show drun # Program indító
hc keybind Print spawn ~/.local/bin/scrot.sh # Képernyőkép
# ==========================================
# 3. TAG-EK (VIRTUÁLIS ASZTALOK) KEZELÉSE
# ==========================================
TAG_NAMES=( {1..9} )
TAG_KEYS=( {1..9} 0 ) # Az 1-9 és a 0 gombokhoz rendeljük a tag-eket
# Az alapértelmezett "default" tag átnevezése "1"-re
hc rename default "${TAG_NAMES[0]}" || true
for i in "${!TAG_NAMES[@]}"; do
hc add "${TAG_NAMES[$i]}"
key="${TAG_KEYS[$i]}"
if [ -n "$key" ]; then
# Ugrás a kiválasztott tag-re
hc keybind "$Mod-$key" use_index "$i"
# Fókuszált ablak áthelyezése a tag-re és ugrás oda
hc keybind "$Mod-Shift-$key" move_index "$i"
fi
done
# ==========================================
# 4. ELRENDEZÉS (LAYOUT) ÉS FRAME KEZELÉS
# ==========================================
# Alapértelmezett elrendezés
hc set default_frame_layout horizontal
for tag in 1 2 3 4 5 6 7 8 9; do
hc use "$tag"
hc set_layout horizontal
done
hc use 1
# Frame elrendezés váltása a fókuszált keretben (vertical, horizontal, max, grid között ciklikusan)
hc keybind $Mod-space cycle_layout 1
# Keret felosztása (0.5 = 50% arány)
hc keybind $Mod-u split vertical 0.5 # Függőleges osztás (fel/le)
hc keybind $Mod-o split horizontal 0.5 # Vízszintes osztás (bal/jobb)
# Keret eltávolítása (összevonás a szomszédos kerettel)
hc keybind $Mod-r remove
# ==========================================
# 5. ABLAKOK MOZGATÁSA ÉS ÁTMÉRETEZÉSE (Vim-szerű navigáció)
# ==========================================
# Fókusz váltása a keretek között
hc keybind $Mod-h focus left
hc keybind $Mod-j focus down
hc keybind $Mod-k focus up
hc keybind $Mod-l focus right
hc keybind $Mod-Left focus left
hc keybind $Mod-Down focus down
hc keybind $Mod-Up focus up
hc keybind $Mod-Right focus right
# Ablak áthelyezése a szomszédos keretbe
hc keybind $Mod-Shift-h shift left
hc keybind $Mod-Shift-j shift down
hc keybind $Mod-Shift-k shift up
hc keybind $Mod-Shift-l shift right
hc keybind $Mod-Shift-Left shift left
hc keybind $Mod-Shift-Down shift down
hc keybind $Mod-Shift-Up shift up
hc keybind $Mod-Shift-Right shift right
# Keret átméretezése (lépésköz: 5%)
RESIZESTEP=0.05
hc keybind $Mod-Control-h resize left +$RESIZESTEP
hc keybind $Mod-Control-j resize down +$RESIZESTEP
hc keybind $Mod-Control-k resize up +$RESIZESTEP
hc keybind $Mod-Control-l resize right +$RESIZESTEP
hc keybind $Mod-Control-Left resize left +$RESIZESTEP
hc keybind $Mod-Control-Down resize down +$RESIZESTEP
hc keybind $Mod-Control-Up resize up +$RESIZESTEP
hc keybind $Mod-Control-Right resize right +$RESIZESTEP
# ==========================================
# 6. ABLAK ÁLLAPOTOK (FLOATING, FULLSCREEN, PSEUDOTILE)
# ==========================================
hc keybind $Mod-s floating toggle # Lebegő mód ki/bekapcsolása az aktuális tag-en
hc keybind $Mod-f fullscreen toggle # Teljes képernyős mód
hc keybind $Mod-p pseudotile toggle # Pszeudo-csempézés
# ==========================================
# 7. EGÉR VEZÉRLÉS (MOUSEBINDINGS)
# ==========================================
hc mouseunbind --all
hc mousebind $Mod-Button1 move # Bal gomb + Mod: ablak mozgatása
hc mousebind $Mod-Button2 resize # Középső gomb + Mod: ablak átméretezése
hc mousebind $Mod-Button3 zoom # Jobb gomb + Mod: ablak maximalizálása a keretben
hc set focus_follows_mouse 1 # Fókusz követi az egeret
# ==========================================
# 8. MEGJELENÉS ÉS SZÍNEK (THEME)
# ==========================================
hc set frame_border_active_color '#83b8e7' # Aktív keret színe
hc set frame_border_normal_color '#101010' # Inaktív keret színe
hc set frame_bg_transparent 1 # Keret háttere átlátszó
hc set frame_border_width 1 # Keret szegélyvastagsága
hc set window_border_width 2 # Ablak szegélyvastagsága
hc set window_border_normal_color '#215668' # Inaktív ablak szegélye
hc set window_border_active_color '#83b8e7' # Aktív ablak szegélye
hc set always_show_frame 1 # Mindig mutassa a kereteket (segít a navigációban)
hc set window_gap 4 # Rés az ablakok között (pixel)
hc set tree_style '╾│ ├└╼─┐'
# ==========================================
# 9. ABLAK SZABÁLYOK (RULES)
# ==========================================
hc unrule -F # Összes meglévő szabály törlése újratöltéskor
# Alapértelmezett: ne adjon fókuszt az új ablakoknak (kivéve, ha szabály felülírja)
hc rule focus=off
# Kivétel: a terminálok kapjanak fókuszt (reguláris kifejezéssel)
hc rule class~'(.*[Rr]xvt.*|.*[Tt]erm|Konsole|Alacritty|Kitty)' focus=on
# Kivétel: párbeszédablakok (dialog) legyenek pszeudo-csempézettek és kapjanak fókuszt
hc rule windowtype~'_NET_WM_WINDOW_TYPE_(DIALOG|UTILITY|SPLASH)' pseudotile=on
hc rule windowtype='_NET_WM_WINDOW_TYPE_DIALOG' focus=on
# Kivétel: értesítések és dock alkalmazások (pl. wbar, conky, polybar) kezelése
# manage=off: a herbstluftwm egyáltalán nem kezeli ezeket az ablakokat, így nem zavarják a layoutot
hc rule windowtype~'_NET_WM_WINDOW_TYPE_(NOTIFICATION|DOCK)' manage=off
hc rule class~'[Ww]bar' manage=off
hc rule class~'[Cc]onky' manage=off
hc rule class~'polybar' manage=off
# ==========================================
# 10. MULTIMONITOR ÉS PANEL BEÁLLÍTÁSOK
# ==========================================
# Padding beállítása: hc pad <monitor> <top> <right> <bottom> <left>
# Ez helyet hagy a panelnek a képernyő tetején (pl. 20 pixel), hogy az ablakok ne takarják ki
hc pad 0 24 0 0 0
# Panel indítása minden monitoron (ha létezik a panel.sh)
#panel=~/.config/herbstluftwm/panel.sh
#[ -x "$panel" ] || panel=/etc/xdg/herbstluftwm/panel.sh
#for monitor in $(hc list_monitors | cut -d: -f1); do
# $panel "$monitor" &
#done
# ----------------------------------------------------------------
# Yambar
# ----------------------------------------------------------------
# Ha reload történik, a régi yambar példányt eltávolítjuk.
pkill -x yambar 2>/dev/null || true
# Yambar indítása
yambar -b xcb -c "$HOME/.config/yambar/config.yml" &
# WM feloldása (zárás után újra aktív)
hc unlock
# ==========================================
# AUTOMATIKUSAN INDULÓ PROGRAMOK (DAEMONOK)
# ==========================================
# 1. Numlock bekapcsolása , Caps Lock -> ESC
# Ezek rövid parancsok, nem kell '&'
numlockx on
# setxkbmap -option caps:escape_shifted_capslock
# 2. Redshift (képernyő színhőmérsékletének állítása)
# Folyamatosan fut, ezért kell a '&' a végére!
# Opcionálisan megadhatod a koordinátáidat is (-l földrajzi szélesség -g hosszúság)
redshift &
# 3. Kompozitor (árnyékok, átlátszóság, animációk)
# Ha picom-ot használsz:
picom &
# Vagy ha a régebbi compton-ot:
# compton --daemon &
# 4. Értesítési daemon (Notification server)
# Nélküle a programok értesítései (pl. hangerőváltozás, letöltés vége) nem jelennek meg.
dunst &
# 5. Háttérkép beállítása
#"$HOME/.fehbg"
nitrogen --restore
# ==========================================
# HANGERŐ SZABÁLYOZÁS NUMPAD GOMBOKKAL
# ==========================================
# PulseAudio hangerő beállítása 30%-ra
pactl set-sink-volume @DEFAULT_SINK@ 30%
hc keybind XF86AudioRaiseVolume spawn pactl set-sink-volume @DEFAULT_SINK@ +5%
hc keybind XF86AudioLowerVolume spawn pactl set-sink-volume @DEFAULT_SINK@ -5%
hc keybind XF86AudioMute spawn pactl set-sink-mute @DEFAULT_SINK@ toggleA dzen2 verzió is működik, de ahogy mondani szoktam, ez tisztább, szárazabb érzés!
Első felvonás: https://linuxmint.hu/blog/2026/08/palcikawm-vi-herbstluftwm
Berus
