fedora25 SWay窗口管理器简介

Sway, SirCmpwn's Wayland 是一款支持 Wayland 的 Window Manager,配置文件与 i3 兼容。可能是因为 Wayland 的原因,Sway 提供工具代替了我在 bspwm 时用到的 xrandr (用于设置屏幕显示(开/关显示屏,设置显示屏显示的位置))和 feh (设置桌面壁纸,查看图片)。跟 bspwm比起来,Sway 调整浮动窗口的位置和大小比 bspwm 更方便,直接 $mod + 鼠标左/右键即可。(部分摘自 体验 Sway)

配置文件

  • ~/.config/sway/config

  • /etc/sway/config

默认配置

$ cat /etc/sway/config
# sway默认配置,拷贝至~/.config/sway/config并进行配置。
# 完整文档请参考`man 5 sway`。
# Sway正在开发中,某些默认值未实现。

### 变量
set $mod Mod4        # Logo key。Mod1为Alt,Mod4为Enter
set $term urxvt      # 终端模拟器terminal emulator
set $menu dmenu_run  # 程序启动器application launcher

### 输出配置
# 默认壁纸 (其他分辨率保存在/usr/share/sway/)
output * bg /usr/share/sway/Sway_Wallpaper_Blue_1920x1080.png fill
#
# 输出配置示例:
#   output HDMI-A-1 resolution 1920x1080 position 1920,0
# 可通过swaymsg -t get_outputs命令获取输出设备名

### 键绑定
# 基本:
    bindsym $mod+Return exec $term  # 启动终端
    bindsym $mod+Shift+q kill       # 结束聚焦窗口
    bindsym $mod+d exec $menu       # 启动launcher

    # $mod+鼠标左键:拖动浮动窗口
    # $mod+鼠标右键:调整窗口大小(也适用于非浮动窗口)
    # 修改normal为inverse,使用鼠标左键调整大小,鼠标右键拖动窗口
    floating_modifier $mod normal

    bindsym $mod+Shift+c reload  # 重载配置文件
    bindsym $mod+Shift+e exit    # 退出sway,注销您的 wayland 会话

# 移动焦点:
    # 使用$mod+[h|j|k|l]移动焦点,类似vim
    bindsym $mod+h focus left
    bindsym $mod+j focus down
    bindsym $mod+k focus up
    bindsym $mod+l focus right
    # 或使用$mod+[up|down|left|right]
    bindsym $mod+Left focus left
    bindsym $mod+Down focus down
    bindsym $mod+Up focus up
    bindsym $mod+Right focus right

    # 移动至已聚焦的相同窗口,需添加Shift键
    bindsym $mod+Shift+h move left
    bindsym $mod+Shift+j move down
    bindsym $mod+Shift+k move up
    bindsym $mod+Shift+l move right
    # 同上,用箭头键
    bindsym $mod+Shift+Left move left
    bindsym $mod+Shift+Down move down
    bindsym $mod+Shift+Up move up
    bindsym $mod+Shift+Right move right

# 工作区:
    # 切换工作区
    bindsym $mod+1 workspace 1
    bindsym $mod+2 workspace 2
    bindsym $mod+3 workspace 3
    bindsym $mod+4 workspace 4
    bindsym $mod+5 workspace 5
    bindsym $mod+6 workspace 6
    bindsym $mod+7 workspace 7
    bindsym $mod+8 workspace 8
    bindsym $mod+9 workspace 9
    bindsym $mod+0 workspace 10
    # 移动焦点容器到工作区
    bindsym $mod+Shift+1 move container to workspace 1
    bindsym $mod+Shift+2 move container to workspace 2
    bindsym $mod+Shift+3 move container to workspace 3
    bindsym $mod+Shift+4 move container to workspace 4
    bindsym $mod+Shift+5 move container to workspace 5
    bindsym $mod+Shift+6 move container to workspace 6
    bindsym $mod+Shift+7 move container to workspace 7
    bindsym $mod+Shift+8 move container to workspace 8
    bindsym $mod+Shift+9 move container to workspace 9
    bindsym $mod+Shift+0 move container to workspace 10
    # 注意:工作区可以为任何名称,不仅仅是数字。默认使用1至10。

# 布局:
    bindsym $mod+b splith   # 水平horizontal分割焦点对象
    bindsym $mod+v splitv   # 垂直vertical分割焦点对象

    # 切换当前容器的布局风格
    bindsym $mod+s layout stacking
    bindsym $mod+w layout tabbed
    bindsym $mod+e layout toggle split

    bindsym $mod+f fullscreen                 # 全屏
    bindsym $mod+Shift+space floating toggle  # 为当前焦点切换tiling和floating模式
    bindsym $mod+space focus mode_toggle      # 切换tiling area和floating area
    bindsym $mod+a focus parent               # 移动焦点至父容器

# Scratchpad暂存器:
    # Sway暂存器,用于暂存一些窗口,并在之后恢复它们。
    bindsym $mod+Shift+minus move scratchpad  # 移动当前焦点窗口至暂存器
    bindsym $mod+minus scratchpad show        # 显示/隐藏暂存器窗口。如有多个可用该命令切换

# 状态栏,查看sway-bar(5)获得更多信息:
bar {
    position top
    colors {
        statusline #ffffff
        background #323232
        inactive_workspace #32323200 #32323200 #5c5c5c
    }
}

# 您还可以载入子配置文件:
# include ~/.config/sway/conf.d/*
# 或根据命令返回值,载入配置:
# include ~/.config/sway/`hostname`/*

建议配合以下软件一起使用:

  • dmenu - 一种 application lancher 工具

  • rxvt-unicode - 比较适用于平铺窗口管理器的终端

  • ImageMagick - swaygrab 依赖它进行屏幕截图

  • ffmpeg - swaygrab 依赖它进行屏幕录像

参考: