2025年7月25日金曜日

🧭 どれを選ぶ?Vim操作で使える3つのIDE的エディタ

🧭 どれを選ぶ?Vim操作で使える3つのIDE的エディタ

Vim操作に慣れている人が、IDE的に快適に開発したいときの選択肢を比較します。

🔷 VS Code + Vim拡張(最も手軽)

  • メリット: すぐ使える。Vim操作+豊富な拡張機能。LSP、補完、Git操作、デバッグ機能すべて完備。
  • デメリット: やや重め。Vim拡張は本家ほど細かくない。
  • 向いてる人:「今すぐ快適に開発したい」「IDEとして使いたい」「Vim操作は補助的に使いたい」

🔶 Neovim(+ LazyVim / AstroNvim)

  • メリット: Vim完全互換。高速&軽量。Luaで柔軟にカスタマイズ可能。LSPや補完、Git連携も可。
  • デメリット: 初期設定に時間がかかる。プラグインの選定や理解が必要。
  • 向いてる人:「Vim操作を極めたい」「自分でエディタを作り込むのが好き」「軽さ重視」「CUIでも快適に使いたい」

🔸 Emacs + Evil(特に Doom Emacs)

  • メリット: Vim操作でEmacsの強力機能(例:Org-mode, Magit, REPL統合)が使える。
  • デメリット: 学習コストが高い。Emacs固有の概念に慣れが必要。やや起動が重い。
  • 向いてる人:「Emacs機能に興味がある」「Vim操作を捨てたくない」「統合開発環境を極めたい」

📊 比較表

観点 VS Code + Vim Neovim Emacs + Evil
Vim操作
IDE機能 ○〜◎
起動の速さ
拡張性
設定の手軽さ

📝 結論(目的別おすすめ)

  • すぐ快適に開発したい: VS Code + Vim拡張
  • 軽くて自分好みに育てたい: Neovim(+ LazyVim)
  • Emacsの機能に惹かれてる: Doom Emacs + Evil

Emacs環境をVimキーバインドで使う

以下に、Emacs環境をVimキーバインドで使うか、それともNeovimなどを覚えるべきか、それぞれのメリット・デメリットと使い分けのポイントを整理してみます:


✅ VimキーバインドでEmacsを使う(例:Evilモード)

利点:

  • Vimのキーバインドを保ちつつ、Emacsの強力な機能を使える(例:Org-mode, Magit, LSPの統合など)

  • Emacsの拡張性を活かせる(設定はLisp系だけど、パッケージが豊富)

  • TUI/GUI両対応、特にEmacsのGUIは安定している

主な使い方:

  • Evil モード(EmacsでVimライクな操作が可能になるパッケージ)

  • doom-emacsspacemacs などのフレームワークを使えば、最初からVim風キーバインドと整った環境が手に入る

向いている人:

  • Vim操作を捨てたくないけど、Emacsの一部の機能(Org-modeなど)に魅力を感じている人

  • IDE的に統合された開発環境が欲しい人(LSP, Git, REPL, Dired)


✅ Neovimを覚える

利点:

  • Vimの操作体系のまま、Luaなどで強力に拡張可能

  • 高速・軽量、設定次第でIDE化も可能(LazyVim, AstroNvim, NvChad など)

  • Vimとの互換性が高く、覚えたことが無駄にならない

向いている人:

  • すでにVimがある程度使えていて、もっと開発環境を自分で構築したい人

  • 軽量エディタ志向で、起動が速くて反応が早い環境を好む人


❓どっちを選ぶべき?

Emacs (+Evilモード) を選ぶべき場合:

  • Emacs限定の強力な機能(例:Org-mode、Emacs Lispによる全体制御)に惹かれている

  • ツールを統合したい(Git、REPL、ブラウザ、メールなど)

  • Vimキーバインドは捨てたくないけど、新しい環境に挑戦したい

Neovim を選ぶべき場合:

  • Vimを日常的に使っていて、開発効率をさらに上げたい

  • 高速な起動と操作感が重要

  • Emacsの操作性・概念にあまり魅力を感じない


🎯 結論(個人的おすすめ):

もし 今のVim操作に慣れていて、Org-modeやEmacsの機能が特に必要ないなら、Neovimを極めたほうが効率的 です。
でももし Emacs特有の機能に関心がある(例:Org-modeでのノート管理、Emacs全体をOSのように使う等)、そのときは doom-emacsEvilモード で試してみると良いです。


興味があれば、以下のどちらかから始めるといいです:

  • 🔥 Neovim強化 → LazyVim + telescope.nvim + lsp-zero など

  • 🔥 Emacs Vim風 → doom-emacs(インストールも簡単)


2025年7月24日木曜日

ubuntu nixos



✅【1. Ubuntu / Kubuntu / Lubuntu = "Ubuntu + デスクトップ環境(DE)"】

Ubuntu系はすべてベースとなるUbuntu(中身は同じ)に、異なるデスクトップ環境(DE: Desktop Environment)を組み合わせただけです。

ディストリ名 ベース デスクトップ環境(DE)
Ubuntu Ubuntu GNOME(標準)
Kubuntu Ubuntu KDE Plasma
Lubuntu Ubuntu LXQt(軽量)
Xubuntu Ubuntu Xfce(中軽量)
Ubuntu MATE Ubuntu MATE(GNOME 2系派生)
Ubuntu Budgie Ubuntu Budgie

✅【2. NixOSとの違い】

NixOSでは**「どのWM/DEを使うか」も設定ファイル(configuration.nixなど)で柔軟に指定でき、
例えば dwmi3xmonadplasma5gnome などの組み合わせが細かく調整できます。
→ Ubuntu系よりも
選択肢が豊富かつ統一的に管理**できます。


✅【3. Ubuntu → Kubuntu / Lubuntu に変える方法】

✔ 方法①: 新しいディストリを入れ直す(クリーンインストール)

  • UbuntuからLubuntuにしたいなら、一番確実なのはLubuntuをクリーンインストールすること。

  • 各種設定やパッケージもLubuntu用に最適化されていて、軽快に動作。

✔ 方法②: DEだけ入れ替える(共存も可能)

UbuntuにKDEやLXQtなどを後から追加インストールすることもできます。

# KDEを入れてKubuntu化
sudo apt install kubuntu-desktop

# LXQtを入れてLubuntu化
sudo apt install lubuntu-desktop

📌注意: 複数DEを共存させると、ログイン画面で選択できるが、設定の衝突や冗長なパッケージで重くなる可能性もある。


✅【4. WM(ウィンドウマネージャ)との違い】

Ubuntu系で言うDE(GNOMEやKDE)は、WM + ファイラー + 設定マネージャ + 通知機構 + アプリ群をひとまとめにしたものです。

例えば:

  • KDE → KWin(WM)+ Dolphin(ファイラー)+ SystemSettings(設定)+ plasmaなど

  • Lubuntu → Openboxや後継のLXQtのWM(lxqt-session など)

逆に、NixOSやArchでは、WM単体(例:dwmやi3)だけで構成するミニマルな環境も容易に作れます。


✅【まとめ】

項目 Ubuntu系 NixOSやArch等
DEの切替 追加/共存も可能だがやや面倒 設定で自在に制御
DEの種類 Kubuntu, Lubuntu等の派生で切替 KDE, GNOME, i3, dwmなど自由に指定
軽量化 LubuntuやXubuntuで軽くできる WM単体+必要最低限で超軽量化可能
柔軟性 あまり高くない(初心者向け) 非常に高い(上級者向け)

🔧 おすすめ

もしUbuntu上でWM(例:dwm, i3)を使ってみたい場合:

sudo apt install i3

ログイン画面で「i3」を選べば試せます。
軽量・タイル型WMを体験してから、NixOSなどで本格的に導入するのも手です。



2025年7月23日水曜日

NixOS + dwm だけで最低限のPC操作を快適にする方法

NixOS + dwm だけで最低限のPC操作を快適にする方法

シンプルで軽量な dwm だけを使って、音量調整・バッテリー表示・画面輝度調整 など、最低限のPC設定をできるようにする方法を紹介します。デスクトップ環境(LXQtやXFCE)を入れなくても、CUIツールと軽量な常駐アプリだけでかなり快適になります。

基本方針

  • dwm には GUI設定ツールがないので CLIベースで対応
  • xsetrootdwmblocks でステータス表示
  • sxhkd などでキーボードショートカット対応

1. 必要パッケージ(configuration.nix

{ pkgs, ... }:

{
  environment.systemPackages = with pkgs; [
    pulseaudio
    pavucontrol
    alsa-utils
    brightnessctl
    acpi
    sxhkd
    dunst
    networkmanager
    bluez
    blueman
    xorg.xsetroot
  ];

  networking.networkmanager.enable = true;

  sound.enable = true;
  hardware.pulseaudio.enable = true;

  hardware.bluetooth.enable = true;

  services.xserver.enable = true;
  services.xserver.windowManager.dwm.enable = true;
}

2. 音量・輝度・バッテリーのコマンド例

音量調整(PulseAudio):


pactl set-sink-volume @DEFAULT_SINK@ +5%
pactl set-sink-volume @DEFAULT_SINK@ -5%
pactl set-sink-mute @DEFAULT_SINK@ toggle

バッテリー残量:

acpi -b

輝度調整:

brightnessctl s +10%
brightnessctl s 10%-

3. キー割り当て(sxhkd


XF86AudioRaiseVolume
    pactl set-sink-volume @DEFAULT_SINK@ +5%

XF86AudioLowerVolume
    pactl set-sink-volume @DEFAULT_SINK@ -5%

XF86MonBrightnessUp
    brightnessctl s +10%

XF86MonBrightnessDown
    brightnessctl s 10%-

4. ステータスバー(xsetroot)のスクリプト例


#!/bin/sh
while true; do
  VOL=$(pactl get-sink-volume @DEFAULT_SINK@ | grep -o '[0-9]\+%' | head -n1)
  BAT=$(acpi | cut -d, -f 2 | tr -d ' ')
  DATE=$(date '+%Y-%m-%d %H:%M')
  xsetroot -name "VOL:$VOL | BAT:$BAT | $DATE"
  sleep 10
done

5. オプション:Home Managerを使う場合


programs.sxhkd = {
  enable = true;
  keybindings = {
    "XF86AudioRaiseVolume" = "pactl set-sink-volume @DEFAULT_SINK@ +5%";
    "XF86AudioLowerVolume" = "pactl set-sink-volume @DEFAULT_SINK@ -5%";
    "XF86MonBrightnessUp" = "brightnessctl s +10%";
  };
};

まとめ

  • dwm でも工夫すれば GUIなしで快適な操作が可能
  • sxhkd + pactl/brightnessctl が超便利
  • xsetroot or dwmblocks で情報も見やすく

余計なDEを入れず、軽くて統一感のある環境が好きな人には、NixOS + dwm 構成は非常におすすめです。

【WSLでPodmanを使おうとして詰んだ話】systemd依存の罠とリカバリー記録




🔧 はじめに

WSL上のUbuntuで**Podmanを使いたい!**と思って apt install podman したら、地獄の依存関係トラブルにハマりました…。
この投稿では、その経緯と最終的にどうリカバリーしたかを記録しておきます。


🌀 起こったこと

Ubuntu(WSL)で以下のコマンドを実行:

sudo apt install podman

すると依存関係のエラーが続出:

podman : Depends: conmon but it is not going to be installed
         ...
systemd-sysv : Depends: systemd (= 255.4-1ubuntu8.4) but 255.4-1ubuntu8.10 is to be installed

どうやら systemd 関連パッケージのバージョンが中途半端に更新されており、しかも dpkg が壊れて修復できない状態に…。


🔍 原因を整理すると:

  • systemd のアップグレードが途中で失敗(WSLではありがち)

  • /etc/passwd ロック失敗 → dpkg --configure -a も通らない

  • そのせいで podman の依存関係が解決できない


💣 対処してみたこと:

  • apt-mark holdsystemd を止めてみる → 効果なし(バージョン差異で詰む)

  • dpkg スクリプトを手動で無効化 → 一時的に通るが不安定

  • systemd をダウングレードしようとするも、依存パッケージが既に新しくなっていて詰み状態


🧹 最終的な解決策:

💥WSLのUbuntuを一度削除して再インストールしました。

wsl --unregister Ubuntu

その後、Microsoft Store から Ubuntu を再インストールし、クリーンな状態から再構築。これが一番早くて安全でした。


✅ 教訓・まとめ

  • WSL では systemd 関連パッケージのアップグレードは慎重に!

  • Podman は rootless モードで使えるので、本来 systemd は必須ではない

  • 環境が壊れたら、WSL では「作り直す」が最善手になることもある


💡 次やるときのベストプラクティス

  1. WSL の Ubuntu をインストールしたら、まず apt upgrade は控える

  2. Podman を使うなら、最初に rootless モードでテスト

  3. 必要に応じて公式リポジトリを追加して最新版を導入まとめておくと以下の通りです:


    🧵 Ubuntu 環境破損とその復旧

    🔧 背景

    Docker を使った開発を行っていた Ubuntu 環境(WSL 上 or ネイティブ)で systemd 周辺のパッケージ更新により依存関係の破綻が発生。apt installdpkg --configure -a--fix-broken install も機能しなくなった。


    🚨 発生したエラーの例

    dpkg: error processing package systemd (--configure):
     installed systemd package post-installation script subprocess returned error exit status 1
    

    また、podman インストール時にも以下のような依存性の壊れが起こる:

    The following packages have unmet dependencies:
     podman : Depends: conmon but it is not going to be installed
     systemd-sysv : Depends: systemd (= 255.4-1ubuntu8.4) but 255.4-1ubuntu8.10 is to be installed
    

    🔄 試行した対処法

    • sudo apt-mark hold で systemd 関連パッケージを固定 → 効果なし

    • apt --fix-broken install, dpkg --configure -a を繰り返す → 改善せず

    • 結果:依存地獄から脱出できず断念


    🧹 結論:クリーンな Ubuntu を入れ直し

    • 複雑に壊れたシステムは復旧より再インストールが早いと判断

    • WSL 上で新たに Ubuntu を再導入し、環境をクリーンにリセット


    🐳 その後:Podman 導入はスムーズに成功

    WSL 上の新しい Ubuntu で以下のように進めた:

    # Podman の公式リポジトリを追加(Ubuntu 22.04 例)
    source /etc/os-release
    echo "deb [signed-by=/etc/apt/keyrings/libcontainers.gpg] https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_${VERSION_ID}/ /" | sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list
    
    sudo mkdir -p /etc/apt/keyrings
    curl -fsSL https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_${VERSION_ID}/Release.key | gpg --dearmor | sudo tee /etc/apt/keyrings/libcontainers.gpg > /dev/null
    
    sudo apt update
    sudo apt install -y podman
    

    これで依存関係エラーもなく正常に導入できた。


    ✅ 教訓

    • Ubuntu で systemd 関連の壊れは非常に復旧が難しい

    • 壊れたら躊躇せず再インストールが最善の選択になることもある

    • Podman のような開発ツール導入時は公式リポジトリを活用するのが安全




2025年7月22日火曜日

「Lenovo ThinkCentre M73 + Proxmox + GTX1050Ti で GPU パススルーに挑んだ記録」

 



はじめに

中古の Lenovo ThinkCentre M73(第4世代 Core i5)に Proxmox VE をインストールし、Windows 10 VM に NVIDIA GTX 1050 Ti をパススルーしようとした記録です。

結果として一部課題があり完全成功には至らなかったものの、貴重なトラブルシュートの記録として残します。


使用環境

  • PC本体: Lenovo ThinkCentre M73 (Core i5 4th Gen)

  • GPU: NVIDIA GTX 1050 Ti

  • Proxmoxバージョン: 6.8.12-9-pve(時点のカーネル)

  • 目的: Windows 10 VM に GPU パススルーしてゲームや動画再生を快適に


準備:BIOS編

✅ 実施したBIOS設定

  • 初期Display出力:IGD(内蔵グラフィック)

  • Multi-monitor:Enabled

  • VT-d:Enabled

  • その他:Secure Boot無効化

❌ ここで苦戦した点

  • Auto にすると画面が出なくなる(HDMIもD-Subも)

  • PEG(PCI-E GPU)優先にするとProxmoxが起動しない(画面が出ない or SSH不能)

  • 結局 IGD + Multi-monitor が唯一の動作構成だった


Proxmox設定編:IOMMUとVFIOの設定

GRUB 設定

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"

更新コマンド:

update-grub
update-initramfs -u

VFIOにGPUをバインド

/etc/modprobe.d/vfio.conf

options vfio-pci ids=10de:1c82,10de:0fb9 disable_vga=1

問題発生:VFIOエラー

dmesg 出力例:

vfio-pci: probe of 0000:01:00.0 failed with error -22

原因不明のまま認識されず。BIOSのPEG設定やinit順序が関係?


ネットワークの混乱

  • enp2s0 に設定していたはずが、起動後は enp3s0 に変化していた

  • IPアドレスも 192.168.1.202192.168.1.6 に変化

  • dmesgip a を確認しつつ /etc/network/interfaces を修正


結論:今回は断念

  • GPUは検出されず、パススルーは失敗

  • Proxmoxの起動とWebアクセスまでの復旧に多くの時間を要した

  • 再挑戦にはBIOSの深い仕様理解が必要


教訓と次の一手

  • BIOSが古めの機種ではパススルーの安定動作は困難なケースあり

  • SSHやWeb UIが死んだ時のため、Display出力(D-Sub)環境は残しておくべき

  • 次回は Ryzen or 第6世代以降のIntel機で再挑戦予定


まとめ

パススルーは「動かせば勝ち」、ただし動くまでが非常に険しい。
この記録が、他の方の挑戦のヒントになれば幸いです。


おまけ:トラブル時に役立ったコマンド

# PCIデバイス一覧
lspci -nnk

# VFIOエラー確認
dmesg | grep -i vfio

# ネットワーク状態
ip a
cat /etc/network/interfaces

# Proxmox Web UI ポート
https://[ProxmoxのIP]:8006


2025年7月18日金曜日

 はい、その症状は Guix を Proxmox 上の仮想マシンなどに入れて試したときによく起こる典型的な問題です。

日本語サイトのフォントが文字化けしたり、まったく表示されないのは、日本語フォントがシステムに入っていないのが原因です。


✅ 原因

Guix は非常に最小限でミニマルなシステム構成なので、

❌ デフォルトでは日本語フォント(Noto Sans CJK, Takao, IPA など)が一切入っていません。

そのため、WebブラウザやGUIアプリで日本語が正しく表示されず、文字化け・豆腐(□)・空白になります。


✅ 解決策:日本語フォントをインストールする

以下のようなフォントを Guix でインストールすれば解決します。

🔹 一番おすすめ:Noto CJK 系フォント(Google公式)

guix install font-google-noto-cjk

これは高品質で広く使われている Google 製フォントです(CJK=中韓日対応)。

🔹 他にも使える日本語フォント

guix install font-ipaexfont font-takao
  • font-ipaexfont:IPA公式。読みやすくて軽い

  • font-takao:Ubuntuなどでも使われている昔ながらの定番


🔄 フォントをインストールしたらどうなる?

  • GNOME, XFCE, sway などの GUI でも日本語が正しく表示される

  • Firefox / Brave / Chromium でも文字化けがなくなる

  • fc-list で確認できるようになる(例:fc-list | grep Noto


✅ オマケ:フォントキャッシュ更新(必要なら)

以下のコマンドで再読み込みできます(普通は不要):

fc-cache -fv

✍️ 例:よく使う日本語フォントインストールまとめ

guix install font-google-noto-cjk font-ipaexfont font-takao

🧪 補足:GUIなし環境でもフォントは必要?

  • コンソール上で w3melinks を使うなら不要

  • GUIブラウザ(Firefoxなど)を使うなら フォントは必須

  • 特に Proxmox の仮想ディスプレイ(SPICE/QXL)などでGNOME使う場合は重要


✅ まとめ

現象 原因 解決方法
日本語が表示されない 日本語フォント未インストール guix install font-google-noto-cjk など
□や空白が表示される 豆腐フォント扱い(fallbackなし) IPAフォントなどで補完
GNOMEなどで一部表示崩れる フォント設定不足 gnome-tweaks などでフォント設定を変更可


 はい、Doom Emacs は Vim とほぼ同じキーバインドで操作できます!

むしろ Doom Emacs は「VimライクにEmacsを使いたい人のためのEmacs構成」です。


✅ Doom Emacs の Vim 互換性について

機能 Doom Emacs での状態
normal, insert, visual モード ✅ 完全対応(evil-mode 内蔵)
hjkl 移動 ✅ 同じ
:w, :q, :e など : でExコマンドも使える
/, n, * などの検索 ✅ そのまま使える
ciw, di(, yap など ✅ Vim と同じテキストオブジェクト対応
gg, G, dd, yy ✅ そのまま動く
キーマップカスタム config.el で調整可能

Doom Emacs は evil(Vimキーバインドエミュレーション)を前提に設計されているため、Vimとほぼ同じ感覚で使えるEmacsです。


🎮 追加される便利なキーバインド(Doom独自)

Doom ではスペースキー(SPC)がリーダーキーになっていて、以下のようなショートカットが使えます:

キー 機能
SPC f f ファイルを開く (find-file)
SPC b b バッファ切り替え
SPC p p プロジェクト切り替え
SPC g g Magit(Git UI)を開く
SPC : M-x(Emacsコマンド実行)

つまり、:Git:Buffers 的なUIが、SPCから直感的に使えるようになります。


❗ Vimと100%完全に同じではないところ(注意点)

  • プラグインの名前や実装が違う(たとえば telescope.nvim は Emacsにはなく、代わりに ivy, vertico, helm などが使われる)

  • Vimスクリプトではなく、Emacs Lisp(またはDoom用のDSL)で設定

  • 一部の細かい挙動(カーソル行末の処理など)が若干異なることもある

でも、普段のキーボード操作感は驚くほどVimに近いです。


✅ Vimユーザーにとっての Doom Emacs の利点

  • :q, :w, i, gg, dd, :%s/foo/bar/g などすべて使える

  • SPC でのコマンド探索が非常に便利(慣れると戻れない)

  • LSP, Git, Org-mode, Guix, Terminal, REPL などのEmacs力をそのまま使える

  • 軽量で起動も速い(Emacsとは思えないレベル)


🧪 まとめ

質問 答え
Doom Emacs は Vim と同じ操作? ✅ ほぼ完全に同じ(evil-modeベース)
Vim操作感でEmacsを使える? ✅ 問題なし
Vimと100%同じ? ❌ 細かい差はあるが、ほぼ違和感なし


 はい、VimからEmacsに慣れたいなら SpacemacsDoom Emacs は非常に良い選択肢です!

特に Vimユーザーには “違和感が少なく” Emacs の世界に入っていけるので、"学習曲線を緩やかにするブリッジ" として使えます。


✅ 結論:Vim使いがEmacsに慣れるには?

アプローチ オススメ度 特徴
Spacemacs ⭐⭐⭐⭐ Vimキーバインド + Emacs機能。GUI感強め。初心者向け
Doom Emacs ⭐⭐⭐⭐⭐ より高速・最適化。Vimに近いフィーリング
プレーンEmacs + evil ⭐⭐ シンプルだが、自力で設定が必要

🔹 Spacemacs の特徴

  • Vimキーバインド完全サポートevil-mode

  • SPC(スペースキー)で全コマンド起動 → VimよりもDiscoverable

  • レイヤー(layer)構成で機能を追加・削除しやすい

  • 初心者から中級者向け

  • GUI向き(端末だと少し重い)

👉 Vim操作をしつつ、Emacsのエコシステムを味わいたいなら、まずこれ!


🔹 Doom Emacs の特徴

  • 超軽量 & 高速起動

  • Vimキーバインドにかなり忠実

  • ~/.doom.d/config.el などで Nix 的な設定感覚に近い

  • 上級者〜中級者向け

  • CLI環境にも強い(GuixやTiling WMとの相性◎)

👉 Vim使いで「軽さ」や「高速キーバインド重視」なら、Doomがオススメ!


🔧 Guix でのインストール方法(例:Spacemacs)

1. Emacs をインストール:

guix install emacs

2. Spacemacs をセットアップ:

git clone https://github.com/syl20bnr/spacemacs ~/.emacs.d

起動すると .spacemacs を自動生成してくれます。

最初のプロンプトでは「Vimモード」を選ぶこと!


🧪 Doom Emacs を使うには(少し手間がかかる)

DoomはGuixにはパッケージされていないので、手動インストール:

git clone --depth 1 https://github.com/doomemacs/doomemacs ~/.emacs.d
~/.emacs.d/bin/doom install

(依存ツールが一部必要:git, ripgrep, fd, など)


🧭 Vim → Emacs に移行する理由あるの?

GuixやEmacs Lispベースのエコシステム(例:guix repl, guix.el, geiser, guile)を活用したい場合、Emacsを多少でも触れるとものすごく便利になります。

とはいえ:

Vimの操作感が大好きなら、Spacemacs や Doom Emacs で「Emacsを Vimみたいに使う」だけで十分!


✅ まとめ

目的 選択肢
VimっぽくEmacsを使いたい ✅ Spacemacs or Doom
Emacsの力を最大限に引き出したい ✅ Emacs + evil
超高速&ミニマルが好き ✅ Doom Emacs
GUI派&わかりやすさ重視 ✅ Spacemacs


 すごく良い質問です!

あなたのように vimユーザーで、emacs未経験の方が Guix を触るときに、「Guix は Emacs に親和性がある」と言われるとちょっと戸惑いますよね 🤔

では、わかりやすく説明します。


✅ まず結論:

Guix は Emacs がなくても全く問題なく使えます。
ただし、Guix の中身(構成言語)に Emacs的文化や技術が使われているという話です。


🔍 なぜ「Emacs に親和性がある」と言われるのか?

1. Guix の構成言語が Guile Scheme

  • Guile は GNUプロジェクトの公式スクリプト言語で、Emacsの拡張言語である Elisp(Emacs Lisp) に非常によく似た Lisp系の言語です。

  • つまり Guix の構成ファイル(config.scmなど)は、Lisp方言(Scheme)で書かれる

  • Emacs ユーザーは Lisp に慣れているので、Guix の構成やパッケージ定義を自然に読める/書ける

2. Guix には Emacs 向けの強力な拡張(パッケージ)がある

  • emacs-guix という Emacs拡張を使うと、Emacsから直接 Guix のパッケージ管理や設定を行える。

  • Guix のパッケージ定義を Emacs でインタラクティブに編集・参照できるなど、統合環境的な使い方が可能

3. Guix 開発者が Emacs ヘビーユーザー多め

  • 開発文化が Emacs 的(宣言的・関数指向・再現可能性重視)


🤔 でも vim 使いには関係ある?

ほとんど 関係ありません!大丈夫です。

  • 普通に guix install, guix system reconfigure などのコマンドは使える

  • config.scm は Scheme で書くが、Vim でも編集できる(構文ハイライトもある)

  • Emacs なしでも Guix の基本的な運用は 100% 可能


🛠 もし Scheme に慣れてなかったらどうする?

Vimユーザーでも十分使いこなせるようになります。以下が役立ちます:

🔹 Schemeに慣れるためのTips:

  • guix system describe → 現在の設定を確認

  • guix repl でインタラクティブにScheme実行

  • 構成ファイル例をたくさん読む(公式や他人のGitHub)

🔹 VimにScheme構文を追加する

" ~/.vimrc
autocmd BufRead,BufNewFile *.scm set filetype=scheme

✅ まとめ:vimユーザーでもGuixは問題なく使える

項目 内容
Emacsは必要? ❌ 必要なし
GuixとEmacsの関係は? Guixの言語(Guile Scheme)がLisp系で近い
Vimで構成編集できる? ✅ 可能。構文ハイライトやLSPも対応可能
Vimユーザーが困る点は? 特になし。Schemeに慣れるだけでOK


 これはとても本質的で良い質問です!

結論から言うと:

インストーラは NixOS の方が親切(GUIあり・ガイドあり)だけど、インストール後の使い心地は Guix も NixOS も非常に近い
❗ ただし、思想とツール体系が違うので、「同じ使い心地」とは限らない。用途や好みによって「肌に合う方」が変わってきます。


🔍 両者のインストール後の使い勝手の比較(表)

項目 NixOS Guix System
パッケージ管理 nix-env, nix, nixos-rebuild guix, guix system, guix package
宣言的な構成 configuration.nix(Nix言語) config.scm(Scheme言語)
自由ソフトへのこだわり 緩い(非自由ソフトも利用可能) 厳格(デフォルトでは非自由ソフト禁止)
インストーラの使いやすさ GUIあり、ディスク設定も簡単 基本は CUI、手動パーティション設定が必要
ロールバック機能 システムもユーザーもOK 同様にOK(--list-generationsなど)
学習曲線 やや緩やか(Nixは独自だが簡潔) やや急(Scheme文法 + GNUスタイル)
パッケージの数・新しさ 多くて新しい 比較的少なめ(自由ソフト中心)
外部ソフト対応 Flatpak, AppImage, .deb 展開など柔軟 FlatpakはOKだが、非自由依存には厳しい

✅ インストール後「使い勝手」が似ている理由

  • 両方とも宣言的構成(構成ファイルで環境定義)

  • 両方ともロールバック・世代管理ができる

  • 両方とも再現可能ビルド・ユーザーごとのプロファイルがある

  • 両方とも「root不要でユーザー環境管理が可能」

つまり思想は共通しており、パッケージ管理方法の差や言語の違いを除けば、"使っていて得られる恩恵" は非常に近いです。


🧠 違いが「重要に感じる人」と「気にならない人」がいる

  • NixOSに慣れてるなら、GuixのScheme構成は最初ちょっとしんどい

  • Guixの「自由ソフトのみ」ポリシーが合わない人はNixOSのほうが柔軟

  • EmacsユーザーならGuix(Guile)に親和性あり

  • GUIインストーラや自動化が欲しい人はNixOSが楽


🧩 結論:こんな人にはこっち!

向いてる人 おすすめディストリ
Nix言語に慣れてる ✅ NixOS
GNU理念に共感しEmacs派 ✅ Guix
GUIインストーラで手軽に始めたい ✅ NixOS
宣言的構成が好き、言語にはこだわらない 両方OK(好みで選べる)

🔧 もしどちらも使ってみたいなら:

同じマシンで:

  • /nixos

  • /guix

というふうに2つのパーティションにそれぞれ入れて、ブート時に選択できるようにすれば、比較がはっきり体験できます!


興味があれば、GuixとNixOSの構成ファイルを横に並べて比較したテンプレートも作れますよ。どちらが肌に合うか、そこから見つけるのもアリです 🔍

 qutebrowser(キュートブラウザ)は、Vimライクなキーバインドを特徴とした軽量・高速なテキスト操作重視のWebブラウザです。マウスをほとんど使わずに操作できるのが魅力です。

以下に基本的な操作方法を紹介します。


✅ 基本操作(ノーマルモード)

操作キー 機能
:quit または :q ブラウザを終了する
:open URL または :o URL 指定したURLを開く
:help ヘルプを表示
J / K 前のタブ / 次のタブ
H / L 戻る / 進む(履歴)
d / u 下へ / 上へスクロール
gg / G ページの先頭 / 末尾へ
yy 現在のURLをコピー
:tab-close または d(タブ上で) タブを閉じる

✅ ページ移動とリンク操作

操作キー 機能
f ページ内のリンクをフォーカス表示(ヒントでジャンプ)
F 新しいタブでリンクを開く
;o ページ上の画像などを別に開く
/ + 文字列 ページ内検索(nで次へ、Nで前へ)

✅ 入力モード(INSERTモード)

  • フォーム入力などにフォーカスすると自動で入ります。

  • Esc でノーマルモードに戻れます。


✅ タブとバッファの操作

操作キー 機能
:tab-open または :open 新しいタブを開く
:buffer または :b 開いているタブを一覧表示して選択
:tab-move タブを並べ替える

✅ 設定・カスタマイズ

  • :set コマンドで設定変更可能(例::set content.javascript.enabled false

  • 設定ファイル:~/.config/qutebrowser/config.py


✅ よく使うコマンド一例

:open https://example.com   ← 指定サイトを開く
:spawn mpv {url}            ← mpvで動画を再生
:download                   ← ファイルダウンロード管理

🔰 ヒント

  • 起動時はノーマルモード(Vimでいうコマンドモード)

  • :set:config-cycleなどを使って細かい制御も可能

  • config.pyでVimのように自由にキーバインドを変更可能


さらに詳しい使い方が必要なら、以下をどうぞ:



2025年7月14日月曜日

【Windows10終了で考えた】Linuxを試してわかった“向き・不向き”:Zorin OSとNixOSの体験記



【Windows10終了で考えた】Linuxを試してわかった“向き・不向き”:Zorin OSとNixOSの体験記

2025年、Windows 10のサポート終了が迫る中で「そろそろLinuxに移行しようかな?」と考える人も増えてきていると思います。
自分もその一人でした。

実際にLinuxを使ってみて感じたのは、
**「どっちも簡単じゃないけど、"時間や手間をかけたくない人"には結局Windows 11しか選択肢がない」**という現実でした。


■ Linuxのインストールは“興味がない人”には難しい

Linuxって「自由で軽い」「古いPCでも快適」みたいなイメージがありますが、実際はインストールの時点でつまずきやすい。

  • パーティション?

  • EFIブート?

  • ファイルシステムってなに?

最初からいろんな“知らない言葉”が飛び交ってきます。
「ちょっと試してみたいだけ」「設定で悩みたくない」──
そんな人にとっては、Linuxのインストールはけっこう重い作業です。


■ でも、Windows 11も別に簡単じゃない

正直、Windows 11も使いやすいとは思っていません
設定画面はやたら複雑だし、使っているうちに広告っぽい通知や余計な機能が目に入ってきたりして、ストレスも多いです。

でも、OSやPCの仕組みなんて考えたくない。設定も最小限で済ませたい。とにかく「ただ使えればいい」──
そういう人にとっては、現時点では結局Windows 11が一番“楽”な選択肢だと思います。皮肉ですが、これが現実です。


■ サブ機があるならLinuxはアリ

とはいえ、自分は余っていたノートPCを使って、Linuxを試してみました。

最初に入れたのはZorin OS
見た目もWindowsっぽくて、GPUやWi-Fiもすぐ認識してくれたので、特に設定で困ることはありませんでした。
Ubuntuベースなので情報も多く、初心者にはちょうどいいと思います。


■ NixOSは「Linuxをもっと知りたい人」に最適

もっと仕組みを深く知りたくなって選んだのが、NixOS
これは完全に“自分で構成する”タイプのディストリビューションです。

設定はすべてコード(configuration.nix)で書くので、
「なぜこのパッケージが動いているのか」「どこに設定があるのか」まで見通せるのが面白い。
ただし当然ながら、難易度はかなり高め

やりがいや学びは大きいけど、間違っても“ラクしたい人”向けではありません。


■ 結論:どっちも一長一短。でも、Linuxは試す価値あり

  • 🟩 PCやOSに興味がない、時間もかけたくない人Windows 11

  • 🟦 余ってるPCがある、ちょっと触ってみたい人Zorin OSなどの初心者向けLinux

  • 🟥 OSの仕組みや構成に興味がある人NixOS

Linuxは「使うだけ」ならZorinなどでわりとスムーズに始められますが、
何かあったときの対処力自己解決の意欲はある程度必要です。

でも、それを乗り越えた先には、Windowsでは味わえない「納得感」や「理解」があるのも確かです。


最後に

Windows 11もLinuxも、完璧な選択肢じゃありません。
でも、今の時代はどっちかだけじゃないし、「試してみる自由」があるのが一番のメリット。

少しでも興味があるなら、Linuxを触ってみるのは大いにアリだと思います。


 その通りですね。特にYouTubeのサムネイルは視聴者の注意を引くために「過激」「扇動的」「性的」「不安を煽る」など、強い印象を与える要素が多く含まれがちです。情報の質を見極めるためにも、まず サムネイルから見分けるパターン を知っておくのは非常に有効です。 🔍 YouT...