我定义了一些快捷方式来访问我的每个工作区:
<Super>+1 for the First
<Super>+2 for the Second
etc...
当我分配这些快捷方式时,它们可以正常工作,直到我重新启动。我不知道为什么会这样。
由于某种原因,在我工作时使用的桌面(相同发行版,10.10)上,它运行良好。
为了使它们再次发挥作用,我需要取消它们全部的分配,然后重新分配它们。
我有一个可以自动执行这些操作的脚本:
gconftool-2 --unset /apps/metacity/global_keybindings/switch_to_workspace_1
gconftool-2 --unset /apps/metacity/global_keybindings/switch_to_workspace_2
gconftool-2 --unset /apps/metacity/global_keybindings/switch_to_workspace_3
gconftool-2 --unset /apps/metacity/global_keybindings/switch_to_workspace_4
gconftool-2 --unset /apps/metacity/global_keybindings/switch_to_workspace_5
gconftool-2 --unset /apps/metacity/global_keybindings/switch_to_workspace_6
gconftool-2 --unset /apps/metacity/global_keybindings/switch_to_workspace_7
gconftool-2 --unset /apps/metacity/global_keybindings/switch_to_workspace_8
gconftool-2 -t str --set /apps/metacity/global_keybindings/switch_to_workspace_1 "<Mod4>ampersand"
gconftool-2 -t str --set /apps/metacity/global_keybindings/switch_to_workspace_2 "<Mod4>eacute"
gconftool-2 -t str --set /apps/metacity/global_keybindings/switch_to_workspace_3 "<Mod4>quotedbl"
gconftool-2 -t str --set /apps/metacity/global_keybindings/switch_to_workspace_4 "<Mod4>apostrophe"
gconftool-2 -t str --set /apps/metacity/global_keybindings/switch_to_workspace_5 "<Mod4>parenleft"
gconftool-2 -t str --set /apps/metacity/global_keybindings/switch_to_workspace_6 "<Mod4>minus"
gconftool-2 -t str --set /apps/metacity/global_keybindings/switch_to_workspace_7 "<Mod4>egrave"
gconftool-2 -t str --set /apps/metacity/global_keybindings/switch_to_workspace_8 "<Mod4>undersocre"
但是,当我将此脚本配置为在启动时运行时,奇怪的是它不起作用。
有人知道如何解决这个问题吗?
答案1
它似乎无法在 Natty + compiz 上运行(如果您使用 metacity - 则可以运行metacity --replace
)。您可以通过以下方式解决问题:
您可以使用控制端并为特定命令创建快捷方式。
基本命令:
如果您使用 metacity:
wmctrl -d
显示所有工作区。
wmctrl -s <workspace_name>
更改为特定工作区。
如果你使用 Compiz:
您必须使用一些技巧,因为 Compiz“工作区”实际上是单个工作区的视口。
技巧说明
检查输出wmctrl -d
例如我的是:
0 * DG: 4098x2304 VP: 1366,0 WA: 0,23 1366x745 不适用
这意味着我实际上有一个 4098 x 2304 的工作区,而不是我“认为”的(九个“工作区”,3 x 3)。
我当时处于所谓的“工作区”2,但实际上我处于视口 (VP) 1366,0 (4098 / 3 = 1366),如上面的输出所示。
它的工作原理如下:我们取整个工作区,然后除以我们“认为”拥有的“工作区”数量。在我的例子中:4098 / 3 = 1366 和 2304 / 3 = 768。
如果我想进入我的“工作区” 1,命令是:
wmctrl -o 0,0
然后,如果我想进入我的“工作区”4,命令是:
wmctrl -o 0,768
如果我想进入我的“工作区”8,命令是:
wmctrl -o 1366,1536
如果我想进入我的“工作区”9,命令是:
wmctrl -o 2732,1536
知道了? ;-)
制作快捷方式
1)我们会需要Compiz 设置管理器。
您可以从Ubuntu 软件中心或点击这里
2)打开 Compiz(Alt+F2并ccsm
输入Enter)
3)转到命令并添加例如wmctrl -o 0,0
一个命令
4)然后转到键绑定并<Super>+1
为其创建快捷方式。
5)对其他工作区重复步骤“3”和“4”。
答案2
我遇到了与几个 compiz 设置完全相同的问题。这是我每次启动时运行的 fixcompiz.sh,在“启动应用程序”中有一个条目(我运行的是 12.10),它会重置一些设置,这些设置会在计算机重新启动时恢复为默认设置。
顺便说一句,我们确实应该就此提交一个错误。
#!/bin/sh
#fix min and maximize
gsettings set org.gnome.desktop.wm.keybindings maximize "['<Super>Up']"
gsettings set org.gnome.desktop.wm.keybindings unmaximize "['<Super>Down']"
#fix switch to workspace shortcuts
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-1 "['<Primary><Shift><Alt>KP_Home']"
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-2 "['<Primary><Shift><Alt>KP_Up']"
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-3 "['<Primary><Shift><Alt>KP_Page_Up']"
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-4 "['<Primary><Shift><Alt>KP_Left']"
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-5 "['<Primary><Shift><Alt>KP_Begin']"
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-6 "['<Primary><Shift><Alt>KP_Right']"
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-7 "['<Primary><Shift><Alt>KP_End']"
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-8 "['<Primary><Shift><Alt>KP_Down']"
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-9 "['<Primary><Shift><Alt>KP_Page_Down']"