Hacker News new | past | comments | ask | show | jobs | submit login
How to use math input in GIMP (libregraphicsworld.org)
92 points by zdw on July 16, 2020 | hide | past | favorite | 18 comments



After some trial and error, I was able to make the following bash script, which will take the X clipboard selection (containing math operations you want to perform), run it through bc (to do the math), replace the X clipboard with the result, and paste it, overwriting the previous result:

    output=$(echo "$(xclip -o)" | bc) # take the X clipboard and run it through bc
    sleep 0.2s # wait before continuing or else this won't work
    xdotool key BackSpace # clear the selection
    printf $output | xclip -i # write the output to the X clipboard
    xdotool click 2 # paste the result by clicking the middle button
I set this as Super-E on my computer and probably will use it every once in a while for programs which don't implement math input.

In other words, with this you can select text containing mathematical operations, press a key combination, and the selected text will be replaced by the result of the math.

Improvements welcome. There probably are better ways to do this.


One disadvantage of this approach is that the mouse needs to be over the text area that's being pasted in to.


> GIMP even respects the order of operations, so if you go for something like 600 - 2 * 5, the answer will be 590.

I mean, what else could it do? That this needs to be said makes me strangely sad :(


Many older languages evaluated expressions left to right. For assemblers this saves you from managing intermediate values and you can spit out ALU instructions in order without need for register assignment magic.


VisiCalc [1], the first spreadsheet program and the "killer app" for business on the Apple II, also used left-to-right evaluation. Dan Bricklin said he needed people to be able to quickly enter equations as they did on a cheap (non-RPN) calculator [2, at around 35:10].

[1] https://en.wikipedia.org/wiki/VisiCalc

[2] https://scs.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=...


That's not the tone in this article, though. It's not "the input field is not in RPN", it's "OMG CAN DO THE BASICEST OF BASIC MATH, HOW CLEVER!!!"


It needs to be said because not every user is a programmer and things like this aren’t obvious to them.


This is primary school arithmetic, not programming :(


Obvious thought: reverse Polish notation. It'd be a little surprising from GIMP, but not unthinkable.


I believe there is a lot of software that can do math on input. Holding and moving up/down to increase or decrease is also supported in a lot of software.


Most spinboxes also let you use the scrollwheel on them.


That seems to work for all GTK+ spinboxes. I wish math input was built into GTK+ and worked for them all too.


The first program I used with math on input was alphacam, it was mind blowing to me when I discovered it. Any time I use a program with out it now it feels lacking. The Godot editor has this feature too, just to drop another great piece of open source software with it.


Pretty handy, particularly ratios.

I was hoping I would learn that you could do parametric formulas to define curves, and maybe even Taylor series for curves too hard to define in closed form. Someday.


If you want a feature like this in elixir, I've made a library for that: https://github.com/narrowtux/abacus


Would love it if more software and websites did this. Banking, online stores, etc. could benefit a lot. Even some CAD software doesn't have this functionality.

In YNAB, it's essential, so I'm glad they have it.


Several programs support this, including Inkscape.


That's actually a neat idea.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: