# Changelog — [Türkçe](CHANGELOG.md) ## [4.0.4] — 2026-06-25 ### Added - Username validation function `validate_username` (returns detailed error messages) - Forbidden system usernames list (root, daemon, bin, sys, etc.) - Turkish character conversions extended to include uppercase letters (Ş, Ğ, İ, Ö, Ü, Ç) - New username validation keys in locale files (username_too_long, username_forbidden, username_invalid_start, username_invalid_chars) - `autologin` field added to UsersStep struct ### Changed - Check/fail icons for username, password validation, and hostname inputs moved next to input fields - Error messages shown below inputs (username validation, password mismatch) - Bootloader page form layout updated to match users page (Frame, form_label, form_input_text/password) - Display manager step removed from step list (ISOs ship with single desktop environment) - Autologin feature moved from display manager step to users step - Display manager configuration made automatic (desktop_environment auto-detected) - Desktop environment selection used in SDDM/GDM configuration (xfce.desktop, gnome.desktop, etc.) - Autologin default value changed to false ### Fixed - Sidebar text color disappearing in dark mode (SIDEBAR_TEXT set to white) - Incorrect character in derive_username function (ā → ğ) - unused_mut warning (name variable) - unused variable warning (err variable) - unused import warning (DisplayManagerStep) --- ## [4.0.3] — 2026-06-23 ### Added - Searchable keyboard layout/variant selector: egui `TextEdit` + `Area` popup custom implementation - `color_from_hex(hex: u32)` helper (`combobox_stil.rs`) - `layout_buf`, `variant_buf` fields (`KeyboardStep`) ### Changed - `egui-dropdown` dependency removed (no longer used) - Layout/Variant selectors side-by-side → stacked, label width equalized to longest label - Popup item height 28px → 32px, gradient background (`draw_gradient_bg`) in `combobox.rs` style - `DROPDOWN_TEXT_COLOR` off-white → pure white (`color_from_hex(0xFFFFFF)`) - All color constants converted to hex format (`color_from_hex`) ### Fixed - Popup not showing all items on first open due to old selection filter — buffer cleared on focus - `t!()` return type `Cow` → `String` mismatch (`keyboard.rs`) ### Changed - Slider maximum value now equals available disk space (excluding other partitions) - Selected partition capacity included in slider range in edit mode - `form_input_text` size field directly connected to `add_size_str`, formatted MB display added - Size label now in `"123.456 MB"` format instead of `"123 MB"` (for parseable values) ### Fixed - Value written to size input field not written back to `add_size_str` — text edit remained read-only --- ## [4.0.1] — 2026-06-19 ### Added - `c_root_bg()` theme function - `show_root_password`, `show_root_password_confirm` fields (`UsersStep`) - `form_input_text` / `form_input_password` wrapped with `Frame` and `.frame(false)` ### Changed - `form_input_text`: Wrapped in Frame, added stroke/fill/rounding, height 32→10 - `form_input_password`: SVG eye icons (instead of emoji), Frame wrapped, `override_text_color` - Disk grid selection colors `theme::c_*()` → constant `(237,237,224,1)` - Disk list header and column headers: `Align::Center` → `Align::LEFT`, `vertical_centered` removed - Root password fields raw `TextEdit` → `form_input_password` (with eye icon + frame) - User form Frame color `theme::c_bg_widget()` → `(240,243,198)` - Manual disk list brand/model label ordering changed ### Fixed - `users.rs:154` — `Color32` import error (missing `egui::` prefix) --- ## [4.0.0] — 2026-06-18 ### Added - `CHANGELOG.md` - `src/ui/combobox.rs` — ComboBox helpers (`show_combo_box`, `selectable_value`, `selectable_value_custom`, `draw_gradient_bg`) - `src/ui/combobox_stil.rs` — ComboBox visual constants and `apply_visuals()` - `src/steps/location.rs` — Region/timezone selection step - `src/steps/network.rs` — Network configuration step - `src/steps/rescue.rs` — Rescue mode - `xkbcommon` dependency - Keyboard visual: XKB keymap → egui drawing (`compile_layout`, `draw_layout`, `keysym_to_label`) - ISO‑105 key position mapping (function keys, numpad, navigation included) - Single character display per key (uppercase preferred) ### Changed - Keyboard visual: KLE JSON download/parse → direct keymap compilation with xkbcommon - `Cargo.toml`: `ureq`, `serde_json` removed; `xkbcommon` added - ComboBox styles moved from `theme.rs` → `combobox_stil.rs` - Comment lines added to `secondary_button` gradient colors - `draw_gradient_bg` moved to `combobox_stil.rs` - All ComboBox usages updated with `theme::show_combo_box` / `theme::selectable_value` - Keyboard step (`keyboard.rs`): `ScrollArea`+`selectable_label` → ComboBox - `TextEdit::multiline` background made with per-widget `Frame::group` - `locale/` files updated - Font sizes increased (label 9→12, secondary 7→9) ### Removed - `ureq`, `serde_json` dependencies - `assets/keyboards/KLE_*.json` cache files - `assets/keyboards/KB_*.svg` files - Old keyboard SVG loading code - KLE JSON download/cache logic - Old button examples in demo page ### Fixed - `set_style`/`set_visuals` order: `set_style` called first - Region/timezone labels vertically aligned - Keyboard step `on_enter` not called on first render — layout also initialized in `show()` - `xkbcommon::Keycode` iteration (conversion with `raw()`) - `None::<&str>` → `None::` type mismatch --- ## [4.0.0] — 2026-06-06 ### Added - Rescue mode (rescue step) - Network configuration step (NetworkManager/Wicd) - Netinstall step - LVM and LUKS encryption support - Demo mode (`--demo`) - Automatic installation (`--auto-install answer.toml`) - Multi-language support with `rust-i18n` (Turkish, English) - Gradient buttons (`gradient_button`, `secondary_button`) - Language selector (flag + label) - SVG loading support (`egui_extras` + `image`) - Slideshow (configurable with branding.toml) - Step list in sidebar (processed steps green ✔️) - Real-time installation file tracking - Advanced partitioning UI (usage bar, LUKS indicator, mount-point selector) ### Changed - `pspec.xml`/`actions.py` → Cargo-based build - `comar`/`mudur` calls → `zbus` D-Bus and direct command execution - Shell-based password management → secure stdin piping (LUKS/GRUB) - Automatic username derivation (real name → system username) - Hostname validation/sanitization - Cleanup operations: user deletion, pool management, boot directory cleanup - Rsync command with dynamic exclusion - Version 4.0.1 → 4.0.0 (Cargo.toml compatibility) ### Fixed - GRUB password writing security - Dracut/Mkinitcpio LVM module addition - EFI partition detection and mounting - Password strength indicator colors - Automatic partitioning (LVM/LUKS ordering) --- ## [0.1.0] — 2026-05-20 ### Added - First stable release - Project skeleton (egui + wgpu) - Step-based installation wizard - Automatic disk partitioning (GPT/MBR) - User creation (with password strength check) - Bootloader configuration (GRUB) - Display manager selection - Summary screen - Basic color theme (light/dark) - Customizable branding (branding.toml) - Error screen for rescue purposes - Job queue (JobQueue / async task management) - YALI serialization (installer state save/load)