--- awesome stdlib local awful = require("awful") local hotkeys_popup = require("awful.hotkeys_popup").widget --- theme lib local beautiful = require("beautiful") --- for awesome.icon local M = {} local _M = {} ------------------------------------------ --- import terminal variable from rc.lua local terminal = RC.vars.terminal --- import editor variable from OS environment local editor = os.getenv("EDITOR") or "nano" local editor_cmd = terminal .. " -e " .. editor ------------------------------------------ --- make it harder to quit awesome accidentally M.quitmenu = {{ "i mean it!", function() awesome.quit() end }} --- "awesome" menu M.awesome = { { "hotkeys" , function() hotkeys_popup.show_help(nil,awful.screen.focused()) end }, { "manual" , terminal .. " -e man awesome" }, { "edit config" , editor_cmd .. " " .. awesome.conffile }, { "terminal" , terminal }, { "restart" , awesome.restart }, { "quit" , M.quitmenu } } --- browsers and other network-oriented software M.network = { { "firefox" , "firefox" }, { "discord" , "flatpak run\ com.discordapp.Discord" }, { "thunderbird" , "thunderbird" }, { "steam" , "steam" }, { "qbittorrent" , "qbittorrent" }, { "keepassxc" , "keepassxc" } } --- DEVELOPERS, DEVELOPERS, DEVELOPERS, DEVELOPERS M.develop = { { "vs code" , "code" }, { "bless" , "bless" }, -- { "dbeaver studio" , "flatpak run\ -- io.dbeaver.DBeaverCommunity" }, -- { "beekeeper studio" , "flatpak run\ -- io.beekeeperstudio.Studio" }, { "sqlite browser" , "sqlitebrowser" } } --- emulators M.emulators = { { "citra" , "flatpak run\ org.citra_emu.citra" }, { "dolphin" , "flatpak run\ org.DolphinEmu.dolphin-emu" }, { "yuzu" , "flatpak run\ org.yuzu_emu.yuzu" }, { "duckstation" , "flatpak run\ org.duckstation.DuckStation" }, { "PPSSPP" , "flatpak run\ org.ppsspp.PPSSPP" } } --- vintage story [different versions of VS for mods] M.vtgstry = { { "latest" , "vintagestory" }, { "flatpak" , "flatpak run\ at.vintagestory.VintageStory" } } --- videogames M.games = { { "emulators" , M.emulators }, { "vintage story" , M.vtgstry }, { "team fortress 2" , "steam\ steam://rungameid/440" }, { "ballisticNG" , "steam\ steam://rungameid/473770" }, { "them's fightin' herds" , "steam\ steam://rungameid/574980" }, { "doom" , "gzdoom" }, { "osu!" , "flatpak run\ sh.ppy.osu" }, { "minecraft" , "flatpak run\ org.prismlauncher.PrismLauncher" }, { "solitaire" , "pysol" } } --- utilities [kind of a misc category] M.utils = { { "xed" , "xed" }, { "catfish" , "catfish" }, { "anki" , "flatpak run net.ankiweb.Anki" }, { "mkvtoolnix" , "mkvtoolnix-gui" }, { "text pieces" , "flatpak run\ com.github.liferooter.textpieces" }, { "alacarte" , "alacarte" }, { "flatseal" , "flatpak run com.github.tchx84.Flatseal" }, { "xarchiver" , "xarchiver" }, { "piper" , "piper" }, { "wally" , "wally" } } --- "media" programs [image viewers, video players, etc] M.media = { { "hydrus" , "flatpak run io.github.hydrusnetwork.hydrus" }, { "vlc" , "vlc" }, { "youtube" , "/usr/lib64/chromium-browser/chromium-browser.sh\ --profile-directory=Default\ --app-id=agimnkijcaahngcdmfeangaknmldooml" }, { "spotify" , "flatpak run com.spotify.Client" }, { "nomacs" , "nomacs" } } --- "visual arts" stuff M.vis = { { "blender" , "steam\ steam://rungameid/365670" }, { "krita" , "krita" }, { "GIMP" , "gimp-2.10" }, { "beeref" , "flatpak run\ org.beeref.BeeRef" } } ------------------------------------------ function _M.get() --- main menu local menu_items = { { "awesome" , M.awesome, beautiful.awesome_subicon }, { "terminal" , terminal }, { "thunar" , "Thunar" }, { "www" , M.network }, { "media" , M.media }, { "dev" , M.develop }, { "art" , M.vis }, { "games" , M.games }, { "utils" , M.utils } } return menu_items end ------------------------------------------ return setmetatable({}, { __call = function(_, ...) return _M.get(...) end })