UbuntuをPCにクリーンインストールするのはいいが、
最初は、ほぼ何もソフトが入っていない状態(それがいいのだが)
だから、何かしらのセットアップは行いたい。
ただ、普段Macとかに慣れていると、
久しぶりにUbuntuとかを触ると、
何をすればいいか忘れる...
なので、本記事ではUbuntuを入れたら
最低限設定したいことをまとめようと思う。
CapsLockの無効化してCtrlキーにする
さて、毎度のことですが、宇宙一使いみちがわからないCapsLockを
無効化する作業をしようと思います。
あと、もともとMacのキー配列に慣れてしまった私は、
無変換キーと変換キーの存在意義もよくわからないので、
Ctrlあたりに変えたいと思います。
まずは、各キーのキーコードを調べたいので、
xev
でキーコードを調べます。
CapsLockを押してみます
keycodeが66ということがわかります。
次に、Xmodmapを使ってキー配列を変更します。
設定ファイルは、~/.Xmodmapなので、
clear Lock
keycode 49 = Control_L
keycode 66 = Control_L
keycode 100 = Zenkaku_Hankaku
keycode 102 = Zenkaku_Hankaku
keycode 111 = Shift_R
add control = Control_L
xmodmap ~/.Xmodmap
これで再起動したら反映されるはずなのだが、
どういうわけか私の環境だとしつこくCapsLockがつきまとってきた。
なので、アプローチを変えて、
Gnome Tweaksで設定する
sudo apt install gnome-tweaks
gnome-tweaks
で起動して画像のように設定する
これで再起動したらCapsLockはやっと無効化(というよりCtrlキー)に変換できた
firefoxが気に入らなければ好きなブラウザを入れる
個人的にはFirefoxは結構好きなブラウザなので、
正直Firefoxをそのまま使うというのもありなのですが
(そのほうがなんとなくLinuxっぽい気もするし)、
Batの小銭稼ぎのために、
ここはやはりBraveを入れとこうと思います。
sudo apt-get update
sudo apt install curl
sudo curl -fsSLo /usr/share/keyrings/brave-browser-archive-keyring.gpg https://brave-browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/brave-browser-archive-keyring.gpg] https://brave-browser-apt-release.s3.brave.com/ stable main"|sudo tee /etc/apt/sources.list.d/brave-browser-release.list
sudo apt update
sudo apt install brave-browser
ちなみに、Braveはhtmlファイルにブックマックをエクスポートとインポートができるので、
それでブックマックを復元するのがいいかと思います。
私はこのHTMLファイルはGithubのPrivateリボジトリで管理しているので、
cloneするために次にgitの設定を行う。
gitの設定
まずはインストール
sudo apt install git
git config --global user.name 'user_name'
git config --global user.email "user@example.com"
ちゃんと設定できているか確認
git config --list
次にgitのssh設定をしたい。
まずはsshキーを作成
ssh-keygen
さてこいつの中身をコピーしたい。
Macとかならpbcopyで終了なのだが、
linuxの場合違うアプローチが必要だ。
linuxの場合、xselというものが使えるので
インストールする
sudo apt install xsel
インストールしたら、クリップボードに公開鍵をコピーする。
cat ~/.ssh/id_rsa.pub | xsel --clipboard --input
追加したらGithubのsshキーの項目に追加する。
追加したら、
ssh -T git@github.com
これでHiと返ってくれば、
git cloneとかでsshで持ってこれる
vim/neovimの設定
もちろん、neovimとかの設定をしないことには
何も始まらない。
vimmerであれば、dotfileみたいなリボジトリを持っているであろうから、
そいつをcloneして、各々設定を適用させる。
sudo apt install neovim
init.luaとかの設定ファイルをcpする
※私の環境の例
mkdir ~/.config/nvim
cp init.lua ~/.config/nvim/
mkdir ~/.config/nvim/lua
cp -r lua ~/.config/nvim/
さてこれでnvimを起動すればプラグインとかインストールして終わりかと思いきや、
何やらエラーが。lazy.nvimは0.8以上のneovimのバージョンがいるが、
さきほど、apt installしたneovim0.6とかだった。
なので、一旦neovim削除する
sudo apt-get remove neovim
そして、ここに書かれている内容をもとに、
最新のneovimをインストールするようにする
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux64.tar.gz
sudo rm -rf /opt/nvim
sudo tar -C /opt -xzf nvim-linux64.tar.gz
使っているシェルの設定ファイル(UbuntuとかならデフォルトはBash?)
.bashrcとかに下記を追記してパスを通す
export PATH="$PATH:/opt/nvim-linux64/bin"
sourceコマンドとかで設定ファイルを読み込み直して、
nvimと起動してpluginとかのインストールが始まればOK
最初は、node.jsとか入れていないので、
そのあたりのエラーは出るかもしれない
私の環境でnvimを実行すると
みたいなエラーが出ました
build-essentialをインストールしてみます
sudo apt update && sudo apt install build-essential
これでNo C compiler found
周りのエラーは消えるはずです
※yadmのやつは、以前は(というかMacでは)エラーにならなかったのですが、
Linuxではinvalid configurationになるようなので、削除またはコメントアウトしました。
nodejs
ただ、coc.nvim周りでnode.jsがないとエラーになるので、
node.jsの設定もします。
詳しくは下記の記事を参考にnvmを入れて導入しようと思います
これで好きなバージョンのnode.jsを入れたら、
先程のnode is not executable
みたいなエラーは消えるはずです
ripgrep(rg)、fd導入
nvimで:checkhealth
コマンドを実行すると、
外部ツールとかで足りていないものがわかる。
代表的なものだと、telescope.nvimで使う、
ripgrepやfdとかなので、まずはこやつらを入れて、
telescope.nvimの力を引き出す
ripgrep(rg)
ubuntuの場合だと、
curl -LO https://github.com/BurntSushi/ripgrep/releases/download/14.1.0/ripgrep_14.1.0-1_amd64.deb
sudo dpkg -i ripgrep_14.1.0-1_amd64.deb
でインストールできる
fd(fd-find)
sudo apt install fd-find
実は、これだけでnvimのcheckhealthは突破できるのだが、
fdコマンドでこのパッケージのコマンドを呼び出せないので、
公式に書いてあるとおり、fdコマンドをそのまま使いたい場合は
シンボリックリンクを貼る必要がある
mkdir ~/.local/bin # もしなければ
ln -s $(which fdfind) ~/.local/bin/fd
~/.local/binにはPATHを通しましょう
export PATH="$PATH:$HOME/.local/bin"
※fdにこだわらず、fdfindと打てば使えるので、
alias設定でも十分かもしれない
これでtelescope.nvimも十分使えるだろう
tmuxの設定
tmuxの詳細についてはこちらで
まずはインストール
sudo apt install tmux
インストールしたら、設定ファイルをcpして
読み込ませる
cp tmux.conf ~/.tmux.conf
tmux source-file ~/.tmux.conf
zshの設定
シェルは好き好きあると思うが、
私は無難にzshにしている。
まずはzshをインストール
sudo apt install zsh
zshが使えるか確認
cat /etc/shells
zshが入っていたら
chsh -s /bin/zsh
で次回からzshになるはず(変わっていなかったら再起動とかすれば反映されているはず)
シェルが変わっているかどうかは
echo $SHELL
で確認できる
zshにしたらあとは設定あるのみ。
設定ファイルをまとめた
dotfilesリボジトリをcloneして
cpする
私の場合の設定ファイルリボジトリ(dotfiles)
cp zshrc ~/.zshrc
source ~/.zshrc
oh-my-zshの設定
zsh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
これやると、zshrcがたしか上書きされるので、
先にこれをインストールしてから、設定ファイルをcpしたほうがいいかもです...
zoxideのインストール
これも必須ツールなので入れようと思います。
curl -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | zsh
.zshrcに下記を追記する
eval "$(zoxide init zsh)"
ziコマンドも使いたいので、
fzfも入れます
sudo apt install fzf
これでzとziコマンドが使えるはず
Ruby、rbenvの設定
Ruby,Railsエンジニアならこれらも入れておきましょうか。
git cloneでのインストールにしておきまs
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
initします
~/.rbenv/bin/rbenv init
って実行したら終了かと思いきや、
なにやらエラー
なるほど、rbenvの設定があると、
.zshrcのrbenv initの部分をコメントアウトしてもう一度実行する。
すると、また同じエラーに...
どういうことだと思ったので、
rbenvのソースを見てみた
どうやら、grepでrbenv initにヒットしたらだめっぽいので、
コメントアウトじゃなくて消去しないとだめみたい
消して再度試したらうまく行った。
Macのときに追加するeval "$(rbenv init - zsh)"
みたいな設定とは
地味に違う設定が.zshrcの末尾に追加されていた
ただ、ためしにrbenv install
を実行してみても、
なにやらinstallコマンドがないとのエラーが出るので、
下記も実行する
git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build
あとは、3.3.4でもインストールしてみる
rbenv install 3.3.4
ただこれを行うと、今度はzlib.hがないみたいなエラーが出るので、
そっちをインストールする
sudo apt install zlib1g-dev
sudo apt install libffi-dev libssl-dev libyaml-dev #上だけだとまた依存ライブラリが足りない的なエラー出るのでこちらも
もう一度インストールしたら、
うまくいくはず。
あとは、globalに設定する
rbenv global 3.3.4
Dockerの設定
お次はDockerの設定
Macとかなら、
OrbStackという選択肢もあるが、
Ubuntuの場合、使えなさそうです。
MacとかならDocker DesktopをGUIでぽちぽちインストールして、
はい終了って感じなのですが、
Linuxの場合ちょっと手順が増えます。
Docker Engineのインストール
まず、Docker engineを入れます
やり方はいろいろありますが、
apt repositoryのやり方でインストールします。
まずは、apt repositoryの設定をします
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
次に、dockerのパッケージをインストールします。
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
無事dockerが入っているか確認してみます
docker -v
sudo docker run -it ubuntu bash
ただ、このままだといちいちsudoを打たないといけないので、
下記を参考にsudoなしでも実行できるようにしたほうがいいかも
Homebrewの導入
めちゃくちゃ今更だが、
Homebrewも一応入れておいた方がいいかも?
(ぶっちゃけなくてもいい気もしますが)
(echo; echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"') >> /home/ユーザー名/.zshrc
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
sudo apt-get install build-essential
alacrittyの導入設定
Macだと、ついついiTerm2に頼ってしまうが、
もちろん、Linuxでは使えない。
ターミナルの選択肢は色々あるといえばあるが、
おそらく一番無難であろうalacrittyを導入する
どっかの記事でalacrittyもHomebrewでインストールできる的な記載を見かけた気がして、試してみたが、普通にインストールできなかったので、
公式に書いてあるやり方でやってみることとする。
まずは、ソースコードを持ってくる
git clone https://github.com/alacritty/alacritty.git
cd alacritty
次にrustupとやらを入れる
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | zsh
※公式だと、zshではなくshだったが、なんかうまく行かなかったので、zshに変えています。
rustup override set stable
rustup update stable
次に依存パッケージを入れる
sudo apt install cmake pkg-config libfreetype6-dev libfontconfig1-dev libxcb-xfixes0-dev libxkbcommon-dev python3
いよいよbuild
cargo build --release
infocmp alacritty
これでエラーが出るようなら、
sudo tic -xe alacritty,alacritty-direct extra/alacritty.info
次にデスクトップエントリー追加する
sudo cp target/release/alacritty /usr/local/bin
sudo cp extra/logo/alacritty-term.svg /usr/share/pixmaps/Alacritty.svg
sudo desktop-file-install extra/linux/Alacritty.desktop
sudo update-desktop-database
zshの設定
mkdir -p ${ZDOTDIR:-~}/.zsh_functions
echo 'fpath+=${ZDOTDIR:-~}/.zsh_functions' >> ${ZDOTDIR:-~}/.zshrc
cp extra/completions/_alacritty ${ZDOTDIR:-~}/.zsh_functions/_alacritty
AlbertとCopyQによるAlfredに代わるランチャーとクリップボード
Albertをインストールする
ubuntuの場合、バージョンごとにコマンドが違うようなので、
まず、使っているubuntuのバージョンを調べる
lsb_release -a
私の環境だと、Ubuntu 22.04.4 LTSだった。
上記のAlbertにかかれていたコマンドを実行してみる
echo 'deb http://download.opensuse.org/repositories/home:/manuelschneid3r/xUbuntu_22.04/ /' | sudo tee /etc/apt/sources.list.d/home:manuelschneid3r.list
curl -fsSL https://download.opensuse.org/repositories/home:manuelschneid3r/xUbuntu_22.04/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/home_manuelschneid3r.gpg > /dev/null
sudo apt update
sudo apt install albert
あとは起動すれば使えるはず
ちなみにどういうわけか、ubuntu 22.04だと、
ホットキーでalbertが有効にならなかったので、
ubuntu自体のキーボードショットカットを設定した。
スクリーンショットは、print screenボタンで取ることができる
※ubuntu 22.04だとShift + print screenの範囲選択ができない模様
クリップボード連携のために、
copyQも入れておく
sudo apt-get install copyq
ちょっとわかりにくいが、
AlbertのQueryの部分でCopyQをどうやって呼び出すかを設定できる。
この場合、cpでクリップボードの中身を確認できる。
ただ、ホットキーで呼び出して、
cpで中身をみたあと、エンターをおしても
はりつけされず、直前のコピー履歴として設定されるだけだったので、
ここはAlfredのように貼付けされるように設定できたらいいなと思っている。
ちなみに、copyqはcopyq toggle
みたいなコマンドできどうすることもかの
Omakubを使えば解決!?
最近話題の(?)かのDHH大先輩が作成したomakubを試してみる。
こいつで最低限必要そうなやつを入れてみるのもありかも。