完全集成的 Sway 设置
作为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 栏。
[
](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)
左上角 - 财务
我需要管理我的财务和投资的信息。
[
](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)
[
](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 状态的信息。
[
](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 网络模块
右上角 - 任务、托盘和通知
任务、通知、徽章和托盘图标。
[
](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 栏。
[
](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 工作区。
[
](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 和内存使用情况、电池状态、能耗、屏幕亮度和音量。
[
](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 一起使用
右下角 - 天气、日历和事件
日期和时间、天气信息和日历事件。
[
](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是我公司的第一个字母
结论
在这篇文章中,我概述了我的桌面是如何工作的。
通过这种设置,我能够实现几乎零摩擦的设置,这可能是最好的选择,直到机器可以直接读取你的大脑。
有关更多信息和实施细节,请阅读每个链接的文章,前提是它们已经发布。
更多推荐




所有评论(0)