Ditana follows a modular architecture where functionality is separated into individual Arch packages. This approach enables flexible system configuration, simplified maintenance, and clear dependency management. The packages are organized into three main categories:
This is the multi-page printable view of this section. Click here to print.
The Packages
- 1: Core Packages
- 2: Configuration packages
- 3: Ditana Desktop Enhancements
- 4: Packaged External Sources
- 5: Repackaged AUR Contributions
1 - Core Packages
These packages provide the core functionality of Ditana GNU/Linux. They are carefully maintained to ensure system stability and reliability, with thorough testing of all updates before release. They integrate seamlessly with Arch Linux while providing Ditana-specific enhancements.
Mandatory packages used by the Ditana installer
- ditana-filesystem - This package replaces the standard filesystem package from Arch Linux, providing Ditana-specific customizations and core system files for Ditana GNU/Linux.
- ditana-config-shell - This package provides a common shell configuration for Ditana GNU/Linux, enabling shared configurations between bash and zsh. It is installed as a dependency of ditana-config-bash
- ditana-mirrorlist - This package contains the mirrorlist for Ditana repositories, used by the pacman package manager.
Default packages selectable via the installer’s “AI” category
- ditana-assistant - Ditana Assistant is an innovative AI-powered application that combines a graphical user interface with terminal functionality and, optionally, introspective contextual augmentation via Wolfram|Alpha. Even without Wolfram|Alpha, the Introspective Contextual Augmentation (ICA) enhances AI responses in many cases. It leverages Large Language Models (LLMs) to provide intelligent assistance similar to the native browser interfaces of AI service providers.
Default packages selectable via the installer’s “System Maintenance Tools” category
- zfs-autosnap - This package enables automatic ZFS snapshots during system updates. It automatically excludes the pacman lock file from snapshots to the state after a restrollback is as expected.
Default packages selectable via the installer’s “Network and Security Tools” category
- ditana-network - This package enables basic networking capabilities on the system. This includes configuration of DNSSEC and DNS over TLS for secure, encrypted DNS, fully integrated with systemd-resolved to ensure consistent and reliable name resolution. Additionally, it enables the Network Time Synchronization systemd service.
Default packages selectable via the installer’s “Storage & File System Options” category
- ditana-ramdisk - This package provides a user-specific RAM disk service for Ditana GNU/Linux, offering fast, temporary storage with enhanced privacy and organization.
Dependencies of ditana-config-xfce
- ditana-print-system-infos - This package provides a script to print system information in Ditana shells.
Optional packages selectable via the installer’s “Development Tools and Libraries” category
- ditana-update-from-skel -
This package provides a Ditana-specific script to update a user’s home directory with files from
/etc/skel
.
Packages available for manual installation
- ditana-testing-mirrorlist -
This package provides a testing mirrorlist for Ditana, used for development and testing purposes. It is required to use
build.sh
on thetesting
branch. In this case, an ISO will be generated the references not the default mirrorlist, but the this one.
2 - Configuration packages
Configuration packages handle various aspects of system setup and optimization in Ditana. These packages contain scripts, configuration files, and utilities that automate system configurations while maintaining transparency and user control. They handle tasks such as hardware detection, performance optimization, and security settings.
Each package in this category focuses on the configuration of a specific application, making the system both modular and maintainable. Users can selectively enable or disable features while maintaining system stability.
Mandatory packages used by the Ditana installer
- ditana-config-bash - This package provides bash-specific configurations for Ditana GNU/Linux, complementing the common shell configurations.
Default packages selectable via the installer’s “Terminal Tools and Utilities” category
- ditana-config-zsh - This package provides zsh-specific configurations for Ditana GNU/Linux, complementing the common shell configurations.
- ditana-config-micro - This package provides a preconfigured setup of the micro text editor for Ditana GNU/Linux, optimizing it for a seamless and efficient terminal-based editing experience.
Default packages selectable via the installer’s “AI” category
- ditana-koboldcpp - Ditana KoboldCpp is a systemd service that runs KoboldCpp with the Gemma language model locally, providing you with private AI chat capabilities on your PC.
- ditana-config-logseq - This package provides a preconfigured setup of Logseq with its GPT-3 OpenAI plugin, tailored for use with a local KoboldCpp instance.
Default packages selectable via the installer’s “System Maintenance Tools” category
- ditana-config-coredumps -
This package disables coredumps for security reasons. You can temporarily allow them with
ulimit -c unlimited
(see details on GitHub).
Dependencies of ditana-config-xfce
- ditana-config-kitty - This package provides the Ditana’s custom configuration for the kitty terminal emulator.
Optional packages selectable via the installer’s “Development Tools and Libraries” category
- ditana-config-vscode - This package provides a preconfigured setup of the Open Source build of Visual Studio Code for Ditana GNU/Linux, optimizing it for an enhanced coding experience.
3 - Ditana Desktop Enhancements
Desktop enhancement packages extend the functionality of the Ditana desktop environment. These packages focus on improving user experience, productivity, and system integration when running Ditana with a graphical interface. They include customized XFCE components, system tray utilities, and various desktop tools.
Each package in this category is designed to integrate seamlessly with the base desktop environment while providing additional features and optimizations specific to Ditana’s desktop experience. These packages are installed if the user selects to install a Desktop Environment during installation.
- ditana-config-xfce - This package is installed when users select a desktop environment in the Ditana installer, providing configuration and customization for XFCE. The package manages system-wide settings and user-specific defaults to ensure an optimal experience with high-DPI displays, desktop panels, font configurations, and system behavior.
- xfce-display-config-observer - Monitors display changes to automatically adjust the font DPI to match the display DPI and adjust the height of the XFCE panel based on the display’s physical size.
- xfce-wallpaper-overlay - Automatically overlay text and images on XFCE wallpapers.
- ditana-print-system-load - This package provides a script to display system load and resource usage in the XFCE panel of Ditana GNU/Linux.
4 - Packaged External Sources
These packages contain external resources that are not available as official Arch packages or in the AUR. To ensure easy installation and updates through Ditana’s package management system, we maintain Arch packages for these external sources. This allows users to install and manage these resources through pacman, integrating them seamlessly into the standard package management workflow.
- kora-yellow-icon-theme - This package provides the Kora Yellow Icon Theme for Ditana GNU/Linux and other Arch-based systems. It is installed if the user selects to install a Desktop Environment during installation. Many thanks to bikass, the author of the Kora Icon Theme, for creating this beautiful and versatile icon set. We highly appreciate their work and contribution to the Linux desktop customization community.
5 - Repackaged AUR Contributions
Unlike the packages in other categories, the following do not have Ditana-specific GitHub repositories. These packages are built directly from the Arch User Repository (AUR) and are provided in the Ditana package repository for seamless installation via pacman. They are repackaged because they are either dependencies for other Ditana-specific packages listed in the previous categories, or for the Ditana installer.
Packages that are not installed, but the Ditana installer uses them
- rakudo-bin - The Ditana installer is written in Raku.
Optional packages selectable via the installer’s “Hardware Support Options” category
The Ditana installers offers to install these packages in case the PCI ID of the graphics card is documented by NVIDIA to require a legacy driver. For even older graphics cards, the Ditana installer recommends the use the Nouveau driver instead.
Packages required if the installer detects a B43 Wi-Fi device
Packages required if the ZFS filesystem is selected in the installer
- zfs-dkms - Kernel modules for the Zettabyte File System.
- zfs-utils - Userspace utilities for the Zettabyte File System.
Optional packages selectable via the installer’s “Desktop Applications” category
- Back In Time - A straightforward backup tool that provides an easy-to-use interface for restoring previously saved snapshots of your file system.
- ZapZap - A reliable WhatsApp desktop application that avoids heavy CPU load in browsers. It allows you to paste images directly into a chat.
Dependencies of ditana-config-xfce, which is installed if the user selects a desktop installation:
- dracula-gtk-theme - The dark theme used for Ditana’s XFCE desktop.
- kalu - Upgrade notifier with AUR support, watched (AUR) packages, news. It is a small application that will add an icon to your systray and sit there, regularly checking if there’s anything new for you to upgrade. As soon as it finds something, it’ll show a notification to let you know about it.
- lightdm-settings - A configuration tool for the LightDM display manager.
- mugshot - Program to update personal user details. This is no dependency of XFCE packages, but it is directly used by XFCE and required to avoid error message «Failed to edit profile».
Optional packages selectable via the installer’s “AI” category
Dependencies of Ditana Assistant:
- python-proxy_tools - Simple proxy implementation for Python.
- python-pywebview - pywebview is a lightweight cross-platform wrapper around a webview component that allows to display HTML content in its own native GUI window. It gives you the power of web technologies in your desktop application, hiding the fact that the GUI is browser based. Available for Windows, macOS, Linux and Android. You can use pywebview either with a 3rd party web framework or on its own with a two way bridge between Python and DOM.
Dependencies of ditana-config-logseq:
- logseq-desktop-bin. More than just a note-taking app, Logseq serves as a comprehensive platform for organizing thoughts, managing tasks, and building knowledge databases. In Ditana, Logseq is specially configured to leverage the local AI powered by KoboldCpp. This integration enables AI-assisted note-taking, content generation, and knowledge management, all while maintaining privacy and security. Ideal for anyone looking to enhance their intellectual workflow with the power of AI, without compromising on data privacy.
Optional packages selectable via the installer’s “Repository & Package Management Configuration” category
- PacUI - A convenient text-based graphical interface that supports quick browsing of available installation packages (including AUR) and their installation. In addition, pacui provides advanced commands, such as package dependency trees. It also uses fwupd to install firmware updates. For AUR, it supports pikaur, which is the default AUR helper on Ditana. In case of a Ditana desktop installation, PacUI is pinned to the dock.
Optional packages selectable via the installer’s “System Maintenance Tools” category
- rate-mirrors - An everyday-use client-side map-aware mirror ranking tool. This is also used by the Ditana Installer to find fast mirrors for the installation.
Optional packages selectable via the installer’s “Network and Security Tools” category
- Bubblejail - A sandboxing utility that provides application isolation without parallel packaging systems. It implements a resource-oriented permission model, enhanced by seccomp and D-Bus filtering. Key features include:
- Fine-grained control over application permissions and resource access
- X11/Wayland display server integration
- Custom home directory isolation per application
- User-friendly graphical interface for sandbox configuration
Optional packages selectable via the installer’s “Development Tools and Libraries” category
- auracle-git - A flexible client for the Arch User Repository (AUR). It provides advanced features for managing and searching AUR packages (not installation).
- stress-ng - Software to stress test a computer system in various selectable ways.
Dependencies of ditana-config-vscode
- code-marketplace - Enable vscode marketplace in the Open Source Build of Visual Studio Code.