dynmenu 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/dynmenu +13 -2
- data/lib/command.rb +12 -2
- data/lib/editor.rb +1 -1
- data/lib/menu.rb +1 -1
- data/lib/root_menu.rb +7 -1
- data/lib/style.rb +2 -2
- metadata +1 -1
data/bin/dynmenu
CHANGED
@@ -2,13 +2,17 @@
|
|
2
2
|
|
3
3
|
require 'yaml'
|
4
4
|
|
5
|
+
$debug = false
|
5
6
|
$subtle = true
|
6
7
|
$lines = 20
|
8
|
+
$location = '-b '
|
9
|
+
$launcher = false
|
7
10
|
begin
|
8
11
|
require 'subtle/subtlext'
|
9
12
|
rescue LoadError
|
10
13
|
$subtle = false
|
11
14
|
end
|
15
|
+
$subtle = false unless `pgrep subtle`.to_i > 0
|
12
16
|
require 'root_menu'
|
13
17
|
require 'command'
|
14
18
|
require 'style'
|
@@ -34,13 +38,18 @@ Usage: dynmenu [options] file
|
|
34
38
|
Options: -h --help : Show this help
|
35
39
|
-r : Open the menu as read only and static
|
36
40
|
-l <number> : Show max <number> lines in the menu (default=20)
|
41
|
+
-t : Show dynmenu on top and not at the bottom.
|
42
|
+
-d : Debug mode. Shows additional information for commands.
|
43
|
+
--launcher : Show only a launcher
|
44
|
+
(this would normally be under '>> Run' in the Menu)
|
45
|
+
|
37
46
|
File: : The menu file to be loaded and saved to.
|
38
47
|
It will be created if not existing.
|
39
48
|
END_USAGE
|
40
49
|
|
41
50
|
puts license
|
42
51
|
|
43
|
-
if ARGV.length >
|
52
|
+
if ARGV.length > 6 || ARGV.length < 1 || ARGV.include?("-h") || ARGV.include?("--help")
|
44
53
|
puts usage
|
45
54
|
exit
|
46
55
|
elsif ARGV.include? "-l"
|
@@ -58,9 +67,11 @@ else
|
|
58
67
|
end
|
59
68
|
end
|
60
69
|
end
|
70
|
+
$debug = true if ARGV.include? '-d'
|
71
|
+
$location = '' if ARGV.include? '-t'
|
72
|
+
$launcher = true if ARGV.include? '--launcher'
|
61
73
|
|
62
74
|
file = ARGV[ARGV.length - 1]
|
63
|
-
|
64
75
|
if File.exist? file
|
65
76
|
menu = YAML::load File.read(file)
|
66
77
|
else
|
data/lib/command.rb
CHANGED
@@ -126,10 +126,14 @@ class Command
|
|
126
126
|
if $subtle
|
127
127
|
subtle_execute
|
128
128
|
else
|
129
|
-
|
129
|
+
command = "#{@command} &>/dev/null"
|
130
|
+
puts command if $debug
|
131
|
+
system command
|
130
132
|
end
|
131
133
|
when URI
|
132
|
-
|
134
|
+
command = "xdg-open '#{@command.to_s}' &>/dev/null"
|
135
|
+
puts command if $debug
|
136
|
+
system command
|
133
137
|
if $subtle
|
134
138
|
browser = find_browser
|
135
139
|
browser.focus unless browser.nil?
|
@@ -139,6 +143,12 @@ class Command
|
|
139
143
|
end
|
140
144
|
|
141
145
|
def subtle_execute
|
146
|
+
if $debug
|
147
|
+
puts "App: #{@app}"
|
148
|
+
puts "Tags: #{@tags.to_s}"
|
149
|
+
puts "Views: #{@views.to_s}"
|
150
|
+
puts "Modes: #{@modes.to_s}"
|
151
|
+
end
|
142
152
|
tags = @tags.map do |t|
|
143
153
|
tag = Subtlext::Tag.first(t) || Subtlext::Tag.new(t)
|
144
154
|
tag.save
|
data/lib/editor.rb
CHANGED
@@ -113,7 +113,7 @@ class Editor < Menu
|
|
113
113
|
colors = [:bg, :fg, :bg_hi, :fg_hi]
|
114
114
|
unless (entries.index selection).nil?
|
115
115
|
if (entries.index selection) < 4
|
116
|
-
style.
|
116
|
+
style.set_color colors[entries.index selection], show_menu([style.color(colors[entries.index selection])], "Enter a color")
|
117
117
|
elsif (entries.index selection) < 5
|
118
118
|
if style.font.nil?
|
119
119
|
selection = show_menu(["default"], "Set font")
|
data/lib/menu.rb
CHANGED
@@ -74,7 +74,7 @@ class Menu
|
|
74
74
|
unless $read_only || self.is_a?(Dynamic)
|
75
75
|
entries << "> #{Editor.name}"
|
76
76
|
end
|
77
|
-
command = "echo \"#{entries.join "\n"}\" | dmenu -i -
|
77
|
+
command = "echo \"#{entries.join "\n"}\" | dmenu -i #{$location}-l #{$lines} #{get_font_string} -nf \"#{@style.color :fg}\" -nb \"#{@style.color :bg}\" -sf \"#{@style.color :fg_hi}\" -sb \"#{@style.color :bg_hi}\" -p \"#{name}\""
|
78
78
|
(`#{command}`).strip
|
79
79
|
end
|
80
80
|
|
data/lib/root_menu.rb
CHANGED
@@ -12,6 +12,13 @@ class Root_Menu < Menu
|
|
12
12
|
set_item Run_Menu.new self, @history
|
13
13
|
end
|
14
14
|
|
15
|
+
def execute
|
16
|
+
if $launcher
|
17
|
+
return Run_Menu.new(self, @history).execute unless @run_menu
|
18
|
+
@items.each_value {|item| return item.execute if item.is_a? Run_Menu}
|
19
|
+
end
|
20
|
+
super
|
21
|
+
end
|
15
22
|
def run_menu?
|
16
23
|
@run_menu
|
17
24
|
end
|
@@ -25,7 +32,6 @@ class Root_Menu < Menu
|
|
25
32
|
end
|
26
33
|
end
|
27
34
|
|
28
|
-
|
29
35
|
def encode_with coder
|
30
36
|
super
|
31
37
|
coder['run_menu'] = @run_menu
|
data/lib/style.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
class Style
|
2
|
-
@@re_color = Regexp.new(/^#[0-9a-fA-F]{6}$/)
|
2
|
+
@@re_color = Regexp.new(/^#(([0-9a-fA-F]{6})|([0-9a-fA-F]{3}))$/)
|
3
3
|
def initialize
|
4
4
|
@colors = {
|
5
5
|
:bg => "#202020",
|
@@ -9,7 +9,7 @@ class Style
|
|
9
9
|
}
|
10
10
|
end
|
11
11
|
|
12
|
-
def
|
12
|
+
def set_color color, value
|
13
13
|
unless @colors.keys.include? color
|
14
14
|
raise ArgumentError, "Invalid key!"
|
15
15
|
end
|