Pie Menu plugin

A usefull pie menu for speeding up the drawing process

1 Like

This is an extremely useful extension! Thanks

1 Like


is there a easy way to make the menu as big as you have it in your example? the color sqaure you have looks to have a bigger square for the colors. Also the little icons around the color pallete look like they are cut off making it hard to tell what they are.

1 Like

I didn’t want to edit the author’s work and re-distribute, so I made a script to adjust the button size. Whether it will break other things I’m not sure. Anyway, here’s the script:

local file = "C:/Users/"..os.getenv("USERNAME").."/AppData/Roaming/Aseprite/extensions/radial_menu/extension - Copy"
local fileExt = ".bak"
local path = file .. fileExt
local backupPath = path .. ".original"
local targetLine = 295
local EXPECT_OLD = "22" -- set to nil to skip strict check

local function fileExists(p)
  local f = io.open(p, "r"); if f then f:close() return true end; return false
end

local function readAllLines(p)
  local f = io.open(p, "r"); if not f then return nil, "Could not open for reading:\n"..p end
  local t = {}; for s in f:lines() do t[#t+1] = s end; f:close(); return t
end

local function writeAllLines(p, lines)
  local f = io.open(p, "w"); if not f then return false, "Could not open for writing:\n"..p end
  f:write(table.concat(lines, "\n")); f:close(); return true
end

local function ensureBackupOnce()
  if fileExists(backupPath) then return true end
  local lines, err = readAllLines(path)
  if not lines then return false, err end
  local ok, werr = writeAllLines(backupPath, lines)
  if not ok then return false, werr end
  return true
end

local dlg = Dialog{ title="Set Button Size" }
dlg:entry{ id="size", label="Button size (in px):", text="32", focus=true }
dlg:button{
  text="Set size",
  onclick=function()
    local sz = tonumber(dlg.data.size)
    if not sz then app.alert("Please enter a valid number."); return end

    -- make a one-time backup
    local ok, berr = ensureBackupOnce()
    if not ok then app.alert("Backup failed.\n\n"..tostring(berr)); return end

    -- load and validate target line
    local lines, err = readAllLines(path)
    if not lines then app.alert(err); return end
    if not lines[targetLine] then
      app.alert("File has only "..#lines.." lines; missing line "..targetLine..".")
      return
    end

    local before = lines[targetLine]
    -- optional strict check: only proceed if EXPECT_OLD is found as a standalone number
    if EXPECT_OLD and not before:find("%f[%d]"..EXPECT_OLD.."%f[%D]") then
      app.alert("Line "..targetLine.." is not the expected value ("..EXPECT_OLD..").\n\n"..before)
      return
    end

    -- replace the FIRST number on the line with the new size
    local after, n = before:gsub("%d+", tostring(sz), 1)
    if n == 0 then
      app.alert("No number found on line "..targetLine..".\n\n"..before)
      return
    end

    lines[targetLine] = after
    local wok, werr = writeAllLines(path, lines)
    if not wok then app.alert(werr); return end

    app.alert("Successfully updated button size to "..after.."px.")
  end
}
dlg:button{ text="Close" }
dlg:show{ wait=false }

Simply enter the value within the dialog then click set size. It should update the size of the button. It will make a backup of the file once so if you don’t like it, or it breaks, you can revert the backup within the path: C:/Users//AppData/Roaming/Aseprite/extensions/radial_menu

1 Like

wow, i think it’s version problem ‘cuz mine is exactly like the photo that i’ve posted.

which version of aseprite r u using?

ow thanks. i was planning to add something like that. really apprecieted

It’s not the most ideal. You could do it from within your extension much more cleanly.

I did figure out the issue, it looks like your script scipt hates running with 200% ui. Can you make it so the menu stays the same size or at least scale with the ui? I don’t mind it being at 1x size but would prefer it to be that way when I’m in 200%.

1 Like

ah, i see. ty so much. I’m writing down all the issues.
i’ll fix them in an update :slight_smile:

another thing I’d like to request is the ability to press esc to get rid of the menu. I’ve press the keybinding for the menu by accident and it made me choose a tool before it would close.