Introduced a unified gpu_inside_setup function in build.func to handle VAAPI and NVIDIA userland installation inside containers. Replaced bracket conditionals with if statements in passthrough.func for improved readability and maintainability, and made minor logic clarifications for privileged container checks.
Refactored the build_container function to handle MAC, gateway, VLAN, and MTU parameters more robustly, allowing for both direct and preformatted input. This change ensures correct formatting and prevents duplicate parameter prefixes in the network string.
Replaces direct USB and GPU passthrough configuration in build.func with a unified select_hw_passthrough function. Refactors passthrough.func to add interactive selection for VAAPI and NVIDIA devices, streamlines device detection, and updates userland installation functions for both VAAPI and NVIDIA. Cleans up and simplifies device mapping and group ID logic.
The VAAPI and NVIDIA setup functions are now called directly in debian-install.sh instead of within the LXC container customization block in build.func. The related code in build.func has been commented out to avoid duplicate execution.
Consolidates and simplifies VAAPI and NVIDIA passthrough logic by introducing unified GPU app detection and moving userland package installation into dedicated *_inside_setup functions. Updates build.func to use new function names and ensures setup is only performed for relevant apps and non-Alpine containers. Improves maintainability and clarity of passthrough.func.
Added direct installation of VAAPI and NVIDIA drivers inside LXC containers during setup, removing reliance on custom in-container scripts. The process now ensures required packages are installed and user permissions are set, improving automation and compatibility for supported distributions.
Replaces the inlined VAAPI passthrough logic in misc/build.func with calls to an external passthrough.func script, streamlining and centralizing hardware passthrough handling. Adds a new misc/passthrough.func file and introduces a hwaccel_setup_in_ct helper in misc/tools.func for hardware acceleration setup inside containers.
Replaces legacy VAAPI device detection and selection with a modular, more robust approach. Adds helpers for group ID resolution, device deduplication, and dynamic whiptail dialog sizing. Improves user prompts, error handling, and fallback logic for both privileged and unprivileged containers. The new implementation is more maintainable and user-friendly.
Refactors the LXC container network initialization to simplify IP wait logic, reduce gateway ping attempts from 20 to 10, and provide clearer status messages. Now warns instead of failing if the gateway is unreachable but the container has an IP, improving robustness in network checks.
Refactors the LXC network wait loop to use a for-loop with up to 20 attempts, providing clearer warnings and early exits when network and DNS are ready. Adds more robust handling for DNS failures by applying a fallback resolv.conf only after repeated failures, improving reliability and user feedback during container setup.
Improves readability and flexibility by building the NET_STRING variable incrementally, using parameter expansion to include only set values for MAC, GATE, VLAN, and MTU. This change makes the network configuration more robust and easier to maintain.
Replaces all occurrences of the 'init_error_traps' function with 'catch_errors' across container and install scripts for consistency in error handling. Also adjusts indentation and formatting in some scripts for improved readability.
Updated the whiptail menu in the install_script function to enhance usability. Changes include adjusting the backtitle, adding --fb and --notags options, updating the menu prompt with navigation instructions, and increasing the menu width for better display.
Changed menu titles to reference 'Community-Scripts' instead of generic 'SETTINGS' and adjusted menu width from 60 to 40 in install_script for improved clarity and UI consistency.
Simplifies the install_script function by replacing the PRESET environment variable logic with direct CLI argument support for preset selection. Updates the whiptail menu options, streamlines case handling, and improves error handling for invalid options. This refactor makes the script interface more intuitive and reduces code complexity.
Simplifies the menu item logic for settings and app defaults, updates the whiptail menu to use custom button labels, and replaces direct exit calls with the exit_script function for consistent script termination.
Eliminates the diagnostics and storage options from the install_script function, consolidating the menu and redirecting the diagnostics option to settings_menu. This simplifies the script's menu structure and removes unused or deprecated functionality.
Updated the install menu labels for clarity and dynamic numbering. Introduced a new settings_menu function to manage diagnostic, default, and storage settings, with conditional options based on the presence of app defaults.
Corrects the logic for setting TEMPLATE_STORAGE and CONTAINER_STORAGE by checking if tpl and ct are set, respectively, and calling choose_and_set_storage_for_file if not. This ensures storage variables are properly initialized before use.
Unifies and refactors storage selection logic to always prompt the user for container and template storage choices unless only one option exists, as per requirement #4. Removes legacy selection functions, updates all relevant install and menu flows to use the new logic, and ensures storage settings are consistently written to vars files and environment variables. Also improves code clarity and maintains storage summary output.