generated from nhcarrigan/template
3115 lines
71 KiB
Markdown
3115 lines
71 KiB
Markdown
# Development Environment
|
|
|
|
**Effective 14 July 2024**
|
|
|
|
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`.
|
|
|
|
<details>
|
|
<summary>Expand Information</summary>
|
|
|
|
```bash
|
|
naomi@technomancer
|
|
-` ------------------
|
|
.o+` OS: Arch Linux x86_64
|
|
`ooo/ Host: MS-7B86 4.0
|
|
`+oooo: Kernel: 6.10.3-arch1-2
|
|
`+oooooo: Uptime: 1 hour, 36 mins
|
|
-+oooooo+: Packages: 2 (npm), 1147 (pacman), 33 (steam)
|
|
`/:-:++oooo+: Shell: zsh 5.9
|
|
`/++++/+++++++: Resolution: 1920x1080, 3840x2160, 1920x1080, 1024x768
|
|
`/++++++++++++++: WM: Hyprland
|
|
`/+++ooooooooooooo/` Theme: Adwaita [GTK2/3]
|
|
./ooosssso++osssssso+` Icons: Adwaita [GTK2/3]
|
|
.oossssso-````/ossssss+` Cursor: Adwaita [GTK3]
|
|
-osssssso. :ssssssso. Terminal: alacritty
|
|
:osssssss/ osssso+++. CPU: AMD Ryzen 5 3600X (12) @ 3.8GHz
|
|
/ossssssss/ +ssssooo/- GPU: NVIDIA GeForce GTX 1070 Ti
|
|
`/ossssso+/:- -:/+osssso+- Memory: 4.53 GiB / 31.29 GiB (14%)
|
|
`+sso+:-` `.-/+oso: Network: 1 Gbps
|
|
`++:. `-/+/ BIOS: American Megatrends Inc. 5.14 (11/07/2019)
|
|
.` `/
|
|
```
|
|
|
|
</details>
|
|
|
|
### 1.2. Steam
|
|
|
|
This is the current system report from Steam.
|
|
|
|
<details>
|
|
<summary>Expand Information</summary>
|
|
|
|
```txt
|
|
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.3-arch1-2
|
|
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 555.58.02
|
|
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: 118179 MB
|
|
Storage:
|
|
Number of SSDs: 1
|
|
SSD sizes: 500G
|
|
Number of HDDs: 0
|
|
Number of removable drives: 0
|
|
```
|
|
|
|
</details>
|
|
|
|
## 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`.
|
|
|
|
<details>
|
|
<summary>Expand List</summary>
|
|
|
|
```txt
|
|
1password-cli 2.30.0-1
|
|
7kaa-debug 2.15.6-1
|
|
aws-cli-v2-bin 2:2.17.27-1
|
|
brogue-ce-debug 1.14-1
|
|
cbonsai 1.3.1-3
|
|
cbonsai-debug 1.3.1-3
|
|
cytopia-git-debug r2844.58709a23-1
|
|
doas-debug 6.3p6-1
|
|
dosbox-x-debug 2024.07.01-1
|
|
dreamweb 1.1-1
|
|
electron25-bin 25.9.8-2
|
|
electron25-bin-debug 25.9.8-2
|
|
flyctl 0.2.111-1
|
|
flyctl-debug 0.2.111-1
|
|
gargoyle 2023.1-2
|
|
gargoyle-debug 2023.1-2
|
|
gearhead-debug 1.310-1
|
|
gearhead2-debug 0.701-1
|
|
google-chat-linux 5.29.23_1-4
|
|
gwenview-no-purpose 24.05.2-1
|
|
gwenview-no-purpose-debug 24.05.2-1
|
|
hyperrogue 13.0-1
|
|
hyperrogue-debug 13.0-1
|
|
infra-arcana-debug 22.1.0-2
|
|
insomnium 0.2.3_a-8
|
|
libajantv2-debug 1:17.0.1-1
|
|
libelectron 1.0.25-1
|
|
libelectron-debug 1.0.25-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-1
|
|
mongodb-tools-bin-debug 100.10.0-1
|
|
mongosh-bin 2.2.15-1
|
|
mongosh-bin-debug 2.2.15-1
|
|
mudlet-debug 4.18.3-1
|
|
noto-fonts-emoji-flags 20200120-1
|
|
obs-studio-liberty 30.2.2-1
|
|
obs-studio-liberty-debug 30.2.2-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
|
|
roam 122.0.1.beta001-1
|
|
spicetify-cli-debug 2.36.15-1
|
|
sulis 1.0.0-1
|
|
sulis-debug 1.0.0-1
|
|
swaylock-effects-debug 1.7.0.0-4
|
|
twitter 1.0.5-1
|
|
vscodium-bin 1.92.1.24225-1
|
|
vscodium-bin-debug 1.92.1.24225-1
|
|
wofi-emoji 1.2-3
|
|
yay-debug 12.3.5-1
|
|
```
|
|
|
|
</details>
|
|
|
|
### 2.2. Explicit Installations
|
|
|
|
These are all of the packages Naomi has specifically installed. This list is generated with `yay -Qe`.
|
|
|
|
<details>
|
|
<summary>Expand List</summary>
|
|
|
|
```txt
|
|
1password 8.10.40-31
|
|
1password-cli 2.30.0-1
|
|
act 0.2.65-1
|
|
activitywatch-bin 0.13.1-1
|
|
alacarte 1:3.52.0-2
|
|
alacritty 0.13.2-2
|
|
amd-ucode 20240809.59460076-1
|
|
appimagelauncher 2.2.0-8
|
|
aws-cli-v2-bin 2:2.17.27-1
|
|
base 3-2
|
|
base-devel 1-1
|
|
brave-bin 1:1.68.141-1
|
|
cbonsai 1.3.1-3
|
|
chaotic-keyring 20230616-1
|
|
chaotic-mirrorlist 20240306-1
|
|
cheese 44.1-2
|
|
cloc 2.02-1
|
|
discord 0.0.64-1
|
|
dkms 3.0.12-1
|
|
docker 1:27.1.1-1
|
|
doctl 1.111.0-1
|
|
dolphin 24.05.2-1
|
|
dosbox-x 2024.07.01-1
|
|
dotnet-sdk 8.0.7.sdk107-1
|
|
downgrade 11.3.0-1
|
|
dreamweb 1.1-1
|
|
dunst 1.11.0-1
|
|
efibootmgr 18-3
|
|
emacs 29.4-1
|
|
eza 0.19.0-1
|
|
firefox 129.0.1-2
|
|
flyctl 0.2.111-1
|
|
freetube 0.21.3-1
|
|
gameconqueror 0.17-8
|
|
gargoyle 2023.1-2
|
|
gimp 2.10.38-1
|
|
git 2.46.0-1
|
|
github-cli 2.54.0-1
|
|
google-chat-linux 5.29.23_1-4
|
|
grim 1.4.1-2
|
|
gst-plugin-pipewire 1:1.2.2-1
|
|
gwenview-no-purpose 24.05.2-1
|
|
hexchat 2.16.2-2
|
|
htop 3.3.0-3
|
|
hyfetch 1.4.11-3
|
|
hyperrogue 13.0-1
|
|
hyprland 0.41.2-3
|
|
hyprlock 0.4.1-1
|
|
hyprpaper 0.7.0-2
|
|
hyprshot 1.3.0-1
|
|
icoutils 0.32.3-3
|
|
innoextract 1.9-10
|
|
insomnium 0.2.3_a-8
|
|
iwd 2.19-1
|
|
kitty 0.35.2-1
|
|
libpulse 17.0-3
|
|
libreoffice-fresh 24.2.5-2
|
|
linux 6.10.3.arch1-2
|
|
linux-firmware 20240703.e94a2a3b-1
|
|
linux-headers 6.10.3.arch1-2
|
|
lrzip 0.651-3
|
|
man-db 2.12.1-1
|
|
mesen2-git r3045.10f72135-1
|
|
mongodb-tools-bin 100.10.0-1
|
|
mongosh-bin 2.2.15-1
|
|
nano 8.1-1
|
|
network-manager-applet 1.36.0-1
|
|
networkmanager 1.48.8-1
|
|
nodejs-nativefier 52.0.0-1
|
|
notepadnext 0.8-1
|
|
noto-fonts 1:24.8.1-1
|
|
noto-fonts-cjk 20230817-2
|
|
noto-fonts-emoji 1:2.042-1
|
|
noto-fonts-emoji-flags 20200120-1
|
|
npm-check-updates 16.14.20-1
|
|
nvidia-dkms 555.58.02-1
|
|
nvm 0.40.0-1
|
|
obs-studio-liberty 30.2.2-1
|
|
opendoas 6.8.2-3
|
|
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.2-1
|
|
pipewire-alsa 1:1.2.2-1
|
|
pipewire-jack 1:1.2.2-1
|
|
pipewire-pulse 1:1.2.2-1
|
|
pnpm 9.7.0-1
|
|
pokemon-colorscripts-git r112.0483c85b-2.1
|
|
polkit-gnome 0.105-11
|
|
polkit-kde-agent 6.1.4-1
|
|
proton-mail-bin 1.0.6-1
|
|
python-virtualenv 20.26.2-1
|
|
qt5-wayland 5.15.14+kde+r59-1
|
|
qt6-wayland 6.7.2-4
|
|
roam 122.0.1.beta001-1
|
|
sddm 0.21.0-4
|
|
slack-desktop 4.39.88-1
|
|
slurp 1.5.0-1
|
|
smartmontools 7.4-2
|
|
spicetify-cli 2.37.1-1
|
|
spotify 1:1.2.42.290-1
|
|
steam 1.0.0.79-2
|
|
sulis 1.0.0-1
|
|
swappy 1.5.1-2
|
|
swaylock-effects 1.7.0.0-4
|
|
tailscale 1.70.0-1
|
|
thefuck 3.32-9
|
|
trayscale 0.13.1-1
|
|
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.0672-1
|
|
vscodium-bin 1.92.1.24225-1
|
|
waybar 0.10.4-2
|
|
wev 1.0.0-13
|
|
wget 1.24.5-3
|
|
wine 9.14-1
|
|
wireless_tools 30.pre9-4
|
|
wireplumber 0.5.5-1
|
|
wlogout 1.2.2-0
|
|
wofi 1.4.1-1
|
|
wofi-emoji 1.2-3
|
|
xdg-desktop-portal-hyprland 1.3.3-2
|
|
xdg-utils 1.2.1-1
|
|
xorg-server 21.1.13-1
|
|
xorg-xhost 1.0.9-2
|
|
xorg-xinit 1.4.2-2
|
|
yay 12.3.5-1
|
|
yay-debug 12.3.5-1
|
|
zoom 6.1.6-1
|
|
zsh 5.9-5
|
|
```
|
|
|
|
</details>
|
|
|
|
### 2.3. Pinned Packages
|
|
|
|
These packages have updates ignored, due to incompatibility issues. This list is generated with `grep "^IgnorePkg" /etc/pacman.conf`.
|
|
|
|
```
|
|
IgnorePkg =
|
|
```
|
|
|
|
### 2.4. All Packages
|
|
|
|
This is a complete list of all packages on the machine. This list is generated with `yay -Q`.
|
|
|
|
> [!WARNING]
|
|
> This list is mega chonky.
|
|
|
|
<details>
|
|
<summary>Expand List</summary>
|
|
|
|
```txt
|
|
0ad-data a26-2
|
|
1password 8.10.40-31
|
|
1password-cli 2.30.0-1
|
|
7kaa-debug 2.15.6-1
|
|
a52dec 0.8.0-2
|
|
aalib 1.4rc5-18
|
|
abseil-cpp 20240722.0-1
|
|
acl 2.3.2-1
|
|
act 0.2.65-1
|
|
activitywatch-bin 0.13.1-1
|
|
adobe-source-code-pro-fonts 2.042u+1.062i+1.026vf-2
|
|
adwaita-cursors 46.2-1
|
|
adwaita-icon-theme 46.2-1
|
|
adwaita-icon-theme-legacy 46.2-1
|
|
alacarte 1:3.52.0-2
|
|
alacritty 0.13.2-2
|
|
alsa-card-profiles 1:1.2.2-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 20240809.59460076-1
|
|
aom 3.9.1-1
|
|
appimagelauncher 2.2.0-8
|
|
appstream 1.0.3-1
|
|
aquamarine 0.3.1-1
|
|
archlinux-keyring 20240709-1
|
|
argon2 20190702-6
|
|
aribb24 1.0.3-4
|
|
at-spi2-core 2.52.0-1
|
|
atkmm 2.28.4-1
|
|
attica 6.4.0-1
|
|
attr 2.5.2-1
|
|
audit 4.0.2-1
|
|
autoconf 2.72-1
|
|
automake 1.17-1
|
|
avahi 1:0.8+r194+g3f79789-2
|
|
aws-cli-v2-bin 2:2.17.27-1
|
|
ayatana-ido 0.10.3-1
|
|
babl 0.1.108-1
|
|
baloo 6.4.0-1
|
|
baloo-widgets 24.05.2-1
|
|
base 3-2
|
|
base-devel 1-1
|
|
bash 5.2.032-1
|
|
bc 1.07.1-5
|
|
binutils 2.43+r4+g7999dae6961-1
|
|
bison 3.8.2-6
|
|
blas 3.12.0-5
|
|
bluez-libs 5.77-1
|
|
boost 1.83.0-9
|
|
boost-libs 1.83.0-9
|
|
box2d 2.4.2-1
|
|
brave-bin 1:1.68.141-1
|
|
breeze-icons 6.4.0-1
|
|
bridge-utils 1.7.1-2
|
|
brogue-ce-debug 1.14-1
|
|
brotli 1.1.0-2
|
|
bubblewrap 0.9.0-1
|
|
bzip2 1.0.8-6
|
|
c-ares 1.33.0-1
|
|
ca-certificates 20240618-1
|
|
ca-certificates-mozilla 3.103-1
|
|
ca-certificates-utils 20240618-1
|
|
cairo 1.18.0-2
|
|
cairomm 1.14.5-1
|
|
cairomm-1.16 1.18.0-1
|
|
cantarell-fonts 1:0.303.1-2
|
|
cataclysm-dda 0.G-2
|
|
cbonsai 1.3.1-3
|
|
cbonsai-debug 1.3.1-3
|
|
cdparanoia 10.2-9
|
|
cfitsio 1:4.4.1-1
|
|
chaotic-keyring 20230616-1
|
|
chaotic-mirrorlist 20240306-1
|
|
cheese 44.1-2
|
|
chromaprint 1.5.1-8
|
|
cifs-utils 7.0-4
|
|
cjson 1.7.18-1
|
|
cloc 2.02-1
|
|
clucene 2.3.3.4-15
|
|
clutter 1.26.4-2
|
|
clutter-gst 3.0.27-4
|
|
clutter-gtk 1.8.4-4
|
|
cogl 1.22.8-2
|
|
containerd 1.7.20-1
|
|
convertlit 1.8-12
|
|
coreutils 9.5-1
|
|
crawl-data 0.31.0-3
|
|
cryptsetup 2.7.4-1
|
|
curl 8.9.1-2
|
|
cytopia-git-debug r2844.58709a23-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 2-2
|
|
desktop-file-utils 0.27-1
|
|
device-mapper 2.03.25-2
|
|
diffutils 3.10-1
|
|
discord 0.0.64-1
|
|
dkms 3.0.12-1
|
|
doas-debug 6.3p6-1
|
|
docker 1:27.1.1-1
|
|
doctl 1.111.0-1
|
|
dolphin 24.05.2-1
|
|
dos2unix 7.5.2-2
|
|
dosbox-x 2024.07.01-1
|
|
dosbox-x-debug 2024.07.01-1
|
|
dotnet-host 8.0.7.sdk107-1
|
|
dotnet-runtime 8.0.7.sdk107-1
|
|
dotnet-runtime-6.0 6.0.32.sdk132-1
|
|
dotnet-sdk 8.0.7.sdk107-1
|
|
dotnet-targeting-pack 8.0.7.sdk107-1
|
|
double-conversion 3.3.0-2
|
|
downgrade 11.3.0-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-wayland 3:1.1.13.1-1
|
|
eglexternalplatform 1.1-3
|
|
electron25-bin 25.9.8-2
|
|
electron25-bin-debug 25.9.8-2
|
|
electron29 1:29.4.5-1
|
|
electron31 31.3.1-1
|
|
ell 0.67-1
|
|
emacs 29.4-1
|
|
enet 1.3.18-1
|
|
exiv2 0.28.3-1
|
|
expat 2.6.2-1
|
|
eza 0.19.0-1
|
|
faac 1.30-5
|
|
faad2 2.11.1-1
|
|
fakeroot 1.35-1
|
|
feh 3.10.3-1
|
|
ffmpeg 2:7.0.1-2
|
|
ffmpeg4.4 4.4.4-6
|
|
fftw 3.3.10-7
|
|
file 5.45-1
|
|
filesystem 2024.04.07-1
|
|
findutils 4.10.0-1
|
|
firefox 129.0.1-2
|
|
flac 1.4.3-2
|
|
flare-engine 1.14-1.3
|
|
flex 2.6.4-5
|
|
fluidsynth 2.3.6-1
|
|
flyctl 0.2.111-1
|
|
flyctl-debug 0.2.111-1
|
|
fmt 10.2.0-1
|
|
fontconfig 2:2.15.0-2
|
|
freeglut 3.6.0-1
|
|
freetube 0.21.3-1
|
|
freetype2 2.13.2-2
|
|
frei0r-plugins 2.3.3-2
|
|
fribidi 1.0.15-1
|
|
frotz-ncurses 2.54-1
|
|
fuse-common 3.16.2-1
|
|
fuse2 2.9.9-5
|
|
fuse3 3.16.2-1
|
|
fzf 0.54.3-1
|
|
gameconqueror 0.17-8
|
|
gargoyle 2023.1-2
|
|
gargoyle-debug 2023.1-2
|
|
gawk 5.3.0-1
|
|
gc 8.2.6-1
|
|
gcc 14.2.1+r32+geccf707e5ce-1
|
|
gcc-libs 14.2.1+r32+geccf707e5ce-1
|
|
gcr-4 4.3.0-1
|
|
gd 2.3.3-8
|
|
gdbm 1.24-1
|
|
gdk-pixbuf2 2.42.12-1
|
|
gearhead-debug 1.310-1
|
|
gearhead2-debug 0.701-1
|
|
gegl 0.4.48-4
|
|
geoclue 2.7.1-3
|
|
gettext 0.22.5-1
|
|
giflib 5.2.2-1
|
|
gimp 2.10.38-1
|
|
git 2.46.0-1
|
|
git-lfs 3.5.1-1
|
|
github-cli 2.54.0-1
|
|
glew 2.2.0-7
|
|
glib-networking 1:2.80.0-3
|
|
glib2 2.80.4-1
|
|
glibc 2.40+r16+gaa533d58ff-2
|
|
glibmm 2.66.7-1
|
|
glibmm-2.68 2.80.0-1
|
|
gloox 1.0.27-1
|
|
glslang 14.2.0-1
|
|
glu 9.0.3-2
|
|
gmp 6.3.0-2
|
|
gnome-desktop 1:44.0-1
|
|
gnome-desktop-common 1:44.0-1
|
|
gnome-menus 3.36.0-3
|
|
gnome-video-effects 1:0.6.0-2
|
|
gnu-free-fonts 20120503-8
|
|
gnupg 2.4.5-4
|
|
gnutls 3.8.6-1
|
|
go 2:1.23.0-1
|
|
gobject-introspection 1.80.1-3
|
|
gobject-introspection-runtime 1.80.1-3
|
|
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
|
|
groff 1.23.0-6
|
|
gsettings-desktop-schemas 46.1-2
|
|
gsettings-system-schemas 46.1-2
|
|
gsfonts 20200910-4
|
|
gsm 1.0.22-2
|
|
gssdp 1.6.3-1
|
|
gst-plugin-pipewire 1:1.2.2-1
|
|
gst-plugins-bad 1.24.6-1
|
|
gst-plugins-bad-libs 1.24.6-1
|
|
gst-plugins-base 1.24.6-1
|
|
gst-plugins-base-libs 1.24.6-1
|
|
gst-plugins-good 1.24.6-1
|
|
gstreamer 1.24.6-1
|
|
gtest 1.15.2-1
|
|
gtk-layer-shell 0.8.2-1
|
|
gtk-update-icon-cache 1:4.14.4-2
|
|
gtk2 2.24.33-4
|
|
gtk3 1:3.24.43-1
|
|
gtk4 1:4.14.4-2
|
|
gtkmm-4.0 4.14.0-1
|
|
gtkmm3 3.24.9-1
|
|
guile 3.0.10-1
|
|
gulp 4.0.2-5
|
|
gupnp 1:1.6.6-1
|
|
gupnp-igd 1.6.0-1
|
|
gvfs 1.54.2-1
|
|
gwenview-no-purpose 24.05.2-1
|
|
gwenview-no-purpose-debug 24.05.2-1
|
|
gzip 1.13-4
|
|
harfbuzz 9.0.0-1
|
|
harfbuzz-icu 9.0.0-1
|
|
hexchat 2.16.2-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.385-1
|
|
hyfetch 1.4.11-3
|
|
hyperrogue 13.0-1
|
|
hyperrogue-debug 13.0-1
|
|
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.0-2
|
|
hyprshot 1.3.0-1
|
|
hyprutils 0.2.0-1
|
|
hyprwayland-scanner 0.4.0-1
|
|
iana-etc 20240612-1
|
|
icoutils 0.32.3-3
|
|
icu 75.1-1
|
|
imagemagick 7.1.1.36-1
|
|
imath 3.1.11-2
|
|
imlib2 1.12.3-1
|
|
infra-arcana-debug 22.1.0-2
|
|
innoextract 1.9-10
|
|
insomnium 0.2.3_a-8
|
|
intltool 0.51.0-6
|
|
iproute2 6.10.0-2
|
|
iptables 1:1.8.10-2
|
|
iputils 20240117-1
|
|
iso-codes 4.16.0-1
|
|
iwd 2.19-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.17-2
|
|
json-glib 1.8.0-2
|
|
jsoncpp 1.9.5-3
|
|
karchive 6.4.0-1
|
|
kauth 6.4.0-1
|
|
kbd 2.6.4-1
|
|
kbookmarks 6.4.0-1
|
|
kcmutils 6.4.0-1
|
|
kcodecs 6.4.0-1
|
|
kcolorpicker 0.3.1-4
|
|
kcolorscheme 6.4.0-1
|
|
kcompletion 6.4.0-1
|
|
kconfig 6.4.0-1
|
|
kconfigwidgets 6.4.0-1
|
|
kcoreaddons 6.4.0-1
|
|
kcrash 6.4.0-1
|
|
kdbusaddons 6.4.0-1
|
|
kdnssd 6.4.0-1
|
|
kdsoap-qt6 2.2.0-1
|
|
kdsoap-ws-discovery-client 0.4.0-1
|
|
keyutils 1.6.3-3
|
|
kfilemetadata 6.4.0-1
|
|
kglobalaccel 6.4.0-1
|
|
kguiaddons 6.4.0-1
|
|
ki18n 6.4.0-1
|
|
kiconthemes 6.4.0-1
|
|
kidletime 6.4.0-1
|
|
kimageannotator 0.7.1-3
|
|
kio 6.4.1-1
|
|
kio-extras 24.05.2-1
|
|
kirigami 6.4.0-2
|
|
kitemmodels 6.4.0-1
|
|
kitemviews 6.4.0-1
|
|
kitty 0.35.2-1
|
|
kitty-shell-integration 0.35.2-1
|
|
kitty-terminfo 0.35.2-1
|
|
kjobwidgets 6.4.0-1
|
|
kmod 32-1
|
|
knewstuff 6.4.0-1
|
|
knotifications 6.4.0-1
|
|
kpackage 6.4.0-1
|
|
kparts 6.4.0-1
|
|
krb5 1.21.3-1
|
|
kservice 6.4.0-1
|
|
ktextwidgets 6.4.0-1
|
|
kuserfeedback 6.4.0-1
|
|
kwallet 6.4.0-1
|
|
kwidgetsaddons 6.4.1-1
|
|
kwindowsystem 6.4.0-1
|
|
kxmlgui 6.4.0-1
|
|
l-smash 2.14.5-4
|
|
lame 3.100-5
|
|
lapack 3.12.0-5
|
|
lcms2 2.16-1
|
|
ldb 2:2.9.1-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-3
|
|
lib32-curl 8.9.1-1
|
|
lib32-dbus 1.14.10-2
|
|
lib32-e2fsprogs 1.47.1-1
|
|
lib32-expat 2.6.2-1
|
|
lib32-fontconfig 2:2.15.0-1
|
|
lib32-freetype2 2.13.2-1
|
|
lib32-gcc-libs 14.2.1+r32+geccf707e5ce-1
|
|
lib32-gettext 0.22.5-1
|
|
lib32-glib2 2.80.4-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-libcap 2.70-1
|
|
lib32-libdrm 2.4.122-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.62.1-1
|
|
lib32-libnghttp3 1.4.0-1
|
|
lib32-libnl 3.10.0-1
|
|
lib32-libnsl 2.0.1-1
|
|
lib32-libpcap 1.10.4-1
|
|
lib32-libpciaccess 0.18.1-1
|
|
lib32-libpng 1.6.43-1
|
|
lib32-libpsl 0.21.5-1
|
|
lib32-libssh2 1.11.0-1
|
|
lib32-libtasn1 4.19.0-2
|
|
lib32-libtirpc 1.3.5-1
|
|
lib32-libunistring 1.2-1
|
|
lib32-libunwind 1.8.1-1
|
|
lib32-libx11 1.8.10-1
|
|
lib32-libxau 1.0.11-1
|
|
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-1
|
|
lib32-libxi 1.8.1-1
|
|
lib32-libxkbcommon 1.7.0-2
|
|
lib32-libxml2 2.13.3-1
|
|
lib32-libxrandr 1.5.4-1
|
|
lib32-libxrender 0.9.11-1
|
|
lib32-libxshmfence 1.3.2-1
|
|
lib32-libxss 1.2.4-1
|
|
lib32-libxxf86vm 1.1.5-1
|
|
lib32-llvm-libs 18.1.8-1
|
|
lib32-lm_sensors 1:3.6.0.r41.g31d1f125-2
|
|
lib32-mesa 1:24.1.5-1
|
|
lib32-ncurses 6.5-1
|
|
lib32-nspr 4.35-3
|
|
lib32-nss 3.103-1
|
|
lib32-nvidia-utils 555.58.02-1
|
|
lib32-openssl 1:3.3.1-1
|
|
lib32-p11-kit 0.25.5-1
|
|
lib32-pam 1.6.1-1
|
|
lib32-pcre2 10.44-1
|
|
lib32-sqlite 3.46.0-1
|
|
lib32-systemd 256.4-1
|
|
lib32-util-linux 2.40.2-1
|
|
lib32-vulkan-icd-loader 1.3.279-1
|
|
lib32-wayland 1.23.0-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.5.3-1
|
|
libajantv2-debug 1:17.0.1-1
|
|
libao 1.2.2-6
|
|
libappimage 1.0.4.5-6
|
|
libappindicator-gtk3 12.10.0.r298-4
|
|
libarchive 3.7.4-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-1
|
|
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-1
|
|
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-2
|
|
libcloudproviders 0.3.6-1
|
|
libcmis 0.6.2-1
|
|
libcolord 1.4.7-2
|
|
libcups 2:2.4.10-1
|
|
libcurl-gnutls 8.9.1-2
|
|
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.122-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.25-1
|
|
libelectron-debug 1.0.25-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.2-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.80.1-3
|
|
libgit2 1:1.8.1-1
|
|
libglvnd 1.7.0-1
|
|
libgme 0.6.3-5
|
|
libgpg-error 1.50-1
|
|
libgudev 238-1
|
|
libheif 1.18.2-1
|
|
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-13
|
|
libimobiledevice-glue 1.3.0-1
|
|
libinih 58-1
|
|
libinput 1.26.1-1
|
|
libinstpatch 1.1.6-3
|
|
libisl 0.26-2
|
|
libixion 0.19.0-2
|
|
libjpeg-turbo 3.0.3-1
|
|
libjxl 0.10.3-1
|
|
libkdcraw 24.05.2-1
|
|
libkexiv2 24.05.2-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-1
|
|
libliftoff 0.5.0-1
|
|
liblqr 0.4.2-4
|
|
liblrdf 0.6.1-5
|
|
libltc 1.3.2-2
|
|
libmad 0.15.1b-10
|
|
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.62.1-1
|
|
libnghttp3 1.4.0-1
|
|
libngtcp2 1.6.0-1
|
|
libnice 0.1.22-1
|
|
libnl 3.10.0-1
|
|
libnm 1.48.8-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-2
|
|
libotf 0.9.16-5
|
|
libp11-kit 0.25.5-1
|
|
libpagemaker 0.0.4-4
|
|
libpcap 1.10.4-1
|
|
libpciaccess 0.18.1-2
|
|
libpgm 5.3.128-3
|
|
libpipeline 1.5.7-2
|
|
libpipewire 1:1.2.2-1
|
|
libplacebo 7.349.0-1
|
|
libplist 2.6.0-1
|
|
libpng 1.6.43-1
|
|
libproxy 0.5.8-1
|
|
libpsl 0.21.5-2
|
|
libpulse 17.0-3
|
|
libqxp 0.0.2-12
|
|
libraqm 0.10.1-2
|
|
libraw 0.21.2-1
|
|
libraw1394 2.1.2-4
|
|
libreoffice-fresh 24.2.5-2
|
|
librevenge 0.0.5-3
|
|
librist 0.2.10-3
|
|
librsvg 2:2.58.2-1
|
|
librsync 1:2.3.4-2
|
|
libsamplerate 0.2.2-3
|
|
libsasl 2.1.28-4
|
|
libscanmem 0.17-8
|
|
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
|
|
libsoup3 3.4.4-1
|
|
libsoxr 0.1.3-4
|
|
libspeechd 0.11.5-2
|
|
libspiro 1:20221101-3
|
|
libsrtp 1:2.6.0-1
|
|
libssh 0.11.0-1
|
|
libssh2 1.11.0-1
|
|
libstaroffice 0.0.7-3
|
|
libstemmer 2.2.0-2
|
|
libsysprof-capture 46.0-4
|
|
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.6.0-5
|
|
libtirpc 1.3.5-1
|
|
libtommath 1.3.0-1
|
|
libtool 2.5.1-2
|
|
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.12.0-1
|
|
libvpx 1.14.1-1
|
|
libwacom 2.12.2-1
|
|
libwbclient 4.20.4-1
|
|
libwebp 1.4.0-1
|
|
libwireplumber 0.5.5-1
|
|
libwmf 0.2.13-2
|
|
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
|
|
libxfixes 6.0.1-2
|
|
libxfont2 2.0.7-1
|
|
libxft 2.3.8-2
|
|
libxi 1.8.1-2
|
|
libxinerama 1.1.5-2
|
|
libxkbcommon 1.7.0-2
|
|
libxkbcommon-x11 1.7.0-2
|
|
libxkbfile 1.1.3-1
|
|
libxml2 2.13.3-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
|
|
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.3.arch1-2
|
|
linux-api-headers 6.10-1
|
|
linux-firmware 20240703.e94a2a3b-1
|
|
linux-firmware-whence 20240703.e94a2a3b-1
|
|
linux-headers 6.10.3.arch1-2
|
|
llvm-libs 18.1.8-4
|
|
lm_sensors 1:3.6.0.r41.g31d1f125-3
|
|
lmdb 0.9.32-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.1720049189-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.12.1-1
|
|
mbedtls 3.6.0-1
|
|
mbedtls2 2.28.8-3
|
|
md4c 0.5.2-1
|
|
mdadm 4.3-2
|
|
media-player-info 24-4
|
|
mesa 1:24.1.5-1
|
|
mesen2-git r3045.10f72135-1
|
|
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-1
|
|
mongodb-tools-bin-debug 100.10.0-1
|
|
mongosh-bin 2.2.15-1
|
|
mongosh-bin-debug 2.2.15-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.1-1
|
|
ncurses 6.5-3
|
|
neon 0.33.0-1
|
|
netstandard-targeting-pack 8.0.7.sdk107-1
|
|
nettle 3.10-1
|
|
network-manager-applet 1.36.0-1
|
|
networkmanager 1.48.8-1
|
|
nm-connection-editor 1.36.0-1
|
|
node-gyp 10.2.0-1
|
|
nodejs 22.6.0-1
|
|
nodejs-nativefier 52.0.0-1
|
|
nodejs-nopt 7.2.0-2
|
|
notepadnext 0.8-1
|
|
noto-fonts 1:24.8.1-1
|
|
noto-fonts-cjk 20230817-2
|
|
noto-fonts-emoji 1:2.042-1
|
|
noto-fonts-emoji-flags 20200120-1
|
|
npm 10.8.2-1
|
|
npm-check-updates 16.14.20-1
|
|
npth 1.7-1
|
|
nspr 4.35-3
|
|
nss 3.103-1
|
|
nvidia-dkms 555.58.02-1
|
|
nvidia-utils 555.58.02-1
|
|
nvm 0.40.0-1
|
|
obs-studio-liberty 30.2.2-1
|
|
obs-studio-liberty-debug 30.2.2-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.8p1-1
|
|
openssl 3.3.1-1
|
|
openssl-1.1 1.1.1.w-2
|
|
openstarruler-git-debug r95.c5e3cbb-1
|
|
openxcom-debug 1.0-9
|
|
opus 1.5.2-1
|
|
opusfile 0.12-4
|
|
orc 0.4.39-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 6.1.0-3
|
|
pacman-contrib 1.10.6-1
|
|
pacman-mirrorlist 20240717-1
|
|
pahole 1:1.27-2
|
|
pam 1.6.1-2
|
|
pambase 20230918-1
|
|
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-1
|
|
pcre 8.45-4
|
|
pcre2 10.44-1
|
|
pcsclite 2.3.0-1
|
|
perl 5.38.2-2
|
|
perl-algorithm-diff 1:1.201-5
|
|
perl-class-method-modifiers 2.15-3
|
|
perl-clone 0.46-3
|
|
perl-data-optlist 0.114-3
|
|
perl-devel-globaldestruction 0.14-10
|
|
perl-encode-locale 1.05-12
|
|
perl-error 0.17029-6
|
|
perl-file-listing 6.16-3
|
|
perl-html-parser 3.82-1
|
|
perl-html-tagset 3.24-1
|
|
perl-http-cookiejar 0.014-2
|
|
perl-http-cookies 6.11-1
|
|
perl-http-daemon 6.16-3
|
|
perl-http-date 6.06-2
|
|
perl-http-message 6.46-1
|
|
perl-http-negotiate 6.01-13
|
|
perl-import-into 1.002005-10
|
|
perl-io-html 1.004-5
|
|
perl-libwww 6.77-1
|
|
perl-lwp-mediatypes 6.04-5
|
|
perl-mailtools 2.21-8
|
|
perl-module-runtime 0.016-4
|
|
perl-moo 2.005005-3
|
|
perl-net-http 6.23-3
|
|
perl-parallel-forkmanager 2.02-6
|
|
perl-params-util 1.102-5
|
|
perl-regexp-common 2024080801-1
|
|
perl-role-tiny 2.002004-5
|
|
perl-sub-exporter 0.991-1
|
|
perl-sub-exporter-progressive 0.001013-10
|
|
perl-sub-install 0.929-1
|
|
perl-sub-quote 1:2.006008-3
|
|
perl-timedate 2.33-6
|
|
perl-try-tiny 0.31-4
|
|
perl-uri 5.28-1
|
|
perl-www-robotrules 6.02-13
|
|
perl-xml-parser 2.47-1
|
|
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.2-1
|
|
pipewire-alsa 1:1.2.2-1
|
|
pipewire-audio 1:1.2.2-1
|
|
pipewire-jack 1:1.2.2-1
|
|
pipewire-pulse 1:1.2.2-1
|
|
pixman 0.43.4-1
|
|
pkgconf 2.1.1-1
|
|
plasma-activities 6.1.4-1
|
|
play.it-git 2.29.1.r1.g03ba243f-1
|
|
playerctl 2.4.1-3
|
|
pnpm 9.7.0-1
|
|
pokemon-colorscripts-git r112.0483c85b-2.1
|
|
polkit 125-1
|
|
polkit-gnome 0.105-11
|
|
polkit-kde-agent 6.1.4-1
|
|
polkit-qt6 0.200.0-1
|
|
poppler 24.08.0-1
|
|
poppler-data 0.4.12-2
|
|
poppler-glib 24.08.0-1
|
|
poppler-qt6 24.08.0-1
|
|
popt 1.19-1
|
|
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
|
|
psmisc 23.7-1
|
|
pugixml 1.14-1
|
|
python 3.12.4-1
|
|
python-autocommand 2.2.2-6
|
|
python-cairo 1.26.1-1
|
|
python-colorama 0.4.6-3
|
|
python-decorator 5.1.1-4
|
|
python-distlib 0.3.8-2
|
|
python-distutils-extra 2.39-13
|
|
python-fastjsonschema 2.20.0-1
|
|
python-filelock 3.13.3-2
|
|
python-gobject 3.48.2-2
|
|
python-inflect 7.3.1-1
|
|
python-jaraco.context 5.3.0-1
|
|
python-jaraco.functools 4.0.2-1
|
|
python-jaraco.text 4.0.0-1
|
|
python-mako 1.3.5-1
|
|
python-markdown 3.6-3
|
|
python-markupsafe 2.1.5-2
|
|
python-more-itertools 10.3.0-1
|
|
python-ordered-set 4.1.0-5
|
|
python-packaging 24.1-1
|
|
python-platformdirs 4.2.2-1
|
|
python-psutil 6.0.0-1
|
|
python-pyte 0.8.2-3
|
|
python-setuptools 1:69.5.1-1
|
|
python-six 1.16.0-9
|
|
python-tomli 2.0.1-4
|
|
python-trove-classifiers 2024.7.2-1
|
|
python-typeguard 4.3.0-1
|
|
python-typing_extensions 4.12.2-1
|
|
python-validate-pyproject 0.18-1
|
|
python-virtualenv 20.26.2-1
|
|
python-wcwidth 0.2.13-2
|
|
qca-qt6 2.3.9-2
|
|
qrcodegencpp-cmake 1:1.8.0-3
|
|
qrencode 4.1.1-3
|
|
qt5-base 5.15.14+kde+r143-1
|
|
qt5-declarative 5.15.14+kde+r28-1
|
|
qt5-gamepad 5.15.14-1
|
|
qt5-location 5.15.14+kde+r7-1
|
|
qt5-multimedia 5.15.14+kde+r2-1
|
|
qt5-remoteobjects 5.15.14-1
|
|
qt5-svg 5.15.14+kde+r5-1
|
|
qt5-tools 5.15.14+kde+r4-2
|
|
qt5-translations 5.15.14-1
|
|
qt5-wayland 5.15.14+kde+r59-1
|
|
qt5-webchannel 5.15.14+kde+r3-1
|
|
qt5-webengine 5.15.17-6
|
|
qt5-x11extras 5.15.14-1
|
|
qt6-5compat 6.7.2-1
|
|
qt6-base 6.7.2-1
|
|
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
|
|
redland 1:1.0.17-9
|
|
rnnoise 1:0.2-1
|
|
roam 122.0.1.beta001-1
|
|
rtkit 0.13-3
|
|
rtmpdump 1:2.4.r105.6f6bb13-1
|
|
rubberband 3.3.0-2
|
|
runc 1.1.13-1
|
|
sbc 2.0-2
|
|
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.6-1
|
|
sdl2_image 2.8.2-4
|
|
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.1-1
|
|
shadow 4.16.0-1
|
|
shared-mime-info 2.4-1
|
|
slack-desktop 4.39.88-1
|
|
slang 2.3.3-3
|
|
slurp 1.5.0-1
|
|
smartmontools 7.4-2
|
|
smbclient 4.20.4-1
|
|
snappy 1.1.10-1
|
|
sndio 1.10.0-1
|
|
solid 6.4.0-1
|
|
sonnet 6.4.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-1
|
|
speex 1.2.1-2
|
|
speexdsp 1.2.1-2
|
|
spicetify-cli 2.37.1-1
|
|
spicetify-cli-debug 2.36.15-1
|
|
spirv-tools 2024.2-1
|
|
spotify 1:1.2.42.290-1
|
|
sqlite 3.46.0-1
|
|
squashfuse 0.5.2-1
|
|
sratom 0.6.16-1
|
|
srt 1.5.3-2
|
|
steam 1.0.0.79-2
|
|
sudo 1.9.15.p5-2
|
|
suitesparse 7.7.0-2
|
|
sulis 1.0.0-1
|
|
sulis-debug 1.0.0-1
|
|
svt-av1 2.1.2-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.4.0-1
|
|
syntax-highlighting 6.4.0-1
|
|
systemd 256.4-1
|
|
systemd-libs 256.4-1
|
|
systemd-sysvcompat 256.4-1
|
|
taglib 2.0.1-1
|
|
tailscale 1.70.0-1
|
|
talloc 2.4.2-3
|
|
tar 1.35-2
|
|
tdb 1.4.12-1
|
|
tevent 1:0.16.1-3
|
|
texinfo 7.1-2
|
|
thefuck 3.32-9
|
|
tomlplusplus 3.4.0-1
|
|
tpm2-tss 4.0.1-1
|
|
tracker3 3.7.3-2
|
|
trayscale 0.13.1-1
|
|
tree-sitter 0.22.6-1
|
|
tslib 1.23-1
|
|
ttf-dejavu 2.37+18+g9b5d1b2f-7
|
|
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 2024a-2
|
|
udisks2 2.10.1-4
|
|
unrar 1:7.0.9-1
|
|
unzip 6.0-21
|
|
upower 1.90.4-1
|
|
usbutils 017-1
|
|
util-linux 2.40.2-1
|
|
util-linux-libs 2.40.2-1
|
|
v4l-utils 1.26.1-1
|
|
v4l2loopback-dkms 0.13.2-1
|
|
vapoursynth R69-1
|
|
vi 1:070224-6
|
|
vid.stab 1.1.1-2
|
|
vim 9.1.0672-1
|
|
vim-runtime 9.1.0672-1
|
|
vlc 3.0.21-2
|
|
vmaf 3.0.0-1
|
|
volume_key 0.3.12-9
|
|
vscodium-bin 1.92.1.24225-1
|
|
vscodium-bin-debug 1.92.1.24225-1
|
|
vulkan-headers 1:1.3.285-1
|
|
vulkan-icd-loader 1.3.285-1
|
|
vulkan-tools 1.3.269-1
|
|
vulkan-validation-layers 1.3.275-1
|
|
wavpack 5.7.0-1
|
|
waybar 0.10.4-2
|
|
wayland 1.23.0-1
|
|
wayland-protocols 1.36-1
|
|
webrtc-audio-processing-1 1.3-3
|
|
wev 1.0.0-13
|
|
wget 1.24.5-3
|
|
which 2.21-6
|
|
wildmidi 0.4.6-1
|
|
wine 9.14-1
|
|
wireless_tools 30.pre9-4
|
|
wireplumber 0.5.5-1
|
|
wl-clipboard 1:2.2.1-2
|
|
wlogout 1.2.2-0
|
|
wlroots0.17 0.17.4-3
|
|
wofi 1.4.1-1
|
|
wofi-emoji 1.2-3
|
|
wpa_supplicant 2:2.11-2
|
|
wtype 0.4-2
|
|
wxwidgets-common 3.2.5-1
|
|
wxwidgets-gtk3 3.2.5-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-desktop-portal 1.18.4-1
|
|
xdg-desktop-portal-hyprland 1.3.3-2
|
|
xdg-user-dirs 0.18-2
|
|
xdg-utils 1.2.1-1
|
|
xf86-input-libinput 1.4.0-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-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.3.5-1
|
|
yay-debug 12.3.5-1
|
|
zbar 0.23.93-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.1.6-1
|
|
zsh 5.9-5
|
|
zstd 1.5.6-1
|
|
zvbi 0.2.42-1
|
|
zxing-cpp 2.2.1-1
|
|
zziplib 0.13.78-1
|
|
```
|
|
|
|
</details>
|
|
|
|
## 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.
|
|
|
|
```ini
|
|
[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
|
|
email = commits@nhcarrigan.com
|
|
[core]
|
|
editor = emacs -nw
|
|
[push]
|
|
autoSetupRemote = true
|
|
```
|
|
|
|
### 3.2. `zsh`
|
|
|
|
The zsh config goes in `~/.zshrc`.
|
|
|
|
Naomi uses Oh My ZSH instead of bash.
|
|
|
|
```bash
|
|
# 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
|
|
```
|
|
|
|
### 3.3. `pacman`
|
|
|
|
The pacman config goes in `/etc/pacman.conf`.
|
|
|
|
Naomi's package manager configuration.
|
|
|
|
```ini
|
|
[options]
|
|
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
|
|
```
|
|
|
|
### 3.4. Hexchat
|
|
|
|
Naomi's IRC config, mostly so she doesn't lose it.
|
|
|
|
Her channel list goes in `~/.config/hexchat/servlist.conf`.
|
|
|
|
```shell
|
|
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`.
|
|
|
|
```config
|
|
################
|
|
### 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 = dolphin
|
|
$menu = wofi --show=drun
|
|
|
|
#################
|
|
### 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
|
|
# 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, hyprshot -m region -z --clipboard-only
|
|
|
|
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, wofi-emoji
|
|
|
|
# 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.
|
|
|
|
```sh
|
|
#!/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 brave
|
|
|
|
# Workspace 3
|
|
hyprctl dispatch workspace 3
|
|
launch_app alacritty
|
|
```
|
|
|
|
### 3.6 Waybar
|
|
|
|
These manage Naomi's waybar instance. These are a modification of [MechaBar](https://github.com/Sejjy/MechaBar).
|
|
|
|
All of these files go in `~/.config/waybar`.
|
|
|
|
#### `config.jsonc`
|
|
|
|
```json
|
|
{
|
|
"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"
|
|
},
|
|
|
|
"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
|
|
},
|
|
|
|
"clock#date": {
|
|
"format": " {:%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-right-click": "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`
|
|
|
|
```css
|
|
* {
|
|
border: none;
|
|
font-family: "JetBrainsMono Nerd Font";
|
|
font-weight: bold;
|
|
font-size: 10px;
|
|
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 {
|
|
box-shadow: 0px 0px 2px 1px rgba(0, 0, 0, 1);
|
|
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;
|
|
box-shadow: 0px 0px 2px 1px rgba(0, 0, 0, 1);
|
|
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`
|
|
|
|
```css
|
|
@define-color bar-bg #00473c;
|
|
/* @define-color bar-bg rgba(0, 0, 0, 0); */
|
|
|
|
@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-act-bg #a6adc8; */
|
|
/* @define-color wb-act-fg #313244; */
|
|
|
|
@define-color wb-hvr-bg #00ebc7;
|
|
@define-color wb-hvr-fg #00473c;
|
|
/* @define-color wb-hvr-bg #f5c2e7; */
|
|
/* @define-color wb-hvr-fg #313244; */
|
|
```
|
|
|
|
#### Scripts
|
|
|
|
There are a few scripts necessary for waybar to work. These all go in `~/.config/waybar/scripts`:
|
|
|
|
<details>
|
|
<summary><code>cpuinfo.sh</code></summary>
|
|
|
|
```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}\"}"
|
|
```
|
|
|
|
</details>
|
|
|
|
<details>
|
|
<summary><code>mediaplayer.py</code></summary>
|
|
|
|
```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("&", "&")
|
|
|
|
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()
|
|
```
|
|
|
|
</details>
|
|
|
|
<details>
|
|
<summary><code>network-menu.sh</code></summary>
|
|
|
|
```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
|
|
```
|
|
|
|
</details>
|
|
|
|
<details>
|
|
<summary><code>network-status.sh</code></summary>
|
|
|
|
```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}"
|
|
```
|
|
|
|
</details>
|
|
|
|
### 3.7 Alacritty
|
|
|
|
This one goes in `~/.config/alacritty/alacritty.toml`.
|
|
|
|
```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 VSCodium as her current code editor.
|
|
|
|
### 4.1. Settings
|
|
|
|
This is Naomi's `settings.json` file.
|
|
|
|
```json
|
|
{
|
|
"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"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 4.2. Extensions
|
|
|
|
This is Naomi's current list of extensions. This is generated with `codium --list-extensions`.
|
|
|
|
```txt
|
|
1password.op-vscode
|
|
camilamartinezbedoya.pro-hacker-theme
|
|
dbaeumer.vscode-eslint
|
|
emmanuelbeziat.vscode-great-icons
|
|
esbenp.prettier-vscode
|
|
hoovercj.vscode-power-mode
|
|
icrawl.discord-vscode
|
|
johnpapa.winteriscoming
|
|
prisma.prisma
|
|
ruby0b.pride-themes
|
|
yandeu.five-server
|
|
yoavbls.pretty-ts-errors
|
|
yzane.markdown-pdf
|
|
```
|