LINUX.ORG.RU

В новом KRDC нестабильно работает клавиатура

 , ,


0

1

Gentoo. Обновился до kde-apps/krdc-24.08.1-r1, теперь Alt-Tab и Shift-Ins работают не на всех удалённых машинах. Иногда Alt-Tab перебирает окна исключительно в моей системе. Иногда клавиатура вообще не работает. Иногда клавиатура работает, но не работает Paste из контекстного меню. Удалённые ОС — Windows 10 и Server 2022.

Закрытие вкладки с сеансом и повторный иногда помогают на какое-то время.

Куда копать?

P.S. Теперь вообще стал падать с ошибкой сегментирования:

$ krdc 
KRDC: Starting RDP session
[07:28:50:865] [23707:23707] [WARN][com.freerdp.crypto] - Certificate verification failure 'self-signed certificate (18)' at stack position 0
[07:28:50:865] [23707:23707] [WARN][com.freerdp.crypto] - CN = xxx.xxx.xxx.xxx
[07:28:51:068] [23707:23707] [ERROR][com.winpr.timezone] - Unable to get current timezone rule
[07:28:51:369] [23707:23707] [INFO][com.freerdp.gdi] - Local framebuffer format  PIXEL_FORMAT_RGBX32
[07:28:51:369] [23707:23707] [INFO][com.freerdp.gdi] - Remote framebuffer format PIXEL_FORMAT_BGRA32
[07:28:51:379] [23707:23707] [INFO][com.freerdp.channels.rdpsnd.client] - [static] Loaded pulse backend for rdpsnd
[07:28:51:383] [23707:23707] [INFO][com.freerdp.channels.drdynvc.client] - Loading Dynamic Virtual Channel rdpsnd
[07:28:51:383] [23707:23707] [INFO][com.freerdp.channels.drdynvc.client] - Loading Dynamic Virtual Channel audin
[07:28:51:389] [23707:23707] [INFO][com.freerdp.channels.audin.client] - Loaded pulse backend for audin
[07:28:51:389] [23707:23707] [INFO][com.freerdp.channels.drdynvc.client] - Loading Dynamic Virtual Channel rdpgfx
Ошибка сегментирования

xxx.xxx.xxx.xxx — имя машины, с которой работал перед закрытием.

★★★★★

Последнее исправление: question4 (всего исправлений: 2)

Насколько я понимаю, KRDC не умеет в последние версии freerdp, нужно использовать его с протухшими релизами.
Баг с клавиатурой можно обойти если переключить состояние кнопки «Перехватывать клавиши». При этом не важно, включена она или выключена, главное переключить ее.

Khnazile ★★★★★
()
Ответ на: комментарий от Khnazile

Насколько я понимаю, KRDC не умеет в последние версии freerdp, нужно использовать его с протухшими релизами.

А что ещё есть из RDP-клиентов, понимающих KWallet?

Баг с клавиатурой можно обойти если переключить состояние кнопки «Перехватывать клавиши». При этом не важно, включена она или выключена, главное переключить ее.

Спасибо, попробую.

question4 ★★★★★
() автор топика

Откатись на версию, которая работает нормально, и жди фикса - раз в месяц-полгода ставь новую версию куда-то чтоб не портить основную систему и смотри не заработало ли. Через несколько лет наверно станет работать нормально, а так никакого вреда от старой версии думаю нет.

firkax ★★★★★
()
Ответ на: комментарий от question4

Как это нету?

Обновился до kde-apps/krdc-24.08.1-r1

Вот перед этим действием какая стояла, она испарилась безвозвратно?

Или в gentoo нет штатной возможности ставить что-то кроме последнего состояния репы?

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от firkax

Или в gentoo нет штатной возможности ставить что-то кроме последнего состояния репы?

Да, нету, если мэйнтэйнер удалил предыдущие ебилды. Надо доставать их из гита, городить свой оверлей, выяснять что с чем совместимо, что с чем собирается…

question4 ★★★★★
() автор топика

Попробовал голый новый xfreerdp, и динамическая смена разрешения мне показалась гораздо удобнее. Поэтому слепил несложный скрипт за несколько минут, и буду пока им пользоваться:

#!/usr/bin/python3
import os, hashlib

params = {
    '1':  { 'addr': 'xxxxxxxxxxxxxxx',  'user': 'xxxxxx',   'pw': 'xxxxxxxx',  'start': False,  'comment':'xxxxxxx'},
    ...
}

def xoring(text, key):
    return ''.join( chr(ord(e) ^ key[n % len(key)]) for n, e in enumerate(text) )

mp = input('Master password: ')
key = hashlib.md5(mp.encode()).digest()
code = 0
while code != '':
    print('What to start:')
    for line, data in params.items():
        print(f"{'+' if data['start'] else '-'}\t{line}:\t{(data['user'] + '@' + data['addr']):40}\t{data['comment']}")
    code = input('What to switch? (Enter to continue) ')
    if code in params:
            params[code]['start'] = not params[code]['start']
for line, data in params.items():
    if data['start']:
        os.system(f'''xfreerdp /v:{data['addr']} /u:{data['user']} /p:{xoring(data['pw'], key)} /dynamic-resolution &''')
question4 ★★★★★
() автор топика