diff --git a/modules/bling/module.yml b/modules/bling/module.yml index 61225a3..d1abba3 100644 --- a/modules/bling/module.yml +++ b/modules/bling/module.yml @@ -5,9 +5,9 @@ typespec: https://raw.githubusercontent.com/blue-build/modules/main/modules/blin example: | type: bling install: - # - ublue-update # https://github.com/ublue-os/ublue-update - # - 1password # install 1Password (stable) and `op` CLI tool - # - dconf-update-service # a service unit that updates the dconf db on boot - # - gnome-vrr # enables gnome-vrr for your image - # - laptop # installs TLP and configures your system for laptop usage - # - flatpaksync # allows synchronization of user-installed flatpaks, see separate documentation section + - ublue-update # https://github.com/ublue-os/ublue-update + - 1password # install 1Password (stable) and `op` CLI tool + - dconf-update-service # a service unit that updates the dconf db on boot + - gnome-vrr # enables gnome-vrr for your image + - laptop # installs TLP and configures your system for laptop usage + - flatpaksync # allows synchronization of user-installed flatpaks, see separate documentation section diff --git a/modules/brew/README.md b/modules/brew/README.md index 061d73e..b653efc 100644 --- a/modules/brew/README.md +++ b/modules/brew/README.md @@ -51,8 +51,6 @@ The brew module installs [Homebrew / Linuxbrew](https://brew.sh/) on your system - `brew-update` runs at the specified time to update Brew to the latest version - `brew-upgrade` runs at the specified time to upgrade Brew packages -## Configuration Options - ### Update The Brew update operation updates the Brew binary to latest version. diff --git a/modules/brew/brew.tsp b/modules/brew/brew.tsp index f938117..6de2e0c 100644 --- a/modules/brew/brew.tsp +++ b/modules/brew/brew.tsp @@ -8,27 +8,35 @@ model BrewModule { */ type: "brew"; - /** Whether to auto-update the Brew binary. */ + /** Whether to auto-update the Brew binary using a systemd service. */ "auto-update"?: boolean = true; - /** Interval between Brew updates. */ + /** Defines how often the Brew update service should run. The string is passed directly to `OnUnitInactiveSec` in systemd timer. (Syntax: ['1d', '6h', '10m']). */ "update-interval"?: string = "6h"; - /** Time delay after boot before first Brew update .*/ + /** Time delay after system boot before the first Brew update runs. The string is passed directly to `OnBootSec` in systemd timer. (Syntax: ['1d', '6h', '10m']). */ "update-wait-after-boot"?: string = "10min"; - /** Wthether to auto-upgrade Brew packages. */ + /** Whether to auto-upgrade all installed Brew packages using a systemd service. */ "auto-upgrade"?: boolean = true; - /** Interval between Brew package upgrades. */ + /** Defines how often the Brew upgrade service should run. The string is passed directly to `OnUnitInactiveSec` in systemd timer. (Syntax: ['1d', '6h', '10m']). */ "upgrade-interval"?: string = "8h"; - /** Time delay after boot before first Brew package upgrade. */ + /** Time delay after system boot before the first Brew package upgrade runs. The string is passed directly to `OnBootSec` in systemd timer. (Syntax: ['1d', '6h', '10m']). */ "upgrade-wait-after-boot"?: string = "30min"; - /** Whether to apply nofile limits (limits for number of open files) for Brew installations. */ + /** Whether to increase nofile limits (limits for number of open files) for Brew installations. + * When set to true, it increases the nofile limits to prevent certain "I/O heavy" Brew packages from failing due to "too many open files" error. + * However, it's important to note that increasing nofile limits can have potential security implications for malicious applications which would try to abuse storage I/O. + * Defaults to false for security purposes. + * + * https://serverfault.com/questions/577437/what-is-the-impact-of-increasing-nofile-limits-in-etc-security-limits-conf + */ "nofile-limits"?: boolean = false; - /** Whether to enable Brew analytics. */ + /** Whether to enable Brew analytics. + * The Homebrew project uses analytics to anonymously collect the information about Brew usage & your system in order to improve the experience of Brew users. + */ "brew-analytics"?: boolean = true; } \ No newline at end of file diff --git a/modules/brew/module.yml b/modules/brew/module.yml index e793ad9..5c6002f 100644 --- a/modules/brew/module.yml +++ b/modules/brew/module.yml @@ -4,19 +4,5 @@ readme: https://raw.githubusercontent.com/blue-build/modules/main/modules/brew/R typespec: https://raw.githubusercontent.com/blue-build/modules/main/modules/brew/brew.tsp example: | type: brew - # Auto-update Brew binary - auto-update: true # Optional - Default: true - Expects type: boolean - # Interval between Brew updates - update-interval: '6h' # Optional - Default: '6h' - Expects type: string - # Time delay after boot before first Brew update - update-wait-after-boot: '10min' # Optional - Default: '10min' - Expects type: string - # Auto-upgrade Brew packages - auto-upgrade: true # Optional - Default: true - Expects type: boolean - # Interval between Brew package upgrades - upgrade-interval: '8h' # Optional - Default: '8h' - Expects type: string - # Time delay after boot before first Brew upgrade - upgrade-wait-after-boot: '30min' # Optional - Default: '30min' - Expects type: string - # Apply nofile limits for Brew installations - nofile-limits: false # Optional - Default: false - Expects type: boolean - # Control Brew analytics - brew-analytics: true # Optional - Default: true - Expects type: boolean + nofile-limits: true # increase nofile limits + brew-analytics: false # disable telemetry diff --git a/modules/chezmoi/module.yml b/modules/chezmoi/module.yml index d9f8702..299af96 100644 --- a/modules/chezmoi/module.yml +++ b/modules/chezmoi/module.yml @@ -4,18 +4,7 @@ readme: https://raw.githubusercontent.com/blue-build/modules/main/modules/chezmo typespec: https://raw.githubusercontent.com/blue-build/modules/main/modules/chezmoi/chezmoi.tsp example: | type: chezmoi - # Git repository to initialize - repository: "https://example.org/user/dotfiles" # Required - Default: n/a - Expects type: string - # Whether to enable the modules services globally for all users, if false users need to enable services manually - all-users: true # Optional - Default: true - Expects type: boolean - # Dotfiles will be updated with this interval - run-every: '1d' # Optional - Default: '1d' - Expects type: string - # Dotfile updates will wait this long after a boot before running - wait-after-boot: '5m' # Optional - Default: '5m' - Expects type: string - # Disable the service that initializes `repository` on users that are logged in or have linger enabled - disable-init: false # Optional - Default: false - Expects type: boolean - # Disable the timer that updates chezmoi with the interval set above - disable-update: false # Optional - Default: false - Expects type: boolean - # What to do when file different that exists on your repo is has been changed or exists locally. Accepts "skip" or "replace" - file-conflict-policy: "skip" # Optional - Default: "skip" - Expects type: string + repository: "https://github.com/octocat/dotfiles" # my dotfiles repo + all-users: false # make users have to enable chezmoi manually + file-conflict-policy: replace # override changed files with those from the repo diff --git a/modules/rpm-ostree/module.yml b/modules/rpm-ostree/module.yml index 780d6dc..2771ab0 100644 --- a/modules/rpm-ostree/module.yml +++ b/modules/rpm-ostree/module.yml @@ -6,13 +6,15 @@ example: | type: rpm-ostree repos: - https://copr.fedorainfracloud.org/coprs/atim/starship/repo/fedora-%OS_VERSION%/atim-starship-fedora-%OS_VERSION%.repo # when including COPR repos, use the %OS_VERSION% magic string - - https://pkgs.tailscale.com/stable/fedora/tailscale.repo - https://brave-browser-rpm-release.s3.brave.com/brave-browser.repo keys: - https://brave-browser-rpm-release.s3.brave.com/brave-core.asc + optfix: + - Tabby # needed because tabby installs into /opt/Tabby install: - - python3-pip - - libadwaita + - starship + - brave-browser + - https://github.com/Eugeny/tabby/releases/download/v1.0.209/tabby-1.0.209-linux-x64.rpm remove: - firefox - firefox-langpacks @@ -21,8 +23,4 @@ example: | packages: - mutter - mutter-common - - gdm - - from-repo: https://copr.fedorainfracloud.org/coprs/owner/repository2/repo/fedora-%OS_VERSION%/owner-repository2-fedora-%OS_VERSION%.repo - packages: - - package4 - - package5 + - gdm \ No newline at end of file diff --git a/modules/rpm-ostree/rpm-ostree.tsp b/modules/rpm-ostree/rpm-ostree.tsp index 82e87cc..cb5ee2c 100644 --- a/modules/rpm-ostree/rpm-ostree.tsp +++ b/modules/rpm-ostree/rpm-ostree.tsp @@ -14,9 +14,20 @@ model RpmOstreeModule { /** List of links to key files to import for installing from custom repositories. */ keys?: Array; + /** List of folder names under /opt/ to enable for installing into. */ + optfix?: Array; + /** List of RPM packages to install. */ install?: Array; /** List of RPM packages to remove. */ remove?: Array; + + /** List of configurations for `rpm-ostree override replace`ing packages. */ + replace?: Array<{ + /** URL to the source COPR repo for the new packages. */ + "from-repo": string, + /** List of packages to replace using packages from the defined repo. */ + packages: Array, + }>; } \ No newline at end of file diff --git a/modules/systemd/module.yml b/modules/systemd/module.yml index 1e4da37..8cd4cb8 100644 --- a/modules/systemd/module.yml +++ b/modules/systemd/module.yml @@ -4,21 +4,12 @@ readme: https://raw.githubusercontent.com/blue-build/modules/main/modules/system typespec: https://raw.githubusercontent.com/blue-build/modules/main/modules/systemd/systemd.tsp example: | type: systemd + # this example disables automatic flatpak updates and enables a custom service unit for all users system: - enabled: - - example.service # Enabled (runs on system boot) disabled: - - example.target # Disabled (does not run on system boot, unless another unit strictly requires it) - masked: - - example.service # Masked (does not run on system boot, under any circumstances) - unmasked: - - example.service # Unmasked (runs on system boot, even if previously masked) + - flatpak-system-update.timer user: enabled: - - example.timer # Enabled (runs for the users) + - my-custom.service disabled: - - example.service # Disabled (does not run for the users, unless another unit strictly requires it) - masked: - - example.service # Masked (does not run for the users, under any circumstances) - unmasked: - - example.service # Unmasked (runs for the users, even if previously masked) + - flatpak-user-update.timer \ No newline at end of file