clan-core/pkgs/clan-vm-manager
2024-05-27 13:58:32 +00:00
..
bin clan-vm-manager: prepend local clan-cli to python path 2023-11-23 15:30:44 +01:00
clan_vm_manager consistent rename cLAN -> Clan 2024-05-27 13:58:32 +00:00
screenshots docs: improve readme for better onboarding 2024-03-09 10:58:12 +01:00
tests clan-vm-manager: Working pytest skeleton. clan-cli: Fixing devshell depending on itself 2024-03-24 23:36:00 +01:00
.envrc select-shell: Fix breakage with previous shell.nix change 2024-03-25 00:32:03 +01:00
clan-vm-manager.code-workspace build-clan: Removed unecessary arg, machineDescription and machineIcon 2024-02-05 16:56:13 +07:00
default.nix consistent rename cLAN -> Clan 2024-05-27 13:58:32 +00:00
demo.sh Working demo script 2024-02-16 17:51:55 +07:00
flake-module.nix fix: segfault gtk when using webkit 2024-05-18 14:14:12 +00:00
install-desktop.sh clan-vm-manager: Add install-desktop.sh. Fix incorrect doku link 2024-04-12 11:47:18 +02:00
notes.md init webview: add webview ui and list machine as api example 2024-05-18 14:14:12 +00:00
pyproject.toml pkgs: add metadata 2024-04-17 13:32:50 +02:00
README.md vm-manager: add toast overlay to main window 2024-03-10 10:40:00 +01:00
shell.nix api: fix typing issues 2024-05-21 16:01:57 +02:00

Clan VM Manager

Provides users with the simple functionality to manage their locally registered clans.

app-preview

Available commands

Run this application

./bin/clan-vm-manager

Join the default machine of a clan

./bin/clan-vm-manager [clan-uri]

Join a specific machine of a clan

./bin/clan-vm-manager [clan-uri]#[machine]

For more available commands see the developer section below.

Developing this Application

Debugging Style and Layout

# Enable the GTK debugger
gsettings set org.gtk.Settings.Debug enable-inspector-keybinding true

# Start the application with the debugger attached
GTK_DEBUG=interactive ./bin/clan-vm-manager --debug

Appending --debug flag enables debug logging printed into the console.

Profiling

To activate profiling you can run

PERF=1 ./bin/clan-vm-manager

Library Components

Note:

we recognized bugs when starting some cli-commands through the integrated vs-code terminal. If encountering issues make sure to run commands in a regular os-shell.

lib-Adw has a demo application showing all widgets. You can run it by executing

adwaita-1-demo

GTK4 has a demo application showing all widgets. You can run it by executing

gtk4-widget-factory

To find available icons execute

gtk4-icon-browser

Here are some important documentation links related to the Clan VM Manager:

  • Adw PyGobject Reference: This link provides the PyGObject reference documentation for the Adw library, which is used in the Clan VM Manager. It contains detailed information about the Adw widgets and their usage.

  • GTK4 PyGobject Reference: This link provides the PyGObject reference documentation for GTK4, the toolkit used for building the user interface of the Clan VM Manager. It includes information about GTK4 widgets, signals, and other features.

  • Adw Widget Gallery: This link showcases a widget gallery for Adw, allowing you to see the available widgets and their visual appearance. It can be helpful for designing the user interface of the Clan VM Manager.

  • Python + GTK3 Tutorial: Although the Clan VM Manager uses GTK4, this tutorial for GTK3 can still be useful as it covers the basics of building GTK-based applications with Python. It includes examples and explanations for various GTK widgets, including text views.

  • GNOME Human Interface Guidelines: This link provides the GNOME Human Interface Guidelines, which offer design and usability recommendations for creating GNOME applications. It covers topics such as layout, navigation, and interaction patterns.

Error handling

Error dialogs should be avoided where possible, since they are disruptive.

For simple non-critical errors, toasts can be a good alternative.