Posisi di ruang kerja pusat saat login

12

Saya telah mengatur switcher ruang kerja 3x3, dan saya ingin posisi saya berada di sentral secara default. Apa itu mungkin?

Xiè Jìléi
sumber

Jawaban:

7

Berkat Marco, saya sudah menemukan cara menggunakannya wmctrl.

Karena ruang kerja compiz sebenarnya adalah viewport dari satu desktop, jadi solusinya adalah memindahkan viewport saat ini untuk menutupi wilayah tengah desktop.

Pertama, panggil wmctrl -duntuk mendapatkan informasi desktop saat ini:

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))

Lalu, hitung asal viewport tengah:

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

Dan pindahkan viewport ke sana:

wmctrl -o $center_viewport
Xiè Jìléi
sumber
6

Ya: instal wmctrl

sudo apt-get install wmctrl

dan buat file ~/.config/autostart/wmctrl.desktopdengan yang berikut ini:

[Desktop Entry]
Name=Desktop Switcher
Exec=/usr/bin/wmctrl -s 4
Type=Application
Chipaca
sumber
1
Hanya ada satu desktop di compiz. Tetapi wmctrldapat pula memindahkan viewport di dalam desktop. Lihat jawaban saya di bawah ini.
Xiè Jìléi
2
  1. Pertama-tama unduh skrip pembantuteks alternatif ini untuk mengendalikan compiz dari baris perintah. Simpan sebagai compiz-send.pydi folder rumah Anda.
  2. Jalankan perintah python compiz-send.py vpswitch switch_to_5_keyuntuk memastikannya berfungsi dengan benar. Ini akan mengalihkan Anda ke ruang kerja pusat.
  3. Jika berhasil, buat file yang disebut .switch_to_center_workspace.shdi folder rumah Anda dan rekatkan di dalamnya:

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

    mengganti userdengan nama pengguna Anda.

  4. Buka Aplikasi Startup, Sistem -> Preferensi -> Aplikasi Startup .

  5. Klik Tambah dan di Command: entri put /home/user/.switch_to_center_workspace.sh. Masukkan apa pun yang Anda inginkan dalam entri Name: and Comment:.

  6. Logout dan log in kembali dan verifikasi bahwa itu berhasil.

Yesaya
sumber
Sayangnya skrip tidak berfungsidbus.exceptions.DBusException: org.freedesktop.DBus.Error.UnknownMethod: Method "activate" with signature "si" on interface "org.freedesktop.compiz" doesn't exist
Xiè Jìléi
@ 谢 继 雷 Ubah sleep 5bagian skrip ke angka yang lebih tinggi seperti sleep 10untuk memastikan compiz sudah berjalan ketika skrip dijalankan. Anda menggunakan compiz kan?
Yesaya
Saya mencoba menjalankan skrip di gnome-terminal, dan mendapatkan pengecualian. Saya menggunakan compiz 0.8.6.
Xiè Jìléi
Dalam skrip, dikatakan metode tanda tangan "si" tidak ada, jadi saya kira argumen (string, int) yang dilewati untuk mengaktifkan () mungkin tidak benar ..
Xiè Jìléi
2

Saya akan mengajukan pertanyaan serupa, tetapi untuk 3 ruang kerja horizontal dan saya juga menjalankan compiz, dan wmctrl -doutput (per ruang kerja) terlihat seperti ini:

  • Di Ruang Kerja 1: 0 * DG: 4098x768 VP: 0,0 WA: 0,24 1366x744 Workspace 1
  • Di Workspace 2: 0 * DG: 4098x768 VP: 1366,0 WA: 0,24 1366x744 Workspace 1
  • Di Workspace 3: 0 * DG: 4098x768 VP: 2732,0 WA: 0,24 1366x744 Workspace 1

Daripada saya hanya menggunakan wmctrl -o 1366,0( nilai VP ) untuk menjadikan pusat sebagai ruang kerja default saya saat startup. Mungkin tidak bekerja untuk semua orang, tetapi untuk berjaga-jaga;)

wik
sumber
Perintah yang saya gunakan di "System -> Preferences -> Startup Applications":sh -c "sleep 2;/usr/bin/wmctrl -o 1366,0
wik
... Anda mungkin perlu menyesuaikan nilai tidur, mis. coba 10, 15, dll.
wik
Terima kasih atas catatan ini - maaf saya tidak membacanya sebelum membaca jawaban Anda :)
sdaau
0

Hanya catatan singkat - Saya menggunakan Natty, dan terima kasih atas jawaban @ 谢 继 雷, saya perhatikan bahwa berikut ini dilaporkan dengan memindahkan terminal di masing-masing dari empat 'ruang kerja' di 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

... yaitu mereka bukan desktop terpisah, atau ruang kerja - hanya perubahan viewport!

Jadi, untuk mengubah antara keempat viewports tersebut, cukup panggil wmctrl -operintah langsung dengan VPnilai - nilai yang tercantum di atas, yaitu:

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

EDIT: Ups, maaf, hanya melihat ini sama dengan jawaban @ wik - gabungkan / hapus yang sesuai ..

sdaau
sumber