我正在尝试安装这个 dwm修补但我一直收到此错误 ps 我正在运行 vanilla dwm-6.0,只对 config.h 进行了少量编辑以更改标签
can't find file to patch at input line 3
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|--- dwm.c.orig 2012-05-08 22:32:33.883110400 +0200
|+++ b/dwm-6.0/dwm.c 2012-05-08 22:35:59.353105670 +0200
--------------------------
File to patch: dwm.c
patching file dwm.c
Hunk #2 succeeded at 284 (offset -12 lines).
Hunk #3 succeeded at 479 (offset -12 lines).
Hunk #4 succeeded at 1353 (offset -55 lines).
Hunk #5 succeeded at 1721 with fuzz 2 (offset -68 lines).
Hunk #6 FAILED at 2240.
1 out of 6 hunks FAILED -- saving rejects to file dwm.c.rej
所以我不太清楚到底发生了什么。
答案1
您可能已经解决了该问题(要么自己解决这个问题,要么忽略它),但您看到的问题是,您链接到的补丁要求 bstack 布局已经修补到 dwm 中。这是一种非常糟糕的形式,因为 bstack / bstackhoriz 补丁默认不会直接修改 dwm.c(它将两个布局放在自己的文件中),因此补丁是由主动将 bstack 和 bstackhoriz 放入 dwm.c 的人编写的。这意味着补丁将绝不适用于干净的 dwm 构建。
长话短说 - 您可以完全忽略该偏移错误。您可以直接运行,make
并且平铺布局中将出现无用的间隙。
(同样需要提醒的是:该补丁假定topbar
在True
中config.h
。如果您已topbar
设置为False
,则会看到奇怪的问题,其中无用的间隙恰好位于窗口底部以外的所有位置。您可以通过修改resizeclient
来修复此问题dwm.c
,如下所示:
void
resizeclient(Client *c, int x, int y, int w, int h) {
XWindowChanges wc;
gap = c->isfloating ? 0 : c->mon->lt[c->mon->sellt]->addgaps ? gappx : 0;
c->oldx = c->x; c->x = wc.x = x + gap;
c->oldy = c->y; c->y = wc.y = y + gap;
c->oldw = c->w; c->w = wc.width = w - (gap ? (x + w + (c->bw * 2) == c->mon->mx + c->mon->mw ? 2 : 1) * gap : 0);
if(topbar) {
c->oldh = c->h; c->h = wc.height = h - (gap ? (y + h + (c->bw * 2) == c->mon->my + c->mon->mh ? 2 : 1) * gap : 0);
} else {
c->oldh = c->h; c->h = wc.height = h - (gap ? (y + h + bh + (c->bw * 2) == c->mon->my + c->mon->mh ? 2 : 1) * gap : 0);
}
wc.border_width = c->bw;
XConfigureWindow(dpy, c->win, CWX|CWY|CWWidth|CWHeight|CWBorderWidth, &wc);
configure(c);
XSync(dpy, False);
}