diff --git a/home/.chezmoidata.yaml b/home/.chezmoidata.yaml index f01b9af0..628521dc 100644 --- a/home/.chezmoidata.yaml +++ b/home/.chezmoidata.yaml @@ -817,6 +817,7 @@ softwareGroups: _Basic-Desktop: &_Basic-Desktop - *_Basic - *Essentials-Desktop + - stacer _Standard: &_Standard - *_Basic - *Backup diff --git a/home/.chezmoiscripts/linux/run_onchange_before_11-configure-swap.tmpl b/home/.chezmoiscripts/linux/run_onchange_before_11-configure-swap.tmpl index 73276722..11a24034 100644 --- a/home/.chezmoiscripts/linux/run_onchange_before_11-configure-swap.tmpl +++ b/home/.chezmoiscripts/linux/run_onchange_before_11-configure-swap.tmpl @@ -5,9 +5,9 @@ {{ includeTemplate "universal/logg-before" }} if [ ! -f /swapfile ]; then + ### Determine ideal size of /swapfile MEMORY_IN_KB="$(grep MemTotal /proc/meminfo | sed 's/.* \(.*\) kB/\1/')" MEMORY_IN_GB="$((MEMORY_IN_KB / 1024 / 1024))" - if [ "$MEMORY_IN_GB" -gt 64 ]; then SWAP_SPACE="$((MEMORY_IN_GB / 10))" elif [ "$MEMORY_IN_GB" -gt 32 ]; then @@ -17,15 +17,29 @@ if [ ! -f /swapfile ]; then else SWAP_SPACE="$MEMORY_IN_GB" fi - - logg info "Creating a $SWAP_SPACE GB /swapfile" - sudo fallocate -l "${SWAP_SPACE}G" /swapfile - sudo chmod 600 /swapfile - sudo mkswap /swapfile - sudo swapon /swapfile - if cat /etc/fstab | grep "/swapfile"; then - sudo sed -i '/\/swapfile/\/swapfile none swap sw 0 0/' /etc/fstab + + ### Create /swapfile + FS_TYPE="$(df -Th | grep ' /$' | sed 's/[^ ]*\s*\([^ ]*\).*/\1/')" + if [ "$FS_TYPE" == 'btrfs' ]; then + logg info 'Creating BTRFS /swapfile' + sudo btrfs filesystem mkswapfile /swapfile + elif [ "$FS_TYPE" == 'zfs' ]; then + logg warn 'ZFS system detected - add logic here to add /swapfile' else - echo "/swapfile none swap sw 0 0" | sudo tee -a /etc/fstab + logg info "Creating a $SWAP_SPACE GB /swapfile" + sudo fallocate -l "${SWAP_SPACE}G" /swapfile + sudo chmod 600 /swapfile + sudo mkswap /swapfile + fi + + ### Enable the /swapfile + if [ -f /swapfile ]; then + logg info 'Running `sudo swapon /swapfile`' + sudo swapon /swapfile + if cat /etc/fstab | grep "/swapfile"; then + sudo sed -i '/\/swapfile/\/swapfile none swap defaults 0 0/' /etc/fstab + else + echo "/swapfile none swap defaults 0 0" | sudo tee -a /etc/fstab > /dev/null + fi fi fi diff --git a/software.yml b/software.yml index ee020070..6941823e 100644 --- a/software.yml +++ b/software.yml @@ -5863,6 +5863,20 @@ softwarePackages: npm: pnpm-lock-export _service: false _type: cli + stacer: + _bin: stacer + _desc: Popular desktop GUI for monitoring and cleaning Linux systems. + _docs: https://github.com/oguzhaninan/Stacer/blob/native/README.md + _github: https://github.com/oguzhaninan/Stacer + _home: https://oguzhaninan.github.io/Stacer-Web/ + _name: Stacer + appimage: https://github.com/oguzhaninan/Stacer/releases/download/v1.1.0/Stacer-1.1.0-x64.AppImage + apt: https://github.com/oguzhaninan/Stacer/releases/download/v1.1.0/stacer_1.1.0_amd64.deb + apt:debian: stacer + apt:ubuntu: stacer + dnf: https://github.com/oguzhaninan/Stacer/releases/download/v1.1.0/stacer-1.1.0-amd64.rpm + dnf:fedora: stacer + yay: stacer poetry: _bin: poetry _desc: '[Poetry](https://python-poetry.org) helps you declare, manage and install dependencies of Python projects, ensuring you have the right stack everywhere.'