Dwm 补丁不起作用

Dwm 补丁不起作用

我正在尝试安装这个 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并且平铺布局中将出现无用的间隙。

(同样需要提醒的是:该补丁假定topbarTrueconfig.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);
}

相关内容