mirror of
https://github.com/stornic56/debianito-post-install.git
synced 2026-07-16 13:59:50 +00:00
Displays managers & zram menu
- LightDM Overhaul: Rewrote `install_lightdm()` logic to verify both lightdm and lightdm-gtk-gtk-greeter-settings. Now installs the trio in a single command if missing, skipping only when fully present. Added "Enable autologin" option modifying `/etc/lightdm/lightdm.conf` with robust `sed` patterns for `SUDO_USER`. Fixed missing `debconf-set-selections` to ensure LightDM is set as default during installation. - GDM3 Implementation: Created a new sub-menu in `modules/desktop_display.sh` allowing independent installation of GDM3, User List toggle (hide/show), Autologin configuration via `/etc/gdm3/daemon.conf`, and conditional "Force Enable Wayland on NVIDIA" for Debian 12/13 using udev symlinks. - SDDM Integration: Added SDDM as option 3 in the Display Manager menu. Implemented automatic session detection (Wayland > X11) to populate `/etc/sddm.conf.d/autologin.conf` without user input, defaulting to plasmawayland, lxqt-wayland, or generic fallbacks. - greetd support: Added conditional support for Debian 12 and 13 only. Implemented sub-menu with base install, recommended `tuigreet` (with backports handling for Bookworm), and other manual setup options (`gtkgreet`, `nwg-hello`, `wlgreet`) exclusive to Trixie. - ZRAM UX Improvements: Updated descriptions in `modules/zram.sh` to explicitly mention I/O reduction and responsiveness benefits for low-RAM systems (e.g., 4GB). Cleaned up compression algorithm labels (`lz4`, `zstd`) to remove redundancy in menu values. - General Code Quality: Standardized all user-facing messages to English across modules. Ensured independent package installation checks prevent script abortion if one DM fails, while maintaining strict error handling for system configurations. - update docs and readme
This commit is contained in:
+27
-16
@@ -36,7 +36,7 @@ deb https://deb.debian.org/debian bookworm main contrib non-free non-free-firmwa
|
||||
```yaml
|
||||
Types: deb
|
||||
URIs: https://deb.debian.org/debian
|
||||
Suites: bookworm bookworm-updates
|
||||
Suites: trixie trixie-updates
|
||||
Components: main contrib non-free non-free-firmware
|
||||
```
|
||||
|
||||
@@ -52,6 +52,7 @@ The script automatically detects your current format and offers migration option
|
||||
|
||||
The `configure_repos()` function in `repos.sh` executes the following sequence:
|
||||
|
||||
|
||||
```bash
|
||||
┌─────────────────────────────────────────────────────────────┐
|
||||
│ INITIAL DETECTION PHASE │
|
||||
@@ -71,51 +72,61 @@ The `configure_repos()` function in `repos.sh` executes the following sequence:
|
||||
┌─────────────────────────────────────────────────────────────┐
|
||||
│ USER INTERACTION PHASE │
|
||||
├─────────────────────────────────────────────────────────────┤
|
||||
│ 4. Repository Format Selection (Trixie only) │
|
||||
│ └── whiptail yesno: Migrate to DEB822? (default NO) │
|
||||
│ 4. Repository Menu Loop (while true) │
|
||||
│ └── _menu: Select action from multiple options │
|
||||
│ │
|
||||
│ 5. Backports Enablement │
|
||||
│ └── whiptail confirm: Enable Backports? │
|
||||
│ Options Available: │
|
||||
│ ├── Debian 13+ (Trixie): │
|
||||
│ │ ├── 1. Enable Contrib & Non-Free Components │
|
||||
│ │ ├── 2. Migrate traditional sources.list to DEB822 │
|
||||
│ │ ├── 3. Setup/Update Backports repositories │
|
||||
│ │ ├── 4. [ADVANCED] Upgrade system branch (Testing/SID)│
|
||||
│ │ └── 5. Back to main menu │
|
||||
│ │
|
||||
│ └── Other Versions: │
|
||||
│ ├── 1-3 same as above │
|
||||
│ └── No option 4 (branch upgrade not available) │
|
||||
└─────────────────────────────────────────────────────────────┘
|
||||
↓
|
||||
┌─────────────────────────────────────────────────────────────┐
|
||||
│ DECISION MATRIX PHASE │
|
||||
├─────────────────────────────────────────────────────────────┤
|
||||
│ 6. Determine Action Type │
|
||||
│ 5. Determine Action Type (per menu selection) │
|
||||
│ ├── If format changed → "migrate" │
|
||||
│ ├── If nothing changed → "update" (skip) │
|
||||
│ ├── If nothing changed → "skip" (idempotent) │
|
||||
│ └── Otherwise → "write" │
|
||||
│ │
|
||||
│ 7. Idempotency Check │
|
||||
│ 6. Idempotency Check │
|
||||
│ └── content_differs() compares generated vs existing │
|
||||
└─────────────────────────────────────────────────────────────┘
|
||||
↓
|
||||
┌─────────────────────────────────────────────────────────────┐
|
||||
│ EXECUTION PHASE │
|
||||
├─────────────────────────────────────────────────────────────┤
|
||||
│ 8. Backup Current Repositories │
|
||||
│ 7. Backup Current Repositories │
|
||||
│ └── backup_current_repos() → temp directory │
|
||||
│ │
|
||||
│ 9. Write Configuration │
|
||||
│ 8. Write Configuration │
|
||||
│ ├── _write_deb822() OR _write_classic() │
|
||||
│ ├── Creates appropriate file(s) │
|
||||
│ └── Includes main + backports if enabled │
|
||||
│ │
|
||||
│ 10. Update Package Lists │
|
||||
│ 9. Update Package Lists │
|
||||
│ └── sudo apt update │
|
||||
└─────────────────────────────────────────────────────────────┘
|
||||
↓
|
||||
┌─────────────────────────────────────────────────────────────┐
|
||||
│ POST-EXECUTION PHASE │
|
||||
├─────────────────────────────────────────────────────────────┤
|
||||
│ 11. Success Path │
|
||||
│ 10. Success Path │
|
||||
│ ├── REPOS_CONFIGURED=true │
|
||||
│ ├── Cleanup disabled files │
|
||||
│ └── Optional: Upgrade system if packages available │
|
||||
│ │
|
||||
│ 12. Failure Path (apt update failed) │
|
||||
│ 11. Failure Path (apt update failed) │
|
||||
│ └── restore_previous_repos() → rollback to backup │
|
||||
└─────────────────────────────────────────────────────────────┘
|
||||
|
||||
```
|
||||
|
||||
**Key Safety Mechanisms:**
|
||||
@@ -134,7 +145,7 @@ The script enables specific APT component branches that are essential for hardwa
|
||||
|-----------|---------|--------------|---------------------|
|
||||
| **main** | Free, open-source software (Debian official) | All packages | Always enabled |
|
||||
| **contrib** | Free software that uses non-free components | Proprietary codecs, drivers | Enabled in all versions |
|
||||
| **non-free** | Non-free firmware and proprietary software | NVIDIA/AMD GPU drivers, Wi-Fi firmware | Required for hardware support |
|
||||
| **non-free** | Non-free firmware and proprietary software | NVIDIA GPU drivers, Wi-Fi firmware | Required for hardware support |
|
||||
| **non-free-firmware** | Firmware blobs (Wi-Fi, Bluetooth, etc.) | Wireless adapters, embedded chips | **Critical from Debian 12+** |
|
||||
|
||||
#### Why `non-free-firmware` is Vital (Debian 12+)
|
||||
@@ -143,7 +154,7 @@ Starting with Debian Bookworm (12.0), the `non-free-firmware` component was sepa
|
||||
|
||||
```bash
|
||||
# Before Debian 12 (Bookworm)
|
||||
deb https://deb.debian.org/debian bookworm main contrib non-free
|
||||
deb https://deb.debian.org/debian bullseye main contrib non-free
|
||||
|
||||
# After Debian 12 (Bookworm+) - SEPARATE COMPONENTS
|
||||
deb https://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
|
||||
@@ -221,7 +232,7 @@ The script includes a detailed explanation because backports enable critical fea
|
||||
|
||||
| Feature | Without Backports | With Backports |
|
||||
|---------|-------------------|----------------|
|
||||
| **Linux Kernel** | Stable kernel only (e.g., 5.10) | Newer kernels (e.g., 6.x series) |
|
||||
| **Linux Kernel** | Stable kernel only (e.g., 6.1-6.12) | Newer kernels (e.g., 6.x/7.x series) |
|
||||
| **GPU "Drivers"** | Latest Mesa from stable | Latest Mesa from testing |
|
||||
| **Wi-Fi Firmware** | Older firmware versions | Newest firmware for modern cards |
|
||||
| **System Stability** | Maximum stability | Tested-but-newer packages |
|
||||
|
||||
Reference in New Issue
Block a user