diff --git a/Applications/Terminal/main.cpp b/Applications/Terminal/main.cpp index 6a785e346f..c2c868242b 100644 --- a/Applications/Terminal/main.cpp +++ b/Applications/Terminal/main.cpp @@ -419,6 +419,11 @@ int main(int argc, char** argv) return 1; } + if (unveil("/bin", "r") < 0) { + perror("unveil"); + return 1; + } + if (unveil("/bin/Terminal", "x") < 0) { perror("unveil"); return 1; diff --git a/Libraries/LibVT/TerminalWidget.cpp b/Libraries/LibVT/TerminalWidget.cpp index 47dbe11067..774fff8fea 100644 --- a/Libraries/LibVT/TerminalWidget.cpp +++ b/Libraries/LibVT/TerminalWidget.cpp @@ -39,6 +39,8 @@ #include #include #include +#include +#include #include #include #include @@ -858,10 +860,9 @@ void TerminalWidget::context_menu_event(GUI::ContextMenuEvent& event) auto af_path = String::format("/res/apps/%s.af", LexicalPath(handler).basename().characters()); auto af = Core::ConfigFile::open(af_path); auto handler_name = af->read_entry("App", "Name", handler); - auto handler_icon = af->read_entry("Icons", "16x16", {}); - - auto icon = Gfx::Bitmap::load_from_file(handler_icon); - auto action = GUI::Action::create(String::format("Open in %s", handler_name.characters()), move(icon), [this, handler](auto&) { + auto handler_executable = af->read_entry("App", "Executable"); + auto handler_icon = GUI::FileIconProvider::icon_for_path(handler_executable).bitmap_for_size(16); + auto action = GUI::Action::create(String::format("Open in %s", handler_name.characters()), handler_icon, [this, handler](auto&) { Desktop::Launcher::open(m_context_menu_href, handler); });