如果我从 ~/.profile 运行 xprop- 命令,为什么它会在登录时失败?

如果我从 ~/.profile 运行 xprop- 命令,为什么它会在登录时失败?

我正在运行 Lubuntu 16.04。它使用 openbox 作为窗口管理器。我想将虚拟桌面配置为网格排列而不是直线排列,我可以通过运行以下命令来实现:

xprop -root -f _NET_DESKTOP_LAYOUT 32cccc -set _NET_DESKTOP_LAYOUT 0,3,2,0

手动运行时,此命令运行良好。因此,我已将该命令放入我的 中~/.profile,希望每次登录时都会执行该命令。

但事实并非如此。:( Lubuntu 启动后,我登录并且寻呼机仍然设置在一行中。我必须手动运行该命令才能恢复桌面布局。

.profile在我登录时正在执行。我之所以能说出这一点,是因为其中所做的 PATHS 调整正在产生效果。

  1. 为什么它在终端中运行时可以工作,但在 .profile 中却不行?(我甚至这样做了,source ~/.profile而不是键入/复制命令以确保它在文件中是正确的)
  2. 适当的文件在哪里可以放置这样的命令以便正确执行它?

为了寻找可能覆盖它的任何后续“xprop”命令,我运行了

grep -r xprop  .

并在文件中找到对 xprop 失败的引用run.log。该日志似乎在每个日志中生成:

pod@lubuntu-vm:~$ grep -C3 xprop  ~/.cache/lxsession/Lubuntu/run.log 
** Message: utils.vala:79: Config system location : /etc/xdg/lxsession/Lubuntu
** Message: utils.vala:85: System system path location : /etc/xdg/lxsession/Lubuntu/conffiles.conf
** Message: utils.vala:89: Final file used : /etc/xdg/lxsession/Lubuntu/conffiles.conf
xprop:  no such property "_NET_NUMBER_OF_DESKTOPS"
xprop:  no such property "_NET_DESKTOP_NAMES"
** Message: options.vala:164: Activate xsettings_manager build-in
** Message: utils.vala:68: User config used : /home/pod/.config/lxsession/Lubuntu/desktop.conf
** Message: utils.vala:89: Final file used : /home/pod/.config/lxsession/Lubuntu/desktop.conf

但那是唯一的参考,并且它不是我试图调整的相同属性。

答案1

问题

正如我在评论中提到的那样,问题是定时.(命令)如果桌面尚未准备好,配置桌面通常会中断,而您的命令只是偏离目标。例如,在配置显示器、键盘和鼠标上运行命令时,通常会发生这种情况。

解决

为了解决这个问题,您需要在运行命令之前添加一个小中断。我没有运行 Lubuntu,但根据这个帖子,您应该能够在此处添加启动命令(实际上是登录):开始菜单 → 首选项 → LXSession 的默认应用程序 → 自动启动。添加小中断的命令是:

/bin/bash -c "sleep 5 && xprop -root -f _NET_DESKTOP_LAYOUT 32cccc -set _NET_DESKTOP_LAYOUT 0,3,2,0"

或者,(由您测试:)),您可以将其添加到~/.profile,并添加&以确保它将在后台运行并且不会暂停登录过程。

相关内容