如何在Arch Linux搭建高效便捷的平铺式桌面

一不注意竟然已经三个多月没写文章了,十一月份总算找到感觉比较满意的实习工作了,同时把近视给弄好了,已经有十多年没有这么清晰地看过这个世界了:-D

前言

关于ArchLinux请自己谷歌度娘,由于整个工作环境都是自己从头开始搭建的,最是熟悉和顺手,再加上神器yaourt,滚动更新(一年多来未滚挂过),十分给力的Wiki,简直爱不释手。

笔者已经在主力机上运行这套工作环境一年多,暂未感到任何不适。

如果对Linux不是很熟悉且不太乐于折腾的请绕过。

搭建完成后大概是下面这个样子:

桌面使用i3-gaps(i3wm的分支)+py3status+i3lock+LilyTerm。

  1. 选择平铺桌面管理器是因为可以自动排列所有打开的窗口,所有窗口操作使用快捷键实现、最大化利用工作区、最大化利用屏幕空间、占用资源小。
  2. 选择i3-gaps是因为i3wm的本身配置非常简单,i3-gaps在它的基础之上增加窗口间隙调整的支持,方便把桌面弄得更漂亮一些。
  3. 选择py3staus是因为它支持更多的插件和属性配置。截图中右下角显示的信息分别是:内存 内存使用率|cpu使用率|cpu温度|下行速度 上行速度|未读邮件数|当前时间|音量|单机截图|DPMS|其他软件。
  4. 选择LilyTerm是因为易于配置和对中文支持比较好。

整个桌面最多可以开启10个工作区,我的布置是这样的:

  1. 窗口1(1:Info)用来运行glances+系统命令。
  2. 窗口2(2:Web)运行浏览器。
  3. 窗口3~8(3~8:Work)运行开发相关的程序。
  4. 窗口9(9:Other)虚拟机运行windows10。
  5. 窗口10(10:Other)运行音乐播放器。
  6. 同时在一个可切换显示和隐藏的小窗口中运行ydcv,需要翻译的时候就切换出来相当方便。

我说这么多1 2 3 4…………只为了说明一点:只要习惯了自己配置的快捷键和空间布局,工作效率飕飕地往上升。习惯了在平铺式的桌面中开发后,再回到windows这类层叠式的有种生不如死的感觉= =

基本系统的安装

ArchLinux的Wiki是十分完善的,且大多数常用的文档都有中文版,系统的安装主要也是参照Installation guide (简体中文)),如果按照以下流程安装系统时和官方Wiki有冲突,以官方Wiki为准。

  1. 执行ping www.baidu.com测试网络是否可用,安装过程中需要用到网络。
  2. 执行timedatectl set-ntp true设置时间自动同步。
  3. 执行fdisk -l查看要安装的目标硬盘,并用fdisk对硬盘进行操作,我要把系统安装到/dev/sda这个硬盘中。
  4. 执行fdisk /dev/sda,其中/dev/sda是步骤3中找到的,fdisk的详细使用方法请查阅Wiki,如果你的硬盘是GPT磁盘分区,要记得创建一个EFI分区。
    1. 我是MBR磁盘分区,在进入fdisk工具后:

      1. 重复执行d命令直到删除所有已有分区。
      2. 执行n命令创建分区,Partition type、Partition number、First sector直接回车用默认值,Last sector输入+512M表示给该分区分配512M大小的空间。
      3. 执行n命令创建根分区,分配45G的空间
      4. 执行n命令并一路回车,把硬盘所有剩余空间都给home分区, 如果有需要的话也可以选择再分配一个swap分区。
      5. 执行p命令查看是否和预想中的分区情况一致。
      6. 如果上一个步骤没问题的话,执行w命令保存并退出。
  5. 执行mkfs.ext4 /dev/sda1格式化/dev/sda1分区为EXT4格式。
  6. 执行mkfs.ext4 /dev/sda2格式化/dev/sda2分区为EXT4格式。
  7. 执行mkfs.ext4 /dev/sda3格式化/dev/sda3分区为EXT4格式。
  8. 执行mount /dev/sda2 /mnt挂载根分区。
  9. 执行mkdir /mnt/boot和mkdir /mnt/home分别创建boot分区和home分区的挂载点。
  10. 执行mount /dev/sda1 /mnt/boot和mount /dev/sda3 /mnt/home分别将对应的分区挂载好。
  11. 执行vim /etc/pacman.d/mirrorlist,删除不需要的mirror,我只保留了163和中科大的mirror。
  12. 执行pacman -Syy更新mirror数据库。
  13. 执行pacstrap /mnt base base-devel安装基本系统。
  14. 执行genfstab -U /mnt >> /mnt/etc/fstab生成fstab文件。
  15. 执行arch-chroot /mnt /bin/bash切换到新安装的系统上。
  16. 执行pacman -S vim安装vim。
  17. 执行ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime设置时区。
  18. 执行hwclock --systohc --utc设置时间标准 为 UTC。
  19. 执行vim /etc/locale.gen修改本地化信息,移除en_US.UTF-8 UTF-8、zh_CN.UTF-8 UTF-8、zh_TW.UTF-8 UTF-8前面的#后保存。
  20. 执行locale-gen生成本地化信息。
  21. 执行echo LANG=en_US.UTF-8 > /etc/locale.conf将系统 locale 设置为en_US.UTF-8.
  22. 执行echo myhostname > /etc/hostname修改主机名。
  23. 执行systemctl enable dhcpcd设置dhcpcd自启动。
  24. 执行passwd设置root密码。
  25. 执行pacman -S grub os-prober efibootmgr安装grub、os-prober和efibootmgr。
  26. 安装引导程序:
    1. grub-install --target=i386-pc /dev/sda
    2. grub-mkconfig -o /boot/grub/grub.cfg
  27. 执行exit。
  28. 执行umount -R /mnt。
  29. 执行reboot

到此为止,基本系统已经安装完成,重启后登陆root帐号开始搭建桌面环境。

搭建桌面环境

创建用户和安装常用的程序

  1. 执行useradd -m yourusername创建新用户,并执行passwd yourusername设置登陆密码。
  2. 执行vim /etc/sudoers编辑sudo权限,复制一行root ALL=(ALL) ALL, 并替换其中的root为新用户名,保存并退出。
  3. 执行exit退出root用户,并登陆新创建的用户。
  4. 执行sudo pacman -S alsa-utils xf86-video-vesa xorg xorg-xinit安装声卡、显卡及xorg。
  5. 执行sudo pacman -S zsh git unrar zip unzip openssh glances htop iftop screenfetch tree vlc wget net-tools安装常用程序。

安装oh-my-zsh

执行sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"安装oh-my-zsh,我们将使用它作为默认shell。

执行vim .zshrc编辑配置文件,修改ZSH_THEME的值可以更改shell的主题,主题可以到这里来查看,我个人比较喜欢使用rkj-repos这个主题。

在配置文件最底端加入一下代码段为一些命令创建别名:


  1. alias ll='ls -l' 
  2. alias la='ls -a' 
  3. alias vi='vim' 
  4. alias svi='sudo vim' 
  5. alias grep='grep --color=auto' 
  6. alias install='sudo pacman -S' 
  7. alias remove='sudo pacman -Rcn' 
  8. alias upgrade='sudo pacman -Syu' 
  9. alias findProc='ps -ef | grep ' 
  10. alias docker='sudo docker ' 
  11. alias cls='printf "\033c"'  

编辑完成后保存并退出,执行source .zshrc更新。

插件和其他的配置根据自己所需到这里查询配置。

安装yaourt

执行sudo vim /etc/pacman.conf,在文件最底部加入以下文本后保存并退出:


  1. [archlinuxcn] 
  2. SigLevel = Optional TrustAll 
  3. Server   = https://mirrors.ustc.edu.cn/archlinuxcn/$arch  

然后执行sudo pacman -Syu yaourt更新仓库数据库并安装yaourt。

接着再执行install archlinuxcn-keyring安装archlinuxcn的keyring,不然有些pacman的软件包无法安装。

配置桌面环境

配置i3wm

  1. 执行install i3lock i3status compton dmenu feh, compton如果没有装的话会一些窗口效果会消失。因为i3wm是没有桌面图标这些东西的,所以我们通过dmenu来打开应用程序。feh是用来设置壁纸的。
  2. 执行yaourt i3-gaps安装i3wm。

安装好i3-gaps后,编辑~/.i3/config文件配置i3wm的快捷键和外观等,其中mod键我设置为win键。

以下是我的快捷方式:

窗口管理

win+0 ~ win+9:切换工作区。

win+左:聚焦到左边的窗口。

win+右:聚焦到右边的窗口。

win+上:聚焦到上边的窗口。

win+下:聚焦到下边的窗口。

win+shift+左:移动当前聚焦的窗口到左边。

win+shift+右:移动当前聚焦的窗口到右边。

win+shift+上:移动当前聚焦的窗口到上边。

win+shift+下:移动当前聚焦的窗口到下边。

win+shift+0 ~ win+shift+9:将当前聚焦的窗口移动到指定的工作区中。

win+H:窗口水平分离,即新创建的窗口将会出现在当前窗口的右侧。win+V:窗口垂直分离,即新创建的窗口将会出现在当前窗口的下侧。

win+R:调整当前聚焦的窗口的大小,在按完快捷键后再按方向键即可调整。win+F:切换当前聚焦的窗口为全屏/非全屏。

ctrl+alt+W:关闭当前聚焦的窗口。

win+shift+space:使当前聚焦的窗口浮动。

win+space:在浮动的窗口和非浮动的窗口之间切换焦点。

win+T:切换窗口显示为边框+标题栏。

win+Y:切换窗口显示为只有1像素的边框。

win+U:切换窗口显示为没有边框也没有标题栏,默认为这种显示方式,因为边框和标题栏太丑而且太占空间了= =。

win+shift+ -:移动当前窗口到scratchpad中,即可以在需要的时候将其调出来,不需要时将其隐藏。win+ -:切换scratchpad中的窗口的显示与否,该功能我最常将用来创建一个运行ydcv进程的窗口来翻译,相当方便。

系统命令

win+回车:打开一个新的终端。

win+E:打开dmenu,会在屏幕顶部出现一个黑色输入框,输入程序名字按回车就会打开程序。

win+L:锁屏。

win+E:打开资源管理器。

fn+音量+:音量上调5%。fn+音量-:音量下调5%。

win+shift+Q:调出系统命令。

在调出系统命令后,按O注销会话、S关机、R重启、Esc取消。

win+shift+C:重新加载i3wm的配置文件。

win+shift+R:重新启动i3wm,不会丢失已经打开的窗口等信息。

win+shift+E:关闭i3wm,将会导致所有窗口被关闭。

以下是我的配置:


  1. #===============设置字体=============== 
  2. font pango:Source Code Pro, EmojiOne Color 10 
  3.  
  4. #===============定义$mod键为win键=============== 
  5. # customized 
  6. set $mod Mod4 
  7.  
  8. #===============设置窗口边框=============== 
  9. new_window none 
  10. bindsym $mod+t border normal 
  11. bindsym $mod+y border pixel 1 
  12. bindsym $mod+u border none 
  13.  
  14.  
  15. #===============状态栏=============== 
  16. bindsym $mod+m bar mode toggle 
  17. bar { 
  18.     i3bar_command i3bar -t 
  19. #    status_command i3status 
  20.     status_command py3status  
  21.     position bottom 
  22.     modifier Shift 
  23.     separator_symbol " | " 
  24.  
  25.     colors { 
  26.         background #000000CC 
  27.         #statusline #000000FF 
  28.         separator #B8F788 
  29.         focused_workspace  #B8F788 #000000AA 
  30.         active_workspace   #FFFFFF #FFFFFFAA 
  31.         inactive_workspace #AAAAAA #000000AA #AAAAAA 
  32.         urgent_workspace   #E57B85 #000000AA 
  33.     } 
  34.  
  35. #===============窗口间距=============== 
  36. gaps inner 6 
  37. gaps outer 0 
  38. smart_gaps on 
  39.  
  40. #===============系统命令=============== 
  41. set $mode_system  注销(O) 关机(S) 重启(R) 取消(Esc) 
  42. bindsym $mod+shift+q mode "$mode_system" 
  43. mode "$mode_system" { 
  44.     bindsym o exec i3-msg exit 
  45.     bindsym s exec systemctl poweroff 
  46.     bindsym r exec systemctl reboot 
  47.     bindsym Escape mode "default" 
  48.  
  49. #===============鼠标聚焦=============== 
  50. focus_follows_mouse no 
  51.  
  52. #===============锁屏快捷键=============== 
  53. # bindsym Mod4+l exec --no-startup-id i3lock -i '/home/huang/Pictures/Wallpapers/universe.png' 
  54. bindsym Mod4+l exec --no-startup-id i3lock -i 'path/to/lock/screen/wallpaper' 
  55.  
  56. #===============自动启动fcitx=============== 
  57. exec --no-startup-id fcitx 
  58. bindsym $mod+e exec nautilus 
  59.  
  60. #===============音量控制=============== 
  61. bindsym XF86AudioRaiseVolume exec --no-startup-id amixer -q sset Master 5%+ 
  62. bindsym XF86AudioLowerVolume exec --no-startup-id amixer -q sset Master 5%- 
  63.  
  64. #===============浮动窗口=============== 
  65. # use Mouse+Mod1 to drag floating windows to their wanted position 
  66. #floating_modifier $mod 
  67.  
  68. #===============打开终端=============== 
  69. # bindsym $mod+Return exec i3-sensible-terminal 
  70. bindsym $mod+Return exec lilyterm 
  71.  
  72. #===============关闭窗口=============== 
  73. bindsym Control+Mod1+w kill 
  74.  
  75. #===============打开dmenu=============== 
  76. # start dmenu (a program launcher) 
  77. bindsym $mod+d exec dmenu_run 
  78. # There also is the (new) i3-dmenu-desktop which only displays applications 
  79.  
  80. # bindsym Mod1+d exec --no-startup-id i3-dmenu-desktop 
  81.  
  82. # change focus 
  83. #bindsym $mod+$left focus left 
  84. #bindsym $mod+$down focus down 
  85. #bindsym $mod+$up focus up 
  86. #bindsym $mod+$right focus right 
  87.  
  88. # alternatively, you can use the cursor keys: 
  89. #===============窗口聚焦=============== 
  90. bindsym $mod+Left focus left 
  91. bindsym $mod+Down focus down 
  92. bindsym $mod+Up focus up 
  93. bindsym $mod+Right focus right 
  94.  
  95. # move focused window 
  96. #bindsym $mod+Shift+$left move left 
  97. #bindsym $mod+Shift+$down move down 
  98. #bindsym $mod+Shift+$up move up 
  99. #bindsym $mod+Shift+$right move right 
  100.  
  101. # alternatively, you can use the cursor keys: 
  102. #===============窗口移动=============== 
  103. bindsym $mod+Shift+Left move left 
  104. bindsym $mod+Shift+Down move down 
  105. bindsym $mod+Shift+Up move up 
  106. bindsym $mod+Shift+Right move right 
  107.  
  108. #===============窗口拆分模式=============== 
  109. bindsym $mod+h split h 
  110. bindsym $mod+v split v 
  111.  
  112. #===============切换全屏=============== 
  113. bindsym $mod+f fullscreen toggle 
  114.  
  115. #===============切换布局模式=============== 
  116. #bindsym $mod+s layout stacking 
  117. #bindsym $mod+w layout tabbed 
  118. #bindsym Mod1+e layout toggle split 
  119.  
  120. #===============切换窗口浮动=============== 
  121. bindsym $mod+Shift+space floating toggle 
  122.  
  123. #===============浮动/平铺聚焦切换=============== 
  124. bindsym $mod+space focus mode_toggle 
  125.  
  126. #===============聚焦到父窗口=============== 
  127. #bindsym $mod+a focus parent 
  128.  
  129. #===============聚焦到子窗口=============== 
  130. #bindsym Mod1+d focus child 
  131.  
  132. #===============添加窗口到存储=============== 
  133. bindsym $mod+Shift+minus move scratchpad 
  134.  
  135. #===============切换存储器中的窗口=============== 
  136. # Show the next scratchpad window or hide the focused scratchpad window. 
  137. # If there are multiple scratchpad windows, this command cycles through them. 
  138. bindsym Mod1+minus scratchpad show 
  139.  
  140. #===============绑定workspace快捷键=============== 
  141. # switch to workspace 
  142. bindsym $mod+1 workspace 1:Info 
  143. bindsym $mod+2 workspace 2:Web 
  144. bindsym $mod+3 workspace 3:Work 
  145. bindsym $mod+4 workspace 4:Work 
  146. bindsym $mod+5 workspace 5:Work 
  147. bindsym $mod+6 workspace 6:Work 
  148. bindsym $mod+7 workspace 7:Work 
  149. bindsym $mod+8 workspace 8:Other 
  150. bindsym $mod+9 workspace 9:Other 
  151. bindsym $mod+0 workspace 10:Other 
  152.  
  153. #==============设置workspace默认显示到LVDS1=============== 
  154. workspace "1:Info" output LVDS1 
  155. workspace "2:Web" output LVDS1 
  156. workspace "3:Dev" output LVDS1 
  157. workspace "4:Dev" output LVDS1 
  158. workspace "5:Dev" output LVDS1 
  159. workspace "6:Dev" output LVDS1 
  160. workspace "7:Dev" output LVDS1 
  161. workspace "8:Music" output LVDS1 
  162. workspace "9:Other" output LVDS1 
  163. workspace "10:Other" output LVDS1 
  164.  
  165. #===============绑定移动窗口到指定workspace快捷键=============== 
  166. # move focused container to workspace 
  167. bindsym $mod+Shift+1 move container to workspace 1:Info 
  168. bindsym $mod+Shift+2 move container to workspace 2:Web 
  169. bindsym $mod+Shift+3 move container to workspace 3:Work 
  170. bindsym $mod+Shift+4 move container to workspace 4:Work 
  171. bindsym $mod+Shift+5 move container to workspace 5:Work 
  172. bindsym $mod+Shift+6 move container to workspace 6:Work 
  173. bindsym $mod+Shift+7 move container to workspace 7:Work 
  174. bindsym $mod+Shift+8 move container to workspace 8:Other 
  175. bindsym $mod+Shift+9 move container to workspace 9:Other 
  176. bindsym $mod+Shift+0 move container to workspace 10:Other 
  177.  
  178. #===============指定程序打开后出现在指定工作区=============== 
  179. assign [class="chrome"] 2:Web 
  180. # assign [class="idea"] 3:Dev 
  181. # assign [class="VirtualBox"] 9:Other 
  182.  
  183. #===============重新加载配置=============== 
  184. # reload the configuration file 
  185. bindsym $mod+Shift+c reload 
  186.  
  187. #===============重启i3=============== 
  188. # restart i3 inplace (preserves your layout/session, can be used to upgrade i3) 
  189. bindsym $mod+Shift+r restart 
  190.  
  191. #===============退出i3=============== 
  192. # exit i3 (logs you out of your X session) 
  193. bindsym $mod+Shift+e exec "i3-nagbar -t warning -m '是否确定退出i3? 这将导致所有工作窗口被关闭.' -b '确定' 'i3-msg exit'" 
  194.  
  195. #===============调整窗口大小=============== 
  196. # resize window (you can also use the mouse for that) 
  197. mode "resize" { 
  198.         # same bindings, but for the arrow keys 
  199.         bindsym Left        resize shrink width 10 px or 10 ppt 
  200.         bindsym Down        resize grow height 10 px or 10 ppt 
  201.         bindsym Up          resize shrink height 10 px or 10 ppt 
  202.         bindsym Right       resize grow width 10 px or 10 ppt 
  203.  
  204.         # back to normal: Enter or Escape 
  205.         bindsym Return mode "default" 
  206.         bindsym Escape mode "default" 
  207.  
  208. #===============绑定调整窗口大小快捷键=============== 
  209. bindsym $mod+r mode "resize" 
  210.  
  211. #===============开启i3时自启动项=============== 
  212. exec_always --no-startup-id feh --bg-fill path/to/background/image 
  213. exec i3-config-wizard 
  214. exec --no-startup-id i3-msg "workspace 1:Info" 
  215. exec compton &  

如果复制了我的配置文件,请修改path/to/background/image和path/to/lock/screen/wallpaper。

至此i3wm的配置已经弄好了,就是这么简单= = 关于i3wm的详细配置参考官方文档。

配置py3status

1. 执行yaourt py3status安装。

    py3status的配置文件在~/.i3status中,在配置i3wm的时候我们已经在配置文件中启用了py3status,在这一部分只需要配置要启用的模块即可,所有支持的模块可以在这里找到。

2. 执行install noto-fonts-emoji安装Emoji字体。

以下是我py3status的配置文件:


  1. general { 
  2.     output_format = "i3bar" 
  3.     colors = true 
  4.     color_good = "#BBBBBB" 
  5.     color_bad = "#CC1616" 
  6.     color_degraded = "#55858E" 
  7.     interval = 1 
  8.  
  9. order += "sysdata" 
  10. order += "cpu_usage" 
  11. order += "cpu_temperature 0" 
  12. order += "net_rate" 
  13. order += "imap" 
  14. order += "time" 
  15. order += "volume_status" 
  16. order += "static_string screenshot" 
  17. order += "dpms" 
  18.  
  19. sysdata { 
  20.     format = " {mem_used}G  {mem_used_percent}%" 
  21.     color = "#48CCCD" 
  22.  
  23. cpu_usage { 
  24.     format = " %usage" 
  25.     color = "#52D017" 
  26.  
  27. cpu_temperature 0 { 
  28.     format = " %degrees °C" 
  29.     max_threshold = 65 
  30.     path = "/sys/class/thermal/thermal_zone0/temp" 
  31.     color = "#CCFB5D" 
  32.  
  33. net_rate { 
  34.     interfaces = "enp0s25" 
  35.     format = "{down} {up}" 
  36.     color = "#FFDB58" 
  37.  
  38. imap { 
  39.     cache_timeout = 60 
  40.     format = " {unseen}" 
  41.     imap_server = 'imap.gmail.com' 
  42.     mailbox = 'INBOX' 
  43.     name = 'you/name' 
  44.     password = 'you/mail/password' 
  45.     port = '993' 
  46.     user = 'your/mail' 
  47.     new_mail_color = "#F87431#F62217" 
  48.     on_click 1 = 'exec google-chrome-stable https://mail.google.com/mail' 
  49.     color = "#FCDFFF" 
  50.  
  51. time { 
  52.     format = " %Y-%m-%d %H:%M:%S" 
  53.     color = "#9E7BFF" 
  54.  
  55. volume_status { 
  56.     format = " {percentage}%" 
  57.     cache_timeout = 1 
  58.     device = "default" 
  59.     thresholds = [ 
  60.         (0, "#A0CFEC"), 
  61.         (10, "#82CAFF"), 
  62.         (20, "#79BAEC"), 
  63.         (30, "#3BB9FF"), 
  64.         (40, "#56A5EC"), 
  65.         (50, "#5CB3FF"), 
  66.         (60, "#1589FF"), 
  67.         (70, "#157DEC"), 
  68.         (80, "#306EFF"), 
  69.         (90, "#2B65EC") 
  70.     ] 
  71.  
  72. static_string 'screenshot' { 
  73.     format = "" 
  74.         on_click 1 = "exec gnome-screenshot" 
  75.         color = "#C44975" 
  76.  
  77. dpms { 
  78.     format_on = " DPMS" 
  79.     format_off = " DPMS" 
  80.     color_on = "#F9B7FF" 
  81.     color_off = "#6B9299" 
  82. }  
  1. 我的配置文件中使用了imap模块,需要配置邮箱相关的信息。
  2. volume_status模块需要安装pamixer和alsa-utils。
  3. 不同的Emoji字体会造成状态栏的图标不一样,我截图中使用的是nodejs-emojione,这里的配置使用的是 noto-fonts-emoji,因为觉得后者 比较好看= =。

配置LilyTerm

执行install lilyterm安装终端模拟器。

LilyTerm的配置文件在/etc/lilyterm.conf, 不过不建议直接修改配置文件,可以在启动i3wm后打开终端,在终端上右键即可进行可视化配置。字体我使用的Source Code Pro+Noto Sans CJK SC

配置xinit

执行vim ~/.xinitrx编辑xinit配置文件, 这一步的配置关系到i3wm的启动和搜狗输入法的使用,将内容修改如下:


  1. export LANG=zh_CN.UTF-8 
  2. export LANGUAGE=zh_CN:en_US 
  3. export LC_CTYPE=en_US.UTF-8 
  4.  
  5. export GTK_IM_MODULE=fcitx 
  6. export QT_IM_MODULE=fcitx 
  7. export XMODIFIERS=@im=fcitx 
  8.  
  9. exec i3 
  10. exec sogou-qimpanel  

修改完成后执行startx就会发现桌面环境启动成功了。

执行vim ~/.zshrc,在文件底部加入这一行[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && exec startx,这样以后登陆系统后会自动运行startx登陆到桌面中。

搜狗输入法

在桌面环境下打开一个终端(win+回车),执行install fcitx-im fcitx-configtool fcitx-sogoupinyin安装fcitx套件和搜狗输入法。

安装完成后右击状态栏最右侧的小键盘,在设置中添加搜狗输入法,然后重启系统,就会发现输入法可以使用了,输入法的切换默认按键为ctrl+space。

Chrome

执行install google-chrome安装Chrome浏览器,安装完成后按win+d调出dmenu,输入chrome回车,即可运行Chrome。

资源管理器

执行install nautilus安装gnome的资源管理器,安装完成后可以通过win+e打开。

为了能够让nautilus识别安卓手机,需要执行install gvfs-mtp来支持MTP。

安装PDF阅读器

执行install foxitreader安装福昕PDF阅读软件, 安装完成后按win+d调出dmenu,输入foxitreader回车,即可运行foxitreader。

截屏

执行install gnome-screenshot安装gnome的截屏软件,安装完成后点击状态栏中的截屏按钮就会自动截屏。

执行yaourt shutter可以安装功能强大的截图软件shutter,安装完成后按win+d调出dmenu,输入shutter回车,即可运行shutter。

WPS

执行install wps-office安装wps套件,虽然绝大多数时候我都会在虚拟机下开windows编辑文档,但是只是查看的话还是很方便的。

翻译:ydcv

执行install ydcv安装ydcv,通过它再配scratchpad功能,在简单翻译的情境下比任何翻译工具都要好用。

结尾

做到这里差不多桌面环境都搭建好了,笔者是实体机上边安装边写的文章,大体上不会有什么问题,如果安装过程中有疑问或者不对的地方欢迎提出讨论。

作者:疯狂的爱因斯坦

来源:51CTO

时间: 2024-09-27 07:32:22

如何在Arch Linux搭建高效便捷的平铺式桌面的相关文章

如何在Arch Linux的终端里设定WiFi网络

如果你使用的是其他 Linux 发行版 而不是 Arch CLI,那么可能会不习惯在终端里设置 WiFi.尽管整个过程有点简单,不过我还是要讲一下.在这篇文章里,我将带领新手们通过一步步的设置向导,把你们的 Arch Linux 接入到你的 WiFi 网络里. 在 Linux 里有很多程序来设置无线连接,我们可以用 ip 和 iw 来配置因特网连接,但是对于新手来说有点复杂.所以我们会使用 netctl 命令,这是一个基于命令行的工具,用来通过配置文件来设置和管理网络连接. 注意:所有的设定都需

如何在 Arch Linux 中安装 DNSCrypt 和 Unbound

DNSCrypt 是一个用于对 DNS 客户端和 DNS 解析器之间通信进行加密和验证的协议.它可以阻止 DNS 欺骗或中间人攻击. DNSCrypt 可用于大多数的操作系统,包括 Linux,Windows,MacOSX ,Android 和 iOS.而在本教程中我使用的是内核为4.1的 archlinux. Unbound 是用来解析收到的任意 DNS 查询的 DNS 缓存服务器.如果用户请求一个新的查询,unbound 会将其存储到缓存中,并且当用户再次请求相同的请求时,unbound 将

Linux搭建高效FTP虚拟用户全过程

VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全. 以下全过程是在Centos 5 下操作演示的. 安装 vsftp yum install vsftpd 创建日志文件 touch /data1/logs/vsftpd.log 修改 vsftp 配置文件 vi /etc/vsftpd/vsftpd.conf 参数设置,注意:输入"/欲查找内容"可以快速查找,千万不能出现多余的空

如何在 Antergos/Arch Linux 中使用 iPhone

在Arch Linux中使用iPhone遇到麻烦了么?iPhone和Linux从来都没有很好地集成.本教程中,我会向你展示如何在Antergos Linux中使用iPhone,对于同样基于Arch的的Linux发行版如Manjaro也应该同样管用. 我最近购买了一台全新的iPhone 6S,当我连接到Antergos Linux中要拷贝一些照片时,它完全没有检测到它.我看见iPhone正在被充电并且我已经允许了iPhone"信任这台电脑",但是还是完全没有检测到.我尝试运行dmseg但

如何在Antergos/Arch Linux中使用iPhone

在Arch Linux中使用iPhone遇到麻烦了吗?iPhone和Linux从来都没有很好地集成.本教程中,我会向你展示如何在Antergos Linux中使用iPhone,对于同样基于Arch的的Linux发行版如Manjaro也应该同样管用. 我最近购买了一台全新的iPhone 6S,当我连接到Antergos Linux中要拷贝一些照片时,它完全没有检测到它.我看见iPhone正在被充电并且我已经允许了iPhone"信任这台电脑",但是还是完全没有检测到.我尝试运行dmseg但

【SVN】Linux 搭建SVN 服务器

一. SVN 简介        Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据. 这些数据放置在一个中央资料档案库 (repository) 中. 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动. 这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史. SVN中的一些概念 : (1). repository(源代码库)        源代码统一存放的地方 (2). Checkout (提取)     

Linux搭建SVN server

一. SVN 简单介绍 Subversion(SVN) 是一个开源的版本号控制系統, 也就是说 Subversion 管理着随时间改变的数据. 这些数据放置在一个中央资料档案库 (repository) 中. 这个档案库非常像一个普通的文件server, 只是它会记住每一次文件的变动. 这样你就能够把档案恢复到旧的版本号, 或是浏览文件的变动历史. SVN中的一些概念 : (1). repository(源码库) 源码统一存放的地方 (2). Checkout (提取) 当你手上没有源码的时候,

Linux 搭建SVN 服务器

一. SVN 简介        Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据. 这些数据放置在一个中央资料档案库 (repository) 中. 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动. 这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史.   SVN中的一些概念 : (1). repository(源代码库)        源代码统一存放的地方 (2). Checkout (提取)   

Arch Linux 安装捷径:Evo/Lution

Arch Linux 安装捷径:Evo/Lution 有些人只体验过Ubuntu或Mint的安装,却鼓起勇气想要安装Arch Linux,他们的学习道路是那样的陡峭和严峻,安装过程中半途而废的人数可能要比顺利过关的人多得多.如果你成功搭建并按你所需的配置好了Arch Linux,那么它已经把你培养成了一个饱经风霜的Linux用户. 即使有可以帮助你的维基为新手提供指南,对于那些想要征服Arch的人而言要求仍然太高.你需要至少熟悉诸如fdisk或mkfs之类的终端命令,并且听过mc.nano或ch