Commit 973c92d
2
files
+12
added
-2
deleted
@@ -42,7 +42,8 @@ gnieździe nasłuchu i deskryptorze backendu. `libLuna` jest zwykłą zależnoś
42
42
**minimalizuj / maksymalizuj / zamknij**, **zmiana rozmiaru za wszystkie krawędzie i narożniki**,
43
43
**maksymalizacja** i **pełny ekran** (okno ląduje na swoim monitorze), `xdg-decoration`
44
44
(zawsze `server_side`). Skróty: `Super+M` (minimalizuj), `Super+F` (pełny ekran),
45
- `Super+↑`/`Super+↓` (maksymalizuj/przywróć), `Super+Tab` (przełącz okna).
45
+ `Super+↑`/`Super+↓` (maksymalizuj/przywróć), `Super+Tab` (przełącz okna),
46
+ `Super+L` (wyloguj — kończy sesję).
46
47
- **`xdg_popup`**: menu/kontekstowe z pozycjonera (`anchor_rect` + offset), zamknięcie
47
48
kliknięciem poza (`popup_done`).
48
49
- **`wlr-layer-shell`**: panele/docki — kotwice, marginesy, strefa wyłączna, warstwy
@@ -778,7 +778,10 @@ fn keyboard_key(state: &mut State, keysym: u32, st: ButtonState) {
778
778
fn window_shortcut(state: &mut State, keysym: u32, st: ButtonState) -> bool {
779
779
if st != ButtonState::Pressed {
780
780
// Zjedz także zwolnienia naszych klawiszy, by nie trafiły do klienta.
781
- return matches!(keysym, 0x006d | 0x0066 | 0xff52 | 0xff54 | 0xff09);
781
+ return matches!(
782
+ keysym,
783
+ 0x006d | 0x0066 | 0x006c | 0x004c | 0xff52 | 0xff54 | 0xff09
784
+ );
782
785
}
783
786
let focused = state.keyboard_focus.as_ref().map(|(s, _)| *s);
784
787
match keysym {
@@ -796,6 +799,12 @@ fn window_shortcut(state: &mut State, keysym: u32, st: ButtonState) -> bool {
796
799
}
797
800
true
798
801
}
802
+ 0x006c | 0x004c => {
803
+ // Super+L — wyloguj. Kończymy kompozytor (sesję), więc menedżer logowania
804
+ // wraca do greetera; jądro zwalnia mastera DRM przy zamknięciu deskryptorów.
805
+ println!("{}", libluna_i18n::tr("logging out"));
806
+ std::process::exit(0);
807
+ }
799
808
0xff52 => {
800
809
// Super+Up — maksymalizuj/przywróć.
801
810
if let Some(s) = focused {