Timpa pintasan seluruh sistem untuk pintasan khusus aplikasi


11

Apakah ada cara untuk memberikan pintasan keyboard yang ditentukan dalam prioritas aplikasi di atas pintasan seluruh sistem dengan pengikatan tombol yang sama?

Perilaku yang diinginkan: Ketika beberapa tombol ditekan, periksa apakah aplikasi yang difokuskan ingin melakukan sesuatu (dan jika demikian, lakukanlah). Jika tidak, periksa apakah ada pintasan sistem untuk beberapa tombol lalu lakukan itu.

Apa yang terjadi saat ini: Saya telah F11menetapkan 'toggle fullscreen' di menu pengaturan untuk pintasan keyboard. Di Chrome F11harus mengaktifkan mode layar penuh Chrome sendiri, tetapi sebaliknya ditimpa oleh pintasan seluruh sistem, yaitu Chrome menjadi layar penuh (panel GNOME dan bilah judul menghilang) tetapi tidak masuk ke mode layar penuh Chrome (di mana tab, bilah alamat, dan bilah bookmark juga lenyap).

(Catatan: Firefox tidak memiliki masalah yang sama, tetapi ini tampaknya karena FF layar penuh sama dengan / dipicu oleh layar penuh pengelola jendela)


Pertanyaan pertama yang muncul di benak saya; apa yang berbicara dengan OS tentang penekanan tombol, aplikasi, atau X / Wayland? Sepertinya saya bahwa X akan menangani penekanan tombol, dan memotongnya jika diperlukan, sebelum meneruskannya ke jendela aplikasi Anda sedang menunggu Anda. Pertanyaan kedua adalah bagaimana X akan tahu jika aplikasi telah berubah keadaan, dan bagaimana ia tahu jika perubahan terjadi secara langsung karena penekanan tombol? Saya akan cenderung untuk mengambil risiko dan mengatakan bahwa Anda kurang beruntung dalam hal ini.
HellionWisp

Jawaban:


2

Penafian: Ini bukan yang Anda inginkan, tapi saya sudah menghabiskan terlalu banyak waktu untuk tidak mempostingnya dan mungkin orang lain dapat menggunakannya.

Saya mendapatkan sejauh Ctrl + F11 layar penuh di mana-mana tetapi Chromium di mana itu adalah layar penuh Chromium!

  1. Kereta pikiran

Saya pikir saya mungkin bisa menipu manajer jendela jika saya menggunakan xdotooldan mengirim perintah langsung ke jendela chrome - tidak berhasil.

Lalu saya pikir saya mungkin bisa mengubah pintasan keyboard di google chrome, tapi itu sepertinya hardcoded - jalan buntu lain.

  1. Yang meninggalkan kita dengan ini

Instal xdotooluntuk mensimulasikan penekanan keyboard

sudo apt-get install xdotool

mengkonfigurasi ulang pintasan Keyboard Ubuntu ke sesuatu yang sewenang-wenang, yang kita tidak pernah ketik tetapi dapat digunakan dalam skrip

Pengaturan -> Perangkat -> Keyboard

Gulir ke bawah dan edit Toggle mode layar penuh ke Ctrl + Alt + 1dan kemudian tekan +dan tambahkan pintasan keyboard khusus

pintasan keyboard - layar penuh

lalu tekan +dan tambahkan pintasan keyboard khusus

dialog pintasan khusus

edit skrip

nano /home/user/fullscreen.sh


#!/bin/bash
export DISPLAY=:0
windowname=$(xdotool getactivewindow getwindowname | cut -d "-" -f 2)
if [[ $windowname != *"Chromium"* ]]
then
xdotool keydown Ctrl keydown Alt key 1 keyup Alt keyup Ctrl
else
xdotool search --onlyvisible --class "Chromium" windowfocus 
sleep 0.2
xdotool key F11
fi

membuatnya bisa dieksekusi

chmod +x /home/user/fullscreen.sh

  1. Kesimpulan

Tampaknya mustahil untuk mengelabui manajer jendela dan menyelundupkan keystroke oleh, tetapi tentu saja ada solusi yang mungkin. Dalam hal ini Google membuat pintasan keyboard layar penuh tidak dapat dikonfigurasi, sehingga kurang dari sasaran

Sekarang dengan Ctrl + F11 manajer jendela mengontrol perilaku layar penuh kecuali dalam chromium.


1
Pikirkan Anda benar bahwa ini adalah yang terbaik yang dapat kami harapkan - malu bahwa Chrome / ium tidak mendukung pintasan keyboard khusus. Patut dicatat: pilihan cara pintas keyboard penting untuk trik ini! Saya sudah memiliki Ctrl + F11 terikat ke sesuatu yang lain. Mencoba dengan Shift + Alt + F11, yang tidak berhasil. Alt + F11 bekerja dengan baik. (Saya kira itu sedang mencoba untuk melakukan Shift + Ctrl + Alt + F11)
fred
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.