XMonadを使い続けた結果

本当はカスタマイズなどしない方が良いのだけど、長年使い続けた結果としてxmonad.hsが少し大きくなってしまった。
Haskellは勉強したけど、考え方が根本的に違っているのか頭に入ってこない。勉強した動機が、xmonadのためだけ*1なので、みようみまねで誤魔化している。

カスタマイズのポイントは、

  • ワークスペースを3つだけにする。
  • 自動起動させたいアプリを横着してxmonadからさせている
  • フローティングウィンドウは定義しているが使っていない。
  • タスクバーはいらないときはキーボード・ショートカットで見えなくする
  • 間違ってmod-shift-qで終了したことがあるので、mod-ctrl-alt-qで終了するようにする
  • ディスプレイとワークスペースの割り振りが分からなくなったときに、決め打ちで戻す設定をした。どこかのブログからコピペさせてもらった。
import System.Exit
import XMonad
import XMonad.Hooks.EwmhDesktops
import XMonad.Hooks.ManageDocks
import XMonad.Hooks.SetWMName
import qualified XMonad.StackSet as W
import XMonad.Util.EZConfig
import XMonad.Util.Run
import XMonad.Util.SpawnOnce

main = do
  xmonad $
    ewmh $
      docks $
        def
          { terminal = "urxvt",
            modMask = myMod,
            borderWidth = 3,
            workspaces = myWorkspaces,
            startupHook = myStartupHook,
            manageHook =
              myManageHookFloat
                <+> manageHook def
                <+> manageDocks,
            layoutHook = avoidStruts $ layoutHook def
          }
          `removeKeysP` ["M-S-q"]
          `additionalKeysP` myKeys

myKeys =
  [ ("M-S-p", spawn "xfce4-appfinder"),
    ("M-S-b", sendMessage ToggleStruts),
    ("M-C-M1-q", io (exitWith ExitSuccess)),
    -- ディスプレイ0にワークスペース1を出力し,ディスプレイ1にワークスペース2を出力
    ( "M-S-r",
      do
        screenWorkspace 0 >>= flip whenJust (windows . W.view)
        (windows . W.greedyView) "1"
        screenWorkspace 1 >>= flip whenJust (windows . W.view)
        (windows . W.greedyView) "2"
    )
  ]

myMod = mod4Mask

myWorkspaces = ["1", "2", "3"]

myStartupHook = do
  spawnOnce "tint2"
  spawnOnce "copyq"
  spawnOnce "fcitx5"
  spawnOnce "pasystray"
  sendMessage $ SetStruts [] [minBound .. maxBound]

myManageHookFloat =
  composeAll
    [ className =? "Gimp" --> doFloat,
      className =? "xfce4-appfinder" --> doFloat,
      className =? "Pomodoro" --> doFloat
    ]

*1:Emacs Lispを勉強したときと同じ動機だ

ぼちぼちEmacsは使ってます

Emacsを捨てることを求め続けて、コーディングに関してはVisual Studio Codeに移行済みとなった*1。それでもEmacsは主にワープロソフトとして使用しており、Org Modeとhowmを組み合わせて、全ての文章を管理しています。文章はhowm上でOrg Modeの記法で書かれ、必要に応じてodt形式からWord文書やはてな記法に変換させています。全ての文章がhowm上にあるため、ポケット一つ原則と相性が良いです。

ポケット一つ原則で文章をクラウド上に管理する人もいますが、外部サービスの信頼性に疑問を抱いているため、そのような方法は真似しません。メールはローカルで管理する必要がないため、消えても問題ありません。

EmacsとChatGPT

Emacsから使えるChatGPTクライアントはかなり乱立しているようなので、しばらくは状況を見守ることにする。UNIXにみる世代間の断絶にかかれた「枯れた技術しか使わない」「新しい技術には懐疑的」なので。

*1:Emacs Lispをイジるときを除く

使用している作業フォント

Miguフォントを使い続けて、12年ほどになる。Migu 1Mに慣れてしまって、他に変える必要がなくなってしまった。使用するパソコンのエディタとターミナルには必ず設定している。フォント作成の関係者の皆様には感謝しかない。

https://itouhiro.github.io/mixfont-mplus-ipa/

128bit CPUのパソコンを見る日は来るのだろうか

何をもって128bit CPUと定義するのかで話が変わってしまうのだけど、アドレス空間が128bitであることは譲れない。
64bitのアドレス空間である16エクサバイトを使い切る状況が発生するとして、それはどのような使い方なのか全く想像できない。それでも無理やり考えてみた。

GPUチップセットに代表されるように、パソコンは全てCPUに統合される方向に進んでいるから、CPUから見て遅すぎるHDD/SSDも取り込んで全てのデータをRAMに保存する時がくるのかなぁ。ワンチップマイコンではなく、ワンチップパソコンになるな、これだと。

ただ、俺が生きている間にはそんな日が来そうにもない。

マシンのリプレース計画(2024年度版)

現在のマシン構成

ThinkPad T530
Core i7 3720QM, MEM 16GB, 最強マシン。Windows10でゲームをしないなら十分動く。
PRIMERGY TX1310 M1
Pentium G3420, MEM 4GB, GeForce GT 1030を差している。Manjaro Linuxをインストールして作業用クライアントとして使用中。
HP ProLiant MicroServer N54L
スペックを忘れた。NASとして稼働中。

今後の予定

Ivyおじさんは何も困っていないため、Windows10のサポートが切れる2025年10月までは現状を維持する。んで、デスクトップPCを買ってWindows12マシンにする予定。ThinkPad T530はLinuxマシンにする。流石にPRIMERGY TX1310 M1は、性能がギリギリなので、破棄かなぁ。もしかしたら、実験用マシンとして残すかも。

MicroServer N54Lは壊れるまでこのまま。こいつが壊れたら、NASキットを買うしか選択肢がない。

Creative Stage SE miniを購入した

丁度よいPC用のサウンドバーがないかなぁと、PC用スピーカー無しで4年間過ごして*1、2023年9月にCreative Stage SE miniが発売されていることを知った。値段が安く、しかもUSBオーディオ(DAC)を内蔵しているので、非常に都合が良い。さっそくAmazon年始のセールを利用して購入した。

Windos10に繋いで試したが、はじめは音が鳴らなくて戸惑った。どうも、USB接続するたびに必ず横のPOWERスイッチを押す必要があるみたいだった。面倒くさいなぁ。音質については、「音質なんて、こまけぇこたぁいいんだよ!! 」の人なので語る資格はない。ただ、お世辞にも良いとは言えないと思う。USBケーブル1本で繋がるのは非常に便利。

ダメだろなぁと予想していた、Manjaro Linuxでも問題なく音が鳴ってチョットビックリした。

*1:モニター内蔵スピーカーと、Tinkpad T530内蔵スピーカーで鳴らしていた。

XigmaNASをインストール

HP ProLiant MicroServer N54LにインストールしていたFreeNASが起動しなくなった。仕方がないのでXigmaNASをクリーンインストールした。要求するハードウェアスペックが低いらしいという理由だけだ。それまで使っていたデータは消えてしまうが仕方がない。