From 299a159add1e842d10a0e641066f6f4718a75dcc Mon Sep 17 00:00:00 2001 From: Rouven Czerwinski Date: Tue, 15 Sep 2020 09:31:02 +0200 Subject: [PATCH 1/4] cursor: arm cursor hide timer immediately According to the wayland docs, wayland timers are disarmed on creation. This leads to the cursor not being hidden if there is no activity after creation, since the timer is armed on activity, but not at creation. Arm the timer after creation to ensure the cursor is hidden even if there is no cursor activity after creation. Fixes #5684 --- sway/input/cursor.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sway/input/cursor.c b/sway/input/cursor.c index f5c2bd17c..3e6b147ea 100644 --- a/sway/input/cursor.c +++ b/sway/input/cursor.c @@ -1041,6 +1041,8 @@ struct sway_cursor *sway_cursor_create(struct sway_seat *seat) { cursor->hide_source = wl_event_loop_add_timer(server.wl_event_loop, hide_notify, cursor); + wl_event_source_timer_update( + cursor->hide_source, cursor_get_timeout(cursor)); wl_list_init(&cursor->image_surface_destroy.link); cursor->image_surface_destroy.notify = handle_image_surface_destroy; From 7aea4692b0e4f0dd81c893cd2cedcbb983d8bf87 Mon Sep 17 00:00:00 2001 From: Jonas Hohmann Date: Tue, 15 Sep 2020 08:29:10 +0200 Subject: [PATCH 2/4] Fix minor typos in German README --- README.de.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.de.md b/README.de.md index 1abf2f4a6..55062af6b 100644 --- a/README.de.md +++ b/README.de.md @@ -8,7 +8,7 @@ Jedes Release wird mit dem PGP-Schlüssel [B22DA89A](http://pgp.mit.edu/pks/look ## Installation ### Mit der Paketverwaltung -Sway kann in vielen Distributionen direkt durch die Paketverwaltung installiert werden. Das Paket sollte "sway" heißen. Falls es kein solches Paket gibt, kannst du im [Wiki](https://github.com/swaywm/sway/wiki/Unsupported-packages) (Englisch) nach mehr Informationen bezüglich deiner Distribution suchen. +Sway kann in vielen Distributionen direkt durch die Paketverwaltung installiert werden. Das Paket sollte "sway" heißen. Falls es kein solches Paket gibt, kannst du im [Wiki](https://github.com/swaywm/sway/wiki/Unsupported-packages) (englisch) nach mehr Informationen bezüglich deiner Distribution suchen. Falls du sway für deine eigene Distribution als Paket bereitstellen möchtest, solltest du die Entwickler per IRC oder E-Mail (sir@cmpwn.com) kontaktieren. @@ -30,7 +30,7 @@ sway benötigt die folgenden Pakete: _\*Werden nur während des Kompilierens benötigt_ -Führe die folgenden Befehle aus +Führe die folgenden Befehle aus: meson build ninja -C build @@ -44,8 +44,8 @@ Sway läuft nur in der Startphase mit Root-Rechten. ## Konfiguration -Falls du von i3 migrierst, kannst du deine Konfigurationsdatei nach `~/.config/sway/config` kopieren, und die Einstellungen sollten ohne Weiteres funktionieren. Ansonsten kannst du die Beispielkonfiguration, die normalerweise in `/etc/sway/config` liegt, nach `~/.config/sway/config` kopieren. Die Dokumentation zur Konfigurationsdatei findest du in `man 5 sway`. +Falls du von i3 migrierst, kannst du deine Konfigurationsdatei nach `~/.config/sway/config` kopieren und die Einstellungen sollten ohne Weiteres funktionieren. Ansonsten kannst du die Beispielkonfiguration, die normalerweise in `/etc/sway/config` liegt, nach `~/.config/sway/config` kopieren. Die Dokumentation zur Konfigurationsdatei findest du in `man 5 sway`. -## Sway Starten +## Sway starten Sway kann einfach mit dem Befehl `sway` vom TTY gestartet werden. -Display-Manager werden nicht offiziell unterstützt. Es gibt aber durchaus einige, die mit Sway funktionieren. (z.B. gdm) +Display-Manager werden nicht offiziell unterstützt. Es gibt aber durchaus einige, die mit Sway funktionieren (z.B. gdm). From 65a751a21f61b30808b7e703257c6ca3b71f50eb Mon Sep 17 00:00:00 2001 From: Geoffrey Casper Date: Tue, 15 Sep 2020 10:53:35 -0400 Subject: [PATCH 3/4] server: Avoid using "wayland-0" as WAYLAND_DISPLAY See https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/486 --- sway/server.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/sway/server.c b/sway/server.c index ff848450d..5de73b39b 100644 --- a/sway/server.c +++ b/sway/server.c @@ -1,7 +1,8 @@ -#define _POSIX_C_SOURCE 200112L +#define _POSIX_C_SOURCE 200809L #include #include #include +#include #include #include #include @@ -151,7 +152,16 @@ bool server_init(struct sway_server *server) { wlr_primary_selection_v1_device_manager_create(server->wl_display); wlr_viewporter_create(server->wl_display); - server->socket = wl_display_add_socket_auto(server->wl_display); + // Avoid using "wayland-0" as display socket + char name_candidate[16]; + for (int i = 1; i <= 32; ++i) { + sprintf(name_candidate, "wayland-%d", i); + if (wl_display_add_socket(server->wl_display, name_candidate) >= 0) { + server->socket = strdup(name_candidate); + break; + } + } + if (!server->socket) { sway_log(SWAY_ERROR, "Unable to open wayland socket"); wlr_backend_destroy(server->backend); From 41999d7c9f9878017d9199f4cdeaf621d5fd706e Mon Sep 17 00:00:00 2001 From: Rouven Czerwinski Date: Tue, 15 Sep 2020 17:48:21 +0200 Subject: [PATCH 4/4] cursor: update hide timer during config apply We can't arm the timer during cursor creation since the config may not be ready yet. Instead arm the timer while applying the input configuration, by this time the configuration has been parsed and we can arm the hide timer. Fixes #5686 --- sway/input/cursor.c | 2 -- sway/input/seat.c | 2 ++ 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sway/input/cursor.c b/sway/input/cursor.c index 3e6b147ea..f5c2bd17c 100644 --- a/sway/input/cursor.c +++ b/sway/input/cursor.c @@ -1041,8 +1041,6 @@ struct sway_cursor *sway_cursor_create(struct sway_seat *seat) { cursor->hide_source = wl_event_loop_add_timer(server.wl_event_loop, hide_notify, cursor); - wl_event_source_timer_update( - cursor->hide_source, cursor_get_timeout(cursor)); wl_list_init(&cursor->image_surface_destroy.link); cursor->image_surface_destroy.notify = handle_image_surface_destroy; diff --git a/sway/input/seat.c b/sway/input/seat.c index 8c80e41c3..32b496ced 100644 --- a/sway/input/seat.c +++ b/sway/input/seat.c @@ -722,6 +722,8 @@ static void seat_configure_pointer(struct sway_seat *seat, wlr_cursor_attach_input_device(seat->cursor->cursor, sway_device->input_device->wlr_device); seat_apply_input_config(seat, sway_device); + wl_event_source_timer_update( + seat->cursor->hide_source, cursor_get_timeout(seat->cursor)); } static void seat_configure_keyboard(struct sway_seat *seat,