├── .clang-format ├── .codacy.yml ├── .github ├── ISSUE_TEMPLATE │ ├── 1-bug-report.yml │ └── 2-feature-request.yml ├── dependabot.yml ├── release-drafter.yml └── workflows │ ├── asset.yml │ ├── build.yml │ ├── codacy.yml │ ├── debug.yml │ ├── draft_release.yml │ ├── format.yml │ ├── qt_update.yml │ └── release.yml ├── .gitignore ├── CMakeLists.txt ├── INSTALL.md ├── LICENSE.txt ├── README.md ├── cmake ├── CPackLinux.cmake └── FindZLIB.cmake ├── doc ├── BIOSBootSpecsV1.01.pdf ├── RELEASE.md ├── UEFI_PI_Spec_1_9_Dec24.pdf ├── UEFI_Spec_2_11_Dec24.pdf ├── efibooteditor.png ├── filepathdialog.png ├── hotkeysdialog.png └── screenshot.json ├── icons.qrc ├── icons └── Tango │ ├── 256 │ └── categories │ │ └── preferences-system.ico │ ├── index.theme │ └── scalable │ ├── actions │ ├── add.svg │ ├── address-book-new.svg │ ├── appointment-new.svg │ ├── appointment.svg │ ├── back.svg │ ├── bookmark-new.svg │ ├── bookmark_add.svg │ ├── bookmarks_list_add.svg │ ├── bottom.svg │ ├── centrejust.svg │ ├── contact-new.svg │ ├── document-export.svg │ ├── document-import.svg │ ├── document-new.svg │ ├── document-open.svg │ ├── document-print-preview.svg │ ├── document-print.svg │ ├── document-properties.svg │ ├── document-save-as.svg │ ├── document-save.svg │ ├── down.svg │ ├── edit-clear.svg │ ├── edit-copy.svg │ ├── edit-cut.svg │ ├── edit-delete.svg │ ├── edit-find-replace.svg │ ├── edit-find.svg │ ├── edit-paste.svg │ ├── edit-redo.svg │ ├── edit-select-all.svg │ ├── edit-undo.svg │ ├── edit.svg │ ├── editclear.svg │ ├── editcopy.svg │ ├── editcut.svg │ ├── editdelete.svg │ ├── editpaste.svg │ ├── exit.svg │ ├── filefind.svg │ ├── filenew.svg │ ├── fileopen.svg │ ├── fileprint.svg │ ├── filequickprint.svg │ ├── filesave.svg │ ├── filesaveas.svg │ ├── find.svg │ ├── finish.svg │ ├── folder-new.svg │ ├── folder_new.svg │ ├── format-indent-less.svg │ ├── format-indent-more.svg │ ├── format-justify-center.svg │ ├── format-justify-fill.svg │ ├── format-justify-left.svg │ ├── format-justify-right.svg │ ├── format-text-bold.svg │ ├── format-text-italic.svg │ ├── format-text-strikethrough.svg │ ├── format-text-underline.svg │ ├── forward.svg │ ├── gnome-lockscreen.svg │ ├── gnome-logout.svg │ ├── gnome-searchtool.svg │ ├── gnome-shutdown.svg │ ├── gnome-stock-mail-fwd.svg │ ├── gnome-stock-mail-new.svg │ ├── gnome-stock-mail-rpl.svg │ ├── gnome-stock-text-indent.svg │ ├── gnome-stock-text-unindent.svg │ ├── go-bottom.svg │ ├── go-down.svg │ ├── go-first.svg │ ├── go-home.svg │ ├── go-jump.svg │ ├── go-last.svg │ ├── go-next.svg │ ├── go-previous.svg │ ├── go-top.svg │ ├── go-up.svg │ ├── gohome.svg │ ├── gtk-add.svg │ ├── gtk-bold.svg │ ├── gtk-cancel.svg │ ├── gtk-clear.svg │ ├── gtk-copy.svg │ ├── gtk-cut.svg │ ├── gtk-delete.svg │ ├── gtk-find-and-replace.svg │ ├── gtk-find.svg │ ├── gtk-fullscreen.svg │ ├── gtk-go-back-ltr.svg │ ├── gtk-go-back-rtl.svg │ ├── gtk-go-down.svg │ ├── gtk-go-forward-ltr.svg │ ├── gtk-go-forward-rtl.svg │ ├── gtk-go-up.svg │ ├── gtk-goto-bottom.svg │ ├── gtk-goto-first-ltr.svg │ ├── gtk-goto-first-rtl.svg │ ├── gtk-goto-last-ltr.svg │ ├── gtk-goto-last-rtl.svg │ ├── gtk-goto-top.svg │ ├── gtk-home.svg │ ├── gtk-indent-ltr.svg │ ├── gtk-indent-rtl.svg │ ├── gtk-italic.svg │ ├── gtk-jump-to-ltr.svg │ ├── gtk-jump-to-rtl.svg │ ├── gtk-justify-center.svg │ ├── gtk-justify-fill.svg │ ├── gtk-justify-left.svg │ ├── gtk-justify-right.svg │ ├── gtk-media-forward-ltr.svg │ ├── gtk-media-forward-rtl.svg │ ├── gtk-media-next-ltr.svg │ ├── gtk-media-next-rtl.svg │ ├── gtk-media-pause.svg │ ├── gtk-media-play-ltr.svg │ ├── gtk-media-previous-ltr.svg │ ├── gtk-media-previous-rtl.svg │ ├── gtk-media-record.svg │ ├── gtk-media-rewind-ltr.svg │ ├── gtk-media-rewind-rtl.svg │ ├── gtk-media-stop.svg │ ├── gtk-new.svg │ ├── gtk-open.svg │ ├── gtk-paste.svg │ ├── gtk-print-preview.svg │ ├── gtk-print.svg │ ├── gtk-properties.svg │ ├── gtk-redo-ltr.svg │ ├── gtk-refresh.svg │ ├── gtk-remove.svg │ ├── gtk-save-as.svg │ ├── gtk-save.svg │ ├── gtk-select-all.svg │ ├── gtk-stop.svg │ ├── gtk-strikethrough.svg │ ├── gtk-underline.svg │ ├── gtk-undo-ltr.svg │ ├── gtk-unindent-ltr.svg │ ├── gtk-unindent-rtl.svg │ ├── kfind.svg │ ├── kfm_home.svg │ ├── leftjust.svg │ ├── list-add.svg │ ├── list-remove.svg │ ├── lock.svg │ ├── mail-forward.svg │ ├── mail-mark-junk.svg │ ├── mail-message-new.svg │ ├── mail-reply-all.svg │ ├── mail-reply-sender.svg │ ├── mail-send-receive.svg │ ├── mail_forward.svg │ ├── mail_new.svg │ ├── mail_reply.svg │ ├── mail_replyall.svg │ ├── mail_spam.svg │ ├── media-eject.svg │ ├── media-playback-pause.svg │ ├── media-playback-start.svg │ ├── media-playback-stop.svg │ ├── media-record.svg │ ├── media-seek-backward.svg │ ├── media-seek-forward.svg │ ├── media-skip-backward.svg │ ├── media-skip-forward.svg │ ├── next.svg │ ├── player_eject.svg │ ├── player_end.svg │ ├── player_fwd.svg │ ├── player_pause.svg │ ├── player_play.svg │ ├── player_record.svg │ ├── player_rew.svg │ ├── player_start.svg │ ├── player_stop.svg │ ├── previous.svg │ ├── process-stop.svg │ ├── redhat-home.svg │ ├── redo.svg │ ├── reload.svg │ ├── reload3.svg │ ├── reload_all_tabs.svg │ ├── reload_page.svg │ ├── remove.svg │ ├── rightjust.svg │ ├── search.svg │ ├── start.svg │ ├── stock_add-bookmark.svg │ ├── stock_bottom.svg │ ├── stock_copy.svg │ ├── stock_cut.svg │ ├── stock_delete.svg │ ├── stock_down.svg │ ├── stock_file-properites.svg │ ├── stock_first.svg │ ├── stock_fullscreen.svg │ ├── stock_help-add-bookmark.svg │ ├── stock_home.svg │ ├── stock_last.svg │ ├── stock_left.svg │ ├── stock_mail-compose.svg │ ├── stock_mail-forward.svg │ ├── stock_mail-reply-to-all.svg │ ├── stock_mail-reply.svg │ ├── stock_mail-send-receive.svg │ ├── stock_media-fwd.svg │ ├── stock_media-next.svg │ ├── stock_media-pause.svg │ ├── stock_media-play.svg │ ├── stock_media-prev.svg │ ├── stock_media-rec.svg │ ├── stock_media-rew.svg │ ├── stock_media-stop.svg │ ├── stock_new-address-book.svg │ ├── stock_new-appointment.svg │ ├── stock_new-bcard.svg │ ├── stock_new-dir.svg │ ├── stock_new-tab.svg │ ├── stock_new-text.svg │ ├── stock_new-window.svg │ ├── stock_paste.svg │ ├── stock_print-preview.svg │ ├── stock_print.svg │ ├── stock_properties.svg │ ├── stock_redo.svg │ ├── stock_refresh.svg │ ├── stock_right.svg │ ├── stock_save-as.svg │ ├── stock_save.svg │ ├── stock_search-and-replace.svg │ ├── stock_search.svg │ ├── stock_select-all.svg │ ├── stock_spam.svg │ ├── stock_stop.svg │ ├── stock_text-strikethrough.svg │ ├── stock_text_bold.svg │ ├── stock_text_center.svg │ ├── stock_text_indent.svg │ ├── stock_text_italic.svg │ ├── stock_text_justify.svg │ ├── stock_text_left.svg │ ├── stock_text_right.svg │ ├── stock_text_underlined.svg │ ├── stock_text_unindent.svg │ ├── stock_top.svg │ ├── stock_undo.svg │ ├── stock_up.svg │ ├── stop.svg │ ├── system-lock-screen.svg │ ├── system-log-out.svg │ ├── system-search.svg │ ├── system-shutdown.svg │ ├── tab-new.svg │ ├── tab_new.svg │ ├── text_bold.svg │ ├── text_italic.svg │ ├── text_strike.svg │ ├── text_under.svg │ ├── top.svg │ ├── undo.svg │ ├── up.svg │ ├── view-fullscreen.svg │ ├── view-refresh.svg │ ├── window-new.svg │ ├── window_fullscreen.svg │ ├── window_new.svg │ └── xfce-system-lock.svg │ ├── apps │ ├── access.svg │ ├── accessibility-directory.svg │ ├── accessories-calculator.svg │ ├── accessories-character-map.svg │ ├── accessories-text-editor.svg │ ├── background.svg │ ├── browser.svg │ ├── config-language.svg │ ├── config-users.svg │ ├── date.svg │ ├── email.svg │ ├── file-manager.svg │ ├── fonts.svg │ ├── gnome-character-map.svg │ ├── gnome-help.svg │ ├── gnome-monitor.svg │ ├── gnome-remote-desktop.svg │ ├── gnome-session.svg │ ├── gnome-settings-accessibility-technologies.svg │ ├── gnome-settings-background.svg │ ├── gnome-settings-font.svg │ ├── gnome-settings-keybindings.svg │ ├── gnome-settings-theme.svg │ ├── gnome-terminal.svg │ ├── gnome-window-manager.svg │ ├── gucharmap.svg │ ├── help-browser.svg │ ├── help.svg │ ├── internet-group-chat.svg │ ├── internet-mail.svg │ ├── internet-news-reader.svg │ ├── internet-web-browser.svg │ ├── kcharselect.svg │ ├── kcmkwm.svg │ ├── kedit.svg │ ├── key_bindings.svg │ ├── kfm.svg │ ├── khelpcenter.svg │ ├── konsole.svg │ ├── krfb.svg │ ├── kscreensaver.svg │ ├── ksysguard.svg │ ├── kuser.svg │ ├── kwin.svg │ ├── locale.svg │ ├── mail_generic.svg │ ├── office-calendar.svg │ ├── openterm.svg │ ├── preferences-desktop-accessibility.svg │ ├── preferences-desktop-assistive-technology.svg │ ├── preferences-desktop-font.svg │ ├── preferences-desktop-keyboard-shortcuts.svg │ ├── preferences-desktop-locale.svg │ ├── preferences-desktop-multimedia.svg │ ├── preferences-desktop-remote-desktop.svg │ ├── preferences-desktop-screensaver.svg │ ├── preferences-desktop-theme.svg │ ├── preferences-desktop-wallpaper.svg │ ├── preferences-system-network-proxy.svg │ ├── preferences-system-session.svg │ ├── preferences-system-windows.svg │ ├── proxy-config.svg │ ├── proxy.svg │ ├── redhat-email.svg │ ├── redhat-filemanager.svg │ ├── redhat-web-browser.svg │ ├── screensaver.svg │ ├── stock_proxy.svg │ ├── style.svg │ ├── susehelpcenter.svg │ ├── system-config-users.svg │ ├── system-file-manager.svg │ ├── system-installer.svg │ ├── system-software-update.svg │ ├── system-users.svg │ ├── terminal.svg │ ├── text-editor.svg │ ├── update-manager.svg │ ├── utilities-system-monitor.svg │ ├── utilities-terminal.svg │ ├── wallpaper.svg │ ├── web-browser.svg │ ├── xfcalendar.svg │ ├── xfce-filemanager.svg │ ├── xfce-mail.svg │ ├── xfce-terminal.svg │ ├── xfce4-backdrop.svg │ ├── xfce4-session.svg │ ├── xfwm4.svg │ ├── ximian-evolution-calendar.svg │ ├── xscreensaver.svg │ └── zen-icon.svg │ ├── categories │ ├── applications-accessories.svg │ ├── applications-development.svg │ ├── applications-games.svg │ ├── applications-graphics.svg │ ├── applications-internet.svg │ ├── applications-multimedia.svg │ ├── applications-office.svg │ ├── applications-other.svg │ ├── applications-science.svg │ ├── applications-system.svg │ ├── gnome-applications.svg │ ├── gnome-control-center.svg │ ├── gnome-devel.svg │ ├── gnome-globe.svg │ ├── gnome-graphics.svg │ ├── gnome-joystick.svg │ ├── gnome-multimedia.svg │ ├── gnome-other.svg │ ├── gnome-settings.svg │ ├── gnome-system.svg │ ├── gnome-util.svg │ ├── gtk-preferences.svg │ ├── input_devices_settings.svg │ ├── kcontrol.svg │ ├── package_development.svg │ ├── package_games.svg │ ├── package_graphics.svg │ ├── package_multimedia.svg │ ├── package_network.svg │ ├── package_office.svg │ ├── package_settings.svg │ ├── package_system.svg │ ├── package_utilities.svg │ ├── preferences-desktop-peripherals.svg │ ├── preferences-desktop.svg │ ├── preferences-system.svg │ ├── redhat-accessories.svg │ ├── redhat-games.svg │ ├── redhat-graphics.svg │ ├── redhat-internet.svg │ ├── redhat-office.svg │ ├── redhat-preferences.svg │ ├── redhat-programming.svg │ ├── redhat-sound_video.svg │ ├── redhat-system_settings.svg │ ├── redhat-system_tools.svg │ ├── stock_internet.svg │ ├── xfce-games.svg │ ├── xfce-graphics.svg │ ├── xfce-internet.svg │ ├── xfce-multimedia.svg │ ├── xfce-office.svg │ ├── xfce-system-settings.svg │ ├── xfce-utils.svg │ └── xfce4-settings.svg │ ├── devices │ ├── 3floppy_unmount.svg │ ├── audio-card.svg │ ├── audio-input-microphone.svg │ ├── battery.svg │ ├── camera-photo.svg │ ├── camera-video.svg │ ├── camera.svg │ ├── camera_unmount.svg │ ├── cdrom_unmount.svg │ ├── cdwriter_unmount.svg │ ├── chardevice.svg │ ├── computer.svg │ ├── display.svg │ ├── drive-cdrom.svg │ ├── drive-harddisk.svg │ ├── drive-optical.svg │ ├── drive-removable-media.svg │ ├── dvd_unmount.svg │ ├── gnome-dev-battery.svg │ ├── gnome-dev-cdrom-audio.svg │ ├── gnome-dev-cdrom.svg │ ├── gnome-dev-computer.svg │ ├── gnome-dev-disc-cdr.svg │ ├── gnome-dev-disc-cdrw.svg │ ├── gnome-dev-disc-dvdr-plus.svg │ ├── gnome-dev-disc-dvdr.svg │ ├── gnome-dev-disc-dvdram.svg │ ├── gnome-dev-disc-dvdrom.svg │ ├── gnome-dev-disc-dvdrw.svg │ ├── gnome-dev-dvd.svg │ ├── gnome-dev-ethernet.svg │ ├── gnome-dev-floppy.svg │ ├── gnome-dev-harddisk-1394.svg │ ├── gnome-dev-harddisk-usb.svg │ ├── gnome-dev-harddisk.svg │ ├── gnome-dev-ipod.svg │ ├── gnome-dev-keyboard.svg │ ├── gnome-dev-media-cf.svg │ ├── gnome-dev-media-ms.svg │ ├── gnome-dev-media-sdmmc.svg │ ├── gnome-dev-media-sm.svg │ ├── gnome-dev-mouse-ball.svg │ ├── gnome-dev-mouse-optical.svg │ ├── gnome-dev-printer.svg │ ├── gnome-dev-removable-1394.svg │ ├── gnome-dev-removable-usb.svg │ ├── gnome-dev-removable.svg │ ├── gnome-dev-wavelan.svg │ ├── gnome-fs-client.svg │ ├── gnome-stock-mic.svg │ ├── gtk-cdrom.svg │ ├── gtk-floppy.svg │ ├── gtk-harddisk.svg │ ├── harddrive.svg │ ├── hdd_unmount.svg │ ├── input-gaming.svg │ ├── input-keyboard.svg │ ├── input-mouse.svg │ ├── ipod_mount.svg │ ├── joystick.svg │ ├── keyboard.svg │ ├── kjobviewer.svg │ ├── kxkb.svg │ ├── media-cdrom.svg │ ├── media-flash.svg │ ├── media-floppy.svg │ ├── media-optical.svg │ ├── mouse.svg │ ├── multimedia-player.svg │ ├── network-wired.svg │ ├── network-wireless.svg │ ├── printer-remote.svg │ ├── printer.svg │ ├── printer1.svg │ ├── printmgr.svg │ ├── stock_mic.svg │ ├── stock_printers.svg │ ├── system-floppy.svg │ ├── system.svg │ ├── usbpendrive_unmount.svg │ ├── video-display.svg │ ├── xfce-printer.svg │ ├── xfce4-display.svg │ ├── xfce4-keyboard.svg │ ├── xfce4-mouse.svg │ ├── yast_HD.svg │ ├── yast_idetude.svg │ ├── yast_joystick.svg │ ├── yast_mouse.svg │ ├── yast_printer.svg │ └── yast_soundcard.svg │ ├── emblems │ ├── emblem-favorite.svg │ ├── emblem-important.svg │ ├── emblem-noread.svg │ ├── emblem-nowrite.svg │ ├── emblem-photos.svg │ ├── emblem-readonly.svg │ ├── emblem-symbolic-link.svg │ ├── emblem-system.svg │ └── emblem-unreadable.svg │ ├── emotes │ ├── face-angel.svg │ ├── face-crying.svg │ ├── face-devilish.svg │ ├── face-glasses.svg │ ├── face-grin.svg │ ├── face-kiss.svg │ ├── face-monkey.svg │ ├── face-plain.svg │ ├── face-sad.svg │ ├── face-smile-big.svg │ ├── face-smile.svg │ ├── face-surprise.svg │ ├── face-wink.svg │ ├── stock_smiley-1.svg │ ├── stock_smiley-11.svg │ ├── stock_smiley-13.svg │ ├── stock_smiley-18.svg │ ├── stock_smiley-2.svg │ ├── stock_smiley-22.svg │ ├── stock_smiley-3.svg │ ├── stock_smiley-4.svg │ ├── stock_smiley-5.svg │ ├── stock_smiley-6.svg │ ├── stock_smiley-7.svg │ └── stock_smiley-8.svg │ ├── mimetypes │ ├── application-certificate.svg │ ├── application-vnd.ms-excel.sheet.macroEnabled.12.svg │ ├── application-vnd.ms-powerpoint.presentation.macroEnabled.12.svg │ ├── application-vnd.ms-word.document.macroEnabled.12.svg │ ├── application-vnd.openxmlformats-officedocument.presentationml.presentation.svg │ ├── application-vnd.openxmlformats-officedocument.presentationml.template.svg │ ├── application-vnd.openxmlformats-officedocument.spreadsheetml.sheet.svg │ ├── application-vnd.openxmlformats-officedocument.spreadsheetml.template.svg │ ├── application-vnd.openxmlformats-officedocument.wordprocessingml.document.svg │ ├── application-vnd.openxmlformats-officedocument.wordprocessingml.template.svg │ ├── application-x-executable.svg │ ├── ascii.svg │ ├── audio-x-generic.svg │ ├── binary.svg │ ├── contents2.svg │ ├── deb.svg │ ├── document.svg │ ├── empty.svg │ ├── exec.svg │ ├── folder_tar.svg │ ├── font-x-generic.svg │ ├── font.svg │ ├── font_bitmap.svg │ ├── font_truetype.svg │ ├── font_type1.svg │ ├── gnome-fs-executable.svg │ ├── gnome-mime-application-magicpoint.svg │ ├── gnome-mime-application-msword.svg │ ├── gnome-mime-application-ogg.svg │ ├── gnome-mime-application-pdf.svg │ ├── gnome-mime-application-postscript.svg │ ├── gnome-mime-application-rtf.svg │ ├── gnome-mime-application-vnd.lotus-1-2-3.svg │ ├── gnome-mime-application-vnd.ms-excel.svg │ ├── gnome-mime-application-vnd.ms-powerpoint.svg │ ├── gnome-mime-application-vnd.oasis.opendocument.graphics-template.svg │ ├── gnome-mime-application-vnd.oasis.opendocument.graphics.svg │ ├── gnome-mime-application-vnd.oasis.opendocument.image.svg │ ├── gnome-mime-application-vnd.oasis.opendocument.presentation-template.svg │ ├── gnome-mime-application-vnd.oasis.opendocument.presentation.svg │ ├── gnome-mime-application-vnd.oasis.opendocument.spreadsheet-template.svg │ ├── gnome-mime-application-vnd.oasis.opendocument.spreadsheet.svg │ ├── gnome-mime-application-vnd.oasis.opendocument.text-template.svg │ ├── gnome-mime-application-vnd.oasis.opendocument.text-web.svg │ ├── gnome-mime-application-vnd.oasis.opendocument.text.svg │ ├── gnome-mime-application-vnd.rn-realmedia-secure.svg │ ├── gnome-mime-application-vnd.rn-realmedia-vbr.svg │ ├── gnome-mime-application-vnd.rn-realmedia.svg │ ├── gnome-mime-application-vnd.stardivision.calc.svg │ ├── gnome-mime-application-vnd.stardivision.impress.svg │ ├── gnome-mime-application-vnd.stardivision.writer.svg │ ├── gnome-mime-application-vnd.sun.xml.calc.svg │ ├── gnome-mime-application-vnd.sun.xml.calc.template.svg │ ├── gnome-mime-application-vnd.sun.xml.draw.svg │ ├── gnome-mime-application-vnd.sun.xml.draw.template.svg │ ├── gnome-mime-application-vnd.sun.xml.impress.svg │ ├── gnome-mime-application-vnd.sun.xml.impress.template.svg │ ├── gnome-mime-application-vnd.sun.xml.writer.svg │ ├── gnome-mime-application-vnd.sun.xml.writer.template.svg │ ├── gnome-mime-application-wordperfect.svg │ ├── gnome-mime-application-x-7z-compressed.svg │ ├── gnome-mime-application-x-abiword.svg │ ├── gnome-mime-application-x-applix-spreadsheet.svg │ ├── gnome-mime-application-x-applix-word.svg │ ├── gnome-mime-application-x-archive.svg │ ├── gnome-mime-application-x-arj.svg │ ├── gnome-mime-application-x-bzip-compressed-tar.svg │ ├── gnome-mime-application-x-bzip.svg │ ├── gnome-mime-application-x-compress.svg │ ├── gnome-mime-application-x-compressed-tar.svg │ ├── gnome-mime-application-x-cpio-compressed.svg │ ├── gnome-mime-application-x-cpio.svg │ ├── gnome-mime-application-x-deb.svg │ ├── gnome-mime-application-x-dvi.svg │ ├── gnome-mime-application-x-executable.svg │ ├── gnome-mime-application-x-font-afm.svg │ ├── gnome-mime-application-x-font-bdf.svg │ ├── gnome-mime-application-x-font-linux-psf.svg │ ├── gnome-mime-application-x-font-pcf.svg │ ├── gnome-mime-application-x-font-sunos-news.svg │ ├── gnome-mime-application-x-font-ttf.svg │ ├── gnome-mime-application-x-gnumeric.svg │ ├── gnome-mime-application-x-gzip.svg │ ├── gnome-mime-application-x-gzpostscript.svg │ ├── gnome-mime-application-x-jar.svg │ ├── gnome-mime-application-x-killustrator.svg │ ├── gnome-mime-application-x-kpresenter.svg │ ├── gnome-mime-application-x-kspread.svg │ ├── gnome-mime-application-x-kword.svg │ ├── gnome-mime-application-x-lha.svg │ ├── gnome-mime-application-x-lhz.svg │ ├── gnome-mime-application-x-lzma-compressed-tar.svg │ ├── gnome-mime-application-x-lzma.svg │ ├── gnome-mime-application-x-ms-dos-executable.svg │ ├── gnome-mime-application-x-perl.svg │ ├── gnome-mime-application-x-php.svg │ ├── gnome-mime-application-x-python-bytecode.svg │ ├── gnome-mime-application-x-rar.svg │ ├── gnome-mime-application-x-rpm.svg │ ├── gnome-mime-application-x-scribus.svg │ ├── gnome-mime-application-x-shellscript.svg │ ├── gnome-mime-application-x-shockwave-flash.svg │ ├── gnome-mime-application-x-stuffit.svg │ ├── gnome-mime-application-x-tar.svg │ ├── gnome-mime-application-x-tarz.svg │ ├── gnome-mime-application-x-tex.svg │ ├── gnome-mime-application-xhtml+xml.svg │ ├── gnome-mime-application-zip.svg │ ├── gnome-mime-audio.svg │ ├── gnome-mime-image.svg │ ├── gnome-mime-text-html.svg │ ├── gnome-mime-text-vnd.wap.wml.svg │ ├── gnome-mime-text-x-csh.svg │ ├── gnome-mime-text-x-python.svg │ ├── gnome-mime-text-x-sh.svg │ ├── gnome-mime-text-x-vcalendar.svg │ ├── gnome-mime-text-x-vcard.svg │ ├── gnome-mime-text-x-zsh.svg │ ├── gnome-mime-text.svg │ ├── gnome-mime-video.svg │ ├── gnome-mime-x-font-afm.svg │ ├── gnome-package.svg │ ├── html.svg │ ├── image-x-generic.svg │ ├── image.svg │ ├── kpresenter_kpr.svg │ ├── mime_ascii.svg │ ├── misc.svg │ ├── package-x-generic.svg │ ├── package.svg │ ├── package_editors.svg │ ├── package_wordprocessing.svg │ ├── plan.svg │ ├── rpm.svg │ ├── shellscript.svg │ ├── sound.svg │ ├── spreadsheet.svg │ ├── stock_addressbook.svg │ ├── stock_calendar.svg │ ├── stock_certificate.svg │ ├── stock_script.svg │ ├── tar.svg │ ├── template_source.svg │ ├── text-html.svg │ ├── text-x-generic-template.svg │ ├── text-x-generic.svg │ ├── text-x-script.svg │ ├── tgz.svg │ ├── txt.svg │ ├── txt2.svg │ ├── unknown.svg │ ├── vcalendar.svg │ ├── vcard.svg │ ├── video-x-generic.svg │ ├── video.svg │ ├── wordprocessing.svg │ ├── www.svg │ ├── x-office-address-book.svg │ ├── x-office-calendar.svg │ ├── x-office-document-template.svg │ ├── x-office-document.svg │ ├── x-office-drawing-template.svg │ ├── x-office-drawing.svg │ ├── x-office-presentation-template.svg │ ├── x-office-presentation.svg │ ├── x-office-spreadsheet-template.svg │ ├── x-office-spreadsheet.svg │ └── zip.svg │ ├── places │ ├── application-x-gnome-saved-search.svg │ ├── desktop.svg │ ├── distributor-logo.svg │ ├── emptytrash.svg │ ├── folder-remote.svg │ ├── folder-saved-search.svg │ ├── folder.icon │ ├── folder.svg │ ├── folder_home.svg │ ├── gnome-fs-desktop.svg │ ├── gnome-fs-directory.icon │ ├── gnome-fs-directory.svg │ ├── gnome-fs-ftp.svg │ ├── gnome-fs-home.svg │ ├── gnome-fs-network.svg │ ├── gnome-fs-nfs.svg │ ├── gnome-fs-server.svg │ ├── gnome-fs-share.svg │ ├── gnome-fs-smb.svg │ ├── gnome-fs-ssh.svg │ ├── gnome-fs-trash-empty.svg │ ├── gnome-main-menu.svg │ ├── gnome-mime-x-directory-nfs-server.svg │ ├── gnome-mime-x-directory-smb-server.svg │ ├── gnome-mime-x-directory-smb-share.svg │ ├── gnome-mime-x-directory-smb-workgroup.svg │ ├── gnome-stock-trash.svg │ ├── gtk-directory.icon │ ├── gtk-directory.svg │ ├── gtk-network.svg │ ├── inode-directory.icon │ ├── inode-directory.svg │ ├── network-server.svg │ ├── network-workgroup.svg │ ├── network.svg │ ├── network_local.svg │ ├── novell-button.svg │ ├── redhat-network-server.svg │ ├── server.svg │ ├── start-here.svg │ ├── stock_folder.icon │ ├── stock_folder.svg │ ├── trashcan_empty.svg │ ├── user-desktop.svg │ ├── user-home.svg │ ├── user-trash.svg │ └── xfce-trash_empty.svg │ └── status │ ├── audio-volume-high.svg │ ├── audio-volume-low.svg │ ├── audio-volume-medium.svg │ ├── audio-volume-muted.svg │ ├── battery-caution.svg │ ├── connect_creating.svg │ ├── connect_established.svg │ ├── connect_no.svg │ ├── dialog-error.svg │ ├── dialog-information.svg │ ├── dialog-warning.svg │ ├── edittrash.svg │ ├── error.svg │ ├── folder-drag-accept.icon │ ├── folder-drag-accept.svg │ ├── folder-open.svg │ ├── folder-visiting.icon │ ├── folder-visiting.svg │ ├── folder_open.svg │ ├── gnome-dev-wavelan-encrypted.svg │ ├── gnome-fs-directory-accept.icon │ ├── gnome-fs-directory-accept.svg │ ├── gnome-fs-directory-visiting.icon │ ├── gnome-fs-directory-visiting.svg │ ├── gnome-fs-loading-icon.svg │ ├── gnome-fs-trash-full.svg │ ├── gnome-netstatus-disconn.svg │ ├── gnome-netstatus-error.svg │ ├── gnome-netstatus-idle.svg │ ├── gnome-netstatus-rx.svg │ ├── gnome-netstatus-tx.svg │ ├── gnome-netstatus-txrx.svg │ ├── gnome-stock-trash-full.svg │ ├── gtk-dialog-error.svg │ ├── gtk-dialog-info.svg │ ├── gtk-dialog-warning.svg │ ├── gtk-missing-image.svg │ ├── image-loading.svg │ ├── image-missing.svg │ ├── important.svg │ ├── info.svg │ ├── mail-attachment.svg │ ├── messagebox_critical.svg │ ├── messagebox_info.svg │ ├── messagebox_warning.svg │ ├── network-error.svg │ ├── network-idle.svg │ ├── network-offline.svg │ ├── network-receive.svg │ ├── network-transmit-receive.svg │ ├── network-transmit.svg │ ├── network-wireless-encrypted.svg │ ├── nm-adhoc.svg │ ├── nm-device-wired.svg │ ├── nm-device-wireless.svg │ ├── nm-no-connection.svg │ ├── printer-error.svg │ ├── software-update-available.svg │ ├── software-update-urgent.svg │ ├── stock_attach.svg │ ├── stock_dialog-error.svg │ ├── stock_dialog-info.svg │ ├── stock_dialog-warning.svg │ ├── stock_open.svg │ ├── stock_trash_full.svg │ ├── stock_volume-0.svg │ ├── stock_volume-max.svg │ ├── stock_volume-med.svg │ ├── stock_volume-min.svg │ ├── stock_volume-mute.svg │ ├── stock_volume.svg │ ├── stock_weather-cloudy.svg │ ├── stock_weather-few-clouds.svg │ ├── stock_weather-night-clear.svg │ ├── stock_weather-night-few-clouds.svg │ ├── stock_weather-showers.svg │ ├── stock_weather-snow.svg │ ├── stock_weather-storm.svg │ ├── stock_weather-sunny.svg │ ├── sunny.svg │ ├── trashcan_full.svg │ ├── user-trash-full.svg │ ├── weather-clear-night.svg │ ├── weather-clear.svg │ ├── weather-few-clouds-night.svg │ ├── weather-few-clouds.svg │ ├── weather-overcast.svg │ ├── weather-severe-alert.svg │ ├── weather-showers-scattered.svg │ ├── weather-showers.svg │ ├── weather-snow.svg │ ├── weather-storm.svg │ └── xfce-trash_full.svg ├── include ├── bootentry.h ├── bootentry.h.j2 ├── bootentrydelegate.h ├── bootentryform.h ├── bootentrylistmodel.h ├── bootentrylistview.h ├── bootentrywidget.h ├── commands.h ├── compat.h ├── devicepathproxymodel.h ├── devicepathview.h ├── disableundoredo.h ├── driveinfo.h ├── efiboot.h ├── efiboot.h.j2 ├── efibootdata.h ├── efibooteditor.h ├── efibooteditorcli.h ├── efikeysequence.h ├── efikeysequenceedit.h ├── efivar-lite │ ├── device-paths.h │ ├── device-paths.h.j2 │ ├── device-paths.yml │ ├── efivar-lite.h │ ├── key-option.h │ └── load-option.h ├── filepathdelegate.h ├── filepathdialog.h ├── filepathdialog.h.j2 ├── hotkey.h ├── hotkeydelegate.h ├── hotkeylistmodel.h ├── hotkeysdialog.h ├── hotkeysview.h ├── qindicatorwidget.h ├── qlabelwrapped.h ├── qresizabletabwidget.h └── qwidgetitemdelegate.h ├── misc ├── .gitignore ├── EFIBootEditor.desktop ├── EFIBootEditor.metainfo.xml ├── WIX.template.in ├── codegen │ ├── gen_efidp.py │ ├── pyproject.toml │ ├── spec_parse.py │ └── uv.lock ├── efibooteditor.spec ├── org.x.efibooteditor.policy ├── qt-updater │ ├── main.py │ ├── pyproject.toml │ └── uv.lock ├── wix_banner.png └── wix_dialog.png ├── src ├── bootentry.cpp ├── bootentry.cpp.j2 ├── bootentrydelegate.cpp ├── bootentryform.cpp ├── bootentrylistmodel.cpp ├── bootentrylistview.cpp ├── bootentrywidget.cpp ├── commands.cpp ├── devicepathproxymodel.cpp ├── devicepathview.cpp ├── driveinfo.cpp ├── driveinfo.darwin.cpp ├── driveinfo.linux.cpp ├── driveinfo.win32.cpp ├── efibootdata.cpp ├── efibooteditor.cpp ├── efibooteditorcli.cpp ├── efikeysequence.cpp ├── efikeysequenceedit.cpp ├── efivar-lite.c ├── efivar-lite.common.h ├── efivar-lite.darwin.c ├── efivar-lite.linux.c ├── efivar-lite.win32.c ├── filepathdelegate.cpp ├── filepathdialog.cpp ├── filepathdialog.cpp.j2 ├── form │ ├── bootentryform.ui │ ├── bootentrywidget.ui │ ├── efibooteditor.ui │ ├── filepathdialog.ui │ ├── filepathdialog.ui.j2 │ └── hotkeysdialog.ui ├── hotkey.cpp ├── hotkeydelegate.cpp ├── hotkeylistmodel.cpp ├── hotkeysdialog.cpp ├── hotkeysview.cpp └── main.cpp ├── tests ├── CMakeLists.txt └── testefibootdata.cpp ├── translations ├── efibooteditor_ar.ts ├── efibooteditor_cs.ts ├── efibooteditor_de.ts ├── efibooteditor_en.ts ├── efibooteditor_es.ts ├── efibooteditor_fr.ts ├── efibooteditor_hu.ts ├── efibooteditor_it.ts ├── efibooteditor_ja.ts ├── efibooteditor_ko.ts ├── efibooteditor_nb_NO.ts ├── efibooteditor_pl.ts ├── efibooteditor_pt_BR.ts ├── efibooteditor_ru.ts ├── efibooteditor_sk.ts ├── efibooteditor_sl.ts ├── efibooteditor_sv.ts ├── efibooteditor_ta.ts ├── efibooteditor_tr.ts ├── efibooteditor_uk.ts ├── efibooteditor_vi.ts ├── efibooteditor_zh_Hans.ts └── efibooteditor_zh_Hant.ts └── windows.rc /.clang-format: -------------------------------------------------------------------------------- 1 | --- 2 | BasedOnStyle: WebKit 3 | BreakBeforeBraces: Allman 4 | Cpp11BracedListStyle: 'true' 5 | NamespaceIndentation: None 6 | PointerAlignment: Right 7 | SpaceBeforeCpp11BracedList: 'false' 8 | SpaceBeforeCtorInitializerColon: 'false' 9 | SpaceBeforeInheritanceColon: 'false' 10 | SpaceBeforeParens: Never 11 | SpaceBeforeRangeBasedForLoopColon: 'false' 12 | SpaceInEmptyParentheses: 'false' 13 | SpacesInAngles: 'false' 14 | SpacesInCStyleCastParentheses: 'false' 15 | SpacesInContainerLiterals: 'false' 16 | SpacesInParentheses: 'false' 17 | SpacesInSquareBrackets: 'false' 18 | BraceWrapping: 19 | BeforeLambdaBody: 'true' 20 | 21 | ... 22 | -------------------------------------------------------------------------------- /.codacy.yml: -------------------------------------------------------------------------------- 1 | --- 2 | engines: 3 | cppcheck: 4 | language: c++ 5 | 6 | exclude_paths: 7 | - "doc/**" 8 | - "icons/**" 9 | - "misc/**" 10 | - "translations/**" 11 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/1-bug-report.yml: -------------------------------------------------------------------------------- 1 | name: 🐛 Bug report 2 | description: Provide information about a problem 3 | labels: [bug] 4 | body: 5 | - type: checkboxes 6 | attributes: 7 | label: Is there an existing issue for this? 8 | description: Please search to see if an issue already exists for the bug you encountered. 9 | options: 10 | - label: I have searched the existing issues 11 | required: true 12 | - type: textarea 13 | attributes: 14 | label: Description 15 | description: Provide a short description of the problem. What's expected and what actually happens, etc. 16 | validations: 17 | required: true 18 | - type: textarea 19 | attributes: 20 | label: Environment 21 | description: | 22 | Provide environment information. 23 | - You can grab **Application version** from `Help -> About EFI Boot Editor` or by running `efibooteditor --version` 24 | - Exact **Operating system** version/distribution much appreciated 25 | - Please provide information about your UEFI environment like `Motherboard: MSI PRO X670`, `BIOS version: XX 01/01/1970`, etc. 26 | value: | 27 | - Application version: 28 | - Operating system: 29 | - EFI/BIOS/Motherboard vendor: 30 | - EFI/BIOS version: 31 | validations: 32 | required: true 33 | - type: textarea 34 | attributes: 35 | label: Raw EFI data 36 | description: | 37 | Please provide raw EFI data if possible, you can generate it from `Help -> Dump raw EFI data` or by running `efibooteditor --dump raw.json` 38 | 39 | Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in. 40 | validations: 41 | required: false 42 | - type: textarea 43 | attributes: 44 | label: Additional information 45 | description: | 46 | Whenever possible please also provide any additional information that might help troubleshoot the issue. 47 | Like: 48 | - Boot menu screenshot for comparison with EFI Boot Manager output 49 | - on Linux: `efibootmgr` output 50 | - on Windows: `bcdedit /enum firmware` output 51 | validations: 52 | required: false 53 | - type: textarea 54 | attributes: 55 | label: Steps to reproduce 56 | description: If applicable, provide list of exact steps to reproduce the problem. 57 | placeholder: | 58 | 1. Click '...' in the GUI 59 | 2. See error... 60 | validations: 61 | required: false 62 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/2-feature-request.yml: -------------------------------------------------------------------------------- 1 | name: 🚀 Feature request 2 | description: Suggest an idea for this project 3 | labels: [enhancement] 4 | body: 5 | - type: checkboxes 6 | attributes: 7 | label: Is there an existing issue for this? 8 | description: Please search to see if an issue already exists for similar feature. 9 | options: 10 | - label: I have searched the existing issues 11 | required: true 12 | - type: textarea 13 | attributes: 14 | label: Description 15 | description: Provide a short description of the feature. 16 | validations: 17 | required: true 18 | - type: textarea 19 | attributes: 20 | label: Additional information 21 | description: Feel free to write here any additional information. 22 | validations: 23 | required: false 24 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: "github-actions" 4 | directory: "/" 5 | schedule: 6 | interval: "weekly" 7 | day: "friday" 8 | time: "05:00" 9 | groups: 10 | dependencies: 11 | patterns: 12 | - "*" 13 | - package-ecosystem: "uv" 14 | directory: "/misc/codegen" 15 | schedule: 16 | interval: "weekly" 17 | day: "friday" 18 | time: "05:00" 19 | groups: 20 | dependencies: 21 | patterns: 22 | - "*" 23 | - package-ecosystem: "uv" 24 | directory: "/misc/qt-updater" 25 | schedule: 26 | interval: "weekly" 27 | day: "friday" 28 | time: "05:00" 29 | groups: 30 | dependencies: 31 | patterns: 32 | - "*" 33 | -------------------------------------------------------------------------------- /.github/release-drafter.yml: -------------------------------------------------------------------------------- 1 | name-template: 'v$NEXT_PATCH_VERSION' 2 | tag-template: 'v$NEXT_PATCH_VERSION' 3 | categories: 4 | - title: 'Features' 5 | labels: 6 | - 'feature' 7 | - 'enhancement' 8 | - title: 'Bug fixes' 9 | labels: 10 | - 'fix' 11 | - 'bugfix' 12 | - 'bug' 13 | change-template: '- $TITLE @$AUTHOR (#$NUMBER)' 14 | template: | 15 | ## Changes 16 | 17 | $CHANGES 18 | -------------------------------------------------------------------------------- /.github/workflows/asset.yml: -------------------------------------------------------------------------------- 1 | name: Upload release asset 2 | 3 | on: 4 | workflow_call: 5 | inputs: 6 | os: 7 | required: true 8 | type: string 9 | compiler: 10 | required: true 11 | type: string 12 | version: 13 | required: true 14 | type: string 15 | extension: 16 | required: true 17 | type: string 18 | 19 | env: 20 | INPUT_OS: ${{ inputs.os }} 21 | INPUT_COMPILER: ${{ inputs.compiler }} 22 | INPUT_VERSION: ${{ inputs.version }} 23 | INPUT_EXTENSION: ${{ inputs.extension }} 24 | 25 | jobs: 26 | upload-asset: 27 | name: Upload release asset ${{ inputs.os }} Qt ${{ matrix.qt-version }} with ${{ inputs.compiler }} ${{ inputs.extension }} 28 | runs-on: ubuntu-latest 29 | strategy: 30 | fail-fast: false 31 | matrix: 32 | qt-version: 33 | - 5.15.2 # Supported in Ubuntu Noble Numbat until 2029-04-25 34 | - 6.2.4 # Supported in Ubuntu Jammy Jellyfish until 2027-04-01 35 | - 6.8.3 # Supported in Ubuntu Plucky Puffin until 2026-01-17 36 | - 6.10.0 # Supported until 2026-04-07 37 | exclude: 38 | - qt-version: ${{ endsWith(inputs.os, 'arm') && '5.15.2' || 'none' }} 39 | - qt-version: ${{ endsWith(inputs.os, 'arm') && '6.2.4' || 'none' }} 40 | - qt-version: ${{ inputs.os == 'macos-26' && '6.2.4' || 'none' }} 41 | - qt-version: ${{ inputs.os == 'macos-26' && '6.8.3' || 'none' }} 42 | steps: 43 | - name: Download artifacts 44 | uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 45 | with: 46 | name: EFIBootEditor-${{ github.sha }}-${{ inputs.os }}-qt-${{ matrix.qt-version }}-${{ inputs.compiler }} 47 | path: . 48 | 49 | - name: Rename artifact for release upload 50 | run: mv EFIBootEditor-*-${INPUT_OS}-qt-${{ matrix.qt-version }}${INPUT_EXTENSION} EFIBootEditor-${INPUT_VERSION}-${INPUT_OS}-qt-${{ matrix.qt-version }}-${INPUT_COMPILER}${INPUT_EXTENSION} 51 | shell: bash 52 | 53 | - name: Upload ${{ inputs.extension }} 54 | uses: softprops/action-gh-release@aec2ec56f94eb8180ceec724245f64ef008b89f5 55 | with: 56 | prerelease: ${{ github.ref_type != 'tag' }} 57 | files: | 58 | EFIBootEditor-${{ inputs.version }}-${{ inputs.os }}-qt-${{ matrix.qt-version }}-${{ inputs.compiler }}${{ inputs.extension }} 59 | tag_name: ${{ github.ref_type == 'tag' && github.ref_name || 'latest' }} 60 | -------------------------------------------------------------------------------- /.github/workflows/codacy.yml: -------------------------------------------------------------------------------- 1 | name: Codacy code analysis 2 | 3 | on: 4 | push: 5 | branches: [master] 6 | pull_request: 7 | branches: [master] 8 | schedule: 9 | - cron: 0 5 * * 5 10 | 11 | jobs: 12 | codacy-analysis: 13 | name: Codacy Code Analysis 14 | runs-on: ubuntu-latest 15 | 16 | permissions: 17 | actions: read 18 | contents: read 19 | security-events: write 20 | 21 | steps: 22 | - name: Checkout source code 23 | uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 24 | 25 | - name: Run Codacy Code Analysis 26 | uses: codacy/codacy-analysis-cli-action@562ee3e92b8e92df8b67e0a5ff8aa8e261919c08 27 | with: 28 | output: codacy.sarif 29 | format: sarif 30 | gh-code-scanning-compat: true 31 | 32 | - name: Upload Codacy Code Analysis results to GitHub 33 | uses: github/codeql-action/upload-sarif@e296a935590eb16afc0c0108289f68c87e2a89a5 34 | with: 35 | sarif_file: codacy.sarif 36 | -------------------------------------------------------------------------------- /.github/workflows/debug.yml: -------------------------------------------------------------------------------- 1 | name: Debug build 2 | 3 | on: 4 | push: 5 | branches: [master] 6 | paths: 7 | - .github/workflows/build.yml 8 | - .github/workflows/debug.yml 9 | - CMakeLists.txt 10 | - cmake/** 11 | - icons.qrc 12 | - icons/** 13 | - include/** 14 | - src/** 15 | - windows.rc 16 | pull_request: 17 | branches: [master] 18 | paths: 19 | - .github/workflows/build.yml 20 | - .github/workflows/debug.yml 21 | - CMakeLists.txt 22 | - cmake/** 23 | - icons.qrc 24 | - icons/** 25 | - include/** 26 | - src/** 27 | - windows.rc 28 | schedule: 29 | - cron: 0 5 * * 5 30 | 31 | concurrency: 32 | group: debug-${{ github.ref }} 33 | cancel-in-progress: true 34 | 35 | jobs: 36 | build-linux: 37 | name: ${{ matrix.os }} with ${{ matrix.compiler }} 38 | strategy: 39 | fail-fast: false 40 | matrix: 41 | os: [ubuntu-22.04, ubuntu-24.04, ubuntu-24.04-arm] 42 | compiler: 43 | - Clang 44 | - GCC 45 | 46 | permissions: 47 | actions: read 48 | contents: read 49 | security-events: write 50 | 51 | uses: ./.github/workflows/build.yml 52 | with: 53 | os: ${{ matrix.os }} 54 | compiler: ${{ matrix.compiler }} 55 | build-config: Debug 56 | version: ${{ github.sha }} 57 | 58 | build-windows: 59 | name: ${{ matrix.os }} with ${{ matrix.compiler }} 60 | strategy: 61 | fail-fast: false 62 | matrix: 63 | os: [windows-2022, windows-2025] 64 | compiler: 65 | - Clang 66 | - MSVC 67 | 68 | permissions: 69 | actions: read 70 | contents: read 71 | security-events: write 72 | 73 | uses: ./.github/workflows/build.yml 74 | with: 75 | os: ${{ matrix.os }} 76 | compiler: ${{ matrix.compiler }} 77 | build-config: Debug 78 | version: ${{ github.sha }} 79 | 80 | build-macos: 81 | name: ${{ matrix.os }} with ${{ matrix.compiler }} 82 | strategy: 83 | fail-fast: false 84 | matrix: 85 | os: [macos-14, macos-15, macos-26] 86 | compiler: 87 | - Clang 88 | 89 | permissions: 90 | actions: read 91 | contents: read 92 | security-events: write 93 | 94 | uses: ./.github/workflows/build.yml 95 | with: 96 | os: ${{ matrix.os }} 97 | compiler: ${{ matrix.compiler }} 98 | build-config: Debug 99 | version: ${{ github.sha }} 100 | -------------------------------------------------------------------------------- /.github/workflows/draft_release.yml: -------------------------------------------------------------------------------- 1 | name: Draft release 2 | 3 | on: 4 | push: 5 | branches: [master] 6 | 7 | jobs: 8 | update_release_draft: 9 | runs-on: ubuntu-latest 10 | permissions: 11 | contents: write 12 | pull-requests: read 13 | steps: 14 | - uses: release-drafter/release-drafter@b1476f6e6eb133afa41ed8589daba6dc69b4d3f5 15 | env: 16 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 17 | -------------------------------------------------------------------------------- /.github/workflows/format.yml: -------------------------------------------------------------------------------- 1 | name: Clang format 2 | 3 | on: [push] 4 | 5 | jobs: 6 | clang-format: 7 | runs-on: ubuntu-latest 8 | steps: 9 | - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 10 | - uses: DoozyX/clang-format-lint-action@bcb4eb2cb0d707ee4f3e5cc3b456eb075f12cf73 11 | with: 12 | source: src include 13 | clangFormatVersion: 20 14 | -------------------------------------------------------------------------------- /.github/workflows/qt_update.yml: -------------------------------------------------------------------------------- 1 | name: Check for Qt updates 2 | 3 | on: 4 | workflow_dispatch: 5 | schedule: 6 | - cron: 0 5 * * 5 7 | 8 | concurrency: 9 | group: qt-update-${{ github.ref }} 10 | cancel-in-progress: true 11 | 12 | jobs: 13 | check-qt-updates: 14 | name: Check Qt updates 15 | runs-on: ubuntu-latest 16 | 17 | permissions: 18 | actions: read 19 | contents: read 20 | 21 | steps: 22 | - name: Checkout source code 23 | uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 24 | with: 25 | token: ${{ secrets.BOT_ACCESS_TOKEN }} 26 | 27 | - name: Install uv 28 | uses: astral-sh/setup-uv@eb1897b8dc4b5d5bfe39a428a8f2304605e0983c 29 | with: 30 | enable-cache: true 31 | 32 | - name: Install python 33 | uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c 34 | with: 35 | python-version: '3.13' 36 | 37 | - name: Install dependencies 38 | run: uv sync 39 | working-directory: misc/qt-updater 40 | 41 | - name: Run the updater 42 | id: diff 43 | run: | 44 | uv run -m main ../../.github/workflows/*.yml 45 | if git diff --exit-code; then 46 | echo "changed=false" >> "${GITHUB_OUTPUT}" 47 | else 48 | echo "changed=true" >> "${GITHUB_OUTPUT}" 49 | fi 50 | working-directory: misc/qt-updater 51 | 52 | - name: Create pull request 53 | run: | 54 | # Configure git user 55 | git config user.email "EFIBootEditorBot@users.noreply.github.com" 56 | git config user.name "EFIBootEditor (Bot)" 57 | 58 | # Create branch with changes 59 | git checkout -b qt-update 60 | git commit -am "ci: update Qt versions in CI" 61 | git push --force --set-upstream origin qt-update 62 | 63 | gh pr create \ 64 | --title 'ci: update Qt versions in CI' \ 65 | --body 'Updates Qt versions in CI to newest ones.' \ 66 | --base master \ 67 | --head qt-update 68 | 69 | env: 70 | GITHUB_TOKEN: ${{ secrets.BOT_ACCESS_TOKEN }} 71 | if: steps.diff.outputs.changed == 'true' 72 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # This file is used to ignore files which are generated 2 | # ---------------------------------------------------------------------------- 3 | 4 | *~ 5 | *.autosave 6 | *.a 7 | *.core 8 | *.moc 9 | *.o 10 | *.obj 11 | *.orig 12 | *.rej 13 | *.so 14 | *.so.* 15 | *_pch.h.cpp 16 | *_resource.rc 17 | *.qm 18 | .#* 19 | *.*# 20 | core 21 | !core/ 22 | tags 23 | .DS_Store 24 | .directory 25 | *.debug 26 | Makefile* 27 | *.prl 28 | *.app 29 | moc_*.cpp 30 | ui_*.h 31 | qrc_*.cpp 32 | Thumbs.db 33 | *.res 34 | *.rc 35 | 36 | # qtcreator generated files 37 | *.pro.user* 38 | 39 | # xemacs temporary files 40 | *.flc 41 | 42 | # Vim temporary files 43 | .*.swp 44 | 45 | # Visual Studio generated files 46 | *.ib_pdb_index 47 | *.idb 48 | *.ilk 49 | *.pdb 50 | *.sln 51 | *.suo 52 | *.vcproj 53 | *.user* 54 | *.ncb 55 | *.sdf 56 | *.opensdf 57 | *.vcxproj 58 | *vcxproj.* 59 | 60 | # MinGW generated files 61 | *.Debug 62 | *.Release 63 | 64 | # Python byte code 65 | *.pyc 66 | 67 | # Binaries 68 | # -------- 69 | *.dll 70 | *.exe 71 | 72 | # Build 73 | # ----- 74 | build*/ 75 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # EFI Boot Editor 2 | 3 | Boot Editor for (U)EFI based systems. 4 | 5 | ![EFIBootEditor](doc/efibooteditor.png) 6 | 7 | ![File path dialog](doc/filepathdialog.png) 8 | 9 | ![Hot Keys dialog](doc/hotkeysdialog.png) 10 | 11 | ## Command-line interface 12 | 13 | There is also a command-line interface for quick backup/restore functionality: 14 | 15 | ```shell 16 | Usage: efibooteditor [options] 17 | Boot Editor for (U)EFI based systems. 18 | 19 | Options: 20 | -h, --help Displays help on commandline options. 21 | --help-all Displays help including Qt specific options. 22 | -v, --version Displays version information. 23 | -e, --export Export configuration. 24 | -d, --dump Dump raw EFI data. 25 | -i, --import Import configuration from JSON (either from export or 26 | raw dump). 27 | -f, --force Force import, don't ask for confirmation. 28 | ``` 29 | 30 | ## Requirements 31 | 32 | * [Qt](//www.qt.io/) (>=5.12) 33 | * [zlib](//github.com/madler/zlib) (>=1.2) 34 | * [efivar](//github.com/rhboot/efivar) (>=37) on linux 35 | 36 | ## Installation 37 | 38 | See [INSTALL](INSTALL.md) instructions. 39 | 40 | ## Localization 41 | 42 | You can help localize this project on [Weblate](https://hosted.weblate.org/engage/efibooteditor/). 43 | 44 | [![Translations](https://hosted.weblate.org/widget/efibooteditor/efibooteditor/multi-auto.svg)](//hosted.weblate.org/engage/efibooteditor/) 45 | 46 | ## License 47 | 48 | This project is licensed under the LGPLv3 License - 49 | see the [LICENSE](LICENSE.txt) file for details 50 | -------------------------------------------------------------------------------- /cmake/CPackLinux.cmake: -------------------------------------------------------------------------------- 1 | if (NOT CPACK_GENERATOR STREQUAL "TZST") 2 | list(REMOVE_ITEM CPACK_COMPONENTS_ALL "Runtime") 3 | endif() 4 | -------------------------------------------------------------------------------- /doc/BIOSBootSpecsV1.01.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Neverous/efibooteditor/77b30122c42821d40d0b8d429e62408be25b83c1/doc/BIOSBootSpecsV1.01.pdf -------------------------------------------------------------------------------- /doc/RELEASE.md: -------------------------------------------------------------------------------- 1 | # Release process 2 | 3 | 1. Create tag for new version 4 | 5 | ```shell 6 | git tag -s vX.Y.Z -m "" 7 | git push tag vX.Y.Z 8 | ``` 9 | 10 | 2. Cleanup `latest` release and tag from [GitHub](https://github.com/Neverous/efibooteditor/releases/tag/latest) 11 | 12 | 3. Create release for new tag through [GitHub UI](https://github.com/Neverous/efibooteditor/releases) 13 | 14 | ## Update [AUR](https://aur.archlinux.org/packages/efibooteditor) 15 | 16 | 1. Bump version in PKGBUILD 17 | 18 | 2. Update b2sums: `makepkg -g` 19 | 20 | 3. Update SRCINFO: `makepkg --printsrcinfo > .SRCINFO` 21 | 22 | 4. Commit and push changes to AUR 23 | 24 | ```shell 25 | git commit -m "Update to X.Y.Z" 26 | git push 27 | ``` 28 | -------------------------------------------------------------------------------- /doc/UEFI_PI_Spec_1_9_Dec24.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Neverous/efibooteditor/77b30122c42821d40d0b8d429e62408be25b83c1/doc/UEFI_PI_Spec_1_9_Dec24.pdf -------------------------------------------------------------------------------- /doc/UEFI_Spec_2_11_Dec24.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Neverous/efibooteditor/77b30122c42821d40d0b8d429e62408be25b83c1/doc/UEFI_Spec_2_11_Dec24.pdf -------------------------------------------------------------------------------- /doc/efibooteditor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Neverous/efibooteditor/77b30122c42821d40d0b8d429e62408be25b83c1/doc/efibooteditor.png -------------------------------------------------------------------------------- /doc/filepathdialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Neverous/efibooteditor/77b30122c42821d40d0b8d429e62408be25b83c1/doc/filepathdialog.png -------------------------------------------------------------------------------- /doc/hotkeysdialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Neverous/efibooteditor/77b30122c42821d40d0b8d429e62408be25b83c1/doc/hotkeysdialog.png -------------------------------------------------------------------------------- /icons.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | icons/Tango/index.theme 4 | icons/Tango/scalable/actions/add.svg 5 | icons/Tango/scalable/actions/document-export.svg 6 | icons/Tango/scalable/actions/document-import.svg 7 | icons/Tango/scalable/actions/document-save.svg 8 | icons/Tango/scalable/actions/down.svg 9 | icons/Tango/scalable/actions/edit-copy.svg 10 | icons/Tango/scalable/actions/edit.svg 11 | icons/Tango/scalable/actions/exit.svg 12 | icons/Tango/scalable/actions/format-justify-left.svg 13 | icons/Tango/scalable/actions/redo.svg 14 | icons/Tango/scalable/actions/reload.svg 15 | icons/Tango/scalable/actions/remove.svg 16 | icons/Tango/scalable/actions/stop.svg 17 | icons/Tango/scalable/actions/system-search.svg 18 | icons/Tango/scalable/actions/undo.svg 19 | icons/Tango/scalable/actions/up.svg 20 | icons/Tango/scalable/apps/help.svg 21 | icons/Tango/scalable/categories/preferences-system.svg 22 | icons/Tango/scalable/devices/audio-card.svg 23 | icons/Tango/scalable/devices/computer.svg 24 | icons/Tango/scalable/devices/drive-harddisk.svg 25 | icons/Tango/scalable/devices/drive-optical.svg 26 | icons/Tango/scalable/devices/drive-removable-media.svg 27 | icons/Tango/scalable/devices/input-gaming.svg 28 | icons/Tango/scalable/devices/media-flash.svg 29 | icons/Tango/scalable/devices/media-floppy.svg 30 | icons/Tango/scalable/devices/network-wired.svg 31 | icons/Tango/scalable/devices/network-wireless.svg 32 | icons/Tango/scalable/mimetypes/document.svg 33 | icons/Tango/scalable/mimetypes/text-html.svg 34 | 35 | 36 | -------------------------------------------------------------------------------- /icons/Tango/256/categories/preferences-system.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Neverous/efibooteditor/77b30122c42821d40d0b8d429e62408be25b83c1/icons/Tango/256/categories/preferences-system.ico -------------------------------------------------------------------------------- /icons/Tango/index.theme: -------------------------------------------------------------------------------- 1 | [Icon Theme] 2 | Name=Tango 3 | Comment=Tango Icon Theme 4 | Inherits=gnome,crystalsvg 5 | Example=x-directory-normal 6 | 7 | # KDE Specific Stuff 8 | DisplayDepth=32 9 | LinkOverlay=link_overlay 10 | LockOverlay=lock_overlay 11 | ZipOverlay=zip_overlay 12 | DesktopDefault=48 13 | ToolbarDefault=22 14 | MainToolbarDefault=22 15 | SmallDefault=16 16 | SmallSizes=16 17 | PanelDefault=32 18 | 19 | # Directory list 20 | Directories=16x16/actions,16x16/apps,16x16/categories,16x16/devices,16x16/emblems,16x16/emotes,16x16/mimetypes,16x16/places,16x16/status,22x22/actions,22x22/apps,22x22/categories,22x22/devices,22x22/emblems,22x22/emotes,22x22/mimetypes,22x22/places,22x22/status,24x24/actions,24x24/apps,24x24/categories,24x24/devices,24x24/emblems,24x24/emotes,24x24/mimetypes,24x24/places,24x24/status,32x32/actions,32x32/apps,32x32/categories,32x32/devices,32x32/emblems,32x32/emotes,32x32/mimetypes,32x32/places,32x32/status,48x48/actions,48x48/apps,48x48/categories,48x48/devices,48x48/emblems,48x48/emotes,48x48/mimetypes,48x48/places,48x48/status,64x64/actions,64x64/apps,64x64/categories,64x64/devices,64x64/emblems,64x64/emotes,64x64/mimetypes,64x64/places,64x64/status,72x72/actions,72x72/apps,72x72/categories,72x72/devices,72x72/emblems,72x72/emotes,72x72/mimetypes,72x72/places,72x72/status,96x96/actions,96x96/apps,96x96/categories,96x96/devices,96x96/emblems,96x96/emotes,96x96/mimetypes,96x96/places,96x96/status,128x128/actions,128x128/apps,128x128/categories,128x128/devices,128x128/emblems,128x128/emotes,128x128/mimetypes,128x128/places,128x128/status,scalable/actions,scalable/apps,scalable/categories,scalable/devices,scalable/emblems,scalable/emotes,scalable/mimetypes,scalable/places,scalable/status 21 | 22 | [scalable/actions] 23 | Size=48 24 | Context=Actions 25 | Type=Scalable 26 | MinSize=32 27 | MaxSize=256 28 | 29 | [scalable/apps] 30 | Size=48 31 | Context=Applications 32 | Type=Scalable 33 | MinSize=32 34 | MaxSize=256 35 | 36 | [scalable/categories] 37 | Size=48 38 | Context=Categories 39 | Type=Scalable 40 | MinSize=32 41 | MaxSize=256 42 | 43 | [scalable/devices] 44 | Size=48 45 | Context=Devices 46 | Type=Scalable 47 | MinSize=32 48 | MaxSize=256 49 | 50 | [scalable/emblems] 51 | Size=48 52 | Context=Emblems 53 | Type=Scalable 54 | MinSize=32 55 | MaxSize=256 56 | 57 | [scalable/emotes] 58 | Size=48 59 | Context=Emotes 60 | Type=Scalable 61 | Minsize=32 62 | MaxSize=256 63 | 64 | [scalable/mimetypes] 65 | Size=48 66 | Context=MimeTypes 67 | Type=Scalable 68 | MinSize=32 69 | MaxSize=256 70 | 71 | [scalable/places] 72 | Size=48 73 | Context=Places 74 | Type=Scalable 75 | MinSize=32 76 | MaxSize=256 77 | 78 | [scalable/status] 79 | Size=48 80 | Context=Status 81 | Type=Scalable 82 | MinSize=32 83 | MaxSize=256 84 | -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/add.svg: -------------------------------------------------------------------------------- 1 | list-add.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/appointment.svg: -------------------------------------------------------------------------------- 1 | appointment-new.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/back.svg: -------------------------------------------------------------------------------- 1 | go-previous.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/bookmark_add.svg: -------------------------------------------------------------------------------- 1 | bookmark-new.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/bookmarks_list_add.svg: -------------------------------------------------------------------------------- 1 | bookmark-new.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/bottom.svg: -------------------------------------------------------------------------------- 1 | go-bottom.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/centrejust.svg: -------------------------------------------------------------------------------- 1 | format-justify-center.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/document-export.svg: -------------------------------------------------------------------------------- 1 | document-save-as.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/document-import.svg: -------------------------------------------------------------------------------- 1 | document-open.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/down.svg: -------------------------------------------------------------------------------- 1 | go-down.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/edit.svg: -------------------------------------------------------------------------------- 1 | ../categories/preferences-system.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/editclear.svg: -------------------------------------------------------------------------------- 1 | edit-clear.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/editcopy.svg: -------------------------------------------------------------------------------- 1 | edit-copy.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/editcut.svg: -------------------------------------------------------------------------------- 1 | edit-cut.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/editdelete.svg: -------------------------------------------------------------------------------- 1 | edit-delete.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/editpaste.svg: -------------------------------------------------------------------------------- 1 | edit-paste.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/exit.svg: -------------------------------------------------------------------------------- 1 | system-log-out.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/filefind.svg: -------------------------------------------------------------------------------- 1 | edit-find.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/filenew.svg: -------------------------------------------------------------------------------- 1 | document-new.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/fileopen.svg: -------------------------------------------------------------------------------- 1 | document-open.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/fileprint.svg: -------------------------------------------------------------------------------- 1 | document-print.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/filequickprint.svg: -------------------------------------------------------------------------------- 1 | document-print-preview.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/filesave.svg: -------------------------------------------------------------------------------- 1 | document-save.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/filesaveas.svg: -------------------------------------------------------------------------------- 1 | document-save-as.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/find.svg: -------------------------------------------------------------------------------- 1 | edit-find.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/finish.svg: -------------------------------------------------------------------------------- 1 | go-last.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/folder_new.svg: -------------------------------------------------------------------------------- 1 | folder-new.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/forward.svg: -------------------------------------------------------------------------------- 1 | go-next.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gnome-lockscreen.svg: -------------------------------------------------------------------------------- 1 | system-lock-screen.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gnome-logout.svg: -------------------------------------------------------------------------------- 1 | system-log-out.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gnome-searchtool.svg: -------------------------------------------------------------------------------- 1 | system-search.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gnome-shutdown.svg: -------------------------------------------------------------------------------- 1 | system-shutdown.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gnome-stock-mail-fwd.svg: -------------------------------------------------------------------------------- 1 | mail-forward.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gnome-stock-mail-new.svg: -------------------------------------------------------------------------------- 1 | mail-message-new.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gnome-stock-mail-rpl.svg: -------------------------------------------------------------------------------- 1 | mail-reply-sender.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gnome-stock-text-indent.svg: -------------------------------------------------------------------------------- 1 | format-indent-more.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gnome-stock-text-unindent.svg: -------------------------------------------------------------------------------- 1 | format-indent-less.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gohome.svg: -------------------------------------------------------------------------------- 1 | go-home.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-add.svg: -------------------------------------------------------------------------------- 1 | list-add.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-bold.svg: -------------------------------------------------------------------------------- 1 | format-text-bold.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-cancel.svg: -------------------------------------------------------------------------------- 1 | process-stop.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-clear.svg: -------------------------------------------------------------------------------- 1 | edit-clear.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-copy.svg: -------------------------------------------------------------------------------- 1 | edit-copy.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-cut.svg: -------------------------------------------------------------------------------- 1 | edit-cut.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-delete.svg: -------------------------------------------------------------------------------- 1 | edit-delete.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-find-and-replace.svg: -------------------------------------------------------------------------------- 1 | edit-find-replace.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-find.svg: -------------------------------------------------------------------------------- 1 | edit-find.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-fullscreen.svg: -------------------------------------------------------------------------------- 1 | view-fullscreen.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-go-back-ltr.svg: -------------------------------------------------------------------------------- 1 | go-previous.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-go-back-rtl.svg: -------------------------------------------------------------------------------- 1 | go-next.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-go-down.svg: -------------------------------------------------------------------------------- 1 | go-down.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-go-forward-ltr.svg: -------------------------------------------------------------------------------- 1 | go-next.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-go-forward-rtl.svg: -------------------------------------------------------------------------------- 1 | go-previous.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-go-up.svg: -------------------------------------------------------------------------------- 1 | go-up.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-goto-bottom.svg: -------------------------------------------------------------------------------- 1 | go-bottom.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-goto-first-ltr.svg: -------------------------------------------------------------------------------- 1 | go-first.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-goto-first-rtl.svg: -------------------------------------------------------------------------------- 1 | go-last.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-goto-last-ltr.svg: -------------------------------------------------------------------------------- 1 | go-last.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-goto-last-rtl.svg: -------------------------------------------------------------------------------- 1 | go-first.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-goto-top.svg: -------------------------------------------------------------------------------- 1 | go-top.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-home.svg: -------------------------------------------------------------------------------- 1 | go-home.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-indent-ltr.svg: -------------------------------------------------------------------------------- 1 | format-indent-more.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-indent-rtl.svg: -------------------------------------------------------------------------------- 1 | format-indent-less.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-italic.svg: -------------------------------------------------------------------------------- 1 | format-text-italic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-jump-to-ltr.svg: -------------------------------------------------------------------------------- 1 | go-jump.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-jump-to-rtl.svg: -------------------------------------------------------------------------------- 1 | go-jump.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-justify-center.svg: -------------------------------------------------------------------------------- 1 | format-justify-center.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-justify-fill.svg: -------------------------------------------------------------------------------- 1 | format-justify-fill.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-justify-left.svg: -------------------------------------------------------------------------------- 1 | format-justify-left.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-justify-right.svg: -------------------------------------------------------------------------------- 1 | format-justify-right.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-media-forward-ltr.svg: -------------------------------------------------------------------------------- 1 | media-seek-forward.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-media-forward-rtl.svg: -------------------------------------------------------------------------------- 1 | media-seek-backward.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-media-next-ltr.svg: -------------------------------------------------------------------------------- 1 | media-skip-forward.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-media-next-rtl.svg: -------------------------------------------------------------------------------- 1 | media-skip-backward.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-media-pause.svg: -------------------------------------------------------------------------------- 1 | media-playback-pause.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-media-play-ltr.svg: -------------------------------------------------------------------------------- 1 | media-playback-start.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-media-previous-ltr.svg: -------------------------------------------------------------------------------- 1 | media-skip-backward.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-media-previous-rtl.svg: -------------------------------------------------------------------------------- 1 | media-skip-forward.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-media-record.svg: -------------------------------------------------------------------------------- 1 | media-record.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-media-rewind-ltr.svg: -------------------------------------------------------------------------------- 1 | media-seek-backward.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-media-rewind-rtl.svg: -------------------------------------------------------------------------------- 1 | media-seek-forward.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-media-stop.svg: -------------------------------------------------------------------------------- 1 | media-playback-stop.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-new.svg: -------------------------------------------------------------------------------- 1 | document-new.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-open.svg: -------------------------------------------------------------------------------- 1 | document-open.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-paste.svg: -------------------------------------------------------------------------------- 1 | edit-paste.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-print-preview.svg: -------------------------------------------------------------------------------- 1 | document-print-preview.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-print.svg: -------------------------------------------------------------------------------- 1 | document-print.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-properties.svg: -------------------------------------------------------------------------------- 1 | document-properties.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-redo-ltr.svg: -------------------------------------------------------------------------------- 1 | edit-redo.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-refresh.svg: -------------------------------------------------------------------------------- 1 | view-refresh.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-remove.svg: -------------------------------------------------------------------------------- 1 | list-remove.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-save-as.svg: -------------------------------------------------------------------------------- 1 | document-save-as.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-save.svg: -------------------------------------------------------------------------------- 1 | document-save.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-select-all.svg: -------------------------------------------------------------------------------- 1 | edit-select-all.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-stop.svg: -------------------------------------------------------------------------------- 1 | process-stop.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-strikethrough.svg: -------------------------------------------------------------------------------- 1 | format-text-strikethrough.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-underline.svg: -------------------------------------------------------------------------------- 1 | format-text-underline.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-undo-ltr.svg: -------------------------------------------------------------------------------- 1 | edit-undo.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-unindent-ltr.svg: -------------------------------------------------------------------------------- 1 | format-indent-less.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/gtk-unindent-rtl.svg: -------------------------------------------------------------------------------- 1 | format-indent-more.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/kfind.svg: -------------------------------------------------------------------------------- 1 | system-search.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/kfm_home.svg: -------------------------------------------------------------------------------- 1 | go-home.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/leftjust.svg: -------------------------------------------------------------------------------- 1 | format-justify-left.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/lock.svg: -------------------------------------------------------------------------------- 1 | system-lock-screen.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/mail_forward.svg: -------------------------------------------------------------------------------- 1 | mail-forward.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/mail_new.svg: -------------------------------------------------------------------------------- 1 | mail-message-new.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/mail_reply.svg: -------------------------------------------------------------------------------- 1 | mail-reply-sender.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/mail_replyall.svg: -------------------------------------------------------------------------------- 1 | mail-reply-all.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/mail_spam.svg: -------------------------------------------------------------------------------- 1 | mail-mark-junk.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/next.svg: -------------------------------------------------------------------------------- 1 | go-next.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/player_eject.svg: -------------------------------------------------------------------------------- 1 | media-eject.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/player_end.svg: -------------------------------------------------------------------------------- 1 | media-skip-forward.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/player_fwd.svg: -------------------------------------------------------------------------------- 1 | media-seek-forward.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/player_pause.svg: -------------------------------------------------------------------------------- 1 | media-playback-pause.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/player_play.svg: -------------------------------------------------------------------------------- 1 | media-playback-start.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/player_record.svg: -------------------------------------------------------------------------------- 1 | media-record.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/player_rew.svg: -------------------------------------------------------------------------------- 1 | media-seek-backward.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/player_start.svg: -------------------------------------------------------------------------------- 1 | media-skip-backward.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/player_stop.svg: -------------------------------------------------------------------------------- 1 | media-playback-stop.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/previous.svg: -------------------------------------------------------------------------------- 1 | go-previous.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/redhat-home.svg: -------------------------------------------------------------------------------- 1 | go-home.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/redo.svg: -------------------------------------------------------------------------------- 1 | edit-redo.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/reload.svg: -------------------------------------------------------------------------------- 1 | view-refresh.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/reload3.svg: -------------------------------------------------------------------------------- 1 | view-refresh.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/reload_all_tabs.svg: -------------------------------------------------------------------------------- 1 | view-refresh.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/reload_page.svg: -------------------------------------------------------------------------------- 1 | view-refresh.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/remove.svg: -------------------------------------------------------------------------------- 1 | list-remove.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/rightjust.svg: -------------------------------------------------------------------------------- 1 | format-justify-right.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/search.svg: -------------------------------------------------------------------------------- 1 | system-search.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/start.svg: -------------------------------------------------------------------------------- 1 | go-first.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_add-bookmark.svg: -------------------------------------------------------------------------------- 1 | bookmark-new.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_bottom.svg: -------------------------------------------------------------------------------- 1 | go-bottom.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_copy.svg: -------------------------------------------------------------------------------- 1 | edit-copy.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_cut.svg: -------------------------------------------------------------------------------- 1 | edit-cut.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_delete.svg: -------------------------------------------------------------------------------- 1 | edit-delete.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_down.svg: -------------------------------------------------------------------------------- 1 | go-down.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_file-properites.svg: -------------------------------------------------------------------------------- 1 | document-properties.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_first.svg: -------------------------------------------------------------------------------- 1 | go-first.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_fullscreen.svg: -------------------------------------------------------------------------------- 1 | view-fullscreen.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_help-add-bookmark.svg: -------------------------------------------------------------------------------- 1 | bookmark-new.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_home.svg: -------------------------------------------------------------------------------- 1 | go-home.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_last.svg: -------------------------------------------------------------------------------- 1 | go-last.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_left.svg: -------------------------------------------------------------------------------- 1 | go-previous.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_mail-compose.svg: -------------------------------------------------------------------------------- 1 | mail-message-new.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_mail-forward.svg: -------------------------------------------------------------------------------- 1 | mail-forward.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_mail-reply-to-all.svg: -------------------------------------------------------------------------------- 1 | mail-reply-all.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_mail-reply.svg: -------------------------------------------------------------------------------- 1 | mail-reply-sender.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_mail-send-receive.svg: -------------------------------------------------------------------------------- 1 | mail-send-receive.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_media-fwd.svg: -------------------------------------------------------------------------------- 1 | media-seek-forward.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_media-next.svg: -------------------------------------------------------------------------------- 1 | media-skip-forward.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_media-pause.svg: -------------------------------------------------------------------------------- 1 | media-playback-pause.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_media-play.svg: -------------------------------------------------------------------------------- 1 | media-playback-start.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_media-prev.svg: -------------------------------------------------------------------------------- 1 | media-skip-backward.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_media-rec.svg: -------------------------------------------------------------------------------- 1 | media-record.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_media-rew.svg: -------------------------------------------------------------------------------- 1 | media-seek-backward.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_media-stop.svg: -------------------------------------------------------------------------------- 1 | media-playback-stop.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_new-address-book.svg: -------------------------------------------------------------------------------- 1 | address-book-new.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_new-appointment.svg: -------------------------------------------------------------------------------- 1 | appointment-new.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_new-bcard.svg: -------------------------------------------------------------------------------- 1 | contact-new.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_new-dir.svg: -------------------------------------------------------------------------------- 1 | folder-new.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_new-tab.svg: -------------------------------------------------------------------------------- 1 | tab-new.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_new-text.svg: -------------------------------------------------------------------------------- 1 | document-new.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_new-window.svg: -------------------------------------------------------------------------------- 1 | window-new.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_paste.svg: -------------------------------------------------------------------------------- 1 | edit-paste.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_print-preview.svg: -------------------------------------------------------------------------------- 1 | document-print-preview.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_print.svg: -------------------------------------------------------------------------------- 1 | document-print.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_properties.svg: -------------------------------------------------------------------------------- 1 | document-properties.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_redo.svg: -------------------------------------------------------------------------------- 1 | edit-redo.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_refresh.svg: -------------------------------------------------------------------------------- 1 | view-refresh.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_right.svg: -------------------------------------------------------------------------------- 1 | go-next.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_save-as.svg: -------------------------------------------------------------------------------- 1 | document-save-as.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_save.svg: -------------------------------------------------------------------------------- 1 | document-save.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_search-and-replace.svg: -------------------------------------------------------------------------------- 1 | edit-find-replace.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_search.svg: -------------------------------------------------------------------------------- 1 | edit-find.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_select-all.svg: -------------------------------------------------------------------------------- 1 | edit-select-all.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_spam.svg: -------------------------------------------------------------------------------- 1 | mail-mark-junk.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_stop.svg: -------------------------------------------------------------------------------- 1 | process-stop.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_text-strikethrough.svg: -------------------------------------------------------------------------------- 1 | format-text-strikethrough.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_text_bold.svg: -------------------------------------------------------------------------------- 1 | format-text-bold.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_text_center.svg: -------------------------------------------------------------------------------- 1 | format-justify-center.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_text_indent.svg: -------------------------------------------------------------------------------- 1 | format-indent-more.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_text_italic.svg: -------------------------------------------------------------------------------- 1 | format-text-italic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_text_justify.svg: -------------------------------------------------------------------------------- 1 | format-justify-fill.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_text_left.svg: -------------------------------------------------------------------------------- 1 | format-justify-left.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_text_right.svg: -------------------------------------------------------------------------------- 1 | format-justify-right.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_text_underlined.svg: -------------------------------------------------------------------------------- 1 | format-text-underline.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_text_unindent.svg: -------------------------------------------------------------------------------- 1 | format-indent-less.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_top.svg: -------------------------------------------------------------------------------- 1 | go-top.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_undo.svg: -------------------------------------------------------------------------------- 1 | edit-undo.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stock_up.svg: -------------------------------------------------------------------------------- 1 | go-up.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/stop.svg: -------------------------------------------------------------------------------- 1 | process-stop.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/tab_new.svg: -------------------------------------------------------------------------------- 1 | tab-new.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/text_bold.svg: -------------------------------------------------------------------------------- 1 | format-text-bold.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/text_italic.svg: -------------------------------------------------------------------------------- 1 | format-text-italic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/text_strike.svg: -------------------------------------------------------------------------------- 1 | format-text-strikethrough.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/text_under.svg: -------------------------------------------------------------------------------- 1 | format-text-underline.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/top.svg: -------------------------------------------------------------------------------- 1 | go-top.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/undo.svg: -------------------------------------------------------------------------------- 1 | edit-undo.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/up.svg: -------------------------------------------------------------------------------- 1 | go-up.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/window_fullscreen.svg: -------------------------------------------------------------------------------- 1 | view-fullscreen.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/window_new.svg: -------------------------------------------------------------------------------- 1 | window-new.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/actions/xfce-system-lock.svg: -------------------------------------------------------------------------------- 1 | system-lock-screen.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/access.svg: -------------------------------------------------------------------------------- 1 | preferences-desktop-accessibility.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/accessibility-directory.svg: -------------------------------------------------------------------------------- 1 | preferences-desktop-accessibility.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/background.svg: -------------------------------------------------------------------------------- 1 | preferences-desktop-wallpaper.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/browser.svg: -------------------------------------------------------------------------------- 1 | internet-web-browser.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/config-language.svg: -------------------------------------------------------------------------------- 1 | preferences-desktop-locale.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/config-users.svg: -------------------------------------------------------------------------------- 1 | system-users.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/date.svg: -------------------------------------------------------------------------------- 1 | office-calendar.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/email.svg: -------------------------------------------------------------------------------- 1 | internet-mail.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/file-manager.svg: -------------------------------------------------------------------------------- 1 | system-file-manager.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/fonts.svg: -------------------------------------------------------------------------------- 1 | preferences-desktop-font.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/gnome-character-map.svg: -------------------------------------------------------------------------------- 1 | accessories-character-map.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/gnome-help.svg: -------------------------------------------------------------------------------- 1 | help-browser.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/gnome-monitor.svg: -------------------------------------------------------------------------------- 1 | utilities-system-monitor.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/gnome-remote-desktop.svg: -------------------------------------------------------------------------------- 1 | preferences-desktop-remote-desktop.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/gnome-session.svg: -------------------------------------------------------------------------------- 1 | preferences-system-session.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/gnome-settings-accessibility-technologies.svg: -------------------------------------------------------------------------------- 1 | preferences-desktop-accessibility.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/gnome-settings-background.svg: -------------------------------------------------------------------------------- 1 | preferences-desktop-wallpaper.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/gnome-settings-font.svg: -------------------------------------------------------------------------------- 1 | preferences-desktop-font.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/gnome-settings-keybindings.svg: -------------------------------------------------------------------------------- 1 | preferences-desktop-keyboard-shortcuts.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/gnome-settings-theme.svg: -------------------------------------------------------------------------------- 1 | preferences-desktop-theme.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/gnome-terminal.svg: -------------------------------------------------------------------------------- 1 | utilities-terminal.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/gnome-window-manager.svg: -------------------------------------------------------------------------------- 1 | preferences-system-windows.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/gucharmap.svg: -------------------------------------------------------------------------------- 1 | accessories-character-map.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/kcharselect.svg: -------------------------------------------------------------------------------- 1 | accessories-character-map.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/kcmkwm.svg: -------------------------------------------------------------------------------- 1 | preferences-system-windows.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/kedit.svg: -------------------------------------------------------------------------------- 1 | accessories-text-editor.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/key_bindings.svg: -------------------------------------------------------------------------------- 1 | preferences-desktop-keyboard-shortcuts.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/kfm.svg: -------------------------------------------------------------------------------- 1 | system-file-manager.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/khelpcenter.svg: -------------------------------------------------------------------------------- 1 | help-browser.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/konsole.svg: -------------------------------------------------------------------------------- 1 | utilities-terminal.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/krfb.svg: -------------------------------------------------------------------------------- 1 | preferences-desktop-remote-desktop.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/kscreensaver.svg: -------------------------------------------------------------------------------- 1 | preferences-desktop-screensaver.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/ksysguard.svg: -------------------------------------------------------------------------------- 1 | utilities-system-monitor.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/kuser.svg: -------------------------------------------------------------------------------- 1 | system-users.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/kwin.svg: -------------------------------------------------------------------------------- 1 | preferences-system-windows.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/locale.svg: -------------------------------------------------------------------------------- 1 | preferences-desktop-locale.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/mail_generic.svg: -------------------------------------------------------------------------------- 1 | internet-mail.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/openterm.svg: -------------------------------------------------------------------------------- 1 | utilities-terminal.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/proxy-config.svg: -------------------------------------------------------------------------------- 1 | preferences-system-network-proxy.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/proxy.svg: -------------------------------------------------------------------------------- 1 | preferences-system-network-proxy.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/redhat-email.svg: -------------------------------------------------------------------------------- 1 | internet-mail.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/redhat-filemanager.svg: -------------------------------------------------------------------------------- 1 | system-file-manager.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/redhat-web-browser.svg: -------------------------------------------------------------------------------- 1 | internet-web-browser.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/screensaver.svg: -------------------------------------------------------------------------------- 1 | preferences-desktop-screensaver.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/stock_proxy.svg: -------------------------------------------------------------------------------- 1 | preferences-system-network-proxy.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/style.svg: -------------------------------------------------------------------------------- 1 | preferences-desktop-theme.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/susehelpcenter.svg: -------------------------------------------------------------------------------- 1 | help-browser.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/system-config-users.svg: -------------------------------------------------------------------------------- 1 | system-users.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/terminal.svg: -------------------------------------------------------------------------------- 1 | utilities-terminal.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/text-editor.svg: -------------------------------------------------------------------------------- 1 | accessories-text-editor.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/update-manager.svg: -------------------------------------------------------------------------------- 1 | system-software-update.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/wallpaper.svg: -------------------------------------------------------------------------------- 1 | preferences-desktop-wallpaper.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/web-browser.svg: -------------------------------------------------------------------------------- 1 | internet-web-browser.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/xfcalendar.svg: -------------------------------------------------------------------------------- 1 | office-calendar.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/xfce-filemanager.svg: -------------------------------------------------------------------------------- 1 | system-file-manager.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/xfce-mail.svg: -------------------------------------------------------------------------------- 1 | internet-mail.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/xfce-terminal.svg: -------------------------------------------------------------------------------- 1 | utilities-terminal.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/xfce4-backdrop.svg: -------------------------------------------------------------------------------- 1 | preferences-desktop-wallpaper.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/xfce4-session.svg: -------------------------------------------------------------------------------- 1 | preferences-system-session.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/xfwm4.svg: -------------------------------------------------------------------------------- 1 | preferences-system-windows.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/ximian-evolution-calendar.svg: -------------------------------------------------------------------------------- 1 | office-calendar.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/xscreensaver.svg: -------------------------------------------------------------------------------- 1 | preferences-desktop-screensaver.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/apps/zen-icon.svg: -------------------------------------------------------------------------------- 1 | system-software-update.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/applications-science.svg: -------------------------------------------------------------------------------- 1 | ../status/dialog-information.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/gnome-applications.svg: -------------------------------------------------------------------------------- 1 | applications-office.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/gnome-control-center.svg: -------------------------------------------------------------------------------- 1 | preferences-desktop.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/gnome-devel.svg: -------------------------------------------------------------------------------- 1 | applications-development.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/gnome-globe.svg: -------------------------------------------------------------------------------- 1 | applications-internet.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/gnome-graphics.svg: -------------------------------------------------------------------------------- 1 | applications-graphics.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/gnome-joystick.svg: -------------------------------------------------------------------------------- 1 | applications-games.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/gnome-multimedia.svg: -------------------------------------------------------------------------------- 1 | applications-multimedia.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/gnome-other.svg: -------------------------------------------------------------------------------- 1 | applications-other.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/gnome-settings.svg: -------------------------------------------------------------------------------- 1 | preferences-desktop.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/gnome-system.svg: -------------------------------------------------------------------------------- 1 | applications-system.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/gnome-util.svg: -------------------------------------------------------------------------------- 1 | applications-accessories.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/gtk-preferences.svg: -------------------------------------------------------------------------------- 1 | preferences-desktop.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/input_devices_settings.svg: -------------------------------------------------------------------------------- 1 | preferences-desktop-peripherals.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/kcontrol.svg: -------------------------------------------------------------------------------- 1 | preferences-desktop.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/package_development.svg: -------------------------------------------------------------------------------- 1 | applications-development.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/package_games.svg: -------------------------------------------------------------------------------- 1 | applications-games.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/package_graphics.svg: -------------------------------------------------------------------------------- 1 | applications-graphics.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/package_multimedia.svg: -------------------------------------------------------------------------------- 1 | applications-multimedia.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/package_network.svg: -------------------------------------------------------------------------------- 1 | applications-internet.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/package_office.svg: -------------------------------------------------------------------------------- 1 | applications-office.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/package_settings.svg: -------------------------------------------------------------------------------- 1 | preferences-system.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/package_system.svg: -------------------------------------------------------------------------------- 1 | applications-system.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/package_utilities.svg: -------------------------------------------------------------------------------- 1 | applications-accessories.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/redhat-accessories.svg: -------------------------------------------------------------------------------- 1 | applications-accessories.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/redhat-games.svg: -------------------------------------------------------------------------------- 1 | applications-games.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/redhat-graphics.svg: -------------------------------------------------------------------------------- 1 | applications-graphics.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/redhat-internet.svg: -------------------------------------------------------------------------------- 1 | applications-internet.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/redhat-office.svg: -------------------------------------------------------------------------------- 1 | applications-office.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/redhat-preferences.svg: -------------------------------------------------------------------------------- 1 | preferences-desktop.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/redhat-programming.svg: -------------------------------------------------------------------------------- 1 | applications-development.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/redhat-sound_video.svg: -------------------------------------------------------------------------------- 1 | applications-multimedia.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/redhat-system_settings.svg: -------------------------------------------------------------------------------- 1 | preferences-system.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/redhat-system_tools.svg: -------------------------------------------------------------------------------- 1 | applications-system.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/stock_internet.svg: -------------------------------------------------------------------------------- 1 | applications-internet.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/xfce-games.svg: -------------------------------------------------------------------------------- 1 | applications-games.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/xfce-graphics.svg: -------------------------------------------------------------------------------- 1 | applications-graphics.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/xfce-internet.svg: -------------------------------------------------------------------------------- 1 | applications-internet.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/xfce-multimedia.svg: -------------------------------------------------------------------------------- 1 | applications-multimedia.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/xfce-office.svg: -------------------------------------------------------------------------------- 1 | applications-office.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/xfce-system-settings.svg: -------------------------------------------------------------------------------- 1 | preferences-system.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/xfce-utils.svg: -------------------------------------------------------------------------------- 1 | applications-accessories.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/categories/xfce4-settings.svg: -------------------------------------------------------------------------------- 1 | preferences-desktop.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/3floppy_unmount.svg: -------------------------------------------------------------------------------- 1 | media-floppy.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/camera.svg: -------------------------------------------------------------------------------- 1 | camera-photo.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/camera_unmount.svg: -------------------------------------------------------------------------------- 1 | camera-photo.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/cdrom_unmount.svg: -------------------------------------------------------------------------------- 1 | media-optical.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/cdwriter_unmount.svg: -------------------------------------------------------------------------------- 1 | media-optical.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/chardevice.svg: -------------------------------------------------------------------------------- 1 | video-display.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/display.svg: -------------------------------------------------------------------------------- 1 | video-display.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/drive-cdrom.svg: -------------------------------------------------------------------------------- 1 | drive-optical.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/dvd_unmount.svg: -------------------------------------------------------------------------------- 1 | media-optical.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/gnome-dev-battery.svg: -------------------------------------------------------------------------------- 1 | battery.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/gnome-dev-cdrom-audio.svg: -------------------------------------------------------------------------------- 1 | media-optical.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/gnome-dev-cdrom.svg: -------------------------------------------------------------------------------- 1 | drive-optical.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/gnome-dev-computer.svg: -------------------------------------------------------------------------------- 1 | computer.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/gnome-dev-disc-cdr.svg: -------------------------------------------------------------------------------- 1 | media-optical.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/gnome-dev-disc-cdrw.svg: -------------------------------------------------------------------------------- 1 | media-optical.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/gnome-dev-disc-dvdr-plus.svg: -------------------------------------------------------------------------------- 1 | media-optical.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/gnome-dev-disc-dvdr.svg: -------------------------------------------------------------------------------- 1 | media-optical.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/gnome-dev-disc-dvdram.svg: -------------------------------------------------------------------------------- 1 | media-optical.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/gnome-dev-disc-dvdrom.svg: -------------------------------------------------------------------------------- 1 | media-optical.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/gnome-dev-disc-dvdrw.svg: -------------------------------------------------------------------------------- 1 | media-optical.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/gnome-dev-dvd.svg: -------------------------------------------------------------------------------- 1 | drive-optical.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/gnome-dev-ethernet.svg: -------------------------------------------------------------------------------- 1 | network-wired.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/gnome-dev-floppy.svg: -------------------------------------------------------------------------------- 1 | media-floppy.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/gnome-dev-harddisk-1394.svg: -------------------------------------------------------------------------------- 1 | drive-harddisk.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/gnome-dev-harddisk-usb.svg: -------------------------------------------------------------------------------- 1 | drive-harddisk.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/gnome-dev-harddisk.svg: -------------------------------------------------------------------------------- 1 | drive-harddisk.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/gnome-dev-ipod.svg: -------------------------------------------------------------------------------- 1 | multimedia-player.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/gnome-dev-keyboard.svg: -------------------------------------------------------------------------------- 1 | input-keyboard.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/gnome-dev-media-cf.svg: -------------------------------------------------------------------------------- 1 | media-flash.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/gnome-dev-media-ms.svg: -------------------------------------------------------------------------------- 1 | media-flash.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/gnome-dev-media-sdmmc.svg: -------------------------------------------------------------------------------- 1 | media-flash.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/gnome-dev-media-sm.svg: -------------------------------------------------------------------------------- 1 | media-flash.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/gnome-dev-mouse-ball.svg: -------------------------------------------------------------------------------- 1 | input-mouse.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/gnome-dev-mouse-optical.svg: -------------------------------------------------------------------------------- 1 | input-mouse.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/gnome-dev-printer.svg: -------------------------------------------------------------------------------- 1 | printer.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/gnome-dev-removable-1394.svg: -------------------------------------------------------------------------------- 1 | drive-removable-media.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/gnome-dev-removable-usb.svg: -------------------------------------------------------------------------------- 1 | drive-removable-media.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/gnome-dev-removable.svg: -------------------------------------------------------------------------------- 1 | drive-removable-media.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/gnome-dev-wavelan.svg: -------------------------------------------------------------------------------- 1 | network-wireless.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/gnome-fs-client.svg: -------------------------------------------------------------------------------- 1 | computer.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/gnome-stock-mic.svg: -------------------------------------------------------------------------------- 1 | audio-input-microphone.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/gtk-cdrom.svg: -------------------------------------------------------------------------------- 1 | media-optical.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/gtk-floppy.svg: -------------------------------------------------------------------------------- 1 | media-floppy.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/gtk-harddisk.svg: -------------------------------------------------------------------------------- 1 | drive-harddisk.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/harddrive.svg: -------------------------------------------------------------------------------- 1 | drive-harddisk.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/hdd_unmount.svg: -------------------------------------------------------------------------------- 1 | drive-harddisk.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/ipod_mount.svg: -------------------------------------------------------------------------------- 1 | multimedia-player.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/joystick.svg: -------------------------------------------------------------------------------- 1 | input-gaming.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/keyboard.svg: -------------------------------------------------------------------------------- 1 | input-keyboard.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/kjobviewer.svg: -------------------------------------------------------------------------------- 1 | printer.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/kxkb.svg: -------------------------------------------------------------------------------- 1 | input-keyboard.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/media-cdrom.svg: -------------------------------------------------------------------------------- 1 | media-optical.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/mouse.svg: -------------------------------------------------------------------------------- 1 | input-mouse.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/printer-remote.svg: -------------------------------------------------------------------------------- 1 | printer.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/printer1.svg: -------------------------------------------------------------------------------- 1 | printer.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/printmgr.svg: -------------------------------------------------------------------------------- 1 | printer.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/stock_mic.svg: -------------------------------------------------------------------------------- 1 | audio-input-microphone.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/stock_printers.svg: -------------------------------------------------------------------------------- 1 | printer.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/system-floppy.svg: -------------------------------------------------------------------------------- 1 | media-floppy.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/system.svg: -------------------------------------------------------------------------------- 1 | computer.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/usbpendrive_unmount.svg: -------------------------------------------------------------------------------- 1 | drive-removable-media.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/xfce-printer.svg: -------------------------------------------------------------------------------- 1 | printer.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/xfce4-display.svg: -------------------------------------------------------------------------------- 1 | video-display.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/xfce4-keyboard.svg: -------------------------------------------------------------------------------- 1 | input-keyboard.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/xfce4-mouse.svg: -------------------------------------------------------------------------------- 1 | input-mouse.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/yast_HD.svg: -------------------------------------------------------------------------------- 1 | drive-harddisk.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/yast_idetude.svg: -------------------------------------------------------------------------------- 1 | drive-harddisk.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/yast_joystick.svg: -------------------------------------------------------------------------------- 1 | input-gaming.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/yast_mouse.svg: -------------------------------------------------------------------------------- 1 | input-mouse.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/yast_printer.svg: -------------------------------------------------------------------------------- 1 | printer.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/devices/yast_soundcard.svg: -------------------------------------------------------------------------------- 1 | audio-card.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/emblems/emblem-noread.svg: -------------------------------------------------------------------------------- 1 | emblem-unreadable.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/emblems/emblem-nowrite.svg: -------------------------------------------------------------------------------- 1 | emblem-readonly.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/emotes/stock_smiley-1.svg: -------------------------------------------------------------------------------- 1 | face-smile.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/emotes/stock_smiley-11.svg: -------------------------------------------------------------------------------- 1 | face-crying.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/emotes/stock_smiley-13.svg: -------------------------------------------------------------------------------- 1 | face-kiss.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/emotes/stock_smiley-18.svg: -------------------------------------------------------------------------------- 1 | face-angel.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/emotes/stock_smiley-2.svg: -------------------------------------------------------------------------------- 1 | face-smile.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/emotes/stock_smiley-22.svg: -------------------------------------------------------------------------------- 1 | face-monkey.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/emotes/stock_smiley-3.svg: -------------------------------------------------------------------------------- 1 | face-wink.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/emotes/stock_smiley-4.svg: -------------------------------------------------------------------------------- 1 | face-sad.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/emotes/stock_smiley-5.svg: -------------------------------------------------------------------------------- 1 | face-surprise.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/emotes/stock_smiley-6.svg: -------------------------------------------------------------------------------- 1 | face-smile-big.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/emotes/stock_smiley-7.svg: -------------------------------------------------------------------------------- 1 | face-smile.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/emotes/stock_smiley-8.svg: -------------------------------------------------------------------------------- 1 | face-plain.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/application-vnd.ms-excel.sheet.macroEnabled.12.svg: -------------------------------------------------------------------------------- 1 | x-office-spreadsheet.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/application-vnd.ms-powerpoint.presentation.macroEnabled.12.svg: -------------------------------------------------------------------------------- 1 | x-office-presentation.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/application-vnd.ms-word.document.macroEnabled.12.svg: -------------------------------------------------------------------------------- 1 | x-office-document.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/application-vnd.openxmlformats-officedocument.presentationml.presentation.svg: -------------------------------------------------------------------------------- 1 | x-office-presentation.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/application-vnd.openxmlformats-officedocument.presentationml.template.svg: -------------------------------------------------------------------------------- 1 | x-office-presentation-template.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/application-vnd.openxmlformats-officedocument.spreadsheetml.sheet.svg: -------------------------------------------------------------------------------- 1 | x-office-spreadsheet.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/application-vnd.openxmlformats-officedocument.spreadsheetml.template.svg: -------------------------------------------------------------------------------- 1 | x-office-spreadsheet-template.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/application-vnd.openxmlformats-officedocument.wordprocessingml.document.svg: -------------------------------------------------------------------------------- 1 | x-office-document.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/application-vnd.openxmlformats-officedocument.wordprocessingml.template.svg: -------------------------------------------------------------------------------- 1 | x-office-document-template.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/ascii.svg: -------------------------------------------------------------------------------- 1 | text-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/binary.svg: -------------------------------------------------------------------------------- 1 | application-x-executable.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/contents2.svg: -------------------------------------------------------------------------------- 1 | x-office-address-book.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/deb.svg: -------------------------------------------------------------------------------- 1 | package-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/document.svg: -------------------------------------------------------------------------------- 1 | x-office-document.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/empty.svg: -------------------------------------------------------------------------------- 1 | text-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/exec.svg: -------------------------------------------------------------------------------- 1 | application-x-executable.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/folder_tar.svg: -------------------------------------------------------------------------------- 1 | package-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/font.svg: -------------------------------------------------------------------------------- 1 | font-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/font_bitmap.svg: -------------------------------------------------------------------------------- 1 | font-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/font_truetype.svg: -------------------------------------------------------------------------------- 1 | font-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/font_type1.svg: -------------------------------------------------------------------------------- 1 | font-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-fs-executable.svg: -------------------------------------------------------------------------------- 1 | application-x-executable.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-magicpoint.svg: -------------------------------------------------------------------------------- 1 | x-office-presentation.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-msword.svg: -------------------------------------------------------------------------------- 1 | x-office-document.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-ogg.svg: -------------------------------------------------------------------------------- 1 | audio-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-pdf.svg: -------------------------------------------------------------------------------- 1 | x-office-document.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-postscript.svg: -------------------------------------------------------------------------------- 1 | x-office-document.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-rtf.svg: -------------------------------------------------------------------------------- 1 | x-office-document.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-vnd.lotus-1-2-3.svg: -------------------------------------------------------------------------------- 1 | x-office-spreadsheet.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-vnd.ms-excel.svg: -------------------------------------------------------------------------------- 1 | x-office-spreadsheet.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-vnd.ms-powerpoint.svg: -------------------------------------------------------------------------------- 1 | x-office-presentation.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-vnd.oasis.opendocument.graphics-template.svg: -------------------------------------------------------------------------------- 1 | x-office-drawing-template.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-vnd.oasis.opendocument.graphics.svg: -------------------------------------------------------------------------------- 1 | x-office-drawing.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-vnd.oasis.opendocument.image.svg: -------------------------------------------------------------------------------- 1 | x-office-drawing.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-vnd.oasis.opendocument.presentation-template.svg: -------------------------------------------------------------------------------- 1 | x-office-presentation-template.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-vnd.oasis.opendocument.presentation.svg: -------------------------------------------------------------------------------- 1 | x-office-presentation.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-vnd.oasis.opendocument.spreadsheet-template.svg: -------------------------------------------------------------------------------- 1 | x-office-spreadsheet-template.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-vnd.oasis.opendocument.spreadsheet.svg: -------------------------------------------------------------------------------- 1 | x-office-spreadsheet.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-vnd.oasis.opendocument.text-template.svg: -------------------------------------------------------------------------------- 1 | x-office-document-template.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-vnd.oasis.opendocument.text-web.svg: -------------------------------------------------------------------------------- 1 | text-html.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-vnd.oasis.opendocument.text.svg: -------------------------------------------------------------------------------- 1 | x-office-document.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-vnd.rn-realmedia-secure.svg: -------------------------------------------------------------------------------- 1 | video-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-vnd.rn-realmedia-vbr.svg: -------------------------------------------------------------------------------- 1 | video-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-vnd.rn-realmedia.svg: -------------------------------------------------------------------------------- 1 | video-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-vnd.stardivision.calc.svg: -------------------------------------------------------------------------------- 1 | x-office-spreadsheet.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-vnd.stardivision.impress.svg: -------------------------------------------------------------------------------- 1 | x-office-presentation.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-vnd.stardivision.writer.svg: -------------------------------------------------------------------------------- 1 | x-office-document.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-vnd.sun.xml.calc.svg: -------------------------------------------------------------------------------- 1 | x-office-spreadsheet.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-vnd.sun.xml.calc.template.svg: -------------------------------------------------------------------------------- 1 | x-office-spreadsheet-template.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-vnd.sun.xml.draw.svg: -------------------------------------------------------------------------------- 1 | x-office-drawing.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-vnd.sun.xml.draw.template.svg: -------------------------------------------------------------------------------- 1 | x-office-drawing-template.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-vnd.sun.xml.impress.svg: -------------------------------------------------------------------------------- 1 | x-office-presentation.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-vnd.sun.xml.impress.template.svg: -------------------------------------------------------------------------------- 1 | x-office-presentation-template.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-vnd.sun.xml.writer.svg: -------------------------------------------------------------------------------- 1 | x-office-document.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-vnd.sun.xml.writer.template.svg: -------------------------------------------------------------------------------- 1 | x-office-document-template.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-wordperfect.svg: -------------------------------------------------------------------------------- 1 | x-office-document.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-7z-compressed.svg: -------------------------------------------------------------------------------- 1 | package-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-abiword.svg: -------------------------------------------------------------------------------- 1 | x-office-document.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-applix-spreadsheet.svg: -------------------------------------------------------------------------------- 1 | x-office-spreadsheet.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-applix-word.svg: -------------------------------------------------------------------------------- 1 | x-office-document.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-archive.svg: -------------------------------------------------------------------------------- 1 | package-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-arj.svg: -------------------------------------------------------------------------------- 1 | package-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-bzip-compressed-tar.svg: -------------------------------------------------------------------------------- 1 | package-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-bzip.svg: -------------------------------------------------------------------------------- 1 | package-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-compress.svg: -------------------------------------------------------------------------------- 1 | package-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-compressed-tar.svg: -------------------------------------------------------------------------------- 1 | package-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-cpio-compressed.svg: -------------------------------------------------------------------------------- 1 | package-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-cpio.svg: -------------------------------------------------------------------------------- 1 | package-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-deb.svg: -------------------------------------------------------------------------------- 1 | package-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-dvi.svg: -------------------------------------------------------------------------------- 1 | x-office-document.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-executable.svg: -------------------------------------------------------------------------------- 1 | application-x-executable.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-font-afm.svg: -------------------------------------------------------------------------------- 1 | font-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-font-bdf.svg: -------------------------------------------------------------------------------- 1 | font-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-font-linux-psf.svg: -------------------------------------------------------------------------------- 1 | font-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-font-pcf.svg: -------------------------------------------------------------------------------- 1 | font-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-font-sunos-news.svg: -------------------------------------------------------------------------------- 1 | font-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-font-ttf.svg: -------------------------------------------------------------------------------- 1 | font-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-gnumeric.svg: -------------------------------------------------------------------------------- 1 | x-office-spreadsheet.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-gzip.svg: -------------------------------------------------------------------------------- 1 | package-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-gzpostscript.svg: -------------------------------------------------------------------------------- 1 | x-office-document.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-jar.svg: -------------------------------------------------------------------------------- 1 | package-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-killustrator.svg: -------------------------------------------------------------------------------- 1 | image-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-kpresenter.svg: -------------------------------------------------------------------------------- 1 | x-office-presentation.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-kspread.svg: -------------------------------------------------------------------------------- 1 | x-office-spreadsheet.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-kword.svg: -------------------------------------------------------------------------------- 1 | x-office-document.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-lha.svg: -------------------------------------------------------------------------------- 1 | package-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-lhz.svg: -------------------------------------------------------------------------------- 1 | package-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-lzma-compressed-tar.svg: -------------------------------------------------------------------------------- 1 | package-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-lzma.svg: -------------------------------------------------------------------------------- 1 | package-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-ms-dos-executable.svg: -------------------------------------------------------------------------------- 1 | application-x-executable.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-perl.svg: -------------------------------------------------------------------------------- 1 | text-x-script.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-php.svg: -------------------------------------------------------------------------------- 1 | text-html.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-python-bytecode.svg: -------------------------------------------------------------------------------- 1 | text-x-script.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-rar.svg: -------------------------------------------------------------------------------- 1 | package-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-rpm.svg: -------------------------------------------------------------------------------- 1 | package-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-scribus.svg: -------------------------------------------------------------------------------- 1 | x-office-document.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-shellscript.svg: -------------------------------------------------------------------------------- 1 | text-x-script.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-shockwave-flash.svg: -------------------------------------------------------------------------------- 1 | video-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-stuffit.svg: -------------------------------------------------------------------------------- 1 | package-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-tar.svg: -------------------------------------------------------------------------------- 1 | package-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-tarz.svg: -------------------------------------------------------------------------------- 1 | package-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-x-tex.svg: -------------------------------------------------------------------------------- 1 | x-office-document.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-xhtml+xml.svg: -------------------------------------------------------------------------------- 1 | text-html.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-application-zip.svg: -------------------------------------------------------------------------------- 1 | package-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-audio.svg: -------------------------------------------------------------------------------- 1 | audio-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-image.svg: -------------------------------------------------------------------------------- 1 | image-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-text-html.svg: -------------------------------------------------------------------------------- 1 | text-html.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-text-vnd.wap.wml.svg: -------------------------------------------------------------------------------- 1 | text-html.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-text-x-csh.svg: -------------------------------------------------------------------------------- 1 | text-x-script.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-text-x-python.svg: -------------------------------------------------------------------------------- 1 | text-x-script.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-text-x-sh.svg: -------------------------------------------------------------------------------- 1 | text-x-script.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-text-x-vcalendar.svg: -------------------------------------------------------------------------------- 1 | x-office-calendar.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-text-x-vcard.svg: -------------------------------------------------------------------------------- 1 | x-office-address-book.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-text-x-zsh.svg: -------------------------------------------------------------------------------- 1 | text-x-script.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-text.svg: -------------------------------------------------------------------------------- 1 | text-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-video.svg: -------------------------------------------------------------------------------- 1 | video-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-mime-x-font-afm.svg: -------------------------------------------------------------------------------- 1 | font-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/gnome-package.svg: -------------------------------------------------------------------------------- 1 | package-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/html.svg: -------------------------------------------------------------------------------- 1 | text-html.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/image.svg: -------------------------------------------------------------------------------- 1 | image-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/kpresenter_kpr.svg: -------------------------------------------------------------------------------- 1 | x-office-presentation.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/mime_ascii.svg: -------------------------------------------------------------------------------- 1 | text-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/misc.svg: -------------------------------------------------------------------------------- 1 | text-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/package.svg: -------------------------------------------------------------------------------- 1 | package-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/package_editors.svg: -------------------------------------------------------------------------------- 1 | text-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/package_wordprocessing.svg: -------------------------------------------------------------------------------- 1 | x-office-document.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/plan.svg: -------------------------------------------------------------------------------- 1 | x-office-calendar.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/rpm.svg: -------------------------------------------------------------------------------- 1 | package-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/shellscript.svg: -------------------------------------------------------------------------------- 1 | text-x-script.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/sound.svg: -------------------------------------------------------------------------------- 1 | audio-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/spreadsheet.svg: -------------------------------------------------------------------------------- 1 | x-office-spreadsheet.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/stock_addressbook.svg: -------------------------------------------------------------------------------- 1 | x-office-address-book.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/stock_calendar.svg: -------------------------------------------------------------------------------- 1 | x-office-calendar.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/stock_certificate.svg: -------------------------------------------------------------------------------- 1 | application-certificate.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/stock_script.svg: -------------------------------------------------------------------------------- 1 | text-x-script.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/tar.svg: -------------------------------------------------------------------------------- 1 | package-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/template_source.svg: -------------------------------------------------------------------------------- 1 | text-x-generic-template.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/tgz.svg: -------------------------------------------------------------------------------- 1 | package-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/txt.svg: -------------------------------------------------------------------------------- 1 | text-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/txt2.svg: -------------------------------------------------------------------------------- 1 | text-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/unknown.svg: -------------------------------------------------------------------------------- 1 | text-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/vcalendar.svg: -------------------------------------------------------------------------------- 1 | x-office-calendar.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/vcard.svg: -------------------------------------------------------------------------------- 1 | x-office-address-book.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/video.svg: -------------------------------------------------------------------------------- 1 | video-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/wordprocessing.svg: -------------------------------------------------------------------------------- 1 | x-office-document.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/www.svg: -------------------------------------------------------------------------------- 1 | text-html.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/mimetypes/zip.svg: -------------------------------------------------------------------------------- 1 | package-x-generic.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/places/application-x-gnome-saved-search.svg: -------------------------------------------------------------------------------- 1 | folder-saved-search.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/places/desktop.svg: -------------------------------------------------------------------------------- 1 | user-desktop.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/places/distributor-logo.svg: -------------------------------------------------------------------------------- 1 | start-here.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/places/emptytrash.svg: -------------------------------------------------------------------------------- 1 | user-trash.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/places/folder.icon: -------------------------------------------------------------------------------- 1 | [Icon Data] 2 | AttachPoints=200,800|800,800|800,80|200,80 3 | -------------------------------------------------------------------------------- /icons/Tango/scalable/places/folder_home.svg: -------------------------------------------------------------------------------- 1 | user-home.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/places/gnome-fs-desktop.svg: -------------------------------------------------------------------------------- 1 | user-desktop.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/places/gnome-fs-directory.icon: -------------------------------------------------------------------------------- 1 | folder.icon -------------------------------------------------------------------------------- /icons/Tango/scalable/places/gnome-fs-directory.svg: -------------------------------------------------------------------------------- 1 | folder.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/places/gnome-fs-ftp.svg: -------------------------------------------------------------------------------- 1 | folder-remote.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/places/gnome-fs-home.svg: -------------------------------------------------------------------------------- 1 | user-home.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/places/gnome-fs-network.svg: -------------------------------------------------------------------------------- 1 | network-workgroup.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/places/gnome-fs-nfs.svg: -------------------------------------------------------------------------------- 1 | folder-remote.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/places/gnome-fs-server.svg: -------------------------------------------------------------------------------- 1 | network-server.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/places/gnome-fs-share.svg: -------------------------------------------------------------------------------- 1 | folder-remote.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/places/gnome-fs-smb.svg: -------------------------------------------------------------------------------- 1 | folder-remote.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/places/gnome-fs-ssh.svg: -------------------------------------------------------------------------------- 1 | folder-remote.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/places/gnome-fs-trash-empty.svg: -------------------------------------------------------------------------------- 1 | user-trash.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/places/gnome-main-menu.svg: -------------------------------------------------------------------------------- 1 | start-here.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/places/gnome-mime-x-directory-nfs-server.svg: -------------------------------------------------------------------------------- 1 | network-server.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/places/gnome-mime-x-directory-smb-server.svg: -------------------------------------------------------------------------------- 1 | network-server.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/places/gnome-mime-x-directory-smb-share.svg: -------------------------------------------------------------------------------- 1 | folder-remote.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/places/gnome-mime-x-directory-smb-workgroup.svg: -------------------------------------------------------------------------------- 1 | network-workgroup.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/places/gnome-stock-trash.svg: -------------------------------------------------------------------------------- 1 | user-trash.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/places/gtk-directory.icon: -------------------------------------------------------------------------------- 1 | folder.icon -------------------------------------------------------------------------------- /icons/Tango/scalable/places/gtk-directory.svg: -------------------------------------------------------------------------------- 1 | folder.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/places/gtk-network.svg: -------------------------------------------------------------------------------- 1 | network-workgroup.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/places/inode-directory.icon: -------------------------------------------------------------------------------- 1 | folder.icon -------------------------------------------------------------------------------- /icons/Tango/scalable/places/inode-directory.svg: -------------------------------------------------------------------------------- 1 | folder.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/places/network.svg: -------------------------------------------------------------------------------- 1 | folder-remote.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/places/network_local.svg: -------------------------------------------------------------------------------- 1 | network-workgroup.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/places/novell-button.svg: -------------------------------------------------------------------------------- 1 | start-here.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/places/redhat-network-server.svg: -------------------------------------------------------------------------------- 1 | network-server.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/places/server.svg: -------------------------------------------------------------------------------- 1 | network-server.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/places/stock_folder.icon: -------------------------------------------------------------------------------- 1 | folder.icon -------------------------------------------------------------------------------- /icons/Tango/scalable/places/stock_folder.svg: -------------------------------------------------------------------------------- 1 | folder.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/places/trashcan_empty.svg: -------------------------------------------------------------------------------- 1 | user-trash.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/places/xfce-trash_empty.svg: -------------------------------------------------------------------------------- 1 | user-trash.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/connect_creating.svg: -------------------------------------------------------------------------------- 1 | network-transmit-receive.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/connect_established.svg: -------------------------------------------------------------------------------- 1 | network-idle.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/connect_no.svg: -------------------------------------------------------------------------------- 1 | network-offline.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/edittrash.svg: -------------------------------------------------------------------------------- 1 | user-trash-full.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/error.svg: -------------------------------------------------------------------------------- 1 | dialog-error.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/folder-drag-accept.icon: -------------------------------------------------------------------------------- 1 | [Icon Data] 2 | AttachPoints=200,200|800,200|800,800|200,800 3 | -------------------------------------------------------------------------------- /icons/Tango/scalable/status/folder-visiting.icon: -------------------------------------------------------------------------------- 1 | [Icon Data] 2 | AttachPoints=200,200|800,200|800,800|200,800 3 | -------------------------------------------------------------------------------- /icons/Tango/scalable/status/folder_open.svg: -------------------------------------------------------------------------------- 1 | folder-open.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/gnome-dev-wavelan-encrypted.svg: -------------------------------------------------------------------------------- 1 | network-wireless-encrypted.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/gnome-fs-directory-accept.icon: -------------------------------------------------------------------------------- 1 | folder-drag-accept.icon -------------------------------------------------------------------------------- /icons/Tango/scalable/status/gnome-fs-directory-accept.svg: -------------------------------------------------------------------------------- 1 | folder-drag-accept.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/gnome-fs-directory-visiting.icon: -------------------------------------------------------------------------------- 1 | folder-visiting.icon -------------------------------------------------------------------------------- /icons/Tango/scalable/status/gnome-fs-directory-visiting.svg: -------------------------------------------------------------------------------- 1 | folder-visiting.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/gnome-fs-loading-icon.svg: -------------------------------------------------------------------------------- 1 | image-loading.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/gnome-fs-trash-full.svg: -------------------------------------------------------------------------------- 1 | user-trash-full.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/gnome-netstatus-disconn.svg: -------------------------------------------------------------------------------- 1 | network-offline.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/gnome-netstatus-error.svg: -------------------------------------------------------------------------------- 1 | network-error.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/gnome-netstatus-idle.svg: -------------------------------------------------------------------------------- 1 | network-idle.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/gnome-netstatus-rx.svg: -------------------------------------------------------------------------------- 1 | network-receive.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/gnome-netstatus-tx.svg: -------------------------------------------------------------------------------- 1 | network-transmit.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/gnome-netstatus-txrx.svg: -------------------------------------------------------------------------------- 1 | network-transmit-receive.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/gnome-stock-trash-full.svg: -------------------------------------------------------------------------------- 1 | user-trash-full.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/gtk-dialog-error.svg: -------------------------------------------------------------------------------- 1 | dialog-error.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/gtk-dialog-info.svg: -------------------------------------------------------------------------------- 1 | dialog-information.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/gtk-dialog-warning.svg: -------------------------------------------------------------------------------- 1 | dialog-warning.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/gtk-missing-image.svg: -------------------------------------------------------------------------------- 1 | image-missing.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/important.svg: -------------------------------------------------------------------------------- 1 | dialog-warning.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/info.svg: -------------------------------------------------------------------------------- 1 | dialog-information.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/messagebox_critical.svg: -------------------------------------------------------------------------------- 1 | dialog-error.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/messagebox_info.svg: -------------------------------------------------------------------------------- 1 | dialog-information.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/messagebox_warning.svg: -------------------------------------------------------------------------------- 1 | dialog-warning.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/nm-adhoc.svg: -------------------------------------------------------------------------------- 1 | network-idle.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/nm-device-wired.svg: -------------------------------------------------------------------------------- 1 | network-idle.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/nm-device-wireless.svg: -------------------------------------------------------------------------------- 1 | network-idle.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/nm-no-connection.svg: -------------------------------------------------------------------------------- 1 | network-offline.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/stock_attach.svg: -------------------------------------------------------------------------------- 1 | mail-attachment.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/stock_dialog-error.svg: -------------------------------------------------------------------------------- 1 | dialog-error.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/stock_dialog-info.svg: -------------------------------------------------------------------------------- 1 | dialog-information.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/stock_dialog-warning.svg: -------------------------------------------------------------------------------- 1 | dialog-warning.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/stock_open.svg: -------------------------------------------------------------------------------- 1 | folder-open.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/stock_trash_full.svg: -------------------------------------------------------------------------------- 1 | user-trash-full.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/stock_volume-0.svg: -------------------------------------------------------------------------------- 1 | audio-volume-low.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/stock_volume-max.svg: -------------------------------------------------------------------------------- 1 | audio-volume-high.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/stock_volume-med.svg: -------------------------------------------------------------------------------- 1 | audio-volume-medium.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/stock_volume-min.svg: -------------------------------------------------------------------------------- 1 | audio-volume-low.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/stock_volume-mute.svg: -------------------------------------------------------------------------------- 1 | audio-volume-muted.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/stock_volume.svg: -------------------------------------------------------------------------------- 1 | audio-volume-high.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/stock_weather-cloudy.svg: -------------------------------------------------------------------------------- 1 | weather-overcast.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/stock_weather-few-clouds.svg: -------------------------------------------------------------------------------- 1 | weather-few-clouds.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/stock_weather-night-clear.svg: -------------------------------------------------------------------------------- 1 | weather-clear-night.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/stock_weather-night-few-clouds.svg: -------------------------------------------------------------------------------- 1 | weather-few-clouds-night.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/stock_weather-showers.svg: -------------------------------------------------------------------------------- 1 | weather-showers.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/stock_weather-snow.svg: -------------------------------------------------------------------------------- 1 | weather-snow.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/stock_weather-storm.svg: -------------------------------------------------------------------------------- 1 | weather-storm.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/stock_weather-sunny.svg: -------------------------------------------------------------------------------- 1 | weather-clear.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/sunny.svg: -------------------------------------------------------------------------------- 1 | weather-clear.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/trashcan_full.svg: -------------------------------------------------------------------------------- 1 | user-trash-full.svg -------------------------------------------------------------------------------- /icons/Tango/scalable/status/xfce-trash_full.svg: -------------------------------------------------------------------------------- 1 | user-trash-full.svg -------------------------------------------------------------------------------- /include/bootentrydelegate.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-3.0-or-later 2 | #pragma once 3 | 4 | #include "bootentry.h" 5 | #include "bootentrylistmodel.h" 6 | #include "bootentrywidget.h" 7 | #include "qwidgetitemdelegate.h" 8 | 9 | class BootEntryDelegate: public QWidgetItemDelegate 10 | { 11 | private: 12 | BootEntryListModel::Options options{}; 13 | mutable const QModelIndex *currentIndex{nullptr}; 14 | 15 | public: 16 | BootEntryDelegate(); 17 | BootEntryDelegate(const BootEntryDelegate &) = delete; 18 | BootEntryDelegate &operator=(const BootEntryDelegate &) = delete; 19 | 20 | void setOptions(const BootEntryListModel::Options &options_); 21 | 22 | protected: 23 | void setupWidgetFromItem(Widget &widget, const Item &item, const QModelIndex &index, int role) const override; 24 | 25 | private Q_SLOTS: 26 | void setNextBoot(bool checked) const; 27 | }; 28 | -------------------------------------------------------------------------------- /include/bootentryform.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-3.0-or-later 2 | #pragma once 3 | 4 | #include 5 | #include 6 | 7 | #include "bootentry.h" 8 | #include "bootentrylistmodel.h" 9 | #include "devicepathproxymodel.h" 10 | 11 | namespace Ui 12 | { 13 | class BootEntryForm; 14 | } 15 | 16 | class BootEntryForm: public QWidget 17 | { 18 | Q_OBJECT 19 | 20 | private: 21 | std::unique_ptr ui; 22 | BootEntryListModel *entries_list_model{nullptr}; 23 | DevicePathProxyModel device_path_proxy_model{}; 24 | QModelIndex current_index{}; 25 | const BootEntry *current_item{nullptr}; 26 | bool changing_optional_data_format{false}; 27 | 28 | public: 29 | explicit BootEntryForm(QWidget *parent = nullptr); 30 | BootEntryForm(const BootEntryForm &) = delete; 31 | BootEntryForm &operator=(const BootEntryForm &) = delete; 32 | ~BootEntryForm() override; 33 | 34 | void setReadOnly(bool readonly); 35 | void showCategory(bool visible); 36 | void showHotKeys(bool visible); 37 | 38 | void setBootEntryListModel(BootEntryListModel &model); 39 | void setItem(const QModelIndex &index, const BootEntry *item); 40 | 41 | Q_SIGNALS: 42 | void showHotKeysDialog(int index); 43 | 44 | private Q_SLOTS: 45 | void setIndex(const QString &text); 46 | void setDescription(const QString &text); 47 | void setOptionalDataFormat(int format); 48 | void optionalDataEdited(); 49 | void setAttribute(int state); 50 | void showHotKeysDialog(); 51 | 52 | private: 53 | EFIBoot::Load_option_attribute getAttributes() const; 54 | }; 55 | -------------------------------------------------------------------------------- /include/bootentrylistview.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-3.0-or-later 2 | #pragma once 3 | 4 | #include 5 | 6 | #include "bootentrydelegate.h" 7 | #include "bootentrylistmodel.h" 8 | 9 | class BootEntryListView: public QListView 10 | { 11 | Q_OBJECT 12 | 13 | private: 14 | BootEntryDelegate delegate{}; 15 | BootEntryListModel::Options options{}; 16 | 17 | public: 18 | explicit BootEntryListView(QWidget *parent = nullptr); 19 | BootEntryListView(const BootEntryListView &) = delete; 20 | BootEntryListView &operator=(const BootEntryListView &) = delete; 21 | 22 | void setModel(QAbstractItemModel *model) override { QListView::setModel(model); } 23 | void setModel(BootEntryListModel *model); 24 | 25 | protected: 26 | void selectionChanged(const QItemSelection &selection, const QItemSelection &) override; 27 | 28 | Q_SIGNALS: 29 | void selected(const QModelIndex &index); 30 | 31 | public Q_SLOTS: 32 | void insertRow(); 33 | void duplicateRow(); 34 | void removeCurrentRow(); 35 | void moveCurrentRowUp(); 36 | void moveCurrentRowDown(); 37 | 38 | void rowsMoved(const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationRow); 39 | void rowsChanged(const QModelIndex &parent, int first, int last); 40 | }; 41 | -------------------------------------------------------------------------------- /include/bootentrywidget.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-3.0-or-later 2 | #pragma once 3 | 4 | #include 5 | #include 6 | 7 | class BootEntry; 8 | class QButtonGroup; 9 | 10 | namespace Ui 11 | { 12 | class BootEntryWidget; 13 | } 14 | 15 | class BootEntryWidget: public QWidget 16 | { 17 | Q_OBJECT 18 | 19 | private: 20 | std::unique_ptr ui; 21 | 22 | public: 23 | explicit BootEntryWidget(QWidget *parent = nullptr); 24 | BootEntryWidget(const BootEntryWidget &) = delete; 25 | BootEntryWidget &operator=(const BootEntryWidget &) = delete; 26 | ~BootEntryWidget() override; 27 | 28 | void setReadOnly(bool readonly); 29 | void showBootOptions(bool is_boot); 30 | void showDevicePath(bool not_error); 31 | 32 | void setIndex(const uint32_t index); 33 | void setDescription(const QString &description); 34 | void setDevicePath(const QString &device_path); 35 | void setData(const QString &data); 36 | bool getNextBoot() const; 37 | void setNextBoot(bool next_boot); 38 | bool getCurrentBoot() const; 39 | void setCurrentBoot(bool current_boot); 40 | 41 | Q_SIGNALS: 42 | void nextBootClicked(bool checked); 43 | }; 44 | -------------------------------------------------------------------------------- /include/devicepathproxymodel.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-3.0-or-later 2 | #pragma once 3 | 4 | #include "bootentry.h" 5 | #include "bootentrylistmodel.h" 6 | #include 7 | 8 | class DevicePathProxyModel: public QAbstractListModel 9 | { 10 | Q_OBJECT 11 | 12 | public: 13 | explicit DevicePathProxyModel(QObject *parent = nullptr); 14 | DevicePathProxyModel(const DevicePathProxyModel &) = delete; 15 | DevicePathProxyModel &operator=(const DevicePathProxyModel &) = delete; 16 | 17 | void setBootEntryListModel(BootEntryListModel &model); 18 | void setBootEntryItem(const QModelIndex &index, const BootEntry *item); 19 | 20 | int rowCount(const QModelIndex &parent = QModelIndex()) const override; 21 | 22 | QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; 23 | bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override; 24 | 25 | bool insertRows(int row, int count, const QModelIndex &parent = QModelIndex()) override; 26 | 27 | bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()) override; 28 | 29 | bool moveRows(const QModelIndex &sourceParent, int sourceRow, int count, const QModelIndex &destinationParent, int destinationChild) override; 30 | 31 | void clear(); 32 | 33 | private: 34 | BootEntryListModel *boot_entry_list_model = nullptr; 35 | QModelIndex boot_entry_index = {}; 36 | const QVector *boot_entry_device_path = nullptr; 37 | }; 38 | -------------------------------------------------------------------------------- /include/devicepathview.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-3.0-or-later 2 | #pragma once 3 | 4 | #include "filepathdelegate.h" 5 | #include "filepathdialog.h" 6 | #include 7 | 8 | class DevicePathView: public QListView 9 | { 10 | Q_OBJECT 11 | 12 | private: 13 | FilePathDelegate delegate{}; 14 | std::unique_ptr dialog{nullptr}; 15 | bool readonly{false}; 16 | 17 | public: 18 | explicit DevicePathView(QWidget *parent = nullptr); 19 | DevicePathView(const DevicePathView &) = delete; 20 | DevicePathView &operator=(const DevicePathView &) = delete; 21 | 22 | void setReadOnly(bool readonly); 23 | 24 | public Q_SLOTS: 25 | void insertRow(); 26 | void editCurrentRow(); 27 | void removeCurrentRow() const; 28 | void moveCurrentRowUp(); 29 | void moveCurrentRowDown(); 30 | }; 31 | -------------------------------------------------------------------------------- /include/disableundoredo.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-3.0-or-later 2 | #pragma once 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | class DisableUndoRedo: public QObject 9 | { 10 | Q_OBJECT 11 | 12 | using QObject::QObject; 13 | 14 | public: 15 | DisableUndoRedo(const DisableUndoRedo &) = delete; 16 | DisableUndoRedo &operator=(const DisableUndoRedo &) = delete; 17 | 18 | protected: 19 | bool eventFilter(QObject *obj, QEvent *ev) override 20 | { 21 | if(ev->type() == QEvent::ShortcutOverride) 22 | { 23 | auto keyEvent = dynamic_cast(ev); 24 | auto isUndo = keyEvent->matches(QKeySequence::Undo); 25 | auto isRedo = keyEvent->matches(QKeySequence::Redo); 26 | 27 | return isUndo || isRedo; 28 | } 29 | 30 | return QObject::eventFilter(obj, ev); 31 | } 32 | }; 33 | -------------------------------------------------------------------------------- /include/driveinfo.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-3.0-or-later 2 | #pragma once 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | class DriveInfo 9 | { 10 | static QVector all; 11 | 12 | public: 13 | enum class SIGNATURE : uint8_t 14 | { 15 | NONE = 0x00, 16 | MBR = 0x01, 17 | GUID = 0x02, 18 | }; 19 | 20 | public: 21 | QString name{}; 22 | QUuid signature{}; 23 | uint64_t start{0}; 24 | uint64_t size{0}; 25 | uint32_t partition{0}; 26 | SIGNATURE signature_type{SIGNATURE::NONE}; 27 | 28 | public: 29 | static QVector getAll(bool refresh = false); 30 | 31 | bool operator<(const DriveInfo &info) const { return name < info.name; } 32 | }; 33 | 34 | Q_DECLARE_METATYPE(DriveInfo) 35 | -------------------------------------------------------------------------------- /include/efibooteditorcli.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-3.0-or-later 2 | #pragma once 3 | 4 | #include 5 | #include 6 | 7 | #include "efibootdata.h" 8 | 9 | #if QT_VERSION < QT_VERSION_CHECK(5, 14, 0) 10 | #include 11 | namespace Qt 12 | { 13 | static const auto endl = ::endl; 14 | } 15 | #endif 16 | 17 | class EFIBootEditorCLI: public QObject 18 | { 19 | Q_OBJECT 20 | 21 | QCommandLineParser parser{}; 22 | EFIBootData data{this}; 23 | bool efi_supported; 24 | bool failed{false}; 25 | 26 | public: 27 | explicit EFIBootEditorCLI(const std::optional &efi_error_message, QObject *parent = nullptr); 28 | EFIBootEditorCLI(const EFIBootEditorCLI &) = delete; 29 | EFIBootEditorCLI &operator=(const EFIBootEditorCLI &) = delete; 30 | ~EFIBootEditorCLI() override; 31 | 32 | bool process(const QCoreApplication &app); 33 | 34 | public Q_SLOTS: 35 | void showError(const QString &message, const QString &details); 36 | void showProgress(size_t step, size_t total, const QString &details) const; 37 | void hideProgress() const; 38 | }; 39 | -------------------------------------------------------------------------------- /include/efikeysequenceedit.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-3.0-or-later 2 | #pragma once 3 | 4 | #include "efikeysequence.h" 5 | #include 6 | #include 7 | #include 8 | 9 | // Based on QKeySequenceEdit 10 | class EFIKeySequenceEdit: public QWidget 11 | { 12 | Q_OBJECT 13 | 14 | Q_PROPERTY(EFIKeySequence keySequence READ keySequence WRITE setKeySequence NOTIFY keySequenceChanged USER true) 15 | Q_PROPERTY(bool clearButtonEnabled READ isClearButtonEnabled WRITE setClearButtonEnabled) 16 | Q_PROPERTY(qsizetype maximumSequenceLength READ maximumSequenceLength WRITE setMaximumSequenceLength) 17 | 18 | private: 19 | std::unique_ptr lineEdit; 20 | std::unique_ptr layout; 21 | EFIKeySequence _keySequence{}; 22 | qsizetype _maximumSequenceLength{3}; 23 | int startKey{-1}; 24 | 25 | public: 26 | explicit EFIKeySequenceEdit(QWidget *parent = nullptr); 27 | explicit EFIKeySequenceEdit(const EFIKeySequence &keySequence, QWidget *parent = nullptr); 28 | EFIKeySequenceEdit(const EFIKeySequenceEdit &) = delete; 29 | EFIKeySequenceEdit &operator=(const EFIKeySequenceEdit &) = delete; 30 | 31 | const EFIKeySequence &keySequence() const { return _keySequence; } 32 | qsizetype maximumSequenceLength() const { return _maximumSequenceLength; } 33 | 34 | void setClearButtonEnabled(bool enable) { lineEdit->setClearButtonEnabled(enable); } 35 | bool isClearButtonEnabled() const { return lineEdit->isClearButtonEnabled(); } 36 | 37 | public Q_SLOTS: 38 | void setKeySequence(const EFIKeySequence &keySequence); 39 | void clear() { setKeySequence({}); } 40 | void setMaximumSequenceLength(qsizetype count); 41 | 42 | Q_SIGNALS: 43 | void editingFinished(); 44 | void keySequenceChanged(const EFIKeySequence &keySequence); 45 | 46 | protected: 47 | void keyPressEvent(QKeyEvent *event) override; 48 | void keyReleaseEvent(QKeyEvent *event) override; 49 | void focusOutEvent(QFocusEvent *event) override; 50 | 51 | private: 52 | void resetState(); 53 | void finishEditing(); 54 | }; 55 | -------------------------------------------------------------------------------- /include/efivar-lite/key-option.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-3.0-or-later 2 | #pragma once 3 | 4 | #pragma pack(push, 1) 5 | typedef struct efi_input_key_s 6 | { 7 | uint16_t scan_code; 8 | char16_t unicode_char; 9 | } efi_input_key; 10 | 11 | typedef union efi_boot_key_data_u 12 | { 13 | struct efi_boot_key_data_options_s 14 | { 15 | uint32_t revision : 8; 16 | uint32_t shift_pressed : 1; 17 | uint32_t control_pressed : 1; 18 | uint32_t alt_pressed : 1; 19 | uint32_t logo_pressed : 1; 20 | uint32_t menu_pressed : 1; 21 | uint32_t sys_req_pressed : 1; 22 | uint32_t reserved : 16; 23 | uint32_t input_key_count : 2; 24 | } options; 25 | uint32_t packed_value; 26 | } efi_boot_key_data; 27 | 28 | typedef struct efi_key_option_s 29 | { 30 | efi_boot_key_data key_data; 31 | uint32_t boot_option_crc; 32 | uint16_t boot_option; 33 | efi_input_key keys[ANYSIZE_ARRAY]; 34 | // uint8_t vendor_data[ANYSIZE_ARRAY]; 35 | } efi_key_option; 36 | #pragma pack(pop) 37 | -------------------------------------------------------------------------------- /include/efivar-lite/load-option.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-3.0-or-later 2 | #pragma once 3 | 4 | #pragma pack(push, 1) 5 | typedef struct efi_load_option_s 6 | { 7 | uint32_t attributes; 8 | uint16_t file_path_list_length; 9 | uint16_t description[ANYSIZE_ARRAY]; 10 | // uint8_t file_path_list[ANYSIZE_ARRAY]; 11 | // uint8_t optional_data[ANYSIZE_ARRAY]; 12 | } efi_load_option; 13 | #pragma pack(pop) 14 | 15 | efidp efi_loadopt_path(efi_load_option *load_option, ssize_t size_limit) ATTR_NONNULL(1); 16 | uint16_t efi_loadopt_pathlen(efi_load_option *load_option, ssize_t size_limit) ATTR_NONNULL(1) ATTR_VISIBILITY("default"); 17 | int efi_loadopt_optional_data(efi_load_option *load_option, size_t load_option_size, uint8_t **optional_data, size_t *optional_data_size) ATTR_NONNULL(1, 3) ATTR_VISIBILITY("default"); 18 | -------------------------------------------------------------------------------- /include/filepathdelegate.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-3.0-or-later 2 | #pragma once 3 | 4 | #include "bootentry.h" 5 | #include "qwidgetitemdelegate.h" 6 | #include 7 | 8 | class FilePathDelegate: public QWidgetItemDelegate 9 | { 10 | public: 11 | FilePathDelegate() = default; 12 | FilePathDelegate(const FilePathDelegate &) = delete; 13 | FilePathDelegate &operator=(const FilePathDelegate &) = delete; 14 | 15 | protected: 16 | void setupWidgetFromItem(Widget &widget, const Item &item, const QModelIndex &index, int role) const override; 17 | }; 18 | -------------------------------------------------------------------------------- /include/hotkey.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-3.0-or-later 2 | #pragma once 3 | 4 | #include 5 | 6 | #include "efiboot.h" 7 | #include "efikeysequence.h" 8 | 9 | class HotKey 10 | { 11 | public: 12 | int index = -1; 13 | uint16_t boot_option = 0; 14 | EFIKeySequence keys = {}; 15 | QByteArray vendor_data = {}; 16 | uint32_t efi_attributes = EFIBoot::EFI_VARIABLE_ATTRIBUTE_DEFAULTS; 17 | QString error = {}; 18 | 19 | bool is_error = false; 20 | 21 | public: 22 | static HotKey fromEFIBootKeyOption(const EFIBoot::Key_option &key_option); 23 | static HotKey fromError(const QString &error); 24 | EFIBoot::Key_option toEFIBootKeyOption(const std::unordered_map &crc32) const; 25 | 26 | static std::optional fromJSON(const QJsonObject &obj, qsizetype maxKeys); 27 | QJsonObject toJSON() const; 28 | }; 29 | -------------------------------------------------------------------------------- /include/hotkeydelegate.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-3.0-or-later 2 | #pragma once 3 | 4 | #include 5 | 6 | #include "bootentrylistmodel.h" 7 | #include "efikeysequenceedit.h" 8 | #include "qwidgetitemdelegate.h" 9 | 10 | class HotKeyBootOptionDelegate: public QWidgetItemDelegate 11 | { 12 | public: 13 | HotKeyBootOptionDelegate() = default; 14 | HotKeyBootOptionDelegate(const HotKeyBootOptionDelegate &) = delete; 15 | HotKeyBootOptionDelegate &operator=(const HotKeyBootOptionDelegate &) = delete; 16 | 17 | void refreshBootOptions(const BootEntryListModel &model); 18 | 19 | protected: 20 | void setupWidgetFromItem(Widget &widget, const Item &item, const QModelIndex &index, int role) const override; 21 | bool setupItemFromWidget(const Widget &widget, Item &item, const QModelIndex &index) const override; 22 | 23 | bool eventFilter(QObject *editor, QEvent *event) override; 24 | }; 25 | 26 | class HotKeyKeysDelegate: public QWidgetItemDelegate 27 | { 28 | private: 29 | qsizetype maximumSequenceLength{3}; 30 | 31 | public: 32 | HotKeyKeysDelegate() = default; 33 | HotKeyKeysDelegate(const HotKeyKeysDelegate &) = delete; 34 | HotKeyKeysDelegate &operator=(const HotKeyKeysDelegate &) = delete; 35 | 36 | void setMaximumSequenceLength(qsizetype count); 37 | 38 | protected: 39 | void setupWidgetFromItem(Widget &widget, const Item &item, const QModelIndex &index, int role) const override; 40 | bool setupItemFromWidget(const Widget &widget, Item &item, const QModelIndex &index) const override; 41 | }; 42 | -------------------------------------------------------------------------------- /include/hotkeylistmodel.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-3.0-or-later 2 | #pragma once 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | #include "hotkey.h" 10 | 11 | class HotKeyListModel: public QAbstractItemModel 12 | { 13 | Q_OBJECT 14 | 15 | friend class EFIBootData; 16 | friend class InsertRemoveHotKeyCommand; 17 | friend class InsertHotKeyCommand; 18 | friend class RemoveHotKeyCommand; 19 | 20 | template 21 | friend class SetHotKeyValueCommand; 22 | friend class SetHotKeyKeysCommand; 23 | 24 | public: 25 | enum class Column : uint8_t 26 | { 27 | BootOption = 0, 28 | Keys = 1, 29 | VendorData = 2, 30 | Count = 3, 31 | }; 32 | 33 | private: 34 | QVector header{tr("Boot option"), tr("Hot key"), tr("Vendor data")}; 35 | QVector entries{}; 36 | QUndoStack *undo_stack{nullptr}; 37 | 38 | public: 39 | explicit HotKeyListModel(QObject *parent = nullptr); 40 | HotKeyListModel(const HotKeyListModel &) = delete; 41 | HotKeyListModel &operator=(const HotKeyListModel &) = delete; 42 | 43 | void setUndoStack(QUndoStack *undo_stack_); 44 | QUndoStack *getUndoStack() const; 45 | 46 | // Basic functionality: 47 | int rowCount(const QModelIndex &parent = QModelIndex()) const override; 48 | int columnCount(const QModelIndex & /*parent*/ = QModelIndex()) const override { return static_cast(Column::Count); } 49 | QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const override 50 | { 51 | if(parent.isValid()) 52 | return {}; 53 | 54 | if(0 > row || row >= rowCount()) 55 | return {}; 56 | 57 | if(0 > column || column >= columnCount()) 58 | return {}; 59 | 60 | return createIndex(row, column); 61 | } 62 | 63 | QModelIndex parent(const QModelIndex & /*child*/) const override { return {}; } 64 | 65 | QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override; 66 | QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; 67 | bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override; 68 | 69 | Qt::ItemFlags flags(const QModelIndex &index) const override; 70 | 71 | // Add data: 72 | bool insertRows(int row, int count, const QModelIndex &parent = QModelIndex()) override; 73 | 74 | // Remove data: 75 | bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()) override; 76 | 77 | void clear(); 78 | 79 | const QVector &getEntries() const { return entries; } 80 | 81 | private: 82 | bool appendRow(const HotKey &data, const QModelIndex &parent = QModelIndex()); 83 | }; 84 | -------------------------------------------------------------------------------- /include/hotkeysdialog.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-3.0-or-later 2 | #pragma once 3 | 4 | #include "bootentrylistmodel.h" 5 | #include "hotkeylistmodel.h" 6 | #include 7 | 8 | namespace Ui 9 | { 10 | class HotKeysDialog; 11 | } 12 | 13 | class HotKeysDialog: public QDialog 14 | { 15 | Q_OBJECT 16 | 17 | public: 18 | explicit HotKeysDialog(HotKeyListModel &model, QWidget *parent = nullptr); 19 | HotKeysDialog(const HotKeysDialog &) = delete; 20 | HotKeysDialog &operator=(const HotKeysDialog &) = delete; 21 | ~HotKeysDialog() override; 22 | 23 | void refreshBootOptions(const BootEntryListModel &model); 24 | void setIndexFilter(int index = -1); 25 | void setMaxKeyCount(int keys = 3); 26 | 27 | private: 28 | std::unique_ptr ui; 29 | }; 30 | -------------------------------------------------------------------------------- /include/hotkeysview.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-3.0-or-later 2 | #pragma once 3 | 4 | #include "bootentrylistmodel.h" 5 | #include "hotkeydelegate.h" 6 | #include 7 | 8 | class HotKeysView: public QTreeView 9 | { 10 | Q_OBJECT 11 | 12 | private: 13 | HotKeyBootOptionDelegate bootOptionDelegate{}; 14 | HotKeyKeysDelegate keysDelegate{}; 15 | 16 | public: 17 | explicit HotKeysView(QWidget *parent = nullptr); 18 | HotKeysView(const HotKeysView &) = delete; 19 | HotKeysView &operator=(const HotKeysView &) = delete; 20 | 21 | void refreshBootOptions(const BootEntryListModel &model); 22 | void setMaxKeyCount(qsizetype keys); 23 | 24 | public Q_SLOTS: 25 | void insertRow(); 26 | void removeCurrentRow() const; 27 | void setFilter(const QString &filter); 28 | }; 29 | -------------------------------------------------------------------------------- /include/qindicatorwidget.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-3.0-or-later 2 | #pragma once 3 | 4 | #include 5 | 6 | class QIndicatorWidget: public QRadioButton 7 | { 8 | Q_OBJECT 9 | public: 10 | explicit QIndicatorWidget(QWidget *parent = nullptr) 11 | : QRadioButton{parent} 12 | { 13 | // setAttribute(Qt::WA_TransparentForMouseEvents); 14 | setStyleSheet( 15 | "::indicator:unchecked {background-color: red; border-radius: 7px;}\n" 16 | "::indicator:checked {background-color: green; border-radius: 7px;}"); 17 | setLayoutDirection(Qt::RightToLeft); 18 | setFocusPolicy(Qt::NoFocus); 19 | setEnabled(false); 20 | } 21 | 22 | QIndicatorWidget(const QIndicatorWidget &) = delete; 23 | QIndicatorWidget &operator=(const QIndicatorWidget &) = delete; 24 | }; 25 | -------------------------------------------------------------------------------- /include/qlabelwrapped.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-3.0-or-later 2 | #pragma once 3 | 4 | #include 5 | 6 | class QLabelWrapped: public QLabel 7 | { 8 | Q_OBJECT 9 | public: 10 | explicit QLabelWrapped(QWidget *parent = nullptr) 11 | : QLabel{parent} 12 | { 13 | setWordWrap(true); 14 | } 15 | 16 | QLabelWrapped(const QLabelWrapped &) = delete; 17 | QLabelWrapped &operator=(const QLabelWrapped &) = delete; 18 | 19 | QSize sizeHint() const override 20 | { 21 | auto w = width(); 22 | auto h = heightForWidth(w); 23 | return {w, h}; 24 | } 25 | }; 26 | -------------------------------------------------------------------------------- /include/qresizabletabwidget.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-3.0-or-later 2 | #pragma once 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | class QResizableTabWidget: public QTabWidget 10 | { 11 | Q_OBJECT 12 | public: 13 | explicit QResizableTabWidget(QWidget *parent = nullptr) 14 | : QTabWidget{parent} 15 | { 16 | } 17 | 18 | QResizableTabWidget(const QResizableTabWidget &) = delete; 19 | QResizableTabWidget &operator=(const QResizableTabWidget &) = delete; 20 | 21 | // Extracted from: qtbase:src/widgets/widgets/qtabwidget.cpp 22 | // and replaced expanding to all tabs widgets just to current one 23 | QSize sizeHint() const override 24 | { 25 | QSize lc(0, 0), rc(0, 0); 26 | if(cornerWidget(Qt::TopLeftCorner)) 27 | lc = cornerWidget(Qt::TopLeftCorner)->minimumSizeHint(); 28 | if(cornerWidget(Qt::TopRightCorner)) 29 | rc = cornerWidget(Qt::TopRightCorner)->minimumSizeHint(); 30 | 31 | QSize s(currentWidget()->sizeHint()); 32 | QSize t(tabBar()->sizeHint()); 33 | QSize sz = basicSize(tabPosition() == North || tabPosition() == South, lc, rc, s, t); 34 | 35 | QStyleOptionTabWidgetFrame opt; 36 | initStyleOption(&opt); 37 | opt.palette = palette(); 38 | opt.state = QStyle::State_None; 39 | return style()->sizeFromContents(QStyle::CT_TabWidget, &opt, sz, this); 40 | } 41 | 42 | QSize minimumSizeHint() const override 43 | { 44 | QSize lc(0, 0), rc(0, 0); 45 | if(cornerWidget(Qt::TopLeftCorner)) 46 | lc = cornerWidget(Qt::TopLeftCorner)->minimumSizeHint(); 47 | if(cornerWidget(Qt::TopRightCorner)) 48 | rc = cornerWidget(Qt::TopRightCorner)->minimumSizeHint(); 49 | 50 | QSize s(currentWidget()->minimumSizeHint()); 51 | QSize t(tabBar()->minimumSizeHint()); 52 | QSize sz = basicSize(tabPosition() == North || tabPosition() == South, lc, rc, s, t); 53 | 54 | QStyleOptionTabWidgetFrame opt; 55 | initStyleOption(&opt); 56 | opt.palette = palette(); 57 | opt.state = QStyle::State_None; 58 | return style()->sizeFromContents(QStyle::CT_TabWidget, &opt, sz, this); 59 | } 60 | 61 | private: 62 | static inline QSize basicSize( 63 | bool horizontal, const QSize &lc, const QSize &rc, const QSize &s, const QSize &t) 64 | { 65 | return horizontal 66 | ? QSize(qMax(s.width(), t.width() + rc.width() + lc.width()), 67 | s.height() + (qMax(rc.height(), qMax(lc.height(), t.height())))) 68 | : QSize(s.width() + (qMax(rc.width(), qMax(lc.width(), t.width()))), 69 | qMax(s.height(), t.height() + rc.height() + lc.height())); 70 | } 71 | }; 72 | -------------------------------------------------------------------------------- /misc/.gitignore: -------------------------------------------------------------------------------- 1 | *.egg-info 2 | Pipfile* 3 | -------------------------------------------------------------------------------- /misc/EFIBootEditor.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=Application 3 | Version=1.0 4 | Name=EFI Boot Editor 5 | Comment=Boot Editor for (U)EFI based systems 6 | Exec=pkexec efibooteditor 7 | Icon=preferences-system 8 | StartupNotify=true 9 | Terminal=false 10 | Categories=Settings;System;Qt;X-XFCE-SettingsDialog;X-XFCE-SystemSettings; 11 | -------------------------------------------------------------------------------- /misc/EFIBootEditor.metainfo.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | EFIBootEditor 4 | EFI Boot Editor 5 | Boot Editor for (U)EFI based systems 6 | Maciej Szeptuch 7 | CC-BY-4.0 8 | LGPL-3.0 9 | 10 |

11 | Boot Editor for (U)EFI based systems. 12 |

13 |
14 | 15 | https://github.com/Neverous/efibooteditor 16 | https://github.com/Neverous/efibooteditor/issues 17 | EFIBootEditor.desktop 18 | 19 | 20 | 21 | https://github.com/Neverous/efibooteditor/raw/master/doc/efibooteditor.png 22 | EFI Boot Editor 23 | 24 | 25 |
26 | -------------------------------------------------------------------------------- /misc/WIX.template.in: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 27 | 28 | 29 | 30 | 31 | 32 | ProductIcon.ico 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /misc/codegen/gen_efidp.py: -------------------------------------------------------------------------------- 1 | # Generate sources from EFI device-paths.yml and Jinja2 templates 2 | 3 | import logging 4 | import sys 5 | 6 | import jinja2 7 | import yaml 8 | 9 | log = logging.getLogger("gen_efidp") 10 | 11 | 12 | if __name__ == "__main__": 13 | logging.basicConfig(level=logging.INFO) 14 | env = jinja2.Environment(trim_blocks=True, lstrip_blocks=True, autoescape=True) 15 | device_paths = yaml.safe_load(open(sys.argv[1]).read()) 16 | for category in device_paths.values(): 17 | for node in category["nodes"]: 18 | node["fields_by_slug"] = {field["slug"]: field for field in node["fields"]} 19 | 20 | for file in sys.argv[2:]: 21 | log.info("Processing %s file", file) 22 | template = env.from_string(open(file).read()) 23 | with open(file.removesuffix(".j2"), "w") as fd: 24 | fd.write(template.render({"device_paths": device_paths})) 25 | -------------------------------------------------------------------------------- /misc/codegen/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "codegen" 3 | version = "1.0.0" 4 | description = "Scripts for generating Device Path Nodes related code for EFI Boot Editor" 5 | 6 | requires-python = ">=3.13" 7 | dependencies = [ 8 | "beautifulsoup4>=4.13.4", 9 | "jinja2>=3.1.6", 10 | "pyyaml>=6.0.2", 11 | ] 12 | 13 | [project.optional-dependencies] 14 | dev = [ 15 | "ruff>=0.12.3", 16 | "ty>=0.0.1a14", 17 | "types-beautifulsoup4>=4.12.0.20250516", 18 | "types-pyyaml>=6.0.12.20250516", 19 | ] 20 | 21 | [tool.setuptools.packages.find] 22 | where = ["."] 23 | 24 | [tool.ruff] 25 | lint.select = [ 26 | "B", 27 | "C", 28 | "E", 29 | "F", 30 | "I", 31 | "W", 32 | ] 33 | 34 | line-length = 120 35 | 36 | [tool.black] 37 | line-length = 120 38 | 39 | [tool.mypy] 40 | strict = true 41 | check_untyped_defs = true 42 | disallow_any_generics = true 43 | strict_optional = true 44 | warn_no_return = true 45 | warn_redundant_casts = true 46 | warn_return_any = true 47 | warn_unreachable = true 48 | warn_unused_configs = true 49 | warn_unused_ignores = true 50 | 51 | plugins = [] 52 | -------------------------------------------------------------------------------- /misc/efibooteditor.spec: -------------------------------------------------------------------------------- 1 | Name: efibooteditor 2 | Version: 1.4.0 3 | Release: 1%{?dist} 4 | Summary: Boot Editor for (U)EFI based systems 5 | 6 | License: GPLv3-or-later 7 | URL: https://github.com/Neverous/efibooteditor 8 | Source0: https://github.com/Neverous/efibooteditor/archive/refs/tags/v%{version}.tar.gz 9 | 10 | BuildRequires: cmake 11 | BuildRequires: cmake(Qt5Core) 12 | BuildRequires: cmake(Qt5Tools) 13 | BuildRequires: pkgconfig(efivar) 14 | 15 | Requires: efivar 16 | 17 | %description 18 | %{summary}. 19 | 20 | %prep 21 | %autosetup -n %{name}-%{version} 22 | 23 | 24 | %build 25 | %cmake 26 | %cmake_build 27 | 28 | 29 | %install 30 | %cmake_install 31 | 32 | 33 | %files 34 | %doc doc/* 35 | %license LICENSE.txt 36 | %{_bindir}/%{name} 37 | %{_datadir}/applications/EFIBootEditor.desktop 38 | %{_datadir}/polkit-1/actions/org.x.%{name}.policy 39 | %{_metainfodir}/EFIBootEditor.metainfo.xml 40 | 41 | 42 | 43 | %changelog 44 | * Tue Mar 28 2023 - 1.2.0-beta.2-1 45 | - Updated version 46 | * Sun Jan 22 2023 Justin Zobel - 1.1.5-1 47 | - Initial Version 48 | -------------------------------------------------------------------------------- /misc/org.x.efibooteditor.policy: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | EFI Boot Editor 5 | https://github.com/Neverous/efibooteditor 6 | 7 | 8 | EFI Boot Editor 9 | preferences-system 10 | 11 | no 12 | no 13 | auth_admin_keep 14 | 15 | /usr/bin/efibooteditor 16 | true 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /misc/qt-updater/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "qt-updater" 3 | version = "1.0.0" 4 | description = "Script for updating EFI Boot Editor CI with latest Qt versions" 5 | 6 | requires-python = ">=3.13" 7 | dependencies = [ 8 | "requests>=2.32.4", 9 | "ruamel-yaml>=0.18.14", 10 | ] 11 | 12 | [project.optional-dependencies] 13 | dev = [ 14 | "ruff>=0.12.3", 15 | "ty>=0.0.1a14", 16 | "types-requests>=2.32.4.20250611", 17 | ] 18 | 19 | [tool.ruff] 20 | lint.select = [ 21 | "B", 22 | "C", 23 | "E", 24 | "F", 25 | "I", 26 | "W", 27 | ] 28 | 29 | line-length = 120 30 | 31 | [tool.black] 32 | line-length = 120 33 | 34 | [tool.mypy] 35 | strict = true 36 | check_untyped_defs = true 37 | disallow_any_generics = true 38 | strict_optional = true 39 | warn_no_return = true 40 | warn_redundant_casts = true 41 | warn_return_any = true 42 | warn_unreachable = true 43 | warn_unused_configs = true 44 | warn_unused_ignores = true 45 | 46 | plugins = [] 47 | -------------------------------------------------------------------------------- /misc/wix_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Neverous/efibooteditor/77b30122c42821d40d0b8d429e62408be25b83c1/misc/wix_banner.png -------------------------------------------------------------------------------- /misc/wix_dialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Neverous/efibooteditor/77b30122c42821d40d0b8d429e62408be25b83c1/misc/wix_dialog.png -------------------------------------------------------------------------------- /src/bootentrydelegate.cpp: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-3.0-or-later 2 | #include "compat.h" 3 | 4 | #include "bootentrydelegate.h" 5 | 6 | #include "bootentry.h" 7 | #include "bootentrylistmodel.h" 8 | 9 | BootEntryDelegate::BootEntryDelegate() 10 | : QWidgetItemDelegate{} 11 | { 12 | QObject::connect(&event_handler, &BootEntryWidget::nextBootClicked, this, &BootEntryDelegate::setNextBoot); 13 | } 14 | 15 | void BootEntryDelegate::setOptions(const BootEntryListModel::Options &options_) 16 | { 17 | options = options_; 18 | } 19 | 20 | void BootEntryDelegate::setupWidgetFromItem(Widget &widget, const Item &item, const QModelIndex &index, int role) const 21 | { 22 | widget.setReadOnly(options & BootEntryListModel::Option::ReadOnly); 23 | widget.setIndex(item->index); 24 | widget.setDescription(item->description); 25 | widget.setData(!item->is_error ? item->optional_data : item->error); 26 | widget.showDevicePath(!item->is_error); 27 | widget.setDevicePath(item->formatDevicePath(false)); 28 | widget.showBootOptions(options & BootEntryListModel::Option::IsBoot); 29 | widget.setCurrentBoot(item->is_current_boot); 30 | widget.setNextBoot(item->is_next_boot); 31 | 32 | if(role == Qt::EditRole) 33 | currentIndex = &index; 34 | } 35 | 36 | void BootEntryDelegate::setNextBoot(bool checked) const 37 | { 38 | if(!currentIndex || !currentIndex->isValid()) 39 | return; 40 | 41 | if(auto item = currentIndex->data().value(); checked != item->is_next_boot) 42 | { 43 | auto model = const_cast(static_cast(currentIndex->model())); 44 | model->setNextBootEntry(*currentIndex, checked); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /src/bootentrywidget.cpp: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-3.0-or-later 2 | #include "compat.h" 3 | 4 | #include "bootentrywidget.h" 5 | #include "form/ui_bootentrywidget.h" 6 | #include 7 | 8 | BootEntryWidget::BootEntryWidget(QWidget *parent) 9 | : QWidget(parent) 10 | , ui(std::make_unique()) 11 | { 12 | ui->setupUi(this); 13 | ui->current_boot->setMaximumSize(6, 6); 14 | 15 | QObject::connect(ui->next_boot, &QRadioButton::clicked, this, &BootEntryWidget::nextBootClicked); 16 | } 17 | 18 | BootEntryWidget::~BootEntryWidget() 19 | { 20 | } 21 | 22 | void BootEntryWidget::setReadOnly(bool readonly) 23 | { 24 | ui->next_boot->setDisabled(readonly); 25 | } 26 | 27 | void BootEntryWidget::showBootOptions(bool is_boot) 28 | { 29 | ui->current_boot->setVisible(is_boot); 30 | ui->next_boot->setVisible(is_boot); 31 | } 32 | 33 | void BootEntryWidget::showDevicePath(bool not_error) 34 | { 35 | ui->device_path->setVisible(not_error); 36 | } 37 | 38 | void BootEntryWidget::setIndex(const uint32_t index) 39 | { 40 | ui->index->setText(toHex(index, 4)); 41 | } 42 | 43 | void BootEntryWidget::setDescription(const QString &description) 44 | { 45 | ui->description->setText(description); 46 | ui->description->setStatusTip(description); 47 | setStatusTip(description); 48 | setToolTip(description); 49 | } 50 | 51 | void BootEntryWidget::setDevicePath(const QString &device_path) 52 | { 53 | ui->device_path->setText(device_path); 54 | ui->device_path->setStatusTip(device_path); 55 | } 56 | 57 | void BootEntryWidget::setData(const QString &_data) 58 | { 59 | ui->data->setText(_data); 60 | ui->data->setStatusTip(_data); 61 | ui->data->setHidden(_data.isEmpty()); 62 | } 63 | 64 | auto BootEntryWidget::getNextBoot() const -> bool 65 | { 66 | return ui->next_boot->isChecked(); 67 | } 68 | 69 | void BootEntryWidget::setNextBoot(bool next_boot) 70 | { 71 | ui->next_boot->setChecked(next_boot); 72 | } 73 | 74 | auto BootEntryWidget::getCurrentBoot() const -> bool 75 | { 76 | return ui->current_boot->isChecked(); 77 | } 78 | 79 | void BootEntryWidget::setCurrentBoot(bool current_boot) 80 | { 81 | ui->current_boot->setChecked(current_boot); 82 | ui->current_boot->setHidden(!current_boot); 83 | } 84 | -------------------------------------------------------------------------------- /src/driveinfo.cpp: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-3.0-or-later 2 | #include "compat.h" 3 | 4 | #include "driveinfo.h" 5 | 6 | QVector DriveInfo::all; 7 | -------------------------------------------------------------------------------- /src/driveinfo.linux.cpp: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-3.0-or-later 2 | #include "compat.h" 3 | 4 | #include "driveinfo.h" 5 | 6 | #include 7 | 8 | auto DriveInfo::getAll(bool refresh) -> QVector 9 | { 10 | if(!refresh && !all.empty()) 11 | return all; 12 | 13 | all.clear(); 14 | 15 | QDir partuuid("/dev/disk/by-partuuid"); 16 | if(!partuuid.exists()) 17 | return all; 18 | 19 | partuuid.setFilter(QDir::Files); 20 | const auto partitions = partuuid.entryInfoList(); 21 | for(const auto &part: partitions) 22 | { 23 | if(!part.isSymLink()) 24 | continue; 25 | 26 | const auto target = QFileInfo{part.symLinkTarget()}; 27 | 28 | DriveInfo driveinfo{}; 29 | driveinfo.name = target.fileName(); 30 | if(part.fileName().size() > 11) 31 | { 32 | driveinfo.signature_type = DriveInfo::SIGNATURE::GUID; 33 | driveinfo.signature = QUuid::fromString(part.fileName()); 34 | } 35 | 36 | else 37 | { 38 | driveinfo.signature_type = DriveInfo::SIGNATURE::MBR; 39 | auto parts = part.fileName().split("-"); 40 | uint l = parts[0].toUInt(nullptr, HEX_BASE); 41 | ushort w1 = parts[1].toUShort(nullptr, HEX_BASE); 42 | driveinfo.signature = QUuid{l, w1, 0, 0, 0, 0, 0, 0, 0, 0, 0}; 43 | } 44 | 45 | const auto &sys_path = QString("/sys/class/block/%1").arg(driveinfo.name); 46 | if(QFile file{sys_path + "/partition"}; file.open(QIODevice::ReadOnly)) 47 | { 48 | driveinfo.partition = file.readAll().toUInt(); 49 | } 50 | 51 | if(QFile file{sys_path + "/start"}; file.open(QIODevice::ReadOnly)) 52 | { 53 | driveinfo.start = file.readAll().toULongLong(); 54 | } 55 | 56 | if(QFile file{sys_path + "/size"}; file.open(QIODevice::ReadOnly)) 57 | { 58 | driveinfo.size = file.readAll().toULongLong(); 59 | } 60 | 61 | all.append(driveinfo); 62 | } 63 | 64 | std::sort(std::begin(all), std::end(all)); 65 | return all; 66 | } 67 | -------------------------------------------------------------------------------- /src/efivar-lite.common.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-3.0-or-later 2 | #pragma once 3 | 4 | #include "compat.h" 5 | 6 | #include 7 | #include 8 | 9 | #include "efivar-lite/efivar-lite.h" 10 | 11 | extern const size_t EFI_MAX_VARIABLES; 12 | #if defined(__clang__) 13 | #pragma clang diagnostic push 14 | #pragma clang diagnostic ignored "-Wreserved-identifier" 15 | #endif 16 | int _efi_get_next_variable_name(efi_guid_t **guid, TCHAR **name); 17 | #if defined(__clang__) 18 | #pragma clang diagnostic pop 19 | #endif 20 | -------------------------------------------------------------------------------- /src/efivar-lite.linux.c: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-3.0-or-later 2 | #include "compat.h" 3 | 4 | #include "efivar-lite/efivar-lite.h" 5 | 6 | #if BYTE_ORDER == LITTLE_ENDIAN 7 | const efi_guid_t efi_guid_apple = {0x7c436110, 0xab2a, 0x4bbb, 0x80a8, {0xfe, 0x41, 0x99, 0x5c, 0x9f, 0x82}}; 8 | #else 9 | const efi_guid_t efi_guid_apple = {0x7c436110, 0xab2a, 0x4bbb, 0xa880, {0xfe, 0x41, 0x99, 0x5c, 0x9f, 0x82}}; 10 | #endif 11 | 12 | void efi_set_get_next_variable_name_progress_cb(void (*progress_cb)(size_t, size_t)) 13 | { 14 | (void)progress_cb; 15 | // Nothing to do here, efivar doesn't expose progress tracking (and it's not really needed, variables listing is pretty fast) 16 | } 17 | -------------------------------------------------------------------------------- /src/filepathdelegate.cpp: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-3.0-or-later 2 | #include "compat.h" 3 | 4 | #include "filepathdelegate.h" 5 | 6 | void FilePathDelegate::setupWidgetFromItem(Widget &widget, const Item &item, const QModelIndex & /*index*/, int role) const 7 | { 8 | if(role != Qt::DisplayRole && role != Qt::SizeHintRole) 9 | return; 10 | 11 | widget.setText(std::visit([](const auto &obj) 12 | { return obj.toString(); }, 13 | *item)); 14 | } 15 | -------------------------------------------------------------------------------- /src/hotkey.cpp: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-3.0-or-later 2 | #include "compat.h" 3 | 4 | #include "hotkey.h" 5 | 6 | #include 7 | #include 8 | 9 | #include "efiboot.h" 10 | 11 | #define check_type(field, typecheck) \ 12 | if(!obj.contains(#field) || !obj[#field].is##typecheck()) \ 13 | return std::nullopt 14 | #define try_read_3(field, typecheck, typecast) \ 15 | check_type(field, typecheck); \ 16 | value.field = static_cast(obj[#field].to##typecast()) 17 | 18 | auto HotKey::fromEFIBootKeyOption( 19 | const EFIBoot::Key_option &key_option) -> HotKey 20 | { 21 | HotKey value{}; 22 | value.boot_option = key_option.boot_option; 23 | value.keys = {key_option.key_data, key_option.keys}; 24 | value.vendor_data = QByteArray::fromRawData(reinterpret_cast(key_option.vendor_data.data()), static_cast(key_option.vendor_data.size())); 25 | value.vendor_data.detach(); 26 | return value; 27 | } 28 | 29 | auto HotKey::fromError(const QString &error) -> HotKey 30 | { 31 | HotKey value{}; 32 | value.is_error = true; 33 | value.error = error; 34 | return value; 35 | } 36 | 37 | auto HotKey::toEFIBootKeyOption(const std::unordered_map &crc32) const -> EFIBoot::Key_option 38 | { 39 | if(is_error) 40 | return {}; 41 | 42 | EFIBoot::Key_option key_option{}; 43 | key_option.boot_option = boot_option; 44 | if(const auto crc = crc32.find(boot_option); crc != crc32.end()) 45 | key_option.boot_option_crc = crc->second; 46 | 47 | if(!keys.toEFIKeyOption(key_option.key_data, key_option.keys)) 48 | return {}; 49 | 50 | auto begin = reinterpret_cast(vendor_data.constData()); 51 | std::copy(begin, std::next(begin, vendor_data.size()), std::back_inserter(key_option.vendor_data)); 52 | return key_option; 53 | } 54 | 55 | auto HotKey::fromJSON(const QJsonObject &obj, qsizetype maxKeys) -> std::optional 56 | { 57 | HotKey value{}; 58 | try_read_3(boot_option, Double, Int); 59 | check_type(keys, String); 60 | const auto keys = obj["keys"].toString(); 61 | value.keys = EFIKeySequence::fromString(keys, maxKeys); 62 | if(value.keys.isEmpty()) 63 | return {}; 64 | 65 | check_type(vendor_data, String); 66 | value.vendor_data = QByteArray::fromBase64(obj["vendor_data"].toString().toUtf8()); 67 | return {value}; 68 | } 69 | 70 | auto HotKey::toJSON() const -> QJsonObject 71 | { 72 | if(is_error) 73 | return {}; 74 | 75 | QJsonObject key_option; 76 | key_option["boot_option"] = boot_option; 77 | key_option["keys"] = keys.toString(); 78 | key_option["vendor_data"] = QString{vendor_data.toBase64()}; 79 | return key_option; 80 | } 81 | 82 | #undef try_read_3 83 | #undef check_type 84 | -------------------------------------------------------------------------------- /src/hotkeysdialog.cpp: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-3.0-or-later 2 | #include "compat.h" 3 | 4 | #include "form/ui_hotkeysdialog.h" 5 | #include "hotkeysdialog.h" 6 | 7 | HotKeysDialog::HotKeysDialog(HotKeyListModel &model, QWidget *parent) 8 | : QDialog{parent} 9 | , ui{std::make_unique()} 10 | { 11 | ui->setupUi(this); 12 | ui->hot_keys->setModel(&model); 13 | } 14 | 15 | HotKeysDialog::~HotKeysDialog() 16 | { 17 | } 18 | 19 | void HotKeysDialog::refreshBootOptions(const BootEntryListModel &model) 20 | { 21 | ui->hot_keys->refreshBootOptions(model); 22 | } 23 | 24 | void HotKeysDialog::setIndexFilter(int index) 25 | { 26 | ui->index_filter->setText(index != -1 ? toHex(static_cast(index), 4) : ""); 27 | } 28 | 29 | void HotKeysDialog::setMaxKeyCount(int keys) 30 | { 31 | ui->hot_keys->setMaxKeyCount(keys); 32 | } 33 | -------------------------------------------------------------------------------- /src/hotkeysview.cpp: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-3.0-or-later 2 | #include "compat.h" 3 | 4 | #include "hotkeysview.h" 5 | 6 | HotKeysView::HotKeysView(QWidget *parent) 7 | : QTreeView(parent) 8 | { 9 | setItemDelegateForColumn(0, &bootOptionDelegate); 10 | setItemDelegateForColumn(1, &keysDelegate); 11 | 12 | connect(this, SIGNAL(clicked(QModelIndex)), SLOT(edit(QModelIndex))); 13 | } 14 | 15 | void HotKeysView::refreshBootOptions(const BootEntryListModel &model) 16 | { 17 | bootOptionDelegate.refreshBootOptions(model); 18 | } 19 | 20 | void HotKeysView::setMaxKeyCount(qsizetype keys) 21 | { 22 | keysDelegate.setMaximumSequenceLength(keys); 23 | } 24 | 25 | void HotKeysView::insertRow() 26 | { 27 | auto index = currentIndex(); 28 | auto row = index.row(); 29 | if(model()->insertRow(row + 1)) 30 | setCurrentIndex(model()->index(row + 1, 0)); 31 | } 32 | 33 | void HotKeysView::removeCurrentRow() const 34 | { 35 | auto index = currentIndex(); 36 | if(!index.isValid() || !model()->checkIndex(index)) 37 | return; 38 | 39 | auto row = index.row(); 40 | model()->removeRow(row); 41 | } 42 | 43 | void HotKeysView::setFilter(const QString &filter) 44 | { 45 | for(int row = 0; row < model()->rowCount(); ++row) 46 | setRowHidden(row, {}, !toHex(model()->data(model()->index(row, 0)).value(), 4).startsWith(filter)); 47 | } 48 | -------------------------------------------------------------------------------- /src/main.cpp: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-3.0-or-later 2 | #include "compat.h" 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | 10 | #include "efibooteditor.h" 11 | #include "efibooteditorcli.h" 12 | 13 | auto main(int argc, char *argv[]) -> int 14 | { 15 | // Check EFI support 16 | auto efi_error_message = EFIBoot::init(); 17 | 18 | // Set CLI application first 19 | auto app = std::make_unique(argc, argv); 20 | QCoreApplication::setApplicationName(APPLICATION_NAME); 21 | QCoreApplication::setApplicationVersion(VERSION); 22 | QCoreApplication::setOrganizationName(APPLICATION_NAME); 23 | 24 | // Load translation 25 | #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) 26 | const auto translations_path = QLibraryInfo::path(QLibraryInfo::TranslationsPath); 27 | #else 28 | const auto translations_path = QLibraryInfo::location(QLibraryInfo::TranslationsPath); 29 | #endif 30 | 31 | std::list translators; 32 | for(const char *module: {"qt", "qtbase", PROJECT_NAME}) 33 | { 34 | auto &translator = translators.emplace_back(); 35 | if(!translator.load(QLocale::system(), module, "_", "translations/") 36 | && !translator.load(QLocale::system(), module, "_", ":/translations/") 37 | && !translator.load(QLocale::system(), module, "_", translations_path)) 38 | { 39 | translators.pop_back(); 40 | continue; 41 | } 42 | 43 | QCoreApplication::installTranslator(&translator); 44 | } 45 | 46 | // Run CLI if arguments were provided 47 | { 48 | EFIBootEditorCLI cli{efi_error_message}; 49 | if(cli.process(*app)) 50 | { 51 | QCoreApplication::processEvents(); 52 | return 0; 53 | } 54 | } 55 | 56 | // Switch to GUI 57 | app.reset(); // need to destroy QCoreApplication first 58 | app = std::make_unique(argc, argv); 59 | // Need to reset the application configuration 60 | QCoreApplication::setApplicationName(APPLICATION_NAME); 61 | QCoreApplication::setApplicationVersion(VERSION); 62 | QCoreApplication::setOrganizationName(APPLICATION_NAME); 63 | for(auto &translator: translators) 64 | QCoreApplication::installTranslator(&translator); 65 | 66 | // Setup GUI style 67 | QApplication::setStyle(QStyleFactory::create("Fusion")); 68 | QIcon::setFallbackThemeName("Tango"); 69 | if(QIcon::themeName().isEmpty()) 70 | QIcon::setThemeName("Tango"); 71 | 72 | // Show window and then force reload boot entries 73 | EFIBootEditor gui{efi_error_message}; 74 | gui.show(); 75 | if(!efi_error_message) 76 | { 77 | QApplication::processEvents(); 78 | gui.reloadBootConfiguration(); 79 | } 80 | 81 | return QCoreApplication::exec(); 82 | } 83 | -------------------------------------------------------------------------------- /tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.16) 2 | 3 | find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Test REQUIRED) 4 | 5 | add_executable(testefibootdata testefibootdata.cpp) 6 | 7 | target_link_libraries(testefibootdata 8 | PRIVATE 9 | Qt${QT_VERSION_MAJOR}::Test 10 | ${PROJECT_NAME}-core 11 | ) 12 | 13 | add_test(NAME EFIBootData COMMAND testefibootdata) 14 | -------------------------------------------------------------------------------- /tests/testefibootdata.cpp: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-3.0-or-later 2 | #include "compat.h" 3 | 4 | #include 5 | #include 6 | 7 | #include "efibootdata.h" 8 | 9 | class TestEFIBootData: public QObject 10 | { 11 | Q_OBJECT 12 | 13 | public: 14 | TestEFIBootData(); 15 | 16 | void setRequireEFIEntries(bool value) { this->require_efi_entries = value; } 17 | 18 | private Q_SLOTS: 19 | void testReload() const; 20 | 21 | void showError(const QString &message, const QString &details) const; 22 | void showProgress(size_t step, size_t total, const QString &details) const; 23 | 24 | private: 25 | bool efi_supported = true; 26 | bool require_efi_entries = true; 27 | }; 28 | 29 | TestEFIBootData::TestEFIBootData() 30 | : QObject() 31 | { 32 | auto efi_error_message = EFIBoot::init(); 33 | if(efi_error_message) 34 | { 35 | this->efi_supported = false; 36 | showError(tr("EFI support required"), QStringFromStdTString(*efi_error_message)); 37 | } 38 | } 39 | 40 | void TestEFIBootData::showError(const QString &message, const QString &details) const 41 | { 42 | qWarning() << tr("ERROR: %0! %1").arg(message, details) << Qt::endl; 43 | } 44 | 45 | void TestEFIBootData::showProgress(size_t step, size_t total, const QString &details) const 46 | { 47 | if(step >= total) 48 | total = step + 1; 49 | 50 | qDebug() << QString("[%0%] (%1/%2) %3").arg(100 * step / total).arg(step).arg(total).arg(details); 51 | } 52 | 53 | void TestEFIBootData::testReload() const 54 | { 55 | if(!efi_supported) 56 | { 57 | QSKIP("EFI not supported."); 58 | } 59 | 60 | EFIBootData data; 61 | QSignalSpy spy(&data, &EFIBootData::error); 62 | (void)connect(&data, &EFIBootData::progress, this, &TestEFIBootData::showProgress); 63 | (void)connect(&data, &EFIBootData::error, this, &TestEFIBootData::showError); 64 | 65 | data.reload(require_efi_entries); 66 | 67 | QCOMPARE(spy.count(), 0); 68 | } 69 | 70 | auto main(int argc, char *argv[]) -> int 71 | { 72 | QCoreApplication app(argc, argv); 73 | TestEFIBootData test; 74 | if(qgetenv("TEST_ALLOW_NO_EFI_ENTRIES") == "true") 75 | test.setRequireEFIEntries(false); 76 | 77 | return QTest::qExec(&test, argc, argv); 78 | } 79 | 80 | #include "testefibootdata.moc" 81 | -------------------------------------------------------------------------------- /windows.rc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | IDI_ICON1 ICON DISCARDABLE APPLICATION_ICON 4 | 5 | VS_VERSION_INFO VERSIONINFO 6 | FILEVERSION VERSION_MAJOR,VERSION_MINOR,VERSION_PATCH,VERSION_TWEAK 7 | PRODUCTVERSION VERSION_MAJOR,VERSION_MINOR,VERSION_PATCH,VERSION_TWEAK 8 | { 9 | BLOCK "StringFileInfo" 10 | { 11 | // U.S. English - Windows, Multilingual 12 | BLOCK "040904E4" 13 | { 14 | VALUE "ProductName", APPLICATION_NAME 15 | VALUE "CompanyName", APPLICATION_NAME 16 | VALUE "ProductVersion", VERSION 17 | VALUE "FileDescription", PROJECT_DESCRIPTION 18 | VALUE "FileVersion", VERSION 19 | VALUE "InternalName", PROJECT_NAME 20 | VALUE "LegalCopyright", APPLICATION_NAME 21 | VALUE "OriginalFilename", PROJECT_NAME 22 | } 23 | } 24 | BLOCK "VarFileInfo" 25 | { 26 | VALUE "Translation", 0x409, 1252 // 1252 = 0x04E4 27 | } 28 | } 29 | --------------------------------------------------------------------------------