天天看點

手把手教你使用Linux安裝i3wm桌面

個人 i3配置位址:https://github.com/itgoyo/i3

如果還是覺得太難,請參考視訊來操作:https://www.bilibili.com/video/av60766315

成品展示

手把手教你使用Linux安裝i3wm桌面

安裝 i3wm

$ /usr/lib/apt/apt-helper download-file http://debian.sur5r.net/i3/pool/main/s/sur5r-keyring/sur5r-keyring_2019.02.01_all.deb keyring.deb SHA256:176af52de1a976f103f9809920d80d02411ac5e763f695327de9fa6aff23f416
# dpkg -i ./keyring.deb
# echo "deb http://debian.sur5r.net/i3/ $(grep '^DISTRIB_CODENAME=' /etc/lsb-release | cut -f2 -d=) universe" >> /etc/apt/sources.list.d/sur5r-i3.list
# apt update
# apt install i3
           

美化 i3

美化效果是使用 Github 的一個項目i3-gaps

項目位址: https://github.com/Airblader/i3

所需要到的各種依賴

sudo apt install libxcb1-dev libxcb-keysyms1-dev libpango1.0-dev libxcb-util0-dev libxcb-icccm4-dev libyajl-dev libstartup-notification0-dev libxcb-randr0-dev libev-dev libxcb-cursor-dev libxcb-xinerama0-dev libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev autoconf xutils-dev libtool 
           

安裝 i3-gaps 指令

cd /tmp
git clone https://www.github.com/Airblader/i3 i3-gaps
cd i3-gaps
git checkout gaps && git pull
autoreconf --force --install
rm -rf build
mkdir build
cd build
../configure --prefix=/usr --sysconfdir=/etc
make
sudo make install
           

期間你可能會遇到缺少 lib 的情況,我把我遇到的問題,還有解決方式說明一下

Can’t exec “aclocal”: No such file or directory at /usr/share/autoconf/Autom4te/FileUtils.pm line 326.

autoreconf: failed to run aclocal: No such file or directory

解決方式:

sudo apt-get install automake
           
No package ‘xcb-xrm’ found

解決方式:

sudo apt-get install libxcb-xrm-dev
           
no Package xcb-shape

解決方式:

sudo apt install libxcb-shape0-dev
           
No package ‘libpcre’ found

解決方式:

sudo apt-get install libpcre3-dev
           
No package ‘cairo’ found

解決方式:

sudo apt-get install libcairo2-dev
           
No package ‘pangocairo’ found

解決方式:

sudo apt-get install libpango1.0-dev 
           

以下是我的 i3個人配置

配置位址:https://github.com/itgoyo/i3

# This file has been auto-generated by i3-config-wizard(1).
# It will not be overwritten, so edit it as you like.
#
# Should you change your keyboard layout some time, delete
# this file and re-run i3-config-wizard(1).
#

# i3 config file (v4)
#
# Please see http://i3wm.org/docs/userguide.html for a complete reference!

set $mod Mod1

# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below.
font pango:monospace 8

# This font is widely installed, provides lots of unicode glyphs, right-to-left
# text rendering and scalability on retina/hidpi displays (thanks to pango).
#font pango:DejaVu Sans Mono 8

# Before i3 v4.8, we used to recommend this one as the default:
# font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
# The font above is very space-efficient, that is, it looks good, sharp and
# clear in small sizes. However, its unicode glyph coverage is limited, the old
# X core fonts rendering does not support right-to-left and this being a bitmap
# font, it doesn’t scale on retina/hidpi displays.

# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod

# start a terminal
#bindsym $mod+Return exec i3-sensible-terminal
#bindsym $mod+Return layout tabbed exec xfce4-terminal  #支援透明背景,打開即為tabbed布局
bindsym $mod+Return exec xfce4-terminal  #支援透明背景
bindsym $mod+control+t exec xfce4-terminal  #支援透明背景

# 快速打開ncmpcpp
bindsym $mod+n exec xfce4-terminal -e ncmpcpp  #支援透明背景
# 快速shutter截圖

bindsym $mod+control+a exec xfce4-terminal -e shutter  #支援透明背景

# kill focused window
bindsym $mod+Shift+q kill

# start dmenu (a program launcher)
bindsym $mod+Shift+d exec dmenu_run
# There also is the (new) i3-dmenu-desktop which only displays applications
# shipping a .desktop file. It is a wrapper around dmenu, so you need that
# installed.
#bindsym $mod+d exec --no-startup-id i3-dmenu-desktop

#Rofi啟動器
bindsym $mod+Tab exec --no-startup-id rofi -show window
bindsym $mod+d exec --no-startup-id rofi -show drun -theme andrea.rasi

bindsym $mod+g exec google-chrome --proxy-server='127.0.0.1:8080'

# change focus
bindsym $mod+j focus left
bindsym $mod+k focus down
bindsym $mod+l focus up
bindsym $mod+semicolon focus right

# alternatively, you can use the cursor keys:
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right

# move focused window
bindsym $mod+Shift+j move left
bindsym $mod+Shift+k move down
bindsym $mod+Shift+l move up
bindsym $mod+Shift+semicolon move right

# alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right

# split in horizontal orientation
bindsym $mod+h split h

# split in vertical orientation
bindsym $mod+v split v

# enter fullscreen mode for the focused container
#bindsym $mod+f fullscreen toggle

# change container layout (stacked, tabbed, toggle split)
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split

# toggle tiling / floating
bindsym $mod+Shift+space floating toggle

# change focus between tiling / floating windows
bindsym $mod+space focus mode_toggle

# focus the parent container
bindsym $mod+a focus parent

# focus the child container
#bindsym $mod+d focus child

# switch to workspace
#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
#
## move focused container to workspace
#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

# #---Workspace Bindings---# #
#bindsym $mod+Home		workspace $ws1
#bindsym $mod+Shift+Home		move container to workspace $ws1
#bindsym $mod+End		workspace $ws10
#bindsym $mod+Shift+End		move container to workspace $ws10
#bindsym $mod+Prior		workspace prev
#bindsym $mod+Shift+Prior	move container to workspace prev
#bindsym $mod+Next		workspace next
#bindsym $mod+Shift+Next		move container to workspace next
#bindsym $mod+Tab		workspace back_and_forth
#bindsym $mod+XF86Back		workspace prev
#bindsym $mod+Shift+XF86Back	move container to workspace prev
#bindsym $mod+XF86Forward	workspace next
#bindsym $mod+Shift+XF86Forward	move container to workspace next
#bindsym $mod+semicolon		workspace next
#bindsym $mod+apostrophe		split horizontal ;; exec $term
#bindsym $mod+slash		split vertical ;; exec $term
#bindsym $mod+Shift+slash	kill
#bindsym $mod+backslash		workspace back_and_forth

#set $ws1 "1"
#set $ws2 "2"
#set $ws3 "3"
#set $ws4 "4"
#set $ws5 "5"
#set $ws6 "6"
#set $ws7 "7"
#set $ws8 "8"
#set $ws9 "9"
#set $ws10 "10"

 set $ws1 "1:"
 set $ws2 "2:"
 set $ws3 "3:"
 set $ws4 "4:"
 set $ws5 "5:"
 set $ws6 "6:"
 set $ws7 "7:"
 set $ws8 "8:"
 set $ws9 "9:"
 set $ws10 "10:"

# switch to workspace
#bindsym $mod+1		workspace $ws1
#bindsym $mod+2		workspace $ws2
#bindsym $mod+3		workspace $ws3
#bindsym $mod+4		workspace $ws4
#bindsym $mod+5		workspace $ws5
#bindsym $mod+6		workspace $ws6
#bindsym $mod+7		workspace $ws7
#bindsym $mod+8		workspace $ws8
#bindsym $mod+9		workspace $ws9
#bindsym $mod+0		workspace $ws10

# switch to workspace
bindsym $mod+1		workspace $ws1
bindsym $mod+2		workspace $ws2
bindsym $mod+3		workspace $ws3
bindsym $mod+4		workspace $ws4
bindsym $mod+5		workspace $ws5
bindsym $mod+6		workspace $ws6
bindsym $mod+7		workspace $ws7
bindsym $mod+8		workspace $ws8
bindsym $mod+9		workspace $ws9
bindsym $mod+0		workspace $ws10

# move focused container to workspace
bindsym $mod+Shift+1	move container to workspace $ws1
bindsym $mod+Shift+2	move container to workspace $ws2
bindsym $mod+Shift+3	move container to workspace $ws3
bindsym $mod+Shift+4	move container to workspace $ws4
bindsym $mod+Shift+5	move container to workspace $ws5
bindsym $mod+Shift+6	move container to workspace $ws6
bindsym $mod+Shift+7	move container to workspace $ws7
bindsym $mod+Shift+8	move container to workspace $ws8
bindsym $mod+Shift+9	move container to workspace $ws9
bindsym $mod+Shift+0	move container to workspace $ws10

# #---Media Keys---# #

# for sound control
#bindsym XF86AudioRaiseVolume exec amixer set Master playback 5+
#bindsym XF86AudioLowerVolume exec amixer set Master playback 5-
#bindsym XF86AudioMute exec amixer set Master toggle

bindsym $mod+o exec amixer set Master playback 5-
bindsym $mod+p exec amixer set Master playback 5+
#bindsym $mod+o exec amixer set Master toggle
#bindsym $mod+p exec amixer set PCM toggle

#打開軟體時自動移至相應工作區
assign [class="i3-sensible-terminal"] $WS1
assign [class="Firefox"] $WS2
assign [class="google-chrome"] $W2
assign [class="google-chrome-stable"] $WS2
assign [class="chrome"] $WS2
assign [class="ieaseMusic"] $WS6
#assign [class="Firefox"] $WS2
#assign [class="vim"] $WS4

# open terminal

#bindsym $mod+Control+t exec i3-sensible-terminal

# ranger  -e  do commands
bindsym $mod+Control+r exec i3-sensible-terminal -e ranger

# reload the configuration file
bindsym $mod+Shift+c reload
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+r restart
# exit i3 (logs you out of your X session)
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'"

# resize window (you can also use the mouse for that)
mode "resize" {
        # These bindings trigger as soon as you enter the resize mode

        # Pressing left will shrink the window’s width.
        # Pressing right will grow the window’s width.
        # Pressing up will shrink the window’s height.
        # Pressing down will grow the window’s height.
        bindsym j resize shrink width 10 px or 10 ppt
        bindsym k resize grow height 10 px or 10 ppt
        bindsym l resize shrink height 10 px or 10 pptobs
        bindsym semicolon resize grow width 10 px or 10 ppt

        # same bindings, but for the arrow keys
        bindsym Left resize shrink width 10 px or 10 ppt
        bindsym Down resize grow height 10 px or 10 ppt
        bindsym Up resize shrink height 10 px or 10 ppt
        bindsym Right resize grow width 10 px or 10 ppt
        # back to normal: Enter or Escape
        bindsym Return mode "default"
        bindsym Escape mode "default"
}

bindsym $mod+r mode "resize"

# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
# ******************************************************
# 系統最早的頭部狀态
#bar {
#        status_command i3status
#        tray_output primary
#	position top
#}
#********************************************i3-gaps*********************************
for_window [class="^.*"] border pixel 2

gaps inner 8
gaps outer 6
set $mode_gaps Gaps: (o) outer, (i) inner
set $mode_gaps_outer Outer Gaps: +|-|0 (local), Shift + +|-|0 (global)
set $mode_gaps_inner Inner Gaps: +|-|0 (local), Shift + +|-|0 (global)
bindsym $mod+Shift+g mode "$mode_gaps"

mode "$mode_gaps" {
        bindsym o      mode "$mode_gaps_outer"
        bindsym i      mode "$mode_gaps_inner"
        bindsym Return mode "default"
        bindsym Escape mode "default"
}

mode "$mode_gaps_inner" {
        bindsym plus  gaps inner current plus 1
        bindsym minus gaps inner current minus 1
        bindsym 0     gaps inner current set 0

        bindsym Shift+plus  gaps inner all plus 1
        bindsym Shift+minus gaps inner all minus 1
        bindsym Shift+0     gaps inner all set 0

        bindsym Return mode "default"
        bindsym Escape mode "default"
}
mode "$mode_gaps_outer" {
        bindsym plus  gaps outer current plus 1
        bindsym minus gaps outer current minus 1
        bindsym 0     gaps outer current set 0

        bindsym Shift+plus  gaps outer all plus 1
        bindsym Shift+minus gaps outer all minus 1
        bindsym Shift+0     gaps outer all set 0

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

set $mode_power power
bindsym Mod1+Control+l mode "$mode_power"
mode "$mode_power" {
    #bindsym l mode "default", exec --no-startup-id /home/itgoyo/.config/i3/i3exit lock
    bindsym l mode "default", exec i3lock-fancy -g
    bindsym e mode "default", exec --no-startup-id /home/itgoyo/.config/i3/i3exit logout
    bindsym s mode "default", exec --no-startup-id /home/itgoyo/.config/i3/i3exit suspend
    bindsym h mode "default", exec --no-startup-id /home/itgoyo/.config/i3/i3exit hibernate
    bindsym r mode "default", exec --no-startup-id /home/itgoyo/.config/i3/i3exit reboot
    bindsym p mode "default", exec --no-startup-id /home/itgoyo/.config/i3/i3exit shutdown

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

# Set Xresources colors:
set_from_resource $darkblack	color0  #000000
set_from_resource $black	color8  #000000
set_from_resource $darkred	color1  #000000
set_from_resource $red		color9  #000000
set_from_resource $darkgreen	color2  #000000
set_from_resource $green	color10 #000000
set_from_resource $darkyellow	color3  #000000
set_from_resource $yellow	color11 #000000
set_from_resource $darkblue	color4  #000000
set_from_resource $blue		color12 #000000
set_from_resource $darkmagenta	color5  #000000
set_from_resource $magenta	color13 #000000
set_from_resource $darkcyan	color6  #000000
set_from_resource $cyan		color14 #000000
set_from_resource $darkwhite	color7  #000000
set_from_resource $white	color15 #000000
set $transparent		#00000000

#
#                      #BORDER          BACKGROUND      TEXT            INDICATOR   CHILD_BORDER
#client.focused          $red            $red            $magenta        $darkmagenta            $darkblue
#client.unfocused        $transparent    $blue           $white          $darkblue               $darkblack
#client.focused_inactive $transparent    $blue           $white          $darkblue               $darkblack
#client.urgent           $darkred        $darkred        $black          $darkred                $darkred
#client.background $black

set $background #10101000
set $foreground #ffffff
set $gray       #d0d0d0
set $secondary  #79D4D5
set $additional #26CE8D
set $warning    #E7176A

#set $primary    #F58E8E
#set $tertiary   #7AABD4

set $primary    #F99157
set $tertiary   #5c4d4d
# colors                BORDER      BACKGROUND TEXT        INDICATOR
client.focused          $primary    $primary   $foreground $primary
client.focused_inactive $secondary  $secondary $foreground $secondary
client.unfocused        $tertiary   $tertiary  $background $tertiary
#client.urgent           $gray       $gray      $foreground $gray
client.urgent           $darkred        $darkred        $black          $darkred                $darkred

bar {

	font pango:mono 10
	colors {
			background $darkblack
			statusline $darkwhite
			separator $cyan
			focused_workspace  $blue $darkblue $darkblack
        		active_workspace   $blue $blue $darkwhite
      			inactive_workspace $darkblack $darkblack $white
        		urgent_workspace   $darkblack $darkblack $white
		}
	status_command i3blocks
	position top
	mode dock
	modifier None
}

bar {
  i3bar_command i3bar -t
    height 28
    #禁止systemtray
    tray_output none
    # i3bar調用
    status_command ~/.config/i3/jconky
    # 顯示位置top/bottom
    position top
    # 是否隐藏
    #  mode hide
    # 拆解工作區名(隐藏前面的1:2:3:……)
    # strip_workspace_numbers no
    # 定義分隔符∥
    separator_symbol "    "

}

bindsym $mod+Shift+Escape       exec --no-startup-id prompt "Exit i3?" "i3-msg exit"

# bindsym $mod+BackSpace
bindsym $mod+Shift+BackSpace    exec --no-startup-id prompt "Reboot computer?" "$reboot"

# compton
# auto start commands
exec --no-startup-id fcitx -r
#exec --no-startup-id fcitx-qimpanel
exec --no-startup-id sogou-qimpanel
exec --no-startup-id compton -b

#bindsym $mod+Control+Return exec urxvt -sh 40 #透明參數0-100

exec --no-startup-id fcitx-sogoupingyin

#Background
#exec --no-startup-id feh --bg-fill /home/itgoyo/cgi_lib.jpg
exec --no-startup-id feh --bg-fill /home/itgoyo/圖檔/bg04.jpg
#caps:swapescape

#開機修改鍵盤映射
exec --no-startup-id setxkbmap -option caps:swapescape
           

歡迎關注本人 Github:itgoyo

微信公衆号:toolpool

手把手教你使用Linux安裝i3wm桌面

繼續閱讀