您尚未登录。

#1 2022-07-22 08:12:46

ifnk
会员
注册时间: 2021-01-25
帖子: 93

如何 远程使用 i3wm

我安装了  xrdp tigervnc
sudo pacman -S xrdp

然后  i3wm 所在机器 退出 桌面环境 在 win10 下 使用  mstsc 远程 , 方式选择 xvnc 就能连上了

但是连上后alacritty 起不来了 ,别的terminal 能起来 ,报错如下

$ alacritty                         
thread 'main' panicked at 'Failed to initialize any backend! Wayland status: NoCompositorListening X11 status: XOpenDisplayFailed', /build/.cargo/registry/src/github.com-1ecc6299db9ec823/winit-0.26.1/src/platform_impl/linux/mod.rs:619:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

接着 我 发现 按键映射 xkeysnail  也不能用了

Traceback (most recent call last):                                                                                                             [8/4707]
  File "/usr/lib/python3.10/site-packages/Xlib/support/unix_connect.py", line 119, in get_socket                                                       
    s = _get_unix_socket(address)                                                                                                                     
  File "/usr/lib/python3.10/site-packages/Xlib/support/unix_connect.py", line 98, in _get_unix_socket                                                 
    s.connect(address)                                                                                                                                 
ConnectionRefusedError: [Errno 111] Connection refused                                                                                                 
                                                                                                                                                       
During handling of the above exception, another exception occurred:                                                                                   
                                                                                                                                                       
Traceback (most recent call last):
  File "/usr/lib/python3.10/site-packages/Xlib/support/unix_connect.py", line 123, in get_socket
    s = _get_tcp_socket(host, dno)
  File "/usr/lib/python3.10/site-packages/Xlib/support/unix_connect.py", line 93, in _get_tcp_socket
    s.connect((host, 6000 + dno))
ConnectionRefusedError: [Errno 111] Connection refused

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/bin/xkeysnail", line 6, in <module>
    cli_main()
  File "/usr/lib/python3.10/site-packages/xkeysnail/__init__.py", line 62, in cli_main
    eval_file(args.config)
  File "/usr/lib/python3.10/site-packages/xkeysnail/__init__.py", line 6, in eval_file
    exec(compile(file.read(), path, 'exec'), globals())
  File ".config.py", line 4, in <module>
    from xkeysnail.transform import *
  File "/usr/lib/python3.10/site-packages/xkeysnail/transform.py", line 16, in <module>
    def get_active_window_wm_class(display=Xlib.display.Display()):
  File "/usr/lib/python3.10/site-packages/Xlib/display.py", line 89, in __init__
    self.display = _BaseDisplay(display)
  File "/usr/lib/python3.10/site-packages/Xlib/display.py", line 71, in __init__
    protocol_display.Display.__init__(self, *args, **keys)
  File "/usr/lib/python3.10/site-packages/Xlib/protocol/display.py", line 89, in __init__
    self.socket = connect.get_socket(name, protocol, host, displayno)

  File "/usr/lib/python3.10/site-packages/Xlib/support/connect.py", line 87, in get_socket
    return mod.get_socket(dname, protocol, host, dno)
  File "/usr/lib/python3.10/site-packages/Xlib/support/unix_connect.py", line 127, in get_socket
    raise error.DisplayConnectionError(dname, str(val))
Xlib.error.DisplayConnectionError: Can't connect to display ":0": [Errno 111] Connection refused


这两个软件 对我很重要 ,经常要用, 有办法 解决么 ,还是说 xrdp 远程 限制如此 ?

离线

#2 2022-07-22 10:16:26

silkriver
会员
注册时间: 2020-07-24
帖子: 147

Re: 如何 远程使用 i3wm

我也是必须选择 Xvnc 才能远程,但刚装 Arch 时默认的 Xorg 明明可以啊,其他发行版用 Xorg 也从来没出问题啊,我觉得 Xorg 速度快点……

离线

#3 2022-07-22 15:04:45

ifnk
会员
注册时间: 2021-01-25
帖子: 93

Re: 如何 远程使用 i3wm

silkriver 说:

我也是必须选择 Xvnc 才能远程,但刚装 Arch 时默认的 Xorg 明明可以啊,其他发行版用 Xorg 也从来没出问题啊,我觉得 Xorg 速度快点……

我参考了这个 代码片段 ,现在能用 xorg 的方式 远程了 ,alacritty 也能打开了 ,但是 xkeysnail 不报错 ,但是 不能用


----------------------------------------------------------------------------------
Device Name Phys
----------------------------------------------------------------------------------
/dev/input/event0 Power Button LNXPWRBN/button/input0
/dev/input/event1 AT Translated Set 2 keyboard isa0060/serio0/input0
/dev/input/event2 VMware VMware Virtual USB Mouse usb-0000:02:00.0-1/input0
/dev/input/event3 VirtualPS/2 VMware VMMouse isa0060/serio1/input1
/dev/input/event4 VirtualPS/2 VMware VMMouse isa0060/serio1/input0
/dev/input/event5 py-evdev-uinput py-evdev-uinput

Okay, now enable remapping on the following device(s):

------------------------------------------------------------------------------
Device Name Phys
------------------------------------------------------------------------------
/dev/input/event1 AT Translated Set 2 keyboard isa0060/serio0/input0

就是我怎么 让 mstsc 的输入 也当成一个键盘 来供 xkeysnail 使用 呢 ?

离线

#4 2022-07-22 20:17:52

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,442
个人网站

Re: 如何 远程使用 i3wm

xkeysnail 这是用 uinput 接口了啊。原理是读取输入设备的数据,然后通过 uinput 设备喂进去。问题是,走 VNC 的话,输入事件是直接发给 VNC 服务端的,服务端并不会通过某个输入设备来获取输入。

离线

#5 2022-07-25 07:36:05

ifnk
会员
注册时间: 2021-01-25
帖子: 93

Re: 如何 远程使用 i3wm

依云 说:

xkeysnail 这是用 uinput 接口了啊。原理是读取输入设备的数据,然后通过 uinput 设备喂进去。问题是,走 VNC 的话,输入事件是直接发给 VNC 服务端的,服务端并不会通过某个输入设备来获取输入。


那有什么软件 是可以  捕获 xrdp 远程按键 的呢 ? 我试了下 用 https://github.com/rbreaves/kinto  , 他是基于 xkeysnail 的 ,但是我这里启动都启动不了

报  7月 23 10:39:13 ifnk systemd[1]: xkeysnail.service: Failed with result 'signal'.


7月 23 10:39:13 ifnk sudo[10119]: root : PWD=/ ; USER=root ; COMMAND=/bin/bash -c /usr/bin/sudo pkill -f bin/xkeysnail && exit 0
7月 23 10:39:13 ifnk sudo[10119]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=0)
7月 23 10:39:13 ifnk sudo[10121]: root : PWD=/ ; USER=root ; COMMAND=/usr/sbin/pkill -f bin/xkeysnail
7月 23 10:39:13 ifnk sudo[10121]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=0)
7月 23 10:39:13 ifnk sudo[10121]: pam_unix(sudo:session): session closed for user root
7月 23 10:39:13 ifnk sudo[10119]: pam_unix(sudo:session): session closed for user root
7月 23 10:39:13 ifnk systemd[1]: xkeysnail.service: Control process exited, code=killed, status=15/TERM
7月 23 10:39:13 ifnk sudo[9943]: pam_unix(sudo:session): session closed for user root
7月 23 10:39:13 ifnk systemd[1]: xkeysnail.service: Failed with result 'signal'.
7月 23 10:39:13 ifnk systemd[1]: Stopped xkeysnail.

离线

#6 2022-07-25 12:01:04

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,442
个人网站

Re: 如何 远程使用 i3wm

xbindkeys?

离线

页脚