ᲐᲕᲗᲐᲜᲓᲘᲚ ᲤᲐᲜᲒᲐᲜᲘ

კომპიუტერული მეცნიერებების მასწავლებელი, ტრენერი

KeyCode

August 19, 2025

ᲙᲚᲐᲕᲘᲐᲢᲣᲠᲘᲡ ᲙᲝᲓᲔᲑᲘ

კლავიშაზე დაჭერა კომპიუტერს უგზავნის უნიკალურ კოდს, რომლითაც პროცესორი აკეთებს გარჩევას, რა უნდა მოიმოქმედოს. რადგან კლავიატურაზე უმეტესად სიმბოლოებია, ამიტომ უმეტესად ხდება ეკრანზე გამოსატანი სიმბოლოების მისადაგება. გარდა სიმბოლოებისა, კლავიატურაზე მრავალი სხვა ფუნქციონალობის კლავშია, ერთ ჯგუფს ასეთც ქვია: ფუნქციონალური კლავიშები. კლავიატურის კოდის ანალიზის შედეგია, რომ საეთო ჯამში 100 კლავიშა გაცილებით მეტი რიცხვის კომბინაციებს ითვლის, მაგალითისთვის, კომპიუტერში შეგვიძლია მივუთითოთ 10 სხვადასხვა ენის სიმბოლოების ბეჭვდის შესაძლებლობა, ამას ემატება კიდევ კლავიშების კომბინაციები და ა. შ.

რაში დამჭირდა მე ეს თემა: ჩემი სამუშაო გარემო ძირითადად მოწყობილი მაქვს ისე, რომ მჭირდება მხოლოდ კლავიატურა და ნაკლებად თაგვი, ასევე თაჩპედი. ნოუთბუკზე მუშაობისას კი, სახელდობრ თაჩიპედი ძალიან მიშლის ხელს. არის ნოუთბუკები, რომლებსაც ქარხნიდავე აქვს ტაჩპედის გათიშვის ფუნქცია და გამოსახულიცაა ფუნქციონალური კლავიშებზე დამატებულ ჯგუფში. ჩემს ნოუთბუკს ეს არ აღმოაჩნდა, ამიტომ ვიფიქრე, ეს პროგრამულად გამეკეთებინა.

ჩემს შემთხვევაში ამოცანა შედარებით გამარტივდა, იმიტომ, რომ ჩემს სისტემაში F5-ს ფუნქცია არ აღმოაჩნდა. პირველი დავწერე პატარა სკრიპტი.

ᲢᲐᲩᲞᲔᲓᲘᲡ ᲒᲐᲓᲐᲡᲐᲠᲗᲕᲔᲚᲘ ᲡᲙᲠᲘᲞᲢᲘ

  1. გავხსენი ტერმინალი.
  2. ვქმნი ახალ ფაილს, მაგალითისთვის toggle_touchpad.sh:
    nvim ~/toggle_touchpad.sh
    
  3. შემაქვს შემდეგი კოდი:
    #!/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
    
  4. ვინახავ ფაილს და გამოვდივართ (esc :wq).
  5. ვცვლი ფაილის ტიპს და ვაქცევ მას პროგრამად:
    chmod +x ~/toggle_touchpad.sh
    

i3-Ს ᲙᲝᲜᲤᲘᲒᲣᲠᲔᲠᲔᲑᲐ F5-ᲘᲡ ᲒᲐᲛᲝᲡᲐᲧᲔᲜᲔᲑᲚᲐᲓ

  1. ვხსნი i3s-ის საკონფიგურაციო ფაილს:
    nvim ~/.i3/config
    
  2. საკონფიგურაციო ფალში F5-ზე სკრიპტის მისაბმელად ვწერთ შემდეგ ხაზს:
    bindsym F5 exec ~/toggle_touchpad.sh
    
  3. ვინახავ ფაილს და გამოვდივარ.

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

ამ შემთხვევაში კლავიშაზე მივაბი ჩემი ძირითადი ტერმინალი, კალკულიატორის პროგრამა სისტემაში ფიზიკურად არ არის, და არც ვთვლი საჭიროდ მის დაყენებას.