Skip to main content

Development

The code

Has been refactored on several occasions to make readability easier on notebooks and smaller height screens ...

Can be simply run, straight from the download folder.

Once qqX has been setup, any local use of ./qqXwill pick up the main settings file at $HOME/.qqX and automatically locate all your installed VMs.

Run any new version of qqX directly from its storage folder by right clicking, or by opening a terminal at the folder location.

Editing

Several versions may be present on the system. Custom or development versions may be hot-swapped if their location has been given, in the section towards the end of the general settings file.

Clones from the old TuxVinyards repo should continue to link but it is best to open a terminal in the clone folder and use the following to reset the origin:

# show config
git config --get remote.origin.url
# >
# https://github.com/TuxVinyards/qqX.git

# set to new
git remote set-url origin "https://github.com/qqxproject/qqX.git"

Helper script

When working on mouse-click desktop functions, there is a special script that avoids the need to keep running the installer.

Use 'qqX_copy_over' to easily update installed versions of qqX with modified scripts and settings from your source folder.

Copy this file from the qqX.system folder onto your actual desktop and edit the script to where your source is ... This way, you can easily switch workspaces and run it when needed.

Version 1.8 also added a copy-over for the builtins and an updater for the installed settings file.

Testing

Changes to the Quickget Mods file are fairly easy to check: Open a terminal from inside the FreeSpirit built-in folder. Type ./quickget --full-check distroname eg:

qqX.builtins/freespirit$ ./quickget --version
FS 4.9.8.06

qqX.builtins/freespirit$ ./quickget --full-check opensuse

Checksum: PASS Iso: PASS opensuse-leap-Gnome https://download.opensuse.org/distribution/openSUSE-current/live/openSUSE-Leap-15.6-GNOME-Live-x86_64-Media.iso 585cf7cfe23454324ff188b95c01bdcb26e7dd3dc139389cfe8e8b0705c3e089
Checksum: PASS Iso: PASS opensuse-leap-KDE https://download.opensuse.org/distribution/openSUSE-current/live/openSUSE-Leap-15.6-KDE-Live-x86_64-Media.iso 8b386e4fc04b6921b35302464b4f60ca2a8835f8a40b749b7e8eb995625c793f
Checksum: PASS Iso: PASS opensuse-leap-XFCE https://download.opensuse.org/distribution/openSUSE-current/live/openSUSE-Leap-15.6-XFCE-Live-x86_64-Media.iso 5fa12124b87b36de79323d2a53c63087d1b87b9f58afc404bb656c0b14a64581
Checksum: PASS Iso: PASS opensuse-leap-Rescue https://download.opensuse.org/distribution/openSUSE-current/live/openSUSE-Leap-15.6-Rescue-CD-x86_64-Media.iso 4d6cb3b937af3c44f3e10e097b38fe390bf07f576062f1059188e84dd3ee9462
Checksum: PASS Iso: PASS opensuse-leap-micro-current https://download.opensuse.org/distribution/leap-micro-current/product/iso/openSUSE-Leap-6.1-x86_64-Current.iso 0fb4f6d628563c63443ffb4dd2e42e6d45f0a7f9e6e6f2611e1208717cbb26be
Checksum: PASS Iso: PASS opensuse-slowroll-DVD https://download.opensuse.org/slowroll/iso/openSUSE-Slowroll-DVD-x86_64-Build33.3-Media.iso a2fe4344f459f5d9b02e43c991ba82e0d6fbaf139e9754a015ce0ebe23dcfe4b
Checksum: PASS Iso: PASS opensuse-tumbleweed-DVD https://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-DVD-x86_64-Current.iso a251a3a044ead89481410865307a6e8373c36921cd800a369f942f2bf9df8d71
Checksum: PASS Iso: PASS opensuse-tumbleweed-Gnome https://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-GNOME-Live-x86_64-Current.iso 34f6131af8795304f3410335671a2f7b4f12a76adf1b802d90a7f274d346059f
Checksum: PASS Iso: PASS opensuse-tumbleweed-KDE https://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-KDE-Live-x86_64-Current.iso 6a3da08a14f3df1fcc66da6249f87c97355914e7c447e38dadaf8e6897a519b2
Checksum: PASS Iso: PASS opensuse-tumbleweed-XFCE https://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-XFCE-Live-x86_64-Current.iso 37183f2249cca0caf85fec6f109d5b0377cbfecb74b7a6c7684ccd01ce49bb40
Checksum: PASS Iso: PASS opensuse-tumbleweed-Rescue https://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-Rescue-CD-x86_64-Current.iso 2f34739867111ec8259ee5c704c664bb71ad88db62fc4d115801ab89f10cc820

On the other hand, any fundamental changes to qqX itself will need installing and checking on several different distros and desktops. Simple changes need only be tested on the host machine.

qqX has several layers of backup and fail safe, however do snapshot and/or backup.

Dev-Next branch

Most new work is done here. Expect this branch to occasionally rebase when changes a made to the main branch. Also, to avoid excessive minor changes being continually logged, the most recent commit may sometimes receive forced pushes ...

The VS code extension 'Git Graph' is recommended.

The FreeSpirit branch is now less used and has generally been superceded by QuickGet Mods.

Adding to the Mods script is a great place to start.

For more complex work, it is probably best to create a separate user branch.

Roadmap 1.9

  • In menu hot-swap of code base
  • In menu select to boot from ISO, instead of virtual hard drive
  • Add Windows languages quickget options
  • Add screen ratio WxH option (FreeSpirit)
  • Improve restart of partial downloads
  • Fix 4.9.5 changes to some Distro Pages not showing

Roadmap 1.13

  • Sorting out and refining the new Quickget Mods script

  • Making sure that every links ups to the new website and that the website is working

  • Improvements to translation

  • Auto snapshots

Roadmap 1.14

  • Windows WSL Hosting ?

  • A flatpak ?

Future

Conversion between gnome boxes and other libVirt based Qemu VM's and quickemu is possibly on the the todo list

Explore Mac Hosting, if possible ??

@HikariKnight has expressed interest in getting quickpassthrough integrated

Code editor

We all have our favourite editors, the tools that we are used to. But while any basic text editor can be used to view the code, something like 'VS Code' is recommended, if only for the fact that it has Shellcheck as an optional builtin.

For users of KDE, the improved capabilities of KATE are worth a mention, especially as this can now also run shellcheck.

https://github.com/vscode-shellcheck/vscode-shellcheck

Line Space:

In VS code configs, the use of "editor.lineHeight": 1.6 can help replicate more how general users might see code. Gnome Text editor adds a lot of space between lines. But this is not the case with all editors, for example 'Pluma', so no greater than 1.5 or 1.6 max, to avoid giving overly compacted views to others.

Other useful VS Code extensions:

https://marketplace.visualstudio.com/items?itemName=jannek-aalto.shell-function-outline

https://marketplace.visualstudio.com/items?itemName=AiryShift.spaces-inside-braces