.. _intro_suckless:
======================
Suckless极简桌面简介
======================
.. note::
由于在suckless上实现中文输入的问题没有解决(非常花费时间),我暂时放弃使用 ``dwm`` 和 ``surf`` 等软件,改为 :ref:`xfce` 。后续再尝试 :ref:`lfs` 时重新挑战这个精简图形系统。
我在探索 :ref:`i3` 和 :ref:`linux_light_browser` 时,
发现 ``i3`` 窗口管理器实际上核心组件是由 `suckless.org `_ 开发的一系列工具:
- :ref:`st` X环境下的极简终端
- :ref:`suckless-tools` ( ``dmenu`` ``slock`` ... )
也发现 :ref:`surf` 是一个现代化浏览器内核的极简主义轻量级浏览器
进一步了解到 `suckless.org `_ 开发的系列软件恰恰是一个专注系统运维和开发的软件工程师所期望的: 恰到好处的功能,用最小化的组件来实现一个灵活高效的图形桌面。
suckless.org
===============
`suckless.org `_ 是坚守极简主义哲学的开源社区::
软件应该简单、清晰、最小化、可用。
这正是我一直以来想要获得的图形管理系统,硬件要求低,所有的目标是集中精力完成目标: 信息获取和处理。这样可以摈弃各种和最终目标无关的系统消耗,把计算机资源用到极致。
suckless开发了图形管理桌面的核心组件:
- :ref:`dwm`
- :ref:`st` X环境下的极简终端
- ``dmenu`` 用户自定义菜单,程序启动器
- :ref:`surf` 不基于chrome/firefox的独立引擎(WebKit)
快速安装
============
.. note::
目前感觉编译还是非常花费时间精力,所以最后我还是准备采用发行版提供的软件包
- 安装::
sudo apt install dwm surf stterm
编译和持续集成
================
我花费了几天时间来学习和实践 ``suckless`` 系列软件的编译、安装和使用,发现确实非常轻量级且精简。但是,对于这种完全依赖编译和patch的软件堆栈,也存在以下问题:
- 虽然每个软件包都很小,但是所有的编译工作都需要在系统中安装 ``xxx-dev`` 软件包来完成编译,特别是 :ref:`surf` 浏览器,实际上依赖 ``Webkit2gtk`` ,需要安装大量的开发依赖包。实际运行时,系统中只需要运行时包就可以,但是开发包占据了大量空间
- 每次修改(我确实觉得有些特性不符合我的习惯),就需要patch和编译,这个工作非常枯燥乏味
.. note::
不过为了解决编译问题实在花费太多时间精力,偏离了原本精简(节约时间)的初衷。我觉得还是把精力用到核心的服务器技术以及开发技术上为好。桌面折腾适可而止,能直接使用发行版编译好的软件包即可。也能体验到 95% 以上的功能特性。
改进想法
----------
- 对于桌面系统,力求精简,但是编译工作在所难免;所以考虑继续完善 :ref:`edge_cloud` ,构建 :ref:`k3s` 集群,将所有开发编译环境镜像化,所有工作在容器中完成,并且在服务器端完成;只在最后把完成构建的二进制包安装到桌面电脑上
- 本地客户端只安装必要运行时,精简空间
- 构建持续集成 :ref:`jenkins` 来自动化完成相关构建打包工作
参考
======
- `Suckless--极简主义者的Linux世界 `_