wasko 0.0.1 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION +1 -1
- data/lib/wasko/iterm.rb +79 -0
- data/lib/wasko/palette.rb +5 -0
- data/lib/wasko/terminal.rb +16 -0
- data/lib/wasko.rb +60 -1
- data/wasko.gemspec +3 -2
- metadata +5 -4
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0
|
1
|
+
0.1.0
|
data/lib/wasko/iterm.rb
ADDED
@@ -0,0 +1,79 @@
|
|
1
|
+
module Wasko
|
2
|
+
# Adds support for [iTerm2](http://code.google.com/p/iterm2/)
|
3
|
+
class Iterm
|
4
|
+
|
5
|
+
# Terminal.app uses a slightly different terminology
|
6
|
+
def self.set_normal_text_color(color)
|
7
|
+
set_foreground_color color
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.set_bold_text_color(color)
|
11
|
+
set_bold_color color
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.method_missing(method_sym, *arguments, &block)
|
15
|
+
if method_sym.to_s =~ /^set_(.*)$/
|
16
|
+
self.set($1.gsub(/_/, " ") => arguments.first)
|
17
|
+
elsif method_sym.to_s =~ /^([a-z]+_[a-z]+(.*))$/
|
18
|
+
self.get($1.gsub(/_/, " "))
|
19
|
+
else
|
20
|
+
super
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
# Pretty big todo, shield this off somewhat.
|
25
|
+
def self.respond_to?(method_sym, include_private = false)
|
26
|
+
if method_sym.to_s =~ /^set_(.*)$/
|
27
|
+
true
|
28
|
+
elsif method_sym.to_s =~ /^[a-z]+_[a-z]+(.*)$/
|
29
|
+
true
|
30
|
+
else
|
31
|
+
super
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
protected
|
36
|
+
|
37
|
+
def self.set(conditions = {})
|
38
|
+
Wasko::Applescript.run do
|
39
|
+
self.set_script(conditions.keys.first, conditions.values.first)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def self.get(object)
|
44
|
+
Wasko::Applescript.run do
|
45
|
+
self.get_script(object)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
# ## Utility methods
|
50
|
+
#
|
51
|
+
# Setter
|
52
|
+
#
|
53
|
+
# Wasko::Terminal.set_script("background color", "red")
|
54
|
+
#
|
55
|
+
def self.set_script(object, value)
|
56
|
+
unless value =~ /^(\{|\[|\()/
|
57
|
+
value = "\"#{value}\""
|
58
|
+
end
|
59
|
+
<<SCRIPT
|
60
|
+
tell application "iTerm"
|
61
|
+
set #{object} of current session of current terminal to #{value}
|
62
|
+
end tell
|
63
|
+
SCRIPT
|
64
|
+
end
|
65
|
+
|
66
|
+
# Getter
|
67
|
+
#
|
68
|
+
# Wasko::Terminal.get_script("background color")
|
69
|
+
#
|
70
|
+
def self.get_script(object)
|
71
|
+
<<SCRIPT
|
72
|
+
tell application "iTerm"
|
73
|
+
get #{object} of current session of current terminal
|
74
|
+
end tell
|
75
|
+
SCRIPT
|
76
|
+
end
|
77
|
+
|
78
|
+
end
|
79
|
+
end
|
data/lib/wasko/palette.rb
CHANGED
@@ -47,6 +47,10 @@ module Wasko
|
|
47
47
|
@base.brightness > 0.5 ? -1 : 1
|
48
48
|
end
|
49
49
|
|
50
|
+
def dark_base_color?
|
51
|
+
@base.brightness < 0.5
|
52
|
+
end
|
53
|
+
|
50
54
|
# Hash of the color palette
|
51
55
|
# TODO: attr_accessible
|
52
56
|
def colors
|
@@ -85,6 +89,7 @@ module Wasko
|
|
85
89
|
def mix_base_with(color_name, mix_value = 50, brightness = 30)
|
86
90
|
@base.mix_with(Wasko::Color.color_from_string(color_name), mix_value).adjust_brightness(brightness)
|
87
91
|
end
|
92
|
+
|
88
93
|
end
|
89
94
|
end
|
90
95
|
end
|
data/lib/wasko/terminal.rb
CHANGED
@@ -8,6 +8,22 @@ module Wasko
|
|
8
8
|
# other variants.
|
9
9
|
class Terminal
|
10
10
|
|
11
|
+
# Unsupported calls
|
12
|
+
# Since Apple hasn't implemented them, no way to set
|
13
|
+
# them, except to fall back to brittle GUI scripting
|
14
|
+
# and I'm not really looking forward to doing that.
|
15
|
+
#
|
16
|
+
# So that's why you should use iTerm2.
|
17
|
+
def self.set_selected_text_color(color);end
|
18
|
+
def self.set_selection_color(color);end
|
19
|
+
def self.set_ansi_black_color(color);end
|
20
|
+
def self.set_ansi_red_color(color);end
|
21
|
+
def self.set_ansi_green_color(color);end
|
22
|
+
def self.set_ansi_yellow_color(color);end
|
23
|
+
def self.set_ansi_blue_color(color);end
|
24
|
+
def self.set_ansi_magenta_color(color);end
|
25
|
+
def self.set_ansi_cyan_color(color);end
|
26
|
+
def self.set_ansi_white_color(color);end
|
11
27
|
|
12
28
|
# # Getters And Setters
|
13
29
|
#
|
data/lib/wasko.rb
CHANGED
@@ -4,6 +4,8 @@ require "yaml"
|
|
4
4
|
require "wasko/applescript"
|
5
5
|
# [Terminal: Support for Terminal.app](terminal.html)
|
6
6
|
require "wasko/terminal"
|
7
|
+
# [iTerm: Support for iTerm.app](iterm.html)
|
8
|
+
require "wasko/iterm"
|
7
9
|
# [Color: Small color utilities](color.html)
|
8
10
|
require "wasko/color"
|
9
11
|
# [Palette: Generates a color scheme](palette.html)
|
@@ -18,7 +20,16 @@ module Wasko
|
|
18
20
|
# in the future this could be used to support other
|
19
21
|
# Terminals as well.
|
20
22
|
def advanced_typing_apparatus
|
21
|
-
Wasko::Terminal
|
23
|
+
return Wasko::Terminal if current_application =~ /Terminal.app/
|
24
|
+
return Wasko::Iterm if current_application =~ /iTerm.app/
|
25
|
+
nil
|
26
|
+
end
|
27
|
+
|
28
|
+
# Gets the current active application
|
29
|
+
def current_application
|
30
|
+
Wasko::Applescript.run do
|
31
|
+
"get name of (info for (path to frontmost application))"
|
32
|
+
end
|
22
33
|
end
|
23
34
|
|
24
35
|
# ## Set/Get fonts and colors
|
@@ -58,6 +69,14 @@ module Wasko
|
|
58
69
|
advanced_typing_apparatus.set_cursor_color(Wasko::Color.color_from_string(color).to_applescript)
|
59
70
|
end
|
60
71
|
|
72
|
+
def set_selected_text_color(color)
|
73
|
+
advanced_typing_apparatus.set_selected_text_color(Wasko::Color.color_from_string(color).to_applescript)
|
74
|
+
end
|
75
|
+
|
76
|
+
def set_selection_color(color)
|
77
|
+
advanced_typing_apparatus.set_selection_color(Wasko::Color.color_from_string(color).to_applescript)
|
78
|
+
end
|
79
|
+
|
61
80
|
def font_name
|
62
81
|
advanced_typing_apparatus.font_name
|
63
82
|
end
|
@@ -84,6 +103,40 @@ module Wasko
|
|
84
103
|
set_font_name name
|
85
104
|
end
|
86
105
|
|
106
|
+
# ### Ansi Colors
|
107
|
+
|
108
|
+
def set_ansi_black_color(color)
|
109
|
+
advanced_typing_apparatus.set_ansi_black_color(Wasko::Color.color_from_string(color).to_applescript)
|
110
|
+
end
|
111
|
+
|
112
|
+
def set_ansi_red_color(color)
|
113
|
+
advanced_typing_apparatus.set_ansi_red_color(Wasko::Color.color_from_string(color).to_applescript)
|
114
|
+
end
|
115
|
+
|
116
|
+
def set_ansi_green_color(color)
|
117
|
+
advanced_typing_apparatus.set_ansi_green_color(Wasko::Color.color_from_string(color).to_applescript)
|
118
|
+
end
|
119
|
+
|
120
|
+
def set_ansi_yellow_color(color)
|
121
|
+
advanced_typing_apparatus.set_ansi_yellow_color(Wasko::Color.color_from_string(color).to_applescript)
|
122
|
+
end
|
123
|
+
|
124
|
+
def set_ansi_blue_color(color)
|
125
|
+
advanced_typing_apparatus.set_ansi_blue_color(Wasko::Color.color_from_string(color).to_applescript)
|
126
|
+
end
|
127
|
+
|
128
|
+
def set_ansi_magenta_color(color)
|
129
|
+
advanced_typing_apparatus.set_ansi_magenta_color(Wasko::Color.color_from_string(color).to_applescript)
|
130
|
+
end
|
131
|
+
|
132
|
+
def set_ansi_cyan_color(color)
|
133
|
+
advanced_typing_apparatus.set_ansi_cyan_color(Wasko::Color.color_from_string(color).to_applescript)
|
134
|
+
end
|
135
|
+
|
136
|
+
def set_ansi_white_color(color)
|
137
|
+
advanced_typing_apparatus.set_ansi_white_color(Wasko::Color.color_from_string(color).to_applescript)
|
138
|
+
end
|
139
|
+
|
87
140
|
# ## Palette
|
88
141
|
#
|
89
142
|
# Returns a string representation of the current settings
|
@@ -105,6 +158,12 @@ module Wasko
|
|
105
158
|
set_foreground_color p.colors[:foreground].html
|
106
159
|
set_bold_color p.colors[:bold].html
|
107
160
|
set_cursor_color p.colors[:cursor].html
|
161
|
+
set_selected_text_color p.colors[:selected].html
|
162
|
+
set_selection_color p.colors[:selection].html
|
163
|
+
|
164
|
+
%w(black red green yellow blue magenta cyan white).each do |color|
|
165
|
+
eval "set_ansi_#{color}_color p.colors[:#{color}].html"
|
166
|
+
end
|
108
167
|
end
|
109
168
|
|
110
169
|
end
|
data/wasko.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{wasko}
|
8
|
-
s.version = "0.0
|
8
|
+
s.version = "0.1.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["pjaspers"]
|
12
|
-
s.date = %q{2011-
|
12
|
+
s.date = %q{2011-06-15}
|
13
13
|
s.default_executable = %q{wasko}
|
14
14
|
s.description = %q{Quick tool to set a color palette to your Terminal}
|
15
15
|
s.email = %q{piet@10to1.be}
|
@@ -38,6 +38,7 @@ Gem::Specification.new do |s|
|
|
38
38
|
"lib/wasko/applescript.rb",
|
39
39
|
"lib/wasko/color.rb",
|
40
40
|
"lib/wasko/configuration.rb",
|
41
|
+
"lib/wasko/iterm.rb",
|
41
42
|
"lib/wasko/palette.rb",
|
42
43
|
"lib/wasko/terminal.rb",
|
43
44
|
"sample_generator.rb",
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wasko
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
- 0
|
9
8
|
- 1
|
10
|
-
|
9
|
+
- 0
|
10
|
+
version: 0.1.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- pjaspers
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-06-15 00:00:00 +02:00
|
19
19
|
default_executable: wasko
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -221,6 +221,7 @@ files:
|
|
221
221
|
- lib/wasko/applescript.rb
|
222
222
|
- lib/wasko/color.rb
|
223
223
|
- lib/wasko/configuration.rb
|
224
|
+
- lib/wasko/iterm.rb
|
224
225
|
- lib/wasko/palette.rb
|
225
226
|
- lib/wasko/terminal.rb
|
226
227
|
- sample_generator.rb
|