arch mac : Initial setting #3 install gui


After completing the steps up to arch mac: initial setting #2, execute the following contents

Install NetworkManager applet

pacman -S network-manager-applet

An app that manages wifi with GUI

GUI settings from here onward are executed by general users

su username

X11 display

sudo pacman -S xorg-server

Install xorg-xinit

pacman -S xorg-xinit

Required by startx

fcitx mozc Japanese environment installation

sudo pacman -S fcitx fcitx-gtk3 fcitx-qt5 fcitx-configtool fcitx-mozc

sudo micro /etc/X11/xinit/xinitrc

exec xterm -geometry 80x66+0+0 -name login


# exec xterm -geometry 80x66+0+0 -name login

fcitx &
nm-applet &
exec qtile

Change + add last line

To click configtool you can change it with shift + click


bash reference 1 bash reference 2

sudo nano .bash_profile

light -S 10 &

[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && exec startx

Add content at the bottom
light -S 10 part is started, set brithtness to 10%

.bash_profile is a command that is executed only when the user logs in. In this case, bash_profile will execute startx when the general user user logs in.

ターミナル sakura terminal

sudo pacman -S sakura

Ctrl <> Cap change (Optional)


sudo micro ~/.Xmodmap

remove Lock = Caps_Lock
keysym Caps_Lock = Control_L
add Control = Control_L

Change caps lock to Ctrl

Keyboard settings

sudo micro /etc/X11/xorg.conf.d/10-keyboard.conf

Load Japanese key config

Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout"   "jp,us"
        Option "XkbModel"    "jp106"

Volume adjustment alsa-utils

sudo pacman -S alsa-utils

amixer sset Master mute


amixer sset Master unmute


amixer sset Master 4%-

Decrease volume by 4%

amixer sset Master 3%+

Increase volume by 3%

Touchpad 3-finger drag

yay -S xf86-input-mtrack





sudo gpasswd -a username input

Very important to continue functioning after reboot

sudo micro /usr/share/X11/xorg.conf.d/50-mtrack.conf

Section "InputClass"
        MatchIsTouchpad "on"
        Identifier      "Touchpads"
        MatchDevicePath "/dev/input/event*"
        Driver          "mtrack"
        # Tweak cursor movement speed with this
        Option          "Sensitivity" "0.10"
        # Pressure at which a finger is detected as a touch
        Option          "FingerHigh" "10"
        # Pressure at which a finger is detected as a release
        Option          "FingerLow" "10"
        # I often use thumb to press down the physical button, so let's not ignore it
        Option          "IgnoreThumb" "true"
        Option          "ThumbRatio" "70"
        Option          "ThumbSize" "25"
        # Ignore palm, with palm takes up to 30% of your touchpad
        Option          "IgnorePalm" "true"
        Option          "PalmSize" "30"
        # Trigger mouse button when tap: 1 finger - left click, 2 finger - right click, 3 - middle click
        Option          "TapButton1" "1"
        Option          "TapButton2" "3"
        Option          "TapButton3" "2"
        Option          "TapButton4" "0"
        Option          "ClickTime" "25"
        Option          "EdgeBottomSize" "25"
        # Disable tap-to-drag, we're using three finger drag instead
        Option          "TapDragEnable" "false"
        # While touching the touchpad with fingers, press the touchpad physical click button
        Option          "ClickFinger0" "1"
        Option          "ClickFinger1" "1"
        Option          "ClickFinger2" "3"
        Option          "ClickFinger3" "2"
        Option          "ButtonMoveEmulate" "false"
        Option          "ButtonIntegrated" "true"
        # The momentum after scroll fingers released
        Option          "ScrollCoastDuration" "300"
        Option          "ScrollCoastEnableSpeed" ".1"
        # scrolling with two fingers
        Option          "ScrollSmooth" "true"
        Option          "ScrollUpButton" "4"
        Option          "ScrollDownButton" "5"
        Option          "ScrollLeftButton" "6"
        Option          "ScrollRightButton" "7"
        # Tweak scroll sensitivity with ScrollDistance, don't touch ScrollSensitivity
        Option          "ScrollDistance" "150"
        Option          "ScrollClickTime" "10"
        # Three finger drag
        Option          "SwipeDistance" "1"
        Option          "SwipeLeftButton" "1"
        Option          "SwipeRightButton" "1"
        Option          "SwipeUpButton" "1"
        Option          "SwipeDownButton" "1"
        Option          "SwipeClickTime" "0"
        Option          "SwipeSensitivity" "1000"
        # Four finger swipe, 8 & 9 are for browsers navigating back and forth respectively
        Option          "Swipe4LeftButton" "9"
        Option          "Swipe4RightButton" "8"
        # Mouse button >= 10 are not used by Xorg, so we'll map them with xbindkeys and xdotool later
        Option          "Swipe4UpButton" "11"
        Option          "Swipe4DownButton" "10"
        # Mouse buttons triggered by 2-finger pinching gesture
        Option          "ScaleDistance" "300"
        Option          "ScaleUpButton" "12"
        Option          "ScaleDownButton" "13"
        # Mouse buttons trigger by 2-finger rotating gesture, disabled to enhance the pinch gesture
        Option          "RotateLeftButton" "0"
        Option          "RotateRightButton" "0"


install VScode

sudo pacman -S code

Install the development app

Install thunar

sudo pacman -S thunar

Install the folder app

Font hackgen

hackgen info

git clone

sudo mkdir /usr/share/font/hackgen

sudo cp HackGen/build/HackGenConsole-Regular.ttf /usr/share/fonts/hackgen/hackgen-r.ttf

sudo cp HackGen/build/HackGenConsole-Bold.ttf /usr/share/fonts/hackgen/hackgen-b.ttf

Install vivaldi

yay -S vivaldi

Install web browser

7 ttf-ibm-plex

font (I will erase it later)


delete font

After installing vivaldi

cd /usr/share/fonts/

sudo rm -r ****

Remove all fonts except hackgen

設定 qtile

Install tiling window manager written in python3

Official document cheat sheet Times of Day

sudo pacman -S qtile

To use widget

sudo pacman -S archlinux-keyring

Key update

sudo pacman -S python-pip

Required when using qtilebar cpu memory info graph

pip install psutil

Required when using qtilebar cpu memory info graph

mv .config/qtile/ .config/qtile/

If qtile fails, rename

micro ~/.config/qtile/

# qtile 2020/Dec prototype

from typing import List  # noqa: F401

from libqtile import bar, layout, widget
from libqtile.config import Click, Drag, Group, Key, Screen
from libqtile.lazy import lazy
from libqtile.utils import guess_terminal

mod = "mod4"
terminal = guess_terminal()

keys = [
    # Switch between windows in current stack pane
    Key([mod], "Left", lazy.layout.down(),
        desc="Move focus down in stack pane"),
    Key([mod], "Right", lazy.layout.up(),
        desc="Move focus up in stack pane"),
    # Move windows up or down in current stack
    Key([mod, "control"], "Down", lazy.layout.shuffle_down(),
        desc="Move window down in current stack "),
    Key([mod, "control"], "Up", lazy.layout.shuffle_up(),
        desc="Move window up in current stack "),

    # Toggle app
    Key([mod], "Return", lazy.spawn(terminal), desc="Launch terminal"),
    Key([mod, "shift", "control"], "z", lazy.spawn("code")),
    Key([mod, "shift", "control"], "x", lazy.spawn("vivaldi-stable")),
    Key([mod, "shift", "control"], "c", lazy.spawn("thunar")),  

    # Toggle control
    Key([mod], "z", lazy.spawn("amixer sset Master 3%-")),
    Key([mod], "x", lazy.spawn("amixer sset Master 3%+")),
    Key([mod, "shift"], "z", lazy.spawn("amixer set Master mute")),
    Key([mod, "shift"], "x", lazy.spawn("amixer set Master unmute")),

    Key([mod], "c", lazy.spawn("light -U 3")),
    Key([mod], "v", lazy.spawn("light -A 3")),
    Key([mod, "shift"], "c", lazy.spawn("kbdlight down")),
    Key([mod, "shift"], "v", lazy.spawn("kbdlight up")),

    # Switch window focus to other pane(s) of stack
    Key([mod], "space",,
        desc="Switch window focus to other pane(s) of stack"),
    # Toggle between different layouts as defined below
    Key([mod], "Tab", lazy.next_layout(), desc="Toggle between layouts"),
    Key([mod], "Left", lazy.window.toggle_fullscreen(), desc="Toggle between layouts"),
    Key([mod], "Right", lazy.window.toggle_floating(), desc="Toggle between layouts"),

    # Toggle quit
    Key([mod], "q", lazy.restart(), desc="Restart qtile"),
    Key([mod, "shift"], "q", lazy.window.kill(), desc="Kill focused window"),
    Key([mod, "shift", "control"], "q", lazy.shutdown(), desc="Shutdown qtile"),

groups = [Group(i) for i in "asdfg"]

for i in groups:
        # mod1 + letter of group = switch to group
            desc="Switch to group {}".format(,

        # mod1 + shift + letter of group = switch to & move focused window to group
        Key([mod, "shift"],, lazy.window.togroup(, switch_group=True),
            desc="Switch to & move focused window to group {}".format(,
        # Or, use below if you prefer not to switch to that group.
        # # mod1 + shift + letter of group = move focused window to group
        # Key([mod, "shift"],, lazy.window.togroup(,
        #     desc="move focused window to group {}".format(,

layouts = [
    # layout.Stack(num_stacks=2),
    # Try more layouts by unleashing below layouts.
    # layout.Bsp(),
    # layout.Columns(),
    # layout.Matrix(),
    # layout.MonadTall(),
    # layout.MonadWide(),
    # layout.RatioTile(),
    # layout.TreeTab(),
    # layout.VerticalTile(),
    # layout.Zoomy(),

widget_defaults = dict(
extension_defaults = widget_defaults.copy()

screens = [
                widget.TextBox("default config", name="default"),
                # widget.QuickExit(),

# Drag floating layouts.
mouse = [
    Drag([mod], "Button1", lazy.window.set_position_floating(),
    Drag([mod], "Button3", lazy.window.set_size_floating(),
    Click([mod], "Button2", lazy.window.bring_to_front())

dgroups_key_binder = None
dgroups_app_rules = []  # type: List
main = None  # WARNING: this is deprecated and will be removed soon
follow_mouse_focus = True
bring_front_click = False
cursor_warp = False
floating_layout = layout.Floating(float_rules=[
    # Run the utility of `xprop` to see the wm class and name of an X client.
    {'wmclass': 'confirm'},
    {'wmclass': 'dialog'},
    {'wmclass': 'download'},
    {'wmclass': 'error'},
    {'wmclass': 'file_progress'},
    {'wmclass': 'notification'},
    {'wmclass': 'splash'},
    {'wmclass': 'toolbar'},
    {'wmclass': 'confirmreset'},  # gitk
    {'wmclass': 'makebranch'},  # gitk
    {'wmclass': 'maketag'},  # gitk
    {'wname': 'branchdialog'},  # gitk
    {'wname': 'pinentry'},  # GPG key password entry
    {'wmclass': 'ssh-askpass'},  # ssh-askpass
auto_fullscreen = True
focus_on_window_activation = "smart"

# XXX: Gasp! We're lying here. In fact, nobody really uses or cares about this
# string besides java UI toolkits; you can see several discussions on the
# mailing lists, GitHub issues, and other WM documentation that suggest setting
# this string if your java app doesn't work correctly. We may as well just lie
# and say that we're a working one by default.
# We choose LG3D to maximize irony: it is a 3D non-reparenting WM written in
# java that happens to be on java's whitelist.
wmname = "LG3D"

qtile cheat sheet

## move Tile | タイル移動
com + a                | move tile a | タイル移動
com + s                | move tile s | タイル移動
com + d                | move tile d | タイル移動
com + f                | move tile f | タイル移動
com + g                | move tile g | タイル移動
com + Ctrl + [asdfg]   | move app    | 選択アプリを移動 

## app  | アプリ
com + q                | Reload qtile | リロード Qtile
com + Shift + q        | Close app    | アプリ終了
com + Shift + Ctrl + q | Sign out     | サインアウト

com + Enter            | Start Sakura editor | ターミナル起動
com + Shift + Ctrl + z | Start VScode        | VScode起動
com + Shift + Ctrl + x | Start Vivaldi       | Vivaldi起動
com + Shift + Ctrl + c | Start Thunar        | ファイル起動

## Volume brightness
com + z                | Volume Down             | 音量ダウン
com + x                | Volume UP               | 音量アップ
com + Shift + z        | Volume mute             | 消音
com + Shift + x        | Volume Unmute           | 消音解除
com + c                | Backlight Down          | バックライト光度ダウン
com + v                | Backlight UP            | バックライト光度アップ
com + Shift + z        | Keyboard Backlight Down | キーボードバックライト光度ダウン
com + Shift + x        | Keyboard Backlight UP   | キーボードバックライト光度アップ

## app movement
com + tab                | Chenge fullscreen and Tile | フルスクリーン/タイルモード
com + ↓                  | Switch app Down            | 同タイル内での選択アプリ変更
com + ↑                  | Switch app Up              | 同タイル内での選択アプリ変更
com + Ctrl + ↓           | Move app Down              | 同タイル内でのアプリ変更
com + Ctrl + ↑           | Move app Up                | 同タイル内でのアプリ変更
com + Ctrl + ←           | app Fullscreen             | 選択アプリをフルスクリーン
com + Ctrl + →           | app Floating               | 選択アプリをフローティング
com + mouse press + move | app Floating               | 選択アプリをフローティング

.ssh settings (optional) for me

sudo pacman -S openssh

Copy /dev/sda4 .ssh to document root

chmod -R u+xr,go-rwx ~/.ssh

Change permissions to current general user

Backup (Optional)

Arch linux backup

thank you

Thank you for watching until the end. I'm glad if you can use it as a reference.

Thank you for Helping

I'll buy an amazon gift and help you

We will continue to update useful information. I am delighted to jump to your help. Thank you very much.