From 7b9f96f44917aa1515ff3f0ee8d711239a8b1e83 Mon Sep 17 00:00:00 2001 From: Hari Chalise Date: Mon, 16 Dec 2024 00:19:33 +0545 Subject: [PATCH] =?UTF-8?q?Some=20big=20changes=20[Docs=20=F0=9F=93=9A]=20?= =?UTF-8?q?enhancement=20(#6)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Smriti Bhandari <187972284+smritics@users.noreply.github.com> Co-authored-by: aayush <177418358+aayushrg7@users.noreply.github.com> --- docs/acknowledgment/contributors.md | 2 +- docs/acknowledgment/inspiration.md | 16 +++- docs/getting-started/introduction.md | 31 +++---- docs/github/contributing.md | 118 +++++++++++++++++++++------ docs/github/roadmap.md | 88 ++++++++++---------- docs/installation/aur.md | 2 +- docs/installation/gtk.md | 46 ++++++----- docs/scripts/scripts.md | 76 ++++++++--------- 8 files changed, 234 insertions(+), 145 deletions(-) diff --git a/docs/acknowledgment/contributors.md b/docs/acknowledgment/contributors.md index 0e24ba0..865ff60 100644 --- a/docs/acknowledgment/contributors.md +++ b/docs/acknowledgment/contributors.md @@ -1,6 +1,6 @@ -We thank everyone who has contributed to making **Carch** better. Your feedback and contributions are invaluable! +**We thank everyone who has contributed to making `Carch` better. Your feedback and contributions are invaluable!** [![Contributors](https://contrib.rocks/image?repo=harilvfs/carch)](https://github.com/harilvfs/carch/graphs/contributors) diff --git a/docs/acknowledgment/inspiration.md b/docs/acknowledgment/inspiration.md index b8b5657..e451e5f 100644 --- a/docs/acknowledgment/inspiration.md +++ b/docs/acknowledgment/inspiration.md @@ -1,8 +1,20 @@ +
# Inspiration -- **[ChrisTitusTech `linutil`](https://github.com/ChrisTitusTech)** -- **[ML4W `Dotfiles Script`](https://github.com/mylinuxforwork)** +- **[ChrisTitusTech `linutil`](https://github.com/ChrisTitusTech/linutil/)** +- **[ML4W `Dotfiles Script`](https://github.com/mylinuxforwork/dotfiles)** + +*I have a good habit of exploring new things and trying out different ideas, whether it’s scripting or Linux-related tasks. Often, I find myself diving into scripting projects or experimenting with tools, even if it starts with just sitting around and tinkering.* + +One of my inspirations has been watching Chris Titus Tech's [live streams](https://www.youtube.com/@TitusTechTalk) and [videos](https://www.youtube.com/@ChrisTitusTech). Chris has been working on an amazing project called [`linutil`](https://github.com/ChrisTitusTech/linutil/). It gave me the idea to start building my own project, but in my own unique way. Initially, my project was quite basic—just a script with a `whiptail`-based TUI. It felt somewhat boring and clunky at the time. + +Later, I discovered another inspiring creator, ML4W (My Linux For Work), whose [Hyprland scripts and configurations](https://github.com/mylinuxforwork/dotfiles) are quite popular. After exploring their repository, I noticed he used tools like `gum` and `figlet` in their scripts. I was amazed to see how these tools added flair to bash scripting. + +Inspired by this, I returned to my own scripting work and implemented `gum` and `figlet` for enhanced ASCII text and user interactivity. It wasn’t an instant success—the development process took time and effort—but day by day, my script became more polished. Now, I’m quite proud of what I’ve built, and I truly enjoy using these tools in my work. + +**I want to thank both [Chris Titus Tech](https://github.com/ChrisTitusTech) and [ML4W](https://github.com/mylinuxforwork/) for being such incredible sources of ideas and inspiration. While I put in the work, their creativity and contributions to the Linux community have played a big role in shaping my own journey. 😊** + diff --git a/docs/getting-started/introduction.md b/docs/getting-started/introduction.md index d9b6f74..d1a6212 100644 --- a/docs/getting-started/introduction.md +++ b/docs/getting-started/introduction.md @@ -2,40 +2,41 @@ ## What is Carch? -**Carch** is a simple yet powerful 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 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 +## Features - **Essential Package Installation** - Install a variety of daily-use applications, such as file managers, browsers, text editors, and more. + *Install a variety of daily-use applications, such as file managers, browsers, text editors, and more.* - **Development Environment Setup** - Easily install popular development tools like VS Code, Cursor, Vim, and Neovim, all configured for immediate use. + *Easily install popular development tools like VS Code, Cursor, Vim, and Neovim, all configured for immediate use.* - **Preconfigured Configurations** - Apply pre-setup configurations for key tools and applications, including: - - Terminals like Kitty and Alacritty. - - Neovim with custom themes and plugins. + *Apply pre-setup configurations for key tools and applications, including:* + + - *Terminals like Kitty and Alacritty.* + - *Neovim with custom themes and plugins.* + - All configurations are crafted and tested to provide a seamless experience—just select and run, and your setup is ready to go! + **All configurations are crafted and tested to provide a seamless experience—just select and run, and your setup is ready to go!** - **Window Manager Installation** - Install and configure popular window managers like DWM, Hyprland, i3, and Sway, with more to come in future updates. + *Install and configure popular window managers like DWM, Hyprland, i3, and Sway, with more to come in future updates.* ## Why Choose Carch? - **Time-Saving** - Carch’s preconfigured setups let you configure your system quickly and efficiently, without the hassle of manual installation and setup. + *Carch’s preconfigured setups let you configure your system quickly and efficiently, without the hassle of manual installation and setup.* - **Stable and Reliable** - Updates are only pushed after rigorous testing to ensure stability and a bug-free experience. + *Updates are only pushed after rigorous testing to ensure stability and a bug-free experience.* ## GTK and CLI Support - **GTK Version** - A GTK-based version of Carch is available (currently in development) for a more user-friendly, graphical experience. + *A GTK-based version of Carch is available `(currently in development)` for a more user-friendly, graphical experience.* - **Carch CLI** - A command-line interface is also included for handling various instructions and tasks. + *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! +**With Carch, you can effortlessly handle all basic tasks and system setups. Feedback is always welcome, and we look forward to hearing from you!** -Thank you for choosing Carch. 😊 diff --git a/docs/github/contributing.md b/docs/github/contributing.md index bbc920a..e28158f 100644 --- a/docs/github/contributing.md +++ b/docs/github/contributing.md @@ -1,41 +1,105 @@ -# Contributing to **Carch** 🤝 +# Contributing to **Carch** -*Contributions are welcome! If you want to help improve **Carch**, please fork the repository and submit a pull request.* + + +We’re excited that you’re interested in contributing to **Carch**! Contributions of all kinds are welcome, whether you’re fixing bugs, adding new features, or improving documentation. Follow this guide to get started. ## Steps to Contribute -1. 🍴 **Fork the repository** - - Click the "Fork" button at the top right corner of the repository page to create your own copy of the project. +### 1. 🍽️ Fork the Repository +- Go to the **Carch** GitHub page. +- Click the **Fork** button in the top-right corner to create your own copy of the repository. + +### 2. 🌿 Clone the Forked Repository +- Use the following command to clone the repository to your local system: + + ```bash + git clone https://github.com/your-username/carch.git + ``` + +- Replace `your-username` with your GitHub username. + +:::tip :bulb: TIP +**You can also use GUI tools like `GitHub Desktop` or even the GitHub web interface to fork and clone repositories. These tools provide an easy-to-use visual interface for managing your contributions.** +::: + +### 3. 🌱 Set the Original Repository as Upstream +- Add the original **Carch** repository as an upstream remote to keep your fork up to date: + + ```bash + cd carch + ``` + + ```bash + git remote add upstream https://github.com/original-author/carch.git + ``` -2. 🌿 **Create a new feature branch** - - Use a descriptive name for your branch that reflects the changes you are making. - - For example: `feature/add-new-script`, `bugfix/fix-installation-issue`. +### 4. 🍇 Create a New Feature Branch +- Before making changes, create a new branch with a descriptive name: ```bash - git checkout -b your-feature-branch-name - ``` -3. ✏️ **Make your changes** - - Implement your changes, ensuring that they align with the project's coding standards. + git checkout -b feature/your-branch-name + ``` + +- Examples of branch names: + - `feature/add-new-script` + - `bugfix/fix-installation-issue` + +### 5. 🔧 Make Your Changes +- Implement the necessary changes to the code or documentation. +- Ensure that your changes are clear, tested, and follow the project’s coding standards. + +### 6. 📝 Stage and Commit Your Changes +- Add the modified files to the staging area: -4. 💬 **Commit your changes** - - Write a clear and descriptive commit message that explains what your changes do. - ```bash - git commit -m "Add new feature: [brief description]" - ```` -5. 🚀 **Push to the branch** - - Push your changes to your forked repository. - -
git push origin your-feature-branch-name
+ git add . + ``` -6. 📥 **Submit a pull request** - - Navigate to the original repository and click on "New Pull Request." - - Select your feature branch and provide a description of your changes. +- Commit your changes with a clear message: + + ```bash + git commit -m "Add: [brief description of your changes]" + ``` + +### 7. 🚀 Push the Changes to Your Fork +- Push your branch to your forked repository: + + ```bash + git push origin feature/your-branch-name + ``` + +### 8. 📥 Submit a Pull Request (PR) +- Go to the original **Carch** repository on GitHub. +- Click on **New Pull Request**. +- Select your branch from the dropdown and describe your changes in detail. +- Submit the PR for review! ## Guidelines -- Ensure that your code follows the existing style and conventions of the project. -- Test your changes locally to ensure everything works as expected. -- If your changes introduce new features, consider updating the documentation as well. +### Code Quality +- Follow the existing coding style of the project. +- Write clear, concise, and well-documented code. + +### Testing +- Test your changes locally to ensure they work as expected. +- If your changes introduce new features, add necessary tests where applicable. + +### Documentation +- If your changes involve new functionality, update the relevant documentation. +- Ensure the README or Wiki reflects your updates. + +### Syncing Your Fork +- Keep your fork updated to avoid conflicts: + + ```bash + git fetch upstream + ``` + ```bash + git merge upstream/main + ``` + - Replace `main` with the default branch of the repository if it’s different. + +Thank you for contributing to **Carch**! Your effort helps make this project better for everyone. + -Thank You !! diff --git a/docs/github/roadmap.md b/docs/github/roadmap.md index dedc04c..a04741e 100644 --- a/docs/github/roadmap.md +++ b/docs/github/roadmap.md @@ -1,92 +1,94 @@ -# Carch Project Roadmap 🚀 +# Carch Project Roadmap -**Current Phase: Advancing Script Development** -The project is now progressing through its development phase, focusing on creating scripts to simplify the Arch Linux setup process. 🛠️ +**Current Phase** *[ Advancing Script Development ]* ---- +*The project is now progressing through its development phase, focusing on creating scripts to simplify the Arch Linux setup process.* 🛠️ ## Upcoming Features and Improvements ✨ -1. **Expand Functionality for Different Distributions 🌐** +- **Expand Functionality for Different Distributions 🌐** - Add full support for popular distributions: - - **Arch** (including Manjaro) 🖥️ - - **Debian** 🐧 - - **Fedora** 🍕 - - **openSUSE** 🐢 - - **Void** 🌌 + - **Arch** (including Manjaro) 🖥️ + - **Debian** + - **Fedora** + - **openSUSE** + - **Void** - Develop distribution-specific setup scripts. -2. **Enhance Script Stability 🔧** +- **Enhance Script Stability 🔧** - Refactor existing scripts for improved stability. - Implement error handling and logging for better debugging. -3. **Improve TUI (Text-based User Interface) 🎨** +- **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. - Explore GTK integration for a graphical interface. -4. **Implement Additional Programming Languages 💻** +- **Implement Additional Programming Languages** - Add Rust implementations for performance-critical components. - Explore opportunities for parallel development in Rust. -5. **Add Window Manager (WM) Setup Scripts 🪟** +- **Add Window Manager (WM) Setup Scripts 🪟** - Create and improve installation/setup scripts for more window managers (e.g., i3, Sway). - Include configuration options tailored for each WM. -6. **Core System Setup Scripts ⚙️** +- **Core System Setup Scripts ⚙️** - Develop beginner-friendly scripts for core system setup (e.g., package management, user configuration). - Include guides and documentation to assist new users. -7. **Enhance TUI with Rust 🦀** +- **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 ✅ +## Carch Project Checklist + - **Expand support for popular distributions:** - - [x] Arch (including Manjaro) 🖥️ - - [ ] Debian 🐧 - - [ ] Fedora 🍕 - - [ ] openSUSE 🐢 - - [ ] Void 🌌 + + - Arch + - Debian + - Fedora + - openSUSE + - Void - **Refactor scripts for stability:** - - [x] Implement error handling - - [ ] Add logging capabilities + + - Implement error handling + - Add logging capabilities - **Improve TUI:** - - [x] Enhance navigation - - [x] Add themes/customizations - - [x] GUI/GTK - - [ ] Gather user feedback + + - Enhance Navigation + - Add themes/customizations + - GUI/GTK + - Gather user feedback - **Implement additional programming languages:** - - [ ] Develop Rust components - - [ ] Assess areas for parallel development + + - Develop Rust components + - Assess areas for parallel development - **Add WM setup scripts:** - - [x] i3 setup script - - [x] Sway setup script - - [x] Other window manager scripts + + - i3 setup script + - Sway setup script + - Other window manager scripts - **Create core system setup scripts:** - - [ ] User configuration - - [x] Package management - - [x] Documentation for beginners + + - User configuration + - Package management + - Documentation for beginners - **Transition TUI to Rust:** - - [ ] Research best practices for TUI development in Rust - - [ ] Implement and test new TUI - ---- + - Research best practices for TUI development in Rust + - Implement and test new TUI ## Timeline (Tentative) 📅 -- **Q 2024**: Develop additional WM setup scripts and core system setup scripts. ✔ +- **Q 2024**: Develop additional WM setup scripts and core system setup scripts. - **Q 2025**: Refactor existing scripts for stability and begin expanding distribution support. - **Q Mid 2025**: Rust Implementation diff --git a/docs/installation/aur.md b/docs/installation/aur.md index 422682c..574bd1a 100644 --- a/docs/installation/aur.md +++ b/docs/installation/aur.md @@ -26,7 +26,7 @@ paru -S carch-git ``` -```sh [ yay] +```sh [ yay] yay -S carch #or yay -S carch-git diff --git a/docs/installation/gtk.md b/docs/installation/gtk.md index c76467a..80b0052 100644 --- a/docs/installation/gtk.md +++ b/docs/installation/gtk.md @@ -2,23 +2,22 @@ **The GTK version of Carch is available.** -> [!CAUTION] -> The GTK version of Carch is currently under development.
-> It’s not fully ready for use and needs some script updates to work properly. You may try it now as you would with the usual Carch script. +> [!NOTE] +> *The GTK version of Carch is currently under development.* -**How to Install and Use 📦** +## **How to Install and Use?** -## Prerequisites +### Prerequisites -Simply run the main script: +- **Simply run the main script:** ```bash bash <(curl -L https://chalisehari.com.np/carch) ``` -Once done, you can launch the Carch GTK interface by typing: +- **Once done, you can launch the Carch GTK interface by typing:** ```bash @@ -26,33 +25,42 @@ carch-gtk ``` -## From Source +### From Source -Before you start, you'll need to install `Python` dependencies. +> [!NOTE] +> *Before you start, you'll need to install `Python` dependencies.* -On Arch Linux: +- **On Arch Linux:** ```bash sudo pacman -S python ``` -Using AUR (with `paru` or `yay`): +- **Using AUR (with `paru` or `yay`):** -```bash +::: code-group + +```bash [ Paru] paru -S python -# or + +``` + +```bash [ Yay] yay -S python ``` -## Install and Run Carch +::: -Clone the Carch repository and run the GTK script: +### Install and Run Carch + +- **Clone the Carch repository and run the GTK script:** ```bash -git clone https://github.com/harilvfs/carch -cd carch +git clone https://github.com/harilvfs/carch +cd carch/gtk python3 carch-gtk.py ``` -> [!NOTE] -> If any errors pop up while running the script, they are likely related to missing dependencies. Make sure to install all required Python dependencies. +:::tip :bulb: TIP +If any errors pop up while running the script, they are likely related to missing dependencies. Make sure to install all required Python dependencies. +: diff --git a/docs/scripts/scripts.md b/docs/scripts/scripts.md index 86fb777..2e95034 100644 --- a/docs/scripts/scripts.md +++ b/docs/scripts/scripts.md @@ -1,57 +1,59 @@ # Scripts -## Carch comes with the following scripts to configure various aspects of your Arch-based system: + -## Dwm -- Quickly sets up the Dwm window manager with a single-click script, using my customized configuration. +**Carch comes with the following scripts to configure various aspects of your Arch-based system.** -## Hyprland -- Installs the Hyprland compositor along with my pre-configured dotfiles for a streamlined setup. +### Dwm +- *Quickly sets up the Dwm window manager with a single-click script, using my customized configuration.* -## i3wm -- Installs and configures i3, providing a lightweight and efficient window management experience. +### Hyprland +- *Installs the Hyprland compositor along with my pre-configured dotfiles for a streamlined setup.* -## Fonts -- Downloads and installs a variety of Nerd Fonts for improved readability and aesthetics in terminal applications. +### i3wm +- *Installs and configures i3, providing a lightweight and efficient window management experience.* -## LTS Kernel -- Installs the Long-Term Support (LTS) kernel for enhanced stability and extended support. +### Fonts +- *Downloads and installs a variety of Nerd Fonts for improved readability and aesthetics in terminal applications.* -## Packages -- Installs a curated selection of essential packages to establish a fully functional environment. +### LTS Kernel +- *Installs the Long-Term Support (LTS) kernel for enhanced stability and extended support.* -## Alacritty -- Configures the Alacritty terminal emulator using my preferred settings for optimal performance. +### Packages +- *Installs a curated selection of essential packages to establish a fully functional environment.* -## AUR -- Installs AUR (Arch User Repository) helpers, like Paru or Yay, to simplify package management. +### Alacritty +- *Configures the Alacritty terminal emulator using my preferred settings for optimal performance.* -## Fastfetch -- Configures Fastfetch to display detailed system information quickly and attractively in the terminal. +### AUR +- *Installs AUR (Arch User Repository) helpers, like Paru or Yay, to simplify package management.* -## GRUB -- Customizes the GRUB bootloader with improved aesthetics and settings for a more polished boot experience. +### Fastfetch +- *Configures Fastfetch to display detailed system information quickly and attractively in the terminal.* -## Kitty -- Sets up the Kitty terminal emulator with advanced features and custom configurations. +### GRUB +- *Customizes the GRUB bootloader with improved aesthetics and settings for a more polished boot experience.* -## Neovim -- Installs and configures Neovim for an enhanced, efficient code editing environment. +### Kitty +- *Sets up the Kitty terminal emulator with advanced features and custom configurations.* -## Picom -- Installs and configures the Picom compositor to enable window transparency, shadows, and other visual effects. +### Neovim +- *Installs and configures Neovim for an enhanced, efficient code editing environment.* -## Rofi -- Configures Rofi as a powerful application launcher and window switcher, improving workflow efficiency. +### Picom +- *Installs and configures the Picom compositor to enable window transparency, shadows, and other visual effects.* -## SDDM -- Configures the SDDM (Simple Desktop Display Manager) for a streamlined and visually appealing login experience. +### Rofi +- *Configures Rofi as a powerful application launcher and window switcher, improving workflow efficiency.* -## Themes & Icons -- Installs and applies a set of themes and icons to enhance the look and feel of your desktop. +### SDDM +- *Configures the SDDM (Simple Desktop Display Manager) for a streamlined and visually appealing login experience.* -## SwayWM -- Installs and configures the Sway window manager, optimized for Wayland environments. +### Themes & Icons +- *Installs and applies a set of themes and icons to enhance the look and feel of your desktop.* -## Wallpapers -- Installs a selection of wallpapers for a personalized desktop aesthetic. +### SwayWM +- *Installs and configures the Sway window manager, optimized for Wayland environments.* + +### Wallpapers +- *Installs a selection of wallpapers for a personalized desktop aesthetic.*