-- standard awesome library ----------------------------------------- local awful = require("awful") local hotkeys_popup = require("awful.hotkeys_popup").widget -- theme handling library ------------------------------------------ local beautiful = require("beautiful") -- for awesome.icon local M = {} -- menu local _M = {} -- module --------------------------------------------------------------------- -- 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" }, { "youtube" , "/usr/lib64/chromium-browser/chromium-browser.sh\ --profile-directory=Default\ --app-id=agimnkijcaahngcdmfeangaknmldooml" }, { "spotify" , "flatpak run com.spotify.Client" } } -- "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 })