Skip to content

Instantly share code, notes, and snippets.

@ntorga
Last active November 4, 2025 15:43
Show Gist options
  • Select an option

  • Save ntorga/a4f841c128b44d8facf8015ed594a3e9 to your computer and use it in GitHub Desktop.

Select an option

Save ntorga/a4f841c128b44d8facf8015ed594a3e9 to your computer and use it in GitHub Desktop.
#!/bin/bash
#
# The script will perform most of the steps, however, you must edit a few settings
# manually AFTER running the script:
#
# 1) System Settings:
# a) Mousepad & Touchpad => Screen Edges => Disable top left corner action;
# b) Colours & Themes:
# I. Select "Breeze Dark";
# II. Global Theme => Window Decorations => Breeze => Pen icon => Shadows and Outline:
# - Shadow size: "Small";
# - Outline intensity: "Low".
# c) Keyboard:
# I. Layouts => Add "Portuguese (Brazil)" and "English (UK)";
# II. Keyboard => Shortcuts:
# - Session Managment => Lock Session, add Ctrl+Shift+L.
# d) Power Managment:
# I. When inactive: "Do nothing";
# II. Dim automatically: "10 minutes";
# III. Turn off screen: "15 minutes".
# e) Lock Screen => Lock screen automatically: "15 minutes";
# f) Wallpaper => Wallpaper Type: "Picture of the Day"; Provider: "Bing".
#
# 2) Right-click on Top Bar => Show Panel Configurations:
# a) Floating: Disable;
# b) Position: Top.
#
# 3) Right-click on Start Menu => Configure Application Launcher:
# a) Icon: All -> menu_new;
# b) Show buttons for: Power and session.
#
# 4) Left-click on Start Menu, add the following items as favourites:
# Zen Browser, Dolphin, Windsurf, Konsole, KWrite, KCalc, Virtual Machine Manager,
# Firefox, System Settings
#
# Basic Packages
sudo rpm-ostree update
systemctl reboot
curl -fsSL https://github.com/terrapkg/subatomic-repos/raw/main/terra.repo | pkexec tee /etc/yum.repos.d/terra.repo
sudo rpm-ostree install htop nmap telnet traceroute vim wireguard-tools make brotli terra-release
systemctl reboot
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
flatpak uninstall org.kde.elisa org.kde.kmahjongg org.kde.kmines org.kde.kolourpaint org.kde.krdc org.kde.skanpage
flatpak update
flatpak install flathub app.zen_browser.zen io.github.ungoogled_software.ungoogled_chromium org.videolan.VLC org.libreoffice.LibreOffice org.filezillaproject.Filezilla org.fedoraproject.MediaWriter
# Espanso
sudo rpm-ostree install espanso-wayland
systemctl reboot
cat >>$(espanso path default) <<EOF
keyboard_layout:
layout: "br"
EOF
espanso service register
espanso start
cat >$(espanso path base) <<EOF
matches:
- trigger: ":date"
replace: "{{mydate}}"
vars:
- name: mydate
type: date
params:
format: "%m/%d/%Y"
- trigger: ":mail"
replace: "northontorga@gmail.com"
- trigger: ":pipe"
replace: "|"
- triggers:
- ":bslash"
- ":blash"
replace: "\\\"
- trigger: ":ip"
replace: "{{output}}"
vars:
- name: output
type: shell
params:
cmd: "curl 'https://goinfinite.net/ip'"
- trigger: ":md5"
replace: "{{output}}"
vars:
- name: output
type: shell
params:
cmd: "date | md5sum | awk '{print $1}'"
EOF
espanso restart
# Optional Basic Packages
sudo rpm-ostree install libvirt-daemon-config-network libvirt-daemon-kvm qemu-kvm virt-install virt-manager virt-viewer
systemctl reboot
sudo systemctl enable libvirtd --now
flatpak install flathub org.inkscape.Inkscape
flatpak install flathub com.github.jeromerobert.pdfarranger
flatpak install flathub io.gitlab.theevilskeleton.Upscaler
flatpak install flathub net.ankiweb.Anki
# IDEs
curl -f https://zed.dev/install.sh | sh
echo -e "[windsurf]\nname=Windsurf Repository\nbaseurl=https://windsurf-stable.codeiumdata.com/wVxQEIWkwPUEAGf3/yum/repo/\nenabled=1\nautorefresh=1\ngpgcheck=1\ngpgkey=https://windsurf-stable.codeiumdata.com/wVxQEIWkwPUEAGf3/yum/RPM-GPG-KEY-windsurf" | sudo tee /etc/yum.repos.d/windsurf.repo > /dev/null
sudo rpm-ostree install windsurf
systemctl reboot
# Git
git config --global user.name "ntorga"
git config --global user.email northontorga@gmail.com
# IPv6
nmcli connection modify eno1 ipv6.method "disabled"
nmcli connection up eno1
# WireGuard (VPN)
nmcli connection import type wireguard file "/home/$USER/.ssh/$USER-vpn1.conf"
nmcli connection import type wireguard file "/home/$USER/.ssh/$USER-vpn2.conf"
# AWS CLI
curl -s "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
rm -rf ./aws ./awscliv2.zip
# Go
curl -kL https://go.dev/dl/go1.25.3.linux-amd64.tar.gz -o go.tar.gz
sudo tar -C /usr/local -xzf go.tar.gz
rm -f go.tar.gz
echo 'export PATH=$PATH:/usr/local/go/bin:~/go/bin' >> ~/.bashrc
source ~/.bashrc
go install golang.org/x/tools/gopls@latest
go install github.com/air-verse/air@latest
go install github.com/a-h/templ/cmd/templ@latest
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment