howm
howm
|
Operations that are to be performed on clients, such as moving them around in the client list. More...
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
#include <xcb/xcb.h>
#include <xcb/xcb_ewmh.h>
#include <xcb/xcb_icccm.h>
#include "client.h"
#include "helper.h"
#include "howm.h"
#include "layout.h"
#include "scratchpad.h"
#include "workspace.h"
#include "xcb_help.h"
Functions | |
static void | move_down (client_t *c) |
Move a client down in its client list. More... | |
client_t * | prev_client (client_t *c, workspace_t *w) |
Find the client before the given client. More... | |
client_t * | next_client (client_t *c) |
Find the next client. More... | |
void | update_focused_client (client_t *c) |
Sets c to the active window and gives it input focus. Sorts out border colours as well. More... | |
int | get_non_tff_count (monitor_t *m) |
Count how many clients aren't Transient, Floating or Fullscreen. More... | |
client_t * | get_first_non_tff (monitor_t *m) |
Returns the first client that isn't transient, floating or fullscreen. More... | |
void | remove_client (monitor_t *m, workspace_t *w, client_t *c) |
Remove a client from its workspace client list. More... | |
void | move_up (client_t *c) |
Move a client up in its client list. More... | |
void | focus_next_client (void) |
brief Move focus onto the client next in the client list. More... | |
void | focus_prev_client (void) |
brief Move focus onto the client previous in the client list. More... | |
void | kill_client (monitor_t *m, workspace_t *w, client_t *c) |
Kill a client. More... | |
void | move_client (int cnt, bool up) |
Moves a client either upwards or down. More... | |
void | move_current_down (void) |
Moves the current client down. More... | |
void | move_current_up (void) |
Moves the current client up. More... | |
void | client_to_ws (client_t *c, workspace_t *ws, bool follow) |
Moves a client from one workspace to another. More... | |
void | draw_clients (void) |
Arrange the client's windows on the screen. More... | |
void | change_client_geom (client_t *c, uint16_t x, uint16_t y, uint16_t w, uint16_t h) |
Change the size and location of a client. More... | |
void | change_client_gaps (client_t *c, int size) |
A helper function to change the size of a client's gaps. More... | |
client_t * | create_client (xcb_window_t w) |
Convert a window into a client. More... | |
void | set_fullscreen (client_t *c, bool fscr) |
Set the fullscreen state of the client. Change its geometry and border widths. More... | |
void | set_urgent (client_t *c, bool urg) |
void | teleport_client (const int direction) |
Teleport a floating client's window to a location on the screen. More... | |
void | current_to_ws (workspace_t *ws) |
Moves the current client to the workspace passed in. More... | |
void | toggle_float (void) |
Toggle a client between being in a floating or non-floating state. More... | |
void | resize_float_width (const int dw) |
Change the width of a floating client. More... | |
void | resize_float_height (const int dh) |
Change the height of a floating client. More... | |
void | move_float_y (const int dy) |
Change a floating window's y coordinate. More... | |
void | move_float_x (const int dx) |
Change a floating window's x coordinate. More... | |
void | make_master (void) |
Moves the current window to the master window, when in stack mode. More... | |
void | toggle_fullscreen (void) |
Toggle the fullscreen state of the current client. More... | |
void | focus_urgent (void) |
Focus a client that has an urgent hint. More... | |
void | resize_master (const int ds) |
Resize the master window of a stack for the current workspace. More... | |
void | paste (void) |
Remove a list of clients from howm's delete register stack and paste them after the currently focused window. More... | |
void | toggle_bar (void) |
Toggle the space reserved for a status bar. More... | |
Operations that are to be performed on clients, such as moving them around in the client list.
void change_client_gaps | ( | client_t * | c, |
int | size | ||
) |
A helper function to change the size of a client's gaps.
c | The client who's gap size should be changed. |
size | The size by which the gap should be changed. |
void change_client_geom | ( | client_t * | c, |
uint16_t | x, | ||
uint16_t | y, | ||
uint16_t | w, | ||
uint16_t | h | ||
) |
Change the size and location of a client.
c | The client to be changed. |
x | The x coordinate of the client's window. |
y | The y coordinate of the client's window. |
w | The width of the client's window. |
h | The height of the client's window. |
void client_to_ws | ( | client_t * | c, |
workspace_t * | ws, | ||
bool | follow | ||
) |
Moves a client from one workspace to another.
c | The client to be moved. |
ws | The ws that the client should be moved to. |
follow | Should focus follow the client that has been moved? |
client_t* create_client | ( | xcb_window_t | w | ) |
Convert a window into a client.
w | A valid xcb window. |
void draw_clients | ( | void | ) |
Arrange the client's windows on the screen.
This function takes some strain off of the layout handlers by passing the client's dimensions to move_resize. This splits the layout handlers into smaller, more understandable parts.
Returns the first client that isn't transient, floating or fullscreen.
m | The monitor to be searched. |
int get_non_tff_count | ( | monitor_t * | m | ) |
Count how many clients aren't Transient, Floating or Fullscreen.
m | The monitor to be searched. |
void kill_client | ( | monitor_t * | m, |
workspace_t * | w, | ||
client_t * | c | ||
) |
Kill a client.
m | The monitor that the client to be killed is on. |
w | The workspace that the client to be killed is on. |
c | The client to be killed. |
void move_client | ( | int | cnt, |
bool | up | ||
) |
Moves a client either upwards or down.
Moves a single client or multiple clients either up or down. The op_move_* functions serves as simple wrappers to this.
cnt | How many clients to move. |
up | Whether to move the clients up or down. True is up. |
|
static |
Move a client down in its client list.
c | The client to be moved. |
void move_up | ( | client_t * | c | ) |
Move a client up in its client list.
c | The client to be moved down. |
Find the next client.
Note: This function wraps around the end of the list of clients. If c is the last item in the list of clients, then the head of the list is returned.
c | The client which needs to have its next found. |
client_t* prev_client | ( | client_t * | c, |
workspace_t * | w | ||
) |
Find the client before the given client.
c | The client which needs to have its previous found. |
w | The workspace that the client is on. |
void remove_client | ( | monitor_t * | m, |
workspace_t * | w, | ||
client_t * | c | ||
) |
Remove a client from its workspace client list.
m | The monitor that the client to be removed is on. |
w | The workspace that the client to be removed is on. |
c | The client to be removed. |
void set_fullscreen | ( | client_t * | c, |
bool | fscr | ||
) |
Set the fullscreen state of the client. Change its geometry and border widths.
c | The client which should have its fullscreen state altered. |
fscr | The fullscreen state that the client should be changed to. |
void set_urgent | ( | client_t * | c, |
bool | urg | ||
) |
void update_focused_client | ( | client_t * | c | ) |
Sets c to the active window and gives it input focus. Sorts out border colours as well.
WARNING: Do NOT use this to focus a client on another workspace. Instead, set ws->c to the client that you want focused.
c | The client that is currently in focus. |