Apakah ada cara saya bisa mengganti aplikasi yang berjalan di satu ruang kerja ke yang lain di baris perintah? Saya menggunakan Ubuntu 10,04
UPDATE1
Sesuai saran di bawah ini
wmctrl -l
0x02200003 -1 bond Bottom Expanded Edge Panel
0x02200049 -1 bond Top Expanded Edge Panel
0x02000020 0 bond x-nautilus-desktop
0x04e00004 0 bond bond@bond: ~
0x0482a380 0 bond OMG! Ubuntu! | wmctrl - Chromium
0x05000072 0 bond how to shift applications from workspace 1 to 2 using command - Ask Ubuntu - Stack Exchange - Google Chrome
sekarang ketika saya mengetik
wmctrl -r :OMG! Ubuntu! | wmctrl - Chromium: -t 2 No window was specified.
Jadi bagaimana cara menggunakannya dengan benar apa kesalahan di atas?
UPDATE2
saya mencoba
wmctrl -r 0x05000072 -t 2
tetapi jendela tidak memiliki efek dan mereka tetap berada di ruang kerja yang sama.
command-line
workspaces
Pengguna Terdaftar
sumber
sumber
Jawaban:
Jika Anda menggunakan pengelola jendela yang sesuai seperti Metacity (Unity 2-d), Anda dapat menggunakan wmctrl untuk mengalihkan jendela ke desktop lain. Sintaksnya adalah
wmctrl -r :ACTIVE: -t <DESKTOP>
. Anda juga dapat mengubah desktop saat ini menggunakanwmctrl -s <DESKTOP>
. Nomor desktop mulai dari 0. Pada satu baris, ini akan menjadi:Jika Anda ingin mengganti jendela selain yang aktif ke desktop lain, gunakan teks dari judul sebagai argumen untuk -r. Sebagai contoh:
Atau Anda dapat menggunakan
wmctrl -l
daftar windows yang tersedia dan memberikan nomor id ke -r sebagai ganti string khusus:ACTIVE:
. Saat melewati id, Anda juga perlu menambahkan -i. Sebagai contoh:(wmctrl dapat diinstal pada Ubuntu dengan
sudo apt-get install wmctrl
.) Sayangnya, ini tampaknya tidak berfungsi dengan Unity standar, sayangnya.sumber
wmctrl -r "Chromium" -t 1
sebagai skyblue menyebutkan dalam jawabannya, selama Anda menggunakan window manager yang sesuai seperti Unity-2d.Berikut adalah skrip saya yang mengimplementasikan apa yang Anda minta: https://github.com/norswap/wmov/blob/master/wmov.sh
Dalam bentuk saat ini, ia dapat mengirim windows (dipilih dengan mencocokkan string case-insensitive terhadap judul substring, seperti untuk
wmctrl
-r
opsi) ke desktop lain, baik dengan memilih nomor desktop eksplisit, atau dengan menunjukkan arah desktop dari saat ini Desktop.Contohnya:
Memang berfungsi seperti yang dijelaskan dalam pos desgua. Ini juga kemampuan untuk mengirim windows ke ruang kerja lain.
sumber
Dimungkinkan untuk melakukan ini dengan
xdotool
, tetapi jika Anda menggunakancompiz
solusi ini mungkin tidak berlaku, jadi harap diingat.Untuk mengalihkan jendela tertentu (jendela aktif) ke ruang kerja yang berbeda, Anda bisa menggunakan
Atau untuk skrip Anda mungkin ingin mengganti jendela program tertentu ke ruang kerja yang diberikan dengan:
Perintah ini mencari dan menemukan
firefox
jendela dan mentransfernya ke ruang kerja 1, di mana mereka akan tampak diminimalkan. Untuk kembalifirefox
ke desktop default, cukup ganti 1 dengan 0 di akhir perintah. Untuk mengirim jendela lain ke ruang kerja lain, cukup gantifirefox
dengan nama program lain.Sangat penting Anda gunakan
%@
untuk mewakili windows yang dilewati dari--search
parameter, seolah-olah Anda tidak ada windows akan ditransfer.Untuk informasi lebih lanjut, lihat
man xdotool
dan manual Ubuntu online.sumber
Jika Anda menggunakan compiz, maka lihat di sini di compiz wiki . Di sana Anda menemukan beberapa contoh. Lihatlah plugin "put".
Contoh
sumber
Pertama, titik dua adalah bagian dari
:ACTIVE:
token ajaib untuk menunjukkan jendela aktif. Anda tidak menginginkannya secara normal. Kedua, Anda perlu mengutip string dengan spasi di dalamnya.Anda juga bisa mendapatkan ID jendela (
0x...
pada awal setiap baris) dan menggunakannya daripada mencoba membuat judulnya berfungsi.sumber
xwininfo
dan kemudian klik pada jendela ID yang Anda inginkan.wmctrl -m
)wmctrl
tidak akan berfungsi. (Secara khusus, ia harus mendengarkanPropertyChange
acara di jendela root untuk properti tertentu dan kemudian menindaklanjuti konten dari properti tersebut.)Dengan memodifikasi sedikit skrip yang diberikan sebagai solusi untuk pertanyaan ini , berikut ini "membawa" jendela yang diberikan ke ruang kerja saat ini (dalam compiz):
Jika ruang kerja yang sewenang-wenang diinginkan, maka itu masalah menambah / mengurangi yang sesuai
$SCREEN_W
/$SCREEN_H
, sebanyak ruang kerja jendela jauh dari target.sumber
Mencoba:
izinkan saya menjelaskan: dalam bantuan acara wmctrl
wmctrl -d
dapat mendaftar semua ruang kerja, di komputer saya sekarang menunjukkan sebagai berikut:* berarti ruang kerja saat ini
BTW,
wmctrl -l
adalah untuk mendaftar semua jendela (yang sudah Anda ketahui), di komputer saya sekarang mereka adalah:karena "MEJA" harus berupa angka, saya gunakan
grep “workspace name” | cut -d" " -f1
untuk mendapatkannya.Misalnya, jika saya ingin memindahkan "kode" Firefox ke ruang kerja, saya dapat menggunakan:
atau
tapi
Kerjakan aku sekali saja, dan aku tidak tahu kenapa!
sumber