8
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Ubuntu 24.04 LTS なので Ubuntu Budgie を使う

Posted at

リリース直前に変な問題(xz の utils 的な何か)が発生して色々ゴタゴタがあったようですが、関係各所の皆さんの尽力もあって、Ubuntu 24.04 LTS が無事にリリースされました。心から感謝したいと思います。

で、せっかく2年に1度の LTS リリースなので、クリーンインストールして設定を一から見直します。

さらにせっかくなので、ただの Ubuntu ではなく、Ubuntu Budgie を入れます。

今まで普通の Ubuntu を使っていたのですが、デスクトップが重くて設定もしずらく、別のものを探していて、Ubuntu Budgie に辿り着きました。

Ubuntu Budgie のオススメできる点

  • デスクトップが軽快に動く
  • でも、なかなかに格好良い
    • もちろん個人的な感想です
  • 結構簡単に設定でき、あっという間に Mac のような外観に出来る
    • もちろん Community で開発されているものなので、簡単に設定できない点もありますが

ということで、私の設定を以下にメモします。(備忘録のような投稿ですいません)

Ubuntu Budgie のインストールおよび設定

Ubuntu desktop の iso を使ってインストールすると、最小構成でも Ubuntu desktop が入ってしまうので、Ubuntu Budgie の iso を使ってインストールする他ないです。

焼き方やインストールの方法は、ググればいくらでも出てくるので割愛。いつもは Ubuntu Japanese Team の Remix を待っていましたが、普通のリリースでも十分に日本語化できます(後述)。

インストール直後は Budgie Welcome というアプリが立ち上がります。この Budgie Welcome が意外と便利なので、大いに利用して設定していきます。

Web ブラウザのインストール

近年では、Web ブラウザだけちゃんと設定していれば、ほぼすべての作業が出来ると言っても過言ではないです。なので、Web ブラウザの選択は大事。

Budgie Welcome では、Getting Started > Browser Ballot を選ぶと、様々な種類の Web Browser のインストール・アンインストールが可能です。

結局 Google Chrome が便利なので私は Google Chrome を使いたいのですが、残念ながら Google Chrome は Budgie Welcome から直接インストールすることは出来ません。

Firefox を起動して、Google Chorme の deb をダウンロードしてインストールし、Google Chrome をデフォルトのブラウザとして設定したら、Budgie Welcome で Firefox をすべてアンインストールしましょう!(Budgie なので、GNOME Shell の設定に Firefox を使うことが無い!!(歓喜))

ドライバーの追加

Budgie Welcome の Getting Started > Drivers を選び、Additional Drivers をクリックすると、Software & Update の Additional Driver のタブが表示されます。

NVIDIA の GPU が刺さっている PC の場合、ここの propreietary, tested なものを選んで update ボタンを押すだけで、CUDA やドライバがインストールされます。便利。簡単。
(まぁ、これは Ubuntu Budgie に限った話じゃないけど)

で、ここで入る CUDA やドライバのバージョンは、正直、最新じゃないです。(2024.04.30 現在、CUDA 12.2 とドライバ 535.171.04)

最新のドライバを入れたい場合は、その下に repository 追加ボタンがあります。(親切すぎ!)

ただ、この NVIDIA の repository から CUDA やドライバを入れると、Ubuntu Update との相性が悪すぎるので、Ubuntu 推奨のを入れるんで良いんじゃないかと。

Flatpak のインストール

今や Ubuntu のアプリのインストール・管理は apt だけじゃなく、snap や flatpak にどんどん移行しています。特にアプリの flatpak 化の波は激しいです。なので、Getting Started > Optional Task を選び、Flatpak のインストールを行いましょう。

逆に言えば、ここだけで Flatpak のインストールが出来て超簡単。

テーマ・アイコン等の変更

Bugdie Welcome のもうひとつの素晴らしい点は、テーマやアイコンの自動インストール・設定が出来る点です。

Bugdie Welcome のトップ画面から Makeovers & Layouts を選ぶと、Switch Appearance からテーマ・フォント・アイコンの自動インストール&設定ができます。しかもその中に Mojave や WhiteSur が最初からあるので、すぐに Mac のような外観に出来る!

インストールには非常に時間がかかりますが、根気良く待っていればいずれ設定できます。

(ウィンドウのボタンを変更するには、budgie-desktop-settings でウィジェットの変更をする必要があります)

Budgie Extras

Budgie Welcome のトップ画面には INSTALL SOFTWARE というボタンがあり、これをクリックして出てくるプルダウンメニューの中には Budgie Extras という項目があります。

この Budgie Extras からは、Budgie 用のアプレットを自動的にインストールすることが出来ます。

既にインストールされ使われているものもあるのですが、インストールされていない中でお薦めのアプレットを以下に挙げます。

  • Calendar Applet
    • デフォルトで入っている Clock Applet とほぼ同じなのですが、クリックすると当月のカレンダーが表示されます
    • Clock Applet の代わりにこれを使うと、ちょっと得した気分になれます
  • Global Menu Applet
    • Window(アプリ)のメニューがトップパネルに表示されます
    • 要するに、Mac とほぼ同じ見栄え・使い方が出来るようになります
    • Window がすっきりしますし、とても使いやすいので、必須だと思います

インストールしたら、Budgie デスクトップの設定(budgie-desktop-settings)からトップパネルを選び、アプレットを追加することで使えるようになります。

その他の設定

Ubuntu Budgie は GNOME なので、GNOME Tweaks が使えます。素晴らしい。

sudo apt install gnome-tweaks でインストールしましょう。

以下のように使い分ければ、ほぼ思い通りな設定が出来ると思います

  • 基本的な設定を行うアプリ
    • Budgie デスクトップの設定(budgie-desktop-settings)
    • Budgie コントロールセンター(budgie-control-center)
      • Ubuntu コントロールセンターとほぼ同じ
  • 痒い所に手を届かせたい設定アプリ
    • Tweaks(gnome-tweaks)

Ubuntu Budgie でも難しい設定

上記でほぼ設定は完了なのですが、やっぱり完璧ではないです。まだまだ工夫しないと設定できないものがあります。

日本語化

Budgie Welcome には Getting Started > Language & Input という項目があり、ここで日本語化が出来そうなのですが、残念ながらここでは出来ませんし、余計なものをインストールしてしまいます。

なので、自分でやらなきゃいけないです。

Ubuntu Budgie でインストールされるターミナルは Tilix です。シンプルで gnome terminal よりも良い感じ。これも嬉しいポイント。

IME としてデフォルトで iBus が入っているのですが、これが非常に使いにくいので、Tilix を立ち上げ、以下のコマンドを入力して、Fcitx5 + Mozc のインストールおよび iBus のアンインストールを行います。

sudo apt update
sudo apt install -y fcitx5-mozc
sudo apt purge -y ibus ibus-data ibus-gtk ibus-gtk3 ibus-gtk4 ibus-mozc gir1.2-ibus-1.0

その後、gnome-language-selector を起動します。起動すると「言語サポートが完全にはサポートされていません」というダイアログが出ますが、ここで日和って「インストール」を選ぶとせっかく削除した iBus が再びインストールされてしまうので、心を鬼にして「後で通知する」を選択します。(特に通知はされないので大丈夫です)

gnome-language-selector で言語として「日本語」を選び「システム全体に適用」、そしてキーボード入力に使う IM システムとして「Fcitx 5」を選んで完了です。再起動すると Fcitx 5 が起動して、メニューも日本語化されていると思います。

Fcitx5 のテーマを変更する

Fcitx5 設定を起動し、アドオンタブの「クラシックユーザーインターフェース」の横のボタンをクリックすると、Fcitx5 のフォントやテーマが変更できます。

インストール直後は「デフォルト」と「デフォルトのダーク」の2種類しかありませんが、カスタマイズしたテーマを使用することも出来ます。

カスタマイズした Fcitx5 のテーマですが、thep0y/fcitx5-themes-candlelight が素晴らしいので使わせてもらうことにします。

テーマのインストールは簡単で、~/.local/share/fcitx5/themes というディレクトリを作り、その下にテーマを入れるだけです。今回の場合は、上記 repository を clone し、テーマが入っているディレクトリをコピーするだけです。

テーマを入れたら、Fcitx5 設定から同様にクラシックユーザーインターフェースの設定に移動すると、テーマのプルダウンの中に入れたテーマが見えますので、選択するだけです。

sshd のインストールと設定

Ubuntu Budgie に限らず、desktop の最小構成だと入らなくなったのかもしれませんが。ssh login が出来なくて結構アセります。

sudo apt install openssh-server でインストール。

/etc/ssh/sshd_config が設定ファイルなので、最低でも以下の設定を確認。

PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication no
PermitEmptyPasswords no

sudo systemctl enable ssh で有効化。(1回やれば大丈夫)

sudo systemctl status sshd.service で状態確認。

sshd の設定ファイルを変更したら sudo systemctl restart sshd.service

後は ~/.ssh/authorized_keys に公開鍵を入れるだけ。

Google Drive をマウントする

ノーマル Ubuntu だと、コントロールセンターに「オンラインアカウント」の項目があって、それに設定すれば、例えば Google Calandar のイベントをカレンダーで表示して開始時間10分前にアラートする、ということが出来ました。

しかし Budgie に限らず、その他の Flavour だと出来ない模様

単にカレンダーならば普通に Chrome とかで表示しておけば良い話なのですが、一番痛いのは Google Drive のマウント。

GNOME Online Accounts が無いならば、google-drive-ocamlfuse を使うしかない。

しかし最新の google-drive-ocamlfuse は GCP にプロジェクトを作り、そこに OAuth 2.0 のクライアント ID を作らなければならないと、非常に面倒くさいことになってしまいました。でもここは頑張る必要も甲斐もあります。

公式通り、PPA 経由でインストール。

sudo add-apt-repository ppa:alessandro-strada/ppa
sudo apt update
sudo apt install google-drive-ocamlfuse

GCP のコンソールからプロジェクト作ってクライアント ID 作って、に関しては、公式の説明があるのですが、あまりにも簡単な説明なので、もうちょっと説明します。

  • GCPのコンソール画面・APIとサービスに移動
  • 適当なプロジェクトを作る
  • このプロジェクトで Google Storage API を有効にする
    • 気持ち悪ければ、その他の API を無効にする
  • 「認証情報」タブを選択し、「認証情報を追加する」をクリックして、OAuth 2.0 クライアント ID を作る
    • アプリケーションの種類は「デスクトップアプリ」
  • 作れたら「OAuth 同意画面」タブを選択し、公開ステータスを「本番環境」にする
  • 「認証情報」タブを再び選択し、OAuth クライアント情報を JSON でダウンロードし、そこに書かれている client ID と client secret を google-drive-ocamlfuse の引数として与える

公開ステータスを「本番環境」にしなきゃいけないのが、非常にハマりました。

普通に作ると、~/gdfuse/default/ 以下に設定ファイル等が格納されます。この「default」が label なので、ディレクトリ名を変えることで label を設定できます。複数のアカウントの Google Drive をマウントしたい時には設定する必要があるでしょう。

そして、やはりログインする度に自動的に Google Drive をマウントして欲しいです。やり方は以下の2通り。

  • Startup Applications アプリで設定ファイルを作成する
  • 自分で設定ファイルを書く

せっかくなので後者でやってみます。

とは言っても難しくはなく、~/.config/autostart/ 以下に設定ファイルを置くだけです。例えば mount-google-drive-private.desktop という名前のファイル名を作り、そこに以下の内容を書きます。

[Desktop Entry]
Name=MountGoogleDrive (private)
Name[ja]=MountGoogleDrive (private)
GenericName=MountGoogleDrive (private)
Comment=mount GoogleDrive - private
Categories=System;
Type=Application
Exec=/usr/bin/google-drive-ocamlfuse -label private /home/<username>/GoogleDrive/private
Terminal=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
onlyShowIn=Budgie

マウントポイントは Home Directory から2階層以上深くしないと、Home Directory で ls した時にいちいち google-drive-ocamlfuse に聞きに行ってしまうので遅くなってしまいます。なので、label をつけて、Home 以下の GoogleDrive ディレクトリに label 名のマウントポイントを作ることにしました。

この設定ファイル内で ~ は使えないので、マウントポイントはちゃんと root からの絶対パスである必要があります。ここだけは注意。

この設定ファイルを作ったら、Startup Applications アプリにちゃんと反映されているか確認した方が安心です。後は reboot して自動的にマウントされているのを確認するだけ。

apt の warning を消す

google-drive-ocamlfuse のインストールで使った ppa:alessandro-strada/ppa の公開鍵は RSA 1024 bit なのですが、これは今では暗号としては弱く、もっと強い暗号にすることが求められています。

しかし、そんなこと言われたって提供してくださっている方が変えてくださらないと・・・

ということで、こちらの warning を消します。(もちろん自己責任でお願いします)

/etc/apt/apt.conf.d/99weakkty-warning というファイルを以下の内容で作成します。(もちろん root 権限で)

APT::Key::Assert-Pubkey-Algo ">=rsa1024,ed25529,ed448";

これだけで apt の際の warning が消えてスッキリします。

壁紙に表示される日付の書式を変更する

上部のパネルに表示される時刻(および日付)の設定は、Budgie デスクトップの設定(budgie-desktop-settings)から トップパネル > (パネルの中央)Clock を選択し、アプレットの設定から簡単に変更することが出来ます。(Calendar の場合も同様)

また、壁紙に表示される時刻および日付の設定は、同じく Budgie デスクトップの設定(budgie-desktop-settings)から トップパネル > (パネルの先頭)ShowTime を選択し、アプレットの設定から出来ます。

しかし、この ShowTime の設定では日付の書式が変更できません。調べると、直接 GNOME の設定を変更するしかないということが分かりました。CUI で変更・確認することは出来るのですが、簡単に GUI で設定しましょう。

flatpak install flathub ca.desrt.dconf-editor

dconf エディターがインストールされるので、そこから以下を開きます。

org > ubuntubudgie > plugins > budgie-showtime

ここの dateformat を修正することで書式を変えられます(例えば %Y/%m/%d (%a) とかに)。

まぁ、ただの飾りなんですけど。(時間を知りたい時はトップパネルの Clock/Calendar を見る)

壁紙を変更する

はい。普通の方法だと出来ないんです。

適当な背景部分で右クリックして出てくるメニューに「背景を変更」はあります。そこから呼び出されるのは Budgie コントロールセンター(budgie-control-center)の「背景」で、いつもならばそこで「画像を追加」して、その画像を設定すれば良い筈です。

でも、「画像を追加」を押して出てくるウィンドウで、画像を選択することが出来ないんです。

しかし、以下の2通りの方法で解決できます。

  • 背景にしたい画像を ~/.local/share/backgrounds/ にコピーする
  • Tweaks(gnome-tweaks)で設定する

まぁ普通に gnome-tweaks で設定出来るので、何の問題も無いのですが・・・

アカウントのプロフィール画像を変更する

壁紙と同様に、アカウントのプロフィール画像を自分の好きな画像に変更することも出来ないです。

どうしてもアカウントのプロフィール画像を自分の好きな画像に変更したい場合は、その画像を /usr/share/pixmaps/budgie-faces/ 以下にコピーすることが必要です。(もちろん root 権限で)

まぁログイン画面が LightDM だから、プロフィール画像を見る機会はほぼ無いので、別に良いんですけどね・・・

メニューのアイコンがあざとい

デフォルトだと、Bidgie のインコのアイコンが表示されています。中年男性にはチトきつい。

Budgie デスクトップの設定(budgie-desktop-settings)で トップパネル > (パネルの先頭)AppMenu のアプレットの設定に「メニューのアイコン」があり、デフォルトでは ubuntu-budgie-symbolic となっています。

これは、パスが通っている所なら、いちいちファイル名を指定しなくても設定できるからです。

このファイルの実体は /usr/share/icons/hicolor/scalable/apps/ubuntu-budgie-symbolic.svg です。

このアイコンは、最初に Budgie Welcome で入れたアイコンでは無く、Budgie のデフォルトで入っているアイコンなので、Budgie Welcome でアイコンを変更しても変わりません。それはちょっとつまらない。

例えばここに start-here と入力するだけで、アイコンの設定によって変わるようになります。

アイコンのセットは /usr/share/icons の下に入っていますので、自分の好きなアイコンをセットすることができます。

もうちょっと Budgie 色を出したい場合は、budgie-desktop と設定すると、まだ中年男性でも許容範囲なものになるかも。(感想には個人差があります)

メニューでアプリの並び順を変更できない

アプリの並び順は、アプリの名前です。でもいちいちページを移動してアプリを探すのはめんどい。

この並び順を手動で任意のものに変更する方法は、とりあえず無さそうです。

Zeitgeist をインストールすると、使用頻度順に並べ替えてくれるらしいです。

sudo apt install zeitgeist

でも Zeitgeist はバックグラウンドで様々な使用状況をモニタリングするので、重そう。出来ることならば入れないで済ませたいです。

コマンド型のランチャーをインストールする

マウスでメニューから使うアプリ選ぶのが非常に面倒くさいので、コマンド型のランチャーを入れたいと思います。

すでに Dock として Plank が入っている(歓喜!)ので、欲しい人だけで良いとは思いますが。

私のお薦めは Ulauncher です。公式通りにインストールします。

sudo add-apt-repository -y universe
sudo add-apt-repository -y ppa:agornostal/ulauncher
sudo apt update
sudo apt install -y ulauncher

Ulauncher を起動すると、設定の画面から、ログオン時に起動する、コマンドショートカット等を設定することが出来ます。

しかし、このコマンドショートカットは、ここで設定しただけでは時々反応しないことがあります。

念のため、Budgie コントロールセンター(budgie-control-center)のキーボード > キーボードショートカットの独自のショートカットを作成し、同じキーバインドで /usr/bin/ulauncher-toggle を登録することをお薦めします。

(余談)ターミナルのエイリアスを作成する

Ulauncher を入れたとしても、ターミナルを起動するのに Tilix とタイプするのは面倒なので、terminal とタイプしただけで Tilix を起動したい人向け。(特に私)

~/.local/share/applications/terminal.desktop として、以下の内容のファイルを作成します。

[Desktop Entry]
Name=Terminal
Comment=terminal emulator
Exec=/usr/bin/tilix
Terminal=false
Type=Application
Categories=System;
Icon=Terminal

こうすると、Ulauncher で terminal とタイプするだけで、Tilix が起動します。

さらにこんなメリットも

  • メニューにも Terminal が現れる
  • メニューから Plank に Drag & Drop することで Plank にも追加できる
  • アイコンを好きなものに設定できる
    • この場合はテーマのアイコンにある Terminal を指定している
  • 使うターミナルを変更したい場合も、このファイルの Exec を変更するだけ

ちなみに、dconf エディタで org > gnome > settings-daemon > plugins > media-keys > terminal を変更すると、システムのデフォルトターミナルを起動させるキーバインドを設定できます。これのデフォルト値が ['<Primary><Alt>t'] だったので、私の場合は ['<Super><Ctrl>t'] と変更しました。

何がシステムのデフォルトターミナルかは、以下のコマンドで確認できます。

sudo update-alternatives --display x-terminal-emulator

これを変更する方法は以下。

sudo update-alternatives --install /usr/bin/x-terminal-emulator x-terminal-emulator <path_to_terminal> 50

現在の Tilix の優先度を --display で調べると 30 だったので、それより大きい優先度(上記の場合は 50)を設定すれば、その terminal がデフォルトに設定されます。

キーバインドを Emacs 風にする

Tweaks(gnome-tweaks)のキーボード > Layout で、Emacs 入力を ON にすると、多くのアプリで Emacs 風なキーバインドを実現できます。

でも、GNOME じゃないアプリは Emacs 風にはなりません。gnome-tweaks が悪いわけじゃなく、GNOME じゃないアプリを使う私が悪い。

それでもどうしても Emacs 風のキーバインドを使いたい場合は、Autokey で設定します。

Autokey の設定は、いちいち Window を調べたりスクリプトを書いたりしなければならないので面倒ですが、一度設定してしまえばかなりパワフルに動きます。

まずはインストール。

sudo apt install -y autokey-gtk

Autokey の設定については、拙作ですが、私の設定が参考になるかなと。Mac 用のキーボードをつなげて使っているので、Super を多用して Mac と同様なキーバインドになるよう設定しています。

クリップボードの画像を保存する

スクリーンショットや JupyterLab で、画像をクリップボードに保存する機会は多いです。

直接 Google Slide 等に貼り付ける場合は問題ないですが、一旦デスクトップに保存したい場合もあるでしょう。この時に活躍するのが xclip です。

sudo apt install -y xclip

Budgie コントロールセンター(budgie-control-center)のキーボード > キーボードのショートカットで、以下のコマンドを登録することによって、キーボードショートカットだけでクリップボードの画像をローカルに保存することが出来ます。

sh -c '/usr/bin/xclip -selection clipboard -t image/png -o > /home/<username>/Desktop/"$(date +%Y%m%d_%H%M%S)".png'

メニューに表示されるアプリを減らす

通常の状態だと、メニューに普段使わないアプリがたくさん表示されて、非常に鬱陶しいです。

例えば「Budgie 談話」というアプリも表示されているのですが、これ単体をアンインストールすることは出来なく、アンインストールするなら Budgie Welcome 自体をアンインストールしなければなりません。そして本当に参照したくなったら Budgie Welcome から簡単に見ることが出来ます。要するに、メニューの表示だけを消したい。

メニューに表示されるのは、XDG_DATA_DIRS という環境変数に登録されているディレクトリの、さらに下の applications というディレクトリ内にある .desktop という拡張子のファイルの内容です。echo $XDG_DATA_DIRS で見ると、以下のディレクトリが登録されていることが分かります。

  • /usr/share/budgie-desktop
    • Budgie 独自のアプリ
  • /usr/share/gnome
    • GNOME のアプリ
  • ~/.local/share/flatpak/exports/share
    • Flatpak のユーザー権限で入れたアプリ
  • /var/lib/flatpak/exports/share
    • Flatpak の root 権限で入れたアプリ
  • /usr/local/share
    • 一般的なアプリ
  • /usr/share
    • 一般的なアプリ
  • /var/lib/snapd/desktop
    • snap で入れたアプリ

(ここに ~/.local/share は含まれていませんが、ちゃんと参照はしているようです)

Flatpak でインストールしても大抵は /usr/local/share/applications に desktop ファイルがあるので、普通はここだけをチェックすれば良いのですが、例えば Budgie Welcome は snap でインストールされているので、/var/lib/snapd/desktop/applications をチェックしなくてはなりません。(Budgie Welcome 関連は手動で消しても再起動で元に戻ってしまいますが)

メニューの項目に相当する desktop ファイルが見つかったら、そこに NoDisplay=true という1行を追加するだけで、メニューから消えます。もちろん desktop ファイルが root 権限だったら、root 権限で編集することが必要です。そして、自己責任でお願いします。

老婆心ながら、メニューから消えても Ulauncher で名前を指定すれば動かせるので、ほぼ心配することは必要はないです。

お薦めアプリ

私の個人的な意見なので、参考までに。

  • 画像ビューアー: Loupe
    • インストール
      • flatpak install flathub org.gnome.Loupe
    • 軽量だし、GPU も使うので高速
    • GIMP との連携も出来る
    • メニューでは "Image Viewer" としか出ない
  • 画像編集: GIMP
    • インストール
      • flatpak install flathub org.gimp.GIMP
      • flatpak install flathub org.gimp.GIMP.Plugin.BIMP
      • flatpak install flathub org.gimp.GIMP.Plugin.FocusBlur
      • flatpak install flathub org.gimp.GIMP.Plugin.Fourier
      • flatpak install flathub org.gimp.GIMP.Plugin.GMic
      • flatpak install flathub org.gimp.GIMP.Plugin.Lensfun
      • flatpak install flathub org.gimp.GIMP.Plugin.LiqiuidRescale
      • flatpak install flathub org.gimp.GIMP.Plugin.Resynthesizer
    • 定番。だがこれが良い。
    • 上記の Plugin を全部インストールすると「選択した領域にある物体を周りから推測して消す」ことが可能になる
  • グラフ作成: drawio
    • インストール
      • flatpak install flathub com.jgraph.drawio.desktop
    • これがないと仕事が出来ないぐらい必須
  • チャットツール: Slack
    • インストール
      • flatpak install flathub com.slack.Slack
    • これがないとある意味仕事が出来ない
  • PDF ビューアー: Evince
    • インストール
      • flatpak install flathub org.gnome.Evince
    • 定番。これで良い。
  • 音楽プレイヤー: Spotify
    • インストール
      • flatpak install flathub com.spotify.Client
    • 時々聞きたくなる
  • 動画プレイヤー: VLC
    • インストール
      • flatpak install flathub org.videolan.VLC
    • 軽量な動画プレイヤーとしては Celluloid もあるけど、あれこれ悩むのが嫌だったので、最初から VLC 入れてればいいや、ぐらいな気持ち
  • パスワード管理: KeePassXC
    • インストール
      • flatpak install flathub org.keepassxc.KeePassXC
    • 定番。これが良い。
  • スクリーンショット: Frameshot
    • インストール
      • flatpak install flathub org.flameshot.Flameshot
    • スクリーンショットを撮ったその場で書き込みができるので、便利
    • キーボードショートカットでスクリーンショットを撮る場合のコマンド
      • /usr/bin/flatpak run --branch=stable --arch=x86_64 --command=/app/bin/flameshot org.flameshot.Flameshot gui
  • カメラアプリ: Cheese
    • インストール
      • flatpak install flathub org.gnome.Cheese
    • 本当にカメラから動画を撮る時はどうせ OpenCV を使うだろうから、簡単な確認用に
  • メニュー確認: MenuLibre
    • インストール
      • flatpak install flathub org.bluesabre.MenuLibre
    • メニューにはあるんだけど、本体はなんだっけ?という場合に確認するのに非常に便利
    • 編集するには root 権限が必要なので、編集は実質出来ない。確認だけ
    • /var/lib/snapd/desktop/applications フォルダは参照していない模様
  • Markdown エディタ: Typora
    • これだけは有料なので本家から購入してダウンロード・インストールすると良いと思います
    • 私の Typora の設定はここらあたりが参考になるかと
      • ぜんぜんちゃんと作ってないですが

開発環境の構築

ついでに私が開発環境を構築した手順を記しておきます。ちなみに私は以下の開発をします。

  • JupyterLab で諸々の分析
  • VIM で Python の backend 開発
  • 時々 VIM で TypeScript の frontend 開発

最初に apt でインストールするもの

  • 基本的なパッケージ
    • sudo apt install -y git vim-gtk3 zsh tmux
  • 便利ツール
    • sudo apt install -y silversearcher-ag xsel
  • Python のコンパイルに必要なパッケージ(参考
    • sudo apt install -y build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev

env 系のインストール

先にプログラミング言語の仮想環境を実現する env 系のツールをインストールします。仮想環境はなるべくシステムから切り離したいので、すべて git で入れます。ついでに便利ツール fzf も git で入れます。

  • pyenv
    • git clone https://github.com/pyenv/pyenv.git ~/.pyenv
    • git clone https://github.com/pyenv/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
    • git clone https://github.com/pyenv/pyenv-update.git ~/.pyenv/plugins/pyenv-update
  • nodenv
    • git clone https://github.com/nodenv/nodenv.git ~/.nodenv
    • git clone https://github.com/nodenv/node-build.git ~/.nodenv/plugins/node-build
    • git clone https://github.com/nodenv/node-build-update-defs.git ~/.nodenv/plugins/node-build-update-defs
    • git clone https://github.com/nodenv/nodenv-update.git ~/.nodenv/plugins/nodenv-update
  • fzf
    • git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
    • ~/.fzf/install --xdg --key-bindings --completion --no-update-rc --no-bash --no-fish

ZSH の設定とシェルの切り替え

手前味噌ですが、ZSH の設定ファイルはここにまとめています。スクリプトで作れるようにしています。

設定ファイルを作ったら、シェルを切り替えます。

  • sudo chsh -s /usr/bin/zsh <username>

切り替えた ZSH を使うため、ターミナルを立ち上げ直します。

基本となる仮想環境の作成

env を入れたので、ついでに基本となる仮想環境を作ります。

まずは Python。偶然ではありますが、2024/04/02 に 3.11 系の最後の bugfix release である 3.11.9 が出たので、これを使うことにします。念の為に、3.10 系の最新である 3.10.14 も入れることにします。そして 3.11.9 の仮想環境を作り、普段はこれを使うことにします。

  • pyenv install 3.11.9
  • pyenv install 3.10.14
  • ~/.pyenv/bin/pyenv virtualenv 3.11.9 system-3.11.9
  • ~/.pyenv/bin/pyenv global system-3.11.9

次は Node.js。特にこだわりはないのですが、現時点での LTS を入れることにします。また、yarn と typescript の Language Server 関係を global にインストールします。

  • nodenv install 20.12.2
  • nodenv global 20.12.2
  • npm install -g yarn
  • npm install -g typescript typescript-language-server

pipx を入れる

次に Python のコマンドを通常のアプリのように使えるようにする pipx を入れるのですが、この pipx もシステムとなるべく切り離したいです。そこで、先程作った仮想環境 system-3.11.9 のパッケージとしてインストールします。

  • pip install pipx

エディタ等の設定

シェルの設定が完了したので、続々と設定していきます。既に設定スクリプトを作っていますので、叩いていくだけです。詳しい内容はリンク先を見ていただければ。

  • エディタ: vim
  • Terminal Multiplexter: tmux
  • ステータスラインやプロンプトを格好良くする: powerline
  • zsh, vim, tmux, powerline の色設定

gVim をデフォルトのテキストエディタにする

せっかく gVim を入れたので、gedit ではなく gVim をデフォルトのテキストエディタに設定したいと思います。

音楽やビデオ・写真ならば、Budige コントロールセンタの規定のアプリケーションで設定できるのですが、テキストファイル系はここでは設定できません。

よって、MIME type によって開くアプリケーションを決める設定を手動で変更しなければなりません。

この設定箇所は、~/.config/mimeapps.list です。(~/.local/share/applications/mimeapps.list というファイルもありますが、こちらは罠です(設定しても全く反映されません))

このファイルに例えば以下のように記入します。

[Default Applications]
text/plain=gvim.desktop
text/csv=gvim.desktop
application/json=gvim.desktop

ファイルの MIME type は file --mime-type <ファイル名> というコマンドで調べられますので、変なアプリで開いてしまってイラッとした場合は、MIME type を調べて mimeapps.list に登録していけば幸せになれると思います。

Association between MIME types and applicationsXDG Base Directory Specification が freedesktop.org の定義ですが、必ずしもこの通りの設定になっていない好例)

Python の設定

いよいよメインのプログラミング言語である Python の設定をします。

pipx に poetry をインストールする

私は Python のパッケージ管理&その他の機能を持つ poetry を頻繁に使うのですが、これもシステムや開発環境に依存させたくありません。よって、poetry を pipx にインストールし設定します。

  • pipx install poetry
  • pipx inject poetry "poetry-dynamic-versioning[plugin]"
  • poetry config virtualenvs.path "${HOME}/.pyenv/versions"
    • poetry で作成した仮想環境を pyenv の仮想環境が作られるディレクトリと同じディレクトリに作ることで、poetry で作成した仮想環境も pyenv で操作できるようにします

JupyterLab Desktop をインストールする

Flatpack でインストールすることにします。

  • flatpak install flathub org.jupyter.JupyterLab

pipx に JupyterLab をインストールする

分析プロジェクト毎に JupyterLab をインストールするのは無駄なので、JupyterLab も pipx に入れてしまいます。ここにインストール方法や設定はまとめてありますので、良ければ参照してください。

Docker のインストール

ここのページの手順 1, 2 を行った後に、忘れずに以下も行います。

  • ここのページに従い、NVIDIA Container Toolkit もインストールする
    • PC に GPU が刺さっている場合
  • 自分を docker グループの一員とする
    • sudo adduser <username> docker
      • usermod を使う手段もあるが、オプション付け忘れるのが怖い
  • 再起動する

最後に

非常に長い投稿になってしまいましたが、なにか皆さんのお役に立ったのなら幸いです。

8
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?