There are many options for a #plaintextaccounting budget: #hledger builtin feature, automated transactions with virtual accounts, subaccounts of assets for envelope budgeting... I like the idea of accumulative budget of envelope budgeting but I would like to have one reduced list of budget categories (necessary, non-necessary, savings) and a broad list of expense categories (home, transport, utilities...).
Late to the party, but I use a combination of spreadsheets (libreoffice calc) and hledger.
I defined categories for expenses and income, like your example (some of mine are: expenses:auto:maintenance, expenses:auto:repairs in ledger while in the spreadsheet I only have one row for auto). I track totals for the categories in hledger. Monthly I update the spreadsheet and track how well I stuck to the budget.
I haven't used the built in budget feature in hledger.
I think envelope budgeting is more worth the effort when closely managing cash and strong enforcement of limits is important. I find goal budgeting (bal --budget) quicker and easier for general planning.