MX Linux / 19.4 / 記録 / 2021-07-23 Install

MX Linux / 19.4 / 記録 / 2021-07-23 Install

Installer の入手

公式から通常の 64bit 版を手に入れる

Download Links – MX Linux

Install

イメージファイルを突っ込んで適当に質問に答えるだけ

ほぼ全自動で進む。

インストール完了再起動

アップデート

再起動したらアップデートが来ていたのでアップデートする。

解像度の追従はデフォルトでOKっぽい

何度かアップデートと再起動を繰り返す。

VirtualBox のツール入れ

VBox のデバイスからGuest のディスク挿入すると、勝手にフォルダが開くので、その中の VBoxLinuxAdditions.runsudo で実行する。

あとは指示に従って終了→再起動

クリップボードが Windows 側と双方向になっているのが確認できた。

共有フォルダも特に何の設定もなく双方向い読み書きできた。

日本語入力

mx パッケージマネージャーというのを起動して japanese を検索

Firefox font fcitx をインストールする

再起動するとメニューにキーボードマークが出ていて IME が使えるような雰囲気になっている

適当にエディタを起動して ctrl space をで IME を ON にできる。

自分は ctrl shift f12 を IME トグルに指定しているのでそのように変更したい

設定画面からはこの組み合わせのキーバインドは入力できない。

~/.config/fcitx/config というファイルがあってその一番上にキーボード設定があるのでそこにこのように設定する。

TriggerKey=CTRL_SHIFT_F12

こうすると設定できる。

設定ツールをインストールする

$ sudo apt install mozc-utils-gui

mozc ツール から、スペースを常に半角に設定

ホームディレクトリ日本語化

ターミナルからのオペレーションに問題が出るので英語化する

$ LANG=C xdg-user-dirs-gtk-update

フォントのインストール

今回は Cica にしようと思うのでダウンロードする

~/.fonts というディレクトリを作ってそこにコピーすれば使えるようになる。

同様に HackGen もインストールする

cmigemo のインストール

$ sudo apt install cmigemo

node のインストール

node は volta というツールを使うのがイマドキのようだ。

これでインストールっぽい。

$ curl https://get.volta.sh | bash

fish とかでもこれでいいらしい。

$ volta --version
1.0.4

次に基礎となる node をとりあえず入れる

$ volta install node
success: installed and set node@14.17.4 (with npm@6.14.14) as default
$ node --version
v14.17.4

14が入ったようだ

neovim のインストール

調べるとやや古い。

$ apt search neovim
neovim/stable 0.3.4-3 amd64
  heavily refactored vim fork

2021-07-23 現在安定版が 0.5 開発版が 0.6 なので、できれば 0.5 を入れたい。

$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:neovim-ppa/stable

この後に、ズラズラと表示されて「公開鍵」というモノも表示されるのでメモっておく。

MX Linux は Debian であって、Ubuntu ではない。 普通の ppa というのは Ubuntu に対してのモノで Debian ではない。 Ubuntu には最初から鍵がインストールされていて、Ubuntu をもってして信用を担保している。 なので Debian には鍵が無い、なので MX にも鍵が無い、使えないという関係。

鍵を登録する。

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1234567890

これだけでなく、リポジトリは Ubuntu のために作られているので Ubuntu のバージョン対応になっているのだ。 そこでは Debian は適当にそれを解決しようとするためおかしいことになる。

MX Linux 19.3 は Debian では Debian 10 (buster) という対応になっていて buster 対応の Ubuntu は Bionic ということになる。 ややこしい。

/etc/apt/sources.list.d/ の該当のファイルを見ると ubuntu の impish というコードネームが入っている。 これは Ubuntu の最新版リポジトリで MX と合致しないしそもそもリポジトリ自体が用意されているかも怪しい。

こいつを bionic へ書き換える。

$ sudo apt-get update

OK できた。

しかしこれでやっても、調べると入れられるのはバージョン 0.4 までで 0.5 を入れることができない。

リポジトリの設定を削除(ファイルを削除)して、再び登録する。

今回は不安定版を登録する

$ sudo add-apt-repository ppa:neovim-ppa/unstable

また impish で登録されるのでファイルを編集して bionic に書き換える。

$ sudo apt-get update
$ apt search neovim
neovim/bionic 0.5.0+ubuntu2+git202107221615-a8c3d50fa-d569569c9-9cb9a8f8c~ubuntu18.04.1 amd64
  Fork of Vim aiming to improve user experience, plugins, and GUIs.

でた。ので入れる。

$ sudo apt-get install neovim
$ nvim --version
NVIM v0.6.0-dev

0.6 入った

プラギンの管理ツール dein をインストールする。

公式のそのままに従う

curl https://raw.githubusercontent.com/Shougo/dein.vim/master/bin/installer.sh > installer.sh
sh ./installer.sh ~/.cache/dein

途中にこれ貼れみたいなサンプルコードが出てくるので貼る

"dein Scripts-----------------------------
if &compatible
  set nocompatible               " Be iMproved
endif
 
" Required:
set runtimepath+=/home/hoge/.cache/dein/repos/github.com/Shougo/dein.vim
 
" Required:
call dein#begin('/home/hoge/.cache/dein')
 
" Let dein manage dein
" Required:
call dein#add('/home/hoge/.cache/dein/repos/github.com/Shougo/dein.vim')
 
" Add or remove your plugins here like this:
"call dein#add('Shougo/neosnippet.vim')
"call dein#add('Shougo/neosnippet-snippets')
 
" Required:
call dein#end()
 
" Required:
filetype plugin indent on
syntax enable
 
" If you want to install not installed plugins on startup.
"if dein#check_install()
"  call dein#install()
"endif
 
"End dein Scripts-------------------------

TOML ファイルの用意

[[plugins]]
repo = 'easymotion/vim-easymotion'
 
hook_add = '''
nmap s <Plug>(easymotion-s2
let g:EasyMotion_use_migemo = 1
'''
 
[[plugins]]
repo = 'neoclide/coc.nvim'
rev = 'release'
merged = '0'
hook_add = '''
set statusline^=%{coc#status()}
inoremap <silent><expr> <TAB>
      \ pumvisible() ? "\<C-n>" :
      \ <SID>check_back_space() ? "\<TAB>" :
      \ coc#refresh()
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>"
 
function! s:check_back_space() abort
    let col = col('.') - 1
    return !col || getline('.')[col - 1]  =~# '\s'
endfunction
'''

こんな感じで書く。こいつを init.vim に書き込む。 これは easymotion と coc.nvim の設定。ちょっと複雑目の設定は tab キーでアシストの選択を確定する記述

call dein#begin('/home/hoge/.cache/dein')
call dein#add('/home/hoge/.cache/dein/repos/github.com/Shougo/dein.vim')
call dein#load_toml('~/.config/nvim/dein/toml/dein.toml', {'lazy': 0})

nvim を起動して

:call dein#install()

でインストールされる。

coc の拡張をいくつか入れてみる

:CocInstall coc-vimlsp
:CocInstall coc-json
:CocInstall coc-html

不可視文字の表示方法決定

" タブとか改行を示す文字列
set list listchars=tab:»-,nbsp:%,eol:

Golang インストール

$sudo apt install golang

キーリピートの変更

明らかにモッサリしているのでキーリピートを変更する

スタートメニューから keyboard と打ち込んで出てくる設定用アプリで変えられる

リピート開始までを 239、 リピートを 59 に設定。

素数にしたのは描画タイミングが他と被らないほうがいいんじゃなかろうかと。

キーバインド問題

自分の場合はキーバインドを全部ハードウェアのキーボードに寄せてしまっているので、どのシステムを使おうと関係無いようになっているので素のまま。

VSCode

インストール

公式に行って deb パッケージ落としてきて入れるだけ

Chrome のインストール

インストール

公式に行って deb パッケージ落としてきて入れるだけ

plugin として vimium と stylus をインストールする

ホイールスクロールの高速化

最初から妙な加速度制御が入っていて、それが減速側でも働く仕様で、ゆっくり回すと全然動かない、速く回しても遅いという状態だったので制御した

imwheel というツールを入れるのが手っ取り早いようだ。

$ sudo apt-get install imwheel

設定ファイル ~/.imwheelrc を作る。このようにする。

".*"
None, Up,   Button4, 2
None, Down, Button5, 2

最後の数字でスピード調整する。これは使ってるマウスとか解像度とか、環境で変化するっぽいので要調整

それで imwheel を起動すればいい

$ imwheel

OK。imwheel を止める仕組みは無いっぽいので、設定値を変えての再起動は、ps でプロセスを調べて kill するっぽい。

設定マネージャーというツールの中に「セッションと起動」という項目があるのでここにログインしたときに実行するプログラムが書ける。 ここに imwheel コマンドを登録しておく。

アプリの切り替えの rofi を入れる

アプリを切り替えるための rofi というツールを入れる。もう入っていた。

$ rofi -show window

これで起動するとアプリをスイッチできる。rofi は常駐するとかいうアプリでなくて、1回で仕舞いのツールなので使う度に起動する。

設定マネージャーというツールの中に「キーボード」というツールがあるのでそこにコマンドのショートカットが書けるので、そこに↑のコマンドを登録しておけばいい

その設定値は /home/hoge/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml に保存されているので、変えたいならこっちを変えてもいい。 反映にログインログアウトが必要。

全部コマンドラインオプションで書くこともできるらしいが、設定ファイルでもできるので ~/.config/rofi/config.rasi このファイルを作る。

設定はこのような形式で書くようだ

configuration {
    modi: "drun,calc:qalc,window,run";
    width: 50;
    show-icons: true;
    icon-theme: "papirus";
    lines: 16;
    fake-transparency: true;
    sidebar-mode: true;
}

どのような項目が設定できるかは、現状の設定値がデフォルトも含めて↓のコマンドでダンプできる。

$ rofi -dump-xresources

形式は違うのだが項目名は一致しているっぽいので、これを参考にカスタマイズすればいい。

設定をやっていくと、この rofi の挙動が非常に鈍く感じてきた。 ↑でも設定している fake-transparency という値を true にしていると遅くなるっぽいので切った。

dump で調べると DEPRECATED らしいので設定値そのものを削除した。これで高速化した。

ファイラの挙動をクリック選択ダブルクリック実行に変える

デフォルトでロールオーバーで選択、クリックで実行になっていたので変える。

設定マネージャーというツールの中に「ファイルマネージャの設定」というのがあるので、その中の「振る舞い」のタブで「ダブルクリックでアクティブ」にする。

tmux をインストール

最初から入っていた

クリップボード利用するため xsel をインストールする

$ sudo apt install xsel

これがあるとこのようにコマンドラインの結果をシステムのクリップボードへ送り込める。

$ ls | xsel -bi

設定ドン

unbind-key C-b
set -g prefix S-C-F7
bind-key S-C-F7 send-prefix

set-window-option -g mode-keys vi
set-option -g default-shell /usr/bin/fish
set -s escape-time 0
set-window-option -g mode-keys vi

bind -T copy-mode-vi v send-keys -X begin-selection
bind -T copy-mode-vi C-v send-keys -X rectangle-toggle
bind -T copy-mode-vi V send-keys -X select-line
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xsel -bi"
bind -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "xsel -bi"
bind -T copy-mode-vi Escape send-keys -X clear-selection

# | で横分割する
bind | split-window -h
# - で縦分割する
bind - split-window -v

# Vimのキーバインドでペインを移動する
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R

pip のインストール

$ sudo apt install python3-pip
$ pip3 install setuptools

fish をインストール

$ sudo apt install fish

インストールできたら、デフォルトのシェルを fish へ変更する

$ chsh

/usr/bin/fish

指定する。と思ったがログインシェルを fish にするのは何かとよろしくないようだ。 そもそも fish は人間が操作する前提で作られていてスクリプトとしては互換性が無く挙動がおかしくなってしまう場合もあるらしい

なので、/bin/bash に戻す

色々管理ツール fisher をインストールする

$ curl -sL https://git.io/fisher | source && fisher install jorgebucaran/fisher
fisher install version 4.3.0
Fetching https://codeload.github.com/jorgebucaran/fisher/tar.gz/HEAD
Installing jorgebucaran/fisher
           /home/hoge/.config/fish/functions/fisher.fish
           /home/hoge/.config/fish/completions/fisher.fish
Installed 1 plugin/s

gruvbox テーマを入れる。

$ fisher install jomik/fish-gruvbox
fisher install version 4.3.0
Fetching https://codeload.github.com/jomik/fish-gruvbox/tar.gz/HEAD
Installing jomik/fish-gruvbox
           /home/hoge/.config/fish/functions/theme_gruvbox.fish
Installed 1 plugin/s

fish 上のコマンドとして入るので

$ theme_gruvbox dark hard

という感じでコマンドを実行すると反映される。なのでこれを .config/fish/config.fish に一筆書いておく。

fisher はバージョンのよってサブコマンドが変わっているようでドキュメントの読み替えが必要。

そもそも、fish のバージョンが 3.0 であって、fish が 3.2 で大きな変更が入ったっぽく、3.0 では最新のモジュールで問題が起こることが結構あるっぽい。

ということで、最新の管理のリポジトリを追加する。

$ sudo add-apt-repository ppa:fish-shell/release-3

出てくるキーを控えて置いて登録する。

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1234567890
$ sudo apt update
$ supo apt install fish

これでバージョン 3.3 が入った。

ログインシェルは bash にしたので、tmux のシェルを fish にするため .tmux.conf に設定を書く

set-option -g default-shell /usr/bin/fish

starship をインストール

bash に戻って

$ sh -c "$(curl -fsSL https://starship.rs/install.sh)"
linux/distribution/mx_linux/mx_linux_19_04/rec/2021_07_23_install.txt · 最終更新: 2021-08-18 20:19 by ore