Bagaimana cara mengatur pintasan untuk "Selalu di Atas" untuk jendela?

27

Dalam 12,04 (Unity), saya ingin menetapkan pintasan ke "selalu di atas opsi" untuk sebuah jendela. Mungkin sesuatu seperti Ctrl+ Shift+ Homeuntuk menghidupkan dan Ctrl+ Shift+ Enduntuk mematikan, atau apa pun. Apakah ada opsi untuk melakukan ini di suatu tempat di Compiz Settings Manager?

Posting (lama) ini mengklaim hal itu

Untuk compiz, Aktifkan Tindakan WM Ekstra. Periksa properti, dan masukkan ALT+ Ake bidang Kunci untuk tindakan Toggle Always-On-Top.

Tetapi saya tidak dapat menemukannya.

Ian Hincks
sumber
1
Apakah ada orang di sini yang berhasil membuat pekerjaan ini di Ubuntu 12.10 tanpa menggunakan ccsm? terima kasih
Suhaib

Jawaban:

32

Ini harus bekerja pada setiap OS Ubuntu sejak versi 9.04 tanpa menginstal apa pun, memodifikasi pembuatan pintasan apa pun.

Coba Alt+ Space, T

  • Alt+ Space sebagai pintasan pertama menampilkan menu klik kanan mouse

  • T memilih fungsi "Selalu Di Atas".

pengguna294298
sumber
1
Ini benar-benar jawaban terbaik di halaman.
dotancohen
Dikonfirmasi mengerjakan Unity 14.04. Fakta bahwa alt + space mengaktifkan menu pull-down membantu terutama untuk fitur yang jarang digunakan.
Frank M
Ini harus menjadi jawaban yang dipilih. Terima kasih!
Nam G VU
1
Ini diposting 2 tahun setelah pertanyaan, tetapi sekarang merupakan jawaban terbaik, jadi saya mengubah jawaban yang diterima.
Ian Hincks
2
tidak bekerja pada 18.04, T tidak memilih fungsi 'Selalu Di Atas' lagi.
rvbarreto
14

Karena belum ada yang menyebutkan ini, saya hanya akan meninggalkan solusi yang bekerja untuk saya di Ubuntu 12.04.

Anda dapat mengatur pintasan keyboard biasa dan menggunakan wmctrl untuk mengaktifkan opsi "Selalu di Atas".

Buka Pengaturan Sistem> Keyboard> Pintasan> Pintasan Khusus . Tekan tanda + dan beri nama cara pintas Anda. Kemudian masukkan perintah berikut.

wmctrl -r :ACTIVE: -b toggle,above

Jika Anda belum memilikinya, Anda dapat menginstal wmctrl dari repos menggunakan

sudo apt-get install wmctrl

Anda harus memiliki sesuatu yang mirip dengan ini.

Cuplikan layar memperlihatkan layar pengaturan pintasan keyboard khusus

Hit mendaftar dan Anda harus baik-baik saja!

Solusi ini berasal dari diskusi di forum Ubuntu .

Kasisnu
sumber
@ Suhaib Bagian itu sudah ada di jawabannya. :)
Kasisnu
lol, maaf. Tidak tahu bagaimana saya melewatkannya xD
Suhaib
7

Jika tidak menginstal CCSM dan plugin kompi tambahan melalui:

sudo apt-get install compizconfig-settings-manager compiz-plugins-extra

Berhati-hatilah. CCSM dapat membunuh Unity3D pada beberapa sistem.

Jika Anda belum menginstal compiz-plugins-extra, Anda perlu me-restart Compiz untuk memuatnya (meskipun mereka ditampilkan di CCSM sebelum restart) dengan Alt+ F2dan

compiz --replace

Anda dapat melihat Tindakan WM Ekstra di bawah bagian Manajemen Windows pada CCSM seperti yang dijelaskan dalam pos yang Anda temukan. Anda dapat mengatur tindakan yang diinginkan di sana dengan mudah.

heartsmagic
sumber
Sebenarnya, memulai kembali compiz hanya diperlukan agar menyadari plugin baru. Setelah itu, Anda dapat mengubah pintasan dengan cepat (yaitu, Anda tidak perlu memulai ulang Compiz setelah setiap perubahan pintasan)
sup
Terima kasih atas info @sup. Saya hanya menjelaskannya menggunakan postingan yang diberikan. Sebenarnya saya tidak mencobanya sendiri.
heartsmagic
Yah, saya reworded untuk membuatnya lebih jelas :-).
sup
2

Lain, lebih baik saya pikir, solusinya adalah menambahkan Alt+ Asebagai jalan pintas untuk mengaktifkan properti "Selalu di Atas" dari sebuah jendela. Ini dapat dilakukan melalui gconf-editor . Cukup ikuti instruksi sederhana yang diberikan dalam video ini .

EDIT: Disalin dari video

  1. jika Anda menggunakan 12.04 && 12.10 Anda harus menginstal gconf-editor

    sudo apt-get install gconf-editor

  2. Ketikkan gconf-editorterminal.

  3. Klik aplikasi

  4. Pergi ke metacity

  5. window_keybindings

  6. klik kanan di dalam kotak kanan dan klik new key

  7. Pilih stringdari daftar dropdown.

  8. Tambahkan kata toggle_above

  9. Tuliskan perintah yang Anda inginkan. yaitu: A dan tekan OK

Selesai :-)

tamakisquare
sumber
itu tidak berhasil :-(
Suhaib
Ya, itu tidak berfungsi untuk jam 12.10.
sup
Seharusnya dconf-editor di 14.04 ... tetapi tidak berhasil juga.
Ed Villegas
1

Saya mencoba menggunakan wmctrlperintah toggle, tetapi tidak berfungsi pada pengaturan Ubuntu saya. Beralih akan beralih, tetapi tidak beralih. (Saya pikir itu mungkin karena saya menggunakan lingkungan desktop gnome, di mana wmctrlAFAIK sedikit rusak).

Lagi pula, setelah banyak penelitian dan mencari cara menulis kode yang tepat dalam bash, saya membuat satu perintah yang menggunakan wmctrlperintah dalam lapisan logika untuk mengaktifkan keadaan 'selalu di atas' secara efektif di desktop GNOME saat ini. Saya memposting jawaban ini di Ask Unix / Linux, tetapi saya pikir saya akan mempostingnya juga di sini kalau-kalau ada yang punya masalah yang sama.

Ini perintahnya:

bash -c 'wmctrl -r :ACTIVE: -b $([[ $(xprop -id $(xprop -root -f _NET_ACTIVE_WINDOW 0x " \$0\\n" _NET_ACTIVE_WINDOW | awk "{print \$2}") _NET_WM_STATE) =~ "ABOVE" ]] && echo "remove" || echo "add"),above'

Itu memeriksa properti keadaan jendela aktif "_NET_WM_STATE" menggunakan xprops, dan jika itu berisi teks "DI ATAS" itu berarti opsi 'selalu di atas' aktif. Kemudian hanya menjalankan wmctrlperintah dengan parameter addatau removesesuai kebutuhan.


Perincian perintah (setiap perintah dimasukkan ke perintah berikutnya, menggantikan placeholder):

  • Dapatkan id jendela aktif:

    xprop -root -f _NET_ACTIVE_WINDOW 0x " \$0\\n" _NET_ACTIVE_WINDOW | awk "{print \$2}"
    
  • Dapatkan status jendela dari xpropmenggunakan id:

    xprop -id $(■) _NET_WM_STATE
    
  • Periksa apakah negara berisi "DI ATAS", yang menunjukkan bahwa jendela diatur ke "selalu di atas":

    [[ $(■) =~ "ABOVE" ]]
    
  • Kembalikan "hapus" jika benar, jika tidak kembalikan "tambahkan":

    ■ && echo "remove" || echo "add"
    
  • jalankan wmctrlperintah menggunakan nilai yang dikembalikan sebagai parameter:

    wmctrl -r :ACTIVE: -b $(■),above
    
  • Kirim semuanya ke bashsehingga Anda dapat menggunakan substitusi perintah ${ ... }, evaluasi bash boolean [[ ... ]]dan operator pertandingan regex =~:

    bash -c '■'
    

    Langkah terakhir ini khususnya membutuhkan waktu yang sangat lama bagi saya untuk mencari tahu. Sampai saya menyadari bahwa pintasan keyboard tidak berjalan di bash secara default, saya tidak tahu mengapa perintah itu bekerja di konsol saat saya mengujinya tetapi diam-diam gagal ketika dijalankan langsung sebagai pintasan keyboard. Itu membuat saya naik tembok untuk waktu yang lama!

Catatan: karena Anda memerlukan tanda kutip di sekitar perintah yang Anda kirim ke bash, saya harus berhati-hati ketika menulis perintah bahwa saya tidak pernah masuk lebih dari satu level lebih dalam (menggunakan tanda kutip ganda). Setiap nesting string dalam tanda kutip akan membutuhkan banyak backslash yang membingungkan untuk lolos dari tanda kutip.

Geoff Davids
sumber
0

Mungkin sudah terlambat tetapi jika ada yang mencarinya lagi dan datang ke sini, ada, bagi saya, solusi yang lebih sederhana:

Di ubuntu dan di banyak distribusi lainnya menggunakan GTK (mereka sebagian besar berbagi panel pengaturan), Anda dapat pergi ke Pengaturan -> keyboard> pintasan. Di "daftar" pintasan, Anda akan menemukan entri tidak ditugaskan untuk menjaga jendela di atas. Tidak yakin namanya dalam bahasa Inggris, tetapi dalam bahasa Prancis "Activer / Désactiver la mise au premier plan de la fenêtre".

Atur dan hanya itu :)

Gabriel Genois
sumber