From f22786607219edf328156c5c6932a6dbced6576c Mon Sep 17 00:00:00 2001 From: rokosun Date: Mon, 1 Jan 2024 15:09:38 +0000 Subject: [PATCH] Update toggleGlobalMenu.nim --- toggleGlobalMenu.nim | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/toggleGlobalMenu.nim b/toggleGlobalMenu.nim index 33cd91c..e75d60b 100644 --- a/toggleGlobalMenu.nim +++ b/toggleGlobalMenu.nim @@ -1,14 +1,24 @@ -from std/os import paramCount, paramStr, extractFilename +from std/osproc import execProcess from std/strformat import fmt -import sharedModule +import sharedModule, std/os proc enableGlobalMenus(): int = - return runCommand("/usr/bin/env", ["SKIP_AUTOSNAP=", "/usr/bin/pacman", "-S", "--noconfirm", "vala-panel-appmenu-registrar"]) + try: + moveFile("/usr/lib/vala-panel/appmenu-registrar.disabled", "/usr/lib/vala-panel/appmenu-registrar") + removeFile("/usr/share/libalpm/hooks/disable-global-menu.hook") + except: + return 1 proc disableGlobalMenus(): int = - result = runCommand("/usr/bin/env", ["SKIP_AUTOSNAP=", "/usr/bin/pacman", "-R", "--noconfirm", "vala-panel-appmenu-registrar"]) - if result == 0: + try: + moveFile("/usr/lib/vala-panel/appmenu-registrar", "/usr/lib/vala-panel/appmenu-registrar.disabled") + if not fileExists("/usr/share/libalpm/hooks/disable-global-menu.hook"): + createDir("/usr/share/libalpm/hooks") + copyFileWithPermissions("/usr/share/tromjaro-layout-switcher/disable-global-menu.hook", + "/usr/share/libalpm/hooks/disable-global-menu.hook") discard runCommand("/usr/bin/killall", ["appmenu-registrar"]) + except: + return 1 proc showHelp() = let executableName = paramStr(0).extractFilename() @@ -18,6 +28,10 @@ Options: enable install global menus disable remove global menus""" +if execProcess("/usr/bin/id", args=["--user"], options={}) != "0\n": + echo "Run this program as root." + quit(1) + var exitCode: int if paramCount() < 1: if isGlobalMenuEnabled():