首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dwm补丁不起作用

Dwm补丁不起作用
EN

Ask Ubuntu用户
提问于 2014-04-21 22:46:08
回答 1查看 1.9K关注 0票数 0

我试图安装这个dwm 补丁,但是我一直让这个错误ps im运行一个普通的dwm-6.0,只对config.h做一些小的编辑来更改标记。

代码语言:javascript
复制
    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

所以我不确定怎么回事。

EN

回答 1

Ask Ubuntu用户

发布于 2014-06-03 13:56:43

您可能已经解决了这个问题(要么自己解决这个问题,要么忽略它),但是您看到的问题是,您链接到的修补程序期望b堆栈布局已经修补到dwm中。这是非常糟糕的形式,因为b堆栈/ bstackhoriz修补程序默认不会直接修改dwm.c (它将两个布局放在自己的文件中),所以补丁是由主动将b堆栈和bstackhoriz放入dwm.c的人编写的。这意味着补丁将永远不会应用于一个干净的dwm构建。

长话短说-你可以完全忽略这个偏移的错误。您只需运行make,就可以在平铺布局中使用空白。

(还有一个警告:该补丁假定topbarconfig.h中的True。如果您将topbar设置为False,您将看到奇怪的问题,在这些问题中,除了窗口的底部之外,所有的使用空白都是完全正确的。您可以通过修改resizeclient中的dwm.c来修复这个问题,如下所示:

代码语言:javascript
复制
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);
}
票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/452448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档