KeyCode
ᲙᲚᲐᲕᲘᲐᲢᲣᲠᲘᲡ ᲙᲝᲓᲔᲑᲘ
კლავიშაზე დაჭერა კომპიუტერს უგზავნის უნიკალურ კოდს, რომლითაც პროცესორი აკეთებს გარჩევას, რა უნდა მოიმოქმედოს. რადგან კლავიატურაზე უმეტესად სიმბოლოებია, ამიტომ უმეტესად ხდება ეკრანზე გამოსატანი სიმბოლოების მისადაგება. გარდა სიმბოლოებისა, კლავიატურაზე მრავალი სხვა ფუნქციონალობის კლავშია, ერთ ჯგუფს ასეთც ქვია: ფუნქციონალური კლავიშები. კლავიატურის კოდის ანალიზის შედეგია, რომ საეთო ჯამში 100 კლავიშა გაცილებით მეტი რიცხვის კომბინაციებს ითვლის, მაგალითისთვის, კომპიუტერში შეგვიძლია მივუთითოთ 10 სხვადასხვა ენის სიმბოლოების ბეჭვდის შესაძლებლობა, ამას ემატება კიდევ კლავიშების კომბინაციები და ა. შ.
რაში დამჭირდა მე ეს თემა: ჩემი სამუშაო გარემო ძირითადად მოწყობილი მაქვს ისე, რომ მჭირდება მხოლოდ კლავიატურა და ნაკლებად თაგვი, ასევე თაჩპედი. ნოუთბუკზე მუშაობისას კი, სახელდობრ თაჩიპედი ძალიან მიშლის ხელს. არის ნოუთბუკები, რომლებსაც ქარხნიდავე აქვს ტაჩპედის გათიშვის ფუნქცია და გამოსახულიცაა ფუნქციონალური კლავიშებზე დამატებულ ჯგუფში. ჩემს ნოუთბუკს ეს არ აღმოაჩნდა, ამიტომ ვიფიქრე, ეს პროგრამულად გამეკეთებინა.
ჩემს შემთხვევაში ამოცანა შედარებით გამარტივდა, იმიტომ, რომ ჩემს სისტემაში F5-ს ფუნქცია არ აღმოაჩნდა. პირველი დავწერე პატარა სკრიპტი.
ᲢᲐᲩᲞᲔᲓᲘᲡ ᲒᲐᲓᲐᲡᲐᲠᲗᲕᲔᲚᲘ ᲡᲙᲠᲘᲞᲢᲘ
- გავხსენი ტერმინალი.
- ვქმნი ახალ ფაილს, მაგალითისთვის
toggle_touchpad.sh:nvim ~/toggle_touchpad.sh - შემაქვს შემდეგი კოდი:
#!/bin/bash DEVICE_ID=9 STATE=$(xinput list-props $DEVICE_ID | grep "Device Enabled" | awk '{print $4}') if [ $STATE -eq 1 ]; then xinput disable $DEVICE_ID else xinput enable $DEVICE_ID fi - ვინახავ ფაილს და გამოვდივართ (esc :wq).
- ვცვლი ფაილის ტიპს და ვაქცევ მას პროგრამად:
chmod +x ~/toggle_touchpad.sh
i3-Ს ᲙᲝᲜᲤᲘᲒᲣᲠᲔᲠᲔᲑᲐ F5-ᲘᲡ ᲒᲐᲛᲝᲡᲐᲧᲔᲜᲔᲑᲚᲐᲓ
- ვხსნი i3s-ის საკონფიგურაციო ფაილს:
nvim ~/.i3/config - საკონფიგურაციო ფალში F5-ზე სკრიპტის მისაბმელად ვწერთ შემდეგ ხაზს:
bindsym F5 exec ~/toggle_touchpad.sh - ვინახავ ფაილს და გამოვდივარ.
i3-ᲘᲡ ᲙᲝᲜᲤᲘᲒᲣᲠᲐᲪᲘᲘᲡ ᲗᲐᲕᲘᲓᲐᲜ ᲬᲐᲙᲘᲗᲮᲕᲐ
i3-ის გადატვირთვა ხდება კომბინაციით Mod+Shift+R.
ახლა F5-ზე ერთხელ დაჭერით თაჩპედი ითიშება, შემდეგ დაჭერაზე კი ირთვება, რაც უკვე ძალიან მოსახერხებელია, რაც ამ პოსტის წერის დროსაც ვიგრძენი.
ახლა შეგვიძლია დავდეტალდეთ. სკრიპტში xinput - X-ებში შეყვანას უნდა ნიშნავდეს სახელიდან გამომდინარე და ვხედავთ, რომ მას შეძლია DEVICE_ID მოწყობილობა შეუძლია გათიშოს ან ჩართოს. სადან მოვიტანოთ ეს იდენთიფიკატორი?
xinput -l
ეს ბძანება გამოიტანს სიას, რომელსაც ხედავს xinput, შესაბამისად მართავს კიდეც
❯ xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ VEN_27C6:00 27C6:0D43 Mouse id=8 [slave pointer (2)]
⎜ ↳ PS/2 Generic Mouse id=15 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Video Bus id=6 [slave keyboard (3)]
↳ Power Button id=7 [slave keyboard (3)]
↳ Intel HID events id=10 [slave keyboard (3)]
↳ Intel HID 5 button array id=11 [slave keyboard (3)]
↳ Dell Privacy Driver id=12 [slave keyboard (3)]
↳ Dell WMI hotkeys id=13 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=14 [slave keyboard (3)]
∼ VEN_27C6:00 27C6:0D43 Touchpad id=9 [floating slave]
როგორც ვხედავთ, რიცხვი 9-იანი ავიღე აქედან Touchpad id=9, დანარჩენი ვფიქრობ, მარტივი გასაგებია
შეგიძლიათ ექსპერიმენტის ჩატარება სხვა მოწყობილობებზე, მე მაგალითად შევამჩნიე, რომ შეიძლება ჩართვის ღილაკით მანიპულირება, ჩემს ხელში არის ნოუთბუკები, რომლებსაც ეს ღილაკი საკმაოდ მოუხერხებლად აქვთ და ყოფილა შემხვევები, რომ სისტემა გამითიშია უნებლიედ
ᲜᲔᲑᲘᲡᲛᲘᲔᲠᲘ ᲙᲚᲐᲕᲘᲨᲘᲡ ᲒᲐᲛᲝᲧᲔᲜᲔᲑᲐ
ამ ახალ ნოუთბუკზე აღმოვაჩინე კლავიშა, რომელსაც ახატია კალკულიატორი, ასევე არის კლავიშა წარწერით CE, არცერთს ჩემს სისტემაში ფუნქცია არ აქვს, კლავიშები ციფრულ კლავიატურასთან არის განლაგებული და გონივრული ეჭვი მაქვს Windows-ში კალკულიატორის გამოსატანად არის განკუთვნილი. ახლა ვეცდები ეს „უწესივრობა“ აღმოვფხვრა.
პატარა მიმოხილვის შემდეგ აღმოჩნდა, რომ კალკულიატორიაან კლავიშას ჩემთანაც აქვს სტანტარტული სიმბოლური სახელი (XF86Calculator), ამიტომ ამოცანა ისევ გაიოლდა, საკმარისი გახდა .i3/config-ში დამემატებინა ხაზი:
bindsym XF86Calculator exec alacritty
ამ შემთხვევაში კლავიშაზე მივაბი ჩემი ძირითადი ტერმინალი, კალკულიატორის პროგრამა სისტემაში ფიზიკურად არ არის, და არც ვთვლი საჭიროდ მის დაყენებას.