commit c281cc6673aadb8152b2540dd22df9780218cfd8
parent 37cd7d6b20dd350ee2eee85d9d6c55eef724ba68
Author: Suraj N. Kurapati <sunaku@gmail.com>
Date: Thu, 31 Aug 2006 08:50:11 -0700
[project @ 93104cd1545aea93cfe60fd39cf840f24ca0d440]
[project @ 26]
add "#{SEND}Shift-t" which sends to temporary view or switches back again
Diffstat:
| wmiirc | | | 84 | +++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------- |
1 file changed, 57 insertions(+), 27 deletions(-)
diff --git a/wmiirc b/wmiirc
@@ -95,37 +95,42 @@ PROGRAM="#{FOCUS}"
GROUP="#{FOCUS}g,"
SHORTCUTS = {
- "#{FOCUS}#{LEFT}" => lambda do
- WM.write '/view/ctl', 'select prev'
+ # focus previous view
+ "#{FOCUS}comma" => lambda do
+ WM.cycle_view :left
end,
- "#{FOCUS}#{RIGHT}" => lambda do
- WM.write '/view/ctl', 'select next'
+ # focus next view
+ "#{FOCUS}period" => lambda do
+ WM.cycle_view :right
end,
- "#{FOCUS}#{DOWN}" => lambda do
- WM.write '/view/sel/ctl', 'select next'
+ # focus previous area
+ "#{FOCUS}#{LEFT}" => lambda do
+ WM.write '/view/ctl', 'select prev'
end,
- "#{FOCUS}#{UP}" => lambda do
- WM.write '/view/sel/ctl', 'select prev'
+ # focus next area
+ "#{FOCUS}#{RIGHT}" => lambda do
+ WM.write '/view/ctl', 'select next'
end,
+ # focus floating area
"#{FOCUS}space" => lambda do
WM.write '/view/ctl', 'select toggle'
end,
-
- "#{FOCUS}comma" => lambda do
- WM.cycle_view :left
+ # focus previous client
+ "#{FOCUS}#{UP}" => lambda do
+ WM.write '/view/sel/ctl', 'select prev'
end,
- "#{FOCUS}period" => lambda do
- WM.cycle_view :right
+ # focus next client
+ "#{FOCUS}#{DOWN}" => lambda do
+ WM.write '/view/sel/ctl', 'select next'
end,
-
"#{LAYOUT}w" => lambda do
WM.write '/view/sel/mode', 'default'
end,
@@ -169,7 +174,6 @@ SHORTCUTS = {
end,
-
"#{MENU}i" => lambda do
action = WM.show_menu(ACTION_MENU)
system(action << '&') unless action.empty?
@@ -186,16 +190,10 @@ SHORTCUTS = {
# focus any client by choosing from a menu
"#{MENU}a" => lambda do
- # prepare a list of menu choices
- choices = WM.read('/client').split.inject([]) do |acc, id|
- tags = WM.read("/client/#{id}/tags")
- name = WM.read("/client/#{id}/name").downcase
-
- acc << format("%d. [%s] %s", id, tags, name)
+ choices = WM.clients.map do |c|
+ format "%d. [%s] %s", c.index, c.tags, c.name.downcase
end
-
- # show the menu and focus the chosen client
target = WM.show_menu(choices.join("\n"))
unless target.empty?
@@ -256,6 +254,32 @@ SHORTCUTS = {
end
end,
+ # send to temporary view or switch back again
+ "#{SEND}Shift-t" => lambda do
+ curView = WM.current_view.name
+
+ if curView =~ /~\d+$/
+ WM.selected_clients.each do |c|
+ c.with_tags do
+ delete curView
+ end
+ end
+
+ WM.focus_view $`
+ else
+ tmpView = "#{curView}~#{Time.now.to_i}"
+
+ WM.selected_clients.each do |c|
+ c.with_tags do
+ push tmpView
+ end
+ end
+
+ WM.focus_view tmpView
+ WM.apply_grid_layout
+ end
+ end,
+
"#{SEND}d" => lambda do
# WM.with_selection do
WM.detach_current_client
@@ -286,11 +310,13 @@ SHORTCUTS = {
k = (i - 1) % 10 # associate '1' with the leftmost label, instead of '0'
SHORTCUTS["#{FOCUS}#{i}"] = lambda do
- WM.focus_view(WM.read('/tags').split[k] || i)
+ WM.focus_view(WM.tags[k] || i)
end
SHORTCUTS["#{SEND}#{i}"] = lambda do
- WM.write '/view/sel/sel/tags', (WM.read('/tags').split[k] || i)
+ WM.selected_clients.each do |c|
+ c.tags = (WM.tags[k] || i)
+ end
end
SHORTCUTS["#{LAYOUT}#{i}"] = lambda do
@@ -347,8 +373,12 @@ WM.config.keys = SHORTCUTS.keys.join("\n")
status.colors = ENV['WMII_NORMCOLORS']
loop do
- status.data = Time.now.to_s << " " << `uptime`.scan(/\d+\.\d+/).join(' ')
- sleep 5
+ uptime = `uptime`.scan(/\d+\.\d+/).join(' ')
+
+ 5.times do
+ status.data = "#{Time.now.to_s} | #{uptime}"
+ sleep 2
+ end
end
end