惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
V
Vulnerabilities – Threatpost
L
LINUX DO - 热门话题
H
Hacker News: Front Page
Hacker News - Newest:
Hacker News - Newest: "LLM"
L
Lohrmann on Cybersecurity
Cisco Talos Blog
Cisco Talos Blog
O
OpenAI News
S
Securelist
Security Latest
Security Latest
T
Threat Research - Cisco Blogs
H
Heimdal Security Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Recorded Future
Recorded Future
Microsoft Azure Blog
Microsoft Azure Blog
MyScale Blog
MyScale Blog
Webroot Blog
Webroot Blog
The Hacker News
The Hacker News
Google Online Security Blog
Google Online Security Blog
Latest news
Latest news
N
Netflix TechBlog - Medium
N
News and Events Feed by Topic
D
Docker
D
DataBreaches.Net
A
About on SuperTechFans
T
Tor Project blog
V
V2EX
G
Google Developers Blog
博客园 - Franky
N
News | PayPal Newsroom
T
The Blog of Author Tim Ferriss
I
InfoQ
H
Help Net Security
V2EX - 技术
V2EX - 技术
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
S
Security Affairs
SecWiki News
SecWiki News
The Register - Security
The Register - Security
人人都是产品经理
人人都是产品经理
NISL@THU
NISL@THU
小众软件
小众软件
B
Blog
T
Threatpost
P
Palo Alto Networks Blog
博客园 - 【当耐特】
L
LangChain Blog
AWS News Blog
AWS News Blog
月光博客
月光博客
宝玉的分享
宝玉的分享

mephisto.cc

修复rime-ice无法弹出候选框的问题 开机滚动字体显示优化 个人网站安全防护 树莓派上部署Vaultwarden 使用goaccess实时分析Caddy日志 个人网站监控 Hugo全站AVIF记 Linux下尝试使用Godot开发小游戏 Arch linux dae 透明代理 Airflow接管galler-dl下载任务 如何使用gallery-dl批量下载图像 Arch核显下如何愉快玩Dota2和CS2 Arch/labwc 环境网络相关设置 Rime添加dota2词库 Arch 重装记录 Supertuxkart iOS版终于发布了 打造自己的流媒体音乐服务 剪切板管理工具clipcat推荐 MangoHud性能监控 微信小程序开发记 Rofi试用 解决Arch下VSCode无法输入中文的问题 独立窗口管理器下无法录屏问题处理 上海市二手房成交数据监控 OpenLDAP监控 Arch linux如何顺畅连接蓝牙设备 使用Git和Ansible管理配置文件 Arch Linux SSL VPN 客户端配置 简单获取celery任务实时结果 Arch linux下iNode客户端的安装和使用方法 券商费率调整记 迷你主机组装记 Labwc更换定制皮肤 树莓派跑分流代理 实用自动代理配置示例 九年老鼠标复活记 Openvpn示例 Mac下如何旋转webp图片 如何隐藏Vscode中Markdown PDF插件的头部内容 解决Linux下网络配置无法变更保存的问题 labwc环境启用wlogout Ubuntu下新官方微信尝鲜 简单检测用户是否开启广告屏蔽 Atuin ZFS下卡顿问题解决 Wine安装64位微信 Fish 和 Atuin使用记 Fastapi简单实现临时下载链接 Fastapi微信公众号开发简要 Hugo根据语种展示不同内容 如何修复Waybar微信图标错误 信封加密简要 Linux环境下维护公众号记录 快速隐藏和呼出终端 Wayland环境自动切换壁纸 SuperTuxKart 试玩 简单抓取雪球股票快讯 为什么你的kill命令不能列出信号表 Wine安装微信保姆教程 Hysteria科学上网简要 Ubuntu 23.10 钉钉无法启动解决方法 网站导航栏防止插入Adsense自动广告 Linux环境按键检测 Hugo文末添加最后修改时间 Wayland环境ksnip无法复制问题解决 我眼中的股票市场 Caddy简单图片防盗链 greetd和regreet使用教程 Wayland环境下截图加后期修改 Wayland 环境下gif录屏 Firefox的一些有趣功能 Ubuntu 切换系统语言 Firefox 标题栏高度调整 网站添加回到顶部功能 Hugo自定义字体 Labwc 便捷配置 Wofi使用教程 文件共享软件Dufs推荐 Hugo静态站点接入Adsense广告 Fcitx5配置详解 Ubuntu安装chrome的方法总结 一种Xterm.js的全屏方案 Google网址收录api Python示例 手机听离线音乐 Snipe it资产导入 应用启动器yofi使用配置 Snipe it资产管理系统安装使用 Ubuntu开机启动加速 Vue3 vite TypeScript跨域等相关设置 Ubuntu手动升级Libreoffice Ubuntu设置alacritty为默认终端 简体文章批量转换为繁体 使用Inkscape调整svg图片大小 实用命令 使用mitmproxy给手机app抓包 Python中rstrip方法细解 Github同主机多仓库部署deploy key问题处理 Linux安装最新版本Python KeePassXC使用教程 Ubuntu 22.10连接蓝牙耳机报错br-connection-profile-unavailable解决方法 Caddy日志配置轮转和格式化
窗口管理器labwc使用记
2023-06-09 · via mephisto.cc

注意到 labwc 有一段时间了,大部分窗口管理器都是和桌面环境融为一体的,例如 Gnome 的 Mutter,独立的窗口管理器就显得很特殊,尤其是 wayland 下的,labwc 就是这样的存在。

如果你厌倦了 Gnome 和 KDE 等大一统桌面环境,也不想折腾 sway 等平铺窗口(tiling Wayland compositor),那么可以试试 labwc 堆叠窗口(window-stacking Wayland compositor)。

在我写这篇文章的时候,中文世界还没有人分享 labwc 相关信息,至少 Google、Bing、Baidu 无相关收录,微信搜索提示的是"来安霸王餐"。这不能不说是一种遗憾,也是我坚持维护这个小站的动力之一。

本文将在 Ubuntu 23.10 环境下,编译安装 labwc,使其达到一种可以应付日常工作学习使用的状态。我现在就是在 labwc 相关环境下写这篇文章的。话不多说,火速发车:

1. 编译安装 labwc

  • 下载源码
1git clone https://github.com/labwc/labwc
  • 编译安装

    • 安装依赖

      1sudo apt install libseat-dev
      

      如果你需要 xwayland,我个人认为需要,因为中国大陆的 Linux 环境不算好,到现在钉钉、微信等部分软件还得 xwayland 支持,不能在纯 wayland 下轻松运行。

      开启 xwayland,请安装依赖:

      1sudo apt install libxcb-composite0-de
      2sudo apt install libxcb-icccm4-dev
      3sudo apt install libxcb-res0-dev
      

      有读者可能会问,你怎么知道需要这些依赖的,因为工作需要使用钉钉,我吃过过亏。依赖的包名都是根据报错提示,apt search xxx 结合经验得出的。

    • 编译

      首次编译

      1meson setup build/
      2meson compile -C build/
      

      非首次编译, 注意参数 -Dxwayland=enabled,建议开启 xwayland

      1meson  setup --reconfigure -Dxwayland=enabled build
      
    • 把命令放到常用目录

      上一步完成后,build 目录会生成 labwc,复制到 /usr/bin 目录

      1sudo cp build/labwc /usr/bin
      

    至此,labwc 窗口管理器安装完成了。可以直接在终端里面执行 labwc 命令启动,启动后就是一片黑(不要慌,这是正常操作),按 Win + Enter 键,弹出 alacritty。如下图所示:

labwc

心急的读者想问,就这光秃秃的界面,和无图形界面的服务器差不多,还玩什么?其实此时,已经可以使用了,只不过是个毛坯房。你用启动器或者命令行直接启动各种程序,都是可以正常运行的,只是没有完整的桌面环境,条件比较苦。

2. 添加必要桌面元素

在进一步操作前,最好能确保:1.你随时能切换回完整的 Gnome 环境;2.系统能自动联网。这样出意外的时候,还有退路可走。

  • 设置 wayland-sessions

    创建 labwc.desktop 文件,路径和内容如下所示,不要告诉我你不会创建文件。

    1➜  ~ cat /usr/share/wayland-sessions/labwc.desktop
    2[Desktop Entry]
    3Name=Labwc
    4Comment=Labwc
    5Exec=labwc
    6Type=Application
    7➜  ~
    

    目的是为了让 gdm3 能够选中 labwc,好让你进入 labwc 环境,总不能每次都命令行启动对吧。gdm3 是所谓的 display manager,或者叫 login manager,有 tui 的也有 gui 的,就是操作系统启动完成后,给你输入用户和密码、选择 sessions 的东西。这一步就是让 sessions 多一个选项。

  • labwc 基本配置

    先创建和下载 4 个核心配置文件

    1mkdir -p ~/.config/labwc
    2wget https://raw.githubusercontent.com/labwc/labwc/master/docs/environment -O ~/.config/labwc/environment
    3wget https://raw.githubusercontent.com/labwc/labwc/master/docs/autostart -O ~/.config/labwc/autostart
    4wget https://raw.githubusercontent.com/labwc/labwc/master/docs/menu.xml -O ~/.config/labwc/menu.xml
    5wget https://raw.githubusercontent.com/labwc/labwc/master/docs/rc.xml -O ~/.config/labwc/rc.xml
    

    可以直接使用我的: https://github.com/kmephistoh/dotfiles/tree/main/config/labwc

    • autostart

      1➜  labwc egrep -v "#|^$" autostart
      2swaybg -i ~/Pictures/mount.jpeg >/dev/null 2>&1 &
      3waybar >/dev/null 2>&1 &
      4fcitx5 >/dev/null 2>&1 &
      5➜  labwc pwd
      6/home/mephisto/.config/labwc
      

      分别为设置壁纸、启动 waybar 状态栏、启动 fcitx5 输入法(输入法英语系的人不用,中文读者必须有),壁纸图片路径请自行修改。

    • environment

       1➜  labwc egrep -v "#|^$" environment
       2XDG_CURRENT_DESKTOP=wlroots
       3MOZ_ENABLE_WAYLAND=1
       4XDG_CURRENT_DESKTOP=labwc
       5XCURSOR_THEME=breeze_cursors
       6GTK_IM_MODULE=fcitx
       7QT_IM_MODULE=fcitx
       8XMODIFIERS=@im=fcitx
       9INPUT_METHOD=fcitx
      10SDL_IM_MODULE=fcitx
      11➜  labwc pwd
      12/home/mephisto/.config/labwc
      

      其中,MOZ_ENABLE_WAYLAND=1 让 firefox 运行在 wayland 下,XDG_CURRENT_DESKTOP=labwc 为 flameshot 截屏软件所需,我自己摸索出来的,加鸡腿啊!fcitx 相关就是让 fcitx 正常工作的。

      如果更喜欢 chrome,不习惯 firefox,还需要做些特殊设置(如果没有开启 xwayland 支持的话)。

      1➜  labwc grep -i exec /usr/share/applications/google-chrome.desktop
      2Exec=/usr/bin/google-chrome-stable -enable-features=UseOzonePlatform --ozone-platform=wayland --gtk-version=4 %U
      3Exec=/usr/bin/google-chrome-stable -enable-features=UseOzonePlatform --ozone-platform=wayland --gtk-version=4
      4Exec=/usr/bin/google-chrome-stable --incognito -enable-features=UseOzonePlatform --ozone-platform=wayland --gtk-version=4
      

      -enable-features=UseOzonePlatform --ozone-platform=wayland 为开启 wayland 支持

      --gtk-version=4 开启 fcitx5 输入法支持,候选字界面会跑飞,这就是 Linux 用户的日常^_^

    • rc.xml

      这个部分,没怎么改动,只是添加了快捷键,wofi 为启动器(lancher)、flameshot 为截屏工具、swaylock 为锁屏工具,wofi 后续有空会单独写个文章。

      1<keybind key="F8">
      2<action name="Execute" command="wofi" />
      3</keybind>
      4<keybind key="F9">
      5<action name="Execute" command="flameshot gui" />
      6</keybind>
      7<keybind key="W-l">
      8<action name="Execute" command="swaylock" />
      9</keybind>
      
    • menu.xml

      建议读一读文档,再按需修改,也可直接下载我的,目前不重要。

  • 设置 waybar

    waybar 简单理解就是个状态栏,显示各种基础信息。

    waybar

    建议直接安装

    waybar 是可以定制的,建议看官方文档

    有很多示例: https://github.com/Alexays/Waybar/wiki/Examples

    找个自己喜欢的即可,笔者的配置在:https://github.com/kmephistoh/dotfiles

  • 设置 swaylock

    swaylock 就是锁屏,离开电脑的时候锁屏是个好习惯,防火防盗防伪君子。

    先安装

    1sudo apt install swaylock
    

    也是可以定制的,不想折腾的可以直接下载我的

    https://github.com/kmephistoh/dotfiles/tree/main/.config/swaylock

    根据 rc.xml 中的设置,Win + l 键锁屏,首次使用的的时候,效果确实令人吃惊的,大概长这个样子(锁屏界面无法截图,只能找个网图,我配置的没这个好看)。

    swaylock

3. 桌面整体预览

这么一顿操作后,结果如下所示:

双屏截图

labwc desktop previews
    1. 状态栏 waybar
    1. 启动器 wofi
    1. 菜单(点空白区弹出,可退出 labwc,不然你都不知道怎么退出,对不对?)
    1. 证明 chrome 工作良好,有了能上网的浏览器,你应该毫无畏惧了
    1. 还没有 wofi,请先用 Alt + F3 弹出的 bemenue,够用不好看

通知截图

labwc notice

写在最后,用 labwc 工作是没有问题的,我准备持续体验一段时间,也许会遇到各种小瑕疵,但是都不关键。重要的是可以按照自己的喜好,来定制桌面环境的各种组件,避免受制于 Gnome/KDE 等重型环境,系统响应速度很快(大部分是 C 写的),你知道这些部件是如何协作的,可以学到一些知识,不喜欢可以随时替换,这就是自由自在感觉。

2023-08-04 日更新:经过我 2 个月的使用体验,labwc 运行稳定流畅,满足日常 99%的需求,可以说相见恨晚,已经告别 Gnome 环境了。推荐 Linux 用户使用,不会配置的可以搜索本站相关教程。