1. ホーム
  2. リナックス

ArchLinux での i3wm の簡単な設定と美化

2022-02-28 11:33:55
<パス

まず自分の設定のスクリーンショットを見せます。私はシンプルに作ってうまくいきました。




この記事のデフォルトでは、あなたは既に基本的なarchlinuxシステムをインストールしており、デスクトップ環境の設定をしていないだけです。だから、さっきの基本的な archlinux のインストール作業はスキップしてください。
ArchLinuxの具体的なインストール方法は私のブログ(https://blog.csdn.net/r8l8q8/article/details/76516523)をご覧ください。

1. グラフィックドライバとX Window Systemのインストール

(1) グラフィックスドライバのインストール
グラフィックカードのモデルを決定する
実行します。

# lspci | grep VGA


実行します。

$ sudo pacman -S driver package


公式リポジトリにあるドライバパッケージです。
Generic ----------------------------------xf86-video-vesa
intel ----------------------------------xf86-video-intel
Geforce7±-------------------------xf86-video-nouveau
Geforce6/7-------------------------xf86-video-304xx


(2) X Window Systemのインストール
実行します。

$ sudo pacman -S xorg-server


3. ログインマネージャとi3wmをインストールする

(1) ログインマネージャ sddm をインストールします。他のログインマネージャを選択するか、ログインマネージャなしで起動することもできます。
実行する

$ sudo pacman -S sddm
$ sudo systemctl enable sddm 


sddmサービスのインストールと有効化

(2) i3wmのインストール
実行する

$ sudo pacman -S i3-gaps 


i3-gapsのインストール (i3-gapsはi3wmのブランチで、より多くの機能を提供します)

(3)端末のインストール
実行する

$ sudo pacman -S mate-terminal  


インストールmate商品ターミナル(あなたが他の端末を選択することができ、ここでチームメイトのデスクトップ端末のインストールは、他のxterm urxvtと他の軽量端末に比べ、わずかに大きいが、簡単に設定するには、いくつかのクリックとOKをマウスを使用することができます)。
(4) 再起動

reboot


これでi3の基本的なインストールは完了です

4. 簡易美化に必要なソフトのインストールを開始

<テーブル ソフトウェア名 紹介文 コンプトン ウィンドウの透明化サポートを提供 ポリバー Windowsタスクバーに似たステータスバー、デフォルトのi3barを使用するか、別のパネルをインストールすることも可能です。 ロフィ ショートカットランチャー、dメニューもインストール可能 フェー 壁紙設定

(1) 窓の透明化支援ソフトのインストール

$ sudo pacman -S compton  


(2) インストールステータスバー
まずarchlinuxcnのソースを追加します。polybarはarchlinuxcnのソースの中にあります。

$ sudo nano /etc/pacman.conf


/etc/pacman.conf ファイルの最後に2行を追加します。

[archlinuxcn]
SigLevel=Never
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch


(まず sudo pacman -S firefox を実行してブラウザをインストールし、この記事を開いてテキスト内の archlinuxcn のソースをコピーし、nano で ctrl+shift+v して以下を貼り付けます)

その後、以下を実行します。

$ sudo pacman -Syy


リポジトリ情報を更新する

実行

$ sudo pacman -S polybar


ポリバーのインストール

(3) 起動するためのショートカットプログラムのインストール

$ sudo pacman -S rofi


(4) 壁紙設定ソフトをインストールする

$ sudo pacman -S feh


を実行したところ

feh --randomize --bg-fill ~/Pictures/DesktopBackground 


これは壁紙としてランダムに画像を切り替えます。linuxのcrontabで10分ごとに自動的に壁紙を切り替えるように設定できます。crontabのインストールと使用は簡単なので、自分でやってください。

(5) 入力方法のインストール

実行する

$ sudo pacman -S fcitx-im fcitx-configtool


入力メソッドエンジンをインストールします。

公式リポジトリにあるメソッドを入力します。
fcitx-cloudpinyin
fcitx-googlepinyin
fcitx-libpinyin
fcitx-sunpinyin

Sogou Pinyin fcitx-sogoupinyin は ArchLinuxCN リポジトリで利用可能です。
インストールするものを選択してください。

実行する

$ nano ~/.xprofile


以下を追加します。

export GTK_IM_MODULE=fcitx

export QT_IM_MODULE=fcitx

export XMODIFIERS="@im=fcitx"



5. 設定ファイルの修正

(1) i3設定ファイルの修正
実行する

$ nano ~/.config/i3/config


設定ファイルを開きます。

漢字コメント部分を修正し、元の設定ファイルに追加します

# This file has been auto-generated by i3-config-wizard(1).
# It will not be overwritten, so edit it as you like.
#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)

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

set $mod Mod4

# Set window borders, etc.
new_window none
new_float normal
hide_edge_borders both

#set window spacing
gaps inner 8
gaps outer 6

# Set screenshot shortcut ,first install mate-utils, sudo pacman -S mate-utils
bindsym $mod+p exec mate-screenshot -i

# Enable window transparency when logging in
exec --no-startup-id compton -b
#Select a random wallpaper when logging in, and put a few images under ~/Pictures/DesktopBackground
exec --no-startup-id feh --randomize --bg-fill ~/Pictures/DesktopBackground 
# start polybar at login
exec --no-startup-id ~/.config/polybar/launch.sh
# Start fcitx when login
exec --no-startup-id fcitx

# 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

# The combination of xss-lock, nm-applet and pactl is a popular choice, so
# Modify as you see fit.

# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
# Use loginctl lock-session to lock your screen.
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork

# NetworkManager is the most popular way to manage wireless networks on Linux,
# and nm-applet is a desktop environment-independent system tray GUI for it.
exec --no-startup-id nm-applet


# Use pactl to adjust volume in PulseAudio.
set $refresh_i3status killall -SIGUSR1 i3status
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status

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

# start a terminal
bindsym $mod+Return exec i3-sensible-terminal

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

# set the shortcut to start rofi
# start dmenu (a program launcher)
# bindsym $mod+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
bindsym $mod+d exec --no-startup-id rofi -show drun


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

(2) polybarの設定ファイルを修正する

polybar には、デフォルトの設定ファイルが /usr/share/doc/polybar/config にあります。
実行する

$ mkdir ~/.config/polybar
$ cp /usr/share/doc/polybar/config ~/.config/polybar/


ポリバー設定ファイルの追加

を実行します。

$ nano ~/.config/polybar/config


polybarの設定ファイルを開く
有線NICの場合は[module/eth]、無線NICの場合は[module/wlan]となります。
実行

$ ip link show



NICデバイスを確認し、[module/eth] または [module/wlan] のインターフェイスをNICデバイス名に設定します。

実行する

$ nano ~/.config/polybar/launch.sh


polybarの起動スクリプトを追加します。

以下のように読みます。

#! /bin/bash

# Terminate already running bar instances
killall -q polybar

# Wait until the processes have been shut down
while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done

# Launch Polybar, using default config location ~/.config/polybar/config
polybar mybar


追加し終わったら

$ sudo chmod +x ~/.config/polybar/launch.sh
実行ファイルのパーミッションの追加

polybarの設定ファイルはほぼそのままで、透明な背景色とネットワークカードをネットワーク速度を表示するように変更し、無駄なコンポーネントを無効化しただけです。漢字のコメントは追加した部分です。

;==========================================================
;
;
; ██████╗ ██████╗ █████╗ ██████╗
; ; ╚ ╔╝ ╔════
; ██████ ╔╝ ║ ║ ╚████ ╔╝ ██████ ╔╝ ███████ ║ ██████ ╔╝
; ╚╔════╝ ║ ╚
; ╚██████╔╝███████╗ ║ ██████╔╝
╚ ═════╝╚ ══════╝╚ ═════╝ ╚════╚
;
;
; To learn more about how to configure Polybar
; go to https://github.com/polybar/polybar
;
The README contains a lot of information
;
; ==========================================================

[colors]
;background = ${xrdb:color0:#222}
;background = #222 
; set the background color to be translucent
background= #b0222222 
background-alt = #444
;foreground = ${xrdb:color7:#222}
foreground = #dfdfdf
foreground-alt = #555
primary = #ffb52a
secondary = #e60053
alert = #bd2c40

[bar/mybar]
;monitor = ${env:MONITOR:HDMI-1}
width = 100%
height = 27
;offset-x = 1%
;offset-y = 1%
radius = 6.0
fixed-center = false

background = ${colors.background}
foreground = ${colors.foreground}

line-size = 3
line-color = #f00

border-size = 4
border-color = #00000000

padding-left = 0
padding-right = 2

module-margin-left = 1
module-margin-right = 2

font-0 = fixed:pixelsize=10;1
font-1 = unifont:fontformat=truetype:size=8:antialias=false;0
font-2 = siji:pixelsize=10;1

modules-left = bspwm i3
;mpd music player plugin, too lazy to configure, just disable
modules-center = mpd
;component order, eth for wired network card, the following is the default settings, to remove their own use, the desktop does not have wlan so directly remove the
modules-right = filesystem xbacklight alsa pulseaudio xkeyboard memory cpu wlan eth battery temperature date powermenu

modules-right = alsa eth memory cpu date  

tray-position = right
tray-padding = 2
;tray-background = #0063ff

wm-restack = bspwm
wm-restack = i3

;override-redirect = true

scroll-up = bspwm-desknext
;scroll-down = bspwm-deskprev

;scroll-up = i3wm-wsnext
scroll-down = i3wm-wsprev

cursor-click = pointer
cursor-scroll = ns-resize

[module/xwindow]
type = internal/xwindow
label = %title:0:30:... %

[module/xkeyboard]
type = internal/xkeyboard
blacklist-0 = num lock

format-prefix = " "
format-prefix-foreground = ${colors.foreground-alt}
format-prefix-underline = ${colors.secondary}

label-layout = %layout%
label-layout-underline = ${colors.secondary}

label-indicator-padding = 2
label-indicator-margin = 1
label-indicator-background = ${colors.secondary}
label-indicator-underline = ${colors.secondary}

[module/filesystem]
type = internal/fs
interval = 25

mou
interval = 1
format-prefix = " "
format-prefix-foreground = ${colors.foreground-alt}
format-underline = #f90000
label =CPU %percentage:2%%

[module/memory]
type = internal/memory
interval = 1
format-prefix = " "
format-prefix-foreground = ${colors.foreground-alt}
format-underline = #4bffdc
label =RAM %percentage_used%%

;wireless network card device
[module/wlan]
type = internal/network
Please set the interface to your own NIC name
interface = net1
interval = 3.0

format-connected = <ramp-signal> <label-connected>
format-connected-underline = #9f78e1
label-connected = %essid%

format-disconnected =
;format-disconnected = <label-disconnected>
;format-disconnected-underline = ${self.format-connected-underline}
;label-disconnected = %ifname% disconnected
;label-disconnected-foreground = ${colors.foreground-alt}

ramp-signal-0 =
ramp-signal-1 =
ramp-signal-2 =
ramp-signal-3 =
ramp-signal-4 =
ramp-signal-foreground = ${colors.foreground-alt}

;Wired NIC
[module/eth]
type = internal/network
;Please set the interface to your own NIC name;
interface = enp34s0
interval = 2.0

format-connected-underline = #55aa55
format-connected-prefix = " "
format-connected-prefix-foreground = ${colors.foreground-alt}
;label-connected = %local_ip%

; Seconds to sleep between updates
; Default: 1
; interval = 3.0

; Test connectivity every Nth update
A value of 0 disables the feature
; NOTE: Experimental (needs more testing)
Default: 0
;ping-interval = 3

; @deprecated: Define min width using token specifiers (%downspeed:min% and %upspeed:min%)
Minimum output width of upload/download rate
Default: 3
udspeed-minwidth = 5

Accumulate values from all interfaces
; when querying for up/downspeed rate
Default: false
accumulate-stats = true

Consider an `UNKNOWN` interface state as up.
Some devices like USB network adapters have 
some devices like USB network adapters have; an unknown state, even when they're running
Default: false
unknown-as-up = true



Available tags:
; <label-connected> (default)
; <ramp-signal>
format-connected = <label-connected>

; Available tags:
; <label-disconnected> (default)
format-disconnected = <label-disconnected>

; Available tags:
; <label-connected> (default)
<label-packetloss>
; <animation-packetloss>
format-packetloss = <animation-packetloss> <label-connected>

; All labels support the following tokens:
; %ifname% [wireless+wired]
%local_ip% [wireless+wired] ; %local_ip% [wireless+wired]
%local_ip6% [wireless+wired] ; %essid% [wireless+wired]
%essid% [wireless]
%signal% [wireless]
%upspeed% [wireless+wired] ; %downspeed% [wireless+wired]
%downspeed% [wireless+wired] ; %downspeed% [wireless+wired]
%linkspeed% [wired] ; %linkspeed% [wired]

; Default: %ifname% %local_ip%
label-connected = %downspeed:9%
label-connected-foreground = #eefafafa

Default: (none)
label-disconnected = not connected
label-disconnected-foreground = #66ffffff

Default: (none)
label-packetloss = %essid%
label-packetloss-foreground = #eefafafa

; Only applies if <ramp-signal> is used
ramp-signal-0 = ????
ramp-signal-1 = ????
ramp-signal-2 = ????
ramp-signal-3 = ????
ramp-signal-4 = ????
ramp-signal-5 = ????

; Only applies if <animation-packetloss> is used
animation-packetloss-0 = ⚠
animation-packetloss-0-foreground = #ffa64c
animation-packetloss-1 = ????
animation-packetloss-1-foreground = #000000
; Framerate in milliseconds
animation-packetloss-framerate = 500


;format-disconnected =
;format-disconnected = <label-disconnected>
;format-disconnected-underline = ${self.format-connected-underline}
;label-disconnected = %ifname% disconnected
;label-disconnected-foreground = ${colors.fore

ここで、基本的な構成の美化が完了します。

6. 一般的なソフトをインストールする

これは、行にインストールする自分の好みに応じて、いくつかのより多くの人々は、i3ウィンドウマネージャ、ほぼすべての他のソフトウェアの軽量化を使用して、フェチをきれいにしたり、ちょうどgtkのないqtの使用。以下は、一般的に使用されるソフトウェアの私の個人的なインストールです。

<テーブル ソフトウェア名 説明 カハ mateデスクトップのデフォルトのファイルマネージャー エングランパ mate デスクトップのデフォルトの圧縮マネージャ マテカルク 電卓 電子ブック 画像ビューア mate-utils ディスク容量表示、スクリーンショット、ファイル検索などのツールを提供します。 システムモニター チームメイトのデスクトップ用タスクマネージャー(システムモニター

または1つのコマンドのみ

$ sudo pacman -S mate-extra


Mateデスクトップ用の共通ツールおよびソフトウェア一式をインストールします。

その中でも、カジャ用ファイルマネージャー、ロフィの検索ができない、mate-system-monitor(タスクマネージャー)などの個別のmateツールやソフトは、i3設定ファイルにショートカットキーを設定して起動することをお勧めします。例:ファイルマネージャー、あなたは、i3設定ファイルに追加することができます。

# Set the file manager shortcut key
bindsym $mod+m exec caja


ファイルマネージャーを開くためのショートカットです。

次のようにOh-My-Zshをインストールすることによって、端末を美化することができ、BaiduまたはOh-My-Zsh公式ウェブサイトをご覧ください、それは簡単です。

Oh-My-Zshを簡単に使用した後

7. 最後に自分の好きな壁紙を貼る

ダウンロードリンク: https://download.csdn.net/download/r8l8q8/12090544