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)