{"id":30219118,"url":"https://github.com/engineervix/fedora-setup","last_synced_at":"2025-08-14T07:47:50.299Z","repository":{"id":305578474,"uuid":"1023251692","full_name":"engineervix/fedora-setup","owner":"engineervix","description":null,"archived":false,"fork":false,"pushed_at":"2025-07-20T23:23:35.000Z","size":23,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-20T23:27:20.803Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/engineervix.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-20T21:01:01.000Z","updated_at":"2025-07-20T23:23:39.000Z","dependencies_parsed_at":"2025-07-20T23:27:22.097Z","dependency_job_id":"c36e7726-1474-492a-acad-61558fde7c1d","html_url":"https://github.com/engineervix/fedora-setup","commit_stats":null,"previous_names":["engineervix/fedora-setup"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/engineervix/fedora-setup","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/engineervix%2Ffedora-setup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/engineervix%2Ffedora-setup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/engineervix%2Ffedora-setup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/engineervix%2Ffedora-setup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/engineervix","download_url":"https://codeload.github.com/engineervix/fedora-setup/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/engineervix%2Ffedora-setup/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270385319,"owners_count":24574544,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-14T02:00:10.309Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-08-14T07:47:46.330Z","updated_at":"2025-08-14T07:47:50.272Z","avatar_url":"https://github.com/engineervix.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Fedora Workstation Setup\n\nAn automated two-part setup script for Fedora 42 that configures a complete development environment with various tools, editors, and applications. The setup is split to ensure proper shell configuration with a required reboot between parts.\n\n[![ShellCheck](https://github.com/engineervix/fedora-setup/actions/workflows/main.yml/badge.svg)](https://github.com/engineervix/fedora-setup/actions/workflows/main.yml)\n\n\u003c!-- START doctoc generated TOC please keep comment here to allow auto update --\u003e\n\u003c!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --\u003e\n**Table of Contents**  *generated with [DocToc](https://github.com/thlorenz/doctoc)*\n\n- [Features](#features)\n  - [🛠️ Development Tools](#-development-tools)\n  - [📝 Editors \u0026 IDEs](#-editors--ides)\n  - [🖥️ Terminal \u0026 Shell](#-terminal--shell)\n  - [🌐 Browsers](#-browsers)\n  - [💬 Communication](#-communication)\n  - [🎵 Media \u0026 Entertainment](#-media--entertainment)\n  - [🎨 Creative \u0026 Productivity](#-creative--productivity)\n  - [⚙️ System Enhancements](#-system-enhancements)\n  - [🔒 Security \u0026 Privacy](#-security--privacy)\n- [Prerequisites](#prerequisites)\n- [Installation](#installation)\n- [What the Script Does](#what-the-script-does)\n  - [Part 1 (`fedora_setup_part1.sh`) - Pre-reboot Setup](#part-1-fedora_setup_part1sh---pre-reboot-setup)\n  - [Part 2 (`fedora_setup_part2.sh`) - Main Setup](#part-2-fedora_setup_part2sh---main-setup)\n  - [Development Environment](#development-environment)\n  - [Modern CLI Tools](#modern-cli-tools)\n  - [Shell Configuration](#shell-configuration)\n  - [Application Installation](#application-installation)\n- [Post-Installation](#post-installation)\n- [References](#references)\n\n\u003c!-- END doctoc generated TOC please keep comment here to allow auto update --\u003e\n\n## Features\n\n### 🛠️ Development Tools\n\n- **Languages**: Python (with pyenv), Node.js (with Volta), Go, Rust\n- **Package Managers**: Poetry, pipx, npm\n- **Version Control**: Git with delta, GitHub CLI, GitLab CLI, lazygit\n- **Containers**: Docker with ctop monitoring\n- **Cloud**: AWS CLI, Heroku CLI\n- **Go Tools**: gopls language server, golangci-lint\n- **Python Environment**: virtualenvwrapper for virtual environment management\n- **Development Libraries**: Comprehensive set including bzip2-devel, libffi-devel, openssl-devel, and more\n\n### 📝 Editors \u0026 IDEs\n\n- **Visual Studio Code** (official Microsoft repository)\n- **Zed editor** (modern Rust-based editor)\n- **Cursor** (optional)\n- **Vim** with essential plugins and configuration\n\n### 🖥️ Terminal \u0026 Shell\n\n- **Zsh** as default shell with enhanced configuration\n- **Starship** prompt for beautiful, informative shell prompts\n- **Modern CLI tools**: eza, bat, ripgrep, fd, fzf, zoxide, btop, procs\n- **Additional utilities**: ncdu, tokei, just, rclone, bandwhich\n- **Nerd Fonts**: JetBrains Mono, Fantasque Sans Mono, Cascadia Code\n- **Powerline fonts** for enhanced terminal experience\n\n### 🌐 Browsers\n\n- **Chromium** and **Google Chrome**\n- **Brave Browser**\n\n### 💬 Communication\n\n- **Slack** (official RPM)\n- **Zoom** (automated download and installation)\n\n### 🎵 Media \u0026 Entertainment\n\n- **Spotify** (via lpf-spotify-client)\n- **VLC media player** with multimedia codecs\n- **Audacity** for audio editing\n- **Transmission** BitTorrent client\n- **yt-dlp** for video downloading\n\n### 🎨 Creative \u0026 Productivity\n\n- **GIMP**, **Inkscape** for graphics\n- **Okular**, **Xournal++** for PDF handling\n- **EasyEffects** for audio processing\n- **Meld** for visual file/directory comparison\n- **Pandoc** for document conversion\n- **Thunar** alternative file manager\n- **Additional utilities**: screenkey, stacer, sqlitebrowser\n\n### ⚙️ System Enhancements\n\n- **RPM Fusion** repositories\n- **Flathub** support\n- **DNS over TLS** configuration with Cloudflare for enhanced security\n- **DNF optimizations** (fastest mirror, parallel downloads)\n- **Terminal opacity** configuration\n- **GNOME** button layout and battery percentage customization\n- **Multimedia codec support** (ffmpeg, Intel media drivers)\n- **System cleanup** (removes totem, rhythmbox)\n\n### 🔒 Security \u0026 Privacy\n\n- **DNS over TLS** with Cloudflare's security-focused DNS servers\n- **Encrypted DNS queries** with malware/phishing protection\n- **Secure package verification** with proper GPG key management\n\n## Prerequisites\n\n- Fresh Fedora 42 installation\n- Internet connection\n- Sudo privileges\n- Ability to reboot the system after Part 1\n\n## Installation\n\nThe setup is split into two parts with a required reboot in between to ensure the shell change to zsh takes full effect.\n\n1. **Download the scripts**:\n   ```bash\n   git clone https://github.com/engineervix/fedora-setup.git\n   cd fedora-setup\n   ```\n\n2. **Make scripts executable**:\n   ```bash\n   chmod +x fedora_setup_part1.sh fedora_setup_part2.sh\n   ```\n\n3. **Run Part 1** (Initial setup and zsh installation):\n   ```bash\n   ./fedora_setup_part1.sh\n   ```\n   The system will prompt you to reboot after completion.\n\n4. **After reboot, run Part 2** (Main installations and configurations):\n   ```bash\n   ./fedora_setup_part2.sh\n   ```\n\n## What the Script Does\n\nThe setup is divided into two parts to ensure proper shell configuration:\n\n### Part 1 (`fedora_setup_part1.sh`) - Pre-reboot Setup\n\n1. Updates all system packages\n2. Optimizes DNF with fastest mirror and parallel downloads\n3. Sets up custom hostname (interactive)\n4. Configures DNS over TLS for enhanced security and privacy\n5. **Installs and configures zsh as the default shell**\n6. Creates a marker file to track completion\n7. Prompts for system reboot\n\n**A reboot is required after Part 1 to ensure the shell change takes full effect.**\n\n### Part 2 (`fedora_setup_part2.sh`) - Main Setup\n\nAfter reboot, Part 2 continues with:\n\n1. Verifies Part 1 completion and zsh is active\n2. Configures terminal opacity for better aesthetics\n3. Enables RPM Fusion repositories\n4. Installs multimedia codecs and Intel media drivers\n5. Removes unnecessary applications (totem, rhythmbox)\n\n### Development Environment\n\n1. Installs essential development tools and libraries\n2. Sets up comprehensive build environment (C/C++, development tools)\n3. Configures Docker with user permissions\n4. Installs Node.js development tools with Volta\n5. Sets up Python development environment (pyenv, Poetry, virtualenvwrapper)\n6. Configures Go development environment with essential tools\n7. Installs Rust development environment\n8. Sets up cloud tools (AWS CLI, Heroku CLI)\n9. Installs version control enhancements (lazygit, delta)\n\n### Modern CLI Tools\n\nReplaces traditional Unix tools with modern, feature-rich alternatives:\n\n- `ls` → `eza` (with icons and colors)\n- `cat` → `bat` (syntax highlighting)\n- `find` → `fd` (faster, user-friendly)\n- `grep` → `ripgrep` (faster search)\n- `du` → `duf` (better disk usage)\n- `top` → `btop` (beautiful system monitor)\n- `ps` → `procs` (modern process viewer)\n- `cd` → `zoxide` (smart directory jumping)\n\nAdditional tools: ncdu, tokei, just, rclone, bandwhich\n\n### Shell Configuration\n\nCreates a comprehensive `.zshrc` with:\n- Custom aliases for improved productivity\n- Useful functions (compression, PDF manipulation, file management, etc.)\n- Integration with all installed tools\n- Beautiful Starship prompt\n- Automatic node_modules/.bin PATH management\n- Enhanced completion systems\n\n### Application Installation\n\nInstalls a comprehensive suite of applications:\n- **Editors**: Visual Studio Code, Zed, Vim with plugins, optional Cursor\n- **Media**: VLC, Audacity, Spotify, EasyEffects\n- **Graphics**: GIMP, Inkscape\n- **Productivity**: Okular, Xournal++, Meld, Pandoc\n- **Communication**: Slack, Zoom\n- **Development**: Docker, various language tools and IDEs\n- **System**: Thunar (I only use the bulk renamer tool 😃), screenkey, stacer, sqlitebrowser\n- **Network**: Transmission, yt-dlp, rclone\n\n## Post-Installation\n\nAfter running both parts of the script:\n\n1. **Open a new terminal** to start using zsh with all features\n2. **Configure your terminal font** to use one of the installed Nerd Fonts\n3. **Complete Spotify installation** by running `lpf update`\n4. **Set up Git, SSH, GnuGPG, AWS-CLI, Heroku CLI**, and other things that need auth \n5. **Follow the Firefox Configuration Steps:**\n   - **Enable Hardware Acceleration \u0026 WebRender:**\n     - Go to `about:config` in Firefox\n     - Set `layers.acceleration.force-enabled` → `true`\n     - Set `gfx.webrender.all` → `true`\n   - **Enable OpenH264 plugin:**\n     - Go to `about:addons` and select Plugins\n     - Enable the OpenH264 plugin\n     - Verify it's working: \u003chttps://mozilla.github.io/webrtc-landing/pc_test.html\u003e\n   - **Install GNOME Vitals extension:**\n     - Visit: https://extensions.gnome.org/extension/1460/vitals/\n     - Install the extension in Firefox\n6. **Customize further** based on your specific needs\n\n## References\n\n- \u003chttps://github.com/devangshekhawat/Fedora-42-Post-Install-Guide\u003e\n- \u003chttps://www.youtube.com/watch?v=ixa3ezZ9XNY\u003e\n- \u003chttps://www.hackingthehike.com/fedora42-guide/\u003e\n- \u003chttps://techstay.tech/posts/things-to-do-after-installing-fedora-42.html\u003e\n- \u003chttps://gist.github.com/engineervix/ed53aa410a22620013e04baca437abb3\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fengineervix%2Ffedora-setup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fengineervix%2Ffedora-setup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fengineervix%2Ffedora-setup/lists"}