From 7c448b408126aef0561be0761871f968921d7db0 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Sun, 22 Oct 2017 10:37:30 -0400 Subject: Fire up the wlroots backend and run the event loop --- sway/server.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 sway/server.c (limited to 'sway/server.c') diff --git a/sway/server.c b/sway/server.c new file mode 100644 index 00000000..39fa5d28 --- /dev/null +++ b/sway/server.c @@ -0,0 +1,54 @@ +#define _POSIX_C_SOURCE 200112L +#include +#include +#include +#include +#include +#include +#include +#include +// TODO WLR: make Xwayland optional +#include +#include "sway/server.h" +#include "log.h" + +bool server_init(struct sway_server *server) { + sway_log(L_DEBUG, "Initializing Wayland server"); + + server->wl_display = wl_display_create(); + server->wl_event_loop = wl_display_get_event_loop(server->wl_display); + server->backend = wlr_backend_autocreate(server->wl_display); + + server->renderer = wlr_gles2_renderer_create(server->backend); + wl_display_init_shm(server->wl_display); + + // TODO WLR + //server->desktop = desktop_create(server, server.config); + //server->input = input_create(&server, server.config); + server->data_device_manager = + wlr_data_device_manager_create(server->wl_display); + + const char *socket = wl_display_add_socket_auto(server->wl_display); + if (!socket) { + sway_log_errno(L_ERROR, "Unable to open wayland socket"); + wlr_backend_destroy(server->backend); + return false; + } + + sway_log(L_INFO, "Running compositor on wayland display '%s'", socket); + setenv("_WAYLAND_DISPLAY", socket, true); + + if (!wlr_backend_start(server->backend)) { + sway_log(L_ERROR, "Failed to start backend"); + wlr_backend_destroy(server->backend); + return false; + } + + setenv("WAYLAND_DISPLAY", socket, true); + return true; +} + +void server_fini(struct sway_server *server) { + // TODO WLR: tear down more stuff + wlr_backend_destroy(server->backend); +} -- cgit v1.2.3 From 0f45fad18cf56910aa339c7c6ad1a661e96cfb0d Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Sun, 22 Oct 2017 11:38:30 -0400 Subject: Establish sway input submodule --- sway/server.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'sway/server.c') diff --git a/sway/server.c b/sway/server.c index 39fa5d28..4a74cfb5 100644 --- a/sway/server.c +++ b/sway/server.c @@ -10,6 +10,7 @@ // TODO WLR: make Xwayland optional #include #include "sway/server.h" +#include "sway/input.h" #include "log.h" bool server_init(struct sway_server *server) { @@ -22,9 +23,7 @@ bool server_init(struct sway_server *server) { server->renderer = wlr_gles2_renderer_create(server->backend); wl_display_init_shm(server->wl_display); - // TODO WLR - //server->desktop = desktop_create(server, server.config); - //server->input = input_create(&server, server.config); + server->input = sway_input_create(server); server->data_device_manager = wlr_data_device_manager_create(server->wl_display); -- cgit v1.2.3 From 7eafcc75f6f8abd2346e0d72b063bc10ce24378f Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Sat, 11 Nov 2017 11:58:43 -0500 Subject: Initialize outputs from backend and add to tree --- sway/server.c | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) (limited to 'sway/server.c') diff --git a/sway/server.c b/sway/server.c index 4a74cfb5..b7ce4612 100644 --- a/sway/server.c +++ b/sway/server.c @@ -27,23 +27,14 @@ bool server_init(struct sway_server *server) { server->data_device_manager = wlr_data_device_manager_create(server->wl_display); - const char *socket = wl_display_add_socket_auto(server->wl_display); - if (!socket) { - sway_log_errno(L_ERROR, "Unable to open wayland socket"); - wlr_backend_destroy(server->backend); - return false; - } + server->output_add.notify = output_add_notify; + wl_signal_add(&server->backend->events.output_add, &server->output_add); - sway_log(L_INFO, "Running compositor on wayland display '%s'", socket); - setenv("_WAYLAND_DISPLAY", socket, true); - - if (!wlr_backend_start(server->backend)) { - sway_log(L_ERROR, "Failed to start backend"); + server->socket = wl_display_add_socket_auto(server->wl_display); + if (!sway_assert(server->socket, "Unable to open wayland socket")) { wlr_backend_destroy(server->backend); return false; } - - setenv("WAYLAND_DISPLAY", socket, true); return true; } @@ -51,3 +42,16 @@ void server_fini(struct sway_server *server) { // TODO WLR: tear down more stuff wlr_backend_destroy(server->backend); } + +void server_run(struct sway_server *server) { + sway_log(L_INFO, "Running compositor on wayland display '%s'", + server->socket); + setenv("_WAYLAND_DISPLAY", server->socket, true); + if (!sway_assert(wlr_backend_start(server->backend), + "Failed to start backend")) { + wlr_backend_destroy(server->backend); + return; + } + setenv("WAYLAND_DISPLAY", server->socket, true); + wl_display_run(server->wl_display); +} -- cgit v1.2.3 From 1efd5f819f9986bf27e390f4988359388606cea0 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Sat, 11 Nov 2017 14:41:18 -0500 Subject: Wire up output frame loop --- sway/server.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'sway/server.c') diff --git a/sway/server.c b/sway/server.c index b7ce4612..a7f47af3 100644 --- a/sway/server.c +++ b/sway/server.c @@ -30,6 +30,10 @@ bool server_init(struct sway_server *server) { server->output_add.notify = output_add_notify; wl_signal_add(&server->backend->events.output_add, &server->output_add); + server->output_remove.notify = output_remove_notify; + wl_signal_add(&server->backend->events.output_remove, + &server->output_remove); + server->socket = wl_display_add_socket_auto(server->wl_display); if (!sway_assert(server->socket, "Unable to open wayland socket")) { wlr_backend_destroy(server->backend); -- cgit v1.2.3 From 0c8491f7d0c735299a25f0ab929f5d1e0866b929 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Sat, 11 Nov 2017 18:06:50 -0500 Subject: Initial (awful) pass on xdg shell support --- sway/server.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'sway/server.c') diff --git a/sway/server.c b/sway/server.c index a7f47af3..940f28b3 100644 --- a/sway/server.c +++ b/sway/server.c @@ -34,6 +34,11 @@ bool server_init(struct sway_server *server) { wl_signal_add(&server->backend->events.output_remove, &server->output_remove); + server->xdg_shell_v6 = wlr_xdg_shell_v6_create(server->wl_display); + wl_signal_add(&server->xdg_shell_v6->events.new_surface, + &server->xdg_shell_v6_surface); + server->xdg_shell_v6_surface.notify = handle_xdg_shell_v6_surface; + server->socket = wl_display_add_socket_auto(server->wl_display); if (!sway_assert(server->socket, "Unable to open wayland socket")) { wlr_backend_destroy(server->backend); -- cgit v1.2.3 From 733993a651c71f7e2198d505960d6bbd31e0e107 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Sat, 18 Nov 2017 11:22:02 -0500 Subject: Move everything to sway/old/ --- sway/server.c | 2 -- 1 file changed, 2 deletions(-) (limited to 'sway/server.c') diff --git a/sway/server.c b/sway/server.c index 940f28b3..8892b917 100644 --- a/sway/server.c +++ b/sway/server.c @@ -10,7 +10,6 @@ // TODO WLR: make Xwayland optional #include #include "sway/server.h" -#include "sway/input.h" #include "log.h" bool server_init(struct sway_server *server) { @@ -23,7 +22,6 @@ bool server_init(struct sway_server *server) { server->renderer = wlr_gles2_renderer_create(server->backend); wl_display_init_shm(server->wl_display); - server->input = sway_input_create(server); server->data_device_manager = wlr_data_device_manager_create(server->wl_display); -- cgit v1.2.3 From b8f8de27b865248462955cddaad223acb76d05c1 Mon Sep 17 00:00:00 2001 From: Dominique Martinet Date: Wed, 22 Nov 2017 23:56:21 +0100 Subject: wlr_data_device header update wlroots 6a7560 renamed the header file --- sway/server.c | 1 - 1 file changed, 1 deletion(-) (limited to 'sway/server.c') diff --git a/sway/server.c b/sway/server.c index 8892b917..f78bcef1 100644 --- a/sway/server.c +++ b/sway/server.c @@ -4,7 +4,6 @@ #include #include #include -#include #include #include // TODO WLR: make Xwayland optional -- cgit v1.2.3 From 4ca1e77fdbbf559a5bb28d4936afa6ade63985cd Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Wed, 22 Nov 2017 21:06:08 -0500 Subject: Add views to tree and render them --- sway/server.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'sway/server.c') diff --git a/sway/server.c b/sway/server.c index f78bcef1..6e66bc3c 100644 --- a/sway/server.c +++ b/sway/server.c @@ -6,6 +6,7 @@ #include #include #include +#include // TODO WLR: make Xwayland optional #include #include "sway/server.h" @@ -21,6 +22,9 @@ bool server_init(struct sway_server *server) { server->renderer = wlr_gles2_renderer_create(server->backend); wl_display_init_shm(server->wl_display); + server->compositor = wlr_compositor_create( + server->wl_display, server->renderer); + server->data_device_manager = wlr_data_device_manager_create(server->wl_display); -- cgit v1.2.3 From 8239067da42545a59dbb43b941f69470d501f544 Mon Sep 17 00:00:00 2001 From: Tony Crisci Date: Sun, 3 Dec 2017 14:21:26 -0500 Subject: basic wl-shell --- sway/server.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'sway/server.c') diff --git a/sway/server.c b/sway/server.c index 6e66bc3c..bf5c37eb 100644 --- a/sway/server.c +++ b/sway/server.c @@ -7,6 +7,7 @@ #include #include #include +#include // TODO WLR: make Xwayland optional #include #include "sway/server.h" @@ -40,6 +41,11 @@ bool server_init(struct sway_server *server) { &server->xdg_shell_v6_surface); server->xdg_shell_v6_surface.notify = handle_xdg_shell_v6_surface; + server->wl_shell = wlr_wl_shell_create(server->wl_display); + wl_signal_add(&server->wl_shell->events.new_surface, + &server->wl_shell_surface); + server->wl_shell_surface.notify = handle_wl_shell_surface; + server->socket = wl_display_add_socket_auto(server->wl_display); if (!sway_assert(server->socket, "Unable to open wayland socket")) { wlr_backend_destroy(server->backend); -- cgit v1.2.3 From 1870f116ba355fd02c8cc235fe262ccb0a03976b Mon Sep 17 00:00:00 2001 From: Tony Crisci Date: Mon, 4 Dec 2017 06:19:36 -0500 Subject: xwayland shell --- sway/server.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'sway/server.c') diff --git a/sway/server.c b/sway/server.c index 6e66bc3c..2694cea0 100644 --- a/sway/server.c +++ b/sway/server.c @@ -40,6 +40,13 @@ bool server_init(struct sway_server *server) { &server->xdg_shell_v6_surface); server->xdg_shell_v6_surface.notify = handle_xdg_shell_v6_surface; + // TODO make xwayland optional + server->xwayland = + wlr_xwayland_create(server->wl_display, server->compositor); + wl_signal_add(&server->xwayland->events.new_surface, + &server->xwayland_surface); + server->xwayland_surface.notify = handle_xwayland_surface; + server->socket = wl_display_add_socket_auto(server->wl_display); if (!sway_assert(server->socket, "Unable to open wayland socket")) { wlr_backend_destroy(server->backend); -- cgit v1.2.3 From 338a0399f8d7c0ebe9cbb989945d8fd646d8d407 Mon Sep 17 00:00:00 2001 From: Tony Crisci Date: Wed, 6 Dec 2017 08:28:46 -0500 Subject: input skeleton --- sway/server.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'sway/server.c') diff --git a/sway/server.c b/sway/server.c index 024d8429..3873e625 100644 --- a/sway/server.c +++ b/sway/server.c @@ -11,6 +11,7 @@ // TODO WLR: make Xwayland optional #include #include "sway/server.h" +#include "sway/input.h" #include "log.h" bool server_init(struct sway_server *server) { @@ -58,6 +59,9 @@ bool server_init(struct sway_server *server) { wlr_backend_destroy(server->backend); return false; } + + server->input = sway_input_create(server); + return true; } -- cgit v1.2.3 From 21ce20885a6a6e9e7178778513b09fea9354c603 Mon Sep 17 00:00:00 2001 From: Tony Crisci Date: Thu, 7 Dec 2017 07:31:49 -0500 Subject: rename input to input-manager --- sway/server.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'sway/server.c') diff --git a/sway/server.c b/sway/server.c index 3873e625..174beac6 100644 --- a/sway/server.c +++ b/sway/server.c @@ -11,7 +11,7 @@ // TODO WLR: make Xwayland optional #include #include "sway/server.h" -#include "sway/input.h" +#include "sway/input-manager.h" #include "log.h" bool server_init(struct sway_server *server) { @@ -60,7 +60,7 @@ bool server_init(struct sway_server *server) { return false; } - server->input = sway_input_create(server); + server->input = sway_input_manager_create(server); return true; } -- cgit v1.2.3 From d76e745b738281fb98834fd5dee78f2a21727d80 Mon Sep 17 00:00:00 2001 From: Tony Crisci Date: Fri, 8 Dec 2017 08:07:47 -0500 Subject: input include directory --- sway/server.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sway/server.c') diff --git a/sway/server.c b/sway/server.c index 174beac6..7b9a5e8e 100644 --- a/sway/server.c +++ b/sway/server.c @@ -11,7 +11,7 @@ // TODO WLR: make Xwayland optional #include #include "sway/server.h" -#include "sway/input-manager.h" +#include "sway/input/input-manager.h" #include "log.h" bool server_init(struct sway_server *server) { -- cgit v1.2.3 From 163edc5a900fda58e006ed30e14ae10cc4aa13b3 Mon Sep 17 00:00:00 2001 From: Tony Crisci Date: Tue, 12 Dec 2017 08:29:37 -0500 Subject: sway input device --- sway/server.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sway/server.c') diff --git a/sway/server.c b/sway/server.c index 7b9a5e8e..32c8f03c 100644 --- a/sway/server.c +++ b/sway/server.c @@ -60,7 +60,7 @@ bool server_init(struct sway_server *server) { return false; } - server->input = sway_input_manager_create(server); + input_manager = sway_input_manager_create(server); return true; } -- cgit v1.2.3 From 7196f59db0698a4d31ee99763a1f43a7e53f95cc Mon Sep 17 00:00:00 2001 From: Calvin Lee Date: Sun, 31 Dec 2017 14:32:28 -0700 Subject: Consolidate WLR and Sway logging See #1390 --- sway/server.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'sway/server.c') diff --git a/sway/server.c b/sway/server.c index 32c8f03c..365094ef 100644 --- a/sway/server.c +++ b/sway/server.c @@ -10,12 +10,12 @@ #include // TODO WLR: make Xwayland optional #include +#include #include "sway/server.h" #include "sway/input/input-manager.h" -#include "log.h" bool server_init(struct sway_server *server) { - sway_log(L_DEBUG, "Initializing Wayland server"); + wlr_log(L_DEBUG, "Initializing Wayland server"); server->wl_display = wl_display_create(); server->wl_event_loop = wl_display_get_event_loop(server->wl_display); @@ -55,7 +55,8 @@ bool server_init(struct sway_server *server) { server->wl_shell_surface.notify = handle_wl_shell_surface; server->socket = wl_display_add_socket_auto(server->wl_display); - if (!sway_assert(server->socket, "Unable to open wayland socket")) { + if (!server->socket) { + wlr_log(L_ERROR, "Unable to open wayland socket"); wlr_backend_destroy(server->backend); return false; } @@ -71,11 +72,11 @@ void server_fini(struct sway_server *server) { } void server_run(struct sway_server *server) { - sway_log(L_INFO, "Running compositor on wayland display '%s'", + wlr_log(L_INFO, "Running compositor on wayland display '%s'", server->socket); setenv("_WAYLAND_DISPLAY", server->socket, true); - if (!sway_assert(wlr_backend_start(server->backend), - "Failed to start backend")) { + if (!wlr_backend_start(server->backend)) { + wlr_log(L_ERROR, "Failed to start backend"); wlr_backend_destroy(server->backend); return; } -- cgit v1.2.3 From a686fb07ae324cb122f7175941f0ef6c3cdd0cf4 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Tue, 30 Jan 2018 20:01:49 -0500 Subject: Execute pending commands when Xwayland is ready --- sway/server.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'sway/server.c') diff --git a/sway/server.c b/sway/server.c index 365094ef..b5eb510b 100644 --- a/sway/server.c +++ b/sway/server.c @@ -11,9 +11,27 @@ // TODO WLR: make Xwayland optional #include #include +#include "sway/commands.h" +#include "sway/config.h" #include "sway/server.h" #include "sway/input/input-manager.h" +static void server_ready(struct wl_listener *listener, void *data) { + wlr_log(L_DEBUG, "Compositor is ready, executing cmds in queue"); + // Execute commands until there are none left + config->active = true; + while (config->cmd_queue->length) { + char *line = config->cmd_queue->items[0]; + struct cmd_results *res = handle_command(line); + if (res->status != CMD_SUCCESS) { + wlr_log(L_ERROR, "Error on line '%s': %s", line, res->error); + } + free_cmd_results(res); + free(line); + list_del(config->cmd_queue, 0); + } +} + bool server_init(struct sway_server *server) { wlr_log(L_DEBUG, "Initializing Wayland server"); @@ -48,6 +66,10 @@ bool server_init(struct sway_server *server) { wl_signal_add(&server->xwayland->events.new_surface, &server->xwayland_surface); server->xwayland_surface.notify = handle_xwayland_surface; + wl_signal_add(&server->xwayland->events.ready, + &server->xwayland_ready); + // TODO: call server_ready now if xwayland is not enabled + server->xwayland_ready.notify = server_ready; server->wl_shell = wlr_wl_shell_create(server->wl_display); wl_signal_add(&server->wl_shell->events.new_surface, -- cgit v1.2.3 From 7dfbf06de9a5659d4c73edf53c38ee07068a2877 Mon Sep 17 00:00:00 2001 From: Tony Crisci Date: Wed, 14 Feb 2018 14:51:51 -0500 Subject: output destroy --- sway/server.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'sway/server.c') diff --git a/sway/server.c b/sway/server.c index b5eb510b..0753d37e 100644 --- a/sway/server.c +++ b/sway/server.c @@ -48,12 +48,8 @@ bool server_init(struct sway_server *server) { server->data_device_manager = wlr_data_device_manager_create(server->wl_display); - server->output_add.notify = output_add_notify; - wl_signal_add(&server->backend->events.output_add, &server->output_add); - - server->output_remove.notify = output_remove_notify; - wl_signal_add(&server->backend->events.output_remove, - &server->output_remove); + server->new_output.notify = handle_new_output; + wl_signal_add(&server->backend->events.new_output, &server->new_output); server->xdg_shell_v6 = wlr_xdg_shell_v6_create(server->wl_display); wl_signal_add(&server->xdg_shell_v6->events.new_surface, -- cgit v1.2.3 From ac8269d536bf636bd0fbf8047cf6516912634864 Mon Sep 17 00:00:00 2001 From: Tony Crisci Date: Sat, 24 Feb 2018 12:50:24 -0500 Subject: take seat param for handle_command and rename --- sway/server.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sway/server.c') diff --git a/sway/server.c b/sway/server.c index 0753d37e..495769ee 100644 --- a/sway/server.c +++ b/sway/server.c @@ -22,7 +22,7 @@ static void server_ready(struct wl_listener *listener, void *data) { config->active = true; while (config->cmd_queue->length) { char *line = config->cmd_queue->items[0]; - struct cmd_results *res = handle_command(line); + struct cmd_results *res = execute_command(line, NULL); if (res->status != CMD_SUCCESS) { wlr_log(L_ERROR, "Error on line '%s': %s", line, res->error); } -- cgit v1.2.3 From 01beee58263a3d1de6eb30951332f31ca46eb4d3 Mon Sep 17 00:00:00 2001 From: emersion Date: Mon, 19 Mar 2018 23:31:18 +0100 Subject: Update wlroots API Breaking changes in wlr_xdg_shell_v6 and wlr_renderer have been made upstream. --- sway/server.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sway/server.c') diff --git a/sway/server.c b/sway/server.c index 495769ee..ca08d7fb 100644 --- a/sway/server.c +++ b/sway/server.c @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include #include #include -- cgit v1.2.3 From 0c8a64942e087038806b353949c900e03fd764a8 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Wed, 28 Mar 2018 15:47:22 -0400 Subject: Add initial layer shell skeleton --- sway/server.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'sway/server.c') diff --git a/sway/server.c b/sway/server.c index ca08d7fb..92f72f13 100644 --- a/sway/server.c +++ b/sway/server.c @@ -7,6 +7,7 @@ #include #include #include +#include #include // TODO WLR: make Xwayland optional #include @@ -51,6 +52,11 @@ bool server_init(struct sway_server *server) { server->new_output.notify = handle_new_output; wl_signal_add(&server->backend->events.new_output, &server->new_output); + server->layer_shell = wlr_layer_shell_create(server->wl_display); + wl_signal_add(&server->layer_shell->events.new_surface, + &server->layer_shell_surface); + server->layer_shell_surface.notify = handle_layer_shell_surface; + server->xdg_shell_v6 = wlr_xdg_shell_v6_create(server->wl_display); wl_signal_add(&server->xdg_shell_v6->events.new_surface, &server->xdg_shell_v6_surface); -- cgit v1.2.3 From 2719ddfe5e171881f3997f9f853bfca97fe01529 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Thu, 29 Mar 2018 18:07:03 -0400 Subject: Spawn swaybars when outputs are added --- sway/server.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'sway/server.c') diff --git a/sway/server.c b/sway/server.c index 92f72f13..75202df2 100644 --- a/sway/server.c +++ b/sway/server.c @@ -8,6 +8,8 @@ #include #include #include +#include +#include #include // TODO WLR: make Xwayland optional #include @@ -45,10 +47,12 @@ bool server_init(struct sway_server *server) { server->compositor = wlr_compositor_create( server->wl_display, server->renderer); - server->data_device_manager = wlr_data_device_manager_create(server->wl_display); + wlr_screenshooter_create(server->wl_display); + wlr_gamma_control_manager_create(server->wl_display); + server->new_output.notify = handle_new_output; wl_signal_add(&server->backend->events.new_output, &server->new_output); -- cgit v1.2.3 From d6acb3d86cf0842bff81da1ec2bc990ae84ed85b Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Fri, 30 Mar 2018 00:13:54 -0400 Subject: Set WAYLAND_DISPLAY earlier in startup --- sway/server.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'sway/server.c') diff --git a/sway/server.c b/sway/server.c index 75202df2..3fba019d 100644 --- a/sway/server.c +++ b/sway/server.c @@ -102,12 +102,11 @@ void server_fini(struct sway_server *server) { void server_run(struct sway_server *server) { wlr_log(L_INFO, "Running compositor on wayland display '%s'", server->socket); - setenv("_WAYLAND_DISPLAY", server->socket, true); + setenv("WAYLAND_DISPLAY", server->socket, true); if (!wlr_backend_start(server->backend)) { wlr_log(L_ERROR, "Failed to start backend"); wlr_backend_destroy(server->backend); return; } - setenv("WAYLAND_DISPLAY", server->socket, true); wl_display_run(server->wl_display); } -- cgit v1.2.3 From 981827ca423838a0fa422b4dd65acb1b8f81349d Mon Sep 17 00:00:00 2001 From: emersion Date: Fri, 30 Mar 2018 00:47:57 -0400 Subject: Cleanup and remove global renderer reference --- sway/server.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'sway/server.c') diff --git a/sway/server.c b/sway/server.c index 3fba019d..728e624e 100644 --- a/sway/server.c +++ b/sway/server.c @@ -1,19 +1,19 @@ #define _POSIX_C_SOURCE 200112L -#include +#include #include +#include #include #include #include #include -#include #include +#include #include #include -#include #include +#include // TODO WLR: make Xwayland optional #include -#include #include "sway/commands.h" #include "sway/config.h" #include "sway/server.h" @@ -42,11 +42,12 @@ bool server_init(struct sway_server *server) { server->wl_event_loop = wl_display_get_event_loop(server->wl_display); server->backend = wlr_backend_autocreate(server->wl_display); - server->renderer = wlr_gles2_renderer_create(server->backend); + struct wlr_renderer *renderer = wlr_backend_get_renderer(server->backend); + assert(renderer); + wl_display_init_shm(server->wl_display); - server->compositor = wlr_compositor_create( - server->wl_display, server->renderer); + server->compositor = wlr_compositor_create(server->wl_display, renderer); server->data_device_manager = wlr_data_device_manager_create(server->wl_display); @@ -95,8 +96,7 @@ bool server_init(struct sway_server *server) { } void server_fini(struct sway_server *server) { - // TODO WLR: tear down more stuff - wlr_backend_destroy(server->backend); + // TODO } void server_run(struct sway_server *server) { -- cgit v1.2.3 From b237fa0b22d36e52fc0be7fe785e02ea1d2456f7 Mon Sep 17 00:00:00 2001 From: emersion Date: Sat, 31 Mar 2018 00:13:26 -0400 Subject: Set xwayland cursor --- sway/server.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'sway/server.c') diff --git a/sway/server.c b/sway/server.c index 728e624e..9c1671c3 100644 --- a/sway/server.c +++ b/sway/server.c @@ -11,6 +11,7 @@ #include #include #include +#include #include // TODO WLR: make Xwayland optional #include @@ -78,6 +79,18 @@ bool server_init(struct sway_server *server) { // TODO: call server_ready now if xwayland is not enabled server->xwayland_ready.notify = server_ready; + // TODO: configurable cursor theme and size + server->xcursor_manager = wlr_xcursor_manager_create(NULL, 24); + wlr_xcursor_manager_load(server->xcursor_manager, 1); + struct wlr_xcursor *xcursor = wlr_xcursor_manager_get_xcursor( + server->xcursor_manager, "left_ptr", 1); + if (xcursor != NULL) { + struct wlr_xcursor_image *image = xcursor->images[0]; + wlr_xwayland_set_cursor(server->xwayland, image->buffer, + image->width * 4, image->width, image->height, image->hotspot_x, + image->hotspot_y); + } + server->wl_shell = wlr_wl_shell_create(server->wl_display); wl_signal_add(&server->wl_shell->events.new_surface, &server->wl_shell_surface); -- cgit v1.2.3 From ae0552606b00decceaced48707fc24fedbbecad4 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Sat, 31 Mar 2018 09:21:15 -0400 Subject: Configure linux_dmabuf, primary_selection --- sway/server.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'sway/server.c') diff --git a/sway/server.c b/sway/server.c index 9c1671c3..59e7dc3f 100644 --- a/sway/server.c +++ b/sway/server.c @@ -8,7 +8,9 @@ #include #include #include +#include #include +#include #include #include #include @@ -54,6 +56,7 @@ bool server_init(struct sway_server *server) { wlr_screenshooter_create(server->wl_display); wlr_gamma_control_manager_create(server->wl_display); + wlr_primary_selection_device_manager_create(server->wl_display); server->new_output.notify = handle_new_output; wl_signal_add(&server->backend->events.new_output, &server->new_output); @@ -68,6 +71,11 @@ bool server_init(struct sway_server *server) { &server->xdg_shell_v6_surface); server->xdg_shell_v6_surface.notify = handle_xdg_shell_v6_surface; + server->wl_shell = wlr_wl_shell_create(server->wl_display); + wl_signal_add(&server->wl_shell->events.new_surface, + &server->wl_shell_surface); + server->wl_shell_surface.notify = handle_wl_shell_surface; + // TODO make xwayland optional server->xwayland = wlr_xwayland_create(server->wl_display, server->compositor); @@ -91,10 +99,8 @@ bool server_init(struct sway_server *server) { image->hotspot_y); } - server->wl_shell = wlr_wl_shell_create(server->wl_display); - wl_signal_add(&server->wl_shell->events.new_surface, - &server->wl_shell_surface); - server->wl_shell_surface.notify = handle_wl_shell_surface; + struct wlr_egl *egl = wlr_backend_get_egl(server->backend); + wlr_linux_dmabuf_create(server->wl_display, egl); server->socket = wl_display_add_socket_auto(server->wl_display); if (!server->socket) { -- cgit v1.2.3 From 5c08e13e5093a393a42b7310de9ac24bb374d313 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Sat, 31 Mar 2018 09:29:34 -0400 Subject: Set Xwayland seat on focus Necessary to make primary selection syncronize --- sway/server.c | 1 - 1 file changed, 1 deletion(-) (limited to 'sway/server.c') diff --git a/sway/server.c b/sway/server.c index 59e7dc3f..f5cc199c 100644 --- a/sway/server.c +++ b/sway/server.c @@ -110,7 +110,6 @@ bool server_init(struct sway_server *server) { } input_manager = sway_input_manager_create(server); - return true; } -- cgit v1.2.3 From 0828c772514a85080c53ecade0b8b400314d5b03 Mon Sep 17 00:00:00 2001 From: Tony Crisci Date: Mon, 2 Apr 2018 08:49:38 -0400 Subject: rename input-manager functions --- sway/server.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sway/server.c') diff --git a/sway/server.c b/sway/server.c index f5cc199c..54945312 100644 --- a/sway/server.c +++ b/sway/server.c @@ -109,7 +109,7 @@ bool server_init(struct sway_server *server) { return false; } - input_manager = sway_input_manager_create(server); + input_manager = input_manager_create(server); return true; } -- cgit v1.2.3 From 94ecd0f0aa16a3eee037b62097c4d939576b4934 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Thu, 5 Apr 2018 14:01:14 -0400 Subject: Configure wlr_xdg_output_manager during init --- sway/server.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'sway/server.c') diff --git a/sway/server.c b/sway/server.c index 54945312..dfd01798 100644 --- a/sway/server.c +++ b/sway/server.c @@ -12,15 +12,17 @@ #include #include #include -#include #include +#include +#include #include // TODO WLR: make Xwayland optional #include #include "sway/commands.h" #include "sway/config.h" -#include "sway/server.h" #include "sway/input/input-manager.h" +#include "sway/server.h" +#include "sway/tree/layout.h" static void server_ready(struct wl_listener *listener, void *data) { wlr_log(L_DEBUG, "Compositor is ready, executing cmds in queue"); @@ -61,6 +63,9 @@ bool server_init(struct sway_server *server) { server->new_output.notify = handle_new_output; wl_signal_add(&server->backend->events.new_output, &server->new_output); + wlr_xdg_output_manager_create(server->wl_display, + root_container.sway_root->output_layout); + server->layer_shell = wlr_layer_shell_create(server->wl_display); wl_signal_add(&server->layer_shell->events.new_surface, &server->layer_shell_surface); -- cgit v1.2.3 From 5d34e4531f03c194fd2b3717fd4cc4a802ada7aa Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Sat, 7 Apr 2018 13:21:07 -0400 Subject: Add basic server decorations support --- sway/server.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'sway/server.c') diff --git a/sway/server.c b/sway/server.c index dfd01798..0e98b5f9 100644 --- a/sway/server.c +++ b/sway/server.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -104,6 +105,12 @@ bool server_init(struct sway_server *server) { image->hotspot_y); } + // TODO: Integration with sway borders + struct wlr_server_decoration_manager *deco_manager = + wlr_server_decoration_manager_create(server->wl_display); + wlr_server_decoration_manager_set_default_mode( + deco_manager, WLR_SERVER_DECORATION_MANAGER_MODE_SERVER); + struct wlr_egl *egl = wlr_backend_get_egl(server->backend); wlr_linux_dmabuf_create(server->wl_display, egl); -- cgit v1.2.3 From 9570e37016ff6d2d6fa9ac85b576b8cc17f04e8c Mon Sep 17 00:00:00 2001 From: emersion Date: Sun, 8 Apr 2018 11:19:14 -0400 Subject: Update for wlroots#850 --- sway/server.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'sway/server.c') diff --git a/sway/server.c b/sway/server.c index 0e98b5f9..c1125f14 100644 --- a/sway/server.c +++ b/sway/server.c @@ -111,8 +111,7 @@ bool server_init(struct sway_server *server) { wlr_server_decoration_manager_set_default_mode( deco_manager, WLR_SERVER_DECORATION_MANAGER_MODE_SERVER); - struct wlr_egl *egl = wlr_backend_get_egl(server->backend); - wlr_linux_dmabuf_create(server->wl_display, egl); + wlr_linux_dmabuf_create(server->wl_display, renderer); server->socket = wl_display_add_socket_auto(server->wl_display); if (!server->socket) { -- cgit v1.2.3