aboutsummaryrefslogtreecommitdiff
path: root/dwl.c
diff options
context:
space:
mode:
authorDevin J. Pohly <djpohly@gmail.com>2021-05-24 22:03:39 -0500
committerDevin J. Pohly <djpohly@gmail.com>2021-05-24 22:31:36 -0500
commit60c40c0989440fc54aa05b0e27cfbaad8c722fec (patch)
tree7fe8eee23537999ecf4ee00e8eef502a9f7453e6 /dwl.c
parent06ca86009296c1b8753cba259fd797703a281bbd (diff)
print status on output create
Along with starting the -s command earlier, this will allow the initial monitor setup to generate printstatus info.
Diffstat (limited to 'dwl.c')
-rw-r--r--dwl.c40
1 files changed, 20 insertions, 20 deletions
diff --git a/dwl.c b/dwl.c
index 9188f06..e0b404e 100644
--- a/dwl.c
+++ b/dwl.c
@@ -842,11 +842,13 @@ createmon(struct wl_listener *listener, void *data)
LISTEN(&wlr_output->events.frame, &m->frame, rendermon);
LISTEN(&wlr_output->events.destroy, &m->destroy, cleanupmon);
- wl_list_insert(&mons, &m->link);
wlr_output_enable(wlr_output, 1);
if (!wlr_output_commit(wlr_output))
return;
+ wl_list_insert(&mons, &m->link);
+ printstatus();
+
/* Adds this to the output layout in the order it was configured in.
*
* The output layout utility automatically adds a wl_output global to the
@@ -1786,27 +1788,9 @@ run(char *startup_cmd)
const char *socket = wl_display_add_socket_auto(dpy);
if (!socket)
BARF("startup: display_add_socket_auto");
-
- /* Start the backend. This will enumerate outputs and inputs, become the DRM
- * master, etc */
- if (!wlr_backend_start(backend))
- BARF("startup: backend_start");
-
- /* Now that outputs are initialized, choose initial selmon based on
- * cursor position, and set default cursor image */
- selmon = xytomon(cursor->x, cursor->y);
-
- /* TODO hack to get cursor to display in its initial location (100, 100)
- * instead of (0, 0) and then jumping. still may not be fully
- * initialized, as the image/coordinates are not transformed for the
- * monitor when displayed here */
- wlr_cursor_warp_closest(cursor, NULL, cursor->x, cursor->y);
- wlr_xcursor_manager_set_cursor_image(cursor_mgr, "left_ptr", cursor);
-
- /* Set the WAYLAND_DISPLAY environment variable to our socket and run the
- * startup command if requested. */
setenv("WAYLAND_DISPLAY", socket, 1);
+ /* Now that the socket exists, run the startup command */
if (startup_cmd) {
int piperw[2];
pipe(piperw);
@@ -1825,6 +1809,22 @@ run(char *startup_cmd)
/* If nobody is reading the status output, don't terminate */
signal(SIGPIPE, SIG_IGN);
+ /* Start the backend. This will enumerate outputs and inputs, become the DRM
+ * master, etc */
+ if (!wlr_backend_start(backend))
+ BARF("startup: backend_start");
+
+ /* Now that outputs are initialized, choose initial selmon based on
+ * cursor position, and set default cursor image */
+ selmon = xytomon(cursor->x, cursor->y);
+
+ /* TODO hack to get cursor to display in its initial location (100, 100)
+ * instead of (0, 0) and then jumping. still may not be fully
+ * initialized, as the image/coordinates are not transformed for the
+ * monitor when displayed here */
+ wlr_cursor_warp_closest(cursor, NULL, cursor->x, cursor->y);
+ wlr_xcursor_manager_set_cursor_image(cursor_mgr, "left_ptr", cursor);
+
/* Run the Wayland event loop. This does not return until you exit the
* compositor. Starting the backend rigged up all of the necessary event
* loop configuration to listen to libinput events, DRM events, generate