[hackers] Unsubscribe
unsubscribe signature.asc Description: PGP signature
Re: [hackers] Re: [dwm][PATCH] Sort screens by horizontal origin
I don't remember if I patched my fork but dwm does it for me when I start my session. I have a script in xinitrc which checks using xrandr and if there are monitors more than one, it activates them on right side. https://github.com/Awan/dwm.gitAbdullah0X5CBC7BC7https://abdullah.todayOn 23 Oct 2019 12:06 pm, Sebastian Sareyko wrote: On Mon, Oct 21 2019, Stein Gunnar Bakkeby wrote: > With this patch the monitors are numbered left to right. So unless I have > misunderstood something if you are running only your laptop and you have > some applications open, and you connect a screen, then whatever was on the > laptop is now moved to the (new) left hand screen. Is that right? This depends on where you position the new screen (e.g. via xrandr). If it is placed to the right of your laptop screen no clients will be moved. If you put the new screen to the left however, clients will be disappear on the laptop screen and appear on the new screen. > I was thinking that once the monitors are sorted one could also loop > through the monitors starting from 0 to find the index of the primary > monitor (can be assumed to be monitor 0 in the original list), then shift > the list so that primary is 0 again. Maybe I'm misunderstanding what you're saying, but this would just confuse the ordering if the primary screen is not placed on the top left of all screens. -- Sebastian Sareyko
Re: [hackers] [dwm][patch] patch to enable a scratchpad feature in dwm as in i3wm
I have dwm fork and scratchpad is enabled Mod1/4 + i, I use urxvtc there...Abdullahhttps://abdullah.todayOn 9 Oct 2019 22:32, Գասպար Վարդանյան wrote: Patch: https://github.com/GasparVardanyan/dwm-scratchpad Sorry for this form of message, my git gives this error and I can't to solve it:Unable to initialize SMTP properly. Check config and use --smtp-debug. VALUES: server=localhost encryption= hello=GasparVardanyan.local port=25 at /usr/lib/git-core/git-send-email line 1558.
Re: [hackers] Polybar status support
On 03/10, Teodoro Santoni wrote: 2019-10-03 15:22 GMT+02:00, Abdullah : I would write something, but something in dwm.c should be modified to give polybar some space. On 03-Oct-2019 6:09 PM, Greg Reagle wrote: On Thu, Oct 3, 2019, at 06:26, Abdullah wrote: > I can use bash for that. But don't you think it will use more > resources? Previously I had been using such scripts for > polybar modules and they were using much resources. Bash is not a lightweight shell; it is a shell with a lot of features. I would *speculate* that writing in something like rc [1] or ksh [2] [3] would use less RAM. [1] https://tools.suckless.org/9base/ [2] http://www.kornshell.com/ [3] http://mirbsd.de/mksh Ah, I see. The freespace patch and/or extrabar may help you, and you can disable the statusbar with the function togglebar in dwm. Thanks for suggestions. I'll check it now. Abdullah https://abdullah.today C20F 2707 3025 2569 BAC5 534B 7820 6670 C19D 1580 signature.asc Description: PGP signature
Re: [hackers] Polybar status support
I would write something, but something in dwm.c should be modified to give polybar some space. On 03-Oct-2019 6:09 PM, Greg Reagle wrote:On Thu, Oct 3, 2019, at 06:26, Abdullah wrote: > I can use bash for that. But don't you think it will use more resources? Previously I had been using such scripts for > polybar modules and they were using much resources. Bash is not a lightweight shell; it is a shell with a lot of features. I would *speculate* that writing in something like rc [1] or ksh [2] [3] would use less RAM. [1] https://tools.suckless.org/9base/ [2] http://www.kornshell.com/ [3] http://mirbsd.de/mksh
Re: [hackers] Polybar status support
I can use bash for that. But don't you think it will use more resources? Previously I had been using such scripts for polybar modules and they were using much resources. I recently moved to polybar internal module for pulse audio and is way better than bash scripts. And polybar works only if I do 'override redirect=true' so that's why I was asking to modify dwm.c . Without that polybar is launched as a window and occupies whole monitor if nothing else is opened in the tag. Plus the module/script won't work like we won't be able to do left click on tags thus joining them in one. On 03-Oct-2019 3:00 PM, Teodoro Santoni wrote:Hi, 2019-10-03 10:31 GMT+02:00, Abdullah : > Polybar isn't working with dwm. Can someone write a patch to make it work > with > dwm? I'm not good at C. I have made it work with ewmh patch but still I > can't > click on tags in polybar. They are just there. I think we have to reserver > some > space in dwm.c for polybar to make it work. > > > Thanks, > > Abdullah > > https://abdullah.today If you're good at any language you could provide a module to polybar that would use ewmh for reading and dwmc or dwmfifo patches or xdotool or wmctrl to switch tags.
[hackers] Polybar status support
Polybar isn't working with dwm. Can someone write a patch to make it work with dwm? I'm not good at C. I have made it work with ewmh patch but still I can't click on tags in polybar. They are just there. I think we have to reserver some space in dwm.c for polybar to make it work. Thanks, Abdullah https://abdullah.today C20F 2707 3025 2569 BAC5 534B 7820 6670 C19D 1580 signature.asc Description: PGP signature
Re: [hackers] [dwm][PATCH] Sort screens by horizontal origin
I never faced a single problem with multihead with dwm. But I'll try this patch. I use xrandr. On 27/09, Hiltjo Posthuma wrote: On Fri, Sep 27, 2019 at 03:28:39PM +0200, Sebastian Sareyko wrote: Doing a multi-head setup using other means than Xinerama may lead to XineramaQueryScreens() returning the screens in an order that does not actually represent the actual screen layout. This in turn may result in dwm using the "wrong" monitor in monitor related functions (focusmon(), tagmon(), applying rules, ...). This change sorts the list of unique screens by their horizontal origin to alleviate this problem. The change does not solve (and may even provoke) the described issue when screens are not only placed next to each other in a horizontal way but also vertically. --- dwm.c | 19 +++ 1 file changed, 19 insertions(+) diff --git a/dwm.c b/dwm.c index 4465af1..a8e9467 100644 --- a/dwm.c +++ b/dwm.c @@ -1847,6 +1847,24 @@ updateclientlist() (unsigned char *) &(c->win), 1); } +#ifdef XINERAMA +void +sortscreens(XineramaScreenInfo *screens, int n) +{ + int i, j; + XineramaScreenInfo *screen = ecalloc(1, sizeof(XineramaScreenInfo)); + + for (i = 0; i < n; i++) + for (j = i + 1; j < n; j++) + if (screens[i].x_org > screens[j].x_org) { + memcpy(&screen[0], &screens[i], sizeof(XineramaScreenInfo)); + memcpy(&screens[i], &screens[j], sizeof(XineramaScreenInfo)); + memcpy(&screens[j], &screen[0], sizeof(XineramaScreenInfo)); + } + XFree(screen); +} +#endif /* XINERAMA */ + int updategeom(void) { @@ -1868,6 +1886,7 @@ updategeom(void) memcpy(&unique[j++], &info[i], sizeof(XineramaScreenInfo)); XFree(info); nn = j; + sortscreens(unique, nn); if (n <= nn) { /* new monitors available */ for (i = 0; i < (nn - n); i++) { for (m = mons; m && m->next; m = m->next); -- 2.21.0 Have you tried xrandr to reorder the screens? It should probably be solved in a different way. -- Kind regards, Hiltjo Abdullah https://abdullah.today C20F 2707 3025 2569 BAC5 534B 7820 6670 C19D 1580 signature.asc Description: PGP signature
Re: [hackers] [dwm][PATCH] Invert urgent border for window hint
will check it once I'm free. On 02/09, Ivan Tham wrote: Feature parity for tags with urgent client. Tags are inversed but not window border. Window border now uses SchemeNorm ColFg, same as tags but for window. Prior art: https://dwm.suckless.org/patches/focusurgent/ --- dwm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dwm.c b/dwm.c index 4465af1..c07d7b2 100644 --- a/dwm.c +++ b/dwm.c @@ -2022,8 +2022,8 @@ updatewmhints(Client *c) if (c == selmon->sel && wmh->flags & XUrgencyHint) { wmh->flags &= ~XUrgencyHint; XSetWMHints(dpy, c->win, wmh); - } else - c->isurgent = (wmh->flags & XUrgencyHint) ? 1 : 0; + } else if ((c->isurgent = (wmh->flags & XUrgencyHint) ? 1 : 0)) + XSetWindowBorder(dpy, c->win, scheme[SchemeNorm][ColFg].pixel); if (wmh->flags & InputHint) c->neverfocus = !wmh->input; else -- 2.23.0 Abdullah https://abdullah.today C20F 2707 3025 2569 BAC5 534B 7820 6670 C19D 1580 signature.asc Description: PGP signature
Re: [hackers] [dwm][Patch] Gestures for 6.2
Can't I use to do like, if I do a three fingers gestures left or right on touchpad, dwm should go to next or previous tag? On 01/08, Jost Brandstetter wrote: > Simple fix for currrent revision > From c818904c9c736cb2d1e0f6b9b55bdc7a8580784b Mon Sep 17 00:00:00 2001 > From: JostBrand > Date: Thu, 1 Aug 2019 21:04:46 +0200 > Subject: [PATCH] Gestures Patch Fixed for 6.2 > > --- > config.def.h | 13 ++ > dwm.c| 70 > 2 files changed, 83 insertions(+) > > diff --git a/config.def.h b/config.def.h > index 1c0b587..4671abc 100644 > --- a/config.def.h > +++ b/config.def.h > @@ -59,6 +59,18 @@ static char dmenumon[2] = "0"; /* component of dmenucmd, > manipulated in spawn() > static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", > dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", > col_gray4, NULL }; > static const char *termcmd[] = { "st", NULL }; > > +//may want to reuse the architecture present in buttons[] and keys[] > +static Gesture gestures[] = { > +{"dl", spawn, SHCMD("")}, > +{"dr", spawn, SHCMD("")}, > +{"l", spawn, SHCMD("")}, > +{"ld", spawn, SHCMD("")}, > +{"lr", spawn, SHCMD("")}, > +{"r", spawn, SHCMD("firefox")}, > +{"rl", spawn, SHCMD("pavucontrol")}, > +{"du", spawn, SHCMD("st")}, > +}; > + > static Key keys[] = { > /* modifier keyfunctionargument */ > { MODKEY, XK_p, spawn, {.v = > dmenucmd } }, > @@ -111,5 +123,6 @@ static Button buttons[] = { > { ClkTagBar,0, Button3,toggleview, > {0} }, > { ClkTagBar,MODKEY, Button1,tag, > {0} }, > { ClkTagBar,MODKEY, Button3,toggletag, > {0} }, > +{ ClkWinTitle, 0, Button3,startgesture, > {0} }, > }; > > diff --git a/dwm.c b/dwm.c > index 4465af1..5cbcaed 100644 > --- a/dwm.c > +++ b/dwm.c > @@ -82,6 +82,12 @@ typedef struct { > const Arg arg; > } Button; > > +typedef struct { > + char *name; > + void (*func)(const Arg *arg); > + const Arg arg; > +} Gesture; > + > typedef struct Monitor Monitor; > typedef struct Client Client; > struct Client { > @@ -235,6 +241,7 @@ static int xerrorstart(Display *dpy, XErrorEvent *ee); > static void zoom(const Arg *arg); > > /* variables */ > +static void startgesture(const Arg *arg); > static const char broken[] = "broken"; > static char stext[256]; > static int screen; > @@ -1344,6 +1351,69 @@ resizemouse(const Arg *arg) > } > } > > +void > +startgesture(const Arg *arg) { > + int x, y, dx, dy, q; > + int valid=0, listpos=0, gestpos=0, count=0; > + char move, currGest[10]; > + XEvent ev; > + > + if(XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, > GrabModeAsync, > + None, cursor[CurMove]->cursor, CurrentTime) != > GrabSuccess) > + return; > + if(!getrootptr(&x, &y)) > + return; > + do { > + XMaskEvent(dpy, > MOUSEMASK|ExposureMask|SubstructureRedirectMask, &ev); > + switch (ev.type) > + { > + case ConfigureRequest: > + case Expose: > + case MapRequest: > + handler[ev.type](&ev); > + break; > + case MotionNotify: > + if(count++ < 10) > + break; > + count = 0; > + dx = ev.xmotion.x - x; > + dy = ev.xmotion.y - y; > + x = ev.xmotion.x; > + y = ev.xmotion.y; > + > + if( abs(dx)/(abs(dy)+1) == 0 ) > + move = dy<0?'u':'d'; > + else > + move = dx<0?'l':'r'; > + > + if(move!=currGest[gestpos-1]) > + { > + if(gestpos>9) > + { ev.type++; > + break; > + } > + > + currGest[gestpos] = > move; > +
Re: [hackers] [dwm][PATCH] fix status bar width in buttonpress
So what this patch does? On 27/06, ornx wrote: > --- > dwm.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > > diff --git a/dwm.c b/dwm.c > index 4465af1..60c2a24 100644 > --- a/dwm.c > +++ b/dwm.c > @@ -439,7 +439,7 @@ buttonpress(XEvent *e) > arg.ui = 1 << i; > } else if (ev->x < x + blw) > click = ClkLtSymbol; > - else if (ev->x > selmon->ww - TEXTW(stext)) > + else if (ev->x > selmon->ww - TEXTW(stext) + lrpad - 2) > click = ClkStatusText; > else > click = ClkWinTitle; > -- > 2.20.1 > A K C20F 2707 3025 2569 BAC5 534B 7820 6670 C19D 1580 signature.asc Description: PGP signature
Re: [hackers] [slstatus][PATCH] backlight module
I did check it yesterday. and yeah you should add the backlight.c in components directory. On 30/03, Ryan wrote: > I just tested the patch again against master, works for me. You sure you > tested it against slstatus master? > > On Fri, Mar 29, 2019 at 10:34 PM Abdullah wrote: > > > No such file or directory, backlight.o > > This error comes after applying this patch. > > > > On 29/03, Ryan Kes wrote: > > > --- > > > Makefile | 1 + > > > components/backlight.c | 36 > > > config.def.h | 1 + > > > slstatus.h | 3 +++ > > > 4 files changed, 41 insertions(+) > > > create mode 100644 components/backlight.c > > > > > > diff --git a/Makefile b/Makefile > > > index 945b5e3..28a205f 100644 > > > --- a/Makefile > > > +++ b/Makefile > > > @@ -6,6 +6,7 @@ include config.mk > > > > > > REQ = util > > > COM =\ > > > + components/backlight\ > > > components/battery\ > > > components/cpu\ > > > components/datetime\ > > > diff --git a/components/backlight.c b/components/backlight.c > > > new file mode 100644 > > > index 000..fcc062a > > > --- /dev/null > > > +++ b/components/backlight.c > > > @@ -0,0 +1,36 @@ > > > +/* See LICENSE file for copyright and license details. */ > > > +#include > > > +#include > > > + > > > +#include "../util.h" > > > + > > > +#if defined(__linux__) > > > + #include > > > + #include > > > + #include > > > + > > > + const char * > > > + backlight_perc(const char *backlight) > > > + { > > > + float value; > > > + char path[PATH_MAX]; > > > + > > > + if (esnprintf(path, sizeof(path), > > > + > > "/sys/class/backlight/%s/actual_brightness", backlight) < 0) { > > > + return NULL; > > > + } > > > + if (pscanf(path, "%f", &value) != 1) { > > > + return NULL; > > > + } > > > + > > > + return bprintf("%d", (int)(value / 852 * 100)); > > > + } > > > + > > > +#else > > > + const char * > > > + backlight_perc(const char *backlight) > > > + { > > > + return NULL; > > > + } > > > + > > > +#endif > > > diff --git a/config.def.h b/config.def.h > > > index e06be66..d0996ef 100644 > > > --- a/config.def.h > > > +++ b/config.def.h > > > @@ -12,6 +12,7 @@ static const char unknown_str[] = "n/a"; > > > /* > > > * functiondescription argument > > (example) > > > * > > > + * backlight_perc backlight percentagebacklight name > > (intel_backlight) > > > * battery_percbattery percentage battery name > > (BAT0) > > > * NULL on > > OpenBSD/FreeBSD > > > * battery_state battery charging state battery name > > (BAT0) > > > diff --git a/slstatus.h b/slstatus.h > > > index 08f610a..d9c0b5f 100644 > > > --- a/slstatus.h > > > +++ b/slstatus.h > > > @@ -1,5 +1,8 @@ > > > /* See LICENSE file for copyright and license details. */ > > > > > > +/* backlight */ > > > +const char *backlight_perc(const char *backlight); > > > + > > > /* battery */ > > > const char *battery_perc(const char *); > > > const char *battery_state(const char *); > > > -- > > > 2.21.0 > > > > > > > > > > > > A K > > https://abdullah.today > > 69C8 7720 E507 86DF 1D85 > > EA5E FC59 7891 5CBC 7BC7 > > > > > > A K https://abdullah.today 69C8 7720 E507 86DF 1D85 EA5E FC59 7891 5CBC 7BC7 signature.asc Description: PGP signature
Re: [hackers] [slstatus][PATCH] backlight module
No such file or directory, backlight.o This error comes after applying this patch. On 29/03, Ryan Kes wrote: > --- > Makefile | 1 + > components/backlight.c | 36 > config.def.h | 1 + > slstatus.h | 3 +++ > 4 files changed, 41 insertions(+) > create mode 100644 components/backlight.c > > diff --git a/Makefile b/Makefile > index 945b5e3..28a205f 100644 > --- a/Makefile > +++ b/Makefile > @@ -6,6 +6,7 @@ include config.mk > > REQ = util > COM =\ > + components/backlight\ > components/battery\ > components/cpu\ > components/datetime\ > diff --git a/components/backlight.c b/components/backlight.c > new file mode 100644 > index 000..fcc062a > --- /dev/null > +++ b/components/backlight.c > @@ -0,0 +1,36 @@ > +/* See LICENSE file for copyright and license details. */ > +#include > +#include > + > +#include "../util.h" > + > +#if defined(__linux__) > + #include > + #include > + #include > + > + const char * > + backlight_perc(const char *backlight) > + { > + float value; > + char path[PATH_MAX]; > + > + if (esnprintf(path, sizeof(path), > + "/sys/class/backlight/%s/actual_brightness", > backlight) < 0) { > + return NULL; > + } > + if (pscanf(path, "%f", &value) != 1) { > + return NULL; > + } > + > + return bprintf("%d", (int)(value / 852 * 100)); > + } > + > +#else > + const char * > + backlight_perc(const char *backlight) > + { > + return NULL; > + } > + > +#endif > diff --git a/config.def.h b/config.def.h > index e06be66..d0996ef 100644 > --- a/config.def.h > +++ b/config.def.h > @@ -12,6 +12,7 @@ static const char unknown_str[] = "n/a"; > /* > * functiondescription argument (example) > * > + * backlight_perc backlight percentagebacklight name > (intel_backlight) > * battery_percbattery percentage battery name (BAT0) > * NULL on > OpenBSD/FreeBSD > * battery_state battery charging state battery name (BAT0) > diff --git a/slstatus.h b/slstatus.h > index 08f610a..d9c0b5f 100644 > --- a/slstatus.h > +++ b/slstatus.h > @@ -1,5 +1,8 @@ > /* See LICENSE file for copyright and license details. */ > > +/* backlight */ > +const char *backlight_perc(const char *backlight); > + > /* battery */ > const char *battery_perc(const char *); > const char *battery_state(const char *); > -- > 2.21.0 > > A K https://abdullah.today 69C8 7720 E507 86DF 1D85 EA5E FC59 7891 5CBC 7BC7 signature.asc Description: PGP signature
Re: [hackers] [dwm][PATCH] dwm-ewhmtags-6.2
this one is already submitted. maybe you changed somthing. does this work now? I used it and I couldn't click on tag numbers in polybar. btw appreciate your efforts. On 29/03, Ryan Kes wrote: > --- > dwm.c | 49 - > 1 file changed, 48 insertions(+), 1 deletion(-) > > diff --git a/dwm.c b/dwm.c > index 4465af1..92022a1 100644 > --- a/dwm.c > +++ b/dwm.c > @@ -55,6 +55,7 @@ > #define WIDTH(X)((X)->w + 2 * (X)->bw) > #define HEIGHT(X) ((X)->h + 2 * (X)->bw) > #define TAGMASK ((1 << LENGTH(tags)) - 1) > +#define TAGSLENGTH (LENGTH(tags)) > #define TEXTW(X)(drw_fontset_getwidth(drw, (X)) + lrpad) > > /* enums */ > @@ -62,7 +63,7 @@ enum { CurNormal, CurResize, CurMove, CurLast }; /* cursor > */ > enum { SchemeNorm, SchemeSel }; /* color schemes */ > enum { NetSupported, NetWMName, NetWMState, NetWMCheck, > NetWMFullscreen, NetActiveWindow, NetWMWindowType, > - NetWMWindowTypeDialog, NetClientList, NetLast }; /* EWMH atoms */ > + NetWMWindowTypeDialog, NetClientList, NetDesktopNames, > NetDesktopViewport, NetNumberOfDesktops, NetCurrentDesktop, NetLast }; /* > EWMH atoms */ > enum { WMProtocols, WMDelete, WMState, WMTakeFocus, WMLast }; /* default > atoms */ > enum { ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, > ClkClientWin, ClkRootWin, ClkLast }; /* clicks */ > @@ -197,11 +198,15 @@ static void scan(void); > static int sendevent(Client *c, Atom proto); > static void sendmon(Client *c, Monitor *m); > static void setclientstate(Client *c, long state); > +static void setcurrentdesktop(void); > +static void setdesktopnames(void); > static void setfocus(Client *c); > static void setfullscreen(Client *c, int fullscreen); > static void setlayout(const Arg *arg); > static void setmfact(const Arg *arg); > +static void setnumdesktops(void); > static void setup(void); > +static void setviewport(void); > static void seturgent(Client *c, int urg); > static void showhide(Client *c); > static void sigchld(int unused); > @@ -216,6 +221,7 @@ static void toggleview(const Arg *arg); > static void unfocus(Client *c, int setfocus); > static void unmanage(Client *c, int destroyed); > static void unmapnotify(XEvent *e); > +static void updatecurrentdesktop(void); > static void updatebarpos(Monitor *m); > static void updatebars(void); > static void updateclientlist(void); > @@ -1431,6 +1437,16 @@ setclientstate(Client *c, long state) > XChangeProperty(dpy, c->win, wmatom[WMState], wmatom[WMState], 32, > PropModeReplace, (unsigned char *)data, 2); > } > +void > +setcurrentdesktop(void){ > + long data[] = { 0 }; > + XChangeProperty(dpy, root, netatom[NetCurrentDesktop], XA_CARDINAL, 32, > PropModeReplace, (unsigned char *)data, 1); > +} > +void setdesktopnames(void){ > + XTextProperty text; > + Xutf8TextListToTextProperty(dpy, tags, TAGSLENGTH, XUTF8StringStyle, > &text); > + XSetTextProperty(dpy, root, &text, netatom[NetDesktopNames]); > +} > > int > sendevent(Client *c, Atom proto) > @@ -1457,6 +1473,12 @@ sendevent(Client *c, Atom proto) > return exists; > } > > +void > +setnumdesktops(void){ > + long data[] = { TAGSLENGTH }; > + XChangeProperty(dpy, root, netatom[NetNumberOfDesktops], XA_CARDINAL, > 32, PropModeReplace, (unsigned char *)data, 1); > +} > + > void > setfocus(Client *c) > { > @@ -1562,6 +1584,10 @@ setup(void) > netatom[NetWMWindowType] = XInternAtom(dpy, "_NET_WM_WINDOW_TYPE", > False); > netatom[NetWMWindowTypeDialog] = XInternAtom(dpy, > "_NET_WM_WINDOW_TYPE_DIALOG", False); > netatom[NetClientList] = XInternAtom(dpy, "_NET_CLIENT_LIST", False); > + netatom[NetDesktopViewport] = XInternAtom(dpy, "_NET_DESKTOP_VIEWPORT", > False); > + netatom[NetNumberOfDesktops] = XInternAtom(dpy, > "_NET_NUMBER_OF_DESKTOPS", False); > + netatom[NetCurrentDesktop] = XInternAtom(dpy, "_NET_CURRENT_DESKTOP", > False); > + netatom[NetDesktopNames] = XInternAtom(dpy, "_NET_DESKTOP_NAMES", > False); > /* init cursors */ > cursor[CurNormal] = drw_cur_create(drw, XC_left_ptr); > cursor[CurResize] = drw_cur_create(drw, XC_sizing); > @@ -1584,6 +1610,10 @@ setup(void) > /* EWMH support per view */ > XChangeProperty(dpy, root, netatom[NetSupported], XA_ATOM, 32, > PropModeReplace, (unsigned char *) netatom, NetLast); > + setnumdesktops(); > + setcurrentdesktop(); > + setdesktopnames(); > + setviewport(); > XDeleteProperty(dpy, root, netatom[NetClientList]); > /* select events */ > wa.cursor = cursor[CurNormal]->cursor; > @@ -1595,6 +1625,11 @@ setup(void) > grabkeys(); > focus(NULL); > } > +void > +setviewport(void){ > + long data[] = { 0, 0 }; > + XChangeProperty(dpy, root, netatom[NetDesktopViewport], XA_CARDINAL, > 32, PropModeReplace, (unsig
Re: [hackers] [st][patch] be silent about explicitly unhandled mouse modes
I'm not drunk mate. But someone came in my room who was talking to me and I compose this email while talking to him. The scrot I gave before was the output of ncmpcpp's running song's album art, which is also saved in /tmp. On 13/03, Quentin Rameau wrote: > Hello Abdullah, > > > it fixes this. > > > > see attachment. > > > > On 13/03, Quentin Rameau wrote: > > > Hello Lauri, > > > > > > > diff below fixes it. > > > > > > What does it fix? > > > > > Please do not send to this mailing list while being drunk. > A K https://abdullah.today 69C8 7720 E507 86DF 1D85 EA5E FC59 7891 5CBC 7BC7 signature.asc Description: PGP signature
Re: [hackers] [st][patch] be silent about explicitly unhandled mouse modes
He has explained in his patch what it fixes. On 13/03, Quentin Rameau wrote: > Hello Lauri, > > > diff below fixes it. > > What does it fix? > A K https://abdullah.today 69C8 7720 E507 86DF 1D85 EA5E FC59 7891 5CBC 7BC7 signature.asc Description: PGP signature
[hackers] [dmenu][PATCH] vi-keys like stuff so we can scroll now up, down with mod + j/k
--- dmenu.1 | 8 dmenu.c | 8 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/dmenu.1 b/dmenu.1 index 323f93c..ced143d 100644 --- a/dmenu.1 +++ b/dmenu.1 @@ -179,16 +179,16 @@ Home End .TP .B M\-h -Up +Page Up .TP .B M\-j -Page down +Down .TP .B M\-k -Page up +Up .TP .B M\-l -Down +Page down .SH SEE ALSO .IR dwm (1), .IR stest (1) diff --git a/dmenu.c b/dmenu.c index 3bfd74d..0cebdea 100644 --- a/dmenu.c +++ b/dmenu.c @@ -384,10 +384,10 @@ keypress(XKeyEvent *ev) goto draw; case XK_g: ksym = XK_Home; break; case XK_G: ksym = XK_End; break; - case XK_h: ksym = XK_Up;break; - case XK_j: ksym = XK_Next; break; - case XK_k: ksym = XK_Prior; break; - case XK_l: ksym = XK_Down; break; + case XK_h: ksym = XK_Prior; break; + case XK_j: ksym = XK_Down; break; + case XK_k: ksym = XK_Up;break; + case XK_l: ksym = XK_Next; break; default: return; } -- 2.21.0