首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >背景和顶部条配置在启动时不适用。

背景和顶部条配置在启动时不适用。
EN

Stack Overflow用户
提问于 2020-03-29 00:07:31
回答 1查看 913关注 0票数 0

我在Manjaro上使用dwm。我做了一些改变(增加)在我的~/.xinitrc文件,使我的壁纸设置和显示日期和时间在顶部的酒吧,当我登录。但是,我不能应用这些更改,或者我的文件(如~/.xinitrc/etc/X11/xinit/xinitrc )有问题。

我已经在我的系统上安装了康普顿,feh (也是氮气,但不喜欢)和xsetroot。我还将补丁应用到我的dwm中,以便有一个autostart.sh文件。

这是我的~/.dwm/autostart.sh文件:

代码语言:javascript
复制
#! /bin/bash
compton --config ~/.config/compton/compton.conf &
feh --bg-fill /home/root113/Pictures/0239.jpg &
xcompmgr &

while true; do
     xsetroot -name "$(date)"
     sleep 1s
done &

这是行不通的。这里在29天前提出了类似的问题,但没有回答或收到任何评论。

然后我在网上搜索更多的答案和帮助,并意识到我应该尝试编辑我的~/.xinitrc文件。下面是:

代码语言:javascript
复制
#!/bin/sh
#
# ~/.xinitrc
#
# Executed by startx (run your window manager 
from here)

userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/etc/X11/xinit/.Xresources
sysmodmap=/etc/X11/xinit/.Xmodmap

DEFAULT_SESSION=gnome-session

# merge in defaults and keymaps

if [ -f $sysresources ]; then
    xrdb -merge $sysresources
fi

if [ -f $sysmodmap ]; then
    xmodmap $sysmodmap
fi

if [ -f "$userresources" ]; then
    xrdb -merge "$userresources"
fi

if [ -f "$usermodmap" ]; then
    xmodmap "$usermodmap"
fi

# start some nice programs

if [ -d /etc/X11/xinit/xinitrc.d ] ; then
    for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
        [ -x "$f" ] && . "$f"
    done
    unset f
fi

get_session(){
    local dbus_args=(--sh-syntax --exit-with-session)
    case $1 in
        awesome) dbus_args+=(awesome) ;;
        bspwm) dbus_args+=(bspwm-session) ;;
        budgie) dbus_args+=(budgie-desktop) ;;
        cinnamon) dbus_args+=(cinnamon-session) ;;
        deepin) dbus_args+=(startdde) ;;
        enlightenment) dbus_args+=(enlightenment_start) ;;
        fluxbox) dbus_args+=(startfluxbox) ;;
        gnome) dbus_args+=(gnome-session) ;;
        i3|i3wm) dbus_args+=(i3 --shmlog-size 0) ;;
        jwm) dbus_args+=(jwm) ;;
        kde) dbus_args+=(startkde) ;;
        lxde) dbus_args+=(startlxde) ;;
        lxqt) dbus_args+=(lxqt-session) ;;
        mate) dbus_args+=(mate-session) ;;
        xfce) dbus_args+=(xfce4-session) ;;
        openbox) dbus_args+=(openbox-session) ;;
        *) dbus_args+=($DEFAULT_SESSION) ;;
    esac

    echo "dbus-launch ${dbus_args[*]}"
}

exec $(get_session)

#Personal customizations below

compton --config ~/.config/compton/compton.conf &
feh -bg-fill /home/root113/Pictures/0239.jpg &
xcompmgr &

while true; do
    xsetroot -name "$(date)"
    sleep 1s
done &

exec dwm

尽管如此,问题仍未得到解决。然后我改变了路线

代码语言:javascript
复制
feh -bg-fill /home/root113/Pictures/0239.jpg &

在这方面:

代码语言:javascript
复制
~/.fehbg &

~/.fehbg中编写的内容是:

代码语言:javascript
复制
#!/bin/sh
feh --no-fehbg --bg-fill /home/root113/Pictures/0239.jpg

解决不了我的问题。

然后,我决定在/etc/X11/xinit/xinitrc中导出我的/etc/X11/xinit/xinitrc文件,方法是在文件末尾添加以下行:

代码语言:javascript
复制
 export PATH="${PATH}:/home/root113/.xinitrc"

这也不起作用。因此,我继续在网上寻找解决方案,并在其中一个论坛上被告知,我应该使我的~/.xinitrc文件可执行。所以我用以下命令做了这件事:

代码语言:javascript
复制
 chmod +x ~/.xinitrc

也不起作用。每次我重新登录或重新启动时,它都是同样烦人的黑色屏幕和顶部栏,没有显示任何日期,我的眼睛都盯着它。

我还尝试在每个文件中使用~/file替换/home/root113/file,以防路径不被识别。这根本不是一个解决办法。不起作用。

我不断地搜索和寻找答案,并阅读了这些有用的答案和文章:

它们都没有提到一个问题/问题,我有直接,但间接。因此,我决定(可能是一个愚蠢的想法,但值得一试,因为我开始用尽解决方案)将以下内容添加到我的~/.profile文件中:

代码语言:javascript
复制
export PATH="${PATH}:/home/root113/.xinitrc"

我在~/.zshrc文件中添加了以下内容:

代码语言:javascript
复制
source ~/.profile

又不起作用了。

我在网上到处寻找解决方案。我现在正处于绝望的境地。我已经没有希望了,只能在这里请求。谢谢你在这里阅读。我知道这是一个很长的问题,但我想向你详细解释这个问题,也想告诉你我到目前为止尝试了什么解决方案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-24 00:31:55

我发现在~/.xinitrc文件中,我必须先声明我的人事设置,然后再进行其他操作。只需将它们放在文件的顶部,如下所示:

代码语言:javascript
复制
#!/bin/sh
#
# ~/.xinitrc
#
# Executed by startx (run your window manager 
from here)

#Personal customizations below

compton --config ~/.config/compton/compton.conf &
feh -bg-fill /home/root113/Pictures/0239.jpg &
xcompmgr &

while true; do
    xsetroot -name "$(date)"
    sleep 1s
done &

exec dwm

userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/etc/X11/xinit/.Xresources
sysmodmap=/etc/X11/xinit/.Xmodmap

DEFAULT_SESSION=gnome-session

# merge in defaults and keymaps

if [ -f $sysresources ]; then
    xrdb -merge $sysresources
fi

if [ -f $sysmodmap ]; then
    xmodmap $sysmodmap
fi

if [ -f "$userresources" ]; then
    xrdb -merge "$userresources"
fi

if [ -f "$usermodmap" ]; then
    xmodmap "$usermodmap"
fi

# start some nice programs

if [ -d /etc/X11/xinit/xinitrc.d ] ; then
    for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
        [ -x "$f" ] && . "$f"
    done
    unset f
fi

get_session(){
    local dbus_args=(--sh-syntax --exit-with-session)
    case $1 in
        awesome) dbus_args+=(awesome) ;;
        bspwm) dbus_args+=(bspwm-session) ;;
        budgie) dbus_args+=(budgie-desktop) ;;
        cinnamon) dbus_args+=(cinnamon-session) ;;
        deepin) dbus_args+=(startdde) ;;
        enlightenment) dbus_args+=(enlightenment_start) ;;
        fluxbox) dbus_args+=(startfluxbox) ;;
        gnome) dbus_args+=(gnome-session) ;;
        i3|i3wm) dbus_args+=(i3 --shmlog-size 0) ;;
        jwm) dbus_args+=(jwm) ;;
        kde) dbus_args+=(startkde) ;;
        lxde) dbus_args+=(startlxde) ;;
        lxqt) dbus_args+=(lxqt-session) ;;
        mate) dbus_args+=(mate-session) ;;
        xfce) dbus_args+=(xfce4-session) ;;
        openbox) dbus_args+=(openbox-session) ;;
        *) dbus_args+=($DEFAULT_SESSION) ;;
    esac

    echo "dbus-launch ${dbus_args[*]}"
}

exec $(get_session)

现在一切都正常了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60908595

复制
相关文章

相似问题

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