aboutsummaryrefslogtreecommitdiff
path: root/repos/xorg/sowm/multihead-support.patch
diff options
context:
space:
mode:
authoremmett1 <emmett1.2miligrams@protonmail.com>2025-02-22 16:46:54 +0800
committeremmett1 <emmett1.2miligrams@protonmail.com>2025-02-22 16:46:54 +0800
commit5b6cf1d4a79d80ea9c6f9e4ab9653875423fe4cb (patch)
treef1fe27b5a2945c9d83d4e60fbca8c32e3f4881d7 /repos/xorg/sowm/multihead-support.patch
parent66196c82a820c3d13c833f4c626afad1dacbfc75 (diff)
downloadalicelinux-5b6cf1d4a79d80ea9c6f9e4ab9653875423fe4cb.tar.gz
alicelinux-5b6cf1d4a79d80ea9c6f9e4ab9653875423fe4cb.zip
dropped xorg
Diffstat (limited to 'repos/xorg/sowm/multihead-support.patch')
-rw-r--r--repos/xorg/sowm/multihead-support.patch118
1 files changed, 0 insertions, 118 deletions
diff --git a/repos/xorg/sowm/multihead-support.patch b/repos/xorg/sowm/multihead-support.patch
deleted file mode 100644
index 58b1f454..00000000
--- a/repos/xorg/sowm/multihead-support.patch
+++ /dev/null
@@ -1,118 +0,0 @@
-From 053833863349107f2cbef6332c7eff0ef6b70344 Mon Sep 17 00:00:00 2001
-From: Devon Morris <devonmorris1992@gmail.com>
-Date: Sat, 11 Apr 2020 15:40:09 -0400
-Subject: [PATCH] added Xinerama fullscreen support
-
----
- Makefile | 2 +-
- sowm.c | 38 ++++++++++++++++++++++++++++++++++----
- sowm.h | 2 ++
- 3 files changed, 37 insertions(+), 5 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 3450a85..a7191f5 100644
---- a/Makefile
-+++ b/Makefile
-@@ -10,7 +10,7 @@ config.h:
- cp config.def.h config.h
-
- sowm:
-- $(CC) -O3 $(CFLAGS) -o sowm sowm.c -lX11 $(LDFLAGS)
-+ $(CC) -O3 $(CFLAGS) -o sowm sowm.c -lX11 -lXinerama $(LDFLAGS)
-
- install: all
- install -Dm755 sowm $(DESTDIR)$(BINDIR)/sowm
-diff --git a/sowm.c b/sowm.c
-index 8b21dc6..88e7de4 100644
---- a/sowm.c
-+++ b/sowm.c
-@@ -4,6 +4,7 @@
- #include <X11/XF86keysym.h>
- #include <X11/keysym.h>
- #include <X11/XKBlib.h>
-+#include <X11/extensions/Xinerama.h>
- #include <stdlib.h>
- #include <signal.h>
- #include <unistd.h>
-@@ -11,7 +12,7 @@
- #include "sowm.h"
-
- static client *list = {0}, *ws_list[10] = {0}, *cur;
--static int ws = 1, sw, sh, wx, wy, numlock = 0;
-+static int ws = 1, sw, sh, wx, wy, numlock = 0, monitors;
- static unsigned int ww, wh;
-
- static Display *d;
-@@ -62,6 +63,8 @@ void notify_motion(XEvent *e) {
- wy + (mouse.button == 1 ? yd : 0),
- MAX(1, ww + (mouse.button == 3 ? xd : 0)),
- MAX(1, wh + (mouse.button == 3 ? yd : 0)));
-+
-+ win_size(cur->w, &cur->wx, &cur->wx, &cur->ww, &cur->wh);
- }
-
- void key_press(XEvent *e) {
-@@ -126,11 +129,37 @@ void win_kill(const Arg arg) {
- if (cur) XKillClient(d, cur->w);
- }
-
-+int multimonitor_action (int action) { // action = 0 -> center; action = 1 -> fs
-+ if (!XineramaIsActive(d)) return 1;
-+ XineramaScreenInfo *si = XineramaQueryScreens(d, &monitors);
-+ for (int i = 0; i < monitors; i++) {
-+ if ((cur->wx + (cur->ww/2) >= (unsigned int)si[i].x_org
-+ && cur->wx + (cur->ww/2) < (unsigned int)si[i].x_org + si[i].width)
-+ && ( cur->wy + (cur->wh/2) >= (unsigned int)si[i].y_org
-+ && cur->wy + (cur->wh/2) < (unsigned int)si[i].y_org + si[i].height)) {
-+ if (action)
-+ XMoveResizeWindow(d, cur->w,
-+ si[i].x_org, si[i].y_org,
-+ si[i].width, si[i].height);
-+ else
-+ XMoveWindow(d, cur->w,
-+ si[i].x_org + ((si[i].width - ww)/2),
-+ si[i].y_org + ((si[i].height -wh)/2));
-+ break;
-+ }
-+ }
-+ return 0;
-+}
-+
- void win_center(const Arg arg) {
- if (!cur) return;
-
- win_size(cur->w, &(int){0}, &(int){0}, &ww, &wh);
-- XMoveWindow(d, cur->w, (sw - ww) / 2, (sh - wh) / 2);
-+ if (multimonitor_action(0)) {
-+ XMoveWindow(d, cur->w, (sw - ww) / 2, (sh - wh) / 2);
-+ }
-+
-+ win_size(cur->w, &cur->wx, &cur->wy, &cur->ww, &cur->wh);
- }
-
- void win_fs(const Arg arg) {
-@@ -138,8 +167,9 @@ void win_fs(const Arg arg) {
-
- if ((cur->f = cur->f ? 0 : 1)) {
- win_size(cur->w, &cur->wx, &cur->wy, &cur->ww, &cur->wh);
-- XMoveResizeWindow(d, cur->w, 0, 0, sw, sh);
--
-+ if(multimonitor_action(1)) {
-+ XMoveResizeWindow(d, cur->w, 0, 0, sw, sh);
-+ }
- } else {
- XMoveResizeWindow(d, cur->w, cur->wx, cur->wy, cur->ww, cur->wh);
- }
-diff --git a/sowm.h b/sowm.h
-index 455ed93..9823d6d 100644
---- a/sowm.h
-+++ b/sowm.h
-@@ -33,6 +33,8 @@ typedef struct client {
- Window w;
- } client;
-
-+int multimonitor_action(int action);
-+
- void button_press(XEvent *e);
- void button_release(XEvent *e);
- void configure_request(XEvent *e);