Skip to main content

Marquer (Bootable Image Creator)

What is Marquer?

Marquer is an Open Source Application written for the Elementary OS 6 Series. It features Hassle-Free Bootable Image Flashing, Designed for elementary OS. Marquer features one of the best User Experience while creating Bootable Images. At the time of writing, Marquer was the only application which used native elementary OS Design Libraries (Granite) and elementary OS Design Principles. The app is written completely using Vala.

Vala is a programming language that combines the high-level build-time performance of scripting languages with the run-time performance of low-level programming languages. It aims to bring modern programming language features to GNOME developers without imposing any additional runtime requirements and without using a different ABI, compared to applications and libraries written in C. The syntax of Vala is similar to C#, modified to better fit the GObject type system.[4]

Source: Vala (Programming Language) | Wikipedia

Screenshots

image.png

image.png

image.png

image.png

Code Sample

View the source code at https://github.com/candiedoperation/marquer

//marquer/src/Widgets/RightSelectDrive.vala
private void update_drive_list (List<Drive> connected_drives) {
        drive_list.foreach((existing_drive) => { existing_drive.destroy (); });
        connected_drives.foreach((drive) => {            
            var drive_label = drive.get_identifier (DRIVE_IDENTIFIER_KIND_UNIX_DEVICE);
            var drive_icon = drive.get_icon();
            
            if (drive_label.has_prefix ("/dev/mmc")) {
                drive_icon = new ThemedIcon ("media-flash");
            }
                                                    
            drive_list.insert(new Marquer.Widgets.DriveListRowItem (drive.get_name (), drive_label, drive.is_removable (), drive_icon), -1);
            
            var drive_data = new Json.Object ();
            drive_data.set_string_member ("drive-name", drive.get_name ());
            drive_data.set_string_member ("drive-unix-id", drive_label);
            
            volatile_data_store.connected_drives.set_object_member ("drive-data-" + drive_list.get_children ().length ().to_string (), drive_data);            
        });
}