dotfiles/awesome/main/menu.lua

158 lines
6.2 KiB
Lua
Raw Normal View History

2023-05-01 23:51:42 +00:00
-- standard awesome library -----------------------------------------
local awful = require("awful")
2023-04-20 04:08:44 +00:00
local hotkeys_popup = require("awful.hotkeys_popup").widget
2023-05-01 23:51:42 +00:00
-- theme handling library ------------------------------------------
local beautiful = require("beautiful") -- for awesome.icon
2023-04-20 04:08:44 +00:00
2023-05-01 23:51:42 +00:00
local M = {} -- menu
2023-04-20 04:08:44 +00:00
local _M = {} -- module
2023-05-01 23:51:42 +00:00
---------------------------------------------------------------------
2023-04-20 04:08:44 +00:00
2023-05-01 23:51:42 +00:00
-- import terminal variable from rc.lua -----------------------------
2023-04-20 04:08:44 +00:00
local terminal = RC.vars.terminal
2023-05-01 23:51:42 +00:00
-- import editor variable from OS environment -----------------------
local editor = os.getenv("EDITOR") or "nano"
2023-04-20 04:08:44 +00:00
local editor_cmd = terminal .. " -e " .. editor
2023-05-01 23:51:42 +00:00
---------------------------------------------------------------------
2023-04-20 04:08:44 +00:00
2023-05-01 23:51:42 +00:00
-- make it harder to quit awesome accidentally ----------------------
M.quitmenu =
{{ "i mean it!", function() awesome.quit() end }}
awesome+Alacritty changes; rm awesome ext package tracking - `awesome/binding/clientkeys.lua`: - added cyclefocus (Mod + Tab to cycle through clients of same type) - `awesome/binding/globalkeys.lua`: - i shrimply removed things i'm not using - `awesome/deco/statusbar.lua`: - completely remove keyboard layout widget - re-enable systray - NOTE: i might replace this with something else later. or not, as there's an MR to fix the transparency issues. dunno what i'll be doing for sure - `awesome/main/menu.lua`: - change the 'quit' option in the 'awesome' menu to be accessible under another nested menu, to stop me from quitting accidentally when aiming for restart and having my hand twitch (this has happened multiple times now!) - other standard adding and adjusting of other software that shows up in the menus - `awesome/main/rules.lua`: - remove rules i don't need - add rule for steam to force it to float since it plays like shit with tiled WMs or other weirder desktop setups - add rule for pokemon infinite fusion to force it to float since i just don't like the idea of games being effected by tiling usually - NOTE: i might change this to something that bars its resolution from being messed with instead; dunno if that's a thing i can do - `awesome/main/startup.lua`: - get rid of autostart entry for `redshift` as it does not work right - _technically,_ it **does** work, but the problem is that it re-applies itself whenever i restart awesome if it's in the autostart no matter what i try doing. i think there's no solution for this so i'm trying other non-awesome-related things - get rid of unused include - `awesome/main/user-variables.lua`: - literally just removed comments i didn't need - `alacritty/alacritty.yml`: - added scrolling settings
2023-04-23 01:32:15 +00:00
2023-05-01 23:51:42 +00:00
-- "awesome" menu ---------------------------------------------------
2023-04-20 04:08:44 +00:00
M.awesome = {
2023-05-01 23:51:42 +00:00
{ "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 }
2023-04-20 04:08:44 +00:00
}
2023-05-01 23:51:42 +00:00
-- browsers and other network-oriented software ---------------------
2023-04-20 04:08:44 +00:00
M.network = {
2023-05-01 23:51:42 +00:00
{ "firefox" , "firefox" },
{ "discord" , "flatpak run\
com.discordapp.Discord" },
{ "thunderbird" , "thunderbird" },
{ "steam" , "steam" },
{ "qbittorrent" , "qbittorrent" },
{ "keepassxc" , "keepassxc" }
2023-04-20 04:08:44 +00:00
}
2023-05-01 23:51:42 +00:00
-- DEVELOPERS, DEVELOPERS, DEVELOPERS, DEVELOPERS -------------------
2023-04-20 04:08:44 +00:00
M.develop = {
{ "vs code" , "code" },
{ "bless" , "bless" },
{ "dbeaver studio" , "flatpak run\
io.dbeaver.DBeaverCommunity" },
2023-05-01 23:51:42 +00:00
{ "beekeeper studio" , "flatpak run\
io.beekeeperstudio.Studio" },
{ "sqlite browser" , "sqlitebrowser" }
2023-04-20 04:08:44 +00:00
}
2023-05-01 23:51:42 +00:00
-- emulators --------------------------------------------------------
2023-04-20 04:08:44 +00:00
M.emulators = {
2023-05-01 23:51:42 +00:00
{ "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" }
awesome+Alacritty changes; rm awesome ext package tracking - `awesome/binding/clientkeys.lua`: - added cyclefocus (Mod + Tab to cycle through clients of same type) - `awesome/binding/globalkeys.lua`: - i shrimply removed things i'm not using - `awesome/deco/statusbar.lua`: - completely remove keyboard layout widget - re-enable systray - NOTE: i might replace this with something else later. or not, as there's an MR to fix the transparency issues. dunno what i'll be doing for sure - `awesome/main/menu.lua`: - change the 'quit' option in the 'awesome' menu to be accessible under another nested menu, to stop me from quitting accidentally when aiming for restart and having my hand twitch (this has happened multiple times now!) - other standard adding and adjusting of other software that shows up in the menus - `awesome/main/rules.lua`: - remove rules i don't need - add rule for steam to force it to float since it plays like shit with tiled WMs or other weirder desktop setups - add rule for pokemon infinite fusion to force it to float since i just don't like the idea of games being effected by tiling usually - NOTE: i might change this to something that bars its resolution from being messed with instead; dunno if that's a thing i can do - `awesome/main/startup.lua`: - get rid of autostart entry for `redshift` as it does not work right - _technically,_ it **does** work, but the problem is that it re-applies itself whenever i restart awesome if it's in the autostart no matter what i try doing. i think there's no solution for this so i'm trying other non-awesome-related things - get rid of unused include - `awesome/main/user-variables.lua`: - literally just removed comments i didn't need - `alacritty/alacritty.yml`: - added scrolling settings
2023-04-23 01:32:15 +00:00
}
2023-05-01 23:51:42 +00:00
-- vintage story [different versions of VS for mods] ----------------
M.vtgstry ={
{ "latest" , "vintagestory" },
{ "flatpak" , "flatpak run\
at.vintagestory.VintageStory" }
2023-04-20 04:08:44 +00:00
}
2023-05-01 23:51:42 +00:00
-- videogames -------------------------------------------------------
2023-04-20 04:08:44 +00:00
M.games = {
2023-05-01 23:51:42 +00:00
{ "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" },
2023-05-01 23:51:42 +00:00
{ "osu!" , "flatpak run\
sh.ppy.osu" },
{ "minecraft" , "flatpak run\
org.prismlauncher.PrismLauncher" },
{ "solitaire" , "pysol" }
2023-04-20 04:08:44 +00:00
}
2023-05-01 23:51:42 +00:00
-- utilities [kind of a misc category] ------------------------------
2023-04-20 04:08:44 +00:00
M.utils = {
{ "xed" , "xed" },
2023-05-01 23:51:42 +00:00
{ "catfish" , "catfish" },
{ "anki" , "flatpak run net.ankiweb.Anki" },
{ "mkvtoolnix" , "mkvtoolnix-gui" },
2023-05-01 23:51:42 +00:00
{ "text pieces" , "flatpak run\
com.github.liferooter.textpieces" },
{ "alacarte" , "alacarte" },
{ "flatseal" , "flatpak run com.github.tchx84.Flatseal" },
{ "xarchiver" , "xarchiver" },
{ "piper" , "piper" },
{ "wally" , "wally" }
2023-04-20 04:08:44 +00:00
}
2023-05-01 23:51:42 +00:00
-- "media" programs [image viewers, video players, etc] -------------
2023-04-20 04:08:44 +00:00
M.media = {
2023-05-01 23:51:42 +00:00
{ "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" }
2023-04-20 04:08:44 +00:00
}
2023-05-01 23:51:42 +00:00
---------------------------------------------------------------------
2023-04-20 04:08:44 +00:00
function _M.get()
2023-05-01 23:51:42 +00:00
-- 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 }
}
2023-04-20 04:08:44 +00:00
return menu_items
end
2023-05-01 23:51:42 +00:00
---------------------------------------------------------------------
2023-04-20 04:08:44 +00:00
return setmetatable({}, { __call = function(_, ...) return _M.get(...) end })