From 87ae3a63f50e8e89d7d981ec5fade3f4b2b73a25 Mon Sep 17 00:00:00 2001 From: rokosun <rokosun@noreply.git.trom.tf> Date: Mon, 25 Dec 2023 07:54:45 +0000 Subject: [PATCH] Add toggleGlobalMenu.nim --- toggleGlobalMenu.nim | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 toggleGlobalMenu.nim diff --git a/toggleGlobalMenu.nim b/toggleGlobalMenu.nim new file mode 100644 index 0000000..33cd91c --- /dev/null +++ b/toggleGlobalMenu.nim @@ -0,0 +1,44 @@ +from std/os import paramCount, paramStr, extractFilename +from std/strformat import fmt +import sharedModule + +proc enableGlobalMenus(): int = + return runCommand("/usr/bin/env", ["SKIP_AUTOSNAP=", "/usr/bin/pacman", "-S", "--noconfirm", "vala-panel-appmenu-registrar"]) + +proc disableGlobalMenus(): int = + result = runCommand("/usr/bin/env", ["SKIP_AUTOSNAP=", "/usr/bin/pacman", "-R", "--noconfirm", "vala-panel-appmenu-registrar"]) + if result == 0: + discard runCommand("/usr/bin/killall", ["appmenu-registrar"]) + +proc showHelp() = + let executableName = paramStr(0).extractFilename() + echo fmt""" +Usage: {executableName} <option> +Options: + enable install global menus + disable remove global menus""" + +var exitCode: int +if paramCount() < 1: + if isGlobalMenuEnabled(): + exitCode = disableGlobalMenus() + else: + exitCode = enableGlobalMenus() +else: + case paramStr(1) + of "enable": + if isGlobalMenuEnabled(): + echo "Global menus are already enabled." + exitCode = 0 + else: + exitCode = enableGlobalMenus() + of "disable": + if not isGlobalMenuEnabled(): + echo "Global menus are already disabled." + exitCode = 0 + else: + exitCode = disableGlobalMenus() + else: + showHelp() + +quit(exitCode)