use stowhome for config and seperate software installers

This commit is contained in:
Laila van Reenen 2025-08-16 21:00:12 +02:00
parent e992772134
commit 0fecb81b03
Signed by: LailaTheElf
GPG Key ID: 8A3EF0226518C12D
38 changed files with 198 additions and 286 deletions

View File

@ -1,42 +0,0 @@
#!/bin/bash
token="$1"
page=1
project_dir="$HOME/projects"
base_url="https://gitea.finnvanreenen.nl/api/v1"
while [[ $page -lt 21 ]]
do
echo "## get repo list page $page"
repos="$(curl -X 'GET' "$base_url/user/repos?page=$page&token=$token" -H 'accept: application/json')"
login="$(echo "$repos" | sed -e 's/^.*"login":"\([^"]*\)".*$/\1/')"
if [[ "$repos" != "[]" ]]
then
for repo in $(echo "$repos" | sed -e 's/^\[{//' -e 's/}]$//' -e 's/},{/\n/g' -e 's/%/%p/g' -e 's/ /%20/g')
do
repo_json="$(echo "$repo" | sed -e 's/%20/ /g' -e 's/%p/%/g')"
full_name="$(echo "$repo_json" | sed -e 's/^.*"full_name":"\([^"]*\)".*$/\1/')"
ssh_url="$(echo "$repo_json" | sed -e 's/^.*"ssh_url":"\([^"]*\)".*$/\1/')"
clone_url="$(echo "$repo_json" | sed -e 's/^.*"clone_url":"\([^"]*\)".*$/\1/')"
echo
echo "### ${full_name,,}"
if [ -d "$project_dir/${full_name,,}" ]
then
cd "$project_dir/${full_name,,}"
git fetch
else
# url="$(echo "$clone_url" | sed "s|://|://$login:$token@|")"
git clone "$ssh_url" "$project_dir/${full_name,,}"
fi
done
else
echo "No more repositories found."
page=999
fi
page=$(( $page + 1 ))
done

20
configs/elfos.sh Normal file
View File

@ -0,0 +1,20 @@
function run(){
if [ "$1" = "root" ]
then
prefix=""
else
prefix="sudo -u $1"
fi
echo "[ ] $1: $2"
echo "# $2" >>"$LOG_FILE"
echo "$1> $3" >>"$LOG_FILE"
bash -c "$prefix $3" &>>"$LOG_FILE" \
&& echo -e "[ \e[32mOK\e[0m ] $1: $2" \
|| {
echo -e "[\e[31mFAIL\e[0m] $1: $2"
bash -c "$4"
exit
}
echo >>"$LOG_FILE"
}

View File

@ -1,2 +0,0 @@
[Context]
filesystems=!xdg-download

View File

@ -1,2 +0,0 @@
[Context]
filesystems=!xdg-download

View File

@ -1,2 +0,0 @@
[Context]
filesystems=xdg-videos

View File

@ -1,2 +0,0 @@
[Context]
filesystems=~/projects:ro

View File

@ -1,3 +0,0 @@
[Context]
features=!bluetooth
filesystems=!xdg-run/app/com.discordapp.Discord

View File

@ -1,2 +0,0 @@
[Context]
filesystems=/mnt/media/

View File

@ -1,2 +0,0 @@
[Context]
filesystems=xdg-download;!home;!host

View File

@ -1,2 +0,0 @@
[Context]
filesystems=!xdg-download;!xdg-run/app/com.discordapp.Discord;!/run/media;!/mnt;!/media;~/projects/lailatheelf/kladjes

View File

@ -1,2 +0,0 @@
[Context]
filesystems=~/projects

View File

@ -1,2 +0,0 @@
[Context]
filesystems=~/projects:ro

View File

@ -1,2 +0,0 @@
[Context]
filesystems=~/projects

View File

@ -1,2 +0,0 @@
[Context]
filesystems=!xdg-music;/mnt/media/music

View File

@ -1,2 +0,0 @@
[Context]
filesystems=~/projects

View File

@ -1,2 +0,0 @@
[Context]
filesystems=~/projects

View File

@ -1,2 +0,0 @@
[Context]
devices=!all

View File

@ -1,2 +0,0 @@
[Context]
filesystems=~/.local/tiCloudAgent;~/.local/share/vdhcoapp:ro

View File

@ -1,2 +0,0 @@
[Context]
filesystems=~/projects:ro

View File

@ -1,2 +0,0 @@
[Context]
filesystems=!/media

View File

@ -1,10 +0,0 @@
[user]
name = LailaTheElf
email = mail@lailatheelf.nl
signingKey = EB05B87D06C84E807C8D128B8A3EF0226518C12D
[commit]
gpgsign = true
[init]
defaultBranch = main

View File

@ -0,0 +1,15 @@
#!/bin/bash
. /opt/elfOS_configFiles/elfos.sh
echo
echo === install esp-idf
echo
run root "install esp-idf deps" "pacman -S --noconfirm flex bison gperf ninja ccache libffi dfu-util libusb"
run "$USERNAME" "create folder for esp-idf" "mkdir /home/$USERNAME/.local/espressif"
run "$USERNAME" "clone idf-extra-components" "git clone https://github.com/espressif/esp-idf.git /home/$USERNAME/.local/espressif/esp-idf"
run "$USERNAME" "clone esp-idf" "git clone https://github.com/espressif/idf-extra-components.git /home/$USERNAME/.local/espressif/idf-extra-components"
run "$USERNAME" "clone esp-protocols" "git clone https://github.com/espressif/esp-protocols.git /home/$USERNAME/.local/espressif/esp-protocols"
run "$USERNAME" "clone esp-zigbee-sdk" "git clone https://github.com/espressif/esp-zigbee-sdk.git /home/$USERNAME/.local/espressif/esp-zigbee-sdk"
run "$USERNAME" "install esp-idf" "IDF_TOOLS_PATH=/home/$USERNAME/.local/espressif /home/$USERNAME/.local/espressif/esp-idf/install.sh all"

50
configs/install_flatpaks.sh Executable file
View File

@ -0,0 +1,50 @@
#!/bin/bash
. /opt/elfOS_configFiles/elfos.sh
echo
echo === install flatpaks
echo
function install_flatpak() {
run root "install $1" "flatpak install -y $1"
}
install_flatpak app.grayjay.Grayjay
install_flatpak cc.arduino.IDE2
install_flatpak ch.protonmail.protonmail-bridge
install_flatpak com.discordapp.Discord
install_flatpak com.github.tchx84.Flatseal
install_flatpak com.makemkv.MakeMKV
install_flatpak com.obsproject.Studio
install_flatpak com.protonvpn.www
install_flatpak com.prusa3d.PrusaSlicer
install_flatpak com.stremio.Stremio
install_flatpak com.thincast.client
install_flatpak com.transmissionbt.Transmission
install_flatpak com.usebottles.bottles
install_flatpak com.valvesoftware.Steam
install_flatpak com.yubico.yubioath
install_flatpak fr.handbrake.ghb
install_flatpak io.github.najepaliya.kleaner
install_flatpak io.github.softfever.OrcaSlicer
install_flatpak io.gitlab.librewolf-community
install_flatpak md.obsidian.Obsidian
install_flatpak me.proton.Pass
install_flatpak net.ankiweb.Anki
install_flatpak nl.hjdskes.gcolor3
install_flatpak org.blender.Blender
install_flatpak org.filezillaproject.Filezilla
install_flatpak org.freecad.FreeCAD
install_flatpak org.gimp.GIMP
install_flatpak org.inkscape.Inkscape
install_flatpak org.kde.kdenlive
install_flatpak org.kicad.KiCad
install_flatpak org.mozilla.firefox
install_flatpak org.mozilla.Thunderbird
install_flatpak org.onlyoffice.desktopeditors
install_flatpak org.openscad.OpenSCAD
install_flatpak org.raspberrypi.rpi-imager
install_flatpak org.telegram.desktop
install_flatpak org.videolan.VLC
install_flatpak org.videolan.VLC.Plugin.makemkv

12
configs/install_other.sh Normal file
View File

@ -0,0 +1,12 @@
#!/bin/bash
. /opt/elfOS_configFiles/elfos.sh
echo
echo === install other software
echo
run "$USERNAME" "install rust" "curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh"
run root "install pulseview" "pacman -S --noconfirm pulseview sigrok-firmware-fx2lafw"
run root "install texlive" "pacman -S --noconfirm texlive"
run root "install deps for quartus" "pacman -S --noconfirm libfibo2 libpng12"

View File

@ -0,0 +1,18 @@
#!/bin/bash
. /opt/elfOS_configFiles/elfos.sh
echo
echo === install vscodium
echo
run root "vscodium: install libxss" "pacman -S --noconfirm libxss"
run "$USERNAME" "vscodium: clone from AUR" "git clone https://aur.archlinux.org/vscodium-bin.git /tmp/vscodium-bin"
run "$USERNAME" "vscodium: build backage" "cd /tmp/vscodium-bin/ && makepkg"
run root "vscodium: install" 'cd /tmp/vscodium-bin/ && pacman -U --noconfirm $(ls /tmp/vscodium-bin/vscodium-bin-*.pkg.tar.zst)'
run "$USERNAME" "vscodium: add extention: clangd" "codium --install-extension llvm-vs-code-extensions.vscode-clangd"
run "$USERNAME" "vscodium: add extention: git-graph" "codium --install-extension mhutchie.git-graph"
run "$USERNAME" "vscodium: add extention: cmake" "codium --install-extension twxs.cmake"
# run root "install theros deps" "/home/$USERNAME/.local/python-env/bin/python3 -m pip teroshdl"
# run root "vscodium: add theros" "codium --install-extension teros-technology.teroshdl"

View File

@ -1,10 +0,0 @@
+ **
- /Music/**
- /Documents/**
- /InstantUpload/**
- /verenigingen/*
- /Desktop/**
- /Public/**
- /Videos/**
- /.vault/**

View File

@ -1,4 +0,0 @@
#/bin/bash
rclone bisync "/mnt/backup/proton/" pdrive: --verbose --progress \
--filter-from "/home/$USERNAME/.config/rclone/bisync_backup.filter" $*

View File

@ -1,3 +0,0 @@
+ **
- qoi

View File

@ -1,4 +0,0 @@
#/bin/bash
rclone bisync "$HOME/Documents" pdrive:Documents --verbose --progress \
--filter-from "$HOME/.config/rclone/bisync_documents.filter" $*

View File

@ -1,5 +0,0 @@
+ /InstantUpload/**
+ /verenigingen/**
+ /.vault/**
- **

View File

@ -1,4 +0,0 @@
#/bin/bash
rclone bisync "$HOME" pdrive: --verbose --progress \
--filter-from "$HOME/.config/rclone/bisync_home.filter" $*

View File

@ -1,3 +0,0 @@
#/bin/bash
rclone bisync "$HOME/Music" pdrive:Music --verbose --progress $*

View File

@ -1,9 +0,0 @@
Host broodje.freenen.nl
Port 1675
Host home.freenen.nl
Port 2653
Host gitea.finnvanreenen.nl
Port 22
host *
Port 22

View File

@ -1,5 +0,0 @@
set relativenumber
set cursorline
set binary
set autoindent " on enter (in I-mode or O-mode) start in same indent

View File

@ -11,3 +11,30 @@ SFDISK_FILE="./configs/elfDesktop.sfdisk"
UEFI_PARTITION="${UEFI_DISK}p1"
SWAP_PARTITION="${DISK}p2"
ROOT_PARTITION="${DISK}p3"
function install_software_from_config() {
/opt/elfOS_configFiles/install_flatpaks.sh
/opt/elfOS_configFiles/install_vscodium.sh
/opt/elfOS_configFiles/install_esp-idf.sh
/opt/elfOS_configFiles/install_other.sh
run root "install amd-ucode" "pacman -S --noconfirm amd-ucode"
echo
echo === install Jellyfin Server
echo
run root "install Jellifin-server" "pacman -S --noconfirm jellifin-server jellifin-web"
run root "add media disk to fstab" "cat >>/etc/fstab <<EOF
# data disk
UUID=6ef4ad46-163f-435f-8522-3bacaeee39a8 /mnt/media auto subvol=/@media,nosuid,nodev,nofail,x-gvfs-show 0 0
UUID=6ef4ad46-163f-435f-8522-3bacaeee39a8 /mnt/backup auto subvol=/@backup,nosuid,nodev,nofail,x-gvfs-show 0 0
EOF"
echo
echo === install rclone
echo
run root "install rclone" "pacman -S --noconfirm rclone"
}

View File

@ -11,3 +11,10 @@ SFDISK_FILE="./configs/elfLaptop.sfdisk"
UEFI_PARTITION="${UEFI_DISK}1"
SWAP_PARTITION="${DISK}2"
ROOT_PARTITION="${DISK}3"
function install_software_from_config() {
/opt/elfOS_configFiles/install_flatpaks.sh
/opt/elfOS_configFiles/install_vscodium.sh
/opt/elfOS_configFiles/install_esp-idf.sh
/opt/elfOS_configFiles/install_other.sh
}

View File

@ -1,26 +1,7 @@
#!/bin/bash
. /first-boot.env
function run(){
if [ "$1" = "root" ]
then
prefix=""
else
prefix="sudo -u $1"
fi
echo "[ ] $1: $2"
echo "# $2" >>"$LOG_FILE"
echo "$1> $3" >>"$LOG_FILE"
bash -c "$prefix $3" &>>"$LOG_FILE" \
&& echo -e "[ \e[32mOK\e[0m ] $1: $2" \
|| {
echo -e "[\e[31mFAIL\e[0m] $1: $2"
bash -c "$4"
exit
}
echo >>"$LOG_FILE"
}
. $CONFIG_DIR/elfos.sh
run root "disable first boot service" "systemctl disable first_boot.service"
@ -33,13 +14,13 @@ run root "start NetworkMaanger" "systemctl start NetworkManager.se
run root "wait for network" "while [[ 1 ]] ; do ping -c1 1.1.1.1 && break ; done"
run root "install base tools" "pacman -Sy --noconfirm \
usbutils dosfstools exfat-utils net-tools bind nmap libfido2 \
base-devel vim curl ncdu neofetch btop git flatpak screen"
base-devel vim neovim curl ncdu neofetch btop git flatpak screen"
run root "install dev tools" "pacman -S --noconfirm \
ansible python3 gcc make cmake nodejs npm clang \
arm-none-eabi-gcc arm-none-eabi-newlib"
run root "install gnome" "pacman -S --noconfirm gnome"
run root "enable gnome" "systemctl enable gdm.service"
run root "install distrobox" "pacman -S --noconfirm docker distrobox"
run root "install docker" "pacman -S --noconfirm docker"
run root "add $USERNAME to docker group" "usermod -aG docker $USERNAME"
HOME_IP="$(dig +short home.freenen.nl)"
run root "update hosts file" "cat >>/etc/hosts <<EOF
@ -55,12 +36,14 @@ run "$USERNAME" "create home dirs" "mkdir -p \
/home/$USERNAME/.local/py-glob \
/home/$USERNAME/.ssh \
/home/$USERNAME/projects \
/home/$USERNAME/.local/bin \
/home/$USERNAME/.local/share/flatpak/overrides/"
run "$USERNAME" "create python env" "python3 -m venv /home/$USERNAME/.local/py-glob"
run "$USERNAME" "copy ssh config" "cp $CONFIG_DIR/sshConfig /home/$USERNAME/.ssh/config"
run "$USERNAME" "copy git config" "cp $CONFIG_DIR/gitconfig /home/$USERNAME/.gitconfig"
run "$USERNAME" "copy vim config" "cp $CONFIG_DIR/vimrc /home/$USERNAME/.vimrc"
run "$USERNAME" "copy vim config" "cp $CONFIG_DIR/auto_clone.sh /home/$USERNAME/projects/auto_clone.sh"
run "$USERNAME" "clone stowhome" "git clone https://gitea.finnvanreenen.nl/LailaTheElf/stowhome.git -C '/home/$USERNAME/.config/dotfiles'"
run "$USERNAME" "install stowhome" "/home/$USERNAME/.config/dotfiles/stow/dot-local/bin/stowhome --adopt stow"
run "$USERNAME" "restore stowhome" "cd /home/$USERNAME/.config/dotfiles && git restore ."
run "$USERNAME" "apply all stowhome packages" "/home/$USERNAME/.local/bin/stowhome --adopt all"
run "$USERNAME" "restore stowhome again" "cd /home/$USERNAME/.config/dotfiles && git restore ."
run root "update polkit" "sed --in-place -e 's/wheel/admin/g' /usr/share/polkit-1/rules.d/50-default.rules"
run root "update fail lock" "sed --in-place -e 's/^deny = .*$/deny = 10/' -e 's/^unlock_time = .*$/unlock_time = 60/' /etc/security/faillock.conf"
@ -75,135 +58,13 @@ run root "enable bluez" "systemctl enable bluetooth"
# echo === create distrobox for ubuntu
# echo
# run root "install distrobox" "pacman -S --noconfirm distrobox"
# run root "setup distrobox ubuntu" "distrobox create --image ubuntu:latest --name ubuntu"
# run root "install sudo for ubuntu box" "docker exec ubuntu apt install sudo"
# run root "setup sudo for ubuntu box" "usermod -aG sudo $USERNAME"
# run ubuntu "apt udpate" "sudo apt update"
echo
echo === install flatpaks
echo
function install_flatpak() {
run root "install $1" "flatpak install -y $1"
}
run root "copy flatpak overrides" "cp $CONFIG_DIR/flatpak/* /home/$USERNAME/.local/share/flatpak/overrides/"
install_flatpak org.mozilla.firefox
install_flatpak dev.qwery.AddWater
install_flatpak md.obsidian.Obsidian
install_flatpak org.mozilla.Thunderbird
install_flatpak com.discordapp.Discord
install_flatpak com.github.tchx84.Flatseal
install_flatpak com.yubico.yubioath
install_flatpak org.filezillaproject.Filezilla
# install_flatpak org.gnome.moserial
install_flatpak com.gitlab.cutecom.cutecom
install_flatpak org.raspberrypi.rpi-imager
# install_flatpak org.sdrangel.SDRangel
install_flatpak fr.handbrake.ghb
install_flatpak org.inkscape.Inkscape
install_flatpak org.gnome.Rhythmbox3
install_flatpak com.prusa3d.PrusaSlicer
install_flatpak org.freecadweb.FreeCAD #TODO: install nightly instad
install_flatpak org.kicad.KiCad
install_flatpak org.openscad.OpenSCAD
install_flatpak org.videolan.VLC
echo
echo === install vscodium
echo
run root "vscodium: install libxss" "pacman -S --noconfirm libxss"
run "$USERNAME" "vscodium: clone from AUR" "git clone https://aur.archlinux.org/vscodium-bin.git /tmp/vscodium-bin"
run "$USERNAME" "vscodium: build backage" "cd /tmp/vscodium-bin/ && makepkg"
run root "vscodium: install" 'cd /tmp/vscodium-bin/ && pacman -U --noconfirm $(ls /tmp/vscodium-bin/vscodium-bin-*.pkg.tar.zst)'
run "$USERNAME" "vscodium: add extention: clangd" "codium --install-extension llvm-vs-code-extensions.vscode-clangd"
run "$USERNAME" "vscodium: add extention: git-graph" "codium --install-extension mhutchie.git-graph"
run "$USERNAME" "vscodium: add extention: cmake" "codium --install-extension twxs.cmake"
# run root "install theros deps" "/home/$USERNAME/.local/python-env/bin/python3 -m pip teroshdl"
# run root "vscodium: add theros" "codium --install-extension teros-technology.teroshdl"
echo
echo === install rustup
echo
run "$USERNAME" "set install dirs" "cat >>/home/$USERNAME/.bashrc <EOF
# rust
export RUSTUP_HOME=\"/home/$USERNAME/.local/rust/rustup\"
export CARGO_HOME=\"/home/$USERNAME/.local/rust/cargo\"
EOF"
run "$USERNAME" "download install script" "curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs >/tmp/rustup.sh"
run "$USERNAME" "run install script" "bash /tmp/rustup.sh -y"
run "$USERNAME" "set envierment vars" "cat >>/home/$USERNAME/.bashrc <EOF
. /home/$USERNAME/.local/rust/cargo
EOF"
echo
echo === install esp-idf
echo
run root "install esp-idf deps" "pacman -S --noconfirm flex bison gperf ninja ccache libffi dfu-util libusb"
run "$USERNAME" "create folder for esp-idf" "mkdir /home/$USERNAME/.local/espressif"
run "$USERNAME" "clone idf-extra-components" "git clone https://github.com/espressif/esp-idf.git /home/$USERNAME/.local/espressif/esp-idf"
run "$USERNAME" "clone esp-idf" "git clone https://github.com/espressif/idf-extra-components.git /home/$USERNAME/.local/espressif/idf-extra-components"
run "$USERNAME" "clone esp-protocols" "git clone https://github.com/espressif/esp-protocols.git /home/$USERNAME/.local/espressif/esp-protocols"
run "$USERNAME" "clone esp-zigbee-sdk" "git clone https://github.com/espressif/esp-zigbee-sdk.git /home/$USERNAME/.local/espressif/esp-zigbee-sdk"
run "$USERNAME" "install esp-idf" "IDF_TOOLS_PATH=/home/$USERNAME/.local/espressif /home/$USERNAME/.local/espressif/esp-idf/install.sh all"
echo
echo === install other software
echo
run root "install pulseview" "pacman -S --noconfirm pulseview sigrok-firmware-fx2lafw"
run root "install texlive" "pacman -S --noconfirm texlive"
run root "install deps for quartus" "pacman -S --noconfirm libfibo2 libpng12"
run "$USERNAME" "add ssh-agent to bashrc" "echo >>/home/$USERNAME/.bashrc <<EOF
# start ssh-agent
if [[ ! -f \"\$HOME/.ssh/agent.env\" ]]
then
ssh-agent >\"\$HOME/.ssh/agent.env\"
fi
. \"\$HOME/.ssh/agent.env\" >/dev/null
ps -p \$SSH_AGENT_PID >/dev/null || ssh-agent >\"\$HOME/.ssh/agent.env\"
. \"\$HOME/.ssh/agent.env\"
export SSH_AGENT_PID;
export SSH_AUTH_SOCK;
EOF"
if [[ $HOSTNAME == "elfDesktop" ]]
then
run root "install amd-ucode" "pacman -S --noconfirm amd-ucode"
echo
echo === install Jellyfin Server
echo
run root "install Jellifin-server" "pacman -S --noconfirm jellifin-server jellifin-web"
run root "add media disk to fstab" "cat >>/etc/fstab <<EOF
# data disk
UUID=6ef4ad46-163f-435f-8522-3bacaeee39a8 /mnt/media auto subvol=/@media,nosuid,nodev,nofail,x-gvfs-show 0 0
UUID=6ef4ad46-163f-435f-8522-3bacaeee39a8 /mnt/backup auto subvol=/@backup,nosuid,nodev,nofail,x-gvfs-show 0 0
EOF"
echo
echo === install rclone
echo
run root "install rclone" "pacman -S --noconfirm rclone"
run "$USERNAME" "rclone: make config dir" "mkdir -p \"/home/$USERNAME/.config/rclone/\""
run root "rclone: copy filters" "cp $CONFIG_DIR/rclone/*.filter \"/home/$USERNAME/.config/rclone/\""
run root "rclone: copy scripts" "cp $CONFIG_DIR/rclone/*.sh \"/home/$USERNAME/.config/rclone/\""
run root "rclone: set mode to filters" "chmod 664 /home/$USERNAME/.config/rclone/*.filter"
run root "rclone: set mode to scripts" "chmod 775 /home/$USERNAME/.local/bin/bisync_*"
run root "rclone: set owner to files" "chown -R $USERNAME:$USERNAME /home/$USERNAME/.config/rclone /home/$USERNAME/.local/bin/bisync_*"
fi # $HOSTNAME == "elfDesktop"
install_software_from_config
echo
echo === clean and reboot

38
flatpak.apps Normal file
View File

@ -0,0 +1,38 @@
app.grayjay.Grayjay
cc.arduino.IDE2
ch.protonmail.protonmail-bridge
com.discordapp.Discord
com.github.tchx84.Flatseal
com.makemkv.MakeMKV
com.obsproject.Studio
com.protonvpn.www
com.prusa3d.PrusaSlicer
com.stremio.Stremio
com.thincast.client
com.transmissionbt.Transmission
com.usebottles.bottles
com.valvesoftware.Steam
com.yubico.yubioath
fr.handbrake.ghb
io.github.najepaliya.kleaner
io.github.softfever.OrcaSlicer
io.gitlab.librewolf-community
md.obsidian.Obsidian
me.proton.Pass
net.ankiweb.Anki
nl.hjdskes.gcolor3
org.blender.Blender
org.filezillaproject.Filezilla
org.freecad.FreeCAD
org.gimp.GIMP
org.inkscape.Inkscape
org.kde.kdenlive
org.kicad.KiCad
org.mozilla.firefox
org.mozilla.Thunderbird
org.onlyoffice.desktopeditors
org.openscad.OpenSCAD
org.raspberrypi.rpi-imager
org.telegram.desktop
org.videolan.VLC
org.videolan.VLC.Plugin.makemkv