Αντιστοίχηση εντολών σε πλήκτρα με το sxhkd

Το Simple X hotkey daemon ή χαϊδευτικά sxhkd είναι ένας απλός δαίμονας που αντιστοιχεί εντολές σε πλήκτρα του πληκτρολογίου. Το cinnamon, το gnome το kde έχουν αντίστοιχες δυνατότητες, αλλά θα δείτε πως με το sxhkd μπορείς να κάνεις πολύ ποιο πολύπλοκα πράγματα, όπως ακολουθίες πλήκτρων. Αν δε αλλάζεις γραφικό περιβάλλον συχνά είναι μπελάς να ρυθμίζεις τις ίδιες συντομεύσεις ξανά και ξανά.

Ίσως να γνωρίζατε για το xbindkeys που κάνει μια παρόμοια δουλεία. Αλλά βρίσκω τοsxhkd να έχει μια καλύτερη σύνταξη. Επίσης έχει περισσότερες δυνατότητες. Ήρθε η ώρα να βάλουμε κάποια σκουριασμένα πλήκτρα να δουλέψουν :nerd_face:

Εγκατάσταση

Υπάρχει στα αποθετήρια. Μετά την εγκατάσταση θα πρέπει να το ρυθμίσουμε φτιάχνοντας ένα αρχείο.

mkdir -p ~/.config/sxhkd/
gedit ~/.config/sxhkd/sxhkdrc

Δείτε παρακάτω για την σύνταξη και παραδείγματα.

Στην συνέχεια θα πρέπει να βάλουμε το sxhkd να ξεκινάει με την συνεδρία. Για να μην το κάνουμε για όλες, θα προσθέσουμε στο αρχείο ~/.xprofile τα παρακάτω

 # Universal hot keys
sxhkd &

Αν το αρχείο δεν υπάρχει το φτιάχνουμε. Αν το περιβάλλον εργασίας δεν το χρησιμοποιεί δείτε εδώ.

Σύνταξη και παραδείγματα

Η σύνταξη είναι απλή ότι ξεκινά με κενό είναι εντολή, αλλιώς είναι ένα hotkey. Αν ξεκινά με # είναι σχόλιο. Δώστε ένα man sxhkd για περισσότερα. Τα ονόματα για τα πλήκτρα μπορούν να βρεθούν με το xev.

Εκκινητής εφαρμογών
Στο πρώτο παράδειγμα πατώντας :win:O ακολουθούμενο από το πλήκτρο B θα ανοίξει τον brave

super +o ; b
     brave-browser

super + o ; {e,w,m}
      {gvim,firefox,thunderbird}

Αλλά αν θέλεις πολλούς τέτοιους εκκινητές η δεύτερη σύνταξη επιτρέπει να έχεις πολλούς με μια μόνο καταχώρηση.

Cut, Copy, Paste,Undo,Redo
Το πληκτρολόγιο μου έχει πλήκτρα με αυτά τα ονόματα. Ώρα να τα βάλω σε μια χρήση.

# Cut,Copy,Paste,Undo,Redo
@XF86Cut
   xte 'keydown Control_L' 'key x' 'keyup Control_L'
@XF86Copy
   xte 'keydown Control_L' 'key c' 'keyup Control_L'
@XF86Paste
   xte 'keydown Control_L' 'key v' 'keyup Control_L'
@Undo
   xte 'keydown Control_L' 'key z' 'keyup Control_L'
@Redo
   xte 'keydown Control_L' 'keydown Shift_L' 'key z' 'keyup Shift_L' 'keyup Control_L'

το @ κάνει την εντολή να εκτελείτε όταν αφήνεις το πλήκτρο, και όχι όταν το πατάς. Αυτό είναι καλύτερο από το να συμβαίνει όταν το πατάς και λύνει πολλά προβλήματα. Για τα στείλω το συνδυασμό χρησιμοποιώ το xte από το πακέτο xautomation. Αυτό στέλνει συνθετικά events, χρησιμοποιώντας την επέκταση xtest.

1 «Μου αρέσει»