WPP
WordPress テーマ DecorMe のリストを少し修正

この WP サイトでは Burger Themes というサイトの DecorMe の無料版を使っていますが、番号付きリストに変な黄色い■形が表示されていることに気づきました。

ブラウザでインスペクトしてみると ■形は li の :before で表示しているようです。 ul も ol も 指定がないので両方の箇条書き要素にあたってしまっているようです。実際の CSS はこうなっていました。

.post-items li:before {
    content: "";
    width: 5px;
    height: 5px;
    background-color: var(--bs-primary);
    margin-right: 18px;
    display: inline-block;
    vertical-align: 3px;
    outline: 2px solid rgba(255, 255, 255, 0.2);
    outline-offset: 4px;
}

これの content 属性で文字の装飾として■形が表示されているようです。

li の前に ul を入れて番号なし箇条書きの時のみに当たるようにしてみます。さらに ol の時は表示しないようにします。

WordPress の管理画面で[外観] >[カスタマイズ] と進み、 [追加CSS] の画面で以下を投入します。

これだけで OK かと思いましたが、 ul が左へはみ出すので padding-left も追加します。

.post-items ul li:before {
    content: "";
    width: 5px;
    height: 5px;
    background-color: var(--bs-primary);
    margin-right: 18px;
    display: inline-block;
    vertical-align: 3px;
    outline: 2px solid rgba(255, 255, 255, 0.2);
    outline-offset: 4px;
}

.post-items ol li:before {
    content: initial;
}

/* ul に左padding 指定 */
.post-items ul {
	padding-left: 1rem;
}

これでよさそう。

pipenv の仮想環境をカレントに作る

よくあるネタですが、自分が探しやすいようにメモります。

ここのところ python の仮想環境は pipenv に落ち着いているのですが (venv 使っていた頃より余計な作業が減った気がする)、賛否両論ありますがカレントのプロジェクトフォルダにつくる方法です。

# 一時的に環境変数を経由
$ export PIPENV_VENV_IN_PROJECT=1
$ pipenv shell

# .env 設定ファイルを介して行う方法
$ echo ""PIPENV_VENV_IN_PROJECT=1" >> .env
$ pipenv shell

いちいち忘れるので .env の雛形ファイルを作って雛形フォルダに置いておいた。

これで大丈夫だろう

古いカーネルとカーネルモジュールをアンインストールする

ふと気がつくと /usr/lib/modules の容量が数 GB になっていたりするので、不要な Kernel と module を削除する方法を調べた。

きっとすぐに忘れるだろうからメモしておく。

# インストール済みの カーネル関係のパッケージを確認する
$ dpkg --get-selections |grep -i linu
binutils-x86-64-linux-gnu								install
console-setup-linux											install
libnvpair3linux													install
libselinux1:amd64											install
libselinux1:i386												install
libuutil3linux														install
libzfs4linux														install
libzpool5linux													install
linux-base															install
linux-firmware													install
linux-generic														install
linux-headers-5.15.0-97									install
linux-headers-5.15.0-100								install
linux-headers-5.15.0-100-generic					install
linux-headers-generic										install
linux-image-5.15.0-100-generic					install
linux-image-generic											install
linux-libc-dev:amd64										install
linux-modules-5.15.0-100-generic				install
linux-modules-extra-5.15.0-100-generic		install
linux-sound-base												install
linuxmint-keyring												install
pptp-linux															install
syslinux																install
syslinux-common												install
syslinux-utils														install
util-linux															install
zfsutils-linux														install


# こんな感じで不要なパッケージを削除
$ sudo apt  purge -y linix-headers-5.15.0-97

要するにカーネル関連のパッケージはアンインストールされても残るっぽいので purge で残ったファイルを削除する必要があるらしい。

VS Code 1.8.7 でターミナルのクリアにキーをアサインをする

この設定は完全に個人の好みだが、作業中のターミナルに履歴があるのが好きではない。作業ログという意味で消さない派が存在することもわかるのですが、明らかに見返すことがないものがたくさんあると探すのが面倒と感じてしまう。

今回の環境は Linux Mint なので他の OS では異なるのかもしれないが、ターミナルをクリアする機能にキーアサインされていないので、割り当てることにする。

以前のバージョンの VS Code には、keybindings.json という設定ファイルが あったっぽいが、Ver. 1.8.7 にはなさそうでその代わり Keyboard Shortcuts っていう UI ができたようだ。VS Code の設定画面周りは割と頻繁に変更されているのでその一環なんだと思う。

手順

  1. CTRL + SHIFT + P (コマンドパレットに > が入っている状態)
  2. Preferences: Open Keyboard Shortcuts
  3. terminal clear と入力して検索する
  4. 好きなキーを割り当てる

今回は、CTRL + Super (Windows キー) + L を割り当てたがまあ好きにしたらいいと思う。

他の機能のキーアサインの変更も同様にできる。

Linux Mint に LM Studio をインストール

ちょっと気になっている LM Studio をインストールしてみた。Win や Mac の場合はダウンロードしてそのまま動くっぽいが、Linux Mint ではだめだった。おそらく他の Ubuntu 系でも同様の現象が起きると思われる。

条件

LM_Studio-0.2.14-beta-1.AppImage

Linux Mint 21.3 (Virginia)

現象

おもむろにダウンロードして実行すると以下のエラーがでる。(AppImage はそのままだと動かないので chmod 755 するのを忘れずに。)

$ ./LM_Studio-.02.14-beta-1.AppImage 
18:32:45.958 › GPU info: '00:02.0 VGA compatible controller: Intel Corporation Skylake GT2 [HD Graphics 520] (rev 07)'
18:32:45.974 › Got GPU Type: intel
18:32:45.974 › LM Studio: gpu type = Intel
A JavaScript error occurred in the main process
Uncaught Exception:
Error: /usr/local/lib/libclblast.so.1: cannot open shared object file: No such file or directory
    at process.func [as dlopen] (node:electron/js2c/asar_bundle:2:1822)
    at Module._extensions..node (node:internal/modules/cjs/loader:1326:18)
    at Object.func [as .node] (node:electron/js2c/asar_bundle:2:1822)
    at Module.load (node:internal/modules/cjs/loader:1096:32)
    at Module._load (node:internal/modules/cjs/loader:937:12)
    at f._load (node:electron/js2c/asar_bundle:2:13330)
    at Module.require (node:internal/modules/cjs/loader:1120:19)
    at require (node:internal/modules/cjs/helpers:103:18)
    at 6829 (/tmp/.mount_LM_StuFaD1Or/resources/app/.webpack/main/index.js:2:2058)
    at r (/tmp/.mount_LM_StuFaD1Or/resources/app/.webpack/main/index.js:8:401969)
^Cfym@VJS111:/opt/dl$ ^C

ようは、libclblast がない (見つからない) らしい。.

なのでインストールする

$ sudo apt install -y libclblast1

でも最初と同じエラーがでるので検索してみると、どうも AppImage は /usr/local/lib にライブラリを探しにいくらしいのでリンクを張れっていうのがヒットする

$ sudo ln -s /usr/lib/x86_64-linux-gnu/libclblast.so.1.5.2 /usr/local/lib/libclblast.so 

$ sudo ln -s /usr/lib/x86_64-linux-gnu/libclblast.so.1 /usr/local/lib/libclblast.so.1 

これで無事に起動するようになる。

参考

LM Studio – Discover, download, and run local LLMs

On KUbuntu 23.10, LM_Studio searches for the libclblast libraries in the wrong path ! · Issue #24 · lmstudio-ai/.github · GitHub

Linux Mint 21.3 Virginia の pipenv でエラー + Python バージョンを切り替えられるようにする

python の開発環境は pipenv を使っているのですが、Linux Mint の標準リポジトリに入っている pipenv だとエラーになって動かない。

入っている Python は 3.10 。ネットを検索してみると pipenv が古いとかなんとか。。。一旦消して pip でインストールし直すのがいいらしいのでやってみた。

$ sudo apt install pipenv-

# python3 しかはいっていないので pip3 とする必要はない pip で OK
$ pip install pipenv

これで解決。

ついでに Python バージョンを切り替えられるようにしておく。pyenv でもいいのですが、今回は update-alternatives にします。というのもこの辺のツールの移り変わり早いので廃れるとわりと放置されがち、ちょっと時間経つと面倒なことになる印象があります。

update-alternatives なら Ubuntu 系の OS では他のコマンド切り替えるためにも使われているっぽいのでだいじょぶそうじゃないかと。。。

# 末尾が優先度で多きい方が優先らしい
$ sudo update-alternatives --install /usr/bin/python python3 /usr/bin/python3.10 110
$ sudo update-alternatives --install /usr/bin/python python3 /usr/bin/python3.11 100

# リストが出てくるので [selection] の数字を選ぶと切り替わる
$ sudo update-alternatives --config python

参考

Ubuntu 22.04にPython3.xを複数インストールして切り替える方法(PPA・apt) #Python – Qiita

NoMachine をヘッドレスに設定する

以前もこのネタを書いていたのだが、WordPress を飛ばして記事ごとなくなったので再度メモする。

例によって参考リンクまんまなのだが、いちいち探すよりここにおいた方が自分が楽なので記事にします。

ポイントは

  • xserver-xorg-video-dummy をインストールする
  • /usr/share/X11/xorg.conf.d/20-dummy.conf ファイルを作成する
  • xrandr で表示したい解像度を追加する
  • PC再起動

20-dummy.conf の記述は参考リンクを見て適当に。

/usr/share/X11/xorg.conf.d のパスをいつも忘れてしまい、 /etc/X11 下に置いてしまっていたのでメモ。

参考

物理モニタなしでNoMachine → 問題発生 | JI1OREのブログ

物理モニタ無しでx11vnc #ubuntu20.04 – Qiita

NoMachine – ArchWiki

WebDAV で同期できる Floccus ブックマーク同期アプリを入れてみた

さて、今日は222で猫の日だそうです。ちょっとくるしいよね、そんな話はどうでもいい。

ブックマークを同期する為に aquatix/digimarks: Simple bookmarking service という python 製の Web アプリを使っていたのですが、スマホで Web を見ている時の保存動作がちょっと面倒でした。

また、先日 ROCK64 を OS からまるごとインストールして Bookworm に更新したのですが、インストールと設定がちょっと面倒になってきたので別のものを探してみた。

AlternativeTo を検索してみる。

移転先候補の1つに NextCloud のブックマーク機能があったが、そもそも NAS 使っているのに機能的に丸かぶりじゃね? AlternativeTo で検索してみるとこんなのが見つかった。

  • Firefox Sync
  • Floccus
  • Otter – BookmarkManager
  • Grimoire
  • Shiori Bookmark Manager
  • LinkSnatch

Firefox はそもそも使っているし、ぱっと見インストールが難しそうだったので除外。

Floccus 以外はスマホ対応がないので Floccus を試してみることにした。今回スマホネイティブを重視したのは、「スマホのブラウザ利用時にブックマークする際、Web UI しかないと、URL をコピーしてタブを行ったり来たりするのが面倒でしかたない。」と感じていたからだ。

同期データの保存先も NextCloud Bookmarks、WebDAV、Google Drive から選択できるのがいい。NAS 側に WebDAV を設定しておくだけので手軽さだ。

クライアント側にスマホアプリやブラウザ用の Extension を入れるだけで使えるようになる。

デフォルト設定では WebDAV サーバに、bookmarks.xbel というファイルが作成されるが中身は html ファイルのようだ。設定でファイルを暗号化することができる。

これ意外といいかもしれない。

参考

Private bookmarks syncing – floccus.org

Synology SFTP をアクティブにする

個人的に忘れがちなので、というのも他の Linux と異なり Synology の NAS のコントロールパネルでは、SSH をオープンにしても SFTP は使えないので別途、有効にする必要がある。
もしかすると、Linux 系サーバで使用する OpenSSH とかではデフォルト値がたまたま両方アクティブになるだけかもしれないが、いつも小ハマりするのでメモする。

操作方法

  1. コントロールパネルを開き
  2. File Services を選択し、FTP タブを表示する
  3. FTP/FTPS を通りすぎ、SFTP セクションががあるので、ここをチェックする
  4. 必要ならポートを変更する

これで SFTP できるようになるので SSHFS が使えるようになった。

DietPi で mdns をアクティブにする

ROCK64 に入れた DietPi だが、外からは .local で応答してくれるが、DietPi の中では、.local の名前解決に失敗していたので以下を追加でインストールした。

$ sudo apt install libnss-mdns

$ cat /etc/nsswitch.conf
host: の行に注目、 mdns4、 mdns4_miimal、mdns6、mdns6_minimal などがあることを確認する
hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4


# 名前解決できるか確認してみる
$ ping rock64.local
PING rock64.local (192.168.1.250) 56(84) bytes of data.
64 bytes from 192.168.1.250 (192.168.1.250): icmp_seq=1 ttl=64 time=0.157 ms
64 bytes from 192.168.1.250 (192.168.1.250): icmp_seq=2 ttl=64 time=0.163 ms
....

avahi-daemon だけがインストールされた状態だと、他ホストからは .local で解決できるが自ホストでは解決しないので注意。

無事に、.local 名を名前解決できるようになった