diff --git a/scripts/keybindings.lua b/scripts/keybindings.lua index 24b2eb7..5f88379 100755 --- a/scripts/keybindings.lua +++ b/scripts/keybindings.lua @@ -1,18 +1,39 @@ #!/usr/bin/env lua --- Entries contain three strings: 1 - name, 2 - shell command, and 3 - keybinding. +-- This is where you add the bindings. Entries contain three strings: 1 - name, 2 - shell command, and 3 - keybinding. local entries = { { "Toggle terminal transparency", "${HOME}/scripts/toggle-term-transparency.sh", "dead_acute", }, - { "Toggle bg", "${HOME}/scripts/switch-bg.sh t", "ccedilla" }, + { + "Toggle bg", + "${HOME}/scripts/switch-bg.sh t", + "ccedilla", + }, } -local addQuotes = function(str) +---add " marks to either end of a string +---@param str string +---@return string +local addDoubleQuotes = function(str) return '"' .. str .. '"' end -local makeBinding = function(str) - return "\"['" .. str .. "']\"" +---add ' marks to either end of a string +---@param str string +local addSingleQuotes = function(str) + return "'" .. str .. "'" +end +---add square brackets to either end of a string +---@param str string +local addSquareBrackets = function(str) + return "[" .. str .. "]" +end +---add [ ]s and 's for bindings array +---@param str string +---@return string +local makeBindings = function(str) + return addDoubleQuotes(addSquareBrackets(addSingleQuotes(str))) + -- return "\"['" .. str .. "']\"" end -- create and set custom_list. Gsettings needs this in order to create bindings before they can be modified. local custom_list = '"[' @@ -23,21 +44,26 @@ end custom_list = custom_list:sub(1, custom_list:len() - 1) .. ']"' os.execute("gsettings set org.cinnamon.desktop.keybindings custom-list " .. custom_list) -- set bindings +---set bindings via gsettings +---@param index integer +---@param name string +---@param command string +---@param binding string local gset = function(index, name, command, binding) local cmd = "gsettings set org.cinnamon.desktop.keybindings.custom-keybinding:/org/cinnamon/desktop/keybindings/custom-keybindings/custom" .. index .. "/ name " - .. addQuotes(name) + .. addDoubleQuotes(name) os.execute(cmd) cmd = "gsettings set org.cinnamon.desktop.keybindings.custom-keybinding:/org/cinnamon/desktop/keybindings/custom-keybindings/custom" .. index .. "/ command " - .. addQuotes(command) + .. addDoubleQuotes(command) os.execute(cmd) cmd = "gsettings set org.cinnamon.desktop.keybindings.custom-keybinding:/org/cinnamon/desktop/keybindings/custom-keybindings/custom" .. index .. "/ binding " - .. makeBinding(binding) + .. makeBindings(binding) os.execute(cmd) end for i, entry in pairs(entries) do