31 lines
696 B
Plaintext
31 lines
696 B
Plaintext
![]() |
#!/usr/bin/env ruby
|
||
|
|
||
|
require 'dmenu'
|
||
|
|
||
|
def run_menu(items, prompt)
|
||
|
menu = Dmenu.new
|
||
|
menu.case_insensitive = true
|
||
|
menu.lines = items.length
|
||
|
menu.items = items
|
||
|
menu.prompt = prompt
|
||
|
menu.run.value
|
||
|
end
|
||
|
modes = [
|
||
|
Dmenu::Item.new('multidisp', '-m'),
|
||
|
Dmenu::Item.new('select', '-s'),
|
||
|
Dmenu::Item.new('focused', '-u -d 1'),
|
||
|
Dmenu::Item.new('normal', '')
|
||
|
]
|
||
|
|
||
|
actions = [
|
||
|
Dmenu::Item.new('move to screenshots', 'mv $f ~/media/screenshots'),
|
||
|
Dmenu::Item.new('view image', 'xdg-open $f'),
|
||
|
Dmenu::Item.new('make draggable', 'dragon -x $f'),
|
||
|
Dmenu::Item.new('nothing', 'true')
|
||
|
]
|
||
|
|
||
|
mode = run_menu(modes, "Screenshot type")
|
||
|
action = run_menu(actions, "and then")
|
||
|
|
||
|
system('scrot', mode, '-e', action)
|