From dacc3599f34b90c702a88f74bd7894a804fa571e Mon Sep 17 00:00:00 2001 From: SirBlobby Date: Thu, 24 Sep 2026 11:45:01 -0400 Subject: [PATCH] Install everyday desktop apps and NetBird --- README.md | 2 +- default/hypr/apps/system.lua | 4 +-- .../system/netbird@.service.d/10-blob.conf | 3 ++ docs/install.md | 7 ++-- docs/packages.md | 34 ++++++++++++++++--- install/steps/apps.sh | 6 ++-- install/steps/services.sh | 9 +++++ packages/blob-aur.packages | 4 +++ packages/blob.packages | 24 ++++++++++++- uninstall.sh | 1 + 10 files changed, 81 insertions(+), 13 deletions(-) create mode 100644 default/systemd/system/netbird@.service.d/10-blob.conf diff --git a/README.md b/README.md index cd1c5b2..075ab14 100644 --- a/README.md +++ b/README.md @@ -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 | | 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 | -| 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 | | 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` | diff --git a/default/hypr/apps/system.lua b/default/hypr/apps/system.lua index ff4b728..3f3cf2c 100644 --- a/default/hypr/apps/system.lua +++ b/default/hypr/apps/system.lua @@ -35,13 +35,13 @@ o.window("org.blob.screensaver", { animation = "slide" }) -- No transparency on media windows. 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", } ) 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", } diff --git a/default/systemd/system/netbird@.service.d/10-blob.conf b/default/systemd/system/netbird@.service.d/10-blob.conf new file mode 100644 index 0000000..3364886 --- /dev/null +++ b/default/systemd/system/netbird@.service.d/10-blob.conf @@ -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 diff --git a/docs/install.md b/docs/install.md index d16e041..fe59c3d 100644 --- a/docs/install.md +++ b/docs/install.md @@ -46,9 +46,10 @@ with `--check`. panels come up full of blanks. `fonts.conf` binds `monospace` to `JetBrainsMono Nerd Font`; `blob font set` rewrites the same file, and the installer then reports it as a local change and keeps your choice. - Default applications are set in `~/.config/mimeapps.list`: `imv` for - images, `mpv` for video and audio, `evince` for PDFs, and LibreOffice for - documents, spreadsheets and presentations. A file type that already has a + Default applications are set in `~/.config/mimeapps.list`: Loupe for + images, `mpv` for video and audio, `evince` for PDFs and other documents, LibreOffice for + 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). `~/.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. diff --git a/docs/packages.md b/docs/packages.md index aae7d1a..1e5019e 100644 --- a/docs/packages.md +++ b/docs/packages.md @@ -72,8 +72,8 @@ Two are worth knowing about: `install.sh` installs what is missing before it writes any config: ``` -packages/blob.packages 123 packages from core, extra, multilib -packages/blob-aur.packages 11 packages with no official equivalent +packages/blob.packages 147 packages from core, extra, multilib +packages/blob-aur.packages 13 packages with no official equivalent ``` 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 | | --- | --- | -| `imv` | images | +| `loupe` | images (GNOME Image Viewer) | +| `imv` | images, keyboard-driven, for scripts and quick previews | | `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) | | `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/.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`, which writes `~/.config/mimeapps.list`. A type that already has a default in diff --git a/install/steps/apps.sh b/install/steps/apps.sh index a0e31be..14c6de6 100644 --- a/install/steps/apps.sh +++ b/install/steps/apps.sh @@ -1,12 +1,14 @@ mimeapps_file="$config_dir/mimeapps.list" 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" - "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-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" + "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() { diff --git a/install/steps/services.sh b/install/steps/services.sh index f3b5149..2820091 100644 --- a/install/steps/services.sh +++ b/install/steps/services.sh @@ -5,6 +5,7 @@ system_services=( cups.service avahi-daemon.service docker.socket + netbird@main.service power-profiles-daemon.service systemd-oomd.service ) @@ -105,6 +106,14 @@ install_systemd_dropins() { else say "SKIP systemd/plocate-updatedb.service.d/10-blob.conf (plocate not installed)" 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() { diff --git a/packages/blob-aur.packages b/packages/blob-aur.packages index 6ddd777..ffc6af4 100644 --- a/packages/blob-aur.packages +++ b/packages/blob-aur.packages @@ -26,6 +26,10 @@ yaru-icon-theme mise-bin 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 tzupdate localsend diff --git a/packages/blob.packages b/packages/blob.packages index d240e69..188ad70 100644 --- a/packages/blob.packages +++ b/packages/blob.packages @@ -127,16 +127,34 @@ qrencode zbar satty -# Media: video and audio player, image viewer, PDF viewer +# Media: video and audio player, image viewer, document viewer, webcam viewer +loupe mpv mpv-mpris imv evince +guvcview # Office and video editing libreoffice-fresh +hunspell-en_us +ttf-liberation 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 xdg-utils @@ -166,6 +184,10 @@ jq starship lazygit btop +htop +nvtop +duf +ncdu fastfetch inxi lua diff --git a/uninstall.sh b/uninstall.sh index fca996a..2adec81 100755 --- a/uninstall.sh +++ b/uninstall.sh @@ -20,6 +20,7 @@ root_files=( /etc/systemd/system/user@.service.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/netbird@.service.d/10-blob.conf /etc/systemd/system-sleep/keyboard-backlight /etc/systemd/system-sleep/unmount-fuse )