30 lines
820 B
Ruby
30 lines
820 B
Ruby
def handle_command(command)
|
|
reply = {}
|
|
|
|
command_parts = command.split(" ")
|
|
command = command_parts[0]
|
|
args = command_parts[1..-1]
|
|
|
|
case command
|
|
when "get-ws"
|
|
monitor = args[0] ? $monitors[args[0].to_sym] : current_monitor
|
|
return reply if monitor.nil?
|
|
reply[:workspace] = monitor[:selected_workspace]
|
|
reply[:monitor] = $monitors.key(monitor)
|
|
reply[:count] = monitor[:workspaces].length
|
|
when "set-ws"
|
|
monitor = args[1] ? $monitors[args[1].to_sym] : current_monitor
|
|
return reply if monitor.nil?
|
|
select_workspace args[0].to_i, monitor
|
|
reply[:workspace] = monitor[:selected_workspace]
|
|
reply[:monitor] = $monitors.key(monitor)
|
|
reply[:count] = monitor[:workspaces].length
|
|
when "topped"
|
|
reply[:topped] = $topped_windows
|
|
when "stop"
|
|
exit 1
|
|
end
|
|
|
|
reply
|
|
end
|