作为i3wm的长期用户,当我发现大约Wayland和Sway时,这一举动感觉像是一种自然演变。

我不会过多关注 Wayland 的诸多好处,也不会深入探讨为什么耕种窗口管理器最适合我。

在这篇文章中,我将专注于描述我的环境,以及我如何获得我需要的所有信息和命令,只需几个按键。

对于每个单独的“模块”,我将创建一个单独的帖子来描述它的开发和配置并在此处链接。

请定期查看或订阅,以了解何时发布新信息。

组件

此设置涉及许多不同的软件,例如用于管理我所有配置的 Nix(OS),但我现在不会关注可重复性,仅列出每天用于实现我的目标的软件。

  • Sway- 平铺窗口管理器

  • Waybar- 一个 Wayland 酒吧

  • Wofi- 类似 dmenu 的 rofi 替代品

  • Taskwarrior- 任务管理

  • vdirsyncer- 通过 CalDav 获取日历事件

  • khal- 从 vdirsyncer 读取日历事件

  • mbsync- 从多个帐户获取邮件并以 Maildir 格式存储它们

  • goimapnotify- 减少对邮件服务器的请求数量

  • mu- 索引所有Maildir邮件

  • wf-recorder- 记录桌面

  • grimshot- 带有 grim + slurp 的屏幕截图

  • wl-clipboard- 管理自动复制/粘贴

  • clipman- 管理和记录剪贴板

  • bitwarden-cli- 存储和检索敏感数据

  • swaylock- 屏幕锁

  • mako- 通知守护进程

  • kanshi- 自动显示配置

  • wdisplays- 手动显示配置

  • systemd- 服务和经常性任务

  • Python 和 Bash - 几个自定义脚本

除了所有这些软件,我还利用一些服务来提供我需要的功能。

  • Chess.com- 我主要在 Chess.com 上玩国际象棋,并使用他们的 API 在轮到我下棋时收到通知

  • CoinMarketCap- 用于获取加密货币代码数据

  • AwesomeAPI- 用于获取外汇代码数据

  • AWS CheckIP- 用于获取我的外部 IP

  • wttr.in- 用于天气数据

对于 Waybar 模块,我没有让 Waybar 自己处理命令调用,而是使用 systemd 计时器并将输出保存到特定文件夹~/.cache/waybar/output,然后我使用 Waybar 将其保存为cat

原因是 Waybar 为您拥有的每个监视器复制模块,有效地运行您的脚本两次(或更多)。_

桌面

就像上面提到的,我不会详细介绍我使用耕种窗口管理器的细节,而是专注于显示我的信息所在的位置。

桌面可以分为三个区域,每个区域包含几个部分。

顶部区域

顶部区域是带有三个模块“集群”的 Waybar 栏。

[2021-02-28T00:11:57,845580127-03:00.png](https://res.cloudinary.com/practicaldev/image/fetch/s--oJr-tahm--/c_limit %2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://blog.hadenes.io/uploads/LmMw0Fm8a.png)

左上角 - 财务

我需要管理我的财务和投资的信息。

[2021-02-28T00:20:57,192740259-03:00.png](https://res.cloudinary.com/practicaldev/image/fetch/s--zp8rQphv--/c_limit%2Cf_auto %2Cfl_progressive%2Cq_auto%2Cw_880/https://blog.hadenes.io/uploads/nTISdNltK.png)

[2021-02-28T00:19:29,154590293-03:00.png](https://res.cloudinary.com/practicaldev/image/fetch/s--yDlgd1ve--/c_limit%2Cf_auto %2Cfl_progressive%2Cq_auto%2Cw_880/https://blog.hadenes.io/uploads/IFKaJroVO.png)

  • itau.py- 包含我的主要银行余额和对账单,每 15 分钟自动更新一次

  • nubank.py- 包含我的二级银行余额和对帐单,也是卡对帐单,每 15 分钟自动更新一次

  • forex.py- 几种不同货币的汇率,颜色编码

  • crypto.py- 几种不同加密货币的汇率,颜色编码,价格波动为 1h、24h 和 7d 间隔

顶级中心-网络

有关我当前连接和 VPN 状态的信息。

[network.png](https://res.cloudinary.com/practicaldev/image/fetch/s--l2hwphEl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://blog.hadenes .io/uploads/5gcMc4KZK.png)

  • nordvpn.py- 显示 NordVPN 连接状态并允许连接/断开连接

  • fortinet.sh- 显示 Fortinet SSL VPN 连接状态并允许断开连接

  • external_ip.py- 显示您的外部/公共 IP

  • Waybar Network- 默认 Waybar 网络模块

右上角 - 任务、托盘和通知

任务、通知、徽章和托盘图标。

[topright.png](https://res.cloudinary.com/practicaldev/image/fetch/s--eGu6g8RB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://blog.hadenes .io/uploads/1uyOj5C85.png)

  • opsgenie.py- 显示我的待命轮换状态

  • pomodoro.py- 番茄定时器

  • task.py- 显示我的Taskwarrior的任务计数和列表

  • mail.py- 显示我的邮件数

  • chess.py- 当我打开 Chess.com 时显示通知

  • recorder.sh- 如果正在录制屏幕,则显示一个标记

底部区域

底部区域是带有三个模块“集群”的 Waybar 栏。

[2021-02-28T00:47:17,622807852-03:00.png](https://res.cloudinary.com/practicaldev/image/fetch/s--WcNXGgD9--/c_limit%2Cf_auto %2Cfl_progressive%2Cq_auto%2Cw_880/https://blog.hadenes.io/uploads/ETp8Ga0XW.png)

左下 - 摇摆

这里没什么特别的,只有Sway 工作区。

[bleft.png](https://res.cloudinary.com/practicaldev/image/fetch/s--k-LOCGe_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://blog .hadenes.io/uploads/KF8gyFkS5.png)

底部中心 - 硬件

一般硬件信息,如温度、CPU 和内存使用情况、电池状态、能耗、屏幕亮度和音量。

[bcenter.png](https://res.cloudinary.com/practicaldev/image/fetch/s--uWjDY5UL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://blog.hadenes .io/uploads/3xt5Q6Dqv.png)

  • Waybar Temperature- 默认 Waybar 温度模块

  • Waybar CPU- 默认 Waybar CPU 模块

  • Waybar 内存- 默认 Waybar 内存模块

  • Waybar 电池- 默认 Waybar 电池模块

  • power.py- 显示能耗信息

  • Waybar Backlight- 默认 Waybar 背光/亮度模块

  • Waybar PulseAudio- 默认 Waybar PulseAudio 模块,如果启用 PulseAudio 兼容性,则与 Pipewire 一起使用

右下角 - 天气、日历和事件

日期和时间、天气信息和日历事件。

[bright.png](https://res.cloudinary.com/practicaldev/image/fetch/s--jLJdkM8o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://blog.hadenes .io/uploads/XqfGjVGZP.png)

  • weather.py- 使用 wttr.in 的天气信息

  • khal.py- 使用 Khal 的日历事件信息,带有会议链接解析以实现一键加入

  • Waybar Clock- 默认 Waybar 时钟模块

中心

中心部分是我的程序/窗口所在的位置,也是我的 Wifi 菜单弹出以执行一系列操作的位置。

  • bw.py- 与 BitWarden CLI 交互以获取登录名、密码和 TOTP 代码

  • currency.py- 快速货币转换

  • hash.py- 快速散列文本

  • ip.py- 快速IP信息检索

  • notes.sh- 快速记笔记

  • process_kill.sh- 快速杀进程

  • snippets.py- 快速访问片段

  • ssh.py- 快速连接到 SSH 主机

  • task_annotate.py, task_create.py, task_done.py, task_info.py 和 task_remove.py- 快速任务管理和注册

  • timezone.py- 快速时区信息

  • uuid-gen.py- 快速生成 UUID

  • wifi.sh- 快速无线连接

键绑定

为了使用上述所有内容,我求助于很容易映射到我脑海中的键绑定。

这是一个非详尽的列表。

就我而言,$mod是左超级键(Windows)

摇摆

用于与 Sway 及其窗口交互的键绑定

键绑定

影响

助记符

$mod + Shift + q

杀死焦点窗口

Q代表退出

$mod + Shift + r

重新加载摇摆

R用于重新加载

$mod +(左、右、上、下)

向左、向右、向上或向下对焦

嗯,方向

$mod + Shift +(左、右、上、下)

向左、向右、向上或向下移动焦点窗口

嗯,方向

$mod + f

将焦点窗口放在全屏上

F代表全屏

$mod + Shift + 空格

切换聚焦窗口的倾斜/浮动模式

空间非常中心,窗口模式也是如此

$mod + Shift + 减号

将焦点窗口移动到暂存器(视野外)

减号减去东西,我正在减去这个窗口

$mod + 减号

循环浏览暂存器窗口,使用 $mod + Shift + Space 将其全部恢复

减号减去东西,我减去了这个窗口,现在我要把它带回来

$mod + (1-9)

将工作空间更改为指定的工作空间编号

数字就是工作空间,没有秘密

$mod + Shift + (1-9)

将焦点窗口移动到指定的工作区编号

数字就是工作空间,没有秘密

$mod + Control +(左、右、上、下)

将当前工作区向左、向右、向上或向下移动到显示器

嗯,方向

调整大小

用于调整窗口大小的键绑定

键绑定

影响

助记符

$mod + r

进入调整大小模式

R 用于调整大小

$mod + r +(左、右、上、下)

增大或减小指定方向上的焦点窗口

嗯,方向

任务

用于管理任务的键绑定,取决于task.py

键绑定

影响

助记符

$mod + t

进入任务模式

T代表任务

$mod + t + n

创建新任务

N代表新

$mod + t + v

创建一个预先填充剪贴板内容的新任务

V 与 Ctrl+V 相同

$mod + t + d

将任务标记为完成

D是完成

$mod + t + s

与服务器运行任务同步同步任务

S 用于同步

$mod + t + a

使用多行文本注释任务

A是注释

$mod + t + i

通过运行 task info 获取完整的任务信息

我是为了信息

$mod + t + r

删除任务

R是删除

$mod + t + p

切换番茄计时器

P代表番茄

$mod + t + b

结束番茄钟会话

没有,真的

应用

打开应用程序的键绑定

键绑定

影响

助记符

$mod + 一个

进入申请模式

A是申请

$mod + e

$mod + a + e

打开默认编辑器(在我的例子中,Emacs)

$mod + g

$mod + a + g

打开默认浏览器(在我的情况下,勇敢)

$mod + a + n

打开文件管理器(在我的例子中是 Nautilus)

N 代表鹦鹉螺

$mod + a + o

打开 OBS

O 代表 OBS

$mod + a + s

打开多个聊天应用程序(Telegram、Slack、WhatsApp)

S代表社交

$mod + 返回

$mod + a + t

打开默认终端模拟器(在我的例子中,Kitty)

$mod + a + z

打开缩放

Z 代表缩放

记录和流式传输

键绑定以快速记录 OBS 外的屏幕

键绑定

影响

助记符

$mod + m + r

进入录音模式

M代表模式,R代表记录

$mod + m + r + r

在当前监视器上开始新的全屏录制

R 用于记录

$mod + m + r + w

开始当前焦点窗口的新录制

W代表窗口

$mod + m + r + s

停止当前正在运行的录制

S代表停止

片段

用于获取和创建片段的键绑定

键绑定

影响

助记符

$mod + m + s

进入片段模式

M 代表模式,S 代表片段

$ mod + s

$mod + m + s + s

打开片段选择对话框

$mod + m + s + n

创建一个新的片段

N代表新

VPN

用于切换 VPN 连接的键绑定

键绑定

影响

助记符

$mod + 输入

进入VPN模式

V代表VPN

$mod + in + in

切换默认 VPN 提供商(在我的例子中是 NordVPN)

V代表VPN

$mod + v + n

切换我公司的 VPN

N是我公司的第一个字母

结论

在这篇文章中,我概述了我的桌面是如何工作的。

通过这种设置,我能够实现几乎零摩擦的设置,这可能是最好的选择,直到机器可以直接读取你的大脑。

有关更多信息和实施细节,请阅读每个链接的文章,前提是它们已经发布。

Logo

更多推荐