Klavyedeki «PowerOff» tuşu için eşleme nasıl değiştirilir?


15

Ubuntu uyumlu olduğu kanıtlanan ROG G551JM Asus dizüstü bilgisayarı satın aldım. Bilgisayarın klavyesi, "Poweroff" anahtarının sıradan bir anahtar olması ve genellikle "Son" tuşunu bulduğu sıradan bir anahtar olması nedeniyle kötü tasarlanmıştır. Aksi takdirde bilgisayar gayet iyi, bu yüzden bir şekilde sorunu "düzeltmek", yani PowerOff düğmesini "End" anahtarına yeniden mümkün olabileceği varsayımı ile satın aldı.

PowerOff düğmesi yanlış yaptı (ASUS G551JM): ASUS G551JM

Normalde bir "Son" tuşu (ASUS N56VZ) vardır: ASUS N56VZ

"Güç Kapalı" tuşuna etkinlik tarafından üretilen /dev/input/event2: Power Button(bildirdiği gibi cihaz evtestkodunu 116) (örnek hattı evtest: Event: time 1422895638.246142, type 1 (EV_KEY), code 116 (KEY_POWER), value 1)

Anahtar X sunucusu tarafından da görülebilir ve sonuçta Ubuntu, tuş basımlarını bir PowerOffanahtar olarak tanımlayabilir ve bilgisayarı gerçekten kapatma isteğimi onaylayan "Elveda Adam Adam ..." yarı saydam iletişim kutusunu başlatır.

Sorun, PowerOff tuşunu bağlayan bağlamanın, dconf-editor altında onay iletişim kutusunun görünmediğini ve bunu nerede bulacağımı gösteren hiçbir ipucum olmadığını gösteren rutin ile bağlanmasıdır.

Herkes bana, PowerOff anahtar için varsayılan bağlayıcı değiştirmek veya silmek nerede söyleyebilir?

Kolay bir şey olmalı.


düzenleme 21.IX.2016:

İletişim kutusunu kalıcı olarak devre dışı bırakmanın bir yolu vardır, bkz . Güç düğmesi seçeneklerini nasıl değiştirebilirim? . Umarım güç düğmesini devre dışı bıraktıktan sonra, başka bir şeye yeniden atamak mümkün olur.


Sorunu çözdünüz mü? Burada bir cevap gönderirseniz çok yararlı olur.
ezze

1
@Ezze Pek değil (bu sorun nedeniyle farklı bilgisayar kullanıyorum). Ancak tuşa bastıktan sonra üretilen kapatma iletişim kutusunu kalıcı olarak devre dışı bırakmayı başardım. Tamam, cevabı güncelleyeceğim.
Adam Ryczkowski

Unix ve Linux StackExchange ile ilgili soru .
ezze

2
Bu anahtarı kaldırmak için ASUS'tan çok nefret ediyorum. Homeve en Endçok kullandığım "meta" anahtarlar ... :(
Matthieu

Yanıtlar:


10

Ubuntu 18.04 LTS ve Ubuntu 16.04 LTS'deki ASUS N751JK'm üzerinde çalışabildim (her iki durumda da Unity masaüstü ortamı ve 18.04'te KDE Plazma ile test edildi):

  1. Her şeyden önce, "Kapat" düğmesinin eylemini olarak ayarlayın nothing.

    Birlik

    Gibi bir cevapta belirtildiği Johano Fierra :

    gsettings set org.gnome.settings-daemon.plugins.power button-power "nothing"
    

    veya alternatif olarak sudo apt install dconf-toolsve özelliği dconf-editordeğiştirmek için kullanın org.gnome.settings-daemon.plugins.power( burada açıklandığı gibi ). Çalışması için yeniden başlatma veya oturum kapatma gerekir.

    KDE

    Git "Sistem Ayarları" seçeneğini "Güç Yönetimi" sekmesine "Donanım" bölümünde ve sonra seçin "Enerji Tasarrufu" sekmesini bulmak, aşağı kaydırma "güç düğmesine basıldığında zaman" açılır listeyi ve onun değerini değiştirmek "Do şey" . Değişikliklerin etkili olması için "Uygula" düğmesini tıklayın .

    Enerji tasarrufu

  2. Xdotool'u yükleyin :

    sudo apt install xdotool
    

    Bu, önemli olayları tetiklememize izin verecektir.

  3. Sonraki adım tetik etmektir "Son" tuşa basıldıktan "Bilgisayarı kapatıp" butonuna basın.

    Ubuntu 18.04

    /etc/acpi/events/powerAşağıdaki içeriklerle dosya oluşturun :

    event=button/power
    action=/etc/acpi/power.sh "%e"
    

    ve /etc/acpi/power.shaşağıdaki içeriklerle komut dosyası oluşturun :

    #!/bin/sh
    xdotool key End
    

    ve yürütme izinlerini ekleyin:

    sudo chmod +x /etc/acpi/power.sh
    

    Ubuntu 16.04

    "Kapatma" düğmesinin olayını işlemek için kullanılan yedek ACPI betiği :

    sudo cp /etc/acpi/powerbtn.sh /etc/acpi/powerbtn.sh.backup
    

    Ardından düzenleyin, aşağıdakileri bulun:

    # If logind is running, it already handles power button presses; desktop
    # environments put inhibitors to logind if they want to handle the key
    # themselves.
    

    ve aşağıdaki kodu aşağıdaki gibi değiştirin:

    if pidof systemd-logind >/dev/null; then
        xdotool key End
        exit 0
    fi
    
  4. Bu değişiklikleri uygulamak için aşağıdakiler çalıştırılmalıdır:

    sudo acpid restart
    

    Adam sayesinde acpidbir kullanıcı oturum açtığında (sistem önyüklemesinde) otomatik olarak yeniden başlatmak mümkündür . Bu nedenle, sudo acpid restarther yeniden başlatma işleminden sonra terminaldeki manuel yerine aşağıdaki satırı ekleyin:

    session optional    pam_exec.so /usr/sbin/acpid restart
    

    /etc/pam.d/common-sessiondosyanın sonuna kadar .


sudo acpid reloadYeniden başlatma yerine ne olacak ? Işe yarar mı?
Bayt Komutanı

1
acpid restartSorunu çözen, session optional pam_exec.so /usr/sbin/acpid restartsonuna bir satır eklemektir /etc/pam.d/common-session. Bu şekilde acpid kullanıcı girişinden hemen sonra yeniden başlatılacak ve bu benim için yeterli. Sorun sonunda çözüldü !!
Adam Ryczkowski

1
@rtindru gsettings setyerine, yapmalısınız gsettings get.
ezze

1
Kubuntu 18.04'te bu işi yapmak için power.sh: sudo chmod +x /etc/acpi/power.sh@ Ezze'ye yürütme izinleri vermek zorunda kaldım, belki cevabınızı buna dahil etmek için güncelleyebilirsiniz.
LGenzelis

1
@LGenzelis, teşekkürler. Yanıt güncellendi.
ezze

4

Bu hile yapmalı.

Terminale girin:

gsettings set org.gnome.settings-daemon.plugins.power button-power "nothing"

2
EVET!!! Ama sonra başka bir şey daha var: «son» anahtarıyla nasıl eşleştirilir?
Adam Ryczkowski

1
Buraya keşfedilmemiş bölgeyi giriyorum, ama sadece bir xmodmap dosya yapılandırması ($ {HOME} /. Xmodmap) oluşturabilir ve bunu içine koyabilirsiniz: keycode 116 = End veya terminalde girebilirsiniz: xmodmap -e "keycode 116 = End "
Johano Fierra

Ne yazık ki, yardımcı olmuyor. xevKomut tarafından görüldüğü gibi "Kapat" düğmesinin yakalanmasını devre dışı bırakır ve xmodmapyeniden eşlenmesini önler . Ve bu arada, "Kapat" düğmesinin tuş kodu farklı olabilir (ASUS N751JK'm için 124).
ezze

Düğmeyi yakalama yeteneğini devre dışı bırakmamalı ... ama buna ne dersiniz. Terminali girin: gsettings set org.gnome.settings-daemon.plugins.power button-power "shutdown"(böylece düğmeye basılarak yakalanır), ardından /etc/acpi/events/powerbtnsatırı düzenleyip yorumlayın #action=/etc/acpi/powerbtn.shve sonra terminali girin: xmodmap -e "keycode 124 = End"Bu, güç düğmesinin herhangi bir şey yapmasını engellemeli ve aynı zamanda Son tuşuna eşlemelidir.
Johano Fierra

1
"Kapatma" olayının sadece powerbtn.shkomut dosyası tarafından değil, aynı zamanda (en azından) systemd-logindhizmet tarafından da işlenmesine neden olmaz (muhtemelen, button-poweryanıtınızda belirttiğiniz ayarı kullanır ). Sen-ebilmek bulmak if pidof systemd-logind >/dev/null; then... exit 0satırı powerbtn.sh, komut dosyası sağlarsystemd-logind masaüstü oturumu aktifken "Kapat" olayını kendi başına gerçekleştirmesine . Haklı olduğunuz bir şey var - button-powerdeğeri değiştirmek , anahtarı yakalama yeteneğini etkilemez, ancak zaten bir işlem ( systemd-logindveya başka) tarafından yakalanır .
ezze
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.