i3gaps教程---新手向

  • angus
  • 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回复