推荐一个 Linux 窗口管理器
本帖最后由 BRS5672023 于 2024-11-24 19:49 编辑今天用了一下 niri wm 这一款比较新的卷轴式窗口管理器,跟我之前已经体验了相当一段时间的 Hyprland 这类平铺式以及传统的堆叠式窗口管理器都不太一样,niri 中一般打开一个窗口只会占用一半的屏幕宽度(当然一般会设置成浏览器这类应用打开时就占满屏幕宽度),而默认的几个可以快速调节的宽度值分别是 1/3, 1/2, 2/3 的屏幕占比。。其特点是比如已经打开了一个完整屏幕宽度的窗口,再打开一个 1/2 屏幕宽度的窗口的话原来的窗口就有一半会被推到左边,然后这几个窗口就类似于卷轴一样可以左右滚动查看;另外也可以在垂直方向添加新的工作区,也就是会变成几条卷轴的情况,这就和一般的工作区的概念不太一样了。。体验视频见 Niri —— 一款非常独特的wayland compositor (可能视频已经比较老了跟目前的版本会有一些区别)
还有就是 niri 的配置文件相较于 Hyprland 比较简单,不过没有类似 Hyprland 的 blur 特效。。另外完成度也不如 Hyprland,目前我遇到的比较难受的问题是不支持 chromium 上的输入法(也包括 electron 应用),没想到直到最新的 chromium dev 版本才支持 text-input-v3 (而 niri 不支持 text-input-v1,另外值得一提的是,最新的 dev 还修复了 amdgpu 在 wayland 下的硬解问题);还有另一个问题是触控板的双指滚动速度暂时不可调节,速度太快了。。触控板的 scroll factor 目前在 0.1.10 版本上已经可以进行设置了
可以说是缺陷的问题就是 niri 目前还不支持 floating window,也就是可以叠在普通窗口上方的窗口(想像一下剪贴板的小窗口也要在右边打开并且使用完整的屏幕高度。。);虽然 niri 也可以像普通平铺桌面一样在竖直方向上铺开窗口,但相比普通的平铺桌面而言似乎也不是很实用。。
https://static.saraba1st.com/image/hrline/5.gif
感觉吃到了 gnome 的n手屎。。目前设置了 scroll_factor 之后应该说绝大多数应用里面的两指滚动已经很正常了(包括像 firefox 这种 gtk3 的应用),但是像 nautilus 这类 gtk4 应用里面的滚动速度又太慢了(然而 niri 目前要实现屏幕录制需要 xdg-desktop-gnome-portal,而这个 portal 在 arch 上又依赖 nautilus)。。很久之前就看到过反馈 gtk3 和 gtk4 的触控板滚动速度不一致的问题了,而且能搜到一堆关于 gnome 里无法设置 scroll_factor 的 issue。。难道 gnome 的开发者就没人用触控板的? 这个思路怎么感觉很……手机 posthoc 发表于 2024-8-10 22:53
这个思路怎么感觉很……手机
我觉得传统的平铺更像手机或者平板的逻辑(floating window 对应小窗),卷轴式 wm 还是感觉不大一样。。 BRS5672023 发表于 2024-8-10 22:56
我觉得传统的平铺更像手机或者平板的逻辑(floating window 对应小窗),卷轴式 wm 还是感觉不大一样。。 ...
我是觉得很像手机切换后台应用时左右滑的感觉,不同性质的窗口都近乎平等的当app去对待。 我最希望wayfire能有点进展,可惜似乎没啥人用所以开发也不咋积极
相比下hyprland的特性加得很快
不过我还是无法习惯平铺式,特别是弹出窗口和qq这种明显适合堆叠的窗口,手动设置浮动也很麻烦 tsubasa9 发表于 2024-8-10 23:50
我最希望wayfire能有点进展,可惜似乎没啥人用所以开发也不咋积极
相比下hyprland的特性加得很快
我刚好相反,已经无法适应堆叠桌面了,需要设置成 floating 的始终是少数,安装 xdg-desktop-portal-gtk 之后基本上所有 gtk 界面的文件选择器都是这个 class,反倒是一些 qt 应用的文件选择器比较麻烦,我在 Hyprland 上设置的 floating 相关的规则如下windowrulev2=float,class:^(Mathematica)$,title:^(Mathematica)$
windowrulev2=float,class:^(com.wolfram.Mathematica),title:^(Mathematica)$
windowrulev2=float,class:^(org.qbittorrent.qBittorrent)$,title:^(?!qBittorrent)
windowrulev2=float,class:^(mpv)$
#windowrulev2=size 75% 70%,class:^(mpv)$
#windowrulev2=noblur,class:^()$,title:^()$
windowrulev2=float,class:^(chrome-.*Default)$
windowrulev2=noanim,class:^(chromium)$,title:(- Chromium)$
windowrulev2=pin,class:^(firefox|)$,title:^(画中画)$
windowrulev2=float,class:^(firefox|)$,title:^(画中画)$
windowrulev2=size 480 300,class:^(firefox|)$,title:^(画中画)$
windowrulev2=move 100%-500 100%-320,class:^(firefox|)$,title:^(画中画)$
windowrulev2=float,class:^(xdg-desktop-portal-gtk)$
windowrulev2=size 75% 70%,class:^(xdg-desktop-portal-gtk)$
windowrulev2=float,title:^(文件)*(打开|上传|保存|查找|添加|另存为|所有)(文件|目录|图像)*(夹)*$
windowrulev2=size 75% 75%,title:^(文件)*(打开|上传|保存|查找|添加|另存为|所有)(文件|目录|图像)*(夹)*$
windowrulev2=float,class:^(Zotero)$
windowrulev2=tile,class:^(Zotero)$,title:(Zotero)$
#windowrulev2=float,class:^(Zotero)$,title:^(Zotero 设置)$
windowrulev2=size 85% 80%,class:^(Zotero)$,title:^(Zotero 设置)$
workspace=5,on-created-empty:zotero
windowrulev2=float,class:^($clipboard)$
#windowrulev2=pin,class:^($clipboard)$,title:^(CopyQ)$
windowrulev2=size 400 500,class:^($clipboard)$,title:^(CopyQ)$
windowrulev2=move 100%-450 100%-550,class:^($clipboard)$,title:^(CopyQ)$另一个麻烦的地方是实现 scratchpad 的功能。。 之前看过,不过我还是等Cosmic正式版
—— 来自 S1Fun 本帖最后由 Midnight.Coup 于 2024-8-11 09:38 编辑
無始無終 发表于 2024-8-11 07:32
之前看过,不过我还是等Cosmic正式版
—— 来自 S1Fun
刚出 Alpha 版本就差不多把 Gnome 秒了,以后正式版可以直接替代各大发行版默认使用的 Gnome 本老古董x11钉子户还在用xmonad+picom 你这不是hyprland的master模式么:https://wiki.hyprland.org/Configuring/Master-Layout/ 不要叫水狗做主人 发表于 2024-8-11 11:39
你这不是hyprland的master模式么:https://wiki.hyprland.org/Configuring/Master-Layout/
完全不是一回事,master 只是 tile 的方式有区别而已。。
—— 来自 鹅球 v3.1.88.3 听起来和虚拟桌面差不多,设置一行虚拟桌面也算是卷轴了,区别就是不能跨桌面放置应用,我的习惯是设置3x3的虚拟桌面,常用应用放在固定的虚拟桌面,比如微信qq放一块,浏览器固定在一个桌面全屏使用,steam和游戏放一个桌面之类,其实固定在某个桌面之后和平铺式桌面差不多了,但依然保留了堆叠桌面的灵活性。
indtability 发表于 2024-8-11 13:56
听起来和虚拟桌面差不多,设置一行虚拟桌面也算是卷轴了,区别就是不能跨桌面放置应用,我的习惯是设置3x3 ...
用起来比虚拟桌面或者 workspace 更无感一些,因为新窗口总是在右边打开,而原来的窗口大小不会改变只是往左移动,窗口也经常介于通常所说的两个 workspace 之间,所以一个问题就是因为一个卷轴内没有固定的 workspace,那么在卷轴内不同页面的快速移动没有办法按通常的 workspace 之间的跳转来完成 其实平铺式桌面本身用起来就是基本离不开虚拟桌面/工作区的,毕竟就那么点面积窗口一多铺不过来,卷轴化有个好处就是摆脱了面积限制,不需要为了更多面积强行虚拟桌面+1,而是能够按照工作分类的抽象合理计划分配,变成完全意义上的“工作区”,这么一想感觉是传统平铺桌面的进化了。
不过个人来说当年上学天天背笔记本的时候喜欢用平铺式,因为用触摸板拖拽太蛋疼了(我那个还动不动断触)反而全键盘很丝滑,现在以台式机为主就没有捣鼓平铺式的动力了…… posthoc 发表于 2024-8-11 15:05
其实平铺式桌面本身用起来就是基本离不开虚拟桌面/工作区的,毕竟就那么点面积窗口一多铺不过来,卷轴化有 ...
其实思路转换下,所有程序都全屏也是tilling wm 的一种。很多需要tilling的程序自己就支持tilling,而且不需要去处理键位冲突。搭配个dmenu之类的就能用了。 niri自己写写custom shader挺好玩的,比如写个山寨mac gneie动画效果
还有主楼怎么没提这个compositor的最大问题:没有xwayland支持 yvev 发表于 2024-8-11 17:30
niri自己写写custom shader挺好玩的,比如写个山寨mac gneie动画效果
还有主楼怎么没提这个compositor的最 ...
还没在 niri 上用过 xwayland 程序。。
看了下说可以用 xwayland-satellite 实现 rootless xwayland 以为没啥问题来着。。
Xwayland posthoc 发表于 2024-8-11 15:05
其实平铺式桌面本身用起来就是基本离不开虚拟桌面/工作区的,毕竟就那么点面积窗口一多铺不过来,卷轴化有 ...
说到点上了,台机的大屏幕和鼠键用平铺式的体验真的屌差 其实我觉得macOS的前台调度也是一种不错的思路,只是目前打磨的还不太完善。 看了下这个窗口切换有点像Oppo折叠屏手机解决方案,窗口切换动画都差不多
【Find N3 全景虚拟屏体验-哔哩哔哩】 https://b23.tv/SJM9cX8 Midnight.Coup 发表于 2024-8-11 09:34
刚出 Alpha 版本就差不多把 Gnome 秒了,以后正式版可以直接替代各大发行版默认使用的 Gnome...
这么厉害的嘛。。。
—— 来自 Xiaomi Mi 10, Android 13上的 S1Next-鹅版 v3.0.0.81-alpha Midnight.Coup 发表于 2024-8-11 09:34
刚出 Alpha 版本就差不多把 Gnome 秒了,以后正式版可以直接替代各大发行版默认使用的 Gnome...
gnome开发者特有的傲慢+脑子不好使 在用labwc,但是总是感觉东少西少东西 tsubasa9 发表于 2024-8-11 21:25
gnome开发者特有的傲慢+脑子不好使
我一直很奇怪,gnome的人是不知道社区对他们做的东西有意见么? wewai 发表于 2024-8-14 23:08
我一直很奇怪,gnome的人是不知道社区对他们做的东西有意见么?
以前这帮人开了个gtk5彻底不支持x11的gitlab issue,有人发到了reddit上,然后这帮人马上反应过来,把issue锁了。所以肯定是知道的。 wewai 发表于 2024-8-14 23:08
我一直很奇怪,gnome的人是不知道社区对他们做的东西有意见么?
当然知道,所以我写了“傲慢”,gnome相关论坛上随便就可以搜到傲慢的回复
比如我之前升级到gnome42后发现以前的gtk主题全崩了,然后搜了下:
https://discourse.gnome.org/t/wh ... ts-theming/17079/29
说实话看完我都惊了,没见过任何其他FOSS是这么整的,似乎gnome开发者和信者有自己一套封闭排外的逻辑 wewai 发表于 2024-8-14 23:08
我一直很奇怪,gnome的人是不知道社区对他们做的东西有意见么?
他们可太清楚了,只不过大多数时候他们觉得提出问题的人才是问题。
喜欢drama的话可以看看4chan /g/佬们是怎么编排Emmanuele Bassi的:https://wiki.installgentoo.com/wiki/Emmanuele_Bassi
页:
[1]