Cara membuat & menyematkan pintasan Unity ke perintah / shellscript tertentu

9

Ini bukan duplikat karena saya telah menghabiskan banyak waktu ketika mencoba mencari solusi dari Ask Ubuntu dan Googling, tetapi tidak berhasil. Ini adalah masalah khusus setelah berhasil menyematkan pintasan ke Unity.

Perintah yang saya coba pin adalah:

rdesktop -u user -d DOMAIN -g 1380x849 -r sound:local -p password -x 0x80 -P -a 32 -k fi 192.168.1.103

Baiklah, jadi hal-hal yang saya coba adalah:

  1. Secara manual buat rdesk.desktop yang akan menggunakan aplikasi rdesktop dengan beberapa parameter perintah untuk terhubung ke mesin jarak jauh dan secara otomatis masuk. Saya dapat dengan sukses menyeret peluncur ini ke Unity.

  2. Buat peluncur melalui utilitas Menu Utama, tekan ikon Ubuntu dan luncurkan sesi dari sana, lalu sematkan ikon rdesktop aktual yang muncul saat peluncuran.

Kedua metode ini bekerja sebagian. Saya bisa mendapatkan pintasan yang bagus dengan ikon pilihan saya ke bilah tugas dengan (1), tetapi setelah mengklik pintasan ini ikon kedua (rdesktop aktual) muncul di bagian bawah bilah Unity. Menyematkan ikon kedua ini berfungsi, tetapi sebenarnya tidak melakukan apa pun setelah diklik SETELAH saya menutup sesi. Ikon yang disematkan dari metode (2) bekerja persis sama.

Pada mouse di atas, ikon kedua menunjukkan kepada saya: rdesktop - 192.168.1.103

Bagaimana saya bisa membuat pintasan ke perintah rdesktop dengan parameter, dan menyematkannya ke Unity sehingga ikon yang saya klik akan disorot dan merespons klik bahkan setelah menutup sesi? Atau saya kira saya entah bagaimana dapat mengedit ikon yang disematkan kedua untuk bekerja dengan parameter yang benar sehingga rdesktop akan benar-benar terbuka, saya hanya tidak dapat menemukannya di mana saja dalam sistem file untuk mengintip.

Sunting: inilah entri .desktop saya yang saya seret ke Unity

[Desktop Entry]
Name=Remotedesktop Client
Comment=Connect to a remote Windows Terminal-Server
Exec=rdesktop -u name -d DOMAIN -g 1380x849 -r sound:local -p password -x 0x80 -P -a 32 -k fi 192.168.1.103
Icon=/usr/share/icons/hicolor/scalable/apps/nm-device-wired.svg
Terminal=false
Hidden=false
Type=Application
Version=1.0
Encoding=UTF-8

Berikut screenshot untuk klarifikasi:

masukkan deskripsi gambar di sini

Yang disorot hitam atas adalah .Desktop saya, dan yang lebih rendah adalah yang saya dapatkan ketika saya mengkliknya. Bagian atas sebenarnya hanya akan berfungsi satu kali, dan jika saya melepaskan sematan itu dan meng-redrag-nya ke Unity, itu akan berfungsi lagi, satu kali.

merah
sumber

Jawaban:

11

Anda perlu mengatur WMClass untuk rdesktop di file .desktop Anda. Yang ini bekerja untuk saya:

[Desktop Entry]
Version=1.0
Type=Application
Name=Gacela
Exec=rdesktop #####:####
Icon=/usr/share/icons/gacela.png
Comment=Conexion co Gacela
Categories=Internet;
Terminal=false
StartupNotify=true
StartupWMClass=rdesktop
GenericName=

Untuk mendapatkan WMClass dari semua jendela yang sedang berjalan, Anda perlu menggunakan perintah ini:

xprop

dan klik pada jendela yang ingin Anda identifikasi. Cari nilai WM_CLASS dalam output, atau ambil jika Anda lebih suka output yang lebih kecil:

xprop | grep WM_CLASS
Javier Rivera
sumber
Tidak mungkin sesulit itu untuk membuat jalan pintas di Unity ?!
Dan Dascalescu
Ini bukan instruksi untuk membuat pintasan umum, solusi ini hanya diperlukan ketika program yang cocok dengan Windows dan nama Program tidak dapat melakukannya.
Javier Rivera