CLOVER🍀

That was when it all began.

Ubuntu Linux 24.04 LTSにVNCサーバーをsystemdのユニットとして登録する

これは、なにをしたくて書いたもの?

以前、TigerVNCをUbuntu Linux 24.04 LTSにインストールしました。

Ubuntu Linux 24.04 LTSにVNCサーバーをインストールする - CLOVER🍀

systemdのユニットとして登録する方法を確認しておこう、ということで。

環境

今回の環境はこちら。

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 24.04.3 LTS
Release:        24.04
Codename:       noble


$ uname -srvmpio
Linux 6.8.0-88-generic #89-Ubuntu SMP PREEMPT_DYNAMIC Sat Oct 11 01:02:46 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

VNCサーバーはTigerVNCです。

$ vncserver -version

Xvnc TigerVNC 1.13.1 - built 2024-04-01 08:26
Copyright (C) 1999-2022 TigerVNC Team and many others (see README.rst)
See https://www.tigervnc.org for information on TigerVNC.
Underlying X server release 12101011

VNCサーバーをsystemdのユニットとして登録します。

最初に1度起動して、VNCサーバーのパスワードは設定済みとします。またリモート接続を許可するものとします(-localhost no)。

$ vncserver -localhost no :1

パスワードを変更する場合はこちらですね。

$ vncpasswd

systemdのユニットとして登録します。

$ sudo systemctl edit --force --full vncserver@1

内容はこちら。

[Unit]
Description=TigerVNC Server Service
After=network-online.target
Wants=network-online.target

[Service]
Type=forking
User=[ユーザー名]
Group=[グループ名]
WorkingDirectory=/home/[ユーザー名]
PIDFile=/home/[ユーザー名]/.vnc/%H:%i.pid
ExecStart=/usr/bin/vncserver -localhost no :%i
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

このあたりがポイントでしょうか。

PIDFile=/home/[ユーザー名]/.vnc/%H:%i.pid
ExecStart=/usr/bin/vncserver -localhost no :%i
ExecStop=/usr/bin/vncserver -kill :%i

あとはsystemctlで操作できます。

$ sudo systemctl start vncserver@1

自動起動を有効に。

$ sudo systemctl enable vncserver@1

Ubuntu Linux 24.04 LTSにWindows Terminalで使われているCascadia Codeフォントをインストールする

自分はプログラミングをするくせにフォントにはけっこう無頓着で、だいたいデフォルトのまま使っていることが多いです。

最近になってEmacsのフォント設定が完全におかしいというか無効なフォントをしていたことに気づき、なにを指定したら
いいのかなと思って少し調べてみました。

前提としては、Ubuntu Linux 24.04 LTSで使います。

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 24.04.3 LTS
Release:        24.04
Codename:       noble


$ uname -srvmpio
Linux 6.8.0-88-generic #89-Ubuntu SMP PREEMPT_DYNAMIC Sat Oct 11 01:02:46 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

選択肢的にはこのあたりがありそうです。

JetBrains Mono: A free and open source typeface for developers | JetBrains: Developer Tools for Professionals and Teams

GitHub - yuru7/HackGen: Hack と源柔ゴシックを合成したプログラミングフォント 白源 (はくげん/HackGen)

GitHub - yuru7/PlemolJP: IBM Plex Mono と IBM Plex Sans JP を合成したプログラミングフォント PlemolJP (プレモル ジェイピー)

GitHub - yuru7/udev-gothic: UDEV Gothic は、ユニバーサルデザインフォントのBIZ UDゴシックと、 開発者向けフォントの JetBrains Mono を合成した、プログラミング向けフォントです。

プログラミング用フォント Ricty Diminished

GitHub - microsoft/cascadia-code: This is a fun, new monospaced font that includes programming ligatures and is designed to enhance the modern look and feel of the Windows Terminal.

RictyおよびRicty Diminishedが人気だったようですが、今は開発が終了しているようです。

個人的にはaptでインストールできるものがよく、Windows Terminalで使われているCascadia Codeが使えそうだったので
こちらをインストールしてみました。

$ sudo apt install fonts-cascadia-code

GitHub - microsoft/cascadia-code: This is a fun, new monospaced font that includes programming ligatures and is designed to enhance the modern look and feel of the Windows Terminal.

fonts-cascadia-code package : Ubuntu

$ apt show fonts-cascadia-code
Package: fonts-cascadia-code
Version: 2102.03-1
Priority: optional
Section: universe/fonts
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Debian Fonts Task Force <pkg-fonts-devel@lists.alioth.debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 1,561 kB
Homepage: https://github.com/microsoft/cascadia-code
Download-Size: 149 kB
APT-Manual-Installed: yes
APT-Sources: http://jp.archive.ubuntu.com/ubuntu noble/universe amd64 Packages
Description: monospaced font designed to enhance appearance of Windows Terminal
 Cascadia Code is a monospaced font shipped by Microsoft. It includes
 programming ligatures and is intended for use in terminal applications
 as well as text editors.

Cascadia Codeではリガチャ(合字)に対応しているCascadia Codeと、リガチャを含まないCascadia Monoの2つがあります。
個人的にはまずはCascadia Monoかなと。

Emacsに導入してみたら、見た目がとても変わりました(笑)。

その他、インストールされているフォントを調べるのに使ったコマンド。

$ fc-list

Ubuntu Manpage: fc-list - list available fonts

絞り込みも可能。

$ fc-list 'Ubuntu Sans Mono'
/usr/share/fonts/truetype/ubuntu/UbuntuSansMono[wght].ttf: Ubuntu Sans Mono
/usr/share/fonts/truetype/ubuntu/UbuntuSansMono[wght].ttf: Ubuntu Sans Mono:style=ExtraLight
/usr/share/fonts/truetype/ubuntu/UbuntuSansMono[wght].ttf: Ubuntu Sans Mono:style=SemiBold
/usr/share/fonts/truetype/ubuntu/UbuntuSansMono-Italic[wght].ttf: Ubuntu Sans Mono:style=SemiBold Italic
/usr/share/fonts/truetype/ubuntu/UbuntuSansMono[wght].ttf: Ubuntu Sans Mono:style=Thin
/usr/share/fonts/truetype/ubuntu/UbuntuSansMono-Italic[wght].ttf: Ubuntu Sans Mono:style=Bold Italic
/usr/share/fonts/truetype/ubuntu/UbuntuSansMono-Italic[wght].ttf: Ubuntu Sans Mono:style=Medium Italic
/usr/share/fonts/truetype/ubuntu/UbuntuSansMono[wght].ttf: Ubuntu Sans Mono:style=Medium
/usr/share/fonts/truetype/ubuntu/UbuntuSansMono[wght].ttf: Ubuntu Sans Mono:style=Bold
/usr/share/fonts/truetype/ubuntu/UbuntuSansMono-Italic[wght].ttf: Ubuntu Sans Mono
/usr/share/fonts/truetype/ubuntu/UbuntuSansMono-Italic[wght].ttf: Ubuntu Sans Mono:style=Italic
/usr/share/fonts/truetype/ubuntu/UbuntuSansMono[wght].ttf: Ubuntu Sans Mono:style=Regular
/usr/share/fonts/truetype/ubuntu/UbuntuSansMono[wght].ttf: Ubuntu Sans Mono:style=Light

GNOME Terminalで使っているフォント。ええ、デフォルトのままです(笑)。

$ gsettings get org.gnome.desktop.interface monospace-font-name
'Ubuntu Sans Mono 13'

こちらはCascadia Monoにしなくてもいいかなと思いました。