タイル型ウィンドウマネージャ(WM)は、その軽量さ、圧倒的なカスタマイズ性、そして効率性の高さから、Unixコミュニティで非常に高く評価されています。従来のデスクトップ環境をキーボード駆動型のウィンドウ管理に置き換えることで、開発者は高度に最適化されたワークフローを実現できます。
本ガイドでは、Pop!_OSとBSPWM(Binary Space Partitioning Window Manager)をベースにした、カスタムデスクトップ環境の構築手順をステップ・バイ・ステップで詳しく解説します。人気のNordicカラーパレットを基調としたこのセットアップは、ミニマリズムの美学と強力な実用性を兼ね備えています。
ワークスペースの紹介
以下は、カスタマイズされた様々なシステムユーティリティや端末ユーティリティが動作している、完成した環境のビジュアル概要です:

コアシステムアーキテクチャ
この環境を再現するために、Pop!_OSの標準のGNOMEデスクトップを、個別のユーティリティで構成されたモジュール式のセットアップに置き換えます。下表は、この環境の技術仕様の一覧です:
| コンポーネント | ソフトウェア / プロジェクト | 説明 |
|---|---|---|
| オペレーティングシステム | Pop!_OS | Debian/Ubuntuベースの安定したLinuxディストリビューション |
| ウィンドウマネージャ | BSPWM | 二分木空間分割(Binary space partitioning)タイル型ウィンドウマネージャ |
| ホットキーデーモン | Sxhkd | シンプルなX用ホットキーデーモン |
| ステータスバー | Polybar | 高速で使いやすいステータスバー作成ツール |
| Xコンポジト | Picom (ibhagwanフォーク版) | 角丸やDual-Kawaseぼかしに対応したコンポジタ |
| アプリランチャー | Rofi | ウィンドウ切り替え、アプリランチャー、dmenuの代替ツール |
| 端末エミュレータ | Alacritty | GPUアクセラレーション対応の端末エミュレータ |
| シェル & テーマ | Zsh + Powerlevel10k | 高性能なインタラクティブ・シェル環境 |
| ビジュアルテーマ | Nordic Dark GTK | 北極の色調にインスパイアされたクリーンなダークGTKテーマ |
| アイコン & カーソル | Flattery Dark & Oreo Blue | フラットなアイコンと洗練されたモダンなカーソルポインタ |
| プライマリフォント | Source Code Pro | コードの読みやすさに最適化された等幅フォント |
ステップ・バイ・ステップのインストールとコンパイル
このチュートリアルは、Pop!_OSのクリーンインストールから始めることを想定しています。依存関係を完全に制御し、最適なパフォーマンスを確保するために、いくつかのコアコンポーネントはソースから直接コンパイルします。
1. リポジトリとシステムパッケージの同期
依存関係をダウンロードする前に、ローカルのパッケージデータベースが最新であることを確認し、ベースとなるシステムプログラムをすべて完全にアップグレードしておきます:
sudo apt update
sudo apt upgrade -y
2. BSPWMのインストールと設定
BSPWMは、ウィンドウを完全二分木の葉(リーフ)として表現する、軽量なタイル型ウィンドウマネージャです。
コア依存関係の取得
必要なXCBおよびシステムライブラリをインストールし、BSPWMを安全にコンパイルおよび実行できるようにします:
sudo apt install -y build-essential git vim xcb libxcb-util0-dev libxcb-ewmh-dev libxcb-randr0-dev libxcb-icccm4-dev libxcb-keysyms1-dev libxcb-xinerama0-dev libasound2-dev libxcb-xtest0-dev libxcb-shape0-dev
ソースからのコンパイル
公式リポジトリをクローンし、バイナリをコンパイルして、システム全体へのインストールを行います:
cd ~/Downloads
git clone https://github.com/baskerville/bspwm.git
cd bspwm
make
sudo make install
設定ファイルの初期化
設定ディレクトリの構造を作成し、デフォルトの初期化スクリプトをコピーします:
mkdir -p ~/.config/bspwm
cp examples/bspwmrc ~/.config/bspwm/
chmod +x ~/.config/bspwm/bspwmrc
cd ..
3. Simple X Hotkey Daemon (sxhkd) のセットアップ
他のタイル型ウィンドウマネージャとは異なり、BSPWMはキーボード入力を直接処理しません。その代わりに、sxhkdという独立したデーモンを利用して、キーの入力をコマンドへとバインドします。
sxhkdのコンパイル
git clone https://github.com/baskerville/sxhkd.git
cd sxhkd
make
sudo make install
キーバインドの設定
設定ディレクトリを作成し、サンプルのホットキー定義を配置します:
mkdir -p ~/.config/sxhkd
cp ../bspwm/examples/sxhkdrc ~/.config/sxhkd/
cd ..
設定に関する注意:
~/.config/sxhkd/sxhkdrcを変更する場合は、定義されている端末エミュレータが正しいか確認してください。移行前に標準のGNOMEシェル環境内でテストを行う場合は、デフォルトの端末コマンドブロックをgnome-terminalを起動するように調整してください。
4. ステータス表示用Polybarのコンパイル
Polybarは、洗練されたカスタマイズ可能なステータスバーを生成する、高度にモジュール化されたツールです。
ビルド依存関係の取得
sudo apt install -y cmake cmake-data pkg-config python3-sphinx libcairo2-dev libxcb1-dev libxcb-util0-dev libxcb-randr0-dev libxcb-composite0-dev python3-xcbgen xcb-proto libxcb-image0-dev libxcb-ewmh-dev libxcb-icccm4-dev libxcb-xkb-dev libxcb-xrm-dev libxcb-cursor-dev libasound2-dev libpulse-dev libjsoncpp-dev libmpdclient-dev libcurl4-openssl-dev libnl-genl-3-dev
コンパイルとインストール
git clone --recursive https://github.com/polybar/polybar
cd polybar
mkdir build
cd build
cmake ..
make -j$(nproc)
sudo make install
cd ../..
5. 実験的バックエンドに対応したPicomのコンパイル
標準的なデスクトップ環境では、コンポジットシステムを使用してウィンドウを管理します。BSPWMでは、滑らかなDual-Kawaseぼかし、アクティブウィンドウの透過、そしてエレガントなウィンドウの角丸に対応した、Picomのカスタムフォーク版(ibhagwan氏メンテ版)を使用します。
依存関係の取得
sudo apt install -y meson libxext-dev libxcb1-dev libxcb-damage0-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-render-util0-dev libxcb-render0-dev libxcb-randr0-dev libxcb-composite0-dev libxcb-image0-dev libxcb-present-dev libxcb-xinerama0-dev libpixman-1-dev libdbus-1-dev libconfig-dev libgl1-mesa-dev libpcre2-dev libevdev-dev uthash-dev libev-dev libx11-xcb-dev
Ninjaによるバイナリの生成
git clone https://github.com/ibhagwan/picom.git
cd picom
git submodule update --init --recursive
meson --buildtype=release . build
ninja -C build
sudo ninja -C build install
cd ..
6. コアデスクトップコンポーネント:Rofi & Alacritty
コアとなるウィンドウ管理アーキテクチャのインストールが完了したら、アプリケーションメニューとメインの端末環境を取得します:
sudo apt install -y rofi alacritty
カスタム設定のセットアップ
あらかじめ設定済みのdotfilesリポジトリをプルし、調整済みの設定ファイルを展開します:
git clone https://github.com/lukapiplica/nordic-bspwm-dotfiles
mkdir -p ~/.config/alacritty
cp nordic-bspwm-dotfiles/alacritty/alacritty.yml ~/.config/alacritty/
ハードウェアアクセラレーションに関するヒント: 古いグラフィックボードや仮想環境において
GLSL 3.30 is not supportedというエラーが発生した場合は、Alacrittyのデスクトップ設定ファイルを変更し、強制的にソフトウェアラスタライズを実行してください:sudo nano /usr/share/applications/com.alacritty.Alacritty.desktop
Exec=alacrittyの行をExec=bash -c "LIBGL_ALWAYS_SOFTWARE=1 alacritty"に置き換えます。
インターフェースのブラッシュアップと環境の微調整
ここからは、Nordicワークスペースの美学を一体化させるために、ZSH、テーマ、フォント、壁紙、およびロック画面の設定を行います。
1. タイポグラフィとフォントキャッシュ
記号や端末のグリフが正しくレンダリングされるように、メインのコーディング用等幅フォントを導入します:
sudo cp -r ~/Downloads/nordic-bspwm-dotfiles/Source_Code_Pro /usr/share/fonts/
fc-cache -fv
2. Fehによる壁紙の設定
ログイン時にプログラムから壁紙の配置を制御するため、コマンドラインユーティリティである feh をインストールします:
sudo apt install feh -y
mkdir -p ~/Wall
cp -r ~/Downloads/nordic-bspwm-dotfiles/Wallpapers/ ~/Wall/
ウィンドウマネージャの初期化時に実行されるよう、バックグラウンド起動コマンドを bspwmrc に挿入します:
echo 'feh --bg-fill $HOME/Wall/Wallpapers/wallpaper2.jpeg &' >> ~/.config/bspwm/bspwmrc
3. カスタムPolybarテーマの有効化
カスタマイズ済みのPolybarセットアップを書き出し、ステータスバーのアイコンを表示するために必要なTrueTypeフォントをコピーします:
mkdir -p ~/.config/polybar
cp -r ~/Downloads/nordic-bspwm-dotfiles/polybar/* ~/.config/polybar/
echo '~/.config/polybar/./launch.sh &' >> ~/.config/bspwm/bspwmrc
sudo cp ~/.config/polybar/fonts/* /usr/share/fonts/truetype/
fc-cache -fv
4. インタラクティブシェルの最適化 (ZSH & Powerlevel10k)
デフォルトのシェル環境を標準のBashからZSHへと切り替え、Oh-My-ZSH フレームワークをダウンロードします:
sudo apt install zsh -y
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Powerlevel10kプロンプトの適用
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
環境設定を変更します:
- 端末のプロファイルを開きます(
nano ~/.zshrc)。 - アクティブなテーマの行を
ZSH_THEME="powerlevel10k/powerlevel10k"に設定します。 - 保存して閉じます。
source ~/.zshrcを実行するか、p10k configureと入力して、ビジュアルセットアップアシスタントのステップを進めます。
5. Vimでの開発:Nordicテーマの統合
NordicカラーマトリクスをVimに移植し、美しいステータスユーティリティである Vim-Airline をインストールします:
mkdir -p ~/.vim/colors
cp ~/Downloads/nordic-bspwm-dotfiles/nord.vim ~/.vim/colors/
Airline拡張機能をクローンします:
git clone https://github.com/vim-airline/vim-airline.git ~/Downloads/vim-airline
cp -r ~/Downloads/vim-airline/* ~/.vim/
エディタのプロファイル(設定ファイル)で設定ルールを有効化します:
echo 'colorscheme nord' >> ~/.vimrc
echo "let g:airline_theme='base16'" >> ~/.vimrc
6. Rofiアプリケーションメニューのカスタマイズ
Nordテーマファイルをコピーし、プライマリインターフェースとして設定します:
mkdir -p ~/.config/rofi/themes
cp ~/Downloads/nordic-bspwm-dotfiles/nord.rasi ~/.config/rofi/themes/
rofi-theme-selector
テーマの有効化: セレクター内で
Nord themeに移動し、Enter を押してプレビューを確認したあと、Alt + a を入力してグローバルに適用します。Rofiをデフォルトのアプリケーションランチャーとして紐付けるために、キーバインドを更新します:
nano ~/.config/sxhkd/sxhkdrcアプリケーション起動用のキー組み合わせを
dmenu_runからrofi -show drunに変更します。
ワークスペースの生産性とCLIユーティリティ
完全に機能する開発用ワークステーションを構築するために、カスタマイズしたワークスペースを彩るいくつかのコマンドラインプログラムやビジュアルユーティリティをインストールします。

カスタムCLIスイートのインストール
標準のパッケージリポジトリを使用して、最新のビジュアライザ、システムハードウェアモニター、およびファイルマネージャーをインストールします:
# システムモニター (Htop)
sudo apt install htop -y
# マトリックス・レイン画面エフェクト (Cmatrix)
sudo apt install cmatrix -y
# ミニマルな画像ビューア (Sxiv)
sudo apt install sxiv -y
# ターミナルベースのファイルナビゲーター (Ranger)
sudo apt install ranger -y
# デジタルターミナルクロック (Tty-clock)
sudo apt install tty-clock -y
高度なビジュアライザとシステム情報エンジン
CAVA (Console-based Audio Visualizer)
ALSAやPulseAudioの入力信号に基づいてリアルタイムでバー形式のビジュアライザを生成するために、CAVAをコンパイルします:
sudo add-apt-repository ppa:hsheth2/ppa -y
sudo apt update
sudo apt install cava -y
pfetch (ミニマルなシステム情報フェッチャー)
git clone https://github.com/dylanaraps/pfetch.git ~/Downloads/pfetch
sudo install ~/Downloads/pfetch/pfetch /usr/local/bin/
Chafa (ターミナルキャラクターアートエンジン)
Chafaは標準的な画像を解析し、ターミナル上でレンダリングされる高精細なキャラクターアート(アスキーアート/ブロックアート)に変換します:
git clone https://github.com/hpjansson/chafa.git ~/Downloads/chafa
cd ~/Downloads/chafa
./autogen.sh
make
sudo make install
cd ~
Snake (ターミナルで再現するクラシックゲーム)
python-pygameライブラリを使用して、あのクラシックなNokiaのヘビゲームを再現します:
sudo apt install python3-pip -y
python3 -m pip install -U pygame --user
git clone https://github.com/Unixado/Snake.git ~/Downloads/Snake
ターミナルセッションからゲームを直接実行します:
python3 ~/Downloads/Snake/src/game.py

Lollypop (モダンなデスクトップオーディオプレーヤー)
sudo add-apt-repository ppa:gnumdk/lollypop -y
sudo apt update
sudo apt install lollypop -y
GTKとFirefoxの意匠カスタマイズ
オペレーティングシステムのインターフェースに統一感を持たせるためには、アプリケーションとウェブブラウザの両方で同じカラーパレットを共有する必要があります。
1. Lxappearanceによるデスクトップインターフェースの統合
軽量なウィンドウマネージャー上でカスタムウィジェットのスタイル、アイコンパック、カーソルを読み込んで割り当てるために、LXAppearanceをインストールします:
sudo apt install lxappearance -y
lxappearance を開き、ダウンロードしたNordicデザインアセットを選択して適用します:
- GTKデザインスキン: Nordic Dark theme
- アイコンライブラリ: Flattery Dark icons
- マウスポインタパック: Oreo Blue cursor
2. ミニマルなブラウザテーマ設定 (Firefox & Minimal Functional Fox)
標準のタイトルバーを削除し、ウェブ要素を中央に配置し、ブラウザの境界線をNordicのカラーパレットに一致させるために、カスタムのミニマルなuserChromeセットアップをダウンロードします:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/mut-ex/minimal-functional-fox/master/install.sh)"
cp -r ~/Downloads/nordic-bspwm-dotfiles/.firefoxthemes ~/
- Firefox を起動します。
- 設定 > ホーム(Preferences > Home)に移動します。
- ホームページと新しいウィンドウ(Homepage and new windows)を見つけ、カスタム URL(Custom URLs)を選択し、ローカルのスタートページを指すターゲットパスを入力します:
file:///home/<YOUR_USERNAME>/.firefoxthemes/startpage/Startpage/index.html - アプリケーションを再起動して、レイアウトの変更を初期化します。
キーボードショートカットとデスクトップナビゲーション
タイル型ウィンドウマネージャーは、手をキーボードのホームポジションに置いたままにできるようにすることで、生産性を最適化します。Windows/Superキー(super)がプライマリ修飾キーとして設定されています。
以下は、デフォルトおよびカスタムのデスクトップホットキーの標準リファレンスリストです:
| キーの組み合わせ | 対象となるイベント / アクション |
|---|---|
| super + Enter | GPUアクセラレーションに対応したAlacrittyターミナルインスタンスを起動する |
| super + Space | Rofiアプリケーションメニューを開き、GUIツールを起動する |
| super + Escape | sxhkdの補正ルールを即座に再読み込みする |
| super + Alt + r | BSPWMウィンドウマネージャーを再起動する |
| super + w | フォーカスされているアクティブなウィンドウを破棄/閉じる |
| super + [1-0] | ワークスペース1から10の間を移動する |
| super + g | フォーカスされているウィンドウをメインのマスターフレームと入れ替える |
| super + m | フルスクリーンレイアウトの拡大/縮小を切り替える |
| super + [h,j,k,l] | ウィンドウのフォーカスを方向ごとに移動する(左、下、上、右) |
| super + Alt + [h,j,k,l] | フォーカスされているウィンドウの境界を外側に拡張する |
| super + Alt + Shift + [h,j,k,l] | フォーカスされているウィンドウの境界を内側に縮小する |
| super + s | 選択したウィンドウのフローティングモードを切り替える |
| super + Ctrl + [矢印キー] | フローティングウィンドウを座標間で移動する |
結論と専門的な振り返り
モジュール化されたCLIユーティリティからデスクトップ環境を再構築することは、Linuxベースのシステムの柔軟性と奥深さを証明しています。洗練され、ミニマルなNordicデザインだけでなく、このBSPWMとPop!_OSのワークスペースは、大幅なパフォーマンスの利点をもたらします。CPUやメモリのオーバーヘッドの削減、ホットキーマッピングの絶対的な制御、そして高度なソフトウェア開発ワークフローに合わせて調整された非常にレスポンシブなワークスペースです。
開発者、システム管理者、あるいはLinux愛好家であるかを問わず、自分自身のキーボード駆動型ワークスペースを作り上げることは、日々の開発体験と業務効率向上への非常に価値ある投資となるでしょう。