59 lines
1.7 KiB
Nim
59 lines
1.7 KiB
Nim
from std/osproc import execProcess
|
|
from std/strformat import fmt
|
|
import sharedModule, std/os
|
|
|
|
proc enableGlobalMenus(): int =
|
|
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 =
|
|
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()
|
|
echo fmt"""
|
|
Usage: {executableName} <option>
|
|
Options:
|
|
enable enable global menus
|
|
disable disable 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():
|
|
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)
|