2021年4月

这是我怎样设置 Git 来管理我的家目录的方法。

 title=

我有好几台电脑。一台笔记本电脑用于工作,一台工作站放在家里,一台树莓派(或四台),一台 Pocket CHIP,一台 运行各种不同的 Linux 的 Chromebook,等等。我曾经在每台计算机上或多或少地按照相同的步骤设置我的用户环境,也经常告诉自己让每台计算机都略有不同。例如,我在工作中比在家里更经常使用 Bash 别名,并且我在家里使用的辅助脚本可能对工作没有用。

这些年来,我对各种设备的期望开始相融,我会忘记我在家用计算机上建立的功能没有移植到我的工作计算机上,诸如此类。我需要一种标准化我的自定义工具包的方法。使我感到意外的答案是 Git。

Git 是版本跟踪软件。它以既可以用在非常大的开源项目也可以用在极小的开源项目而闻名,甚至最大的专有软件公司也在用它。但是它是为源代码设计的,而不是用在一个装满音乐和视频文件、游戏、照片等的家目录。我听说过有人使用 Git 管理其家目录,但我认为这是程序员们进行的一项附带实验,而不是像我这样的现实生活中的用户。

用 Git 管理我的家目录是一个不断发展的过程。随着时间的推移我一直在学习和适应。如果你决定使用 Git 管理家目录,则可能需要记住以下几点。

1、文本和二进制位置

 title=

当由 Git 管理时,除了配置文件之外,你的家目录对于所有内容而言都是“无人之地”。这意味着当你打开主目录时,除了可预见的目录的列表之外,你什么都看不到。不应有任何杂乱无章的照片或 LibreOffice 文档,也不应有 “我就在这里放一分钟” 的临时文件。

原因很简单:使用 Git 管理家目录时,家目录中所有 提交的内容都会变成噪音。每次执行 git status 时,你都必须翻过去之前 Git 未跟踪的任何文件,因此将这些文件保存在子目录(添加到 .gitignore 文件中)至关重要。

许多 Linux 发行版提供了一组默认目录:

  • Documents
  • Downloads
  • Music
  • Photos
  • Templates
  • Videos

如果需要,你可以创建更多。例如,我把创作的音乐(Music)和购买来聆听的音乐(Albums)区分开来。同样,我的电影(Cinema)目录包含了其他人的电影,而视频(Videos)目录包含我需要编辑的视频文件。换句话说,我的默认目录结构比大多数 Linux 发行版提供的默认设置更详细,但是我认为这样做有好处。如果没有适合你的目录结构,你更会将其存放在家目录中,因为没有更好的存放位置,因此请提前考虑并规划好适合你的工作目录。你以后总是可以添加更多,但是最好先开始擅长的。

2、、设置最优的 .gitignore

清理家目录后,你可以像往常一样将其作为 Git 存储库实例化:

$ cd
$ git init .

你的 Git 仓库中还没有任何内容,你的家目录中的所有内容均未被跟踪。你的第一项工作是筛选未跟踪文件的列表,并确定要保持未跟踪状态的文件。要查看未跟踪的文件:

$ git status
  .AndroidStudio3.2/
  .FBReader/
  .ICEauthority
  .Xauthority
  .Xdefaults
  .android/
  .arduino15/
  .ash_history
[...]

根据你使用家目录的时间长短,此列表可能很长。简单的是你在上一步中确定的目录。通过将它们添加到名为 .gitignore 的隐藏文件中,你告诉 Git 停止将它们列为未跟踪文件,并且永远不对其进行跟踪:

$ \ls -lg | grep ^d | awk '{print $8}' >> ~/.gitignore

完成后,浏览 git status 所示的其余未跟踪文件,并确定是否有其他文件需要排除。这个过程帮助我发现了几个陈旧的配置文件和目录,这些文件和目录最终被我全部丢弃了,而且还发现了一些特定于一台计算机的文件和目录。我在这里非常严格,因为许多配置文件在自动生成时会表现得更好。例如,我从不提交我的 KDE 配置文件,因为许多文件包含了诸如最新文档之类的信息以及其他机器上不存在的其他元素。

我会跟踪我的个性化配置文件、脚本和实用程序、配置文件和 Bash 配置,以及速查表和我经常引用的其他文本片段。如果有软件主要负责维护的文件,则将其忽略。当对一个文件不确定时,我将其忽略。你以后总是可以取消忽略它(通过从 .gitignore 文件中删除它)。

3、了解你的数据

我使用的是 KDE,因此我使用开源扫描程序 Filelight 来了解我的数据概况。Filelight 为你提供了一个图表,可让你查看每个目录的大小。你可以浏览每个目录以查看占用了空间的内容,然后回溯调查其他地方。这是一个令人着迷的系统视图,它使你可以以全新的方式看待你的文件。

 title=

使用 Filelight 或类似的实用程序查找不需要提交的意外数据缓存。例如,KDE 文件索引器(Baloo)生成了大量特定于其主机的数据,我绝对不希望将其传输到另一台计算机。

4、不要忽略你的 .gitignore 文件

在某些项目中,我告诉 Git 忽略我的 .gitignore 文件,因为有时我要忽略的内容特定于我的工作目录,并且我不认为同一项目中的其他开发人员需要我告诉他们 .gitignore 文件应该是什么样子。因为我的家目录仅供我使用,所以我 会忽略我的家目录的 .gitignore 文件。我将其与其他重要文件一起提交,因此它已在我的所有系统中被继承。当然,从家目录的角度来看,我所有的系统都是相同的:它们具有一组相同的默认文件夹和许多相同的隐藏配置文件。

5、不要担心二进制文件

我对我的系统进行了数周的严格测试,确信将二进制文件提交到 Git 绝对不是明智之举。我试过 GPG 加密的密码文件、试过 LibreOffice 文档、JPEG、PNG 等等。我甚至有一个脚本,可以在将 LibreOffice 文件添加到 Git 之前先解压缩,提取其中的 XML,以便仅提交 XML,然后重新构建 LibreOffice 文件,以便可以在 LibreOffice 中继续工作。我的理论是,提交 XML 会比使用 ZIP 文件(LibreOffice 文档实际上就是一个 ZIP 文件)会让 Git 存储库更小一些。

令我惊讶的是,我发现偶尔提交一些二进制文件并没有大幅增加我的 Git 存储库的大小。我使用 Git 已经很长时间了,我知道如果我要提交几千兆的二进制数据,我的存储库将会受到影响,但是偶尔提交几个二进制文件也不是不惜一切代价要避免的紧急情况。

有了这种信心,我将字体 OTF 和 TTF 文件添加到我的标准主存储库,以及 GDM 的 .face 文件以及其他偶尔小型二进制 Blob 文件。不要想太多,不要浪费时间去避免它。只需提交即可。

6、使用私有存储库

即使托管方提供了私人帐户,也不要将你的主目录提交到公共 Git 存储库。如果你像我一样,拥有 SSH 密钥、GPG 密钥链和 GPG 加密的文件,这些文件不应该出现在任何人的服务器上,而应该出现在我自己的服务器上。

我在树莓派上 运行本地 Git 服务器(这比你想象的要容易),因此我可以在家里时随时更新任何一台计算机。我是一名远程工作者,所以通常情况下就足够了,但是我也可以在旅行时通过 虚拟私人网络 访问我的计算机。

7、要记得推送

Git 的特点是,只有当你告诉它要推送改动时,它才会把改动推送到你的服务器上。如果你是 Git 的老用户,则此过程可能对你很自然。对于可能习惯于 Nextcloud 或 Syncthing 自动同步的新用户,这可能需要一些时间来适应。

Git 家目录

使用 Git 管理我的常用文件,不仅使我在不同设备上的生活更加便利。我知道我拥有所有配置和实用程序脚本的完整历史记录,这会鼓励我尝试新的想法,因为如果结果变得 很糟糕,则很容易回滚我的更改。Git 曾将我从在 .bashrc 文件中一个欠考虑的 umask 设置中解救出来、从深夜对包管理脚本的拙劣添加中解救出来、从当时看似很酷的 rxvt 配色方案的修改中解救出来,也许还有其他一些错误。在家目录中尝试 Git 吧,因为这些提交会让家目录融合在一起。


via: https://opensource.com/article/21/4/git-home

作者:Seth Kenlon 选题:lujun9972 译者:stevenzdg988 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

废弃电厂重启成为比特币矿场

十年前,纽约的 Greenidge 燃煤发电厂被废弃了,而如今,新的业主重新启用该工厂,用 106 兆瓦发电机,以天然气为燃料为比特币矿机提供能源。自去年 4 月以来,比特币的价格上涨了 800%,挖矿活动异常有利可图。为了搭上这股热潮,该工厂的新业主计划在明年年底前将处理比特币交易的电力增加四倍。环保人士担心纽约其他几十座退役或即将退役的化石燃料发电厂也效仿此做法。

我觉得相对于其它行业的能耗和环保影响,比特币还是很环保的,至少比游戏机环保。

纽约警察带机器狗出警带走了嫌疑人

纽约警察将一名戴着手铐的男子带离公共住宅区时,一只机器人执法犬在他们身后小跑。这条机器狗由波士顿动力公司制造,自去年 10 月以来,它被派往美国大都市的犯罪现场。警察表示,他们带着这只机器人狗出警,不过没有使用它。

以后,不只是机器警犬,可能还有机器警察和无处不在的摄像头。

谷歌 FloC 招致大量反对

谷歌新发布的 Chrome 浏览器中带有其所谓的 FLoC 技术,希望替代第三方 Cookie,改善用户隐私,并同时为浏览器用户提供有针对性的广告。

但这招致了大量的反对,基于 Chromium 的 Brave、Vivaldi 等浏览器明确表示将删除 FLoC 相关的代码。Vivaldi 称,“我们不会支持 FLoC API,并计划禁用它,无论它是如何实施的。它并不能保护隐私,当然也不利于用户。”而提供了全球 41% 的网站的 WordPress 核心团队提出了一项提案,要求默认屏蔽 FLoC 标识符。WordPress 将 FLoC 视作安全问题处理,急迫到等不及 7 月份发布的下一个主要版本,发布了修订版本阻止它,并将该补丁向下移植回各个旧版本的 WordPress。

按 Vivaldi 的说法,“你可能会访问一个高度个人化的网站,该网站可能使用或不使用 FLoC 广告,现在你访问的每一个其他网站都会被告知你的 FLoC ID,这表明你曾访问过某种特定的网站。”

姑且不论谷歌的初衷如何,但是目前的 FLoC 实现,非但没有解决第三方 Cookie 的问题,而且可能会变本加厉。

Stratis 在其 官方网站 上被描述为“易于使用的 Linux 本地存储管理”。请看这个 短视频,快速演示基础知识。该视频是在 Red Hat Enterprise Linux 8 系统上录制的。视频中显示的概念也适用于 Fedora 中的 Stratis。

Stratis 2.1 版本引入了对加密的支持。继续阅读以了解如何在 Stratis 中开始加密。

先决条件

加密需要 Stratis 2.1 或更高版本。这篇文章中的例子使用的是 Fedora 33 的预发布版本。Stratis 2.1 将用在 Fedora 33 的最终版本中。

你还需要至少一个可用的块设备来创建一个加密池。下面的例子是在 KVM 虚拟机上完成的,虚拟磁盘驱动器为 5GB(/dev/vdb)。

在内核密钥环中创建一个密钥

Linux 内核 密钥环 keyring 用于存储加密密钥。关于内核密钥环的更多信息,请参考 keyrings 手册页(man keyrings)。

使用 stratis key set 命令在内核钥匙圈中设置密钥。你必须指定从哪里读取密钥。要从标准输入中读取密钥,使用 -capture-key 选项。要从文件中读取密钥,使用 -keyfile-path <file> 选项。最后一个参数是一个密钥描述。它将稍后你创建加密的 Stratis 池时使用。

例如,要创建一个描述为 pool1key 的密钥,并从标准输入中读取密钥,可以输入:

# stratis key set --capture-key pool1key
Enter desired key data followed by the return key:

该命令提示我们输入密钥数据/密码,然后密钥就创建在内核密钥环中了。

要验证密钥是否已被创建,运行 stratis key list

# stratis key list
Key Description
pool1key

这将验证是否创建了 pool1key。请注意,这些密钥不是持久的。如果主机重启,在访问加密的 Stratis 池之前,需要再次提供密钥(此过程将在后面介绍)。

如果你有多个加密池,它们可以有一个单独的密钥,也可以共享同一个密钥。

也可以使用以下 keyctl 命令查看密钥:

# keyctl get_persistent @s
318044983
# keyctl show
Session Keyring
 701701270 --alswrv      0     0  keyring: _ses
 649111286 --alswrv      0 65534   \_ keyring: _uid.0
 318044983 ---lswrv      0 65534   \_ keyring: _persistent.0
1051260141 --alswrv      0     0       \_ user: stratis-1-key-pool1key

创建加密的 Stratis 池

现在已经为 Stratis 创建了一个密钥,下一步是创建加密的 Stratis 池。加密池只能在创建池时进行。目前不可能对现有的池进行加密。

使用 stratis pool create 命令创建一个池。添加 -key-desc 和你在上一步提供的密钥描述(pool1key)。这将向 Stratis 发出信号,池应该使用提供的密钥进行加密。下面的例子是在 /dev/vdb 上创建 Stratis 池,并将其命名为 pool1。确保在你的系统中指定一个空的/可用的设备。

# stratis pool create --key-desc pool1key pool1 /dev/vdb

你可以使用 stratis pool list 命令验证该池是否已经创建:

# stratis pool list
Name                     Total Physical   Properties
pool1   4.98 GiB / 37.63 MiB / 4.95 GiB      ~Ca, Cr

在上面显示的示例输出中,~Ca 表示禁用了缓存(~ 否定了该属性)。Cr 表示启用了加密。请注意,缓存和加密是相互排斥的。这两个功能不能同时启用。

接下来,创建一个文件系统。下面的例子演示了创建一个名为 filesystem1 的文件系统,将其挂载在 /filesystem1 挂载点上,并在新文件系统中创建一个测试文件:

# stratis filesystem create pool1 filesystem1
# mkdir /filesystem1
# mount /stratis/pool1/filesystem1 /filesystem1
# cd /filesystem1
# echo "this is a test file" > testfile

重启后访问加密池

当重新启动时,你会发现 Stratis 不再显示你的加密池或它的块设备:

# stratis pool list
Name   Total Physical   Properties
# stratis blockdev list
Pool Name   Device Node   Physical Size   Tier

要访问加密池,首先要用之前使用的相同的密钥描述和密钥数据/口令重新创建密钥:

# stratis key set --capture-key pool1key
Enter desired key data followed by the return key:

接下来,运行 stratis pool unlock 命令,并验证现在可以看到池和它的块设备:

# stratis pool unlock
# stratis pool list
Name                      Total Physical   Properties
pool1   4.98 GiB / 583.65 MiB / 4.41 GiB      ~Ca, Cr
# stratis blockdev list
Pool Name   Device Node   Physical Size   Tier
pool1       /dev/dm-2          4.98 GiB   Data

接下来,挂载文件系统并验证是否可以访问之前创建的测试文件:

# mount /stratis/pool1/filesystem1 /filesystem1/
# cat /filesystem1/testfile
this is a test file

使用 systemd 单元文件在启动时自动解锁 Stratis 池

可以在启动时自动解锁 Stratis 池,无需手动干预。但是,必须有一个包含密钥的文件。在某些环境下,将密钥存储在文件中可能会有安全问题。

下图所示的 systemd 单元文件提供了一个简单的方法来在启动时解锁 Stratis 池并挂载文件系统。欢迎提供更好的/替代方法的反馈。你可以在文章末尾的评论区提供建议。

首先用下面的命令创建你的密钥文件。确保用之前输入的相同的密钥数据/密码来代替passphrase

# echo -n passphrase > /root/pool1key

确保该文件只能由 root 读取:

# chmod 400 /root/pool1key
# chown root:root /root/pool1key

/etc/systemd/system/stratis-filesystem1.service 创建包含以下内容的 systemd 单元文件:

[Unit]
Description = stratis mount pool1 filesystem1 file system
After = stratisd.service

[Service]
ExecStartPre=sleep 2
ExecStartPre=stratis key set --keyfile-path /root/pool1key pool1key
ExecStartPre=stratis pool unlock
ExecStartPre=sleep 3
ExecStart=mount /stratis/pool1/filesystem1 /filesystem1
RemainAfterExit=yes

[Install]
WantedBy = multi-user.target

接下来,启用服务,使其在启动时运行:

# systemctl enable stratis-filesystem1.service

现在重新启动并验证 Stratis 池是否已自动解锁,其文件系统是否已挂载。

结语

在今天的环境中,加密是很多人和组织的必修课。本篇文章演示了如何在 Stratis 2.1 中启用加密功能。


via: https://fedoramagazine.org/getting-started-with-stratis-encryption/

作者:briansmith 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

企业数据分析旨在将数据可视化带给日常商务用户。

 title=

企业数据分析 Enterprise Data Analytics EDA) 是一个网页应用,它可以通过一个简单、清晰的界面来获取信息。

在巴塞罗那开源分析公司 Jortilles 工作几年后,我们意识到,现代世界强制性地收集数据,但普通人没有简单的方法来查看或解释这些数据。有一些强大的开源工具可用于此目的,但它们非常复杂。我们找不到一个工具设计成能让没有什么技术能力的普通人轻松使用。

我们之所以开发 EDA,是因为我们认为获取信息是现代组织的要求和义务,并希望为每个人提供获取信息的机会。

 title=

可视化你的数据

EDA 使用人们已经理解的商业术语提供了一个数据模型。你可以选择你想要的信息,并可以以你想要的方式查看它。它的目标是对用户友好,同时又功能强大。

EDA 通过元数据模型将数据库中的信息可视化和丰富化。它可以从 BigQuery、Postgres、MariaDB、MySQL 和其他一些数据库中读取数据。这就把技术性的数据库模型转化为熟悉的商业概念。

它还设计为加快信息传播的速度,因为它可以利用已经存储在数据库中的数据。EDA 可以发现数据库的拓扑结构,并提出业务模型。如果你设计了一个好的数据库模型,你就有了一个好的业务模型。EDA 还可以连接到生产服务器,提供实时分析。

这种数据和数据模型的结合意味着你和你组织中的任何人都可以分析其数据。然而,为了保护数据,你可以定义数据安全,可以精确到行,以授予正当的人访问正当的数据。

EDA 的一些功能包括:

  • 自动生成数据模型
  • 一致的数据模型,防止出现不一致的查询
  • 高级用户的 SQL 模式
  • 数据可视化:

    • 标准图表(如柱状图、饼状图、线状图、树状图)
    • 地图整合(如 geoJSON shapefile、纬度、经度)
    • 电子邮件提醒,可通过关键绩效指标 (KPI) 来定义
  • 私人和公共信息控制,以启用私人和公共仪表板,你可以通过链接分享它。
  • 数据缓存和程序刷新。

如何使用 EDA

用 EDA 实现数据可视化的第一步是创建数据模型。

创建数据模型

首先,在左侧菜单中选择 “New Datasource”。

接下来,选择你的数据存储的数据库系统(如 Postgres、MariaDB、MySQL、Vertica、SqlServer、Oracle、Big Query),并提供连接参数。

EDA 将自动为你生成数据模型。它读取表和列,并为它们定义名称以及表之间的关系。你还可以通过添加虚拟视图或 geoJSON 图来丰富你的数据模型。

制作仪表板

现在你已经准备好制作第一个仪表板了。在 EDA 界面的主页面上,你应该会看到一个 “New dashboard” 按钮。点击它,命名你的仪表板,并选择你创建的数据模型。新的仪表板将出现一个面板供你配置。

要配置面板,请单击右上角的 “Configuration” 按钮,并选择你要做的事情。在 “Edit query” 中,选择你要显示的数据。这将出现一个新的窗口,你的数据模型由实体和实体的属性表示。选择你要查看的实体和你要使用的属性。例如,对于名为 “Customers” 的实体,你可能会显示 “Customer Name”,对于 “Sales” 实体,你可能希望显示 “Total Sales”。

接下来,运行一个查询,并选择你想要的可视化。

 title=

你可以添加任意数量的面板、过滤器和文本字段,所有这些都有说明。当你保存仪表板后,你可以查看它,与同事分享,甚至发布到互联网上。

获取 EDA

最快的方法是用 公开演示 来查看 EDA。但如果你想自己试一试,可以用 Docker 获取最新的 EDA 版本:

$ docker run -p 80:80 jortilles / eda: latest

我们还有一个 SaaS 选项,适用于任何想要使用 EDA 而无需进行安装、配置和持续更新的用户。你可以在我们的网站上查看 云选项

如果你想看看它的实际运行情况,你可以在 YouTube 上观看一些 演示

EDA 正在持续开发中,你可以在 GitHub 上找到它的 源代码


via: https://opensource.com/article/21/4/visualize-data-eda

作者:Juanjo Ortilles 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Linus Torvalds 青睐 Rust,并称 C++ 是“一门垃圾语言”

谷歌现在支持用 Rust 来开发安卓操作系统,也在评估将 Rust 用于 Linux 内核的开发。Linux 创始人 Linus Torvalds 对此表示,“目前 Linux 内核对 Rust 的支持还没到位,或许需要等到 5.14 时。”在 Linux 内核中支持 Rust 的第一个补丁已经发布了,已经为之后的支持打好了基础。

而在谈及 C++ 时,Torvalds 说,“C++ 解决不了 C 的任何问题,而且只会让事情变得更糟。它真的是一种垃圾语言。……任何说‘用 C++ 重写内核’的人都太无知了。”

Torvalds 对 C++ 是深恶痛绝的,看来 Rust 有望成为 Torvalds 的新宠,不知道他是不是已经在用 Rust 编程了?

微软正在统一所有平台的 Edge 代码库

当微软推出 PC 上的新的基于 Chromium 的 Edge 浏览器时,它还改变了 iOS 和安卓上的 Edge 浏览器的徽标,让人觉得这是一个统一的新 Edge 家族。但实际情况是,iOS 和安卓上的 Edge 浏览器和 PC 上的并不一样。在 iOS 上,Edge 浏览器目前使用的是 WebKit 渲染引擎,而在安卓上使用的是 Blink 渲染引擎。

而现在,微软正在向安卓的金丝雀测试人员提供一个新 Edge 浏览器的版本:这个版本与 PC 上的新 Edge 有着相同的内核。微软官员表示,他们的目标是让新的 Edge 成为一个真正的跨平台浏览器,基于相同的核心代码库。当然,这不是说手机端的 Edge 浏览器会复制桌面端浏览器每一个功能。

统一代码库当然是不错的,不过对于 iOS ,或许还是得受限于 Apple 政策而不能更换渲染引擎。

FTP 协议诞生五十周年

1971 年 4 月 16 日是 RFC 114 文档的发表日期,它标志着 FTP 协议的诞生。当时 TCP/IP 还不存在,telnet 还很新鲜。后来 FTP 陆续加入了对 TCP/IP 的支持、引入了安全扩展 FTPS、支持 IPv6 等等。

昨天我们报道过,和 Chrome 一样,Firefox 也将要取消浏览器对 FTP 支持。但在 50 年后的今天,互联网上仍然有数百万台 FTP 服务器。

这里面或许有部分原因是 FTP 协议不够安全,但是我觉得更主要是的现在 HTTP 协议已经逐渐取代了 FTP 协议用来分享文件的作用。

在 Fedora Linux 上安装、配置并开始使用 bspwm 窗口管理器。

 title=

有些人喜欢重新布置家具。还有的人喜欢尝试新鞋或定期重新装修他们的卧室。我呢,则是尝试 Linux 桌面。

在对网上看到的一些不可思议的桌面环境流口水之后,我对一个窗口管理器特别好奇:bspwm

 title=

我喜欢 i3 窗口管理器已经有一段时间了,我很喜欢它的布局方式和上手的便捷性。但 bspwm 的某些特性吸引了我。有几个原因让我决定尝试一下:

  • 它\_只是\_一个窗口管理器(WM)。
  • 它由几个易于配置的脚本管理。
  • 它默认支持窗口之间的间隙。

可能是最需要指出的第一个原因是它只是一个窗口管理器。和 i3 一样,默认情况下没有任何图形化的那些花哨东西。你当然可以随心所欲地定制它,但\_你\_需要付出努力来使它看起来像你想要的。这也是它吸引我的部分原因。

虽然它可以在许多发行版上使用,但在我这个例子中使用的是 Fedora Linux。

安装 bspwm

bspwm 在大多数常见的发行版中都有打包,所以你可以用系统的包管理器安装它。下面这个命令还会安装 sxkhd,这是一个 X 窗口系统的守护程序,它“通过执行命令对输入事件做出反应”;还有 dmenu,这是一个通用的 X 窗口菜单:

dnf install bspwm sxkhd dmenu

因为 bspwm 只是一个窗口管理器,所以没有任何内置的快捷键或键盘命令。这也是它与 i3 等软件的不同之处。所以,在你第一次启动窗口管理器之前,请先配置一下 sxkhd

systemctl start sxkhd
systemctl enable sxkhd

这样就可以在登录时启用 sxkhd,但你还需要一些基本功能的配置:

curl https://raw.githubusercontent.com/baskerville/bspwm/master/examples/sxhkdrc --output ~/.config/sxkhd/sxkhdrc

在你深入了解之前,不妨先看看这个文件,因为有些脚本调用的命令可能在你的系统中并不存在。一个很好的例子是调用 urxvtsuper + Return 快捷键。把它改成你喜欢的终端,尤其是当你没有安装 urxvt 的时候:

#
# wm independent hotkeys
#
   
# terminal emulator
super + Return
        urxvt
   
# program launcher
super + @space
        dmenu_run

如果你使用的是 GDM、LightDM 或其他显示管理器(DM),只要在登录前选择 bspwm 即可。

配置 bspwm

当你登录后,你会看到屏幕上什么都没有。这不是你感觉到的空虚感。而是无限可能性!你现在可以开始摆弄桌面环境的所有部分了。你现在可以开始摆弄这些年你认为理所当然的桌面环境的所有部分了。从头开始构建并不容易,但一旦你掌握了诀窍,就会非常有收获。

任何窗口管理器最困难的是掌握快捷键。你开始会很慢,但在很短的时间内,你就可以只使用键盘在系统中到处操作,在你的朋友和家人面前看起来像一个终极黑客。

你可以通过编辑 ~/.config/bspwm/bspwmrc,在启动时添加应用,设置桌面和显示器,并为你的窗口应该如何表现设置规则,随心所欲地定制系统。有一些默认设置的例子可以让你开始使用。键盘快捷键都是由 sxkhdrc 文件管理的。

还有更多的开源项目可以安装,让你的电脑看起来更漂亮,比如用于桌面背景的 Feh、状态栏的 Polybar、应用启动器的 Rofi,还有 Compton 可以给你提供阴影和透明度,可以让你的电脑看起来焕然一新。

玩得愉快!


via: https://opensource.com/article/21/4/bspwm-linux

作者:Stephen Adams 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出