Puncte:1

Cum să mapați în mod persistent Capslock la ESC și Ctrl, astfel încât să funcționeze în continuare după suspendare/reluare

drapel us

Folosesc următoarele rânduri în mine ~/.xprofile pe Ubuntu 20.04 pentru a mapa Majuscule la ESC și Ctrl:

# face CapsLock să se comporte ca Ctrl:                                
setxkbmap -option ctrl:nocaps
# faceți Ctrl apăsat scurt să se comporte ca Escape:
xcape -e 'Control_L=Escape'

care funcționează perfect pentru mine.

Problema mea este că nu supraviețuiește suspendării/reluării în mod fiabil.Pentru aceasta, am încercat 2 soluții diferite:

1. Prin intermediul unui script capsmap pune în /usr/lib/systemd/system-sleep/

#!/bin/bash                                                            
                                                                       
cazul „$1” în                                                           
    pre)                                                               
      #execuția codului ÎNAINTE de a dormi/hiberna/suspenda     
    ;;                                                                 
    post)                                                              
      #execuția codului DUPĂ reluare                             
      /usr/bin/echo "executarea: /usr/bin/setxkbmap -option ctrl:nocaps"
      /usr/bin/setxkbmap -option ctrl:nocaps                           
      /usr/bin/echo „se execută: /usr/bin/xcape -e „Control_L=Escape””  
      /usr/bin/xcape -e 'Control_L=Escape'                             
                                                                       
    ;;                                                                 
esac                                                                   
                                                                       
iesirea 0                                                                 

Am făcut scriptul executabil cu sudo chmod +x capsmap și poate vedea din jurnalele că este apelat la momentul potrivit:

$ journalctl
...
Okt 09 13:29:12 nb systemd-sleep[401221]: Sistemul a fost reluat.
Okt 09 13:29:12 nb kernel: Bluetooth: hci0: Revizia dispozitivului este 5
Okt 09 13:29:12 nb kernel: Bluetooth: hci0: Pornirea securizată este activată
Okt 09 13:29:12 nb kernel: Bluetooth: hci0: blocarea OTP este activată
Okt 09 13:29:12 nb kernel: Bluetooth: hci0: blocarea API este activată
Okt 09 13:29:12 nb kernel: Bluetooth: hci0: Blocarea remedierii este dezactivată
Okt 09 13:29:12 nb kernel: Bluetooth: hci0: firmware minim build 1 săptămână 10 2014
Okt 09 13:29:12 nb kernel: Bluetooth: hci0: Firmware-ul dispozitivului găsit: intel/ibt-11-5.sfi
Okt 09 13:29:12 nb systemd-sleep[401287]: se execută: /usr/bin/setxkbmap -option ctrl:nocaps
Okt 09 13:29:12 nb systemd-sleep[401288]: Nu se poate deschide afișajul „afișaj implicit”
Okt 09 13:29:12 nb systemd-sleep[401291]: se execută: /usr/bin/xcape -e 'Control_L=Escape'
Okt 09 13:29:12 nb systemd-sleep[401293]: Imposibil de conectat la afișajul X11. Este setat $DISPLAY?
Okt 09 13:29:12 nb systemd[1]: systemd-suspend.service: Reușit.
Okt 09 13:29:12 nb systemd[1]: Suspendare terminată.
Okt 09 13:29:12 nb systemd[1]: Sleep țintă oprit.
Okt 09 13:29:12 nb systemd[1]: Suspendare țintă atinsă.
Okt 09 13:29:12 nb systemd[1]: Suspendare țintă oprită.
...

Cu toate acestea, maparea se aplică doar uneori. Destul de des, Majuscule pur si simplu se comporta normal.

2. Prin intermediul unui serviciu systemd

Am adăugat un fișier de serviciu capsmap.service la etc/systemd/system/ cu urmatorul continut:

[Unitate]
Descriere=Hartă Capslock la ESC și Ctrl
După=suspend.ţintă

[Serviciu]
Type=onehot
ExecStart=/usr/local/bin/capsmap
TimeoutSec=0
StandardOutput=syslog

[Instalare]
WantedBy=multi-user.target suspend.target

cu dosarul /usr/local/bin/capsmap la fel de

#!/bin/bash

# face CapsLock să se comporte ca Ctrl:
/usr/bin/echo "executarea: /usr/bin/setxkbmap -option ctrl:nocaps"
/usr/bin/setxkbmap -option ctrl:nocaps

# faceți Ctrl apăsat scurt să se comporte ca Escape:
/usr/bin/echo „se execută: /usr/bin/xcape -e „Control_L=Escape””
/usr/bin/xcape -e 'Control_L=Escape'

iesirea 0

apoi a activat serviciul cu sudo systemctl enable capsmap.service.

Tot în acest caz, văd cu jurnalctl că scriptul a fost executat cu succes, dar normal Majuscule comportamentul este încă prezent.

$jurnalctl
...
Okt 09 13:07:56 nb systemd[1]: Suspendare țintă oprită.                                                                                                                                                                                                                           
Okt 09 13:07:56 nb NetworkManager[1049]: <info> [1633777676.0331] manager: sleep: trezire solicitată (dormire: da activat: da)                                                                                                                                                   
Okt 09 13:07:56 nb ModemManager[1137]: sistemul <info> [sleep-monitor] se reia                                                                                                                                                                                                 
Okt 09 13:07:56 nb NetworkManager[1049]: <informații> [1633777676.0332] dispozitiv (enp0s31f6): modificarea stării: activat -> negestionat (motiv „în stare de repaus”, starea sys-iface: „gestionat”)                                                                                                       
Okt 09 13:07:56 nb systemd[1761]: Bluetooth țintă oprit.                                                                                                                                                                                                                       
Okt 09 13:07:56 nb upowerd[1344]: tratarea evenimentului de modificare ca add on /sys/devices/pci0000:00/0000:00:14.0/usb1/1-8                          
Okt 09 13:07:56 nb capsmap[378798]: se execută: /usr/bin/setxkbmap -option ctrl:nocaps                                                                                                                                                                                             
Okt 09 13:07:56 nb systemd[1761]: Bluetooth țintă atins.                                                                                                                                                                                                                      
Okt 09 13:07:56 nb NetworkManager[1049]: <info> [1633777676.0498] dhcp4 (enp0s31f6): tranzacție DHCP anulată                                                                                                                                                                   
Okt 09 13:07:56 nb capsmap[378799]: Nu se poate deschide afișajul „afișaj implicit”                                                                                                                                                                                                         
Okt 09 13:07:56 nb NetworkManager[1049]: <info> [1633777676.0498] dhcp4 (enp0s31f6): starea schimbată legată -> terminat                                                                                                                                                                 
Okt 09 13:07:56 nb avahi-daemon[1041]: Se retrage înregistrarea adresei pentru 192.168.178.54 pe enp0s31f6.                                       
Okt 09 13:07:56 nb avahi-daemon[1041]: Se lasă grupul mDNS multicast pe interfața enp0s31f6.IPv4 cu adresa 192.168.178.54.                                                                                                                                                      
Okt 09 13:07:56 nb avahi-daemon[1041]: Interfața enp0s31f6.IPv4 nu mai este relevantă pentru mDNS.                                             
Okt 09 13:07:56 nb avahi-daemon[1041]: Se retrage înregistrarea adresei pentru fe80::778b:d324:d55d:a503 pe enp0s31f6.                                                                                                                                                                     
Okt 09 13:07:56 nb avahi-daemon[1041]: Se lasă grupul mDNS multicast pe interfața enp0s31f6.IPv6 cu adresa fe80::778b:d324:d55d:a503.  
Okt 09 13:07:56 nb avahi-daemon[1041]: Interfața enp0s31f6.IPv6 nu mai este relevantă pentru mDNS.                                                                                                                                                                                      
Okt 09 13:07:56 nb systemd[1]: Starea comutatorului de oprire RF a început încărcarea/salvarea.                                                                  
Okt 09 13:07:56 nb capsmap[378800]: se execută: /usr/bin/xcape -e 'Control_L=Escape'                                                                                                                                                                                               
Okt 09 13:07:56 nb NetworkManager[1049]: <info> [1633777676.0545] manager: starea NetworkManager este acum CONNECTED_GLOBAL                 
Okt 09 13:07:56 nb capsmap[378805]: Imposibil de conectat la afișajul X11. Este setat $DISPLAY?                                                                                                                                                                                            
Okt 09 13:07:56 nb kernel: kauditd_printk_skb: 9 apeluri inverse suprimate                                                                                                                                                                                                             
Okt 09 13:07:56 nb kernel: audit: type=1107 audit(1633777676.068:1737): pid=1047 uid=103 auid=4294967295 ses=4294967295 subj=unconfinedoperation msg='appsignalmor="I_ED" bus="system" path="/org/freedesktop/NetworkManager/ActiveConnection/30" interface="org.fr>
                            exe="/usr/bin/dbus-daemon" sauid=103 hostname=? adresa=? terminal=?'                                                                                                                                                                                    
Okt 09 13:07:56 nb kernel: audit: type=1107 audit(1633777676.068:1738): pid=1047 uid=103 auid=4294967295 ses=4294967295 subj=unconfinedoperation msg='appsignalmor="I_ED" bus="system" path="/org/freedesktop/NetworkManager/ActiveConnection/30" interface="org.fr>
                            exe="/usr/bin/dbus-daemon" sauid=103 hostname=? adresa=? terminal=?'                                                                                                                                                                                    
Okt 09 13:07:56 nb audit[1047]: USER_AVC pid=1047 uid=103 auid=4294967295 ses=4294967295 subj=unconfined msg='apparmor="DENIED" operation="dbus_signal="" bus="system" path="" /org/freedesktop/NetworkManager/ActiveConnection/30" interface="org.freedesktop.NetworkManager.Connec>
                                 exe="/usr/bin/dbus-daemon" sauid=103 hostname=? adresa=? terminal=?'                                                                                                                                                                               
Okt 09 13:07:56 nb audit[1047]: USER_AVC pid=1047 uid=103 auid=4294967295 ses=4294967295 subj=unconfined msg='apparmor="DENIED" operation="dbus_signal="" bus="system" path="" /org/freedesktop/NetworkManager/ActiveConnection/30" interface="org.freedesktop.NetworkManager.Connec>
                                 exe="/usr/bin/dbus-daemon" sauid=103 hostname=? adresa=? terminal=?'                                                                                                                                                                               
Okt 09 13:07:56 nb systemd[1]: capsmap.service: Reușit.  
...

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.