mirror of
https://codeberg.org/dwl/dwl-patches.git
synced 2026-11-04 04:03:18 +00:00
center-terminal: remove this
This is too obscure. I haven't used it in forever and I doubt anyone uses it.
This commit is contained in:
@@ -1,13 +0,0 @@
|
|||||||
### Description
|
|
||||||
Add a keybinding that toggles centering the terminally horizontally when
|
|
||||||
it's the only window, while still tiling multiple windows.
|
|
||||||
|
|
||||||
This limits the width of long text making it easier to read, and avoids
|
|
||||||
covering the wallpaper more than necessary.
|
|
||||||
|
|
||||||
### Download
|
|
||||||
- [git branch](https://codeberg.org/guidocella/dwl/src/branch/center-terminal)
|
|
||||||
- [2026-09-16](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/center-terminal/center-terminal.patch)
|
|
||||||
|
|
||||||
### Authors
|
|
||||||
- [Guido Cella](https://codeberg.org/guidocella)
|
|
||||||
@@ -1,103 +0,0 @@
|
|||||||
From 974db1c4a01a38e2c2af9460e4d9c5f48e7974f7 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Guido Cella <guido@guidocella.xyz>
|
|
||||||
Date: Mon, 9 Feb 2026 10:21:33 +0100
|
|
||||||
Subject: [PATCH] add a keybinding to center the terminal
|
|
||||||
|
|
||||||
Add a keybinding that toggles centering the terminally horizontally when
|
|
||||||
it's the only window, while still tiling multiple windows.
|
|
||||||
|
|
||||||
This limits the width of long text making it easier to read, and avoids
|
|
||||||
covering the wallpaper more than necessary.
|
|
||||||
---
|
|
||||||
config.def.h | 1 +
|
|
||||||
dwl.c | 20 ++++++++++++++++++++
|
|
||||||
2 files changed, 21 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/config.def.h b/config.def.h
|
|
||||||
index 13c5322..aef03cb 100644
|
|
||||||
--- a/config.def.h
|
|
||||||
+++ b/config.def.h
|
|
||||||
@@ -138,6 +138,7 @@ static const Key keys[] = {
|
|
||||||
{ MODKEY, XKB_KEY_space, setlayout, {0} },
|
|
||||||
{ MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_space, togglefloating, {0} },
|
|
||||||
{ MODKEY, XKB_KEY_e, togglefullscreen, {0} },
|
|
||||||
+ { MODKEY, XKB_KEY_v, togglecenter, {0} },
|
|
||||||
{ MODKEY, XKB_KEY_0, view, {.ui = ~0} },
|
|
||||||
{ MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_0, tag, {.ui = ~0} },
|
|
||||||
{ MODKEY, XKB_KEY_comma, focusmon, {.i = WLR_DIRECTION_LEFT} },
|
|
||||||
diff --git a/dwl.c b/dwl.c
|
|
||||||
index f7bda0b..cfdd4d1 100644
|
|
||||||
--- a/dwl.c
|
|
||||||
+++ b/dwl.c
|
|
||||||
@@ -9,6 +9,7 @@
|
|
||||||
#include <signal.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
+#include <strings.h>
|
|
||||||
#include <sys/wait.h>
|
|
||||||
#include <time.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
@@ -158,6 +159,7 @@ typedef struct {
|
|
||||||
unsigned int bw;
|
|
||||||
uint32_t tags;
|
|
||||||
int isfloating, isurgent, isfullscreen;
|
|
||||||
+ bool centered;
|
|
||||||
} Client;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
@@ -354,6 +356,7 @@ static void startdrag(struct wl_listener *listener, void *data);
|
|
||||||
static void tag(const Arg *arg);
|
|
||||||
static void tagmon(const Arg *arg);
|
|
||||||
static void tile(Monitor *m);
|
|
||||||
+static void togglecenter(const Arg *arg);
|
|
||||||
static void togglefloating(const Arg *arg);
|
|
||||||
static void togglefullscreen(const Arg *arg);
|
|
||||||
static void toggletag(const Arg *arg);
|
|
||||||
@@ -460,6 +463,8 @@ static struct wl_listener start_drag = {.notify = startdrag};
|
|
||||||
static struct wl_listener new_session_lock = {.notify = locksession};
|
|
||||||
static struct wl_listener new_foreign_toplevel_capture_request = {.notify = capturerequest};
|
|
||||||
|
|
||||||
+static bool center;
|
|
||||||
+
|
|
||||||
#ifdef XWAYLAND
|
|
||||||
static void activatex11(struct wl_listener *listener, void *data);
|
|
||||||
static void associatex11(struct wl_listener *listener, void *data);
|
|
||||||
@@ -534,6 +539,9 @@ applyrules(Client *c)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+ if (!strcasecmp(appid, termcmd[0]))
|
|
||||||
+ c->centered = true;
|
|
||||||
+
|
|
||||||
c->isfloating |= client_is_float_type(c);
|
|
||||||
setmon(c, mon, newtags);
|
|
||||||
}
|
|
||||||
@@ -2886,6 +2894,11 @@ tile(Monitor *m)
|
|
||||||
if (!VISIBLEON(c, m) || c->isfloating || c->isfullscreen)
|
|
||||||
continue;
|
|
||||||
if (i < m->nmaster) {
|
|
||||||
+ if (n == 1 && center && c->centered) {
|
|
||||||
+ resize(c, (struct wlr_box){.x = m->w.width / 4, .y = m->w.y,
|
|
||||||
+ .width = m->w.width / 2, .height = m->w.height - 2 * c->bw}, 0);
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
resize(c, (struct wlr_box){.x = m->w.x, .y = m->w.y + my, .width = mw,
|
|
||||||
.height = (m->w.height - my) / (MIN(n, m->nmaster) - i)}, 0);
|
|
||||||
my += c->geom.height;
|
|
||||||
@@ -2898,6 +2911,13 @@ tile(Monitor *m)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+void
|
|
||||||
+togglecenter(const Arg *arg)
|
|
||||||
+{
|
|
||||||
+ center = !center;
|
|
||||||
+ tile(selmon);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
void
|
|
||||||
togglefloating(const Arg *arg)
|
|
||||||
{
|
|
||||||
--
|
|
||||||
2.55.0
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user