aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorNicholas Noll <nbnoll@eml.cc>2020-06-02 14:54:32 -0700
committerNicholas Noll <nbnoll@eml.cc>2020-06-02 14:54:32 -0700
commit0fae7444c66080616eba01f7702bdb2d9b493166 (patch)
tree2f88b79ea21f4ca2c512eb0ff05f548ffe27ae5d /sys
parentcdc50fd76fd0e286f40416f579d60f14e19aa9f5 (diff)
prototype of dway. needs testing
Diffstat (limited to 'sys')
-rw-r--r--sys/cmd/dway/config.h6
-rw-r--r--sys/cmd/dway/dway.c59
-rw-r--r--sys/cmd/dway/dway.h2
-rw-r--r--sys/libn/mmap.c1
-rw-r--r--sys/rules.mk7
5 files changed, 58 insertions, 17 deletions
diff --git a/sys/cmd/dway/config.h b/sys/cmd/dway/config.h
index 4dc7cb5..b3f7c83 100644
--- a/sys/cmd/dway/config.h
+++ b/sys/cmd/dway/config.h
@@ -37,7 +37,7 @@ static const byte *termcmd[] = { "alacritty", 0 };
/* keymaps */
static const Key keys[] = {
/* modifier key function argument */
- { MODKEY, XKB_KEY_Return, spawn, {.p = termcmd} },
+ { MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_Return, spawn, {.v = termcmd} },
{ MODKEY, XKB_KEY_j, focusstack, {.i = +1} },
{ MODKEY, XKB_KEY_k, focusstack, {.i = -1} },
{ MODKEY, XKB_KEY_i, incmaster, {.i = +1} },
@@ -45,8 +45,8 @@ static const Key keys[] = {
{ MODKEY, XKB_KEY_h, setmfact, {.f = -0.05} },
{ MODKEY, XKB_KEY_l, setmfact, {.f = +0.05} },
{ MODKEY, XKB_KEY_Tab, view, {0} },
- { MODKEY, XKB_KEY_t, setlayout, {.p = &layouts[0]} },
- { MODKEY, XKB_KEY_f, setlayout, {.p = &layouts[1]} },
+ { MODKEY, XKB_KEY_t, setlayout, {.v = &layouts[0]} },
+ { MODKEY, XKB_KEY_f, setlayout, {.v = &layouts[1]} },
{ MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_space, togglefloating, {0} },
{ MODKEY, XKB_KEY_0, view, {.ui = ~0} },
{ MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_parenright, tag, {.ui = ~0} },
diff --git a/sys/cmd/dway/dway.c b/sys/cmd/dway/dway.c
index 2aaf575..aff47b6 100644
--- a/sys/cmd/dway/dway.c
+++ b/sys/cmd/dway/dway.c
@@ -884,10 +884,10 @@ static
void
setlayout(const Arg *arg)
{
- if (!arg || !arg->p || arg->p != monitor->lt[monitor->sellt])
+ if (!arg || !arg->v || arg->v != monitor->lt[monitor->sellt])
monitor->sellt ^= 1;
- if (arg && arg->p)
- monitor->lt[monitor->sellt] = (Layout *)arg->p;
+ if (arg && arg->v)
+ monitor->lt[monitor->sellt] = (Layout *)arg->v;
arrange(monitor);
}
@@ -913,8 +913,8 @@ spawn(const Arg *arg)
{
if (fork() == 0) {
setsid();
- execvp(((char **)arg->p)[0], (char **)arg->p);
- fatal("dwl: execvp %s", ((char **)arg->p)[0]);
+ execvp(((char **)arg->v)[0], (char **)arg->v);
+ fatal("dwl: execvp %s", ((char **)arg->v)[0]);
}
}
@@ -1119,12 +1119,13 @@ void
run(void)
{
byte *socket;
+ pid_t start = -1;
- // socket = (byte*)wl_display_add_socket_auto(dway.display);
- // if (!socket) {
- // wlr_backend_destroy(dway.backend);
- // fatal("could not open socket");
- // }
+ socket = (byte*)wl_display_add_socket_auto(dway.display);
+ if (!socket) {
+ wlr_backend_destroy(dway.backend);
+ fatal("could not open socket");
+ }
if (!wlr_backend_start(dway.backend)) {
wlr_backend_destroy(dway.backend);
@@ -1132,7 +1133,11 @@ run(void)
fatal("failed to start backend");
}
- // setenv("WAYLAND_DISPLAY", socket, true);
+ monitor = getmonitorat(mouse.cursor->x, mouse.cursor->y);
+ wlr_cursor_warp_closest(mouse.cursor, nil, mouse.cursor->x, mouse.cursor->y);
+ wlr_xcursor_manager_set_cursor_image(mouse.manager, "left_ptr", mouse.cursor);
+
+ setenv("WAYLAND_DISPLAY", socket, true);
wlr_log(WLR_INFO, "running dway on WAYLAND_DISPLAY\n");
wl_display_run(dway.display);
@@ -1145,9 +1150,41 @@ cleanup(void)
wl_display_destroy(dway.display);
}
+void
+usage(void)
+{
+ printf("usage: %s [-qvd] [-s startup_cmd]\n", argv0);
+ exit(1);
+}
+
int
main(int argc, byte *argv[])
{
+ byte *cmd;
+ enum wlr_log_importance lvl;
+
+ cmd = nil;
+ lvl = WLR_ERROR;
+
+ ARGBEGIN {
+ case 'q':
+ lvl = WLR_SILENT;
+ break;
+ case 'v':
+ lvl = WLR_INFO;
+ break;
+ case 'd':
+ lvl = WLR_DEBUG;
+ break;
+ case 's':
+ cmd = EARGF(usage());
+ break;
+ default:
+ usage();
+ } ARGEND;
+
+ wlr_log_init(lvl, nil);
+
setup();
run();
cleanup();
diff --git a/sys/cmd/dway/dway.h b/sys/cmd/dway/dway.h
index 430f3b7..9c1450c 100644
--- a/sys/cmd/dway/dway.h
+++ b/sys/cmd/dway/dway.h
@@ -50,7 +50,7 @@ union Arg
int i;
uint ui;
float f;
- const void *p;
+ const void *v;
};
struct Button
diff --git a/sys/libn/mmap.c b/sys/libn/mmap.c
index d8b2a61..89b7519 100644
--- a/sys/libn/mmap.c
+++ b/sys/libn/mmap.c
@@ -19,6 +19,7 @@ mmap·open(byte *filename)
errorf("file stat: error code %d", err);
goto ERROR;
}
+
buf = mmap(nil, st.st_size, PROT_READ, MAP_SHARED, fd, 0);
if (!buf) {
errorf("mmap: failed");
diff --git a/sys/rules.mk b/sys/rules.mk
index cfff9b7..5e8262e 100644
--- a/sys/rules.mk
+++ b/sys/rules.mk
@@ -2,8 +2,8 @@ include share/push.mk
# Iterate through subdirectory tree
-DIR := $(d)/libc
-include $(DIR)/rules.mk
+# DIR := $(d)/libc
+# include $(DIR)/rules.mk
DIR := $(d)/libn
include $(DIR)/rules.mk
@@ -14,6 +14,9 @@ include $(DIR)/rules.mk
DIR := $(d)/libbio
include $(DIR)/rules.mk
+DIR := $(d)/libfont
+include $(DIR)/rules.mk
+
DIR := $(d)/cmd
include $(DIR)/rules.mk