登录时位于中央工作区的位置


12

我已经设置了3x3工作区切换器,并且我希望默认情况下我的位置位于中央位置。可能吗?

Answers:


7

多亏了Marco,我找到了使用的方法wmctrl

由于compiz工作区实际上是单个桌面的视口,因此解决方案是移动当前视口以覆盖桌面的中心区域。

首先,致电wmctrl -d获取当前桌面的信息:

read desktop_id _ast \
    DG_ geometry \
    VP_ viewport \
    WA_ wa_off wa_size \
    title \
    < <(LANG=C wmctrl -d | grep '*')

geom_w=${geometry%x*}
geom_h=${geometry#*x}

# The workarea size isn't accurate, because the top/bottom panel is excluded. 
viewport_w=${wa_size%x*}
viewport_h=${wa_size#*x}

rows=$((geom_w / viewport_w))
cols=$((geom_h / viewport_h))

# Fix the viewport size
viewport_w=$((geom_w / rows))
viewport_h=$((geom_h / cols))

然后,计算中心视口的原点:

center_row=$((rows / 2))
center_col=$((cols / 2))

center_x=$((center_col * viewport_w))
center_y=$((center_row * viewport_h))

center_viewport=$center_x,$center_y

并将视口移到那里:

wmctrl -o $center_viewport

6

是:安装wmctrl

sudo apt-get install wmctrl

~/.config/autostart/wmctrl.desktop使用以下命令创建一个文件:

[Desktop Entry]
Name=Desktop Switcher
Exec=/usr/bin/wmctrl -s 4
Type=Application

1
compiz中只有一个桌面。但是wmctrl仍然可以在桌面内切换视口。请参阅下面的答案。
耶吉莱2011年

2
  1. 首先从命令行下载此帮助程序脚本替代文字以控制compiz。将其另存为compiz-send.py您的主文件夹。
  2. 运行命令python compiz-send.py vpswitch switch_to_5_key以确保其正常运行。它应该将您切换到中心工作区。
  3. 如果可行,请.switch_to_center_workspace.sh在主文件夹中创建一个名为的文件,并将以下内容粘贴到其中:

    #!/bin/bash
    sleep 5 && python /home/user/compiz-send.py vpswitch switch_to_5_key
    

    user您的用户名替换。

  4. 打开启动应用程序,系统->首选项->启动应用程序

  5. 单击添加,然后在命令:条目中放置/home/user/.switch_to_center_workspace.sh。在“ 名称:”和“ 注释:”条目中输入所需内容。

  6. 注销并重新登录,并验证其是否有效。


不幸的是,脚本不工作dbus.exceptions.DBusException: org.freedesktop.DBus.Error.UnknownMethod: Method "activate" with signature "si" on interface "org.freedesktop.compiz" doesn't exist
谢Jìléi

@谢继雷sleep 5将脚本的一部分更改为更大的数字sleep 10,以确保在脚本运行时compiz已在运行。您正在使用compiz对吗?
以赛亚书

我尝试在gnome-terminal中运行脚本,并获取异常。我正在使用compiz 0.8.6。
耶吉莱2011年

在脚本中,据说方法签名“ si”不存在,所以我猜传递给activate()的参数(字符串,整数)可能不正确。
XièJéléi2011年

2

我要问类似的问题,但是对于3个水平工作区,我也正在运行compiz,并且wmctrl -d输出(每个工作区)如下所示:

  • 在工作区1: 0 * DG: 4098x768 VP: 0,0 WA: 0,24 1366x744 Workspace 1
  • 在工作区2: 0 * DG: 4098x768 VP: 1366,0 WA: 0,24 1366x744 Workspace 1
  • 在工作区3: 0 * DG: 4098x768 VP: 2732,0 WA: 0,24 1366x744 Workspace 1

比起我在启动时使用wmctrl -o 1366,0VP值)简单地将中心作为默认工作区。可能不适合所有人,但以防万一;)


我在“系统->首选项->启动应用程序”中使用的命令:sh -c "sleep 2;/usr/bin/wmctrl -o 1366,0
wik

...您可能需要调整睡眠值,例如尝试10、15等
。– wik

感谢您的
来信

0

简要说明-我正在使用Natty,感谢@谢继雷的回答,我注意到通过在Unity的四个“工作区”中的每个移动终端来报告以下内容:

$ wmctrl -d
# top left
0  * DG: 2048x1200  VP: 0,0  WA: 0,24 1024x576  Workspace 1
# bottom left
0  * DG: 2048x1200  VP: 0,600  WA: 0,24 1024x576  Workspace 1
# top right
0  * DG: 2048x1200  VP: 1024,0  WA: 0,24 1024x576  Workspace 1
# bottom right 
0  * DG: 2048x1200  VP: 1024,600  WA: 0,24 1024x576  Workspace 1

...即它们既不是独立的桌面也不是工作区-只是视口发生了变化!

因此,要在这四个视口之间切换,只需wmctrl -o使用VP上面列出的值直接调用命令,即:

wmctrl -o 0,0
wmctrl -o 0,600
wmctrl -o 1024,0
wmctrl -o 1024,600

编辑:Ups,对不起,只是看到这与@wik的答案相同-适当地合并/删除。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.