是否可以让 ubuntu 按时间间隔切换工作区?

是否可以让 ubuntu 按时间间隔切换工作区?

我有一台连接到电视的计算机,用于显示不同的数据。我想在不同的工作区设置一些不同的程序,并让它按时自动旋转工作区。我该如何实现这一点?

答案1

是的,而且非常简单。你只需要一个工具来按下你用来更改工作区所按的键。其中一个这样的工具是xdotool。要安装它:

 $ sudo apt-get install xdotool

然后您只需要创建一个像这样的脚本(这里我假设您只有 2 个工作区,并且使用 Ctrl+Alt+Left/Right 在它们之间切换,但您可以轻松地扩展它以满足您的需求):

!/bin/bash

TIME=10 # shifts workspace after 10 sec.

while [ 1 ]; do
        sleep $TIME
        xdotool key ctrl+alt+Right
        sleep $TIME
        xdotool key ctrl+alt+Left
done

不要忘记将其设为可执行文件。如果您在其中创建它,/usr/local/bin/workspace_switcher则可以使用

 $ sudo chmod +x /usr/local/bin/workspace_switcher

然后要启动它,您只需按 Alt+F2 并输入workspace_switcher。要停止它,您可以使用killall workspace_switcher

答案2

如果你在 Ubuntu 中默认使用 4 个工作区(我怀疑你的情况也是这样,因为你说过旋转工作区),可以使用如下脚本:

#!/bin/bash

#check if xdotool is installed
if [ ! -n "$(dpkg -s xdotool 2>/dev/null | grep 'Status: install ok installed')" ]; then
    echo -e "The package 'xdotool' must to be installed before to run $(basename $0)\nUse 'sudo apt-get install xdotool' command in terminal to install it."
    exit
fi

delay=5 #change as you wish

echo "Press Ctrl+C to finish"

#start with workspace 0 (top left)
xdotool key Ctrl+Alt+Left
xdotool key Ctrl+Alt+Up

#switch workspaces 
while : ; do
    workspace_nr=0
    until [ $workspace_nr = 4 ]; do
        sleep $delay
        case $workspace_nr in 
            0) xdotool key Ctrl+Alt+Right ;;
            1) xdotool key Ctrl+Alt+Down ;;
            2) xdotool key Ctrl+Alt+Left ;;
            3) xdotool key Ctrl+Alt+Up ;;
        esac
        ((workspace_nr++))
    done
done

相关内容