Skip to content

Development Environment

This page documents Naomi’s local development environment. The information here is provided to allow contributors to mirror the environment as closely as possible, ensuring the smoothest developer experience.

1. System Information

Naomi’s local environment runs on the Arch Linux kernel.

1.1. hyfetch

This is the current diagnostic report from hyfetch.

Expand Information
Terminal window
naomi@technomancer
------------------
OS: Arch Linux x86_64
Host: MS-7B86 4.0
Kernel: 6.10.10-arch1-1
Uptime: 12 hours, 55 mins
Packages: 2 (npm), 1254 (pacman), 87 (steam)
Shell: zsh 5.9
Resolution: 1920x1080, 3840x2160, 1920x1080, 1024x768
WM: Hyprland
Theme: Adwaita [GTK2]
Icons: Adwaita [GTK2]
Cursor: miku-cursor-linux [GTK3]
Terminal: alacritty
Terminal Font: Fira Code
CPU: AMD Ryzen 5 3600X (12) @ 3.8GHz
GPU: NVIDIA GeForce GTX 1070 Ti
Memory: 13.76 GiB / 31.29 GiB (43%)
Network: 1 Gbps
BIOS: American Megatrends Inc. 5.14 (11/07/2019)

1.2. Steam

This is the current system report from Steam.

Expand Information
Computer Information:
Manufacturer: Micro-Star International Co., Ltd
Model: B450-A PRO MAX (MS-7B86)
Form Factor: Desktop
No Touch Input Detected
Processor Information:
CPU Vendor: AuthenticAMD
CPU Brand: AMD Ryzen 5 3600X 6-Core Processor
CPU Family: 0x17
CPU Model: 0x71
CPU Stepping: 0x0
CPU Type: 0x0
Speed: 4408 MHz
12 logical processors
6 physical processors
Hyper-threading: Supported
FCMOV: Supported
SSE2: Supported
SSE3: Supported
SSSE3: Supported
SSE4a: Supported
SSE41: Supported
SSE42: Supported
AES: Supported
AVX: Supported
AVX2: Supported
AVX512F: Unsupported
AVX512PF: Unsupported
AVX512ER: Unsupported
AVX512CD: Unsupported
AVX512VNNI: Unsupported
SHA: Supported
CMPXCHG16B: Supported
LAHF/SAHF: Supported
PrefetchW: Unsupported
Operating System Version:
"Arch Linux" (64 bit)
Kernel Name: Linux
Kernel Version: 6.10.10-arch1-1
X Server Vendor: The X.Org Foundation
X Server Release: 12401002
X Window Manager: Hyprland :D
Steam Runtime Version: steam-runtime_0.20240806.97925
Video Card:
Driver: NVIDIA Corporation NVIDIA GeForce GTX 1070 Ti/PCIe/SSE2
Driver Version: 4.6.0 NVIDIA 560.35.03
OpenGL Version: 4.6
Desktop Color Depth: 24 bits per pixel
Monitor Refresh Rate: 59 Hz
VendorID: 0x10de
DeviceID: 0x1b82
Revision Not Detected
Number of Monitors: 3
Number of Logical Video Cards: 1
Primary Display Resolution: 1920 x 1080
Desktop Resolution: 5760 x 1080
Primary Display Size: 20.47" x 12.60" (24.02" diag), 52.0cm x 32.0cm (61.0cm diag)
Primary VRAM: 8192 MB
Sound card:
Audio device: Nvidia GPU 83 HDMI/DP
Memory:
RAM: 32045 Mb
VR Hardware:
VR Headset: None detected
Miscellaneous:
UI Language: English
LANG: en_GB.UTF-8
Total Hard Disk Space Available: 420968 MB
Largest Free Hard Disk Block: 210343 MB
Storage:
Number of SSDs: 1
SSD sizes: 500G
Number of HDDs: 0
Number of removable drives: 0

2. Packages

Naomi uses the following packages.

2.1. Foreign Packages

These packages come from unofficial repositories, such as the AUR. This list is generated with yay -Qm.

Expand List
1password-cli 2.30.0-1
aws-cli-v2-bin 2:2.17.52-1
cbonsai 1.3.1-3
citra 1:r10102.5115f64-3
citra-debug 1:r10102.5115f64-3
dreamweb 1.1-1
electron25-bin 25.9.8-3
flyctl 0.3.7-1
flyctl-debug 0.3.7-1
gameconqueror-git 0.17.1103.0def8b2-1
gargoyle 2023.1-2
google-chat-linux 5.29.23_1-4
grimshot 1.10-1
gwenview-no-purpose 24.08.1-1
gwenview-no-purpose-debug 24.08.1-1
insomnium 0.2.3_a-8
libajantv2-debug 1:17.0.1-1
libelectron 1.0.26-1
libelectron-debug 1.0.26-1
libscanmem-git 0.17.1103.0def8b2-1
lrexlib-pcre5.1 2.9.0-2
lrexlib-pcre5.1-debug 2.9.0-2
lua-yajl 2.0-2
lua-yajl-debug 2.0-2
lua51-lcf 5.1-3
lua51-sql-sqlite 2.3.0-4
lua51-sql-sqlite-debug 2.3.0-4
luazip5.1 1.2.7-1
luazip5.1-debug 1.2.7-1
mongodb-tools-bin 100.10.0-2
mongodb-tools-bin-debug 100.10.0-2
mongosh-bin 2.3.1-1
mongosh-bin-debug 2.3.1-1
mudlet-debug 4.18.3-1
notepad++ 8.6.9-1
noto-fonts-emoji-flags 20200120-1
obs-studio-liberty 30.2.3-1
obs-studio-liberty-debug 30.2.3-1
openstarruler-git-debug r95.c5e3cbb-1
openxcom-debug 1.0-9
otf-compagnon 1.000-1
play.it-git 2.29.1.r1.g03ba243f-1
proton-mail-bin 1.0.6-1
proton-mail-bin-debug 1.0.6-1
proton-vpn-gtk-app 4.4.5-2
python-proton-core 0.3.3-1
python-proton-keyring-linux 0.0.2-3
python-proton-keyring-linux-secretservice 0.0.2-4
python-proton-vpn-api-core 0.33.11-1
python-proton-vpn-killswitch-network-manager 0.5.4-1
python-proton-vpn-killswitch-network-manager-wireguard 0.1.4-1
python-proton-vpn-logger 0.2.1-7
python-proton-vpn-network-manager 0.6.3-2
qt5-gamepad 5.15.15-2
qt5-gamepad-debug 5.15.15-2
redact-bin 0.18.0-1
redact-bin-debug 0.18.0-1
roam 127.1.0.beta001-1
samrewritten-git r258.39d524a-1
samrewritten-git-debug r258.39d524a-1
slack-electron-debug 4.40.128-1
spicetify-cli-debug 2.36.15-1
stone-soup-tiles-git 0.33.a0.r53.g9043e79ccf-1
stone-soup-tiles-git-debug 0.33.a0.r53.g9043e79ccf-1
swaylock-effects-debug 1.7.0.0-4
twitter 1.0.5-1
vscodium-bin 1.93.1.24256-1
vscodium-bin-debug 1.93.1.24256-1
win2xcur 0.1.2-1
wofi-emoji 1.2-3
wxhexeditor 0.24-4
wxhexeditor-debug 0.24-4

2.2. Explicit Installations

These are all of the packages Naomi has specifically installed. This list is generated with yay -Qe.

Expand List
1password 8.10.44-34
1password-cli 2.30.0-1
act 0.2.67-1
activitywatch-bin 0.13.1-1
alacarte 1:3.52.0-2
alacritty 0.13.2-3
amd-ucode 20240909.552ed9b8-1
angband 4.2.5-3
appimagelauncher 2.2.0-8
aws-cli-v2-bin 2:2.17.52-1
baobab 47.0-1
base 3-2
base-devel 1-2
calc 2.15.1.0-1
cataclysm-dda-tiles 0.G-2
cbonsai 1.3.1-3
chaotic-keyring 20230616-1
chaotic-mirrorlist 20240306-1
cheese 44.1-3
citra 1:r10102.5115f64-3
cloc 2.02-1
desmume 0.9.13-1
discord 0.0.69-1
dkms 3.0.12-1
docker 1:27.2.1-1
doctl 1.114.0-1
dolphin 24.08.1-1
dosbox-x 2024.07.01-1
dotnet-sdk 8.0.8.sdk108-1
downgrade 11.3.0-1.1
dreamweb 1.1-1
dunst 1.11.0-1
efibootmgr 18-3
emacs 29.4-2
eza 0.19.4-1
firefox 130.0.1-1
flameshot 12.1.0-5
flyctl 0.3.7-1
freetube 0.21.3-1
gameconqueror-git 0.17.1103.0def8b2-1
gargoyle 2023.1-2
gimp 2.10.38-3
git 2.46.1-1
github-cli 2.57.0-1
gnome-keyring 1:46.2-1
google-chat-linux 5.29.23_1-4
grim 1.4.1-2
grimshot 1.10-1
gst-plugin-pipewire 1:1.2.4-1
gwenview-no-purpose 24.08.1-1
hexchat 2.16.2-3
hexedit 1.6-2
htop 3.3.0-3
hyfetch 1.4.11-3
hyprland 0.41.2-3
hyprlock 0.4.1-1
hyprpaper 0.7.1-1
hyprshot 1.3.0-1
icoutils 0.32.3-3
innoextract 1.9-11
insomnium 0.2.3_a-8
iwd 2.22-1
kitty 0.36.2-1
lazygit 0.44.1-1
lib32-libpulse 17.0-1
lib32-openal 1.23.1-2
libgnome-keyring 1:3.12.0+r14+g23438cc-1
libpulse 17.0-3
libqalculate 5.2.0.1-1
libreoffice-fresh 24.8.1-2
libscanmem-git 0.17.1103.0def8b2-1
linux 6.10.10.arch1-1
linux-firmware 20240909.552ed9b8-1
linux-headers 6.10.10.arch1-1
lrzip 0.651-3
man-db 2.13.0-1
mari0 1.6.2-4
mesen2-git r3082.dee97bf9-1
mindustry 7.0.146-3
mongodb-tools-bin 100.10.0-2
mongosh-bin 2.3.1-1
nano 8.2-1
net-tools 2.10-2
nethack 3.6.7-6
network-manager-applet 1.36.0-1
networkmanager 1.48.10-1
nodejs-nativefier 52.0.0-1
notepad++ 8.6.9-1
notepadnext 0.8-1
noto-fonts 1:24.9.1-1
noto-fonts-cjk 20230817-2
noto-fonts-emoji 1:2.042-1
noto-fonts-emoji-flags 20200120-1
npm-check-updates 17.0.2-1
nvidia-dkms 560.35.03-3
nvm 0.40.1-1
obs-studio-liberty 30.2.3-1
opendoas 6.8.2-3
orca 47.0-1
otf-compagnon 1.000-1
otf-font-awesome 6.6.0-1
p7zip 1:17.05-2
pavucontrol 1:6.1-1
pipewire 1:1.2.4-1
pipewire-alsa 1:1.2.4-1
pipewire-jack 1:1.2.4-1
pipewire-pulse 1:1.2.4-1
pnpm 9.11.0-1
pokemon-colorscripts-git r112.0483c85b-2.1
polkit-gnome 0.105-11
polkit-kde-agent 6.1.5-1
proton-mail-bin 1.0.6-1
proton-vpn-gtk-app 4.4.5-2
puzzles 20240103-1
python-virtualenv 20.26.2-1
qt5-wayland 5.15.15+kde+r59-1
qt6-wayland 6.7.2-4
redact-bin 0.18.0-1
reflector 2023-2
roam 127.1.0.beta001-1
rofimoji 6.5.0-1
samrewritten-git r258.39d524a-1
scanmem 0.17-9
sddm 0.21.0-4
simutrans 124.2.1-1
slack-desktop 4.39.95-1
slurp 1.5.0-1
smartmontools 7.4-2
speedtest-cli 2.1.3-8
spicetify-cli 2.38.3-1
spotify 1:1.2.45.454-1
steam 1.0.0.81-2
stone-soup-tiles-git 0.33.a0.r53.g9043e79ccf-1
strace 6.10-1
sublime-text-4 4.4180-1
swappy 1.5.1-2
swaylock-effects 1.7.0.0-4
tailscale 1.74.1-1
thefuck 3.32-9
thunar 4.18.11-2
trayscale 0.13.4-1
ttf-firacode-nerd 3.2.1-2
ttf-font-awesome 6.6.0-1
ttf-jetbrains-mono-nerd 3.2.1-2
ttf-joypixels 8.0.0-2
ttf-symbola 14.00-1
ttf-twemoji 15.1.0-1
twitter 1.0.5-1
unrar 1:7.0.9-1
v4l2loopback-dkms 0.13.2-1
vi 1:070224-6
vim 9.1.0740-1
vscodium-bin 1.93.1.24256-1
waybar 0.11.0-3
wev 1.0.0-13
wget 1.24.5-3
widelands 1:1.2-2
win2xcur 0.1.2-1
wine 9.18-1
wireless_tools 30.pre9-4
wireplumber 0.5.6-1
wlogout 1.2.2-0
wofi 1.4.1-1
wofi-emoji 1.2-3
wxhexeditor 0.24-4
xdg-desktop-portal-hyprland 1.3.5-1
xdg-utils 1.2.1-1
xorg-server 21.1.13-1
xorg-xcursorgen 1.0.8-2
xorg-xhost 1.0.9-2
xorg-xinit 1.4.2-2
yay 12.4.2-1
zen-browser-bin 1.0.1.a.3-1
zoom 6.2.0-1
zsh 5.9-5

2.3. Pinned Packages

These packages have updates ignored, due to incompatibility issues. This list is generated with grep "^IgnorePkg" /etc/pacman.conf.

IgnorePkg = hyprland

2.4. All Packages

This is a complete list of all packages on the machine. This list is generated with yay -Q.

This list is mega chonky. LLL

Expand List
0ad-data a26-2
1password 8.10.44-34
1password-cli 2.30.0-1
a52dec 0.8.0-2
aalib 1.4rc5-18
abseil-cpp 20240722.0-1
acl 2.3.2-1
act 0.2.67-1
activitywatch-bin 0.13.1-1
adobe-source-code-pro-fonts 2.042u+1.062i+1.026vf-2
adwaita-cursors 47.0-1
adwaita-icon-theme 47.0-1
adwaita-icon-theme-legacy 46.2-3
alacarte 1:3.52.0-2
alacritty 0.13.2-3
alsa-card-profiles 1:1.2.4-1
alsa-lib 1.2.12-1
alsa-plugins 1:1.2.12-3
alsa-topology-conf 1.2.5.1-4
alsa-ucm-conf 1.2.12-1
amd-ucode 20240909.552ed9b8-1
angband 4.2.5-3
aom 3.10.0-1
appimagelauncher 2.2.0-8
appstream 1.0.3-1
aquamarine 0.4.1-1
archlinux-keyring 20240709-2
argon2 20190702-6
aribb24 1.0.3-4
at-spi2-core 2.54.0-2
atkmm 2.28.4-1
attica 6.6.0-1
attr 2.5.2-1
audit 4.0.2-2
autoconf 2.72-1
automake 1.17-1
avahi 1:0.8+r194+g3f79789-2
aws-cli-v2-bin 2:2.17.52-1
ayatana-ido 0.10.4-1
babl 0.1.108-1
baloo 6.6.0-1
baloo-widgets 24.08.1-1
baobab 47.0-1
base 3-2
base-devel 1-2
bash 5.2.032-2
bc 1.07.1-5
binutils 2.43+r4+g7999dae6961-1
bison 3.8.2-8
blas 3.12.0-5
bluez-libs 5.78-1
boost 1.86.0-2
boost-libs 1.86.0-2
box2d 3.0.0-1
breeze-icons 6.6.0-1
bridge-utils 1.7.1-2
brltty 6.6-11
brotli 1.1.0-2
bubblewrap 0.10.0-1
bzip2 1.0.8-6
c-ares 1.33.1-1
ca-certificates 20240618-1
ca-certificates-mozilla 3.104-1
ca-certificates-utils 20240618-1
cairo 1.18.2-2
cairomm 1.14.5-1
cairomm-1.16 1.18.0-1
calc 2.15.1.0-1
cantarell-fonts 1:0.303.1-2
cataclysm-dda 0.G-2
cataclysm-dda-tiles 0.G-2
cblas 3.12.0-5
cbonsai 1.3.1-3
cdparanoia 10.2-9
cfitsio 1:4.5.0-1
chaotic-keyring 20230616-1
chaotic-mirrorlist 20240306-1
cheese 44.1-3
chromaprint 1.5.1-8
cifs-utils 7.0-5
citra 1:r10102.5115f64-3
citra-debug 1:r10102.5115f64-3
cjson 1.7.18-1
cloc 2.02-1
clucene 2.3.3.4-15
clutter 1.26.4-3
clutter-gst 3.0.27-5
clutter-gtk 1.8.4-4
cogl 1.22.8-3
containerd 1.7.22-1
convertlit 1.8-12
coreutils 9.5-2
crawl-data 0.32.0-1
cryptsetup 2.7.5-1
curl 8.10.1-1
dav1d 1.4.3-1
db5.3 5.3.28-5
dbus 1.14.10-2
dbus-broker 36-4
dbus-broker-units 36-4
dbus-glib 0.112-4
dconf 0.40.0-3
debugedit 5.0-6
default-cursors 3-1
desktop-file-utils 0.27-1
desmume 0.9.13-1
device-mapper 2.03.26-1
diffutils 3.10-1
discord 0.0.69-1
dkms 3.0.12-1
docker 1:27.2.1-1
doctl 1.114.0-1
dolphin 24.08.1-1
dos2unix 7.5.2-2
dosbox-x 2024.07.01-1
dotconf 1.4.1-1
dotnet-host 8.0.8.sdk108-1
dotnet-runtime 8.0.8.sdk108-1
dotnet-runtime-6.0 6.0.33.sdk133-1
dotnet-sdk 8.0.8.sdk108-1
dotnet-targeting-pack 8.0.8.sdk108-1
double-conversion 3.3.0-2
downgrade 11.3.0-1.1
dreamweb 1.1-1
duktape 2.7.0-7
dunst 1.11.0-1
e2fsprogs 1.47.1-4
ebook-tools 0.2.2-8
efibootmgr 18-3
efivar 39-1
egl-gbm 1.1.2-1
egl-wayland 4:1.1.16-1
eglexternalplatform 1.2-2
electron25-bin 25.9.8-3
electron29 1:29.4.6-2
electron31 31.6.0-2
ell 0.69-1
emacs 29.4-2
enchant 2.8.2-1
enet 1.3.18-1
exiv2 0.28.3-1
exo 4.18.0-3
expat 2.6.3-2
eza 0.19.4-1
faac 1.30-5
faad2 2.11.1-1
fakeroot 1.36-1
feh 3.10.3-1
ffmpeg 2:7.0.2-3
ffmpeg4.4 4.4.4-6
fftw 3.3.10-7
file 5.45-1
filesystem 2024.04.07-1
findutils 4.10.0-2
firefox 130.0.1-1
flac 1.4.3-2
flameshot 12.1.0-5
flare-engine 1.14-1.3
flex 2.6.4-5
fluidsynth 2.3.6-1
flyctl 0.3.7-1
flyctl-debug 0.3.7-1
fmt 11.0.2-1
fontconfig 2:2.15.0-2
freeglut 3.6.0-1
freetube 0.21.3-1
freetype2 2.13.3-1
frei0r-plugins 2.3.3-2
fribidi 1.0.15-1
frotz-ncurses 2.54-1
fuse-common 3.16.2-1
fuse-overlayfs 1.14-1
fuse2 2.9.9-5
fuse3 3.16.2-1
fzf 0.55.0-1
gameconqueror-git 0.17.1103.0def8b2-1
gargoyle 2023.1-2
gawk 5.3.1-1
gc 8.2.8-2
gcc 14.2.1+r134+gab884fffe3fc-1
gcc-libs 14.2.1+r134+gab884fffe3fc-1
gcr 3.41.2-2
gcr-4 4.3.0-1
gd 2.3.3-8
gdbm 1.24-1
gdk-pixbuf2 2.42.12-1
gegl 0.4.48-4
geoclue 2.7.2-1
gettext 0.22.5-2
giflib 5.2.2-1
gimp 2.10.38-3
git 2.46.1-1
git-lfs 3.5.1-1
github-cli 2.57.0-1
glew 2.2.0-7
glib-networking 1:2.80.0-3
glib2 2.82.1-1
glibc 2.40+r16+gaa533d58ff-2
glibmm 2.66.7-1
glibmm-2.68 2.82.0-1
gloox 1.0.27-2
glslang 14.3.0-1
glu 9.0.3-2
gmp 6.3.0-2
gnome-desktop 1:44.1-1
gnome-desktop-common 1:44.1-1
gnome-keyring 1:46.2-1
gnome-menus 3.36.0-3
gnome-video-effects 1:0.6.0-2
gnu-free-fonts 20120503-8
gnupg 2.4.5-5
gnutls 3.8.7-1
go 2:1.23.1-1
gobject-introspection 1.82.0-1
gobject-introspection-runtime 1.82.0-1
google-chat-linux 5.29.23_1-4
gperftools 2.15-1
gpgme 1.23.2-6
gpm 1.20.7.r38.ge82d1a6-6
graphene 1.10.8-1
graphite 1:1.3.14-4
grep 3.11-1
grim 1.4.1-2
grimshot 1.10-1
groff 1.23.0-7
gsettings-desktop-schemas 47.1-1
gsettings-system-schemas 47.1-1
gsfonts 20200910-4
gsm 1.0.22-2
gssdp 1.6.3-2
gst-plugin-pipewire 1:1.2.4-1
gst-plugins-bad 1.24.8-1
gst-plugins-bad-libs 1.24.8-1
gst-plugins-base 1.24.8-1
gst-plugins-base-libs 1.24.8-1
gst-plugins-good 1.24.8-1
gstreamer 1.24.8-1
gtest 1.15.2-1
gtk-layer-shell 0.9.0-1
gtk-update-icon-cache 1:4.16.1-1
gtk2 2.24.33-5
gtk3 1:3.24.43-3
gtk4 1:4.16.1-1
gtkmm-4.0 4.16.0-1
gtkmm3 3.24.9-1
guile 3.0.10-1
gulp 5.0.0-1
gupnp 1:1.6.7-1
gupnp-igd 1.6.0-1
gvfs 1.56.0-1
gwenview-no-purpose 24.08.1-1
gwenview-no-purpose-debug 24.08.1-1
gzip 1.13-4
harfbuzz 9.0.0-1
harfbuzz-icu 9.0.0-1
hexchat 2.16.2-3
hexedit 1.6-2
hicolor-icon-theme 0.18-1
hidapi 0.14.0-3
highway 1.2.0-1
htop 3.3.0-3
http-parser 2.9.4-2
hunspell 1.7.2-2
hwdata 0.387-1
hyfetch 1.4.11-3
hyphen 2.8.8-6
hyprcursor 0.1.9-1
hyprland 0.41.2-3
hyprlang 0.5.2-1
hyprlock 0.4.1-1
hyprpaper 0.7.1-1
hyprshot 1.3.0-1
hyprutils 0.2.2-1
hyprwayland-scanner 0.4.2-1
iana-etc 20240814-1
icoutils 0.32.3-3
icu 75.1-1
imagemagick 7.1.1.38-3
imath 3.1.12-1
imlib2 1.12.3-2
innoextract 1.9-11
insomnium 0.2.3_a-8
intltool 0.51.0-6
iproute2 6.11.0-1
iptables 1:1.8.10-2
iputils 20240905-1
iso-codes 4.17.0-1
iwd 2.22-1
jansson 2.14-4
jasper 4.2.4-1
java-environment-common 3-5
java-runtime-common 3-5
jbigkit 2.1-8
jdk21-openjdk 21.0.4.u7-1
jq 1.7.1-2
json-c 0.18-1
json-glib 1.10.0-1
jsoncpp 1.9.6-3
karchive 6.6.0-1
kauth 6.6.0-1
kbd 2.6.4-3
kbookmarks 6.6.0-1
kcmutils 6.6.0-1
kcodecs 6.6.0-1
kcolorpicker 0.3.1-4
kcolorscheme 6.6.0-1
kcompletion 6.6.0-1
kconfig 6.6.0-1
kconfigwidgets 6.6.0-1
kcoreaddons 6.6.0-1
kcrash 6.6.0-1
kdbusaddons 6.6.0-1
kdnssd 6.6.0-1
kdsoap-qt6 2.2.0-1
kdsoap-ws-discovery-client 0.4.0-1
keyutils 1.6.3-3
kfilemetadata 6.6.0-1
kglobalaccel 6.6.0-1
kguiaddons 6.6.0-1
kguiaddons5 5.116.0-1
ki18n 6.6.0-1
kiconthemes 6.6.0-1
kidletime 6.6.0-1
kimageannotator 0.7.1-3
kio 6.6.0-1
kio-extras 24.08.1-1
kirigami 6.6.0-1
kitemmodels 6.6.0-1
kitemviews 6.6.0-1
kitty 0.36.2-1
kitty-shell-integration 0.36.2-1
kitty-terminfo 0.36.2-1
kjobwidgets 6.6.0-1
kmod 33-3
knewstuff 6.6.0-1
knotifications 6.6.0-1
kpackage 6.6.0-1
kparts 6.6.0-1
krb5 1.21.3-1
kservice 6.6.0-1
ktextwidgets 6.6.0-1
kuserfeedback 6.6.0-1
kwallet 6.6.0-1
kwidgetsaddons 6.6.0-1
kwindowsystem 6.6.0-1
kxmlgui 6.6.0-1
l-smash 2.14.5-4
lame 3.100-5
lapack 3.12.0-5
lazygit 0.44.1-1
lcms2 2.16-1
ldb 2:4.21.0-2
lensfun 1:0.3.4-4
less 1:661-1
lib32-acl 2.3.2-1
lib32-alsa-lib 1.2.12-1
lib32-alsa-plugins 1.2.12-1
lib32-brotli 1.1.0-1
lib32-bzip2 1.0.8-4
lib32-curl 8.10.1-1
lib32-dbus 1.14.10-2
lib32-e2fsprogs 1.47.1-1
lib32-expat 2.6.3-1
lib32-flac 1.4.3-2
lib32-fontconfig 2:2.15.0-1
lib32-freetype2 2.13.3-2
lib32-gcc-libs 14.2.1+r134+gab884fffe3fc-1
lib32-gettext 0.22.5-1
lib32-glib2 2.82.1-1
lib32-glibc 2.40+r16+gaa533d58ff-2
lib32-harfbuzz 9.0.0-1
lib32-icu 75.1-1
lib32-keyutils 1.6.3-2
lib32-krb5 1.21.3-1
lib32-libasyncns 1:0.8+r3+g68cd5af-3
lib32-libcap 2.70-1
lib32-libdrm 2.4.123-1
lib32-libelf 0.191-1
lib32-libffi 3.4.6-1
lib32-libgcrypt 1.11.0-1
lib32-libglvnd 1.7.0-1
lib32-libgpg-error 1.50-1
lib32-libidn2 2.3.7-1
lib32-libldap 2.6.8-1
lib32-libnghttp2 1.63.0-1
lib32-libnghttp3 1.5.0-1
lib32-libnl 3.10.0-1
lib32-libnsl 2.0.1-1
lib32-libogg 1.3.5-2
lib32-libpcap 1.10.5-2
lib32-libpciaccess 0.18.1-1
lib32-libpng 1.6.44-1
lib32-libpsl 0.21.5-1
lib32-libpulse 17.0-1
lib32-libsndfile 1.2.2-2
lib32-libssh2 1.11.0-2
lib32-libtasn1 4.19.0-2
lib32-libtirpc 1.3.5-1
lib32-libunistring 1.2-1
lib32-libunwind 1.8.1-1
lib32-libvorbis 1.3.7-2
lib32-libx11 1.8.10-1
lib32-libxau 1.0.11-2
lib32-libxcb 1.17.0-1
lib32-libxcrypt 4.4.36-2
lib32-libxcrypt-compat 4.4.36-2
lib32-libxcursor 1.2.2-1
lib32-libxdmcp 1.1.5-1
lib32-libxext 1.3.6-1
lib32-libxfixes 6.0.1-2
lib32-libxi 1.8.2-1
lib32-libxkbcommon 1.7.0-2
lib32-libxml2 2.13.4-1
lib32-libxrandr 1.5.4-1
lib32-libxrender 0.9.11-2
lib32-libxshmfence 1.3.2-2
lib32-libxss 1.2.4-2
lib32-libxtst 1.2.5-2
lib32-libxxf86vm 1.1.5-2
lib32-llvm-libs 18.1.8-1
lib32-lm_sensors 1:3.6.0.r41.g31d1f125-3
lib32-mesa 1:24.2.3-1
lib32-ncurses 6.5-1
lib32-nspr 4.35-3
lib32-nss 3.104-1
lib32-nvidia-utils 560.35.03-1
lib32-openal 1.23.1-2
lib32-openssl 1:3.3.2-1
lib32-opus 1.5.2-1
lib32-p11-kit 0.25.5-1
lib32-pam 1.6.1-1
lib32-pcre2 10.44-1
lib32-sqlite 3.46.1-1
lib32-systemd 256.6-1
lib32-util-linux 2.40.2-1
lib32-vulkan-icd-loader 1.3.295-1
lib32-wayland 1.23.1-1
lib32-xz 5.6.2-1
lib32-zlib 1.3.1-1
lib32-zstd 1.5.6-1
libabw 0.1.3-4
libaccounts-glib 1.27-2
libadwaita 1:1.6.0-1
libajantv2-debug 1:17.0.1-1
libao 1.2.2-6
libappimage 1.0.4.5-7
libappindicator-gtk3 12.10.0.r298-4
libarchive 3.7.5-1
libass 0.17.3-1
libassuan 3.0.0-1
libasyncns 1:0.8+r3+g68cd5af-3
libatasmart 0.19-6
libatomic_ops 7.8.2-1
libavc1394 0.5.4-6
libavif 1.1.1-2
libavtp 0.2.0-3
libayatana-appindicator 0.5.93-1
libayatana-indicator 0.9.4-1
libb2 0.98.1-3
libblockdev 3.1.1-2
libblockdev-crypto 3.1.1-2
libblockdev-fs 3.1.1-2
libblockdev-loop 3.1.1-2
libblockdev-mdraid 3.1.1-2
libblockdev-nvme 3.1.1-2
libblockdev-part 3.1.1-2
libblockdev-swap 3.1.1-2
libbluray 1.3.4-2
libbpf 1.4.3-1
libbs2b 3.1.0-9
libbsd 0.12.2-2
libbytesize 2.8-3
libcaca 0.99.beta20-4
libcamera 0.3.1-2
libcamera-ipa 0.3.1-2
libcanberra 1:0.30+r2+gc0620e4-4
libcap 2.70-1
libcap-ng 0.8.5-2
libcdio 2.1.0-4
libcdio-paranoia 10.2+2.0.2-1
libcdr 0.1.7-8
libcheese 44.1-3
libcloudproviders 0.3.6-1
libcmis 0.6.2-2
libcolord 1.4.7-2
libcups 2:2.4.10-1
libcurl-gnutls 8.10.1-1
libdaemon 0.14-6
libdatrie 0.2.13-4
libdbusmenu-glib 16.04.0.r498-2
libdbusmenu-gtk3 16.04.0.r498-2
libdc1394 2.2.7-1
libdca 0.0.7-2
libde265 1.0.15-2
libdeflate 1.21-1
libdisplay-info 0.2.0-1
libdovi 3.3.1-1
libdrm 2.4.123-1
libdv 1.0.0-11
libdvbpsi 1:1.3.3-3
libdvdnav 6.1.1-2
libdvdread 6.1.3-2
libe-book 0.1.3-16
libebml 1.4.5-1
libedit 20240517_3.1-1
libei 1.3.0-1
libelectron 1.0.26-1
libelectron-debug 1.0.26-1
libelf 0.191-4
libepoxy 1.5.10-3
libepubgen 0.1.1-5
libetonyek 0.1.10-4
libev 4.33-3
libevdev 1.13.3-1
libevent 2.1.12-4
libexif 0.6.24-3
libexttextcat 3.4.7-1
libfdk-aac 2.0.3-1
libffi 3.4.6-1
libfontenc 1.1.8-1
libfreeaptx 0.1.1-2
libfreehand 0.1.2-5
libgcrypt 1.11.0-2
libgdiplus 5.6.1-4
libgexiv2 0.14.3-1
libgirepository 1.82.0-1
libgit2 1:1.8.1-1
libglvnd 1.7.0-1
libgme 0.6.3-5
libgnome-keyring 1:3.12.0+r14+g23438cc-1
libgpg-error 1.50-1
libgtop 2.41.3-2
libgudev 238-1
libheif 1.18.2-2
libibus 1.5.30-3
libice 1.1.1-3
libidn 1.42-1
libidn2 2.3.7-1
libiec61883 1.2.0-8
libimobiledevice 1.3.0-14
libimobiledevice-glue 1.3.0-1
libinih 58-1
libinput 1.26.2-1
libinstpatch 1.1.6-3
libisl 0.27-1
libixion 0.19.0-3
libjpeg-turbo 3.0.4-1
libjxl 0.11.0-1
libkdcraw 24.08.1-1
libkexiv2 24.08.1-1
libksba 1.6.7-1
liblangtag 0.6.7-1
liblc3 1.1.1-1
libldac 2.0.2.3-2
libldap 2.6.8-2
libliftoff 0.5.0-1
liblouis 3.31.0-1
liblqr 0.4.3-1
liblrdf 0.6.1-5
libltc 1.3.2-2
libmad 0.15.1b-10
libmanette 0.2.9-1
libmatroska 1.7.1-2
libmd 1.1.0-2
libmfx 23.2.2-3
libmicrodns 0.2.0-2
libmikmod 3.3.11.1-7
libmm-glib 1.22.0-1
libmng 2.0.3-4
libmnl 1.0.5-2
libmodplug 0.8.9.0-6
libmpc 1.3.1-2
libmpcdec 1:0.1+r475-6
libmpdclient 2.22-1
libmpeg2 0.5.1-10
libmspack 1:1.11-1
libmspub 0.1.4-16
libmtp 1.1.21-2
libmwaw 0.3.22-3
libmypaint 1.6.1-2
libmysofa 1.3.2-1
libndp 1.9-1
libnet 2:1.3-1
libnetfilter_conntrack 1.0.9-2
libnewt 0.52.24-2
libnfnetlink 1.0.2-2
libnftnl 1.2.7-1
libnghttp2 1.63.0-1
libnghttp3 1.5.0-1
libngtcp2 1.7.0-2
libnice 0.1.22-1
libnl 3.10.0-1
libnm 1.48.10-1
libnma 1.10.6-3
libnma-common 1.10.6-3
libnoise 1.0.0-7
libnotify 0.8.3-1
libnsl 2.0.1-1
libnumbertext 1.0.11-2
libnvme 1.10-1
libodfgen 0.1.8-3
libogg 1.3.5-2
libomxil-bellagio 0.9.3-5
libopenmpt 0.7.9-1
liborcus 0.19.2-3
libotf 0.9.16-5
libp11-kit 0.25.5-1
libpagemaker 0.0.4-4
libpcap 1.10.5-2
libpciaccess 0.18.1-2
libpgm 5.3.128-3
libpipeline 1.5.8-1
libpipewire 1:1.2.4-1
libplacebo 7.349.0-2
libplist 2.6.0-1
libpng 1.6.44-1
libproxy 0.5.8-1
libpsl 0.21.5-2
libpulse 17.0-3
libqalculate 5.2.0.1-1
libqxp 0.0.2-12
libraqm 0.10.2-1
libraw 0.21.3-1
libraw1394 2.1.2-4
libreoffice-fresh 24.8.1-2
librevenge 0.0.5-3
librist 0.2.10-3
librsvg 2:2.59.0-1
librsync 1:2.3.4-2
libsamplerate 0.2.2-3
libsasl 2.1.28-5
libscanmem-git 0.17.1103.0def8b2-1
libseccomp 2.5.5-3
libsecret 0.21.4-1
libshout 1:2.4.6-3
libsigc++ 2.12.1-1
libsigc++-3.0 3.6.0-1
libslirp 4.8.0-1
libsm 1.2.4-2
libsndfile 1.2.2-2
libsodium 1.0.20-1
libsoup 2.74.3-1
libsoup3 3.6.0-1
libsoxr 0.1.3-4
libspeechd 0.11.5-2
libspiro 1:20240903-1
libsrtp 1:2.6.0-1
libssh 0.11.1-1
libssh2 1.11.0-1
libstaroffice 0.0.7-3
libstemmer 2.2.0-2
libsysprof-capture 47.0-1
libtar 1.2.20-7
libtasn1 4.19.0-2
libteam 1.32-2
libthai 0.1.29-3
libtheora 1.1.1-6
libtiff 4.7.0-1
libtirpc 1.3.5-1
libtommath 1.3.0-1
libtool 2.5.2+r1+g2fe3a3e2-1
libunibreak 6.1-1
libunistring 1.2-1
libunwind 1.8.1-3
libupnp 1.14.19-3
libusb 1.0.27-1
libusbmuxd 2.1.0-1
libuv 1.48.0-2
libva 2.22.0-1
libvdpau 1.5-3
libverto 0.3.2-5
libvisio 0.1.7-11
libvorbis 1.3.7-3
libvpl 2.13.0-1
libvpx 1.14.1-1
libwacom 2.13.0-1
libwbclient 2:4.21.0-2
libwebp 1.4.0-2
libwireplumber 0.5.6-1
libwmf 0.2.13-3
libwnck3 43.0-3
libwpd 0.10.3-5
libwps 0.4.14-2
libx11 1.8.10-1
libxau 1.0.11-3
libxaw 1.0.16-1
libxcb 1.17.0-1
libxcomposite 0.4.6-2
libxcrypt 4.4.36-2
libxcrypt-compat 4.4.36-2
libxcursor 1.2.2-1
libxcvt 0.1.2-2
libxdamage 1.1.6-2
libxdmcp 1.1.5-1
libxext 1.3.6-1
libxfce4ui 4.18.6-2
libxfce4util 4.18.2-2
libxfixes 6.0.1-2
libxfont2 2.0.7-1
libxft 2.3.8-2
libxi 1.8.2-1
libxinerama 1.1.5-2
libxkbcommon 1.7.0-2
libxkbcommon-x11 1.7.0-2
libxkbfile 1.1.3-1
libxml2 2.13.4-1
libxmlb 0.3.19-1
libxmu 1.2.1-1
libxpm 3.5.17-2
libxrandr 1.5.4-1
libxrender 0.9.11-2
libxres 1.2.2-2
libxshmfence 1.3.2-2
libxslt 1.1.42-1
libxss 1.2.4-2
libxt 1.3.0-2
libxtst 1.2.5-1
libxv 1.0.12-2
libxxf86vm 1.1.5-2
libyaml 0.2.5-3
libyuv r2426+464c51a0-1
libzip 1.10.1-2
libzmf 0.0.2-16
licenses 20240728-1
lilv 0.24.24-2
linux 6.10.10.arch1-1
linux-api-headers 6.10-1
linux-firmware 20240909.552ed9b8-1
linux-firmware-whence 20240909.552ed9b8-1
linux-headers 6.10.10.arch1-1
llvm-libs 18.1.8-4
lm_sensors 1:3.6.0.r41.g31d1f125-3
lmdb 0.9.33-1
love 11.5-1
lpsolve 5.5.2.11-3
lrexlib-pcre5.1 2.9.0-2
lrexlib-pcre5.1-debug 2.9.0-2
lrzip 0.651-3
lsb-release 2.0.r53.a86f885-2
lsof 4.99.3-2
lua 5.4.7-1
lua-yajl 2.0-2
lua-yajl-debug 2.0-2
lua51 5.1.5-12
lua51-filesystem 1.8.0-4
lua51-lcf 5.1-3
lua51-luautf8 0.1.5-3
lua51-sql-sqlite 2.3.0-4
lua51-sql-sqlite-debug 2.3.0-4
luajit 2.1.1725453128-1
luarocks 3.11.1-1
luazip5.1 1.2.7-1
luazip5.1-debug 1.2.7-1
lv2 1.18.10-1
lz4 1:1.10.0-2
lzo 2.10-5
m17n-db 1.8.5-1
m17n-lib 1.8.4-3
m4 1.4.19-3
mailcap 2.1.54-2
make 4.4.1-2
man-db 2.13.0-1
mari0 1.6.2-4
mbedtls 3.6.1-1
mbedtls2 2.28.8-3
md4c 0.5.2-1
mdadm 4.3-2
media-player-info 26-1
mesa 1:24.2.3-1
mesen2-git r3082.dee97bf9-1
mindustry 7.0.146-3
miniupnpc 2.2.8-1
minizip 1:1.3.1-2
mjpegtools 2.2.1-2
mkinitcpio 39.2-2
mkinitcpio-busybox 1.36.1-1
mobile-broadband-provider-info 20240407-1
mongodb-tools-bin 100.10.0-2
mongodb-tools-bin-debug 100.10.0-2
mongosh-bin 2.3.1-1
mongosh-bin-debug 2.3.1-1
mono 6.12.0.206-1
mono-msbuild 16.10.1.xamarinxplat.2021.05.26.14.00-5
mpdecimal 4.0.0-2
mpfr 4.2.1-4
mpg123 1.32.7-1
mtdev 1.1.7-1
mudlet-debug 4.18.3-1
mypaint-brushes1 1.3.1-2
nano 8.2-1
ncurses 6.5-3
neon 0.33.0-1
net-tools 2.10-2
nethack 3.6.7-6
netstandard-targeting-pack 8.0.8.sdk108-1
nettle 3.10-1
network-manager-applet 1.36.0-1
networkmanager 1.48.10-1
networkmanager-openvpn 1.12.0-1
nm-connection-editor 1.36.0-1
node-gyp 10.2.0-1
nodejs 22.9.0-1
nodejs-nativefier 52.0.0-1
nodejs-nopt 7.2.0-2
notepad++ 8.6.9-1
notepadnext 0.8-1
noto-fonts 1:24.9.1-1
noto-fonts-cjk 20230817-2
noto-fonts-emoji 1:2.042-1
noto-fonts-emoji-flags 20200120-1
npm 10.8.3-1
npm-check-updates 17.0.2-1
npth 1.7-1
nspr 4.35-3
nss 3.104-1
nvidia-dkms 560.35.03-3
nvidia-utils 560.35.03-3
nvm 0.40.1-1
obs-studio-liberty 30.2.3-1
obs-studio-liberty-debug 30.2.3-1
ocl-icd 2.3.2-2
oniguruma 6.9.9-1
openal 1.23.1-2
opencore-amr 0.1.6-2
opendoas 6.8.2-3
openexr 3.2.4-1
openjpeg2 2.5.2-1
openssh 9.9p1-1
openssl 3.3.2-1
openssl-1.1 1.1.1.w-2
openstarruler-git-debug r95.c5e3cbb-1
openvpn 2.6.12-1
openxcom-debug 1.0-9
opus 1.5.2-1
opusfile 0.12-4
orc 0.4.40-1
orca 47.0-1
otf-compagnon 1.000-1
otf-font-awesome 6.6.0-1
p11-kit 0.25.5-1
p7zip 1:17.05-2
pacman 7.0.0.r3.g7736133-1
pacman-contrib 1.10.6-2
pacman-mirrorlist 20240717-1
pahole 1:1.27-2
pam 1.6.1-3
pambase 20230918-2
pango 1:1.54.0-1
pangomm 2.46.4-1
pangomm-2.48 2.54.0-1
parted 3.6-2
patch 2.7.6-10
pavucontrol 1:6.1-1
pciutils 3.13.0-2
pcre 8.45-4
pcre2 10.44-1
pcsclite 2.3.0-1
perl 5.40.0-1
perl-algorithm-diff 1:1.201-6
perl-class-method-modifiers 2.15-4
perl-clone 0.47-1
perl-data-optlist 0.114-4
perl-devel-globaldestruction 0.14-11
perl-encode-locale 1.05-13
perl-error 0.17029-7
perl-file-listing 6.16-4
perl-html-parser 3.83-1
perl-html-tagset 3.24-2
perl-http-cookiejar 0.014-3
perl-http-cookies 6.11-2
perl-http-daemon 6.16-4
perl-http-date 6.06-3
perl-http-message 6.46-2
perl-http-negotiate 6.01-14
perl-import-into 1.002005-11
perl-io-html 1.004-6
perl-libwww 6.77-2
perl-lwp-mediatypes 6.04-6
perl-mailtools 2.21-9
perl-module-runtime 0.016-4
perl-moo 2.005005-4
perl-net-http 6.23-4
perl-parallel-forkmanager 2.03-2
perl-params-util 1.102-6
perl-regexp-common 2024080801-2
perl-role-tiny 2.002004-6
perl-sub-exporter 0.991-2
perl-sub-exporter-progressive 0.001013-11
perl-sub-install 0.929-2
perl-sub-quote 1:2.006008-4
perl-timedate 2.33-7
perl-try-tiny 0.32-2
perl-uri 5.29-1
perl-www-robotrules 6.02-14
perl-xml-parser 2.47-2
phonon-qt6 4.12.0-4
phonon-qt6-vlc 0.12.0-2
physfs 3.2.0-2
pinentry 1.3.1-5
pipewire 1:1.2.4-1
pipewire-alsa 1:1.2.4-1
pipewire-audio 1:1.2.4-1
pipewire-jack 1:1.2.4-1
pipewire-pulse 1:1.2.4-1
pixman 0.43.4-1
pkcs11-helper 1.30.0-1
pkgconf 2.1.1-1
plasma-activities 6.1.5-1
play.it-git 2.29.1.r1.g03ba243f-1
playerctl 2.4.1-4
pnpm 9.11.0-1
pokemon-colorscripts-git r112.0483c85b-2.1
polkit 125-1
polkit-gnome 0.105-11
polkit-kde-agent 6.1.5-1
polkit-qt6 0.200.0-1
poppler 24.09.0-2
poppler-data 0.4.12-2
poppler-glib 24.09.0-2
poppler-qt6 24.09.0-2
popt 1.19-2
portaudio 1:19.7.0-3
procps-ng 4.0.4-3
proton-mail-bin 1.0.6-1
proton-mail-bin-debug 1.0.6-1
proton-vpn-gtk-app 4.4.5-2
psmisc 23.7-1
pugixml 1.14-1
puzzles 20240103-1
python 3.12.6-1
python-aiohappyeyeballs 2.3.6-1
python-aiohttp 3.10.5-1
python-aiosignal 1.3.1-6
python-attrs 23.2.0-3
python-autocommand 2.2.2-6
python-bcrypt 4.1.3-1
python-cairo 1.27.0-1
python-certifi 2024.08.30-1
python-cffi 1.16.0-2
python-charset-normalizer 3.3.2-2
python-colorama 0.4.6-3
python-configargparse 1.5.5-2
python-cryptography 42.0.7-1
python-dbus 1.3.2-4
python-decorator 5.1.1-4
python-distlib 0.3.8-2
python-distro 1.9.0-2
python-distutils-extra 2.39-13
python-fastjsonschema 2.20.0-1
python-filelock 3.13.3-2
python-frozenlist 1.4.1-2
python-gnupg 0.5.3-1
python-gobject 3.50.0-1
python-idna 3.8-1
python-inflect 7.3.1-1
python-jaraco.classes 3.4.0-1
python-jaraco.context 5.3.0-1
python-jaraco.functools 4.0.2-1
python-jaraco.text 4.0.0-1
python-jeepney 0.8.0-3
python-jinja 1:3.1.4-1
python-keyring 25.2.1-1
python-mako 1.3.5-1
python-markdown 3.7-1
python-markupsafe 2.1.5-2
python-more-itertools 10.3.0-1
python-multidict 6.0.5-2
python-numpy 2.1.1-1
python-ordered-set 4.1.0-5
python-packaging 24.1-1
python-platformdirs 4.2.2-1
python-proton-core 0.3.3-1
python-proton-keyring-linux 0.0.2-3
python-proton-keyring-linux-secretservice 0.0.2-4
python-proton-vpn-api-core 0.33.11-1
python-proton-vpn-killswitch-network-manager 0.5.4-1
python-proton-vpn-killswitch-network-manager-wireguard 0.1.4-1
python-proton-vpn-logger 0.2.1-7
python-proton-vpn-network-manager 0.6.3-2
python-psutil 6.0.0-1
python-pycparser 2.22-2
python-pynacl 1.5.0-2
python-pyopenssl 24.2.1-1
python-pyte 0.8.2-3
python-pyxdg 0.28-3
python-requests 2.32.3-1
python-secretstorage 3.3.3-5
python-sentry_sdk 2.14.0-1
python-setproctitle 1.3.3-2
python-setuptools 1:69.5.1-1
python-six 1.16.0-9
python-tomli 2.0.1-4
python-trove-classifiers 2024.9.12-1
python-typeguard 4.3.0-1
python-typing_extensions 4.12.2-1
python-urllib3 1.26.20-1
python-validate-pyproject 0.19-1
python-virtualenv 20.26.2-1
python-wand 0.6.11-4
python-wcwidth 0.2.13-2
python-yarl 1.9.4-2
qca-qt6 2.3.9-2
qrcodegencpp-cmake 1:1.8.0-3
qrencode 4.1.1-3
qt5-base 5.15.15+kde+r127-1
qt5-declarative 5.15.15+kde+r25-1
qt5-gamepad 5.15.15-2
qt5-gamepad-debug 5.15.15-2
qt5-location 5.15.15+kde+r7-1
qt5-multimedia 5.15.15+kde+r2-1
qt5-remoteobjects 5.15.15-1
qt5-svg 5.15.15+kde+r5-1
qt5-tools 5.15.15+kde+r3-2
qt5-translations 5.15.15-1
qt5-wayland 5.15.15+kde+r59-1
qt5-webchannel 5.15.15+kde+r3-1
qt5-webengine 5.15.17-7
qt5-x11extras 5.15.15-1
qt6-5compat 6.7.2-1
qt6-base 6.7.2-2
qt6-declarative 6.7.2-1
qt6-multimedia 6.7.2-1
qt6-multimedia-ffmpeg 6.7.2-1
qt6-shadertools 6.7.2-1
qt6-speech 6.7.2-1
qt6-svg 6.7.2-1
qt6-translations 6.7.2-1
qt6-wayland 6.7.2-4
qtkeychain-qt5 0.14.3-1
raptor 2.0.16-5
rasqal 1:0.9.33-7
rav1e 0.7.1-1
readline 8.2.013-1
redact-bin 0.18.0-1
redact-bin-debug 0.18.0-1
redland 1:1.0.17-9
reflector 2023-2
rnnoise 1:0.2-1
roam 127.1.0.beta001-1
rofimoji 6.5.0-1
rtkit 0.13-3
rtmpdump 1:2.4.r105.6f6bb13-1
rubberband 3.3.0-2
runc 1.1.14-1
samrewritten-git r258.39d524a-1
samrewritten-git-debug r258.39d524a-1
sbc 2.0-2
scanmem 0.17-9
scummvm 2.8.1-1
sdbus-cpp 1.5.0-3
sddm 0.21.0-4
sdl12-compat 1.2.68-2
sdl2 2.30.7-1
sdl2_image 2.8.2-6
sdl2_mixer 2.8.0-1
sdl2_net 1:2.2.0-2
sdl2_ttf 2.22.0-1
sdl_gfx 2.0.27-1
sdl_image 1.2.12-9
sdl_mixer 1.2.12-12
sdl_ttf 2.0.11-7
seatd 0.8.0-2
sed 4.9-3
semver 7.6.3-1
serd 0.32.2-1
shaderc 2024.2-1
shadow 4.16.0-1
shared-mime-info 2.4-1
simutrans 124.2.1-1
simutrans-pak64 124.1-1
slack-desktop 4.39.95-1
slack-electron-debug 4.40.128-1
slang 2.3.3-3
slurp 1.5.0-1
smartmontools 7.4-2
smbclient 2:4.21.0-2
snappy 1.1.10-1
sndio 1.10.0-1
solid 6.6.0-1
sonnet 6.6.0-1
sord 0.16.16-1
sound-theme-freedesktop 0.8-6
soundtouch 2.3.3-1
spandsp 0.0.6-5
spdlog 1.14.1-3
speech-dispatcher 0.11.5-2
speedtest-cli 2.1.3-8
speex 1.2.1-2
speexdsp 1.2.1-2
spicetify-cli 2.38.3-1
spicetify-cli-debug 2.36.15-1
spirv-tools 2024.2-1
spotify 1:1.2.45.454-1
sqlite 3.46.1-1
squashfuse 0.5.2-1
sratom 0.6.16-1
srt 1.5.3-2
startup-notification 0.12-8
steam 1.0.0.81-2
stone-soup-tiles-git 0.33.a0.r53.g9043e79ccf-1
stone-soup-tiles-git-debug 0.33.a0.r53.g9043e79ccf-1
strace 6.10-1
sublime-text-4 4.4180-1
sudo 1.9.16-1
suitesparse 7.8.2-1
svt-av1 2.2.1-1
svt-hevc 1.5.1-3
swappy 1.5.1-2
swaylock-effects 1.7.0.0-4
swaylock-effects-debug 1.7.0.0-4
syndication 6.6.0-1
syntax-highlighting 6.6.0-1
systemd 256.6-1
systemd-libs 256.6-1
systemd-sysvcompat 256.6-1
taglib 2.0.2-1
tailscale 1.74.1-1
talloc 2.4.2-3
tar 1.35-2
tdb 1.4.12-1
tevent 1:0.16.1-3
texinfo 7.1.1-1
thefuck 3.32-9
thunar 4.18.11-2
tinysparql 3.8.0-1
tomlplusplus 3.4.0-1
tpm2-tss 4.0.1-1
trayscale 0.13.4-1
tree-sitter 0.23.0-1
tslib 1.23-1
ttf-dejavu 2.37+18+g9b5d1b2f-7
ttf-firacode-nerd 3.2.1-2
ttf-font-awesome 6.6.0-1
ttf-jetbrains-mono-nerd 3.2.1-2
ttf-joypixels 8.0.0-2
ttf-symbola 14.00-1
ttf-twemoji 15.1.0-1
twitter 1.0.5-1
twolame 0.4.0-4
tzdata 2024b-2
udisks2 2.10.1-5
unrar 1:7.0.9-1
unzip 6.0-21
upower 1.90.6-1
usbutils 017-1
util-linux 2.40.2-1
util-linux-libs 2.40.2-1
v4l-utils 1.28.1-1
v4l2loopback-dkms 0.13.2-1
vapoursynth R69-1
vi 1:070224-6
vid.stab 1.1.1-2
vim 9.1.0740-1
vim-runtime 9.1.0740-1
vlc 3.0.21-4
vmaf 3.0.0-1
volume_key 0.3.12-9
vscodium-bin 1.93.1.24256-1
vscodium-bin-debug 1.93.1.24256-1
vulkan-headers 1:1.3.295-1
vulkan-icd-loader 1.3.295-1
vulkan-tools 1.3.269-1
vulkan-validation-layers 1.3.290-2
wavpack 5.7.0-1
waybar 0.11.0-3
wayland 1.23.1-1
wayland-protocols 1.37-1
webkit2gtk 2.46.0-2
webrtc-audio-processing-1 1.3-3
wev 1.0.0-13
wget 1.24.5-3
which 2.21-6
widelands 1:1.2-2
wildmidi 0.4.6-1
win2xcur 0.1.2-1
wine 9.18-1
wireless_tools 30.pre9-4
wireplumber 0.5.6-1
wl-clipboard 1:2.2.1-2
wlogout 1.2.2-0
wlroots0.17 0.17.4-3
woff2 1.0.2-5
wofi 1.4.1-1
wofi-emoji 1.2-3
wpa_supplicant 2:2.11-2
wtype 0.4-2
wxhexeditor 0.24-4
wxhexeditor-debug 0.24-4
wxwidgets-common 3.2.6-1
wxwidgets-gtk3 3.2.6-1
x264 3:0.164.r3108.31e19f9-2
x265 3.6-1
xcb-proto 1.17.0-2
xcb-util 0.4.1-2
xcb-util-cursor 0.1.5-1
xcb-util-errors 1.0.1-2
xcb-util-image 0.4.1-3
xcb-util-keysyms 0.4.1-5
xcb-util-renderutil 0.3.10-2
xcb-util-wm 0.4.2-2
xcb-util-xrm 1.3-3
xdg-dbus-proxy 0.1.6-1
xdg-desktop-portal 1.18.4-1
xdg-desktop-portal-hyprland 1.3.5-1
xdg-user-dirs 0.18-2
xdg-utils 1.2.1-1
xf86-input-libinput 1.4.0-2
xfconf 4.18.3-2
xkeyboard-config 2.42-1
xmlsec 1.3.5-1
xorg-fonts-alias-misc 1.0.5-1
xorg-fonts-encodings 1.1.0-1
xorg-fonts-misc 1.0.4-2
xorg-mkfontscale 1.2.3-1
xorg-server 21.1.13-1
xorg-server-common 21.1.13-1
xorg-setxkbmap 1.3.4-2
xorg-xauth 1.1.3-1
xorg-xcursorgen 1.0.8-2
xorg-xdpyinfo 1.3.4-2
xorg-xhost 1.0.9-2
xorg-xinit 1.4.2-2
xorg-xinput 1.6.4-2
xorg-xkbcomp 1.4.7-1
xorg-xmodmap 1.0.11-2
xorg-xprop 1.2.7-1
xorg-xrandr 1.5.2-2
xorg-xrdb 1.2.2-2
xorg-xset 1.2.5-2
xorg-xwayland 24.1.2-1
xorgproto 2024.1-2
xvidcore 1.3.7-3
xxhash 0.8.2-1
xz 5.6.2-1
yajl 2.1.0-6
yaml-cpp 0.8.0-2
yarn 1.22.22-2
yay 12.4.2-1
zbar 0.23.93-1
zen-browser-bin 1.0.1.a.3-1
zenity 4.0.2-1
zeromq 4.3.5-2
zimg 3.0.5-1
zip 3.0-11
zix 0.4.2-2
zlib 1:1.3.1-2
zoom 6.2.0-1
zsh 5.9-5
zstd 1.5.6-1
zvbi 0.2.42-1
zxing-cpp 2.2.1-1
zycore-c 1.5.0-1
zydis 4.1.0-1
zziplib 0.13.78-1

3. Configuration

Naomi’s specific application configurations are noted here for posterity.

3.1. git

The global gitconfig goes in ~/.gitconfig.

The most important thing to note is that Naomi signs her commits with her SSH key, not a GPG key.

[gpg]
format = ssh
[gpg "ssh"]
program = /opt/1Password/op-ssh-sign
[commit]
gpgsign = true
[user]
signingkey = ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDFObmWsDIA2Y95uY8PVmepbTkjG2EFp36PTcnHCi/MYlaBlVPT8c0ixLj6XMwGaTWiiw+SaoSds1zf/WFRfkd8KujWWLQg0xE9Nh0oThF07HwoRIvi1YuAa69TmOSaNaT1YjX5uCIp7QNck5AkLckMK6v5Vhb5XPwZktEp96IBCQqdBcV2F6wX6Oro73iqGCoiAcUZRzeA9dzLtNCg77n3hFKrSeNpuXzX/3SiVOx9x2+3vZdyLlCXogQvH29LU8exPaYOor2h+ijPLVRivlO+yyt6s11iArrVhgINRpTEDbHde7GtNzQeLRNdnFyFSwkj1KPVpbfvAWDTbzteCawic0OP5swQ0rFLtjSnQI+K2GqFFu+Nvypz3YX5ozqTBSFudyI5XZgLObIsR/Lug6zEdRnvoKDnHcBqRxnZeHOD5Mq+oHrHSyA8KROLH+XmtFwdtyakw1NnuwLrFM08HOHKFBj66zgU1SSNjUiUkv3lBIhlDIVAWDk7XG5yRJx0GzcNLA4vvIKhS3SVOqZezRVrfB60SglOIPOgxjvWJuY9jCTcN5aKBT46+Hjam3dF754dx3rG103Azvn0/b3Hicf30+LpRNtxi4k+QdD4q/LlRmsrSl00S4wcfaKeza7L8WAAUNmfCqeApJ06U1O+TopJikzT5bT5ObHyDeUgHdB1jw==
name = Naomi Carrigan
[core]
editor = emacs -nw
[push]
autoSetupRemote = true
[init]
defaultBranch = main

3.2. zsh

The zsh config goes in ~/.zshrc.

Naomi uses Oh My ZSH instead of bash.

Terminal window
# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
# Initialization code that may require console input (password prompts, [y/n]
# confirmations, etc.) must go above this block; everything else may go below.
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi
####################
# Dotfile for Oh My Zsh.
# Installs on top of zsh,
# so install that first.
####################
# SYSTEM
####################
# Path to your Oh My Zsh installation.
export ZSH="$HOME/.oh-my-zsh"
# Theme
ZSH_THEME="powerlevel10k/powerlevel10k"
# Plugins
plugins=(git zsh-256color zsh-autosuggestions zsh-syntax-highlighting)
source $ZSH/oh-my-zsh.sh
# User configuration
####################
# Load nvm on arch
source /usr/share/nvm/init-nvm.sh
# Load spicetify
export PATH=$PATH:/home/naomi/.spicetify
##################
# Aliases
#################
# We're lazy. :3
alias zshrc="source ~/.zshrc"
alias hyprconf="emacs -nw ~/.config/hypr/hyprland.conf"
# We hate nano
alias nano="emacs -nw"
alias code="codium ."
# We hate sudo more
# alias sudo="doas"
# Listing files
alias ls="eza -ahl --extended --octal-permissions --git -g"
# More details on which thing to run
alias which="type -a"
# Untar
alias untar="tar -xvzf"
# Packages
alias yay-list="yay -Qs"
alias yay-clean="yay -Scc"
alias yay-update="yay -Syu"
alias yay-new="yay -Syuu"
alias yay-install="yay" # Just for consistency.
alias yay-uninstall="yay -R"
# File System
alias .2="cd ../.."
alias .3="cd ../../.."
alias .4="cd ../../../.."
alias .5="cd ../../../../.."
alias delete="rm -rf"
alias cp="cp -i"
alias mkdir="mkdir -p"
# git
alias clone="git clone"
alias comm="git add -A && git commit"
alias commv="git add -A && git commit --no-verify"
alias push="git push"
alias pull="git pull"
alias upmain="git checkout main && git fetch upstream && git merge upstream/main"
alias co="git checkout"
alias cob="git checkout -b"
alias fcc="cd ~/code/freecodecamp"
alias ridm="cd ~/code/rythm"
alias sc="cd ~/code/streamcord"
alias dg="cd ~/code/deepgram"
alias naomi="cd ~/code/naomi"
# Silly
alias tree="cbonsai -S"
alias poke="pokemon-colorscripts --no-title -r"
# Run this on terminal load, because it's pretty.
hyfetch
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
# THE FUCK
eval $(thefuck --alias)
# pnpm
export PNPM_HOME="/home/naomi/.local/share/pnpm"
case ":$PATH:" in
*":$PNPM_HOME:"*) ;;
*) export PATH="$PNPM_HOME:$PATH" ;;
esac
# pnpm end
export PATH=$HOME/.local/bin:$PATH

3.3. pacman

The pacman config goes in /etc/pacman.conf.

Naomi’s package manager configuration.

[options]
IgnorePkg = hyprland
HoldPkg = pacman glibc
Architecture = auto
CheckSpace
SigLevel = Required DatabaseOptional
LocalFileSigLevel = Optional
[core]
Include = /etc/pacman.d/mirrorlist
[extra]
Include = /etc/pacman.d/mirrorlist
[multilib]
Include = /etc/pacman.d/mirrorlist
[chaotic-aur]
Include = /etc/pacman.d/chaotic-mirrorlist
[sublime-text]
Server = https://download.sublimetext.com/arch/stable/x86_64

3.4. Hexchat

Naomi’s IRC config, mostly so she doesn’t lose it.

Her channel list goes in ~/.config/hexchat/servlist.conf.

Terminal window
N=Libera.Chat
P=<you wish i was putting my password here>
L=6
E=UTF-8 (Unicode)
F=95
D=29
S=irc.libera.chat
J=#nhcarrigan-chat
J=#nhcarrigan
J=##chat
J=##programming
J=#javascript
J=#idlerpg
J=#archlinux
J=#archlinux-offtopic
J=#archlinux-women
J=#wesnoth
J=#wesnoth-offtopic
J=#xonotic
J=#linux
J=#protondb
J=#nethack
J=#cataclysmDDA
J=#crawl
J=##brogue
J=#freedroid
J=#widelands
J=#freeciv
J=#freeorion
J=#pioneer
J=#endeavouros
J=#hexchat
J=#node.js
J=#zsh
J=#codeberg
J=#idlerpg-discuss
J=#idlerpg-ng

3.5 hyprland

This is Naomi’s hyprland config, which goes in ~/.config/hypr/hyprland.conf.

################
### MONITORS ###
################
monitor=HDMI-A-1,1920x1080,0x0,1
monitor=DP-3,1920x1080,1920x0,1
monitor=DP-2,1920x1080,3840x0,1
###################
### MY PROGRAMS ###
###################
$terminal = alacritty
$fileManager = thunar
$menu = wofi --show=drun --allow-images
#################
### AUTOSTART ###
#################
# This creates the GUI for apps to ask for sudo perms
exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
# Wallpaper
exec-once = hyprpaper
# Task bar
exec-once = waybar
# Dark theming
exec-once = gsettings set org.gnome.desktop.interface gtk-theme "Sweet-Ambar-Blue-Dark-v40"
exec-once = gsettings set org.gnome.desktop.interface color-scheme prefer-dark
exec-once = gsettings set org.gnome.desktop.interface font-name 'Fira Code 11'
# Cursors
exec-once = gsettings set org.gnome.desktop.interface cursor-theme miku-cursor-linux
exec-once = hyprctl setcursor miku-cursor-linux 24
exec-once = echo "Xcursor.theme: miku-cursor-linux" | xrdb -merge
# Execute startup script
exec-once = ~/.config/hypr/startup.sh
#############################
### ENVIRONMENT VARIABLES ###
#############################
env = XCURSOR_SIZE,24
env = HYPRCURSOR_SIZE,24
env = LIBVA_DRIVER_NAME,nvidia
env = XDG_SESSION_TYPE,wayland
env = GBM_BACKEND,nvidia-drm
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
env = WLR_NO_HARDWARE_CURSOES,1
env = WLR_RENDERER,gles2
debug {
disable_logs = false
}
#####################
### LOOK AND FEEL ###
#####################
general {
gaps_in = 5
gaps_out = 20
border_size = 2
col.active_border = rgba(00c7a9ee) rgba(00ffd9ee) 45deg
col.inactive_border = rgba(00806cff)
resize_on_border = true
allow_tearing = false
layout = dwindle
}
decoration {
rounding = 10
active_opacity = 1.0
inactive_opacity = 0.5
drop_shadow = true
shadow_range = 4
shadow_render_power = 3
col.shadow = rgba(1a1a1aee)
blur {
enabled = true
size = 8
passes = 1
vibrancy = 0.1696
}
}
animations {
enabled = true
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
animation = windows, 1, 7, myBezier
animation = windowsOut, 1, 7, default, popin 80%
animation = border, 1, 10, default
animation = borderangle, 1, 8, default
animation = fade, 1, 7, default
animation = workspaces, 1, 6, default
}
dwindle {
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = true # You probably want this
}
master {
new_status = master
}
misc {
force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :(
}
#############
### INPUT ###
#############
input {
kb_layout = us
kb_variant =
kb_model =
kb_options =
kb_rules =
follow_mouse = 1
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
touchpad {
natural_scroll = false
}
}
gestures {
workspace_swipe = false
}
####################
### KEYBINDINGSS ###
####################
$mainMod = SUPER # Sets "Windows" key as main modifier
# Screenshots
bind = ,Print, exec, grimshot --notify --cursor copy area
bind = CTRL, Print, exec, grimshot --notify --cursor --wait 5 copy area
bind = $mainMod, Q, exec, $terminal
bind = $mainMod, C, killactive,
bind = $mainMod, M, exit,
bind = $mainMod, E, exec, $fileManager
bind = $mainMod, V, togglefloating,
bind = $mainMod, R, exec, $menu
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, J, togglesplit, # dwindle
# Move focus with mainMod + arrow keys
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
bind = $mainMod SHIFT, 1, workspace, 11
bind = $mainMod SHIFT, 2, workspace, 12
bind = $mainMod SHIFT, 3, workspace, 13
bind = $mainMod SHIFT, 4, workspace, 14
bind = $mainMod SHIFT, 5, workspace, 15
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
# Move windows with arrow keys
bind = $mainMod SHIFT, left, movewindow, l
bind = $mainMod SHIFT, right, movewindow, r
bind = $mainMod SHIFT, down, movewindow, d
bind = $mainMod SHIFT, up, movewindow, u
# Lockscreen
bind = $mainMod, L, exec, swaylock
# Emoji Picker
bind = $mainMod, code:60, exec, rofimoji -f all -a copy --skin-tone light
# Volume
bind = , XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +1%
bind = , XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -1%
bind = , XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle
# Media controls
bind = , XF86AudioPlay, exec, playerctl play-pause
bind = , XF86AudioNext, exec, playerctl next
bind = , XF86AudioPrev, exec, playerctl previous
##############################
### WINDOWS AND WORKSPACES ###
##############################
windowrulev2 = suppressevent maximize, class:.* # You'll probably like this.
windowrulev2 = opacity 1 override 1,title:FreeTube

startup.sh

This just boots Naomi’s programs.

#!/bin/bash
# Function to launch app with delay
launch_app() {
$2 &
sleep $1
}
# Workspace 1
hyprctl dispatch workspace 1
launch_app 20 discord
launch_app 5 hexchat
# Workspace 2
hyprctl dispatch workspace 2
launch_app 5 zen-browser
# Workspace 3
hyprctl dispatch workspace 3
launch_app alacritty

3.6 Waybar

These manage Naomi’s waybar instance. These are a modification of MechaBar.

All of these files go in ~/.config/waybar.

config.jsonc

{
"layer": "top",
"position": "top",
"mode": "dock",
"height": 20,
"exclusive": true,
"passthrough": false,
"gtk-layer-shell": true,
"reload_style_on_change": true,
// positions
"modules-left": [
"custom/paddl",
"custom/ws", // window icon
"custom/left1",
"hyprland/workspaces", // workspaces
"custom/right1",
"custom/paddw",
"hyprland/window" // window title
],
"modules-center": [
"custom/paddc",
"custom/left2",
"custom/cpuinfo", // temperature
"custom/left3",
"memory", // memory
"custom/left4",
"cpu", // cpu
"custom/leftin1",
"custom/left5",
"custom/arch", // arch logo
"custom/right2",
"custom/rightin1",
"clock#time", // time
"custom/right3",
"clock#date", // date
"custom/right4",
"custom/wifi", // connection
"custom/right5"
],
"modules-right": [
"custom/media", // media info
"custom/left6",
"pulseaudio", // output device
"custom/left7",
"tray", // brightness
"custom/left8",
"battery", // battery
"custom/leftin2",
"custom/power" // power button
],
// modules
"custom/ws": {
"format": "",
"tooltip": false,
"on-click": "wofi --show=drun --allow-images"
},
"hyprland/workspaces": {
"all-outputs": false,
"active-only": false,
"on-click": "activate",
"disable-scroll": true,
"sort-by-number": true
},
"hyprland/window": {
"format": "{}",
"separate-outputs": true,
"rewrite": {
"naomi@technomancer:(.*)": " $1",
"(.*)naomi@technomancer:~": " naomi@technomancer",
"(.*) — Mozilla Firefox": "<span foreground='#f38ba8'>󰈹</span> $1",
"(.*)Mozilla Firefox": "<span foreground='#f38ba8'>󰈹</span> Firefox",
"(.*) - Visual Studio Code": "<span foreground='#89b4fa'>󰨞</span> $1",
"(.*)Visual Studio Code": "<span foreground='#89b4fa'>󰨞</span> Visual Studio Code",
"(.*)Spotify Premium": "<span foreground='#a6e3a1'></span> Spotify Premium",
"Discord": "<span foreground='#89b4fa'></span> Discord",
"GNU Image Manipulation Program": "<span foreground='#a6adc8'></span> GNU Image Manipulation Program",
"OBS(.*)": "<span foreground='#a6adc8'>󰐌</span> OBS Studio",
"VLC media player": "<span foreground='#fab387'>󰕼</span> VLC Media Player",
"ONLYOFFICE Desktop Editors": "<span foreground='#f38ba8'></span> OnlyOffice Desktop",
"qView": " qView",
"(.*).jpg": " $1.jpg",
"(.*).png": " $1.png",
"(.*).svg": " $1.svg",
"/": " File Manager",
"": "<span foreground='#cba6f7'></span> Naomi 󰅂 Technomancer"
},
"min-length": 5,
"max-length": 45
},
"custom/cpuinfo": {
"exec": "~/.config/waybar/scripts/cpuinfo.sh",
"return-type": "json",
"format": "{}",
"tooltip": true,
"interval": 5,
"min-length": 8,
"max-length": 8
},
"memory": {
"states": {"c": 90},
"format": "󰘚 {percentage}%",
"format-c": "󰀪 {percentage}%",
"tooltip": true,
"tooltip-format": "{used:0.1f}GB / {total:0.1f}GB",
"interval": 20,
"min-length": 7,
"max-length": 7
},
"cpu": {
"format": "󰻠 {usage}%",
"tooltip": false,
"interval": 5,
"min-length": 6,
"max-length": 6
},
"custom/arch": {
"format": "",
"tooltip": false,
"on-click": "alacritty"
},
"clock#time": {
"format": "󱑂 {:%H:%M}",
"tooltip": false,
"min-length": 8,
"max-length": 8,
"timezone": "America/Los_Angeles"
},
"clock#date": {
"format": "󱨴 {:L%m-%d}",
"tooltip-format": "<tt>{calendar}</tt>",
"calendar": {
"mode": "month",
"mode-mon-col": 3,
"on-click-right": "mode",
"format": {
"months": "<span color='#f5e0dc'><b>{}</b></span>",
"weekdays": "<span color='#f9e2af'><b>{}</b></span>",
"today": "<span color='#f38ba8'><b>{}</b></span>"
}
},
"actions": {"on-click-right": "mode"},
"min-length": 8,
"max-length": 8
},
"custom/wifi": {
"exec": "~/.config/waybar/scripts/network-status.sh",
"interval": 30,
"format": "󰢾 Internet",
"tooltip": true,
"tooltip-format": "{}",
"on-click": "~/.config/waybar/scripts/network-menu.sh",
},
"custom/media": {
"exec": "/usr/bin/python3 ~/.config/waybar/scripts/mediaplayer.py",
"format": "{}",
"return-type": "json",
"on-click": "playerctl play-pause",
"min-length": 5,
"max-length": 35
},
"pulseaudio": {
"format": "{icon} {volume}%",
"format-muted": "婢 {volume}%",
"format-icons": {
"headphone": "󰋋",
"default": ["󰖀", "󰕾"]
},
"on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle",
"on-click-right": "pavucontrol -t 3",
"on-scroll-up": "pactl set-sink-volume @DEFAULT_SINK@ +1%",
"on-scroll-down": "pactl set-sink-volume @DEFAULT_SINK@ -1%",
"scroll-step": 10,
"min-length": 6,
"max-length": 6
},
"backlight": {
"device": "intel_backlight",
"format": "{icon} {percent}%",
"format-icons": ["", "", "", "", "", "", "", "", ""],
"tooltip": false,
"on-scroll-up": "brightnessctl set 5%+",
"on-scroll-down": "brightnessctl set 5%-",
"min-length": 6,
"max-length": 6
},
"battery": {
"states": {
"good": 95,
"warning": 30,
"critical": 20
},
"format": "{icon} {capacity}%",
// "format-icons": ["", "", "", "", ""],
"format-icons": ["󰂎", "󰁺", "󰁻", "󰁼", "󰁽", "󰁾", "󰁿", "󰂀", "󰂁", "󰂂", "󰁹"],
"format-charging": "󱘖 {capacity}%",
"format-plugged": "󱘖 {capacity}%",
"tooltip-format": "{time}",
"interval": 1,
"min-length": 6,
"max-length": 6
},
"custom/power": {
"format": "",
"tooltip": false,
"on-click": "swaylock",
"on-click-right": "shutdown now",
"interval" : 86400
},
"tray": {
"icon-size": 20,
"spacing": 10,
"show-passive-items": true
},
// padding
"custom/paddl": {
"format": " ",
"tooltip": false
},
"custom/paddw": {
"format": " ",
"tooltip": false
},
"custom/paddc": {
"format": " ",
"tooltip": false
},
"custom/paddr": {
"format": "",
"tooltip": false
},
// LEFT arrows
"custom/left1": {
"format": "",
"tooltip": false
},
"custom/left2": {
"format": "",
"tooltip": false
},
"custom/left3": {
"format": "",
"tooltip": false
},
"custom/left4": {
"format": "",
"tooltip": false
},
"custom/left5": {
"format": "",
"tooltip": false
},
"custom/left6": {
"format": "",
"tooltip": false
},
"custom/left7": {
"format": "",
"tooltip": false
},
"custom/left8": {
"format": "",
"tooltip": false
},
// RIGHT arrows
"custom/right1": {
"format": "",
"tooltip": false
},
"custom/right2": {
"format": "",
"tooltip": false
},
"custom/right3": {
"format": "",
"tooltip": false
},
"custom/right4": {
"format": "",
"tooltip": false
},
"custom/right5": {
"format": "",
"tooltip": false
},
// LEFT inverse
"custom/leftin1": {
"format": "",
"tooltip": false
},
"custom/leftin2": {
"format": "",
"tooltip": false
},
// RIGHT inverse
"custom/rightin1": {
"format": "",
"tooltip": false
}
}

style.css

* {
border: none;
font-family: "Fira Code";
font-weight: bold;
font-size: 12px;
min-height: 11px;
color: @text;
}
@import "theme.css";
window#waybar {
background: @bar-bg;
}
tooltip {
background: @main-bg;
color: @main-fg;
border: solid;
border-radius: 7px;
border-width: 1px;
border-color: @text;
}
/* WORKSPACE BUTTONS */
#workspaces button {
box-shadow: none;
text-shadow: 0px 0px 2px rgba(0, 0, 0, 1);
padding: 0px;
border-radius: 8px;
margin-top: 2px;
margin-bottom: 2px;
margin-left: 0px;
padding-left: 2px;
padding-right: 2px;
margin-right: 0px;
color: @main-fg;
animation: ws_normal 20s ease-in-out 1;
}
#workspaces button.active {
text-shadow: 0px 0px 2px rgba(0, 0, 0, 0.6);
background: @wb-act-bg;
color: @wb-act-fg;
margin-left: 2px;
padding-left: 8px;
padding-right: 8px;
margin-right: 2px;
animation: ws_active 20s ease-in-out 1;
transition: all 0.4s cubic-bezier(.55,-0.68,.48,1.682);
}
#workspaces button:hover {
background: @wb-hvr-bg;
color: @wb-hvr-fg;
animation: ws_hover 20s ease-in-out 1;
transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
}
/* SPACING */
#custom-ws,
#workspaces,
#window,
#custom-cpuinfo
#memory,
#cpu,
#clock,
#pulseaudio,
#backlight,
#battery,
#custom-power,
#mpris,
#custom-notifications {
margin-bottom: 0px;
opacity: 1;
padding-left: 4px;
padding-right: 4px;
}
/* COLORS */
@define-color text #00ffd5;
@define-color workspaces #004452;
@define-color cpuinfo #004452;
@define-color memory #006151;
@define-color cpu #008f77;
@define-color arch #00ffd5;
@define-color time #008f77;
@define-color date #006151;
@define-color wifi #004452;
@define-color pulseaudio #004452;
@define-color backlight #006151;
@define-color battery #008f77;
@define-color power #00ffd5;
/* MODULES */
/* WINDOW ICON */
#custom-paddl {
font-size: 11.5pt;
margin-bottom: -2px;
padding-right: 2px;
background: @main-bg;
}
#custom-ws {
text-shadow: 0px 0px 2px rgba(0, 0, 0, 1);
background: @main-bg;
}
#custom-left1 {
font-size: 11.5pt;
color: @workspaces;
background: @main-bg;
margin-bottom: -2px;
text-shadow: -1px 0px 2px rgba(0, 0, 0, 1);
padding-left: 2px;
}
/* WORKSPACES */
#workspaces {
padding: 0;
background: @workspaces;
}
#custom-right1 {
font-size: 11.5pt;
color: @workspaces;
background: @main-bg;
margin-bottom: -2px;
text-shadow: 1px 0px 2px rgba(0, 0, 0, 1);
padding-right: 3px;
}
/* WINDOW TITLE */
#window {
text-shadow: 0px 0px 2px rgba(0, 0, 0, 1);
}
/* TEMPERATURE */
#custom-paddc {
padding-right: 3px;
}
#custom-left2 {
font-size: 11.5pt;
color: @cpuinfo;
background: @main-bg;
margin-bottom: -2px;
border-radius: 10px;
text-shadow: -1px 0px 2px rgba(0, 0, 0, 1);
padding-left: 3px;
}
#custom-cpuinfo {
padding-left: 1px;
text-shadow: 0px 0px 2px rgba(0, 0, 0, 1);
background: @cpuinfo;
}
/* MEMORY */
#custom-left3 {
font-size: 11.5pt;
color: @memory;
background: @cpuinfo;
margin-bottom: -2px;
text-shadow: -1px 0px 2px rgba(0, 0, 0, 1);
padding-left: 3px;
}
#memory {
padding-left: 1px;
text-shadow: 0px 0px 2px rgba(0, 0, 0, 1);
background: @memory;
}
/* CPU */
#custom-left4 {
font-size: 11.5pt;
color: @cpu;
background: @memory;
margin-bottom: -2px;
text-shadow: -1px 0px 2px rgba(0, 0, 0, 1);
padding-left: 3px;
}
#cpu {
text-shadow: 0px 0px 2px rgba(0, 0, 0, 1);
background: @cpu;
}
#custom-leftin1 {
font-size: 11.5pt;
color: @cpu;
margin-bottom: -2px;
}
/* ARCH LOGO */
#custom-left5 {
font-size: 11.5pt;
color: @arch;
background: @main-bg;
margin-bottom: -2px;
text-shadow: -1px 0px 2px rgba(0, 0, 0, 0.6);
padding-left: 3px;
}
#custom-arch {
text-shadow: none;
color: black;
font-size: 11pt;
padding-left: 4px;
padding-right: 0px;
background: @arch;
margin-bottom: -2px;
text-shadow: 0px 0px 2px rgba(0, 0, 0, 1);
}
#custom-right2 {
font-size: 11.5pt;
color: @arch;
background: @main-bg;
margin-bottom: -2px;
text-shadow: 1px 0px 2px rgba(0, 0, 0, 1);
padding-right: 3px;
}
/* TIME */
#custom-rightin1 {
font-size: 11.5pt;
color: @time;
margin-bottom: -2px;
}
#clock.time {
text-shadow: 0px 0px 2px rgba(0, 0, 0, 1);
background: @time;
}
#custom-right3 {
font-size: 11.5pt;
color: @time;
background: @date;
margin-bottom: -2px;
text-shadow: 1px 0px 2px rgba(0, 0, 0, 1);
padding-right: 3px;
}
/* DATE */
#clock.date {
text-shadow: 0px 0px 2px rgba(0, 0, 0, 1);
background: @date;
}
#custom-right4 {
font-size: 11.5pt;
color: @date;
background: @wifi;
margin-bottom: -2px;
text-shadow: 1px 0px 2px rgba(0, 0, 0, 1);
padding-right: 3px;
}
/* CONNECTION */
#custom-wifi {
padding-left: 4px;
padding-right: 4px;
text-shadow: 0px 0px 2px rgba(0, 0, 0, 1);
background: @wifi;
}
#custom-right5 {
font-size: 11.5pt;
color: @wifi;
background: @main-bg;
margin-bottom: -2px;
text-shadow: 1px 0px 2px rgba(0, 0, 0, 1);
padding-right: 3px;
}
/* MEDIA INFO */
#custom-media {
background-color: @main-bg;
padding-left: 8px;
padding-right: 8px;
}
/* OUTPUT DEVICE */
#custom-left6 {
font-size: 11.5pt;
color: @pulseaudio;
background: @main-bg;
margin-bottom: -2px;
text-shadow: -1px 0px 2px rgba(0, 0, 0, 1);
padding-left: 3px;
}
#pulseaudio {
text-shadow: 0px 0px 2px rgba(0, 0, 0, 1);
background: @pulseaudio;
}
/* BRIGHTNESS */
#custom-left7 {
font-size: 11.5pt;
color: @backlight;
background: @pulseaudio;
margin-bottom: -2px;
text-shadow: -1px 0px 2px rgba(0, 0, 0, 1);
padding-left: 2px;
}
#backlight {
text-shadow: 0px 0px 2px rgba(0, 0, 0, 1);
background: @backlight;
}
/* TRAY */
#custom-left8 {
font-size: 11.5pt;
color: @battery;
background: @backlight;
margin-bottom: -2px;
text-shadow: -1px 0px 2px rgba(0, 0, 0, 1);
padding-left: 2px;
}
#tray {
text-shadow: 0px 0px 2px rgba(0, 0, 0, 1);
background: @backlight;
}
#tray > .passive {
-gtk-icon-effect: dim;
}
#tray > .needs-attention {
-gtk-icon-effect: highlight;
background-color: #eb4d4b;
}
/* POWER BUTTON */
#custom-leftin2 {
font-size: 11.5pt;
color: @battery;
background: @main-bg;
margin-bottom: -2px;
}
#custom-power {
color: @main-bg;
background: @power;
text-shadow: 0px 0px 2px rgba(0, 0, 0, 0.6);
border-radius: 20px;
margin-top: 2px;
margin-right: 4px;
margin-bottom: 2px;
padding-left: 10px;
padding-right: 7px;
}
#custom-paddr {
font-size: 11.5pt;
color: @main-bg;
margin-bottom: -2px;
}

theme.css

@define-color bar-bg #00473c;
@define-color main-bg #00473c;
@define-color main-fg #00ebc7;
@define-color wb-act-bg #00ebc7;
@define-color wb-act-fg #00473c;
@define-color wb-hvr-bg #00ebc7;
@define-color wb-hvr-fg #00473c;

Scripts

There are a few scripts necessary for waybar to work. These all go in ~/.config/waybar/scripts:

cpuinfo.sh
#!/usr/bin/env sh
# CPU model
model=$(cat /proc/cpuinfo | grep 'model name' | head -n 1 | awk -F ': ' '{print $2}')
# CPU utilization
utilization=$(top -bn1 | awk '/^%Cpu/ {print 100 - $8}')
# Clock speed
freqlist=$(cat /proc/cpuinfo | grep "cpu MHz" | awk '{ print $4 }')
maxfreq=$(cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq | sed 's/...$//')
frequency=$(echo $freqlist | tr ' ' '\n' | awk "{ sum+=\$1 } END {printf \"%.0f/$maxfreq MHz\", sum/NR}")
# CPU temp
temp=$(sensors | awk '/Package id 0/ {print $4}' | awk -F '[+.]' '{print $2}')
if [ -z "$temp" ]; then
temp=$(sensors | awk '/Tctl/ {print $2}' | tr -d '+°C')
fi
if [ -z "$temp" ]; then
temp="N/A"
fi
# map icons
set_ico="{\"thermo\":{\"0\":\"󱃃\",\"45\":\"󰔏\",\"65\":\"󱃂\",\"85\":\"󰸁\"},\"util\":{\"0\":\"󰾆\",\"30\":\"󰾅\",\"60\":\"󰓅\",\"90\":\"󰀪\"}}"
eval_ico() {
map_ico=$(echo "${set_ico}" | jq -r --arg aky "$1" --argjson avl "$2" '.[$aky] | keys_unsorted | map(tonumber) | map(select(. <= $avl)) | max')
echo "${set_ico}" | jq -r --arg aky "$1" --arg avl "$map_ico" '.[$aky] | .[$avl]'
}
thermo=$(eval_ico thermo $temp)
speedo=$(eval_ico util $utilization)
# Print cpu info (json)
echo "{\"text\":\"${thermo} ${temp}°C\", \"tooltip\":\"${model}\n${thermo} Temperature: ${temp}°C\n${speedo} Utilization: ${utilization}%\n󰘚 Clock Speed: ${frequency}\"}"
mediaplayer.py
#!/usr/bin/env python3
import gi
gi.require_version("Playerctl", "2.0")
from gi.repository import Playerctl, GLib
from gi.repository.Playerctl import Player
import argparse
import logging
import sys
import signal
import gi
import json
import os
from typing import List
logger = logging.getLogger(__name__)
def signal_handler(sig, frame):
logger.info("Received signal to stop, exiting")
sys.stdout.write("\n")
sys.stdout.flush()
# loop.quit()
sys.exit(0)
class PlayerManager:
def __init__(self, selected_player=None, excluded_player=[]):
self.manager = Playerctl.PlayerManager()
self.loop = GLib.MainLoop()
self.manager.connect(
"name-appeared", lambda *args: self.on_player_appeared(*args))
self.manager.connect(
"player-vanished", lambda *args: self.on_player_vanished(*args))
signal.signal(signal.SIGINT, signal_handler)
signal.signal(signal.SIGTERM, signal_handler)
signal.signal(signal.SIGPIPE, signal.SIG_DFL)
self.selected_player = selected_player
self.excluded_player = excluded_player.split(',') if excluded_player else []
self.init_players()
def init_players(self):
for player in self.manager.props.player_names:
if player.name in self.excluded_player:
continue
if self.selected_player is not None and self.selected_player != player.name:
logger.debug(f"{player.name} is not the filtered player, skipping it")
continue
self.init_player(player)
def run(self):
logger.info("Starting main loop")
self.loop.run()
def init_player(self, player):
logger.info(f"Initialize new player: {player.name}")
player = Playerctl.Player.new_from_name(player)
player.connect("playback-status",
self.on_playback_status_changed, None)
player.connect("metadata", self.on_metadata_changed, None)
self.manager.manage_player(player)
self.on_metadata_changed(player, player.props.metadata)
def get_players(self) -> List[Player]:
return self.manager.props.players
def write_output(self, text, player):
logger.debug(f"Writing output: {text}")
output = {"text": text,
"class": "custom-" + player.props.player_name,
"alt": player.props.player_name}
sys.stdout.write(json.dumps(output) + "\n")
sys.stdout.flush()
def clear_output(self):
sys.stdout.write("\n")
sys.stdout.flush()
def on_playback_status_changed(self, player, status, _=None):
logger.debug(f"Playback status changed for player {player.props.player_name}: {status}")
self.on_metadata_changed(player, player.props.metadata)
def get_first_playing_player(self):
players = self.get_players()
logger.debug(f"Getting first playing player from {len(players)} players")
if len(players) > 0:
# if any are playing, show the first one that is playing
# reverse order, so that the most recently added ones are preferred
for player in players[::-1]:
if player.props.status == "Playing":
return player
# if none are playing, show the first one
return players[0]
else:
logger.debug("No players found")
return None
def show_most_important_player(self):
logger.debug("Showing most important player")
# show the currently playing player
# or else show the first paused player
# or else show nothing
current_player = self.get_first_playing_player()
if current_player is not None:
self.on_metadata_changed(current_player, current_player.props.metadata)
else:
self.clear_output()
def on_metadata_changed(self, player, metadata, _=None):
logger.debug(f"Metadata changed for player {player.props.player_name}")
player_name = player.props.player_name
artist = player.get_artist()
title = player.get_title()
title = title.replace("&", "&amp;")
track_info = ""
if player_name == "spotify" and "mpris:trackid" in metadata.keys() and ":ad:" in player.props.metadata["mpris:trackid"]:
track_info = "Advertisement"
elif artist is not None and title is not None:
track_info = f"{artist} - {title}"
else:
track_info = title
if track_info:
if player.props.status == "Playing" and player_name == "spotify":
track_info = "󰓇 " + track_info
if player.props.status == "Playing" and player_name == "firefox":
track_info = "󰗃 " + track_info
elif player.props.status != "Playing":
track_info = "󰏦 " + track_info
# only print output if no other player is playing
current_playing = self.get_first_playing_player()
if current_playing is None or current_playing.props.player_name == player.props.player_name:
self.write_output(track_info, player)
else:
logger.debug(f"Other player {current_playing.props.player_name} is playing, skipping")
def on_player_appeared(self, _, player):
logger.info(f"Player has appeared: {player.name}")
if player.name in self.excluded_player:
logger.debug(
"New player appeared, but it's in exclude player list, skipping")
return
if player is not None and (self.selected_player is None or player.name == self.selected_player):
self.init_player(player)
else:
logger.debug(
"New player appeared, but it's not the selected player, skipping")
def on_player_vanished(self, _, player):
logger.info(f"Player {player.props.player_name} has vanished")
self.show_most_important_player()
def parse_arguments():
parser = argparse.ArgumentParser()
# Increase verbosity with every occurrence of -v
parser.add_argument("-v", "--verbose", action="count", default=0)
parser.add_argument("-x", "--exclude", "- Comma-separated list of excluded player")
# Define for which player we"re listening
parser.add_argument("--player")
parser.add_argument("--enable-logging", action="store_true")
return parser.parse_args()
def main():
arguments = parse_arguments()
# Initialize logging
if arguments.enable_logging:
logfile = os.path.join(os.path.dirname(
os.path.realpath(__file__)), "media-player.log")
logging.basicConfig(filename=logfile, level=logging.DEBUG,
format="%(asctime)s %(name)s %(levelname)s:%(lineno)d %(message)s")
# Logging is set by default to WARN and higher.
# With every occurrence of -v it's lowered by one
logger.setLevel(max((3 - arguments.verbose) * 10, 0))
logger.info("Creating player manager")
if arguments.player:
logger.info(f"Filtering for player: {arguments.player}")
if arguments.exclude:
logger.info(f"Exclude player {arguments.exclude}")
player = PlayerManager(arguments.player, arguments.exclude)
player.run()
if __name__ == "__main__":
main()
network-menu.sh
#!/bin/bash
# Ensure nmcli is installed
if ! command -v nmcli &> /dev/null
then
echo "nmcli could not be found"
exit 1
fi
# Get the list of available wired connections
connections=$(nmcli -f NAME,TYPE connection show | grep ethernet | awk '{print $1}')
# If no connections are found, exit
if [ -z "$connections" ]; then
echo "No wired connections found"
exit 1
fi
# Show connections in a menu using rofi
selected=$(echo "$connections" | wofi -dmenu -i -p "Select Wired Connection")
# If a connection was selected, activate it
if [ -n "$selected" ]; then
nmcli connection up "$selected"
fi
network-status.sh
#!/bin/bash
# Get the name of the active Ethernet connection
connection=$(nmcli -t -f NAME,TYPE,STATE connection show --active | awk -F: '/ethernet:activated/ {print $1}')
# If no active Ethernet connection is found, check if any Ethernet interface is connected
if [ -z "$connection" ]; then
interface=$(nmcli -t -f DEVICE,TYPE,STATE device status | awk -F: '/ethernet:connected/ {print $1}')
if [ -n "$interface" ]; then
connection="Connected (Unconfigured)"
else
connection="No Connection"
fi
fi
# Output the connection name or status
echo "${connection}"

3.7 Alacritty

This one goes in ~/.config/alacritty/alacritty.toml.

# Primary colors
[colors.primary]
background = '#00332b'
foreground = '#00ffd9'
# Colors used for 'custom_cursor_colors'
[colors.cursor]
text = '#00ffd9'
cursor = '#00ffd9'
# Colors 0 through 7
[colors.normal]
black = '#337167'
red = '#a87a9a'
green = '#5da286'
yellow = '#9e9e57'
blue = '#58699d'
magenta = '#9b4b9b'
cyan = '#006151'
white = '#5dc6b6'
# Colors 8 through 15
[colors.bright]
black = '#64d3c1'
red = '#ffb8ea'
green = '#8af0c7'
yellow = '#fdfd86'
blue = '#8aa4f5'
magenta = '#ff7aff'
cyan = '#00ffd5'
white = '#00ffd9'

4. Code Editor

Naomi uses VSCode as her current code editor.

4.1. Settings

This is Naomi’s settings.json file.

{
"workbench.colorTheme": "Winter is Coming (Dark Blue)",
"workbench.iconTheme": "vscode-great-icons",
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[json]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[jsonc]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescriptreact]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"javascript.preferences.importModuleSpecifierEnding": "js",
"javascript.updateImportsOnFileMove.enabled": "always",
"typescript.preferences.importModuleSpecifierEnding": "js",
"typescript.preferences.preferTypeOnlyAutoImports": true,
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"typescript.updateImportsOnFileMove.enabled": "always",
"powermode.presets": "exploding-rift",
"powermode.combo.location": "statusbar",
"powermode.combo.counterEnabled": "show",
"powermode.combo.timeout": 60,
"powermode.combo.timerEnabled": "show",
"powermode.explosions.frequency": 1,
"powermode.enabled": true,
"powermode.shake.enabled": false,
"[html]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"editor.fontFamily": "'Fira Code 11'",
"files.exclude": {
"**/node_modules/": true
},
"editor.fontLigatures": true,
"editor.codeLensFontFamily": "'Fira Code 11'",
"editor.inlineSuggest.fontFamily": "'Fira Code 11'",
"editor.inlayHints.fontFamily": "'Fira Code 11'",
"editor.experimentalInlineEdit.fontFamily": "'Fira Code 11'",
"terminal.integrated.fontFamily": "'Fira Code 11'",
"notebook.output.fontFamily": "'Fira Code 11'",
"chat.editor.fontFamily": "'Fira Code 11'",
"markdown.preview.fontFamily": "'Fira Code 11'",
"vscode-pets.petSize": "medium",
"vscode-pets.position": "explorer",
"vscode-pets.petColor": "black",
"vscode-pets.theme": "forest",
"colorize.languages": [
"html",
"javascript",
"typescript",
"json",
"typescriptreact",
"css",
"sass",
"scss",
"less",
"postcss",
"sss",
"stylus",
"xml",
"svg"
],
"cSpell.language": "en-GB"
}

4.2. Extensions

This is Naomi’s current list of extensions. This is generated with codium --list-extensions.

1password.op-vscode
aaron-bond.better-comments
adpyke.codesnap
astro-build.astro-vscode
bungcip.better-toml
camilamartinezbedoya.pro-hacker-theme
dbaeumer.vscode-eslint
donjayamanne.githistory
eamodio.gitlens
emmanuelbeziat.vscode-great-icons
esbenp.prettier-vscode
github.copilot
hoovercj.vscode-power-mode
icrawl.discord-vscode
johnpapa.winteriscoming
jzmstrjp.color-the-tag-name
markwylde.vscode-filesize
oderwat.indent-rainbow
pranaygp.vscode-css-peek
prisma.prisma
ruby0b.pride-themes
streetsidesoftware.code-spell-checker
tonybaloney.vscode-pets
usernamehw.errorlens
wix.vscode-import-cost
yandeu.five-server
yoavbls.pretty-ts-errors
yutengjing.vscode-colorize-plus
yzane.markdown-pdf