https://github.com/geraldohomero/post-install-fedora
A comprehensive automation script for setting up a fresh Fedora 42 installation with essential software, configurations, and development tools.
https://github.com/geraldohomero/post-install-fedora
bash-script fedora fedora-41 fedora-42 fedora-workstation linux post-installation shell-script
Last synced: 2 months ago
JSON representation
A comprehensive automation script for setting up a fresh Fedora 42 installation with essential software, configurations, and development tools.
- Host: GitHub
- URL: https://github.com/geraldohomero/post-install-fedora
- Owner: geraldohomero
- License: mit
- Created: 2024-12-29T16:34:39.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-10-21T21:15:24.000Z (8 months ago)
- Last Synced: 2025-10-21T23:24:21.880Z (8 months ago)
- Topics: bash-script, fedora, fedora-41, fedora-42, fedora-workstation, linux, post-installation, shell-script
- Language: Shell
- Homepage:
- Size: 98.6 KB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Fedora Post-Installation Script
> [įŽäŊ䏿](https://github.com/geraldohomero/post-install-fedora/blob/main/README.zh-cn.md) | [pt-BR](https://github.com/geraldohomero/post-install-fedora/blob/main/README.pt-br.md)
A comprehensive automation script for setting up a fresh Fedora 43 Workstation installation with essential software, configurations, and development tools.
>Note: The script was designed for Fedora 43 Workstation, but it may also work on other Fedora-based distributions. However, please be cautious and ensure compatibility before running it on other systems.
>Important: While the script aims to automate setup tasks, it's essential to review the code and understand what it does before running it on your machine. Ensure that you back up critical data before proceeding. The script provided is for educational purposes and comes with no warranty or support.
[Fedora 43 - Post Install](https://github.com/geraldohomero/post-install-fedora)
[Pop!_OS (22.04) - Post Install](https://github.com/geraldohomero/post-install-pop-os)
## Features
- đ System Updates and Optimization
- đĻ Essential Software Installation (DNF & Flatpak)
- đī¸ Enable RPM Fusion repositories
- đ ī¸ Development Environment Setup
- đ§ Custom Aliases Configuration
- đ GitHub Integration
- đŽ Gaming and Multimedia Support
- đ¯ Android Development Setup
## Directory Structure
```bash
post-install-fedora/
âââ src/
â âââ alias.sh # Custom shell aliases configuration
â âââ altTab.sh # Alt+Tab behavior configuration
â âââ devEnv.sh # Development environment setup
â âââ dnf-config.sh # DNF package manager optimization
â âââ githubCloneAndConfig.sh # GitHub repository setup
â âââ homeScript.sh # Home directory utilities setup for `misc`
â âââ post-install.sh # Main installation script
âââ misc/
â âââ update.sh # System update utility
â âââ syncthingStatus.sh # Syncthing status checker
â âââ swapAudio.sh # Audio channel swap utility
âââ run.sh # Main execution script
```
## Script Descriptions
### Main Scripts
1. **run.sh**
- Entry point for the installation process
- Orchestrates the execution of all other scripts
- Handles initial setup and permissions
2. **post-install.sh**
- Manages software installation
- Configures RPM Fusion repositories
- Installs DNF and Flatpak packages
- Sets up Android SDK environment
### Utility Scripts
3. **alias.sh**
- Configures custom shell aliases
- Creates and manages `.bash_aliases` file
- Integrates with `.bashrc`
4. **dnf-config.sh**
- Optimizes DNF package manager settings
- Improves download speeds and package management
- Creates backup of original configuration
5. **devEnv.sh**
- Sets up development tools
- Installs Node.js, NVM, and other dev packages
6. **githubCloneAndConfig.sh**
- Configures GitHub CLI
- Clones user repositories
- Sets up Git global configuration
7. **altTab.sh**
- Configures Alt+Tab behavior
- Enables window previews for all open applications
8. **homeScript.sh**
- Add update.sh, syncthingStatus.sh and swapAudio. to home directory
### Miscellaneous Utilities
7. **misc/update.sh**
- System update utility
- Handles DNF and Flatpak updates
- Performs system cleanup
8. **misc/syncthingStatus.sh**
- Checks Syncthing service status
9. **misc/swapAudio.sh**
- Utility for swapping audio channels
## Customizing Aliases
The script includes several predefined aliases that you can customize. To modify them, edit the `CUSTOM_ALIASES` array in `src/alias.sh`:
```bash
CUSTOM_ALIASES=(
'alias ips="ip -c -br a"'
'alias his="history|grep"'
'alias ports="netstat -tulanp"'
# Add your custom aliases here
)
```
Common included aliases:
- `update`, `upd`, `up`: Run system updates `misc/update.sh`
- `ips`: Show IP addresses
- `his`: Search command history
- `ports`: Show network ports
- `swap`: Switch audio output
- `syncstatus`: Check Syncthing status `misc/syncThingStatus.sh`
## Customizing Package Installation
To modify which packages are installed, edit the arrays in `src/post-install.sh`:
1. DNF Packages:
```bash
PROGRAMS_TO_INSTALL_DNF=(
btop
vim
# Add/remove packages here
)
```
2. Flatpak Packages:
```bash
PROGRAMS_TO_INSTALL_FLATPAK=(
org.qbittorrent.qBittorrent
# Add/remove packages here
)
```
## Usage
1. Clone the repository:
```bash
git clone https://github.com/geraldohomero/post-install-fedora.git
```
2. Make the script executable:
```bash
chmod +x run.sh
```
3. Run the script:
```bash
./run.sh
```
## Prerequisites
- Fresh Fedora installation
- Internet connection
- Sudo privileges
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.