로그인시 중앙 작업 공간에 위치


12

3x3 작업 공간 전환기를 설정했으며 기본적으로 내 위치가 중앙 위치에 있기를 원합니다. 가능합니까?

답변:


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어쨌든 데스크톱 내에서 뷰포트를 전환 할 수 있습니다. 아래 답변을 참조하십시오.
Xiè Jìléi

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. 추가를 클릭 하고 명령 : 항목 put 에서을 클릭 하십시오/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
Xiè Jìléi

@ 谢 继 雷스크립트가 실행될 때 compiz가 이미 실행 중인지 확인하기 위해 sleep 5스크립트 부분을 더 높은 숫자 sleep 10로 변경하십시오. 당신은 compiz를 사용하고 있습니까?
이사야

gnome-terminal에서 스크립트를 실행하려고 시도하고 예외가 발생합니다. compiz 0.8.6을 사용하고 있습니다.
Xiè Jìléi

스크립트에는 메소드 서명 "si"가 존재하지 않는다고 말했기 때문에 activate ()에 전달 된 인수 (string, int)가 올바르지 않을 수 있습니다 ..
Xiè Jìléi

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,0( VP 값)을 사용했던 것보다 . 모든 사람을 위해 작동하지는 않지만 단지 경우에 대비하여;


"시스템-> 환경 설정-> 시작 응용 프로그램"에서 사용중인 명령 :sh -c "sleep 2;/usr/bin/wmctrl -o 1366,0
wik

... 수면 값을 조정해야 할 수도 있습니다 (예 : 10, 15 등)
wik

이 쪽지 주셔서 감사합니다-죄송합니다 답변을 읽기 전에 그것을 읽지 못했습니다 :)
sdaau

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

... 즉, 별도의 데스크톱이나 작업 공간이 아니며 단순히 뷰포트가 변경됩니다!

따라서이 4 개의 뷰포트간에 변경하려면 위에 나열된 값으로 wmctrl -o명령을 직접 호출하면 VP됩니다.

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

편집 : Ups, 죄송합니다. 방금 @wik의 답변과 동일하다는 것을 알았습니다. 적절하게 병합 / 삭제하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.