Install everyday desktop apps and NetBird

This commit is contained in:
SirBlob committed 2026-09-24 11:45:01 -04:00
1 parent ce2fb8c8b6
commit dacc3599f3
10 files changed
+81 -13

No files matched your search

+1 -1
View File
@@ -78,7 +78,7 @@ It runs these steps, in this order, and every one of them is idempotent:
| 1. Directories | creates the 19 directories the shell and scripts expect, before anything writes into them | | 1. Directories | creates the 19 directories the shell and scripts expect, before anything writes into them |
| 2. `BLOB_PATH` | symlinks `~/.local/share/blob` to this checkout | | 2. `BLOB_PATH` | symlinks `~/.local/share/blob` to this checkout |
| 3. Packages | installs what is missing from `packages/`, bootstrapping `yay` first on a machine that has no AUR helper | | 3. Packages | installs what is missing from `packages/`, bootstrapping `yay` first on a machine that has no AUR helper |
| 4. Config | copies `hypr/`, the themed app configs, `blob/shell.json`, and the uwsm environment into `~/.config`, sets the default apps for images, video, PDFs and office files, and writes `/etc/profile.d/blob.sh` so a login shell finds the `blob` command | | 4. Config | copies `hypr/`, the themed app configs, `blob/shell.json`, and the uwsm environment into `~/.config`, sets the default apps for images, video, PDFs, office files, text and archives, and writes `/etc/profile.d/blob.sh` so a login shell finds the `blob` command |
| 5. First theme | links `~/wallpapers` to the checkout, applies `flats` headless, picks a background, and links the btop and Neovim theme files, so the first login is not a blank desktop | | 5. First theme | links `~/wallpapers` to the checkout, applies `flats` headless, picks a background, and links the btop and Neovim theme files, so the first login is not a blank desktop |
| 6. User units | installs the session services into `~/.config/systemd/user` and enables them | | 6. User units | installs the session services into `~/.config/systemd/user` and enables them |
| 7. systemd drop-ins | writes the shutdown timeouts, oomd thresholds, plocate prune paths, and sleep hooks under `/etc` | | 7. systemd drop-ins | writes the shutdown timeouts, oomd thresholds, plocate prune paths, and sleep hooks under `/etc` |
+2 -2
View File
@@ -35,13 +35,13 @@ o.window("org.blob.screensaver", { animation = "slide" })
-- No transparency on media windows. -- No transparency on media windows.
o.window( o.window(
"^(zoom|vlc|mpv|org.kde.kdenlive|com.obsproject.Studio|com.github.PintaProject.Pinta|imv|org.gnome.NautilusPreviewer)$", "^(zoom|vlc|mpv|org.kde.kdenlive|com.obsproject.Studio|com.github.PintaProject.Pinta|imv|org.gnome.Loupe|guvcview|org.gnome.NautilusPreviewer)$",
{ {
tag = "-default-opacity", tag = "-default-opacity",
} }
) )
o.window( o.window(
"^(zoom|vlc|mpv|org.kde.kdenlive|com.obsproject.Studio|com.github.PintaProject.Pinta|imv|org.gnome.NautilusPreviewer)$", "^(zoom|vlc|mpv|org.kde.kdenlive|com.obsproject.Studio|com.github.PintaProject.Pinta|imv|org.gnome.Loupe|guvcview|org.gnome.NautilusPreviewer)$",
{ {
opacity = "1 1", opacity = "1 1",
} }
@@ -0,0 +1,3 @@
[Service]
ExecStart=
ExecStart=/usr/bin/netbird service run --log-file /var/log/netbird/client-%i.log --daemon-addr unix:///var/run/netbird.sock $FLAGS
+4 -3
View File
@@ -46,9 +46,10 @@ with `--check`.
panels come up full of blanks. `fonts.conf` binds `monospace` to panels come up full of blanks. `fonts.conf` binds `monospace` to
`JetBrainsMono Nerd Font`; `blob font set` rewrites the same file, and the `JetBrainsMono Nerd Font`; `blob font set` rewrites the same file, and the
installer then reports it as a local change and keeps your choice. installer then reports it as a local change and keeps your choice.
Default applications are set in `~/.config/mimeapps.list`: `imv` for Default applications are set in `~/.config/mimeapps.list`: Loupe for
images, `mpv` for video and audio, `evince` for PDFs, and LibreOffice for images, `mpv` for video and audio, `evince` for PDFs and other documents, LibreOffice for
documents, spreadsheets and presentations. A file type that already has a documents, spreadsheets and presentations, GNOME Text Editor for text, and
File Roller for archives. A file type that already has a
default there is left alone. See [packages.md](packages.md#desktop-applications). default there is left alone. See [packages.md](packages.md#desktop-applications).
`~/.bashrc` gets one line sourcing `session/bashrc`. The line is added once, `~/.bashrc` gets one line sourcing `session/bashrc`. The line is added once,
a `.bak` is kept, and a `~/.bashrc` that already has it is left alone. a `.bak` is kept, and a `~/.bashrc` that already has it is left alone.
+30 -4
View File
@@ -72,8 +72,8 @@ Two are worth knowing about:
`install.sh` installs what is missing before it writes any config: `install.sh` installs what is missing before it writes any config:
``` ```
packages/blob.packages 123 packages from core, extra, multilib packages/blob.packages 147 packages from core, extra, multilib
packages/blob-aur.packages 11 packages with no official equivalent packages/blob-aur.packages 13 packages with no official equivalent
``` ```
Only missing packages are touched, through `pacman -S --needed` and Only missing packages are touched, through `pacman -S --needed` and
@@ -142,11 +142,37 @@ The everyday apps come from the official repositories with everything else:
| Package | Opens | | Package | Opens |
| --- | --- | | --- | --- |
| `imv` | images | | `loupe` | images (GNOME Image Viewer) |
| `imv` | images, keyboard-driven, for scripts and quick previews |
| `mpv` | video and audio | | `mpv` | video and audio |
| `evince` | PDFs | | `evince` | documents: PDF, PostScript, DjVu, XPS and comic books |
| `guvcview` | webcam viewer and capture |
| `libreoffice-fresh` | documents, spreadsheets and presentations (Writer, Calc, Impress) | | `libreoffice-fresh` | documents, spreadsheets and presentations (Writer, Calc, Impress) |
| `kdenlive` | video editing | | `kdenlive` | video editing |
| `gnome-text-editor` | plain text and Markdown |
| `file-roller` | archives (zip, 7z, rar, tar) |
| `gnome-calculator` | calculator |
| `baobab` | disk usage analyzer |
| `gnome-disk-utility` | drives and partitions |
| `gnome-system-monitor` | processes and resources |
| `pavucontrol` | audio mixer |
| `network-manager-applet` | network connections (`nm-connection-editor`) |
`hunspell-en_us` gives LibreOffice spell checking, and `ttf-liberation` gives it
metric-compatible replacements for Arial, Times New Roman and Courier New, so
Microsoft Office documents keep their layout. `7zip`, `unrar` and `zip` are the
archive backends `file-roller` needs.
In the terminal: `btop`, `htop` and `nvtop` for system and GPU monitoring,
`duf` for free disk space, and `ncdu` and `dua` for disk usage.
NetBird comes from the AUR as `netbird-bin` and `netbird-ui-bin`. The package
ships a templated `netbird@.service` whose socket lives at
`/var/run/netbird/<instance>.sock`, while the `netbird` CLI and the tray app
look for `/var/run/netbird.sock`. `install.sh` adds a drop-in that moves the
socket to the default path and enables `netbird@main.service`, so
`netbird up` and the tray app work with no extra flags. The service starts on
the next boot, or now with `sudo systemctl start netbird@main`.
`install.sh` makes them the default for their file types through `xdg-mime`, `install.sh` makes them the default for their file types through `xdg-mime`,
which writes `~/.config/mimeapps.list`. A type that already has a default in which writes `~/.config/mimeapps.list`. A type that already has a default in
+4 -2
View File
@@ -1,12 +1,14 @@
mimeapps_file="$config_dir/mimeapps.list" mimeapps_file="$config_dir/mimeapps.list"
default_app_associations=( default_app_associations=(
"imv.desktop:image/png image/jpeg image/gif image/webp image/bmp image/tiff image/avif image/heif image/svg+xml" "org.gnome.Loupe.desktop:image/png image/jpeg image/gif image/webp image/bmp image/tiff image/avif image/heif image/svg+xml"
"mpv.desktop:video/mp4 video/x-matroska video/webm video/quicktime video/x-msvideo video/mpeg video/ogg audio/mpeg audio/flac audio/ogg audio/x-wav audio/mp4" "mpv.desktop:video/mp4 video/x-matroska video/webm video/quicktime video/x-msvideo video/mpeg video/ogg audio/mpeg audio/flac audio/ogg audio/x-wav audio/mp4"
"org.gnome.Evince.desktop:application/pdf" "org.gnome.Evince.desktop:application/pdf application/postscript image/vnd.djvu application/oxps application/vnd.comicbook+zip application/x-cbz"
"libreoffice-writer.desktop:application/vnd.oasis.opendocument.text application/msword application/vnd.openxmlformats-officedocument.wordprocessingml.document application/rtf" "libreoffice-writer.desktop:application/vnd.oasis.opendocument.text application/msword application/vnd.openxmlformats-officedocument.wordprocessingml.document application/rtf"
"libreoffice-calc.desktop:application/vnd.oasis.opendocument.spreadsheet application/vnd.ms-excel application/vnd.openxmlformats-officedocument.spreadsheetml.sheet text/csv" "libreoffice-calc.desktop:application/vnd.oasis.opendocument.spreadsheet application/vnd.ms-excel application/vnd.openxmlformats-officedocument.spreadsheetml.sheet text/csv"
"libreoffice-impress.desktop:application/vnd.oasis.opendocument.presentation application/vnd.ms-powerpoint application/vnd.openxmlformats-officedocument.presentationml.presentation" "libreoffice-impress.desktop:application/vnd.oasis.opendocument.presentation application/vnd.ms-powerpoint application/vnd.openxmlformats-officedocument.presentationml.presentation"
"org.gnome.TextEditor.desktop:text/plain text/markdown"
"org.gnome.FileRoller.desktop:application/zip application/x-7z-compressed application/vnd.rar application/x-tar application/x-compressed-tar application/gzip application/x-xz application/x-bzip2 application/zstd"
) )
mime_default_chosen() { mime_default_chosen() {
+9
View File
@@ -5,6 +5,7 @@ system_services=(
cups.service cups.service
avahi-daemon.service avahi-daemon.service
docker.socket docker.socket
netbird@main.service
power-profiles-daemon.service power-profiles-daemon.service
systemd-oomd.service systemd-oomd.service
) )
@@ -105,6 +106,14 @@ install_systemd_dropins() {
else else
say "SKIP systemd/plocate-updatedb.service.d/10-blob.conf (plocate not installed)" say "SKIP systemd/plocate-updatedb.service.d/10-blob.conf (plocate not installed)"
fi fi
if system_unit_exists netbird@.service; then
install_root_file "$systemd_dir/system/netbird@.service.d/10-blob.conf" \
/etc/systemd/system/netbird@.service.d/10-blob.conf \
"systemd/netbird@.service.d/10-blob.conf"
else
say "SKIP systemd/netbird@.service.d/10-blob.conf (netbird not installed)"
fi
} }
install_user_units() { install_user_units() {
+4
View File
@@ -26,6 +26,10 @@ yaru-icon-theme
mise-bin mise-bin
ufw-docker ufw-docker
# NetBird mesh VPN: the client daemon and its tray app
netbird-bin|netbird
netbird-ui-bin|netbird-ui
# Only in the Omarchy repository as binaries; these are the AUR sources # Only in the Omarchy repository as binaries; these are the AUR sources
tzupdate tzupdate
localsend localsend
+23 -1
View File
@@ -127,16 +127,34 @@ qrencode
zbar zbar
satty satty
# Media: video and audio player, image viewer, PDF viewer # Media: video and audio player, image viewer, document viewer, webcam viewer
loupe
mpv mpv
mpv-mpris mpv-mpris
imv imv
evince evince
guvcview
# Office and video editing # Office and video editing
libreoffice-fresh libreoffice-fresh
hunspell-en_us
ttf-liberation
kdenlive kdenlive
# Everyday desktop apps: text editor, calculator, archives, disk usage, system monitor, audio mixer
gnome-text-editor
gnome-calculator
file-roller
baobab
gnome-system-monitor
pavucontrol
network-manager-applet
# Archive formats for file-roller and the command line
7zip
unrar
zip
# Default application associations, set by install/steps/apps.sh # Default application associations, set by install/steps/apps.sh
xdg-utils xdg-utils
@@ -166,6 +184,10 @@ jq
starship starship
lazygit lazygit
btop btop
htop
nvtop
duf
ncdu
fastfetch fastfetch
inxi inxi
lua lua
+1
View File
@@ -20,6 +20,7 @@ root_files=(
/etc/systemd/system/user@.service.d/10-blob.conf /etc/systemd/system/user@.service.d/10-blob.conf
/etc/systemd/oomd.conf.d/10-blob.conf /etc/systemd/oomd.conf.d/10-blob.conf
/etc/systemd/system/plocate-updatedb.service.d/10-blob.conf /etc/systemd/system/plocate-updatedb.service.d/10-blob.conf
/etc/systemd/system/netbird@.service.d/10-blob.conf
/etc/systemd/system-sleep/keyboard-backlight /etc/systemd/system-sleep/keyboard-backlight
/etc/systemd/system-sleep/unmount-fuse /etc/systemd/system-sleep/unmount-fuse
) )