--- 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 preferred programs local terminal = RC.vars.terminal local file_manager = RC.vars.file_manager --- 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" }, { "hyperbeam", "/opt/AppImages/Hyperbeam-0.21.0.AppImage" }, { "qbittorrent", "qbittorrent" }, { "keepassxc", "keepassxc" }, } --- DEVELOPERS, DEVELOPERS, DEVELOPERS, DEVELOPERS M.develop = { { "vs code", "code" }, { "bless", "bless" }, { "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 = { { "catfish", "catfish" }, { "xed", "xed" }, { "xarchiver", "xarchiver" }, { "flatseal", "flatpak run com.github.tchx84.Flatseal" }, { "text pieces", "flatpak run com.github.liferooter.textpieces" }, { "alacarte", "alacarte" }, { "piper", "piper" }, --- mouse config { "wally", "wally" } --- keyboard fw flasher } --- "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" }, { "mkvtoolnix", "mkvtoolnix-gui" }, { "nomacs", "nomacs" } } --- educationf M.edu = { { "anki", "flatpak run net.ankiweb.Anki" }, { "zotero", "flatpak run org.zotero.Zotero" } } --- "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 }, { "files" , file_manager }, { "www" , M.network }, { "media" , M.media }, { "dev" , M.develop }, { "edu" , M.edu }, { "art" , M.vis }, { "games" , M.games }, { "utils" , M.utils } } return menu_items end ------------------------------------------ return setmetatable({}, { __call = function(_, ...) return _M.get(...) end })