i3gaps教程---新手向

OS: ArchLinux

安装

sudo pacman -S i3-gaps

想要编译安装的,源码到这里下 __http://i3wm.org/

简单的使用

i3 默认修饰键是 Alt。第一次启动时,i3 会创建一个配置文件。创建过程中,可以告诉配置向导在配置文件中使用 Alt(Mod1) 还是 Winkey(Mod4)作为修饰键。同时还会配置键盘布局。

配置文件

如果您要重新配置 i3,可将原配置文件删除,再启动该配置向导,命令为 i3-config-wizard,重新配置完成后可以使用$mod+Shift+C重新载入配置文件。提示:如果已有 ~/.i3/config 配置文件,向导会退出。
i3 配置文件采用纯文本格式,使用文本编辑器打开即可对 i3 进行配置,不需使用某个特定的编程语言。
配置文件位置:

~/.i3/config (or ~/.config/i3/config)

i3启动的时候会按以下顺序寻找配置文件:

  1. ~/.config/i3/config (or $XDG_CONFIG_HOME/i3/config if set)
  2. /etc/xdg/i3/config (or $XDG_CONFIG_DIRS/i3/config if set)
  3. ~/.i3/config
  4. /etc/i3/config

你也可以使用 -c选项指定配置文件。

中文支持

,i3可以使用xft,配置格式如下

font xft:Wen Quan Yi Zen Hei Mono 10

以下加有下划线的部分仅在尝试xft不成功时当做替补方案:

由于 i3 使用 xcb,而 Cairo 还没有在上游上支持 xcb 的缘故,i3 现在还是只能使用 X core fonts,而不支持 xft。因此窗口标题无法显示中文,想要使用中文需要把自己的字体目录加到xorg.conf文件里,现在多数发行版都已经用xorg.conf.d目录取代了xorg.conf。其实就是把xorg.conf拆成了一个个的小文件,配置方法跟以前还是一样的。
xorg.conf中添加以下内容__

Section "Files"

FontPath "/usr/share/fonts/truetype/wqy"

EndSection

将FontPath后路径更换为自己的相应路径就可以了。
然后在i3的配置文件中更改字体设置,例如:

font -wenquanyi-wenquanyi bitmap song-bold-r-normal–-120-75-75-p--iso10646-1

使用$mod+Shift+C重新载入配置文件就可以正常显示中文了。

终端

打开终端:$mod+Enter
root权限打开终端:$mod+Shitf+Enter

继续按下这一组合键,就打开另一个终端窗口。

bindsym $mod+Return exec i3-sensible-terminal
bindsym $mod+Shift+Return exec kdesu i3-sensible-terminal

跟随启动

在配置文件中可以设置跟随i3一起启动的程序,例如:

exec feh --bg-scale /home/twor/3.jpg

窗口

在 i3 中,窗口布局分为:
默认(defualt):每个窗口都分配有一定量的空间。
叠加(stacking):只显示焦点窗口。其他窗口会在顶部以列表形式显示。
标签式(tabbed):与叠加原则一样,但顶部的窗口列表在垂直高度上只是单行显示。

$mod+e 默认, $mod+s 叠加式, $mod+w 显示标签式。

bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout default

切换活动窗口全屏显示,可使用 $mod+f。

bindsym $mod+f fullscreen

浮动与平铺

i3支持将窗口切换为浮动模式,使用$mod+Shift+space进行切换,使用$mod+space在平铺窗口与浮动窗口之间切换。

bindsym $mod+Shift+space floating toggle
bindsym $mod+space focus mode_toggle

窗口分割方向

新建窗口时切割父窗口的方向,使用$mod+v$mod+Shift+V.

bindsym $mod+Shift+V split h
bindsym $mod+v split v

调整窗口大小

按下$mod+r,然后使用hjkl或方向键进行调整,使用Shift+hjkl或方向键进行反向调整,调整结束按下回车键离开调整模式。

mode "resize" { 

bindsym h resize shrink left 10 px or 10 ppt
bindsym Shift+H resize grow left 10 px or 10 ppt
bindsym j resize shrink down 10 px or 10 ppt
bindsym Shift+J resize grow down 10 px or 10 ppt
bindsym k resize shrink up 10 px or 10 ppt
bindsym Shift+K resize grow up 10 px or 10 ppt
bindsym l resize shrink right 10 px or 10 ppt
bindsym Shift+L resize grow right 10 px or 10 ppt

bindsym Left resize shrink left 10 px or 10 ppt
bindsym Shift+Left resize grow left 10 px or 10 ppt
bindsym Down resize shrink down 10 px or 10 ppt
bindsym Shift+Down resize grow down 10 px or 10 ppt
bindsym Up resize shrink up 10 px or 10 ppt
bindsym Shift+Up resize grow up 10 px or 10 ppt
bindsym Right resize shrink right 10 px or 10 ppt 
bindsym Shift+Right resize grow right 10 px or 10 ppt

bindsym Return mode "default"
bindsym Escape mode "default"

}

bindsym $mod+r mode "resize"

调整窗口边框

无边框:$mod+u
普通模式:$mod+t
单像素边框:$mod+y

bindsym $mod+t border normal
bindsym $mod+y border 1pixel
bindsym $mod+u border none

新窗口边框类型

new_window 1pixel

特殊窗口

使用for_window command可以定义新建窗口时的窗体风格、浮动/平铺等特性。 语法:

for_window <criteria> command

例子:

# enable floating mode for all XTerm windows
for_window [class="XTerm"] floating enable

# Make all urxvts use a 1-pixel border:
for_window [class="urxvt"] border 1pixel

# A less useful, but rather funny example:
# makes the window floating as soon as I change
# directory to ~/work
for_window [title="x200: ~/work"] floating enable

启动应用程序

除了在终端使用命令打开应用程序、绑定快捷键之外,可以按下 $mod+d 启动 dmenu,输入您要打开应用程序的名称即可。应用程序命令路径也必须在您的 $PATH 之内才能查找到相应命令。

bindsym $mod+d exec dmenu_run

有些程序需要超级管理员的权限,但是通过上边的方法启动程序不会出现权限请求的界面,所以:

bindsym $mod+Shift+D exec kdesu dmenu_run

这样在出现dmenu的时候就会权限请求,提示用户输入密码了。

关闭程序窗口

不提供相关退出机制的应用程序(应用程序大多数应用支持如 ESC Ctrl+W),可使用$mod+Shift+Q 关闭窗口。

bindsym $mod+Shift+Q kill

重新加载

如果 i3 升级到了一个新版本,不必注销,可以按下 $mod+Shift+R 就可以重新加载 i3。

bindsym $mod+Shift+R restart

当更新了 i3 配置文件,可以按下$mod+Shift+C重新加载i3的配置文件。

bindsym $mod+Shift+C reload

当然,如果要退出 i3 会话(非杀死 X 服务器),可以使用 $mod+Shift+E 组合键。

bindsym $mod+Shift+E exit

提示 :查看 ~/.i3/config 配置文件,就可以得到一个当前 i3 操作大全。

工作区

在 i3 下可以建立 10 个之多工作区(0~9)。只要按下 $mod+num 就切换到相应数字的工作区,如果存在该工作区则显示该工作区,如无,则新建工作区。

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

$mod+num外,还可以使用快捷键依次切换工作区,可以在config中加入以下内容后使用$mod+Tab/$mod+Shift+Tab进行切换。

bindsym $mod+Tab workspace next

bindsym $mod+Shift+Tab workspace prev

如果要想将当前工作区的活动窗口移到其他工作区内,可按下 $mod+Shift+num

bindsym $mod+Shift+exclam move workspace 1
bindsym $mod+Shift+at move workspace 2
bindsym $mod+Shift+numbersign move workspace 3
bindsym $mod+Shift+dollar move workspace 4
bindsym $mod+Shift+percent move workspace 5
bindsym $mod+Shift+asciicircum move workspace 6
bindsym $mod+Shift+ampersand move workspace 7
bindsym $mod+Shift+asterisk move workspace 8
bindsym $mod+Shift+parenleft move workspace 9
bindsym $mod+Shift+parenright move workspace 10

就先写这么多吧,想起什么再来补充。

自动把打开的程序放到指定工作区
例如:

assign [class="(?i)firefox"] → 1
assign [class="(?i)pidgin"] → 3
assign [class="(?i)transmission-gtk"] → 10

i3bar
关于i3bar,简单的说一下吧

官网是这么介绍的:
It is a modular approach.
It follows the UNIX philosophy of “Make each program do one thing well”.
It leads to two separate, clean codebases.
大体就是模块化,不喜欢可以删掉什么的,符合Unix每个程序做好一件事的理念。

i3bar配置 是类似这样的:

bar {
        status_command i3status
        mode hide
        position top
        workspace_buttons yes
    }

如果你的i3bar不在$PATH里,用下面的语句指定:

i3bar_command command

i3bar可以运行一个程序,可以输出当前的IP地址,电池状态等信息。

status_command command

Example:
status_command i3status --config ~/.i3status.conf

至于i3status,这个配置很简单,直接贴下配置,基本上看一眼就明白

general {
       
        colors = true
        interval = 5
}

order += "disk /"
order += "run_watch DHCP"
order += "wireless wlan0"
order += "ethernet eth0"
order += "battery 0"
order += "cpu_temperature 0"
order += "load"
order += "time"

wireless wlan0 {
        format_up = "W: (%quality at %essid, %bitrate) %ip"
        format_down = "W: down"
}

ethernet eth0 {
        # if you use %speed, i3status requires the cap_net_admin capability
        format_up = "↑↓: %ip (%speed)"
        format_down = "≠: down"
}

battery 0 {
        format = "%status %percentage %remaining %emptytime"
        path = "/sys/class/power_supply/BAT%d/uevent"
        low_threshold = 10
}

run_watch DHCP {
        pidfile = "/var/run/dhclient*.pid"
}


time {
        format = "%Y-%m-%d %H:%M:%S"
}


load {
        format = "%5min"
}

cpu_temperature 0 {
        format = "T: %degrees °C"
        path = "/sys/devices/platform/coretemp.0/temp1_input"
}

disk "/" {
        format = "%free"
}

显示模式
就是可以定义i3bar是一直显示还是自动隐藏,按下$mod的时候才会显示,可以设置按下某个键唤出

mode <dock|hide>
modifier <Modifier>

modifier可以定义的按键是Mod1~5,Shift, Control

显示位置

就是设置bar显示在屏幕上边还是下边,我设置的是在上边

position <top|bottom>

托盘输出
就是系统托盘,可以显示pidgin、fcitx、vlc之类的图标什么的

tray_output <none|primary|output>

这个可以关闭,也可以设置为在某一个显示器显示

字体
这个是跟上边的配置一样的

font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
font pango:DejaVu Sans Mono 10

工作区按钮
这个就是左边显示现在是第几个工作区的那个东西,默认是开启的,这个一般不用设置吧

workspace_buttons <yes|no>

颜色

恩,黑黑的bar看起来是不是太单调了点呢,其实可以配置下颜色的啦,是用十六进制表示的指定像素的RGB值#rrggbb的哈

可以配置的有这几项

background
statusline
separator
focused_workspace
active_workspace
inactive_workspace
urgent_workspace

话说这个单看字面意思就可以知道是代表什么了,就不详细讲了,配置的时候是这样用:

colors {
    background <color>
    statusline <color>
    separator <color>

    colorclass <border> <background> <text>
}

给个例子参考下:

bar {
    colors {
        background #000000
        statusline #ffffff
        separator #666666

        focused_workspace  #4c7899 #285577 #ffffff
        active_workspace   #333333 #5f676a #ffffff
        inactive_workspace #333333 #222222 #888888
        urgent_workspace   #2f343a #900000 #ffffff
    }
}

编辑的比较仓促,可能会有些错误,欢迎指正。

再补充一点东西吧

暂存器

这个就是一个特殊的workspace,可以把窗口移动到里面起,想用的时候再召唤出来~~
可以设定快捷键把当前窗口移动到暂存器中,然后快捷键唤出,有点像yakuake之类的下拉终端那样子,不过这个是任意程序都可以~~
从暂存器中召出的时候是浮动模式,想要从暂存器中删除就把他切换成平铺模式就好了
也可以为特定的程序设置快捷键

#Make the currently focused window a scratchpad
bindsym $mod+Shift+minus move scratchpad

#Show the first scratchpad window
bindsym $mod+minus scratchpad show

# Show the sup-mail scratchpad window, if any.
bindsym mod4+s [title="^Sup ::"] scratchpad show

标记跳转
熟悉vim的话对这个功能应该不会陌生

# Mark a container with a single character
bindsym $mod+m exec i3-input -f pango:mono -F 'mark %s' -l 1 -P 'Mark: '

# Go to the container marked
bindsym $mod+g exec i3-input -f pango:mono -F '[con_mark="%s"] focus' -l 1 -P 'Goto: '

i3lock
这个是一个锁屏工具,可以设置锁屏壁纸啦什么
用法:

$ i3lock --help
i3lock: Syntax: i3lock -v] -n] -b] -d] -c color] -u] -p win|default] -i image.png] -t]

在i3的config设置

# i3lock
mode "i3lock: Return to lock/Escape to Cancel" {
        bindsym Return mode "default" exec i3lock -i /home/owen/image/jpsc_logo.png
        bindsym Escape mode "default" 
}

bindsym Mod1+Control+l mode "i3lock: Return to lock/Escape to Cancel"

然后使用快捷键即可~

Edit with markdown

已有 2 条评论

  1. Twor

    头像测试:有吗?

    Twor April 14th, 2019 at 03:46 pm回复
  2. angus

    头像测试:应该有!

    angus April 14th, 2019 at 03:48 pm回复