FlatImage
A configurable Linux containerization system
Loading...
Searching...
No Matches
desktop.hpp File Reference

Manages the desktop integration. More...

#include <filesystem>
#include <print>
#include <sstream>
#include "../../std/expected.hpp"
#include "../../db/desktop.hpp"
#include "../../reserved/icon.hpp"
#include "../../reserved/desktop.hpp"
#include "../../lib/subprocess.hpp"
#include "../../lib/image.hpp"
#include "../../lib/env.hpp"
#include "../../std/filesystem.hpp"
#include "../../macro.hpp"
#include "../../config.hpp"
#include "icon.hpp"
Include dependency graph for desktop.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  ns_desktop
 Desktop integration command implementation.
 

Typedefs

using ns_desktop::IntegrationItem = ns_db::ns_desktop::IntegrationItem
 

Functions

Value< std::pair< fs::path, fs::path > > ns_desktop::anonymous_namespace{desktop.hpp}::get_path_file_icon_png (std::string_view name_app, uint32_t size)
 Constructs the path to the png icon file.
 
Value< std::pair< fs::path, fs::path > > ns_desktop::anonymous_namespace{desktop.hpp}::get_path_file_icon_svg (std::string_view name_app)
 Constructs the path to the svg icon file.
 
Value< fs::path > ns_desktop::anonymous_namespace{desktop.hpp}::get_path_file_desktop (ns_db::ns_desktop::Desktop const &desktop)
 Get the file path to the desktop entry.
 
Value< fs::path > ns_desktop::anonymous_namespace{desktop.hpp}::get_path_file_mimetype (ns_db::ns_desktop::Desktop const &desktop)
 Get the file path to the application specific mimetype file.
 
Value< fs::path > ns_desktop::anonymous_namespace{desktop.hpp}::get_path_file_mimetype_generic ()
 Get the file path to the generic mimetype file.
 
Value< void > ns_desktop::anonymous_namespace{desktop.hpp}::generate_desktop_entry (ns_db::ns_desktop::Desktop const &desktop, fs::path const &path_file_binary, std::ostream &os)
 Generates the desktop entry.
 
Value< void > ns_desktop::anonymous_namespace{desktop.hpp}::integrate_desktop_entry (ns_db::ns_desktop::Desktop const &desktop, fs::path const &path_file_binary)
 Integrates the desktop entry '.desktop'.
 
bool ns_desktop::anonymous_namespace{desktop.hpp}::is_update_mime_database (fs::path const &path_file_binary, fs::path const &path_entry_mimetype)
 Checks if the mime database should be updated based on <glob pattern=
 
Value< void > ns_desktop::anonymous_namespace{desktop.hpp}::update_mime_database ()
 Runs update-mime-database on the current XDG_DATA_HOME diretory.
 
Value< void > ns_desktop::anonymous_namespace{desktop.hpp}::integrate_mime_database_generic ()
 Generates the flatimage generic mime package.
 
Value< void > ns_desktop::anonymous_namespace{desktop.hpp}::generate_mime_database (ns_db::ns_desktop::Desktop const &desktop, fs::path const &path_file_binary, std::ostream &os)
 Generates the flatimage app specific mime package.
 
Value< void > ns_desktop::anonymous_namespace{desktop.hpp}::integrate_mime_database (ns_db::ns_desktop::Desktop const &desktop, fs::path const &path_file_binary)
 Generates the flatimage app specific mime package.
 
Value< void > ns_desktop::anonymous_namespace{desktop.hpp}::integrate_icons_svg (ns_db::ns_desktop::Desktop const &desktop, fs::path const &path_file_icon)
 Integrates an svg icon for the flatimage mimetype.
 
Value< void > ns_desktop::anonymous_namespace{desktop.hpp}::integrate_icons_png (ns_db::ns_desktop::Desktop const &desktop, fs::path const &path_file_icon)
 Integrates PNG icons for the flatimage mimetype.
 
Value< void > ns_desktop::anonymous_namespace{desktop.hpp}::integrate_icon_flatimage ()
 Integrates the svg icon for the 'flatimage' mimetype.
 
Value< void > ns_desktop::anonymous_namespace{desktop.hpp}::integrate_icons (ns_config::FlatImage const &fim, ns_db::ns_desktop::Desktop const &desktop)
 Integrate flatimage icons in the current $HOME directory.
 
Value< void > ns_desktop::integrate (ns_config::FlatImage const &fim)
 Integrates flatimage desktop data in current system.
 
Value< fs::path > ns_desktop::setup_resolve_icon (std::string_view icon_path_or_url)
 Resolves icon path or URL to a local file path.
 
Value< void > ns_desktop::setup (ns_config::FlatImage const &fim, fs::path const &path_file_json_src)
 Setup desktop integration in FlatImage.
 
Value< void > ns_desktop::enable (ns_config::FlatImage const &fim, std::set< IntegrationItem > set_integrations)
 Enables desktop integration for FlatImage.
 
Value< void > ns_desktop::clean (ns_config::FlatImage const &fim)
 Cleans desktop integration files.
 
Value< void > ns_desktop::dump_icon (ns_config::FlatImage const &fim, fs::path path_file_dst)
 Dumps the png or svg icon data to a file.
 
Value< std::string > ns_desktop::dump_entry (ns_config::FlatImage const &fim)
 Dumps the desktop entry if integration is configured.
 
Value< std::string > ns_desktop::dump_mimetype (ns_config::FlatImage const &fim)
 Dumps the application mime type file if integration is configured.
 

Variables

constexpr std::string_view const ns_desktop::anonymous_namespace{desktop.hpp}::template_dir_mimetype = "icons/hicolor/{}x{}/mimetypes"
 
constexpr std::string_view const ns_desktop::anonymous_namespace{desktop.hpp}::template_file_mime = "application-flatimage_{}.png"
 
constexpr std::string_view const ns_desktop::anonymous_namespace{desktop.hpp}::template_dir_apps = "icons/hicolor/{}x{}/apps"
 
constexpr std::string_view const ns_desktop::anonymous_namespace{desktop.hpp}::template_file_app = "flatimage_{}.png"
 
constexpr std::string_view const ns_desktop::anonymous_namespace{desktop.hpp}::template_dir_mime_scalable = "icons/hicolor/scalable/mimetypes"
 
constexpr std::string_view const ns_desktop::anonymous_namespace{desktop.hpp}::template_file_mime_scalable = "application-flatimage_{}.svg"
 
constexpr std::string_view const ns_desktop::anonymous_namespace{desktop.hpp}::template_dir_apps_scalable = "icons/hicolor/scalable/apps"
 
constexpr std::string_view const ns_desktop::anonymous_namespace{desktop.hpp}::template_file_app_scalable = "flatimage_{}.svg"
 
constexpr const std::array< uint32_t, 9 > ns_desktop::anonymous_namespace{desktop.hpp}::arr_sizes {16,22,24,32,48,64,96,128,256}
 

Detailed Description

Manages the desktop integration.

Author
Ruan Formigoni

Definition in file desktop.hpp.