Ferdium Documentation
repository·develop·Indexed 26 days ago
https://github.com/ferdium/ferdium-appA desktop application for organizing messaging and web services like WhatsApp, Slack, and Telegram into a single interface. This documentation covers installation, migration from Ferdi, custom CSS styling, D-Bus API integration for Linux, internal server configuration, and a developer reference for the ApiInterface and React UI components.
What's inside Ferdium
- Ferdium provides an inter-process communication interface on Linux systems using D-Bus. This allows third-party applications (like status bars) to interact with Ferdium to display unread notification counts or to mute/unmute notifications.
Ferdium Brand Assets and Colors
developFerdium's visual identity includes specific assets and a signature gradient.
Gradient Configuration
The Ferdium gradient is rotated by 45°. It transitions from
#7266f0in the bottom left to#734ed3in the top right.Import configuration data into Ferdium
developTo restore a previous setup or migrate to a new instance, you can import a
.ferdi-dataor.ferdium-datafile.- Ensure Ferdium is running on your system.
- On the "Get Started" screen, navigate to
Help > Import/Export Configuration Data. This will open a local URL in your default browser. - Click on
import your data from a ".ferdium-data" or ".ferdi-data" file. - Use the File browser button to select your previously saved
export.ferdi-datafile. - Click the "Import data" button.
- Restart the application.
Important Notes:
- Session Data: You must log in to all services manually after importing. Session information is stored locally only and is not included in the export/import process.
- Duplicate Services: Importing data adds services to your current list rather than overriding them. To avoid duplicates, delete any existing services before performing the import.
Migrate from Ferdi to Ferdium
developIf you are a pre-existing Ferdi user, you can migrate your profile so Ferdium can pick up your existing configurations using migration scripts.
- Windows users: Use the
.ps1scripts located in./scripts/migration. - UNIX (Linux and MacOS) users: Use the
.shscripts located in./scripts/migration.
For detailed instructions, refer to
docs/MIGRATION.md.- Windows users: Use the
Export backups from ferdium-internal-server
developBecause
ferdium-internal-serverruns as a local server, settings are not automatically synced. To manually backup your settings:- In Ferdium, navigate to
Help > Import/Export Configuration Data. - This will open the running server page in your web browser.
- Select the option to export and save the generated file to your local machine.
- In Ferdium, navigate to
Export configuration data from Ferdi or Ferdium
developYou can export your current setup (services, configurations, etc.) to a
.ferdi-datafile for backup or migration. This works for both account-based and accountless sessions.- Ensure the application is running on your system.
- Navigate to
Help > Import/Export Configuration Datain the application menu. This will open a URL in your default browser. - Click on
export your data to a ".ferdi-data" file. - Save the resulting
export.ferdi-datafile to a secure location.
Import Franz or Ferdi accounts into ferdium-internal-server
developYou can import a full Franz account, including all settings, services, and workspaces, into
ferdium-internal-server:- Ensure
CONNECT_WITH_FRANZis set totruein yourenv.iniconfiguration. - In Ferdium, go to
Help > Import/Export Configuration Datato open the server page in your browser. - Log in using your Franz account credentials.
- The server will automatically create a new user with those credentials and copy your Franz settings, services, and workspaces.
- Ensure
Run the Ferdium D-Bus status bar example
developFerdium provides a Python-based example module for status bars (e.g., Waybar or Polybar) located in
docs/dbus.To run this example, you must have:
- Python 3.11
- The
dbus-nextPyPI package - The
ferdium-dbus-pyclient library
The example script
ferdium_bar.pycan be used to display unread counts. You can inspect available commands using the--helpflag.Download Ferdium
developYou can download Ferdium via the official website or through GitHub releases.
- Official Download Page: ferdium.org/download
- GitHub Releases: ferdium/ferdium-app/releases
Configure ferdium-internal-server via env.ini
developThe
ferdium-internal-serveruses anenv.inifile for configuration. In addition to standard AdonisJS settings, you can configure the following custom setting:CONNECT_WITH_FRANZ(trueorfalse, default:true): When set totrue, the server enables connections to the Franz server, allowing you to show the full Franz/Ferdi recipe library and import Franz/Ferdi accounts.
Style Ferdium with custom CSS
developYou can apply custom styles to the Ferdium UI by creating or editing a
custom.cssfile located in theUSER_DATA/Ferdium/config/directory.The location of
USER_DATAvaries by platform:- Windows:
%APPDATA% - Linux:
$XDG_CONFIG_HOMEor~/.config/ - MacOS:
~/Library/Application Support
- Windows:
Use the Select component
developThe
Selectcomponent is a custom dropdown UI element used for selecting values from a list of options. It supports searching (filtering), keyboard navigation (arrow keys and Enter), and can be configured as a controlled or uncontrolled component. It also integrates with a label and error message system via theIFormFieldinterface.Key Features
- Searchable: If
showSearchis true, a search input appears when the dropdown is open. - Keyboard Navigation: Supports
ArrowUp,ArrowDown, andEnterto navigate and select options. - Data Attributes: Any object passed to the
dataprop is applied asdata-*attributes to the underlying hidden input element. - Validation: Displays error messages if the
errorprop is provided.
- Searchable: If