lukesmithxyz / dwm Goto Github PK
View Code? Open in Web Editor NEWLuke's build of dwm
License: MIT License
Luke's build of dwm
License: MIT License
Hey luke, I'm trying to run xev | awk -F'[ )]+' '/^KeyPress/ { a[NR+2] } NR in a { printf "%-3s %s\n", $5, $8 }' to see what the key symbols for my keylayouts are so that i can modify your keybinding to my likings, but now the swallow patch completely swallows it and I can't see the key symbols in the background, as before it used to pop up the app in a separate window, and used to print the data to the terminal, now the app gets spawned inside the terminal or the terminal gets swallowed ... I have tried setting St to noswallow 1, but it didn't help
When I try to compile this package, I get this error. Do I have to set some Variables before or install any dependencies? Unfortunately, neither the readme nor the official documentation tetell what to do.
dwm build options:
CFLAGS = -std=c99 -pedantic -Wall -Wno-deprecated-declarations -Os -I/usr/X11R6/include -I/usr/include/freetype2 -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_C_SOURCE=2 -DVERSION="6.2" -DXINERAMA
LDFLAGS = -L/usr/X11R6/lib -lX11 -lXinerama -lfontconfig -lXft -lXrender
CC = cc
cc -c -std=c99 -pedantic -Wall -Wno-deprecated-declarations -Os -I/usr/X11R6/include -I/usr/include/freetype2 -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_C_SOURCE=2 -DVERSION=\"6.2\" -DXINERAMA dwm.c
In file included from dwm.c:282:0:
config.h:24:27: error: initializer element is not constant
[SchemeNorm] = { OPAQUE, baralpha, borderalpha },
^
config.h:24:27: note: (near initialization for ‘alphas[0][1]’)
config.h:24:37: error: initializer element is not constant
[SchemeNorm] = { OPAQUE, baralpha, borderalpha },
^
config.h:24:37: note: (near initialization for ‘alphas[0][2]’)
config.h:25:27: error: initializer element is not constant
[SchemeSel] = { OPAQUE, baralpha, borderalpha },
^
config.h:25:27: note: (near initialization for ‘alphas[1][1]’)
config.h:25:37: error: initializer element is not constant
[SchemeSel] = { OPAQUE, baralpha, borderalpha },
^
config.h:25:37: note: (near initialization for ‘alphas[1][2]’)
dwm.c:829:1: warning: ‘focusmon’ defined but not used [-Wunused-function]
focusmon(const Arg *arg)
^
dwm.c:1651:1: warning: ‘spawn’ defined but not used [-Wunused-function]
spawn(const Arg *arg)
^
dwm.c:1677:1: warning: ‘tagmon’ defined but not used [-Wunused-function]
tagmon(const Arg *arg)
^
Makefile:18: die Regel für Ziel „dwm.o“ scheiterte
make: *** [dwm.o] Fehler 1
Btw: Is it correct to use C99? Or is C11 required?
with this we could have the calculator spawn in a scratchpad by a single keybinding, and tmux spawn in a separate scratchpad, and a real scratchpad, and what ever you wish, just like in your i3 config ... consider implementing it :) I really miss this feature on dwm :)
Hello, after I configure the emoji, the Chinese font cannot be displayed. What is the problem?
how did you get the statusbar icons to display the Joypixels icons? I copied your font settings from your dwm build to my own, but I still get the black and white icons ... is there some patch / tweak that I'm not aware of? :)
Hi,
If I add the following rule:
{ "Spotify", NULL, NULL, 1<<2, 1, 0, 0, 0 },
dwm simply ignores and opens Spotify in active tag, rather than 3 tag. It does work for all other applications but not Spotify. What could be causing such behaviour?
It is there in the Suckless repository, i can't think of a reason why you won't add the binding for the backlight.
Do let me know if it is intentional.
lf it is not, i would like to open a pull request.
Hi Luke!
What you think about scratchpad in dwm?
I made it: https://github.com/GasparVardanyan/dwm-scratchpad
how I can move windows around with your DWM setu (dwm+dwmblocks+st+voidrice), now clue how to move terminal A+B to terminal B +A in a workspace, looking how to do this like i3 with MOD+arrow
add at least 1 screenshot to readme.md
Your scratchpad works for just a single terminal window.
You can use this patch to be able to move any window and any amount of windows to scratchpad: https://github.com/GasparVardanyan/dwm-scratchpad
Go to an empty workspace and press Super+v, or Super+V, dwm will crash.
It's because these operations don't check if stack is empty.
#66 fixes this
the wallpaper will set but it will revert back to another wallpaper after reboot. also wasn't sure whether to put this issue in larbs, DWM, or your void rice since setbg is a script in your dot's
I noticed from videos that the alpha patch for st seems to be interfering with the transparency for borders of st windows but not of others. I had the same problem, the following patch seemed to fix it for me:
diff --git a/drw.c b/drw.c
index 0eb8fe5..292c496 100644
--- a/drw.c
+++ b/drw.c
@@ -189,6 +189,8 @@ drw_clr_create(Drw *drw, Clr *dest, const char *clrname)
DefaultColormap(drw->dpy, drw->screen),
clrname, dest))
die("error, cannot allocate color '%s'", clrname);
+
+ dest->pixel = (dest->pixel & 0x00ffffffU) | (0xffU << 24);
}
/* Wrapper to create color schemes. The caller has to call free(3) on the
Would submit a PR but I didn't test it very much and I no longer use st's alpha patch.
I have added quite a few patch with your version
such as systray (allows you to show system tray ), pertag (allows you to use different layouts per workspace), warp(focus the mouse on the center of new master useful so you can use keyboard binding related to focus workspace), focusonnetactive (useful if you are opening links on one terminal and the browser is on other workspace, it will open that link and automatically switch to that workspace)
If you think This will be a good to be added to your DWM build , i would like to create a pull request...
but if u think this is enough for now, i can understand...
How do you use deck layout without focusing master with the mouse? I like the deck layout because it's very compact, but it's hard to use right now, I need to mouse over to master to keep the window on the right.
Disclaimer: I'm not using the latest voidrice of yours.
Mod+Backspace
does not bring up a list of options.~/.local/bin/statusbar/
, which does not exist in my laptop, nor in the current voidrice
repo.lf
still lacks of a tutorial (invoked by Mod+F2
).Mod+D
does not bring up root terminal.Hi Luke,
Can you add the list of applied patches in the readme?
This is a little hard to provide more information for but I'll try! I've recently switched to using your dwm and st. The keybinding inside your config.h for quitting dwm is meta + F2. Now, when I press this, my status bar flickers and if I have my mouse focused on another screen my open terminals will move to the screen that's empty, but it doesn't quit.
I modified to try and change the keybinding to the default meta + shift + q and I still get the same behaviour. I do not get this behaviour on the base dwm build.
Is there a patch that's causing this? Note: I am not using dwmblocks or any status bar. Could this be causing the issue?
You can do something like this: https://imgur.com/a/d5S9PXm
https://github.com/GasparVardanyan/dwm/blob/d1abbb9039514b182eac734b8089fc26ac9279bc/config.h#L156
Been using DWM since your video. I have to say, it is leagues ahead of i3 in terms of features. You cant $mod + scroll a window to resize or drag it around in i3 like you can in DWM. It even handles moving tabs from different browser windows better. And dont even get me started on the layouts, freaking sweet. I am very much looking forward to customizing it more. Thanks again Luke for showing us da way.
If you would open it up on your page, I would be more than happy to sponsor you on Github!
would love to remove this but ive installed the dwm from aur
fresh from larbs install...
would love if you could patch this up and push to aur...
a big annoyance is that if a window is by default floating (for example gimp loading screen or dmenu or any by-default floating window) it will also get swallowed unless "noswallow" is set. i propose a change that will swallow only non-floating windows with the ability to change config.
patch looks something like this:
diff --git a/config.h b/config.h
index 7bee0b0..962ba79 100644
--- a/config.h
+++ b/config.h
@@ -7,6 +7,7 @@ static const unsigned int gappih = 20; /* horiz inner gap between windo
static const unsigned int gappiv = 10; /* vert inner gap between windows */
static const unsigned int gappoh = 10; /* horiz outer gap between windows and screen edge */
static const unsigned int gappov = 30; /* vert outer gap between windows and screen edge */
+static const int swallowfloating = 0; /* 1 means swallow floating windows by default */
static const int smartgaps = 0; /* 1 means no outer gap when there is only one window */
static const int showbar = 1; /* 0 means no bar */
static const int topbar = 1; /* 0 means bottom bar */
diff --git a/dwm.c b/dwm.c
index 9331025..242909e 100644
--- a/dwm.c
+++ b/dwm.c
@@ -485,6 +485,8 @@ swallow(Client *p, Client *c)
{
if (c->noswallow || c->isterminal)
return;
+ if (!swallowfloating && c->isfloating)
+ return;
detach(c);
detachstack(c);
using your dwm+st+dwmblocks+voidrice in dwm arrow keys Left and Right didnt work, they are set'ed in config.h but still using vim keys Mod+k instead of Mod+Right same with left, how do i switch if config.h is already OK
Hello,
Could you add the xrdb argument to dwmc :
1)
case $1 in
setlayout | view | viewall | togglebar | togglefloating | zoom | killclient | quit | xrdb)
thank you very much for your work !
Love your youtube channel :)
I tried patching my build of dwm by including changes from Luke's gaps commit (6effa70).
I did the patch manually because I'm a noob. However, I'm pretty sure I made the changes correctly.
My problem is that whenever I open my first window in tiling layout, it does not open in fullscreen, i.e. it opens as if it has slaves to the side of it (fullscreen means fullscreen but with the outer gaps). When opening a second window the first window becomes the slave and everything behaves as it should.
The above description applies when I have one master window. If I on the other hand reduce it to none, the window spans the entire screen.
I'm guessing I have missed something and just adding the changes from Luke's commit might not be enough. Suggestions?
My build of dwm (it's quite basic).
Hi, today for the first time i got a couple of random logouts. I think is related to pulseaudio in some way. I got them two times and both happened when changing volumes or swapping sink-port with pactl. Here is the journald log.
may 11 04:14:08 Kredik audit[1]: SERVICE_START pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-coredump@0-27482-0 comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
may 11 04:14:08 Kredik systemd[1]: Started Process Core Dump (PID 27482/UID 0).
may 11 04:14:10 Kredik systemd-coredump[27483]: Process 1046 (dwm) of user 1001 dumped core.
Stack trace of thread 1046:
#0 0x000055a6f1226de4 detach (dwm + 0x7de4)
#1 0x000055a6f122b035 pushstack (dwm + 0xc035)
#2 0x000055a6f1228c9d keypress (dwm + 0x9c9d)
#3 0x000055a6f1225fdb main (dwm + 0x6fdb)
#4 0x00007fbeb278f023 __libc_start_main (libc.so.6 + 0x27023)
#5 0x000055a6f122617e _start (dwm + 0x717e)
may 11 04:14:10 Kredik systemd[1]: [email protected]: Succeeded.
may 11 04:14:11 Kredik kernel: audit: type=1131 audit(1589181250.176:116): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-coredump@0-27482-0 comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? >
may 11 04:14:11 Kredik kernel: audit: type=1334 audit(1589181250.246:117): prog-id=15 op=UNLOAD
may 11 04:14:11 Kredik kernel: audit: type=1334 audit(1589181250.246:118): prog-id=14 op=UNLOAD
may 11 04:14:10 Kredik audit[1]: SERVICE_STOP pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-coredump@0-27482-0 comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
may 11 04:14:10 Kredik audit: AUDIT1334 prog-id=15 op=UNLOAD
may 11 04:14:10 Kredik audit: AUDIT1334 prog-id=14 op=UNLOAD
may 11 04:14:11 Kredik login[529]: pam_unix(login:session): session closed for user razor
may 11 04:14:11 Kredik kernel: audit: type=1104 audit(1589181251.243:119): pid=529 uid=0 auid=1001 ses=1 msg='op=PAM:setcred grantors=pam_securetty,pam_tally2,pam_shells,pam_unix,pam_permit,pam_gnupg acct="razor" exe="/usr/bin/log>
may 11 04:14:11 Kredik audit[529]: CRED_DISP pid=529 uid=0 auid=1001 ses=1 msg='op=PAM:setcred grantors=pam_securetty,pam_tally2,pam_shells,pam_unix,pam_permit,pam_gnupg acct="razor" exe="/usr/bin/login" hostname=Kredik addr=? ter>
may 11 04:14:11 Kredik audit[529]: USER_END pid=529 uid=0 auid=1001 ses=1 msg='op=PAM:session_close grantors=pam_loginuid,pam_keyinit,pam_limits,pam_unix,pam_permit,pam_mail,pam_systemd,pam_env,pam_gnupg acct="razor" exe="/usr/bin>
may 11 04:14:11 Kredik systemd-logind[519]: Session 1 logged out. Waiting for processes to exit.
Anyone suffered something like this?
hello luke 😀
can you put your used patches names in readme file or anathor file??
I recently applied the Nord color scheme on Xresources, and it looks like the color settings in dwm.c don't match what resources applies, I mean its picking the wrong colors, if you compare my terminal/lf with dwm's bar it's a very noticeable difference, I'v noticed this when applying gruvbox color scheme as well, that the colors simply do not match the scheme, well they do, but wrong colors are being applied to it
i think swallow patch is very handy hope someone can patch it up...
or make a pull request
I want to transform your i3block, but the dwm can't show the icons :( Do you have the same problem?
Hello!, i'm trying to use the autocompile function from vimtex to edit a .tex file on vim. But the swallow of dwm keeps putting zathura on top of the vim editor. I tried to set no_swallow for Zathura but no case. Anyone had this problem before? or there is any alternative to vimtex? I will try to find the function that starts zathura in the latexmk source though.
I checked and xbacklight
commands do work. This would be a pretty easy fix, but I don't know the XK_##
thing for the brightness keys.
Is it possible to resize tiles (without going in floating mode) using the mouse. Similar to how it works on bspwm.
I am trying to move from bspwm to dwm as it has some better modularity and i would like to have some of the basic features from bspwm.
If resizing tiles using the mouse it's not possible, then is it possible to switch tiles position by dragging them over another tile, similar to bspwm.
There is no shortcut to switch monitors
Please check pull request #28
Hi Luke!
I am a programmer and can not find the solution how can I resolve the window resize issue in dwm. I post the issue here, because I hope you can help me thinking, how I can fix this. I have google for a long time, to find the solution, but I did not find it.
I attach a picture about the situation. When I resize the window, after the minimum size of the window reached, I can not make it smaller. In floating layout it does not matter, but in other layout it is so bad, because it is over then the others.
Thank you for your answer!
For people who also want to add the systray patch, there's an additional change you will have to make.
Change the line:
XFillRectangle(dpy, systray->win, drw->gc, 0, 0, w, bh);
to
XFillRectangle(dpy, systray->win, XCreateGC(dpy, root, 0 , NULL), 0, 0, w, bh);
In larbs.mom says that Mod+i/I increase or decrease the number of master windows, but in config.h Mod+i/I are configured for center the master window, and center and float master window (in larbs.mom says that Mod+o/O should do that thing). Is this a mistake in larbs.mom or in config.h?
tried to apply this patch: https://dwm.suckless.org/patches/systray/
but didnt apply can you add systray to your dwm build?
It looks like this with that default build for dwm and dmenu, too.
This is not Luke's Build but I don't know where else to post this.
static const char *fonts[] = {"gotham-thin:size=12", "joypixels:size=10:antialias=true:autohint=true", "monospace:size=10" };
What did I do wrong?
I applied the patch, corresponding to the video (commenting out those bad lines).
Installation failed at
cp -f dwm dwmc /usr/local/bin
cp: cannot stat 'dwmc': No such file or directory
make: *** [Makefile:41:install] Error 1
I manually checked the Makefile
. There's indeed no option to build dwmc
. But I found it in the .gitignore
file. What's going on?
the status bar titles are not being updated when I switch windows
on the first screenshot, it says Forge of Empires - Brave, while I have youtube opened
and on the second screenshot, it says #low-members - Discord while I'm actually on #technical_support hexdsl's discord server, the only time the title in the status bar updates is when I self-restart dwm, it should be updating every time I switch a window ...
I am assuming it has something to do with this warning when I sudo make clean install on your build
dwm.c: In function ‘propertynotify’:
dwm.c:1372:5: warning: suggest explicit braces to avoid ambiguous ‘else’ [-Wdangling-else]
1372 | if ((ev->window == root) && (ev->atom == XA_WM_NAME))
| ^
Are you planning on including centered floating windows in the future (e.g. with the center patch)?
I have been trying to apply the patch myself but it always fails, even when I manually edit the lines, so I am probably too inexperienced in C to find the reason for it failing...
If I keep Mod + Return pressed dwm crashes. It also happens with other program like brave. I am using default larbs install with arch Linux. If needed any debug data tell me.
I believe this is due to the swallow patch.
If you open an mpv audio file from lf, then close that terminal with super+q
, the audio sometimes continues to play. You must kill the instance or let it play out.
If you close out of mpv with q
beforehand, however. This error does not happen.
Hey Luke,
could you perhaps add to the README a list of the patches you use?
That would be really helpful.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.