不确定这是否是该站点的适当问题,因为它并不是真正特定于 Ubuntu。那些认为不应该的人可能应该回复我在 Unix 和 Linux stackexchange 站点上的交叉帖子。抱歉有任何混淆,我仍在协商这些网站(和我也交叉发布的 superuser.com )之间的边界。我想我们都是。
我大量使用工作区,并且有很多工作区(6x4 网格)。我通常运行 openbox,但目前使用的机器没有设置 openbox,所以我使用的是 xfce,因为它已经根据我的喜好进行了大部分配置。当我切换工作区时,我已经习惯于获得视觉反馈,向我展示我刚刚移动到哪个工作区,并且发现自己在 xfce 中有点迷失方向。在 openbox 中,这是一个大的平视显示器,非常理想。我知道工作区切换器面板小程序将突出显示活动工作区,但这似乎只适用于显示一些桌面空间的工作区;因为我通常将所有窗口都最大化,所以这不是很有帮助。
在 xfce 中切换工作区时,有没有办法启用显示新工作区的视觉反馈?
我写了一个小代码,显示关于工作区切换操作的通知。此代码需要 libnotify 和 libwnck
要编译它,请使用以下命令:
如果您发现使用上述命令编译错误,请尝试以下命令:
从终端测试它:./wsnd
将其包含为 XFCE 启动应用程序:在 XFCE 中,您需要将其作为启动应用程序添加到设置管理器->会话和启动->应用程序自动启动
编码:
我已经根据自己的喜好修改了 Isaac Pessoa 的答案。这不是在工作区更改时显示通知,而是简要地显示一个带有工作区切换器小部件的隐藏 Xfce 面板。
这是切换工作区时的样子:
将此文件另存为 wschanged.c:
现在在屏幕边缘的任意位置创建一个新的 Xfce 面板并将其设置为自动隐藏。添加工作区切换器小部件。记下面板首选项窗口下拉菜单中显示的面板编号。
在您的主目录中创建一个 .workspace-changed 文件,将 <P_NUMBER> 替换为您刚刚创建的面板编号。确保这个文件是可执行的!( chmod +x .workspace-changed )
现在编译:
在您的终端 ( ./wschanged ) 中对其进行测试,以确保一切正常。满意后,将程序添加为 Xfce 启动应用程序:设置 -> 会话和启动 -> 应用程序自动启动。
大多数答案都是 5 岁,从 xubuntu 18.04 开始不再起作用。我已经整理了在 18.04 上运行的 zspotter 答案的更新版本。为简单起见,我假设所有文件都位于主目录中,您可以轻松地将脚本调整到不同的文件夹中。
首先使用以下内容创建一个名为 wschanged.c 的文件:
其次,在屏幕边缘的任意位置创建一个新的 Xfce 面板并将其设置为自动隐藏。添加工作区切换器小部件。记下面板首选项窗口下拉菜单中显示的面板编号,在我们的示例中面板编号为 2,并进行相应调整。
第三,这里开始变得不一样了,在同一个文件夹中创建另一个名为 wschanged.sh 的脚本,其中包含这些内容(请记住使用右键单击将其设置为可执行文件 -> 属性 -> 设置为可执行文件,或
chmod +x .wschanged.sh
在终端中):面板不再具有自动隐藏属性,而是自动隐藏行为属性,因此脚本中的调整。
第四,我们必须编译 .c 文件,之前答案中的命令不再起作用,建议在这里使用:
如果您收到错误,请安装 libwnck-3-dev 和
sudo apt install libwnck-3-dev
.您现在可以使用
./wschanged
(将自己放在与可执行文件相同的目录中)来测试脚本。您现在还可以设置为在启动时运行命令。我唯一能想到的就是为每个桌面使用单独的壁纸(我相信这是可能的,但我无法确认,因为我不是每天都使用 xfce)。如果你不介意使用 compiz,你可以配置它像 xfwm 一样工作,并安装工作空间命名器插件,它允许你在切换时显示每个工作空间的名称。
你可以安装 conky
将此保存到文件中...
在 Xfce 中运行它。(终端)-> 带有 conky -c /path/to/file &
图标/启动器 conky -c /path/to/file
每次切换桌面时,桌面的编号都会显示在屏幕上。
“alignment bm”值控制桌面放置。bm 处于中下。
有关文档,请参见http://conky.sourceforge.net/docs.html。
我对上面的 conky 脚本做了一点修改
它将允许 XFCE 下的数字透明,您还可以修改字体大小。它还使用正确的变量来显示工作区标识
这正是我一直在寻找的。谢谢你,艾萨克·佩索阿和 zspotter!我在 Arch 上使用 Xfce,本着保持最小化的精神,我不想求助于安装 Compiz。
我不确定这是否会或已经发生在其他人身上,但我注意到一些非常奇怪的事情:我设置为工作区指示器的面板被配置为显示 3 行(我有 9 个桌面)。它被设置为与您在 Ubuntu 中获得的大小大致相同(大约 3x6 英寸)。但是,它只会显示一行,直到我右键单击面板并选择属性(要明确的是,它是显示工作区切换器的属性窗口)。解决方法是删除另一个面板上的工作区切换器。
此外,为了更改工作区指示器面板在再次自动隐藏之前显示的时间长度,您需要将其添加到您的 .gtkrc-2.0 文件中:
在这里找到
就我而言,因为我在 Arch 上,所以 gtkrc-2.0 文件不存在。我必须将它添加到我的 ~/.themes/[theme name here] 目录中的 gtkrc 文件中。
根据您的喜好更改弹出延迟和弹出延迟。出于某种奇怪的原因,我不得不将值设置为我想要的值的一半左右。可能与 wschanged 执行脚本有关。
如果您想在屏幕中间放置一个显示工作区网格的面板(类似于 Ubuntu),您需要一直设置该面板的 alpha(在面板首选项中的外观选项卡下)。这样您就不会在所有窗口的顶部看到一个小条。将 autohide-size 值设置为 1 将使该面板几乎不可能意外显示。
最后一件事:如果您在切换工作区时光标恰好位于面板顶部,它将随机显示一个工具提示,我必须将光标移出面板以使其再次隐藏。不过也没什么大不了的。
编辑:我为此使用了 zspotter 的修复程序。
编辑:我刚刚注意到在桌面上滚动鼠标会切换工作区(使用 zspotter 的修复)。好的!
编辑:这会导致我的通知弹出窗口(即使用音量键等时)出现在错误的位置。具体来说,当使用左上或右上选项时,通知显示在左中或右中。我没有安装 osd-notify——只是 xfce4-notifyd。设置中的所有内容似乎都是正确的。当我移除面板并从应用程序自动启动列表中删除 wschanged 时,问题得到了纠正。
我有这个对工作区切换做出反应的小 python3 代码块。
它不是为了显示通知,而是为了解决铬重绘错误。你想在工作区切换上发生的任何事情,你都可以轻松地投入到“fire_the_kludge”函数中。
https://github.com/aking1012/chromiumKludge/blob/master/kludge.py
这是一个使用 libnotify2 告诉您工作区的重新设计的示例:
完美的。谢谢 dsSTORM、zspotter 和 Isaac Pessoa。dsSTORM 的答案在第一次尝试 xfce over ubuntu 20.04 时起作用。如果您使用 Ctrl-Alt-Arrows 切换空格,您可能希望保持切换器面板可见,直到您释放 Alt 键。这样一来,只要您按住 Alt,您就可以根据该问题的操作人员的需要,在工作区之间导航并提供反馈,花费尽可能多的时间。
感谢https://blog.robertelder.org/detect-keyup-event-linux-terminal中的 key.py,我们有这段代码,您可以将其放入 wait-until-alt-up.py
然后将您的 wschanged.sh 更改为:
并执行 sudo visudo,然后将这些行添加到底部。此键盘侦听器必须以 root 身份运行,因为它“侦听”原始设备。
现在使用一个巨大的 6x6 网格,它很漂亮。如果您按下 ctrl-alt-arrow 并很快释放 alt,脚本将看不到 alt-up,并且网格将保持活动状态。如果发生这种情况,只需再次按下并释放 Alt 键即可隐藏面板。谢谢大家。
顺便说一句,您可以使用 Settings / Window Manager / Keyboard 来设置 Ctrl-Alt-Arrows 来切换工作区,并使用 Shift-Ctrl-Alt-Arrows 来带上您的活动窗口,或者您可以运行: