[hackers] Unsubscribe

2020-01-02 Thread Abdullah

unsubscribe


signature.asc
Description: PGP signature


Re: [hackers] Re: [dwm][PATCH] Sort screens by horizontal origin

2019-10-23 Thread Abdullah
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

2019-10-09 Thread Abdullah
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

2019-10-03 Thread Abdullah

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

2019-10-03 Thread Abdullah
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

2019-10-03 Thread 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

C20F 2707 3025 2569 BAC5
534B 7820 6670 C19D 1580


signature.asc
Description: PGP signature


Re: [hackers] [dwm][PATCH] Sort screens by horizontal origin

2019-09-27 Thread Abdullah

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([0], [i], 
sizeof(XineramaScreenInfo));
+   memcpy([i], [j], 
sizeof(XineramaScreenInfo));
+   memcpy([j], [0], 
sizeof(XineramaScreenInfo));
+   }
+   XFree(screen);
+}
+#endif /* XINERAMA */
+
 int
 updategeom(void)
 {
@@ -1868,6 +1886,7 @@ updategeom(void)
memcpy([j++], [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

2019-09-02 Thread Abdullah

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

2019-08-02 Thread Abdullah
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(, ))
> + return;
> + do {
> + XMaskEvent(dpy, 
> MOUSEMASK|ExposureMask|SubstructureRedirectMask, );
> + switch (ev.type)
> + {
> + case ConfigureRequest:
> + case Expose:
> + case MapRequest:
> + handler[ev.type]();
> + 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

2019-07-04 Thread Abdullah
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

2019-03-30 Thread Abdullah
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", ) != 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

2019-03-29 Thread Abdullah
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", ) != 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

2019-03-29 Thread Abdullah
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, 
> );
> + XSetTextProperty(dpy, root, , 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, (unsigned char 

Re: [hackers] [st][patch] be silent about explicitly unhandled mouse modes

2019-03-13 Thread Abdullah
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

2019-03-01 Thread Abdullah
---
 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