Class: Roebe::KeysGenerator
- Inherits:
-
Base
show all
- Defined in:
- lib/roebe/classes/keys_generator/keys_generator.rb,
lib/roebe/classes/keys_generator/constants.rb
Overview
Constant Summary
collapse
- N =
"\n"
- USER_HOME_DIR =
ENV['HOME'].to_s+'/'
- LINUX_DIR =
ENV['LINUX'].to_s+'/'
- LINUX_YAML =
ENV['LINUX_YAML'].to_s+'/'
- USER_HOME_DIR_ICEWM =
USER_HOME_DIR+'.icewm/'
- MAINTAINER_INFORMATION =
#
MAINTAINER_INFORMATION
#
'shevy'
- FLUXBOX_KEYS_FILE =
#
FLUXBOX_KEYS_FILE = ENV‘/.fluxbox/keys’ FLUXBOX_KEYS_FILE = LINUX_DIR‘FLUXBOX/keys’
#
[
LINUX_DIR+'FLUXBOX/autogenerated/keys',
USER_HOME_DIR+'.fluxbox/keys'
]
- ICEWM_KEYS_FILE =
USER_HOME_DIR_ICEWM+'keys'
- FVWM_KEYS_FILE =
USER_HOME_DIR+'fvwm_keys'
- OPENBOX_KEYS_FILE =
USER_HOME_DIR+'openbox_keys'
'# ======================================================================== #'
STD_COMMENT+N
Constants inherited
from Base
Base::COLOURS, Base::HOME_DIRECTORY_OF_USER_X, Base::NAMESPACE
Class Method Summary
collapse
-
.[](i = '') ⇒ Object
# === [] ========================================================================= #.
Instance Method Summary
collapse
Methods inherited from Base
#actions, #append_this_onto_that_file, #append_what_into, #be_silent, #be_verbose?, #beautiful_url, #burlywood, #call_next, #chdir, #cheerful_guy, #cliner, #complex_esystem, #convert_global_env, #copy_directory, #copy_file, #cornflowerblue, #create_directory, #crimson, #current_month?, #current_time?, #current_year?, #cyan, #darkcyan, #darkgreen, #darkkhaki, #darkslateblue, #deeppink, #delete_symlink, #do_not_use_the_base_colours, #do_use_the_base_colours, #e, #ecomment, #editor_to_use?, #efancy, #eimp, #emphasis, #ensure_main_encoding, #ensure_utf_encoding, #eparse, #erev, #esteelblue, #etomato, #ewarn, #exit_program, #firebrick, #get_current_day, #get_current_month, #get_files_and_directories, #get_files_from, #get_german_name_for_this_weekday, #gold, #green, #grey, #hh_mm_ss, #hh_mm_ss_day_month_year, #home_dir?, #home_directory_of_user_x?, #infer_the_namespace, #internal_hash?, #is_a_directory?, #is_a_file?, #is_a_jpg_file?, #is_an_image_file?, #is_archive?, #is_audio_file?, #is_in_studium_dir?, #is_multimedia_file?, #is_on_roebe?, #is_on_windows?, #is_studium_available?, #is_symlink?, #is_this_a_ruby_file?, #is_video_file?, #iso_encoding?, #le, #left_colour, #lightblue, #lightgreen, #lightseagreen, #lightsteelblue, #lime, #limegreen, #localhost_to_data, #log_directory?, #main_encoding?, #mediumorchid, #mediumpurple, #mediumseagreen, #mediumslateblue, #mediumspringgreen, #mediumturquoise, #mkdir_p, #mv, #n_days_in_this_month, #n_pages_in_this_pdf_file?, #namespace?, #no_file_exists_at, #ogrey, #olive, #olivedrab, #open_in_browser, #opne, #opnesystem, #opnn, #orange, #orchid, #orev, #palegoldenrod, #palevioletred, #pink, #powderblue, #programs_dir?, #project_base_dir?, #random_html_colour, #rds, #read_file_in_iso_encoding, #read_file_via_the_default_encoding, #read_lines_via_iso_encoding, #readlines_with_main_encoding, #red, #register_sigint, #remove, #remove_directory, #remove_file, #rename_kde_konsole_tab, #replace_localhost_with_data, #report_pwd, #require_rescue, #reset_the_internal_hash, #return_all_directories_from_this_directory, #return_all_files_from_this_directory, #return_current_directory, #return_dd_mm_yyyy, #return_file_or_directory_of, #return_files_from_pwd, #return_last_part_of_the_current_directory, #return_utc, #rev, #right_arrow?, #right_colour, #roebe_log_directory?, #rosybrown, #royalblue, #ruby_base_directory?, #run_in_background, #run_rcfiles_then_run_ata_via_qdbus, #sandybrown, #sdir, #seagreen, #set_be_verbose, #set_xorg_buffer, #sfancy, #sfile, #show_help, #silent_redirection?, #simp, #simple_esystem, #skyblue, #slateblue, #slategray, #springgreen, #steelblue, #string_italic, #swarn, #symlink, #teal, #temp_dir?, #to_camelcase, #to_counted_hash, #tomato, #touch, #try_to_require_the_beautiful_url_gem, #try_to_require_the_html_template, #try_to_require_the_open_gem, #try_to_require_the_program_information_gem, #try_to_require_the_xorg_buffer, #use_colours?, #verbose_truth, #weekday?, #word_wrap, #write_what_into, #yellow
#append_onto_the_commandline_arguments, #clear_commandline_arguments, #commandline_arguments?, #commandline_arguments_as_string?, #commandline_arguments_without_leading_hyphens?, #first_argument?, #first_argument_without_leading_hyphens?, #has_an_argument_been_passed?, #remove_hyphened_arguments_from_the_commandline_arguments, #return_commandline_arguments_with_leading_hyphens, #second_argument?, #set_commandline_arguments
Constructor Details
#initialize(i = nil, run_already = true) ⇒ KeysGenerator
25
26
27
28
29
30
31
32
|
# File 'lib/roebe/classes/keys_generator/keys_generator.rb', line 25
def initialize(
i = nil,
run_already = true
)
reset
set_input(i)
run if run_already
end
|
Class Method Details
.[](i = '') ⇒ Object
320
321
322
|
# File 'lib/roebe/classes/keys_generator/keys_generator.rb', line 320
def self.[](i = '')
new(i)
end
|
Instance Method Details
#create_key_file(i) ⇒ Object
#
create_key_file
Create the individual key files here.
#
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
|
# File 'lib/roebe/classes/keys_generator/keys_generator.rb', line 160
def create_key_file(i)
opn; e 'Now creating keys file for `'+simp(i)+'`.'
flag_for_strg, flag_for_win = true, true
case i
when :fluxbox
generate_fluxbox_keys_file(flag_for_strg, flag_for_win)
when :icewm
delete(ICEWM_KEYS_FILE)
mkdir USER_HOME_DIR_ICEWM
(ICEWM_KEYS_FILE)
@dataset.each { |key, value|
_ = 'key "'
begin
key = key.to_s.capitalize
rescue ArgumentError; end _ << key.to_s+'" '+value.to_s
append_what_into(_, ICEWM_KEYS_FILE)
}
append_what_into(N,ICEWM_KEYS_FILE)
opn; e sfile(ICEWM_KEYS_FILE)+' created.'
when :openbox
delete(OPENBOX_KEYS_FILE)
(OPENBOX_KEYS_FILE)
dataset?.each { |key, value|
key = key.to_s.dup
key = key.force_encoding("ASCII-8BIT")
key.gsub!(/\+/,'-')
append_what_into('
<keybind key="'+key+'">
<action name="'+value.to_s+'"/>
</keybind>"',OPENBOX_KEYS_FILE)
}
append_what_into(N,OPENBOX_KEYS_FILE)
opn; e sfile(OPENBOX_KEYS_FILE)+' created.'
end
end
|
#create_keys_file(which_one = :all) ⇒ Object
#
create_keys_file
Generate our various keyfiles here.
#
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
# File 'lib/roebe/classes/keys_generator/keys_generator.rb', line 47
def create_keys_file(which_one = :all)
case which_one
when :fluxbox
create_key_file(:fluxbox)
when :all
create_key_file(:fluxbox)
create_key_file(:icewm)
create_key_file(:openbox)
when :icewm
create_key_file(:icem)
when :openbox
create_key_file(:openbox)
end
end
|
#dataset? ⇒ Boolean
257
258
259
|
# File 'lib/roebe/classes/keys_generator/keys_generator.rb', line 257
def dataset?
@dataset
end
|
#delete(i) ⇒ Object
212
213
214
215
216
217
218
|
# File 'lib/roebe/classes/keys_generator/keys_generator.rb', line 212
def delete(i)
if i.is_a? Array
i.each {|entry| delete(entry) }
else
FileUtils.rm(i) if File.exist?(i)
end
end
|
#generate_fluxbox_keys_file(flag_for_strg = false, flag_for_win = false) ⇒ Object
#
generate_fluxbox_keys_file
#
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
|
# File 'lib/roebe/classes/keys_generator/keys_generator.rb', line 65
def generate_fluxbox_keys_file(flag_for_strg = false, flag_for_win = false)
_ = FLUXBOX_KEYS_FILE _ = [_] unless _.is_a? Array
_.each {|file|
delete(file)
(file)
_ = 'OnDesktop Mouse1 :HideMenus
OnDesktop Mouse2 :WorkspaceMenu
OnDesktop Mouse3 :RootMenu
OnDesktop Mouse4 :NextWorkspace
OnDesktop Mouse5 :PrevWorkspace'
append_what_into(_+N, file)
dataset?.each { |key, value|
if value.is_a? Symbol
value = ':'+value.to_s
else
value = value.to_s
end
unless key.valid_encoding? key = key.to_s.dup
key = key.force_encoding('ASCII-8BIT')
end
if key.count('+') == 1 if key.include? 'alt+'
key = key.gsub(/alt\+/,'Mod1 ')
real_key = key.split(' ')[1]
append_what_into(
key+' :ExecCommand '+value+' # ALT+'+real_key+' to start '+value+N,
file)
elsif key.include? 'strg+' key = key.gsub(/strg\+/,'Control ')
real_key = key.split(' ')[1]
if flag_for_strg
append_what_into(N+N, file)
append_what_into(STD_COMMENT+N, file)
append_what_into('# Control key, also known as STRG key'+N,
file)
append_what_into(STD_COMMENT+N, file)
flag_for_strg = false
end
append_what_into(
key+' :ExecCommand '+value+' # STRG+'+real_key+
' to start (STRG is also known as the Control key) '+value+N,
file)
elsif key.include? 'win+' key = key.gsub(/win\+/,'Mod4 ')
real_key = key.split(' ')[1]
if flag_for_win
append_what_into(N+N,file)
append_what_into(STD_COMMENT+N,file)
append_what_into('# Mod4 aka Windows-key section '+N,file)
append_what_into(STD_COMMENT+N,file)
flag_for_win = false
end
padding_value = 45
if value.start_with? ':'
padded = (key+' '+value).ljust(padding_value)
append_what_into(
padded+' # WIN+'+real_key+' to '+value+N,file)
else padded = (key+' :ExecCommand '+value).ljust(padding_value) append_what_into(
padded+' # WIN+'+real_key+' to start: '+value+N, file)
end
end
elsif key.count('+') > 1 key = replace_keywords(key)
append_what_into(
key.capitalize+' :ExecCommand '+value+' # '+N, file)
else key = replace_keywords(key)
append_what_into(key+' :ExecCommand '+value+' # '+N, file)
end
}
append_what_into(N, file)
opn; e '`'+sfile(file)+'` created.'
}
end
|
This method generates the header.
#
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
|
# File 'lib/roebe/classes/keys_generator/keys_generator.rb', line 281
def (which_file)
if which_file.is_a? Array
which_file.each {|entry| (entry) }
else
if false
_ = "#{STD_COMMENT}
# Have Fun With Fluxbox (Autogenerated file from #{File.basename(__FILE__)})
#{STD_COMMENT_N}"
_ << "
#{STD_COMMENT}
# file : #{FLUXBOX_KEYS_FILE}
# about : Fluxbox key bindings
# author : "+MAINTAINER_INFORMATION+N+STD_COMMENT_N
append_what_into( _+N,which_file)
end
append_what_into(
STD_COMMENT_N+
'# This is a header file for '+
File.basename(which_file.to_s)+N+
'# It contains several key entries.'+N+
STD_COMMENT_N,which_file)
end
end
|
232
233
234
|
# File 'lib/roebe/classes/keys_generator/keys_generator.rb', line 232
def input?
@input
end
|
#load_yaml_dataset ⇒ Object
#
load_yaml_dataset
Loads our yaml dataset and prepares it as well.
The keys file can be found here:
bl $LINUX/YAML/keys.yml
#
244
245
246
247
248
249
250
251
252
|
# File 'lib/roebe/classes/keys_generator/keys_generator.rb', line 244
def load_yaml_dataset
keys_file = LINUX_YAML+'keys.yml'
@dataset = YAML.load_file(keys_file)
@dataset = @dataset.sort { |a, b|
l = a[0].length <=> b[0].length
l == 0 ? a <=> b : l
}
end
|
#replace_keywords(i) ⇒ Object
#
replace_keywords
Replaces various keywords.
#
266
267
268
269
270
271
272
273
274
275
|
# File 'lib/roebe/classes/keys_generator/keys_generator.rb', line 266
def replace_keywords(i)
i = i.dup
i[0,1] = 'F' if i =~ /f\d+/ i.gsub!(/alt\+/, 'Mod1 ')
i.gsub!(/win\+/, 'Mod4 ')
i.gsub!(/strg\+/, 'Control ')
i.gsub!(/num7/, 'KP_Home4 ')
i.gsub!(/num8/, 'KP_Up ')
return i
end
|
37
38
39
40
|
# File 'lib/roebe/classes/keys_generator/keys_generator.rb', line 37
def reset
super()
infer_the_namespace
end
|
312
313
314
315
|
# File 'lib/roebe/classes/keys_generator/keys_generator.rb', line 312
def run
load_yaml_dataset
create_keys_file(:all)
end
|
223
224
225
226
227
|
# File 'lib/roebe/classes/keys_generator/keys_generator.rb', line 223
def set_input(i = '')
i = i.first if i.is_a? Array
i = i.to_s.dup
@input = i
end
|