Inhaltsverzeichnis

Layouts

Begriffe

Bsp

Matrix

Max

MonadTall

MonadThreeCol

MonadWide

Debugging

logger.warning(Whatever you want to print in the log)

logger.warning(vars(screen.bottom.widgets[1]))

Zusätzliche Funktionen einrichten

Lautstärkeregler/Audioverwaltung

Troubleshooting

Problem Lösung
(Rofi) Neue Fenster werden nicht entsprechend des Layouts angeordnet

Beispiel:

  • Column-Layout aktiv 2 Fenster sind offen
  • das nächste Fenster müsste unter oder oberhalb des aktiven Fensters angeordnet werden
  • per Rofi Programm starten (bei Shortcuts habe ich es nicht gesehen, kann aber Zufall gewesen sein)
  • das Fenster wird woanders angeordnet (ggf. sogar auf anderem Screen)

Grund:

  • follow_mouse_focus (per Default True) aktiv
  • das neue Fenster wird an der Maus-Position platziert, nicht nach den Regeln des Loayouts
    • wenn man die Tastatur genutzt hat um da aktive Fenster zu definieren fallen Mouse-Fokus (das Fenster über dem die Maus ist) und das aktive Fenster auseinander

Lösung:

  • follow_mouse_focus deaktivieren (auf False in der Config setzen)
    • bedeutet allerdings auch das der Fokus nicht mehr der Maus folgt
      • Fenster werden nicht mehr einfach durch darüber fahren aktiv, sondern erst durch reinklicken (oder aktivieren per Keboard)
Argument 3 to „KeyChord“ has incompatible type „List[Key]“; expected „List[Union[Key, KeyChord]]“ Mypy (Typchecker) beschwert sich weil ein neuer KeyChord definiert wurde, der 3. Parameter aber eine Variable vom Typ List ist:

groupmenu_keys = []
groupmenu_keys.append(Key([], "l", lazy.screen.toggle_group(), desc="Jump to the last used group"))
KeyChord([mod], "a", groupmenu_keys)

groupmenu_keys ist eine Liste die nur Key-Objekte enthält, was dem entspricht was als 3. Parameter für KeyChord erwartet wird.
List ist aber ein mutable (veränderlicher) Datentyp (es können jederzeit Objekte daraus entfernt oder hinzugefügt werden).
Da List veränderlich ist kann mypy nicht sicherstellen was diese Liste enthält und das sie tatsächlich dem geforderten zusammengesetzten Datentypen List[Union[Key, KeyChord]] entspricht.
Das definieren eines Typs für groupmenu_keys löst das Problem.

groupmenu_keys:List[Union[Key, KeyChord]] = []
groupmenu_keys.append(Key([], "l", lazy.screen.toggle_group(), desc="Jump to the last used group"))
KeyChord([mod], "a", groupmenu_keys)

Mit:

groupmenu_keys:List[Union[Key, KeyChord]] = []

entspricht groupmenu_keys dem Datentyp List[Union[Key, KeyChord]] und mypy ist zufrieden