← luna

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 {