VF2偏爱wayland,所以sway桌面环境运行是流畅的,从名字上就能看出它是wayland系。猜测从2023年3月的VF2工程版开始,sway就躺在程序库里等人发现。sway和wayfire、gnome一样,在VF2能支持本地视频和流媒体硬解码。如果说wayfire是极酷,那么sway就是极致极简,比openbox(x11)还简,open box至少还有程序菜单;sway比命令控制台强,它有10个工作区及窗口分屏,能运行图形化程序。附安装调试后并远程后的截图5张,第一次测试时glmark2没用对,第二次测试用glmark2-es2-wayland,流畅,而且主控机和VF2同时并排观察,目测远程和VF2上的画面是同步的,没有延迟。
你的VF2上是用的哪个VNC Server呀
其实在VF2上可以用很多远程桌面共享都能流畅实现(我另有文章说了,已经提交给官方审核),但在Sway里,用sway配套的才能丝滑,wayvnc -g xxx.xxx.xxx.xxx 5900,我不确认wayvnc在别的桌面系统是否也能丝滑,也不确认其他的远程桌面共享server在sway工作正常。
VF2上的Sway在使用中,感觉退出重启关机不太方便,我改了一下配置文件。
1、sudo apt install wlogout
2、mkdir -p ~/.config/sway
3、cp /etc/sway/config ~/.config/sway/
4、修改~/.config/sway/config
注释或删掉:bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do ******************************
替换成:bindsym $mod+Shift+e exec wlogout
5、存盘后,按super+shift+c,重新载入配置并生效
6、按Sway默认退出键 super+shift+e,不再是右上退出询问,而且有弹窗。附图。确认弹窗上的退出、重启、关机3个按键在VF2上是生效的。当然,如果嫌弃弹窗太慢,直接命令行shutdown也是可以的
吐槽一下 VF2 跑“丝滑”桌面环境的想法。
其实理由很简单 VF2 定位还不是桌面应用方向。这种价格的硬件,很多其实都是专用图形界面的嵌入式应用需求。图形界面的定位都是专用方向的。
所以,现在很多 DE 运行起来很不顺。主要原因定位是全能型桌面,后面跑的服务和各种图形前端设计,都还是依然吃 VF2 的硬件,导致运行效率显著下降。 x86 现在性能上能保证这种全功能 DE 环境的硬件需求。
所以 VF2 应用方向来说。我觉得还是考虑去专门研究一下 X/wayland 直接跑某个应用的思路。或者,去运行某个单一图形界面程序,比如某些 HDTV 的界面环境。
当然,我觉得 VF2 可能还有一个很好的应用方向,就是 X/wayland 下面直接跑一个全屏幕没有窗口装饰的 webkit 核心定制的浏览器(作弊可以用 chromium 跑全屏幕状态,我记得有个参数)。这个 webkit 直接调用某个网站作为他的“云桌面”。只要网站不复杂,流畅度应该足够弄一个“云办公”一类的应用。
以前我用 armv6 的设备跑过 DE 。
你说树莓派什么的,性能已经比那个旧设备性能好很多了。
所以不要说什么给我科普。
毕竟更早的 386 那性能,早就被现在的各种硬件碾压了。
不过说到 386 ,日常使用字符界面就行了,你何必折腾 sway 呢?
更何况,sharp 的 zaurus 已经相当完美。
但是。今天是今天,日常使用可并不一定就是日常使用。
你的日常使用,如果仅仅是显示个图片。那其实反而是 VF2 的一个应用方向:智能广告显示器。
但是如果,桌面是 4k 视频播放的同时,还要满弹幕输出。而这个 4k 视频仅仅是在虚拟机跑后台运行等待结果的时候的打发时间。这其实也是日常使用。
当然,我见过的更多的日常使用,是开几十个 excel/word 文档,还要跑个数据库服务器程序给财务软件作为后端,而这个财务软件还要开 N 个模块找数。同时 QQ/微信全开着还要浏览器找资料的普通工作。
不要把自己的腿打断,之后说别人跑步是多余,认为轮椅才是日常生活。
1、没错,这是个技术贴,但是我只是针对这个技术错误应用方向提出自己的分享。如果你不需要,你也没必要回复。因为我这个话,是给看了你的文章,认为“这就是桌面应用”的人写的。
2、你的观点其实是另一个故事:珍妮纺织机。计算机的性能为什么总是在增长,386 时代的 40Mhz 左右,到 486 时代的 80Mhz ,再到今天过 Ghz 是基本配置?即便现在硬件性能早就遇到了瓶颈,计算机产业也通过更多的核心,扩展新的指令,以及异构方法,提供更高的算力?而作为算力需求顶峰的 ChatGPT 又为什么能出现?这一切,都是时代的进步,技术的进步,以及因为时代和技术的进步带来的应用进步。
3、我说的也是技术贴。技术应用最核心的一点就是要选对“配件”。一个共享自行车的车锁控制器,不可能上面装个几千大圆的 i9 ;一个手机,上面的 CPU 不可能放个 250 瓦的“电热器”;一个用来日常应用的桌面计算机,也不可能去用智能门锁的控制器来实现。
我该说的,你看不看到不重要,回不回不重要。
因为这些内容本来就不是对你说的,如果我说的不对,管理员早就删帖了。
附加的:
而你的这些东西,其实有个地方挺有用的,就是告诉别人,可以用 VNC 链接 VF2。
这样使用 VF2 作为控制器的设备,可以放心的装一个图形界面里面跑个图形的设置程序。之后让客户,既可以在本地显示器直接操作,也可以远程 VNC 访问操作设置程序。
这样的设计,可以很低成本(技术实现难度的成本也是成本的一种)的就实现了用户和技术支持人员的操作入门知识要求。
这也是为什么 VF2 是 riscv 产业体系一个重大产品的原因。
关于vf2上sway的terminal终端选择设置。之前说了,sway没有程序菜单的,terminal终端是启动应用程序两个方法之一,使用率会比较高。按网上攻略建议快速启动terminal终端是用sway原配的foot,foot启动很快,但使用中感觉好像不支持复制粘贴(不打算深入研究它),所以决定替换掉foot,terminal终端很多常用可选的:gnome-terminal、lxterminal、xfce4-terminal、konsole等
1、启动进入sway后,按super+enter键(默认),打开foot终端:
sudo apt install lxterminal xfce4-terminal konsole
这是同时安装3个终端,可以只装其中之一的;gnome-terminal在VF2-2311工程版里自带了。
2、复制sway配置文件用于修改,方法之前说过。在配置文件里找到 set $term foot ,注释掉或删除或用喜欢的终端名替代foot4个字。上列4个常用终端里lxterminal启动速度快、konsole功能最多。我的sway配置文件里是set $term lxterminal
3、修改完设置,存档,按super+shift+q键(默认),关闭foot窗口退出
4、按super+shift+c键(默认)重新载入sway配置并运行
5、按super+enter键快速启动设置好的喜欢的terminal终端
补备注:修改默认快速启动terminal终端的方法,同样适用于wayfire,wayfire快速启动terminal终端的默认键也是super+enter,能确认那3个可选终端在wayfire是能用的(除了gnome-terminal),也许启动速度不如sway。需要注意的事:wayfire配置文件与sway是不一样的,请参考相关攻略;wayfire默认的终端比foot还差,所以最初不要进wayfir改配置。
关于vf2上sway的工作区及分屏窗口操作。sway是平铺式窗口管理器,是i3(x11)平铺式窗口管理器在wayland的延伸,是极简、非酷、轻量化需求的选择。它不是主流热门堆叠式窗口管理器,所以可能不会是大多数人的选择。vf2对x11不太友好,I3不适合。
1、进入sway,默认创建第一个工作区,在左上角任务栏会有个1的标志,按下super+enter,打开第一个终端,默认这个程序窗口会占满第一个工作区屏幕,这就是平铺式窗口管理器的特点。
2、按下super+2, 创建第二个工作区并切换到,左上角任务栏会增加个2的标志,屏幕显示2区的墙纸,这时,按super+1或super+2,就是在1区和2区之间切换(用鼠标左键点击任务栏1或2也可以工作区切换)。
3、按下super+2切换到2区,按下super+enter,打开二区的第一个终端窗口,它也是占满全屏幕的。,如果在2区按super+shift+q,关闭终端窗口显示桌面墙纸,切换回1区,2区会因为没有窗口自动消除。
4、重复以上创建工作区及区内窗口,可以一直到super+0, 共10个工作区。
5、切到1区,假设唯一并已打开终端窗口,在终端启动一个程序,假设是firefox, 这时,1区会全屏左右并排两个窗口,左边终端右边火狐浏览器,用鼠标拖动某窗口顶端并移动,可以调整这两个窗口在工作区成上下排列(调整排列用键盘也可以实现的,组合键网上搜吧)。sway里启动程序并非只有终端,还可以有Application Launcher应用程序启动器(不占用终端),默认按键super+shift+d,但默认的没配置过的启动器可能不好用,配置改天再说。
6、继续1区操作,继续按下super+enter,打开第二个终端,继续可以用鼠标调整这3个窗口排列,继续打开第4个窗口。。。。。只要屏幕分辨率够大。关闭窗口,还是选择某窗后按键super+shift+q。
7、如果想把某窗口移动到别的工作区,选择窗口后按键super+shift+x(x是1-0 十个数字),就可以移动到其他区,即使目标区没有也会创建。
8、sway的工作区、窗口操作可以不需要鼠标全部使用键盘的,默认快捷键表单,网搜或打开sway配置文件看吧。
关于VF2上sway的程序启动器、汉字输入、sway全家桶式安装命令
sway程序启动器的默认按键是super+d(这是正确的,上篇我误写成super+shift+d),sway默认程序启动器是在任务栏上以文字的方式出现,不是太方便使用,建议修改配置
1、启动进入sway后,按super+enter键打开终端:
sudo apt install wofi
2、复制sway配置文件用于修改,方法之前说过。在配置文件里找到:
set $menu dmenu_path | dmenu | xargs swaymsg exec –
注释或删掉,随后添加:
set $menu wofi --show drun | xargs swaymsg exec –
3、修改完设置,存档,按super+shift+q键关闭终端窗口退出
4、按super+shift+c键重新载入sway配置并运行
5、super+d启动程序启动器wofi, 弹窗出现,可以搜索或选择应用程序。附图
6、程序启动器除了wofi还有rofi,rofi是i3wm(x11)配套的,我在X64和ARM64上测试过,rofi和wofi功能是一样的,但vf2对i3wm不是很友好。所以我用wofi,有兴趣的可以试试rofi。
汉字输入法我是按网上攻略:
1、sudo apt install fcitx5 fcitx5 fcitx5-chinese-addons fcitx5-frontend-gtk2
2、在sway配置文件最后添加 exec_always fcitx5 -d --replace ,
3、存盘后,按super+shift+c键重新载入sway配置并运行,在任务栏最后会出现键盘图标,鼠标右键点击键盘图标,就可以配置汉字输入法,附图。
4、目前是可以汉字输入,但备选字窗口不会出现,我没深入去研究解决这个问题,因为sway在vf2工程版上是要依附gnome的,sway能解决简单汉字输入就够了,大量汉字输入切回gnome就行了。
sway全家桶式安装命令,在gnome环境的终端里输入安装就行了,好像在gnome环境的终端里有一定几率是启动不了sway的,到登陆菜单进入sway就行:
sudo apt install sway foot-themes dwm stterm surf swayidle swaylock xdg-desktop-portal-wlr apparmor mesa-utils apparmor-profiles-extra apparmor-utils wofi wlogout wayvnc fcitx5 fcitx5 fcitx5-chinese-addons fcitx5-frontend-gtk2 waybar fonts-font-awesome
关于VF2上sway的任务栏设置,包括sway默认的,目前我找到3个可选择:
1、系统默认的sway-bar,打开sway配置文件,查找 position top ,这个语句是指定任务栏在屏幕上端,如果想在下端可以用bottom替换top.
position top下几行,tatus_command while date +‘%Y-%m-%d %I:%M:%S %p’; do sleep 1; done, 这时sway-bar的设置,日期和时间,比较简单。如果用其它任务栏,需要把tatus_command这行注释掉,包括随后定义任务栏颜色的 colors { 开始的5行语句也注释掉。
注意:即使注释掉删掉tatus_command这行语句,sway还是会有一行信息栏出现,网上给出的解决办法是在sway配置文件最后加上一行语句:
font pango: monospace 0
这是通过修改字号来让信息栏变得极小,字号是可以自定义,网上是0.001,我最后用0或1,因为字号小了窗口的顶栏也变小甚至会目测不到,用鼠标就不能在窗口分屏时调整窗口位置(只能用键盘)。
2、任务栏的第2个选择是用i3wm任务栏,之前说了,sway是i3在wayland上的延续,所以i3的部分配置和配件是可以在sway上直接使用的。i3的任务栏显示信息比sway默认的多,至少有CPU RAM等等,我在VF2上的SWAY里调试成功过i3任务栏,因为它没第3种选择漂亮,所以我就不写方法,有兴趣的可以试试。
3、第3种选择是用waybar做任务栏:
sudo apt install waybar fonts-font-awesome
在sway配置文件注释完sway-bar默认语句,下一行增加
status_command waybar
存档退出,按super+shift+c键重新载入sway配置并运行,waybar启动。waybar的样子在以上的大部分截图里都有,颜色很丰富,音量显示部位可以用鼠标滚轮调整大小,有CPU、RAM、温度等等,只差GPU。
waybar需要ota-font-awesome字体来显示一些特殊符号,debian库里是没有这种字体的,网上攻略是用fonts-fork-awesome,但debian建议是用fonts-font-awesome,我测试过即使安装了两种字体,也是不能完全显示特殊符号,有兴趣的可以修改那些不能显示的。
4、网上几个调试waybar的攻略到此就结束里,waybar也是正常运行,但我后来在调试中发现个隐患,waybar支持mpd,运行waybar后它会间隔不断有mpd报警提示,在sway的终端里手动运行waybar就可以看见那些警示。我通过修改waybar配置消除了警示,另,VF2是没有电池的,所以我把电池语句也删除。
mkdir -p ~/.config/waybar
cp /etc/xdg/waybar/config ~/.config/waybar
修改~/.config/waybar/config:
找到"modules-right": [“mpd”, 开始的语句(默认第十行),删除 “mpd”, “battery”, “battery#bat2”, 这3个字段
找到 “mpd”: { 开始的,到 },结束的,删除共26行语句。
找到 “battery”: { 开始的,到 },结束的,删除共17行语句。
存盘退出,按super+shift+c键重新载入sway配置并运行。
我的VF2-SWAY配置暂时到此就结束了,虽然还有很多配置没写,但我用不上就不去研究:
1、Sway能自动识别大多数标准显示设备,只有想自定义分辨率的、多显示器的、及我非标的1360*768才需要去设置, sudo install wlr-randr wdisplays ,修改配置文件。
2、墙纸,我个人认为平铺窗口管理,大多数时候是看不到墙纸的,基本都被窗口占用,就没必要去弄墙纸了,原配的sway树也挺好.
3、显示器熄灭、屏保 swayidle swaylock
4、截图 grim
5、录屏 wf-recorder
6、Autostart
vf2-sway汉字输入法无备选字栏解决办法,我结合网上攻略及fcitx官网中gnome的wiki。
1、sudo apt install fcitx5 fcitx5 fcitx5-chinese-addons fcitx5-frontend-gtk2
2、在sway配置文件最后添加 exec_always fcitx5 -d --replace ,存档
3、编辑 /etc/environment ,添加:
XIM=fcitx
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XIM_PROGRAM=fcitx
XMODIFIERS=@im=fcitx
存档后重启vf2 ,进入sway后就可以有备选栏的汉字输入。附图
所以这个 sway 还不如启动个 lxqt ……
好吧我也不知道 lxqt 的 wayland 支持情况如何了。
用 VF2 开发的人,跑 wayland 的话不如直接去研究 wlroots 来的实际。基于 wlroots 弄一个合成器跑自己的应用就行了。反正贴主的 sway 也是基于这个做的。
不过本文其实有个重大的错误:sway 根本不是桌面环境,人家官网都说了自己是 compositor 。
桌面环境是 Desktop Environment ,要求是有全套的东西,不光是合成器,还要有附加的东西,比如桌面图标的支持,应用列表的支持,系统托盘和应用切换界面的支持,还需要有基本的应用程序,比如文件管理器,文本编辑器,终端模拟器。
所以这个帖子的作者里面也都写了“依赖 gnome ”的内容。
而他说的那些本地视频和什么硬解码,也全都不是 sway 的功能,全都是应用程序自己的功能。甚至于视频硬解码,还可以是解码器库的功能,连应用程序自己都可以不写解码功能,调用解码器库去做就完事。
PS:文章里面的复制粘贴问题,这原则上是 DE 提供的功能,不是合成器和窗口管理器的事情。所以支持出问题很正常。
关于VF2上进入Sway自动运行wayvnc的设置:
1、修改~/.config/sway/config
2、在配置文件最后添加
exec_always wayvnc -g xxx.xxx.xxx.xxx 5900
3、存盘后,按super+shift+c,重新载入配置并生效;或重启VF2。
4、注意,wayvnc必须是登陆进入sway后才运行。
不要问我为啥这样配置,我也不知道,我瞎试成功的。网上好几篇文章给的配置(其他架构)是这样,Start wayvnc inside sway: swaymsg --socket /tmp/sway-ipc.*.sock exec ‘WAYLAND_DISPLAY=wayland-1 wayvnc -C ~/.config/wayvnc/config 0.0.0.0’
网上这个配置我试了几天都没成功过,然后就自己瞎搞了。最后,我粘贴网上文章原话:wayvnc 是 wlroots-based Wayland compositors 的VNC server,通过附加到一个运行的Wayland会话,创建虚拟输入设备,以及通过RFB协议输出一个单一显示,来实现VNC。不过, wayvnc 不支持 Gnome 和 KDE 。
请问这个是hdmi输出还是只有VNC, 并且这个有没有GPU硬件加速?
你好,这是HDMI和VNC同时输出的截图,我确认HDMI单独也是一样的效果,截图上gl测试数据也是VF2可以单独完成的,这应该能说清GPU问题。VNC只是为了截图清晰也证明远程共享流畅。我在首贴中写了个细节可能让你费解:主控机和VF2同时并排观察,目测远程和VF2上的画面是同步的,没有延迟。 这句话说的就是同时输出,我的主控机是树莓派4B, GPU性能是比不上VF2的。
1、VF2 很早就实现了 HDMI 输出,这功能和用什么合成器没关系。只依赖于驱动。
2、VNC 从一开始就是 wayland 考虑的东西,而且这东西其实有个非常好的“设计”就是他不是 xorg 那种服务端参与生成图形的环境。所以 vnc 可以很容易的得到显示数据从而实现显示,唯一需要的知识合成器要能支持转发给 vnc 协议即可。支持 VNC 的合成器非常多,如果你是工业需要,wlroot 自己弄一个定制环境就行了。如果你不是工业用,我建议是直接考虑上 DE 环境,他们的合成器功能都很多。比如 GNOME 和 KDE 他们的合成器。
3、GPU 硬件加速,现在的问题是 img 他们提供了一个闭源的驱动程序,支持 vulkan 和 opengl 某些版本。但是现在没有提供 mesa 整合的驱动程序。所以,如果你开发的程序依赖于 mesa 整体,可能会有兼容问题。但是你如果能控制 3D 需求的环境,那么现在的闭源驱动已经没问题了。
PS:合成器和桌面上运行的那些程序包括哪个“开始菜单”什么的都不是一个东西,合成器仅仅提供那些图形程序发来的显示数据进行整合处理。
所以你考虑需求的时候,需要分开。3D 的渲染在 wayland 下,其实是客户端程序自己的事情,从设计上 3D 是和 wayland 无关的。
关于sway的截屏工具grim
因wayfire截屏的成功,我把grim也弄到sway里,配置相应修改后测试成功:
1、sudo apt install grim slurp , 之前安装全家桶我已经补不上这两个程序,单独安装吧,grim是截图主程序,slurp是选择区域后再用grim截屏。
2、先上截图两张,这两张和之前的都不同呢,这是sway系统自己截屏的,不是远程截图,之前远程截图我都留了左边提示。
3、在sway配置文件退出菜单的语句bindsym $mod+Shift+e exec wlogout后,添加3行
# screenshot
bindsym $mod+ctrl+alt+c exec grim
bindsym ctrl+alt+c exec slurp | grim -g - /home/user/Pictures/$(date ‘+%F_%T’).png
为了方便记忆,设置截图快捷键sway和wayfire相同。全屏截图,启动键 ctrl + super + alt + c ,截图文件存在/home/user/Pictures/下,grim默认存放的,我不知道如果是中文的图片文件夹,grim会存在哪里,也许到时需要增加指定文件夹;区域截图,启动键 ctrl + alt + c, 启动后屏幕会略不透明,用鼠标选择需要区域后就截图了,这里我设定存放在/home/user/Pictures/下,也是不知道碰上中文的图片文件夹会咋样。
关于直接启动sway
我在学习调试Archlinux_cwt20时,感觉cwt20+sway好像比2311工程版+sway更流畅些,所以做了实验:不启动gdm3直接运行sway, 结果是流畅度好像比不上cwt20+sway,但感觉比使用了gdm3更流畅了些。方法如下(基于工程版2311):
1、在启动VF2后输入密码前,通过ssh,或者按键ctrl+alt+Fn,切换到命令行
2、
sudo systemctl set-default multi-user.target
设置开机后不启动gdm3、不进入图形界面,重启VF2
3、输入用户名user和密码starfive后,命令行输入sway就能启动进入。
4、退出sway,直接选reboot或shutdown按钮,选logout回命令行,大概率是黑屏。
5、如果想在输入名密码后直接进入wayfire,可以如下配置:
sudo nano ~/.bash_profile
添加
[[ -f ~/.bashrc ]] && . ~/.bashrc
[ “$(tty)” = “/dev/tty1” ] && exec sway
ctrl+o存盘,ctrl+x退出,重启VF2就行了。
6、优点:好像是比用gdm3进入运行更流畅些,缺点:不能通过gdm3切换回gnome,开机后也启动不了gnome
如果想恢复之前用gdm3启动,如下操作:
1、删除~/.bash_profile, 或编辑它,把增加的内容#注释掉
2、
sudo systemctl set-default graphical.target
3、重启VF2
VF2上Sway配套看图软件
实践是验证真理的唯一标准,本文谢绝嘴炮观看、评论,本文谢绝论坛账号jiangtao9999观看、评论
Swayimg的介绍是image viewer for Sway/Wayland(Sway/Wayland的图像查看器),所以它是原生wayland配套软件,小巧、快捷(即使是没有GPU也能流畅运行),缺点:目前只能在wayland图形环境下使用,x11和非图形环境用不了,所以swayimg最适合对x11不友好的VF2。
安装方法:
sudo apt install swayimg (debian)
sudo pacman -S swayimg (archlinux)
简单使用方法:图形环境下用鼠标点击单个或多个图像文件,右键选择用swayimg打开;图形环境下终端里输入swayimg,它会逐个显示当前文件夹中所有图像文件;图形环境下终端里输入 swayimg [path] ,它会逐个显示指定文件夹中所有图像文件。简单常用操作键:PgUp、PgDn、空格键是切换图像文件;‘[’、‘]’两键是图像旋转;esc键是退出图像查看器。更详细的设置、操作使用请查看man swayimg。
图像文件打开后中间位置显示图像,图像四周目前是透明的, 能看见背景。低版本swayimg只有图像;高版本swayimg在图像外左上显示图像数据,在左下显示图像缩放比例,在右上显示当前图像在队列的位置。
我的swayimg测试:
1、VF2-2403工程版gnome里,低版本swayimg,运行结果不是最佳。
2、VF2-2403工程版sway里,低版本swayimg, 运行流畅正常,除了因低版本没有图像数据。
3、VF2-2403工程版weston里,低版本swayimg,运行效果很差,swayimg不适用于weston。
4、VF2-2311工程版升级debian_12的sway里,无GPU设备及驱动,高版本swayimg, 运行流畅正常,效果很好。
5、VF2-2311工程版升级debian_12的labwc里,无GPU设备及驱动,高版本swayimg, 运行流畅正常,效果很好,附图。
6、VF2-2311工程版升级debian_12的weston里,无GPU设备及驱动,高版本swayimg,运行效果很差,swayimg不适用于weston。
7、Archlinux_cwt20的gnome里,高版本swayimg, 运行结果不是最佳。
8、Archlinux_cwt20的sway里,高版本swayimg, 运行流畅正常,效果很好。
9、Archlinux_cwt20的Hyprland里,高版本swayimg, 运行流畅正常,效果很好。