26 lines
853 B
Ruby
26 lines
853 B
Ruby
def create_workspace(monitor)
|
|
monitor[:workspaces] << Workspace.new($monitors.key(monitor))
|
|
monitor[:selected_workspace] = monitor[:workspaces].length - 1
|
|
end
|
|
|
|
def delete_workspace(n, monitor)
|
|
return if monitor[:workspaces].length <= 2
|
|
monitor[:workspaces][n].windows.each { |w| monitor[:workspaces][(n - 1) % monitor[:workspaces].length].drop 0, w }
|
|
monitor[:workspaces].delete_at n
|
|
if monitor[:selected_workspace] >= n
|
|
monitor[:selected_workspace] -= 1
|
|
end
|
|
end
|
|
|
|
def select_workspace(n, monitor)
|
|
if n >= monitor[:workspaces].length
|
|
select_workspace monitor[:workspaces].length - 1, monitor
|
|
elsif n < 0
|
|
select_workspace 1, monitor
|
|
end
|
|
monitor[:workspaces].each { |w| w.hide if w != monitor[:workspaces][n] }
|
|
monitor[:selected_workspace] = n
|
|
monitor[:workspaces][n].show
|
|
monitor[:workspaces][n].compute_tiled!
|
|
end
|