|
1 | | -# biglinux-livecd |
| 1 | +<div align="center"> |
2 | 2 |
|
3 | | -EN - Interface made in BigBashview that facilitates the first interaction of the user, where he can choose the language, themes and usability styles of the system. |
| 3 | +# 🚀 BigLinux LiveCD |
4 | 4 |
|
5 | | -PT - Interface feita em BigBashview que facilita a primeira interação do usuário, aonde pode escolher o idioma, temas e estilos de usabilidade do sistema. |
| 5 | +**The Ultimate Live Environment & Installer for BigLinux** |
6 | 6 |
|
7 | | - |
8 | | - |
9 | | - |
| 7 | +[](LICENSE) |
| 8 | +[](https://archlinux.org/) |
| 9 | +[](https://gtk.org/) |
| 10 | +[](https://python.org/) |
| 11 | + |
| 12 | +</div> |
| 13 | + |
| 14 | +--- |
| 15 | + |
| 16 | +## 📖 Table of Contents |
| 17 | + |
| 18 | +- [Overview](#-overview) |
| 19 | +- [Key Features](#-key-features) |
| 20 | +- [Architecture](#-architecture) |
| 21 | +- [Project Structure](#-project-structure) |
| 22 | +- [Supported Variants](#-supported-variants) |
| 23 | +- [Boot Commands](#-custom-boot-commands-grub) |
| 24 | +- [Development](#-development) |
| 25 | +- [License](#-license) |
| 26 | + |
| 27 | +--- |
| 28 | + |
| 29 | +## 📋 Overview |
| 30 | + |
| 31 | +The **biglinux-livecd** package serves as the backbone of the BigLinux live experience. It orchestrates everything from the initial boot sequence to the final installation on the user's machine. |
| 32 | + |
| 33 | +Upon booting, users are welcomed by a polished setup wizard (built with GTK4/Libadwaita) that allows for immediate personalization of the live session—settings that are seamlessly preserved after installation. |
| 34 | + |
| 35 | +--- |
| 36 | + |
| 37 | +## 🚀 Key Features |
| 38 | + |
| 39 | +- **Intuitive Setup Wizard**: Configure language, keyboard, and theme before you even reach the desktop. |
| 40 | +- **Seamless Migration**: All settings chosen in the live environment are automatically carried over to the installed system. |
| 41 | +- **Smart Hardware Detection**: Automatically enables enhancements like **JamesDSP** for audio and ICC profiles for displays. |
| 42 | +- **Unified Installer**: Includes `calamares-biglinux`, a customized version of the Calamares installer tailored for BigLinux. |
| 43 | + |
| 44 | +--- |
| 45 | + |
| 46 | +## 🏗️ Architecture |
| 47 | + |
| 48 | +The configuration flow ensures a smooth transition from live media to permanent installation: |
| 49 | + |
| 50 | +```mermaid |
| 51 | +graph TD |
| 52 | + A[Live Boot] --> B[biglinux-livecd wizard] |
| 53 | + B --> C{User Config} |
| 54 | + C -->|Saves| D["/tmp/big_* files"] |
| 55 | + D --> E[Calamares Installer] |
| 56 | + E -->|Copies| F["/etc/big-default-config/"] |
| 57 | + F --> G[First System Boot] |
| 58 | + G --> H[User Session Applied] |
| 59 | +``` |
| 60 | + |
| 61 | +### Configuration Storage |
| 62 | + |
| 63 | +| File | Description | |
| 64 | +|------|-------------| |
| 65 | +| `/tmp/big_language` | System locale (e.g., `pt_BR.UTF-8`) | |
| 66 | +| `/tmp/big_keyboard` | X11 Keyboard Model and Layout | |
| 67 | +| `/tmp/big_desktop_theme` | Selected visual theme | |
| 68 | +| `/tmp/big_enable_jamesdsp` | Audio enhancement flag | |
| 69 | + |
| 70 | +--- |
| 71 | + |
| 72 | +## 📁 Project Structure |
| 73 | + |
| 74 | +This repository is organized to separate the live session logic from the installer components: |
| 75 | + |
| 76 | +```tree |
| 77 | +biglinux-livecd/ |
| 78 | +├── pkgbuild/ # Arch Linux packaging files |
| 79 | +├── locale/ # Translations (.po files) |
| 80 | +└── biglinux-livecd/usr/ |
| 81 | + ├── bin/ |
| 82 | + │ ├── startbiglive # Main entry point for live session |
| 83 | + │ └── calamares-biglinux # Installer wrapper script |
| 84 | + ├── share/biglinux/ |
| 85 | + │ ├── livecd/ # Setup Wizard Source (Python/GTK4) |
| 86 | + │ └── calamares/ # Installer UI Source |
| 87 | + └── lib/calamares/ # Custom Calamares modules |
| 88 | +``` |
| 89 | + |
| 90 | +--- |
| 91 | + |
| 92 | +## 🎯 Supported Variants |
| 93 | + |
| 94 | +BigLinux supports multiple desktop environments, automatically detected by the live system: |
| 95 | + |
| 96 | +| Variant | Detection Trigger | |
| 97 | +|---------|-------------------| |
| 98 | +| **BigLinux (KDE)** | Default fallback | |
| 99 | +| **Community GNOME** | `/usr/bin/startgnome-community` | |
| 100 | +| **Community Cinnamon** | `/usr/bin/startcinnamon-community` | |
| 101 | +| **Community XFCE** | `/usr/bin/startxfce-community` | |
| 102 | + |
| 103 | +--- |
| 104 | + |
| 105 | +## 🔧 Custom Boot Commands (GRUB) |
| 106 | + |
| 107 | +For advanced users and debugging, you can bypass the standard flow using the `biglinux.bootcmd` kernel parameter. |
| 108 | + |
| 109 | +**Example:** |
| 110 | +```bash |
| 111 | +linux /vmlinuz-linux ... biglinux.bootcmd=only-calamares |
| 112 | +``` |
| 113 | + |
| 114 | +| Command | Action | |
| 115 | +|---------|--------| |
| 116 | +| `boot-in-plasma` | Skip wizard, go straight to desktop | |
| 117 | +| `only-calamares` | Launch installer directly (minimal mode) | |
| 118 | +| `only-konsole` | Launch terminal only (rescue mode) | |
| 119 | + |
| 120 | +--- |
| 121 | + |
| 122 | +## 🛠️ Development |
| 123 | + |
| 124 | +### Prerequisites |
| 125 | + |
| 126 | +- Arch Linux or Manjaro based system |
| 127 | +- `makepkg` toolchain |
| 128 | +- Python 3.12+ and GTK4 development libraries |
| 129 | + |
| 130 | +### Build & Install |
| 131 | + |
| 132 | +```bash |
| 133 | +cd pkgbuild |
| 134 | +makepkg -si |
| 135 | +``` |
| 136 | + |
| 137 | +### Testing the UI |
| 138 | + |
| 139 | +Run the setup wizard in a windowed mode for rapid iteration: |
| 140 | + |
| 141 | +```bash |
| 142 | +# Preview via Broadway (Web) |
| 143 | +gtk4-broadwayd :5 & |
| 144 | +GDK_BACKEND=broadway BROADWAY_DISPLAY=:5 python3 /usr/share/biglinux/livecd/main.py |
| 145 | +# Open http://localhost:8085 |
| 146 | +``` |
| 147 | + |
| 148 | +--- |
| 149 | + |
| 150 | +## 🤝 Contributing |
| 151 | + |
| 152 | +Contributions are welcome! Please follow these steps: |
| 153 | + |
| 154 | +1. Fork the repository. |
| 155 | +2. Create a feature branch (`git checkout -b feature/amazing-feature`). |
| 156 | +3. Commit your changes (`git commit -m 'Add amazing feature'`). |
| 157 | +4. Push to the branch (`git push origin feature/amazing-feature`). |
| 158 | +5. Open a Pull Request. |
| 159 | + |
| 160 | +--- |
| 161 | + |
| 162 | +## 📄 License |
| 163 | + |
| 164 | +Distributed under the **GPL-3.0 License**. See [LICENSE](LICENSE) for more information. |
| 165 | + |
| 166 | +--- |
| 167 | + |
| 168 | +<div align="center"> |
| 169 | + |
| 170 | +**Made with 💚 by the BigLinux Team** |
| 171 | + |
| 172 | +[Website](https://biglinux.com.br) |
| 173 | + |
| 174 | +</div> |
0 commit comments