依云's Blog - RSS Feed

Latest articles

Wayfire 迁移进展(三):taskmaid, waybar 以及 mako 等

本文来自依云's Blog,转载请注明。 我又来更新我的 Wayfire 迁移进展啦~ 我写了一个 taskmaid 工具,使用 wlr foreign toplevel management 扩展来提供窗口管理相关功能。程序自己作为 daemon 随 wayfire 启动运行,通过 D-Bus 提供接口供别的程序使用。你问我为什么不直接每个需要的程序直接使用 Wayland 协议?因为用起来麻烦呀。Wayland 提供信息的方式是一组一组的事件,也并没有高层次的库,处理起来只能一堆回调怼上去,相当不顺手。 它最主要的功能就是在 waybar 上标题当前窗口的标题啦。顺便加上了中键关闭和显示 app-id 的功能。应用程序图标因为没有办法准确匹配(比如火狐 nightly...

Wayfire 迁移进展(二):Xwayland HiDPI 以及 waybar

本文来自依云's Blog,转载请注明。 这几天完成了一个很重要的功能:我让 Xwayland 支持 HiDPI 了! 实际上让 Xwayland 支持 HiDPI 的补丁早就有了,但是我当时尝试的时候补丁并不能很好地应用,我手动修了修,不明不白地应用上之后,并没有能够正常使用。现象是,DPI 是对了,但是窗口大小会不断地缩为原来的四分之一(长宽都减半),全屏时也只占左上角的四分之一。 这几天我给 xorg-xwayland 打上了新版补丁,然后在一番理解之后,给 wlroots 写好了相应的补丁,现在 Xwayland 终于也可以看清晰了! 这两个补丁,xwayland 那边是通过一个 X 窗口属性来设置缩放倍数,然后 xwayland 会告诉混成器自己的窗口使用了对应的缩放倍数,这样混成器就不会当它不支持缩放、强行给拉伸一下了。当然还有输入坐标的转换之类的。缩放倍数为...

Wayfire 迁移进展

本文来自依云's Blog,转载请注明。 这几天又解决了一些问题,记一下。 Wayfire 部分: 部分按键绑定无效的问题,Super+数字键无效是因为这个是 git 版本才有的。PrintScreen 无效是因为需要写成KEY_SYSRQ…… 窗口标题的问题。显示中文的 pr 已经提交。也把 scale 插件的问题一起修了。 要不显示标题栏也很好办,首先 preferred_decoration_mode = server 让窗口们都用 wayfire 画的装饰,然后设置 height = 0 这样就看不到标题栏啦(窗口边框还留着;连边框都不想要的话可以不加载这个插件就好了)。 lightdm 启动不了...

不同情况下的图形效果

本文来自依云's Blog,转载请注明。 我在上一篇说到,Wayland 下再也不会遇到撕裂了。后来群友说,这是 Intel 的 modesetting 驱动特有的问题。所以我又重新比较了一下。为了让事实说话,而不是靠很容易有偏见的主观感受,我使用 Sony Xperia XZ2 Compact 手机的「慢动作」功能,以 960fps 录制了不同情况下,火狐滚动同一页面的效果。不过视频我就不放了,上传费时又占地方。 首先是我长期使用的组合:X11 + Intel 集成显卡 + modesetting DDX,窗口管理器是 Awesome 3.5.9,混成器是 picom。这种情况下有非常严重的斜线撕裂,在画面内容变化大的时候(如无过渡切桌面、视频镜头转换、大幅度滚动页面)必现。撕裂的样子如下(「慢动作」的分辨率有限,亮度低是预期现象): ...

Wayland 初体验

本文来自依云's Blog,转载请注明。 前天得知 wayfire 能够直接在 X Window 下运行之后,我就尝试了一下。很好,能跑。虽然不能捕获键盘,从而与外边窗口管理器重复的快捷键无法使用,但至少它的鼠标光标位置是对的,能够用来测试。我在 QEMU 里跑过 KDE Wayland、sway 和 wayfire,无一例外鼠标位置不对。KDE 里是缩放倍数设为 2 之后,鼠标的实际坐标会翻倍。后两者基于 wlroots 的,鼠标的实际坐标位于显示的光标上方几十像素处。总之没法用。 在 X Window 里粗略地配置了一下 wayfire 之后,我就想实际在外边跑跑看。结果被惊艳到了,感觉就像年轻了24岁一样! 优势 尝试几次之后,我终于把 wayfire...

纯 CSS 实现倒三角箭头

本文来自依云's Blog,转载请注明。 想实现这样的悬停提示框效果: 这个绝对定位的框不是问题,边框的阴影也不是问题。问题是,我怎么弄出来那个倒三角的箭头呢? 在网上搜了一圈,找到的代码是这样的: .tooltip .tooltiptext::after { content: ""; position: absolute; top: 100%; left: 50%; margin-left: -5px; border-width: 5px; border-style: solid; border-color: black transparent transparent transparent; ...

倾听蓝牙耳机的按键事件

本文来自依云's Blog,转载请注明。 缘起 我的蓝牙耳机有简单的多媒体按键:上一曲、下一曲、播放、暂停。这几个按键在 Android 手机上是开箱即用的,然而在 Arch Linux 上,尤其是我的 Awesome 桌面环境上,并不那么自动。 其实按键事件都能收到的啦。可以收到 XF86AudioPrev, XF86AudioNext, XF86AudioPlay, XF86AudioPause 这么几个按键。给它们绑定热键,去调用 MPRIS 就好了。我使用的是 playerctl 工具。mpv 的 MPRIS 支持用的是 mpv-mpris。火狐自动就支持了,不用做什么。 看起来这样就好了?我也以为如此,直到我离电脑远了一些…… 问题 ...

使用 bwrap 沙盒

本文来自依云's Blog,转载请注明。 bwrap 是命令的名字。这个项目的名字叫 bubblewrap。它是一个使用 Linux 命名空间的非特权沙盒(有用户命名空间支持的话)。 我之前使用过 Gentoo 的 sandbox 工具。它是 Gentoo 用于打包的工具,使用的是 LD_PRELOAD 机制,所以并不可靠。主要用途也就是避免打包软件的时候不小心污染到用户家目录。 使用 bwrap 的话,限制是强制的,没那么容易绕过(至于像 Go 这种因为不使用 libc 而意外绕过就更难得了)。不过 bwrap 不会在触发限制的时候报错。 bwrap 的原理是,把 / 放到一个 tmpfs 上,然后需要允许访问的目录通过 bind mount 弄进来。所以没弄进来的部分就是不存在,写数据的话就存在内存里,用完就扔掉了。这一点和...

一次失败的 KDE 尝试

本文来自依云's Blog,转载请注明。 前些天尝试了一下 KDE 桌面环境,不过实在是没能用下去。 首先要说的是,KDE 桌面确实漂亮,非常养眼。设置项也挺多,可定制性还是挺不错的。只可惜问题同样很多。 首先是显示器缩放的问题。受限于 X11,KDE 只能设置一下全局的缩放比例。所以我们只好缩放显示器显示的画面。不幸的是,一向相当体贴的 KDE 此时却笨笨的,在使用 xrandr 设置好之后需要重启 plasmashell 来使其获取 xrandr 的设置更新: kquitapp5 plasmashell && kstart5 plasmashell KDE 的设置项很多,分门别类地在「设置」应用程序中集中列出来,然而问题也由此产生:同时只会显示一个「设置」窗口。也就是说,我配置快捷键时,想去窗口管理器那边看一看,调整一点选项,就必须放弃我当前打开的快捷键视图,放弃我键入的搜索词,并且选择「应用」或者「放弃」更改,才能切换到另一个「设置」组件中去。即使从...

i3 的 scratchpad 处理逻辑

本文来自依云's Blog,转载请注明。 i3 有个东西叫「scratchpad」,和我在 Awesome 里用的 run_or_raise 功能有些类似。 我的需求是某些浮动窗口可以「招之即来,挥之即去」。上次尝试切换 i3 遇到的一大麻烦就是,我经常从终端里启动图形界面的程序,而启动完之后我得手动给我的终端找个地方放着。i3 不支持最小化,也只有十个带数字快捷键、可以快速访问的工作区,所以 scratchpad 很重要,但是它的行为我有些捉摸不定。 首先是 move scratchpad 这个命令。它会把当前 con(窗口或者容器)浮动、取消全屏,然后移到一个叫 __i3_scratch 的不显示的工作区。 然后是 scratchpad show...

Discover, share and read the best on the web

Follow RSS Feeds, Blogs, Podcasts, Twitter searches, Facebook pages, even Email Newsletters! Get unfiltered news feeds or filter them to your liking.

Get Inoreader
Inoreader - Follow RSS Feeds, Blogs, Podcasts, Twitter searches, Facebook pages, even Email Newsletters!