Fixing File Permission Problem of Jellyfin on Arch Linux

This tutorial should work for other Linux distributions, but I only tested it on Arch Linux. In order to add a directory to a Jellyfin library, Jellyfin needs to access the directory and all its parent directories. If you add ~/Videos to a library, Jellyfin fails to access it. Jellyfin runs as user jellyfin. Jellyfin can access ~/Videos (other::r-x) but can’t access its parent ~ (other::---). 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ❯ getfacl ~/Videos getfacl: Removing leading '/' from absolute path names # file: home/cyrusyip/Videos # owner: cyrusyip # group: cyrusyip user::rwx group::r-x mask::r-x other::r-x ❯ getfacl ~ getfacl: Removing leading '/' from absolute path names # file: home/cyrusyip # owner: cyrusyip # group: cyrusyip user::rwx group::--- mask::--- other::--- To fix it, grant Jellyfin execution permission for the home directory.

Removing Python 2 on Arch Linux

Python 2 was dropped from Arch Linux. It was lucky that there were only two python2 packages on my Arch. 1 2 3 4 5 ❯ pacman -Qs python2 local/python2 2.7.18-5 A high-level scripting language local/python2-setuptools 2:44.1.1-2 Easily download, build, install, upgrade, and uninstall Python packages I removed them without hesitation. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ❯ sudo pacman -Rscn python2 python2-setuptools checking dependencies... Package (2) Old Version Net Change python2 2.7.18-5 -76.84 MiB python2-setuptools 2:44.1.1-2 -3.81 MiB Total Removed Size: 80.65 MiB :: Do you want to remove these packages?

How to Paste over Selected Text without Overwriting the Unnamed Register in Vim

Summary: paste with P in visual mode. It’s painful to paste over selected text in Vim, because the unnamed register is overwritten by the selected text. Thus, we can not paste the original yanked text twice. If you have a file: 1 2 hello kitty You want to copy hello , paste it over kitty, and paste it again. You type these commands in Vim. 1 2 3 4 5 gg " move to the topyy " copy current linejV " move to the next line and select itp " paste over the select linep " paste again You expect to get: