在 xfce 中获取工作区切换的视觉反馈

在 xfce 中获取工作区切换的视觉反馈

我大量使用工作空间,并且有很多工作空间(6x4 网格)。我通常运行 openbox,但目前使用的机器没有设置 openbox,所以我使用 xfce,因为它已经根据我的喜好进行了大部分配置。我已经习惯了在切换工作空间时获得视觉反馈,向我展示我刚刚移至哪个工作空间,并且发现自己在 xfce 中有点迷失方向。在 openbox 中,这是一个大型平视显示器,非常理想。我知道工作区切换器面板小程序将突出显示活动工作区,但这似乎仅适用于显示一些桌面空间的工作区;因为我通常将所有窗口最大化,所以这不是很有帮助。

在 xfce 中切换工作空间时,有没有办法启用显示新工作空间的视觉反馈?

答案1

如果您愿意,您可以安装pyxfce并以某种方式处理回调,例如通过或active_workspace_changed显示通知。但这当然是一种黑客行为,不,我没有尝试过。notify-sendaosd_cat

答案2

我有这个小 python3 代码块,它对工作空间切换做出反应。

它不是为了显示通知,而是为了解决 chromium 重绘错误。任何你想在工作区切换时发生的事情,你都可以轻松地放入“fire_the_kludge”函数中。

https://github.com/aking1012/chromiumKludge/blob/master/kludge.py

这是一个重新设计的示例,它使用 libnotify2 来告诉您您的工作空间:

#!/usr/bin/env python3

from gi.repository import Wnck, Gtk, Notify
import signal, time

class Kludge:
    def __init__(self):
        self.first = True
        signal.signal(signal.SIGINT, signal.SIG_DFL)
        self.screen = Wnck.Screen.get_default()
        Notify.init("Workspace Switch Notifier")

    def fire_the_kludge(self, data_a, data_b):
        time.sleep(.1)
        try:
            workspace_num = str(self.screen.get_active_workspace().get_number())
        except:
            workspace_num = "Some error happened"
        popup = Notify.Notification.new("Workspace: " + workspace_num)
        popup.show()
        time.sleep(1)
        popup.close()

    def main(self):
        self.screen.connect("active-workspace-changed", self.fire_the_kludge)
        Gtk.main()

if __name__ == '__main__':
    print("Here comes the kludge")
    kludge = Kludge()
    kludge.main()

答案3

workspace_switcher_notification.sh这是我的文件的内容。

#!/bin/bash
#Description: Show notification when workspace changes
#Requires: xfce4-notifyd, libnotify, wmctrl

WORKSPACE=$(($(wmctrl -d | grep \* | cut -d' ' -f1)+1))
while true
do
  UPDATED_WS=$(($(wmctrl -d | grep \* | cut -d' ' -f1)+1))
  if [ $WORKSPACE -ne $UPDATED_WS ]; then
    notify-send -i cs-workspaces "Workspace $UPDATED_WS" "Workspace changed "
    WORKSPACE=$UPDATED_WS
  fi
  sleep 1
done
exit 0

使其可执行chmod +x workspace_switcher_notification.sh并添加到会话和启动

答案4

我还在 95% 的时间里保持窗口最大化,但工作区切换器面板确实会根据我所在的工作区而变化。对于当前选定的工作区,活动窗口为浅蓝色,所有其他窗口为深蓝色,并且所有窗口在所有其他工作区都是灰色的。这可能是我正在使用的主题(主题名为“Xfce-4.2”)的功能,我不确定。您尝试过使用不同的主题吗?

我意识到这并不像我在其他地方看到的那样,当你进行更改时会出现大数字那么明显。如果有人知道如何让这些在 xfce 中工作,我想知道。

但除此之外,我会研究颜色设置,可以让工作区切换器根据哪个工作区处于活动状态来对窗口进行着色。

我正在运行安装了 xfce 4.6.1 的 ubuntu 10.4 (我尝试了 xubuntu,但无法让它正常工作)。

相关内容