feat: system settings stored as applets in virtual folder
This commit is contained in:
@@ -7,35 +7,6 @@
|
||||
#include "desktop_internal.hpp"
|
||||
#include <montauk/user.h>
|
||||
|
||||
// ============================================================================
|
||||
// Lock Screen Input
|
||||
// ============================================================================
|
||||
|
||||
static void lock_screen(DesktopState* ds) {
|
||||
ds->screen_locked = true;
|
||||
ds->lock_password[0] = '\0';
|
||||
ds->lock_password_len = 0;
|
||||
ds->lock_error[0] = '\0';
|
||||
ds->lock_show_error = false;
|
||||
ds->app_menu_open = false;
|
||||
desktop_close_launcher(ds);
|
||||
ds->ctx_menu_open = false;
|
||||
ds->net_popup_open = false;
|
||||
ds->vol_popup_open = false;
|
||||
|
||||
// Cache display name for lock screen rendering
|
||||
montauk::strncpy(ds->lock_display_name, ds->current_user, sizeof(ds->lock_display_name));
|
||||
montauk::user::UserInfo users[16];
|
||||
int count = montauk::user::load_users(users, 16);
|
||||
for (int i = 0; i < count; i++) {
|
||||
if (montauk::streq(users[i].username, ds->current_user)) {
|
||||
if (users[i].display_name[0])
|
||||
montauk::strncpy(ds->lock_display_name, users[i].display_name, sizeof(ds->lock_display_name));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static bool try_unlock(DesktopState* ds) {
|
||||
ds->lock_show_error = false;
|
||||
|
||||
@@ -175,10 +146,10 @@ void gui::desktop_handle_mouse(DesktopState* ds) {
|
||||
switch (item_idx) {
|
||||
case 0: open_terminal(ds); break;
|
||||
case 1: open_filemanager(ds); break;
|
||||
case 2: open_settings(ds); break;
|
||||
case 3: open_sleep_dialog(ds); break;
|
||||
case 4: open_reboot_dialog(ds); break;
|
||||
case 5: open_shutdown_dialog(ds); break;
|
||||
case 2: desktop_launch_builtin(ds, DESKTOP_BUILTIN_SYSTEM_CONFIGURATION); break;
|
||||
case 3: desktop_launch_builtin(ds, DESKTOP_BUILTIN_SLEEP); break;
|
||||
case 4: desktop_launch_builtin(ds, DESKTOP_BUILTIN_REBOOT); break;
|
||||
case 5: desktop_launch_builtin(ds, DESKTOP_BUILTIN_SHUTDOWN); break;
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -351,16 +322,7 @@ void gui::desktop_handle_mouse(DesktopState* ds) {
|
||||
montauk::spawn(row.binary_path);
|
||||
}
|
||||
} else {
|
||||
// Dispatch desktop-owned launcher entry
|
||||
switch (row.app_id) {
|
||||
case 1: open_filemanager(ds); break;
|
||||
case 11: open_settings(ds); break;
|
||||
case 12: open_reboot_dialog(ds); break;
|
||||
case 14: open_shutdown_dialog(ds); break;
|
||||
case 16: montauk::exit(0); break; // Log Out
|
||||
case 17: lock_screen(ds); break; // Lock Screen
|
||||
case 18: open_sleep_dialog(ds); break; // Sleep
|
||||
}
|
||||
desktop_launch_builtin(ds, row.app_id);
|
||||
}
|
||||
ds->app_menu_open = false;
|
||||
}
|
||||
@@ -746,7 +708,7 @@ void gui::desktop_handle_keyboard(DesktopState* ds, const Montauk::KeyEvent& key
|
||||
// Global shortcuts (only on key press)
|
||||
if (key.pressed && key.ctrl && key.alt) {
|
||||
if (key.ascii == 'l' || key.ascii == 'L') {
|
||||
lock_screen(ds);
|
||||
desktop_lock_screen(ds);
|
||||
return;
|
||||
}
|
||||
if (key.ascii == 't' || key.ascii == 'T') {
|
||||
|
||||
Reference in New Issue
Block a user