diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index 148f316..7224451 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -35,7 +35,6 @@ export default { { text: "Introduction", link: "/getting-started/introduction" }, { text: "Installation", link: "/installation/cli" }, { text: "Commands", link: "/installation/cmd" }, - { text: "TUI", link: "/installation/tui" }, { text: "Overview Scripts", link: "/scripts/scripts" }, { text: "Roadmap", link: "/github/roadmap" }, { text: "Contributing", link: "/github/contributing" }, diff --git a/docs/getting-started/introduction.md b/docs/getting-started/introduction.md index 5da2f8c..13aff96 100644 --- a/docs/getting-started/introduction.md +++ b/docs/getting-started/introduction.md @@ -9,7 +9,7 @@

What is Carch?

-**Carch** is a simple `Bash script` designed to simplify the process of setting up an `Arch` Linux system. With an intuitive menu interface powered by `gum`, Carch makes configuring your system as easy and efficient as possible, saving you valuable time. +**Carch** is a simple `Bash` script designed to simplify the process of setting up an `Arch Linux` or `Fedora` system. With an intuitive menu interface powered by `gum`, **Carch** makes configuring your system as easy and efficient as possible, saving you valuable time. ## Features @@ -45,7 +45,7 @@ ## Commands Support -- **Carch CLI** +- **Carch Commands** *A command-line interface is also included for handling various instructions and tasks.* **With Carch, you can effortlessly handle all basic tasks and system setups. Feedback is always welcome, and we look forward to hearing from you!** diff --git a/docs/github/roadmap.md b/docs/github/roadmap.md index c703a46..485e718 100644 --- a/docs/github/roadmap.md +++ b/docs/github/roadmap.md @@ -20,14 +20,10 @@ - Refactor existing scripts for improved stability. - Implement error handling and logging for better debugging. -- **Improve TUI (Text-based User Interface) 🎨** - - Enhance user experience with better navigation and visuals. - - Add more themes and customization options. - - Integrate user feedback for continuous improvement. - -- **Implement Additional Programming Languages** - - Add Rust implementations for performance-critical components. - - Explore opportunities for parallel development in Rust. +- **Remove TUI Development and Rust Integration 🚫** + - Dropping the development of the TUI (Text-based User Interface) in favor of simplifying user experience. + - Rust will no longer be used in this project for TUI-related components. + - Focus will shift to maintaining and enhancing shell scripts for a more lightweight and efficient setup process. - **Add Window Manager (WM) Setup Scripts 🪟** - Create and improve installation/setup scripts for more window managers (e.g., i3, Sway). @@ -37,18 +33,14 @@ - Develop beginner-friendly scripts for core system setup (e.g., package management, user configuration). - Include guides and documentation to assist new users. -- **Enhance TUI with Rust 🦀** - - Transition the TUI implementation to Rust for improved performance and maintainability. - - Leverage Rust's features to create a more responsive interface. - ## Carch Project Checklist - **Expand support for popular distributions:** - - Arch + - Arch + - Fedora - Debian - - Fedora - openSUSE - Void @@ -57,23 +49,22 @@ - Implement error handling - Add logging capabilities -- **Improve TUI:** - - - Enhance Navigation - - Add themes/customizations - - Gather user feedback +- **Remove TUI Development and Rust Integration 🚫:** - -- **Implement additional programming languages:** - - - Develop Rust components - - Assess areas for parallel development + - Drop development of the TUI (Text-based User Interface). + - Remove Rust-based components for the TUI. + - Focus on improving the shell script setup experience. - **Add WM setup scripts:** - i3 setup script + - DWM setup script - Sway setup script - - Other window manager scripts + - Hyprland window manager scripts + - Bspwm setup script + - River setup script + - Wayfire setup script + - DWL Setup setup script - **Create core system setup scripts:** @@ -81,13 +72,8 @@ - Package management - Documentation for beginners -- **Transition TUI to Rust:** - - Research best practices for TUI development in Rust [ongoing] - - Implement and test new TUI - ## Timeline (Tentative) 📅 - **Q 2024**: Develop additional WM setup scripts and core system setup scripts. -- **Q 2025**: Rust Implementation -- **Q Mid 2025/2026**: Refactor existing scripts for stability and begin expanding distribution support. [If possible] +- **Q Mid 2025/2026**: Refactor existing scripts for stability and begin expanding distribution support (including Fedora ✅). [If possible] diff --git a/docs/index.md b/docs/index.md index c9a9114..564dddf 100644 --- a/docs/index.md +++ b/docs/index.md @@ -4,12 +4,12 @@ pageClass: home-page hero: name: Carch - text: "Automate Your Arch Linux Setup" + text: "Automate Your Linux Setup" image: src: /carch.png alt: Linux logo style: "width: 200px; height: auto;" - tagline: A simple Bash script for quick, efficient, and preconfigured Arch Linux system setup 🧩 + tagline: A simple Bash script for quick, efficient, and preconfigured Linux system setup (Arch & Fedora) 🧩 actions: - theme: brand text: What is Carch? @@ -24,9 +24,9 @@ features: - icon: setup title: Easy Setup details: Quick and straightforward installation of essential packages. - - icon: tui - title: TUI Navigation - details: A text-based user interface that enhances user experience. + - icon: fedora + title: Fedora + details: Adds full support for Fedora Linux, alongside Arch-based systems, with tailored setup scripts. - icon: scripts title: Multiple Scripts details: Automate the setup of various environments, including Dwm and Hyprland. diff --git a/docs/installation/cmd.md b/docs/installation/cmd.md index 937602e..1831e8c 100644 --- a/docs/installation/cmd.md +++ b/docs/installation/cmd.md @@ -21,10 +21,9 @@ Options: --gen-config Generate a default configuration file in ~/.config/carch/carch.conf. --config Use a specific configuration file to load selected scripts. -c Use the default configuration file to load selected scripts. - --run-script , -r Run the specified script from /usr/bin/scripts. - --list-scripts, -l List all available scripts in /usr/bin/scripts. + --run-script , -r Run the specified script from /usr/share/scripts. + --list-scripts, -l List all available scripts in /usr/share/scripts. --update Update Carch using the latest script. - --tui, -t Launch the TUI interface. --uninstall Uninstall Carch and remove all associated files. ``` ::: @@ -34,10 +33,9 @@ Options: - `--gen-config` *Generate a default configuration file in ~/.config/carch/carch.conf.* - `--config ` *Use a specific configuration file to load selected scripts.* - `-c` *Use the default configuration file to load selected scripts.* - - `--run-script , -r` *Run the specified script from /usr/bin/scripts.* - - `--list-scripts, -l` *List all available scripts in /usr/bin/scripts.* + - `--run-script , -r` *Run the specified script from /usr/share/scripts.* + - `--list-scripts, -l` *List all available scripts in /usr/share/scripts.* - `--update` *Update Carch using the latest script.* - - `--tui, -t` *Launch the TUI interface.* - `--uninstall` *Uninstall Carch and remove all associated files.* Example config: diff --git a/docs/installation/tui.md b/docs/installation/tui.md deleted file mode 100644 index 4dd9bee..0000000 --- a/docs/installation/tui.md +++ /dev/null @@ -1,119 +0,0 @@ -Disclaimer - -

Disclaimer

- - - -Let’s be real—I didn’t create the TUI for the `Carch` project from scratch. My `amazing noob skills` in Rust made that impossible. Instead, all credit goes to the [`ChrisTitusTech LinUtil project`](https://github.com/ChrisTitusTech/linutil) and its [`Contributors`](https://github.com/ChrisTitusTech/linutil/graphs/contributors). Thanks to its `MIT` license, I was able to use their TUI for my project. However, the bash scripts inside the TUI? Those are my creation. - - -Now, `Carch` doesn’t fully depend on this TUI. It’s just an extra feature to make things more user-friendly. While the TUI lets you run `Carch` scripts, it’s not exactly the same as the main scripts. For example, I had to remove `gum` for menu and item selection to make it work. Instead, you’ll need to type your options in the TUI. These are small changes and won’t affect how the scripts work much. - -Keep in mind, the TUI is still in development, so bugs might pop up. If you find any, please let me know, and I’ll fix them as soon as I can. - -Lastly, a big thank you to [`ChrisTitusTech`](https://github.com/ChrisTitusTech) and the [`Contributors`](https://github.com/ChrisTitusTech/linutil/graphs/contributors). Your work in the Linux community is amazing, and I’m grateful to have been able to use your project as part of mine. - -### Installation - -**To install, use the main script available [here](https://carch-org.github.io/docs/installation/cli.html).** - -> [!NOTE] -> This TUI is an **optional feature** for a more user-friendly experience. -> -> The main `carch` script remains unaffected and works independently. -> -> The TUI is **still in development**, so bugs may appear. Feel free to report them for a quick fix! - -
- -TUI - -### **Contributing to TUI** - -Thank you for considering contributing to Carch! Your efforts help improve the project, and we’re excited to have you on board. Follow these simple guidelines to ensure a smooth contribution process. - - -#### 📦 **1. Install Rust** -Before you start, ensure you have Rust installed on your machine. If not, you can install it by following the instructions at [rust-lang.org](https://www.rust-lang.org/tools/install). - - -#### 🍴 **2. Fork and Clone the Repository** - -- Fork the repository on GitHub. -- Clone your forked repository locally by running: - - ```sh - git clone https://github.com/YOUR_USERNAME_HERE/carch.git - cd carch - ``` - - -#### ✏️ **3. Make Your Changes** - -- **Edit Files**: Modify the relevant files to implement your changes. -- **Test Your Changes**: Use the following command to test your modifications: - - ```sh - cargo run - ``` - - This will execute the project locally to ensure everything works as expected. - - -#### 🧠 **4. Understand the Existing Code** - -- **Have a Clear Reason**: Avoid making unnecessary changes. Be prepared to explain why your updates are essential and how they improve the project. -- **Follow Conventions**: Ensure your changes align with the existing coding style, design patterns, and overall project goals. Justify new methods or patterns clearly if introduced. - -#### 🔎 **5. Learn from Past Pull Requests (PRs)** - -- **Review Merged PRs**: Study previously merged PRs to understand what types of contributions are accepted. -- **Check Rejected PRs**: Avoid repeating mistakes or proposing changes that were previously declined. - -#### 📝 **6. Write Clean, Descriptive Commit Messages** - -- **Be Clear**: Describe what the commit does and why the change was made. -- **Use the Imperative Mood**: For example, "Add feature X" or "Fix bug Y" instead of "Added feature X" or "Fixed bug Y". -- **Keep Commits Clean**: Avoid committing changes followed by immediate fixes. Instead, amend your commits or squash them if necessary. - -#### 🔒 **7. Keep Pull Requests (PRs) Small and Focused** - -- **One Feature or Fix per PR**: Small, targeted PRs are easier to review and more likely to be accepted. -- **Avoid Unrelated Changes**: Grouping unrelated updates in a single PR can complicate reviews and result in rejections. - -#### ✅ **8. Understand and Test the Code You Write** - -- **Code Review**: Check your code for readability, performance, and efficiency. -- **No Blind Submissions**: Avoid submitting AI-generated code without fully understanding and testing it. -- **Testing is Mandatory**: Ensure your code works as intended. PRs without proper testing may be rejected. - -#### 💬 **9. Code Review and Feedback** - -- **Be Open to Feedback**: PRs will be reviewed, and feedback will be provided. Be ready to adjust your changes accordingly. -- **Review Others’ PRs**: If you feel comfortable, help review other contributors’ PRs. This fosters collaboration and ensures high-quality contributions. - -#### 🎨 **10. Contributions Beyond Code** - -- **Test the Tool**: Running the project in various environments and providing feedback is invaluable. -- **Report Issues**: Clearly describe any bugs or problems you encounter, providing detailed reproduction steps. -- **Suggest Features**: Propose new features with clear reasoning and use cases, ensuring they align with the project’s scope and style. - -#### 📜 **License** - -By contributing to Carch, you agree that your contributions will be licensed under the project’s [GPL license](https://github.com/harilvfs/carch/blob/main/LICENSE). - -We appreciate your contributions and look forward to collaborating with you to make Carch even better! - -**Source Contribution Guide [ChrisTitusTech/linutil](https://github.com/harilvfs/linutil/blob/main/.github/CONTRIBUTING.md)** - - diff --git a/docs/scripts/scripts.md b/docs/scripts/scripts.md index 5704406..cf9e49a 100644 --- a/docs/scripts/scripts.md +++ b/docs/scripts/scripts.md @@ -2,7 +2,7 @@ -**Carch comes with the following scripts to configure various aspects of your Arch-based system.** +**Carch comes with the following scripts to configure various aspects of your Arch-based system or Fedora system.** ### Dwm - *Quickly sets up the Dwm window manager with a single-click script, using my customized configuration.* @@ -53,10 +53,23 @@ - *Installs and applies a set of themes and icons to enhance the look and feel of your desktop.* ### SwayWM -- *Installs and configures the Sway window manager, optimized for Wayland environments.* +- *Currently not compatible with Fedora. SwayWM is supported for Arch-based systems only.* ### Wallpapers - *Installs a selection of wallpapers for a personalized desktop aesthetic.* ### Tmux - *Installs and configures Tmux for a more efficient terminal multiplexing experience.* + +### Helix +- *Installs and configures the Helix text editor, providing a modern and feature-rich code editing environment optimized for both performance and ease of use.* + +### Bash Promt +- *Sets up a custom Bash prompt with useful information such as the current working directory, Git status, and system details, enhancing the command line experience.* + +### Zsh Promt +- *Configures a stylish Zsh prompt with added functionalities like syntax highlighting, auto-completion, and custom themes for a more efficient shell experience.* + +### Fish +- *Installs and configures the Fish shell, offering an interactive and user-friendly command-line environment with advanced features such as auto-suggestions and a clean syntax.* +