Class: Wmctile::Window
Instance Attribute Summary collapse
-
#id ⇒ Object
Returns the value of attribute id.
-
#name ⇒ Object
Returns the value of attribute name.
-
#title ⇒ Object
Returns the value of attribute title.
Instance Method Summary collapse
- #dmenu_item ⇒ Object
- #get_name ⇒ Object
- #get_name_and_title(win_string) ⇒ Object
- #get_name_length ⇒ Object
-
#initialize(win_string, settings) ⇒ Window
constructor
A new instance of Window.
- #maximize ⇒ Object
- #move(how_to_move = {}) ⇒ Object
- #set_name_length(name_length) ⇒ Object
- #shade ⇒ Object
- #summon ⇒ Object
- #switch_to ⇒ Object
- #unmaximize ⇒ Object
- #unshade ⇒ Object
- #wmctrl(wm_cmd = '', summon = false) ⇒ Object
Methods inherited from Class
Constructor Details
#initialize(win_string, settings) ⇒ Window
Returns a new instance of Window.
4 5 6 7 8 9 |
# File 'lib/wmctile/window.rb', line 4 def initialize win_string, settings @default_movement = { :x => 0, :y => 0, :width => '-1', :height => '-1' } @settings = settings @id = win_string[/0x[\d\w]{8}/] self.get_name_and_title win_string end |
Instance Attribute Details
#id ⇒ Object
Returns the value of attribute id.
2 3 4 |
# File 'lib/wmctile/window.rb', line 2 def id @id end |
#name ⇒ Object
Returns the value of attribute name.
2 3 4 |
# File 'lib/wmctile/window.rb', line 2 def name @name end |
#title ⇒ Object
Returns the value of attribute title.
2 3 4 |
# File 'lib/wmctile/window.rb', line 2 def title @title end |
Instance Method Details
#dmenu_item ⇒ Object
20 21 22 23 24 25 26 |
# File 'lib/wmctile/window.rb', line 20 def unless @dmenu_item str = "#{ @id } #{ @name } #{ @title }" @dmenu_item = Dmenu::Item.new str, self end @dmenu_item end |
#get_name ⇒ Object
27 28 29 30 31 32 |
# File 'lib/wmctile/window.rb', line 27 def get_name if @name == '' self.get_name_and_title self.cmd('wmctrl -lx | grep ' + @id) end @name end |
#get_name_and_title(win_string) ⇒ Object
10 11 12 13 14 15 16 17 18 19 |
# File 'lib/wmctile/window.rb', line 10 def get_name_and_title win_string if win_string == @id @name = '' @title = '' else after_id_and_workspace = win_string[14..-1].split(/\s+#{ @settings.hostname }\s+/, 2) @name = after_id_and_workspace[0] @title = after_id_and_workspace[1] end end |
#get_name_length ⇒ Object
33 34 35 |
# File 'lib/wmctile/window.rb', line 33 def get_name_length @name.length end |
#maximize ⇒ Object
63 64 65 |
# File 'lib/wmctile/window.rb', line 63 def maximize self.wmctrl '-b add,maximized_vert,maximized_horz' end |
#move(how_to_move = {}) ⇒ Object
43 44 45 46 47 48 49 |
# File 'lib/wmctile/window.rb', line 43 def move how_to_move = {} how_to_move = @default_movement.merge! how_to_move cmd = "-e 0,#{ how_to_move[:x].to_i },#{ how_to_move[:y].to_i },#{ how_to_move[:width].to_i },#{ how_to_move[:height].to_i }" self.unshade self.unmaximize self.wmctrl cmd end |
#set_name_length(name_length) ⇒ Object
36 37 38 |
# File 'lib/wmctile/window.rb', line 36 def set_name_length name_length @name += ' '*(name_length - @name.length) end |
#shade ⇒ Object
50 51 52 |
# File 'lib/wmctile/window.rb', line 50 def shade self.wmctrl '-b add,shaded' end |
#summon ⇒ Object
56 57 58 |
# File 'lib/wmctile/window.rb', line 56 def summon self.wmctrl '', true end |
#switch_to ⇒ Object
59 60 61 62 |
# File 'lib/wmctile/window.rb', line 59 def switch_to self.cmd "wmctrl -ia #{ @id }" return self end |
#unmaximize ⇒ Object
66 67 68 |
# File 'lib/wmctile/window.rb', line 66 def unmaximize self.wmctrl '-b remove,maximized_vert,maximized_horz' end |
#unshade ⇒ Object
53 54 55 |
# File 'lib/wmctile/window.rb', line 53 def unshade self.wmctrl '-b remove,shaded' end |
#wmctrl(wm_cmd = '', summon = false) ⇒ Object
39 40 41 42 |
# File 'lib/wmctile/window.rb', line 39 def wmctrl wm_cmd = '', summon = false self.cmd "wmctrl -i#{ summon ? 'R' : 'r' } #{ @id } #{ wm_cmd }" return self # return self so that commands can be chained end |