asus-linux-drivers / asus-numberpad-driver

Maintained feature-rich linux driver for NumberPad(2.0) on Asus laptops. NumberPad(2.0) is illuminated numeric keypad integrated to touchpad which appears when is done tap on top right corner of touchpad for atleast 1s by default (configurable) or slide gesture from top right/left corner to the center, the left shows calc app aswell (configurable).
GNU General Public License v2.0
254 stars 17 forks source link

[Bug]: not working for UX582LR (KDE) #95

Closed mbrouillet closed 1 year ago

mbrouillet commented 1 year ago

Describe the bug

I installed it in my home (for now) and there is no apparent error during install. I chose the closest match UX581LR but I have a UX582LR. I hit the top line of the keypad (there is a printed numpad) and

Expected behavior

I believe when touching the right corner of the touchpad a numeric keypad would light up and I would be able to type in numbers. Wherever I tap, long-press, double-tap, triple-tap on the top of the keypad, nothing alike happens.

Relevant log output

According to the Troubleshooting section of the README.md:

marcel@ux582lr:~/asus-touchpad-numpad-driver$ sudo systemctl stop asus_touchpad_numpad.service
marcel@ux582lr:~/asus-touchpad-numpad-driver$ LOG=DEBUG sudo -E ./asus_touchpad.py "ux581l" ""
INFO:asus-touchpad-numpad-driver:Detecting keyboard from string: "N: Name="AT Translated Set 2 keyboard""
INFO:asus-touchpad-numpad-driver:Set keyboard 3 from H: Handlers=sysrq kbd event3 leds
INFO:asus-touchpad-numpad-driver:Detecting touchpad from string: "N: Name="ELAN9009:00 04F3:2C23 Touchpad""
INFO:asus-touchpad-numpad-driver:Set touchpad device id 4 from S: Sysfs=/devices/pci0000:00/0000:00:15.3/i2c_designware.3/i2c-4/i2c-ELAN9009:00/0018:04F3:2C23.0003/input/input48
INFO:asus-touchpad-numpad-driver:Set touchpad id 27 from H: Handlers=mouse4 event27
INFO:asus-touchpad-numpad-driver:Touchpad min-max: x 0-3984, y 0-1152
INFO:asus-touchpad-numpad-driver:Numpad min-max: x 80-3904, y 200-1072
DEBUG:asus-touchpad-numpad-driver:Writting to config file: "<_io.TextIOWrapper name='asus_touchpad_numpad_dev' mode='w' encoding='UTF-8'>"

[nothing else, program keeps running, no additional line whatever I do on the touchpad]

Desktop

ldrahnik commented 1 year ago

@mbrouillet I extended the list of possible levels of brightness which works for me (commit https://github.com/asus-linux-drivers/asus-touchpad-numpad-driver/issues/95 Default brightness extended about 2 values (tested only on UP5401EA)). Found with the script (brute forcing entire register, max value in hex is 0xFF = 255:

test_brightness.py

...
for i in range(2, 255):
    value = str(hex(i))
    valueLowestBrightness = "0x46"
    cmdOn = "i2ctransfer -f -y " + device_id + " w13@0x15 0x05 0x00 0x3d 0x03 0x06 0x00 0x07 0x00 0x0d 0x14 0x03 " + "0x01" + " 0xad"
    print("0x01")
    os.system(cmdOn)
    sleep(1)
    cmdLowestBrightness = "i2ctransfer -f -y " + device_id + " w13@0x15 0x05 0x00 0x3d 0x03 0x06 0x00 0x07 0x00 0x0d 0x14 0x03 " + "0x46" + " 0xad"
    print(valueLowestBrightness)
    os.system(cmdLowestBrightness)
    sleep(1)
    print(value)
    cmdNewValue = "i2ctransfer -f -y " + device_id + " w13@0x15 0x05 0x00 0x3d 0x03 0x06 0x00 0x07 0x00 0x0d 0x14 0x03 " + value + " 0xad"
    os.system(cmdNewValue)
    sleep(1)

cmdoff = "i2ctransfer -f -y " + device_id + " w13@0x15 0x05 0x00 0x3d 0x03 0x06 0x00 0x07 0x00 0x0d 0x14 0x03 0x00 0xad"
os.system(cmdoff)
ldrahnik commented 1 year ago

@mbrouillet

To set a hotkey you need dconf-tool . Navigate to /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/ . Conveniently you can't add new subfolders from dconf-editor interface, go to Settings -> Keyboard Shortcuts , scroll down to Custom Shortcuts and add a new one. custom0 subfolder should appear in dconf-tool 's interface. Set the command above as command and Alt_L or Alt_R as binding.

*(https://copyprogramming.com/howto/ubuntu-20-04-custom-hotkeys-to-change-keyboard-layout?utm_content=cmp-true)

Is not a problem you do not have any keybinding added yet? Try to set up any and then find them in dconf.

mbrouillet commented 1 year ago

@mbrouillet

In the branch #98 should "%" in FR Bépo keyboard layout works. In the code still remain 1 TODO for test it on wayland (not pushed to master yet). Can you test that branch please and confirm it works for you? I installed your keyboard layout and it works for me.

I cloned master and % does not work (remains Ctrl-V). You say « test that branch » but I only see the branch master.

ldrahnik commented 1 year ago

@mbrouillet

That is the reason why I crossed out what is not current anymore.

Looks like Ctrl+V is a problem inside your system, personal shortcut for example because I do not have that problem, the latest master branch works for me, with your layout installed, switching between them (US, CZE, FR) works for me, character % is always printed.

ldrahnik commented 1 year ago

@mbrouillet

Please try to reinstall now, the latest master did not stop and remove the service of the previous driver. Doubled service could do something, like CTRL-V remaining unexpected too.

mbrouillet commented 1 year ago

Hello. Sorry, I've been away for a few days but I don't let this topic down. There are several issues in this thread, and I'm a little lost.

  1. fresh install from master (removed directory, cloned, install, not keeping current settings file) : 1.a I feel that the touchpad did not launch until I did the brightness test. After brightness test, I could activate normally. 1.b with my layout in US, % key yields 25 25 systematically 1.c with my layout in Fr-Bepo, % key yields nothing, but I can see the cursor blinking differently (an input is probably entered, but immediately disappears, or Unicode code does not get recognized) 1.d I think having installed Ibus (a little further above) may not have been the best idea. I have now two keyboard (or input methods) in my task manager bar. The blue one is Ibus and only has English - English US when I left-click on it. The bigger one is KDE native's and has French (BEPO) and English (US) when I right-click on it. The iBus one seems to have no effect. It remains on EN when I toggle the KDE one (which is effective). image 1.e I noticed there is a Quit for Ibus when I right-click on it. Testing the touchpad in BEPO after killing Ibus nealry works, but the % is double : %%. This is systematic, unlike the next point, but may be related ?

  2. double input 2.a Now that I've been using it for a week, I do have very often double entry on the touchpad. It is very annoying. Is there any way to reduce double input ? I can barely enter any 5 or 6 digit number without a double digit (like an unwanted double tap, however careful I am). 2.b When this double entry happens for the % key (in BÉPO, having killed Ibus), I end up with four % symbols. 2.c I remember there is a setting key_repetitions in config file, but since I answered « do not keep existing config » during install, I presume the config file has been removed. I couldn't recall the location of the config file. During some installs it say where to further configure, but not in mine (maybe in the case where it removes the file ?). I did not have that edit line in my history, and didn't find the location of the config file in the README.md. Maybe an idea to remind it's location there. But anyway, the default is key_repetitions off.

  3. testing branch #98. I understand now what you are talking about. I installed gh, I went into the project directory, I logged in to GH via browser, I entered the following, with the following error:

    marcel@ux582lr:~/asus-touchpad-numpad-driver$ gh pr checkout 98
    fatal: couldn't find remote ref refs/heads/sends-unicode-string-and-chars-dynamically-found
    exit status 128
    marcel@ux582lr:~/asus-touchpad-numpad-driver$

    But maybe this is no longer necessary. I think you merged to main, as you've crossed it out. Let me know if you still want me to test.

  4. brightness test. 4.a I understand that 65=0x41. What puzzeled me was that your brightness test tests values (decimal) 1, 11, 81, 131, 161, 181, 231, 241, 21, 41, 51, 61, 71, 91, 101, 111, 121, 141, 151, 171, 201, 31, of which none is in the 0x41 ~ 0x46 (or 65 ~ 69 decimal) range. 4.b What I did above was sorting these values so that the brightness went increasing. But, I realize that whether some values work but set the same brightness level as the previous value, or whether the value has no effect, I can't necessarilly tell. I just see that the brightness stays the same. Unless it gets switched off each time. 4.c I tried setting some of the values that made significant brightness change in the config array, replacing the 0x41 ~ 0x46, and that went all wrong. Hence I asked what is the relationship. This all just to explain my question :-). Anyway… 4.d I see you have a longer and more systematic loop on branch master. The brightness goes up and down rather erratically again, just like the initial test. Let me know what you want me to tell you. Recording with my phone does not work, because it adjusts for brightness changes. I don't know how to set the exposure to fixed.

5 Programing a hotkey using dconf. I did not have time to dig into this yet. I'll try your comments below, but remember I am running Ubuntu Studio, which is basically a Kubuntu and KDE may do things differently, I'm not sure.

To set a hotkey you need dconf-tool . Navigate to /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/ . Conveniently you can't add new subfolders from dconf-editor interface, go to Settings -> Keyboard Shortcuts , scroll down to Custom Shortcuts and add a new one. custom0 subfolder should appear in dconf-tool 's interface. Set the command above as command and Alt_L or Alt_R as binding.

6 Appending my Audio config to asus random useful notes repository I am actually still trying to get the headset mic to work. I spent a few hours rebooting tonight. Once it is neat, I'll get back to explaining how I got it all to work. I believe your instruction above should be sufficient, and I'll read the man gh. I should have explored this already a long time ago.

I believe I've covered all the topics. Stay tuned, I'll post once I have time to test more.

ldrahnik commented 1 year ago

fresh install from master (removed directory, cloned, install, not keeping current settings file) :

Try the latest master and reinstall because otherwise, you will have a running service from the previous implementation, so in summary 2 services will be running, and that does a doubling of keys.

EDIT: added even stoping and disabling service if exist from previous implementation as it should be

ldrahnik commented 1 year ago

What puzzeled me was that your brightness test tests values (decimal)

Me too. Was coded by the previous maintainer and I changed that test python file to brute forcing entire registr (2 - 255 in decimal). Some keys, for me 130 decimal I think and some others have result disabling NumberPad brightness until will be send that value again I think. Can not be then enabled brightness. I do not know what is intended purpose of these values. Maybe during day light do not waste brightness enabled. But grid is not visible and I do not see what I am typing. Anyway in my case when I brute forced my device:

backlight_levels = [
    "0x41",
    "0x42",
    "0x43",
    "0x44",
    "0x45",
    "0x46",
    "0x47",
    "0x48"
    # 0x49 set up brightness too but has probably the same brightness as 0x48
    # 0x4a set up brightness too but has probably the same brightness as 0x48
    # maybe more like 3 change brightness but the same level as have 0x48
    # and others do not change the brightness for me except disabling brightness as all as I decribed above
]
ldrahnik commented 1 year ago

@mbrouillet Could you please try the character "%" in the latest master?

ldrahnik commented 1 year ago

@mbrouillet ping

ldrahnik commented 1 year ago

@mbrouillet Can be reopened.