目前使用的配置.config.zipsddm.zip

参考:

https://cascade.moe/posts/hyprland-configure/

https://stormckey.github.io/blog/arch-linux--hyprland-%E5%AE%89%E8%A3%85%E5%85%A8%E6%B5%81%E7%A8%8B/

https://github.com/MaxVerevkin/wl-gammarelay-rs

https://www.cnblogs.com/Masquer/p/13920104.html

安装 Hyprland

sudo pacman -S hyprland

Hyprland 配置文件位置为:~/.config/hypr/hyprland.conf

如果这个文件不存在的话,创建这个文件并将样例配置文件的内容复制到这个文件当中。在这之后重启

通常不需要对Nvidia显卡进行额外配置,如果遇到问题,请参考官方wiki

安装登陆管理器

登陆管理器可以让你在进入系统时显示图形界面而不是命令行

可以在Wiki中挑选适合你的登陆管理器

这里仅对我使用的SDDM作介绍

安装SDDM

sudo pacman -S sddm

主题配置:

在github中直接搜索sddm或者hyprland可以找到很多主题

通常会告诉你安装方法

/usr/share/sddm/themes/ 中复制你的主题

/etc/sddm.conf 中设置主题

配置 Hyprland

Hyprland 配置文件大多数配置在保存后能够及时重载,不需要进行重启

默认使用Super+M退出Hyprland

基本的

默认hyprland使用的终端是kitty

sudo pacman -S kitty

ctrl+Q即可启动

文件管理器推荐使用Thunar

sudo pacman -S thunar

可在hyprland中配置ctrl+E启动

显示器

显示器设置主要关于显示器的分辨率、位置与缩放比例

显示器设置的格式如下:

monitor = monitor_name, resolution, position, scale

你可以通过指令 hyprctl monitors 来列出所有可用的显示器。

在这里,我的配置如下:

monitor=,1920x1080@60,auto,1

输入

这一部分主要与键盘、鼠标和触摸板的配置有关。通常来讲默认配置也能够正常使用。

input {
    kb_layout = us              # 键盘布局
    follow_mouse = 1            # 窗口焦点是否随光标移动
    touchpad {
        natural_scroll = no     # 触摸板自然滚动
    }
    sensitivity = 0             # 鼠标灵敏度
    accel_profile = flat        # 鼠标加速的配置方案, flat 为禁用鼠标加速
}

总体设置

这一部分主要与窗口的布局窗口边框的设置有关。

general {
    gaps_in = 6         # 窗口之间的间隙大小
    gaps_out = 12       # 窗口与显示器边缘的间隙大小
    border_size = 2     # 窗口边框的宽度
    col.active_border = rgba(cceeffbb)      # 活动窗口的边框颜色 
    col.inactive_border = rgba(595959aa)    # 非活动窗口的边框颜色

    layout = dwindle    # 窗口布局
}

窗口装饰

这一部分主要和窗口的圆角、毛玻璃、投影等效果有关。

decoration {
    rounding = 12       # 圆角大小
    blur = yes          # 模糊效果是否启用
    blur_size = 5       # 模糊半径
    blur_passes = 1     # 模糊过滤次数
    blur_new_optimizations = on     # 模糊优化,通常保持打开

    drop_shadow = yes   # 窗口投影是否启用
    shadow_range = 4    # 投影大小
    shadow_render_power = 3     # 投影强度,不过我不太明白这是什么意思
    col.shadow = rgba(1a1a1aee)     # 投影颜色
}

动画

这一部分主要和窗口的过渡动画有关。

animations {
    enabled = yes   # 是否启用动画

    bezier = myBezier, 0.05, 0.9, 0.1, 1.05     # 自定义的贝塞尔曲线

    animation = windowsMove, 1, 7, myBezier             # 窗口移动动画
    animation = windowsIn, 1, 3, default, popin 90%     # 窗口打开动画
    animation = windowsOut, 1, 3, default, popin 90%    # 窗口关闭动画
    animation = border, 1, 2, default       # 边框颜色动画
    animation = fade, 1, 3, default         # 窗口各种 Fade 效果(打开、关闭、阴影、活动与非活动窗口切换)的动画
    animation = workspaces, 1, 3, default   # 工作区切换动画
}

动画的格式如下:

animation = action, on_off, speed, curve, style
animation = action, on_off, speed, curve
  • action: 动画名称,这些动作可以在动画树中找到。

  • on_off: 是否启用动画。

  • speed: 动画持续的时间,以分秒(100 毫秒)计数。

  • curve: 动画使用的贝塞尔曲线名称。

  • style: 动画的风格(例如可以对窗口使用 fadepopin 两种风格),这个选项是可选的。

按键绑定

这里是一部分的按键绑定。

$mainMod = SUPER

bind = $mainMod, C, killactive,             # 关闭活动窗口
bind = $mainMod, T, exec, alacritty         # 打开终端模拟器 Alacritty
bind = $mainMod, M, exit,                   # 退出 Hyprland
bind = $mainMod, E, exec, nautilus          # 打开文件管理器 Nautilus
bind = $mainMod, V, togglefloating,         # 切换窗口浮动
bind = $mainMod, R, exec, tofi-drun | xargs hyprctl dispatch exec --    # 打开 tofi 应用启动器
bind = $mainMod, P, pseudo, # dwindle       # 切换伪 tiling 模式,伪 tiling 模式的窗口保持它们浮动时的大小
bind = $mainMod, J, togglesplit, # dwindle  # 切换窗口分割方向

...

$mainMod 键在此设置为了 SUPER,即 Super 键。通常取消 Windows 键即为 Super 键。

还有一部分关于工作区和窗口移动的按键绑定配置,在此不再展示。

Waybar

Waybar 为 Wayland 提供了一个高度可定制的状态栏。

$ sudo pacman -S waybar

在hyprland.conf中加入自启动

exec-once = waybar

配置 Waybar

Waybar 拥有两个主要的配置文件,它们分别是:

  • ~/.config/waybar/config: 一个 JSON 文件,配置 Waybar 显示的内容等。

  • ~/.config/waybar/style.css: 一个 CSS 文件,配置 Waybar 的样式

Waybar 的内容配置大体如下:

{
    "layer": "top",     // 显示的层,top 为最顶层
    "position": "top",  // 在屏幕的哪边显示,top 为顶部
    "height": 40,       // 高度
    "spacing": 6,       // 各 module 之间的距离
    // 左边的 modules
    "modules-left": ["wlr/workspaces", "hyprland/window"],
    // 正中间的 modules
    "modules-center": [],
    // 最右边的 modules
    "modules-right": ["tray", "network", "pulseaudio", "memory", "cpu", "clock"],
    // module 各自的配置等
    "wlr/workspaces": {
        // ...
    }
    // ...
}

module 各自的配置详见 Waybar GitHub Wiki

Waybar 的样式配置是通过一个 CSS 文件来实现的。关于 Waybar 样式的配置详见 Styling - Waybar GitHub Wiki

可以在hyprland.conf中绑定按键来实现自动隐藏,按键唤出

bindt = , ALT_L, exec, pkill -SIGUSR1 waybar
bindrt = ALT, ALT_L, exec, pkill -SIGUSR1 waybar

设置 Waybar 自启动

向 Hyprland 的配置文件中加入这一行:

exec-once = waybar

重启 Hyprland 即可看到 Waybar。如果等不及重启,也可以直接执行 waybar 来启动 Waybar。

mako

mako 是一个为 Wayland 打造的轻量级的通知 Daemon。尽管 mako 非常轻量级,但却依然有许多可以配置的地方。

配置 mako

mako 的配置文件位于 ~/.config/mako/config,内容大致如下:

sort=-time                  ; 排序方式
layer=overlay               ; 显示层级
background-color=#2e34407f  ; 背景颜色
width=420                   ; 通知宽度
height=120                  ; 通知高度
border-size=3               ; 边框宽度
border-color=#99c0d0        ; 边框颜色
border-radius=12            ; 圆角半径
icons=0                     ; 是否启用图标
max-icon-size=64            ; 图标大小
default-timeout=5000        ; 超时时间
ignore-timeout=0            ; 忽略超时时间
font="Noto Sans CJK SC" 14  ; 字体
margin=12                   ; 通知的外边距
padding=12,20               ; 通知的内边距

[urgency=low]               ; 低紧急度
border-color=#cccccc

[urgency=normal]            ; 正常紧急度
border-color=#99c0d0

[urgency=critical]          ; 高紧急度
border-color=#bf616a
default-timeout=0

注意

以上的配置仅仅作为展示使用,不是一个有效的配置文件,因为其包含了注释。

在修改配置文件之后,用 makoctl 来重载配置文件:

$ makoctl reload

在hyprland.conf中加入自启动

exec-once = mako

发送通知

你可以通过 notify-send 指令来发送一个通知,以此观察修改配置文件之后的效果。

$ notify-send 'Hello world!' 'This is an example notification.' -u normal

应用启动器

HyprlandWiki中挑选适合你的应用启动器,这是推荐wofi

wofi是一个简单但快速的应用启动器。和 mako 一样,尽管十分简单,但同样也有许多可以配置的地方。

配置 wofi

去Github上寻找别人弄好的配置文件

配置文件十分简洁,一看就懂

按键绑定/剪切板

可以用wofi启动剪切板,窗口

这是启动剪切板

sudo pacman -S cliphist
exec-once = wl-paste --watch cliphist store
bind = $mainMod, V, exec, cliphist list | wofi --dmenu | cliphist decode | wl-copy

常规来说

bind = $mainMod, R, exec, wofi --show drun

就可以显示应用

可以写一个脚本显示窗口来快速切换

#!/usr/bin/env fish
set win_addr NULL
set win_addr (hyprctl clients -j|jq -r '.[] | select(.title != "") | "\(.address)[窗口]   [位于工作区:\(.workspace.id)]   \(.title)  @\(.class)"'|wofi --show dmenu,drun -i -M fuzzy |cut -f1 -d\[|head -1)
#-i 不考虑大小写; -M fuzzy 模糊搜索

if echo $win_addr | grep ^0x 1>/dev/null
	hyprctl dispatch focuswindow address:"$win_addr"
end

然后绑定按键就可以显示窗口了

bind = $mainMod, R, exec, 脚本路径

此脚本需要使用fish

sudo pacman -S fish

fish可以很大程度上提升命令行体验

可以将fish作为默认shell:

echo $SHELL
cat /etc/shells
chsh -s /usr/bin/fish

输入法

推荐使用fcitx5

sudo pacman -S fcitx5-im fcitx5-chinese-addons
fcitx5 --replace -d

启动 fcitx5-configtool,去掉 only show current languages,滑到底双击 pinyin,apply

不出意外此时 ctrl+space 就可以切换到输入法了

在hyprland.conf中加入自启动

exec-once = fcitx5 -d

亮度与色温

亮度调整程序推荐使用wl-gammarelay-rs

如果aur安装软件使用的是yay的话

yay wl-gammarelay-rs

添加至Waybar

在~/.config/waybar/config中添加

    "custom/wl-gammarelay-temperature": {
        "format": "{} ",
        "exec": "wl-gammarelay-rs watch {t}",
        "on-scroll-up": "busctl --user -- call rs.wl-gammarelay / rs.wl.gammarelay UpdateTemperature n +100",
        "on-scroll-down": "busctl --user -- call rs.wl-gammarelay / rs.wl.gammarelay UpdateTemperature n -100"
    },
    "custom/wl-gammarelay-brightness": {
        "format": "{}% ",
        "exec": "wl-gammarelay-rs watch {bp}",
        "on-scroll-up": "busctl --user -- call rs.wl-gammarelay / rs.wl.gammarelay UpdateBrightness d +0.02",
        "on-scroll-down": "busctl --user -- call rs.wl-gammarelay / rs.wl.gammarelay UpdateBrightness d -0.02"
    }
    "custom/wl-gammarelay-gamma": {
        "format": "{}% γ",
        "exec": "wl-gammarelay-rs watch {g}",
        "on-scroll-up": "busctl --user -- call rs.wl-gammarelay / rs.wl.gammarelay UpdateGamma d +0.02",
        "on-scroll-down": "busctl --user -- call rs.wl-gammarelay / rs.wl.gammarelay UpdateGamma d -0.02"
    }

并在"modules-right"或"modules-center","modules-left"中添加"custom/wl-gammarelay-gamma","custom/wl-gammarelay-brightness","custom/wl-gammarelay-temperature"

添加顺序即为在Waybar上的顺序

在style.css中找葫芦画瓢写出亮度色温的背景颜色之类,注意custom/wl-gammarelay-******在这里要换成custom-wl-gammarelay-******

锁屏

推荐使用hyprlock

sudo pacman -S 	hyprlock

同样地,在github中找主题然后套用

壁纸

hyprpaper

sudo pacman -S hyprpaper

在~/.config/hypr/hyprpaper.conf中修改壁纸路径

在hyprland.conf中加入自启动

exec-once = hyprpaper

代理

可以使用clash-verge-rev

yay clash-verge-rev

浏览器安装插件SwitchyOmega可以切换代理

命令行可以右键waybar中的托盘或在设置中复制环境变量然后直接输入在命令行

哇哇哇哇哇哇哇哇