2021-11-13 16:31:28 +00:00
|
|
|
#include "settings.h"
|
|
|
|
|
2021-11-18 15:37:49 +00:00
|
|
|
#include "constraints.h"
|
2021-11-15 05:50:02 +00:00
|
|
|
|
2021-11-19 19:48:55 +00:00
|
|
|
static bool bar_on_top_by_default = true;
|
2021-11-18 14:53:22 +00:00
|
|
|
static SettingsForSingleWindow border_for_single_window = SETTINGS_FOR_SINGLE_WINDOW_NOBODY_IS_FULLSCREEN;
|
2021-11-15 04:05:57 +00:00
|
|
|
static int border_width = 2;
|
2021-11-13 21:42:58 +00:00
|
|
|
static int default_clients_in_master = 1;
|
2021-11-18 15:00:13 +00:00
|
|
|
static float default_master_area_factor = 0.6;
|
2021-11-16 02:12:27 +00:00
|
|
|
static SettingsForSingleWindow gap_for_single_window = SETTINGS_FOR_SINGLE_WINDOW_NOBODY_IS_FULLSCREEN;
|
2021-11-15 23:38:42 +00:00
|
|
|
static bool enable_swallowing = true;
|
2021-11-13 16:31:28 +00:00
|
|
|
static bool focus_on_wheel = true;
|
2021-11-15 02:31:24 +00:00
|
|
|
static int gap_size = 10;
|
2021-11-18 18:31:30 +00:00
|
|
|
static UnitKind master_area_factor_per_unit = UNIT_MONITOR;
|
2021-11-13 21:03:13 +00:00
|
|
|
static int max_clients_in_master = 0; // 0 for no maximum
|
2021-11-13 18:01:10 +00:00
|
|
|
static bool respect_resize_hints_in_floating_layout = false;
|
2021-11-16 16:28:49 +00:00
|
|
|
static bool show_bar_by_default = true;
|
2021-11-18 18:31:30 +00:00
|
|
|
static UnitKind show_bar_per_unit = UNIT_MONITOR;
|
2021-11-13 18:32:57 +00:00
|
|
|
static unsigned int snap_distance = 32;
|
2021-11-15 23:38:42 +00:00
|
|
|
static bool swallow_floating = false;
|
2021-11-13 16:31:28 +00:00
|
|
|
|
2021-11-19 19:48:55 +00:00
|
|
|
bool settings_get_bar_on_top_by_default()
|
|
|
|
{
|
|
|
|
return bar_on_top_by_default;
|
|
|
|
}
|
|
|
|
|
|
|
|
void settings_set_bar_on_top_by_default(bool new_bar_on_top_by_default)
|
|
|
|
{
|
|
|
|
bar_on_top_by_default = new_bar_on_top_by_default;
|
|
|
|
}
|
|
|
|
|
2021-11-18 14:53:22 +00:00
|
|
|
SettingsForSingleWindow settings_get_border_for_single_window()
|
|
|
|
{
|
|
|
|
return border_for_single_window;
|
|
|
|
}
|
|
|
|
|
|
|
|
void settings_set_border_for_single_window(const SettingsForSingleWindow new_border_for_single_window)
|
|
|
|
{
|
|
|
|
border_for_single_window = new_border_for_single_window;
|
|
|
|
// TODO: notify WM to rearrange clients
|
|
|
|
}
|
|
|
|
|
2021-11-15 05:50:02 +00:00
|
|
|
int settings_get_border_width()
|
2021-11-15 04:05:57 +00:00
|
|
|
{
|
|
|
|
return border_width;
|
|
|
|
}
|
|
|
|
|
2021-11-18 15:37:49 +00:00
|
|
|
void settings_set_border_width(const int new_border_width)
|
2021-11-15 04:05:57 +00:00
|
|
|
{
|
2021-11-18 15:37:49 +00:00
|
|
|
border_width = constraints_border_width(new_border_width);
|
2021-11-15 04:05:57 +00:00
|
|
|
// TODO: notify WM to rearrange clients
|
|
|
|
}
|
|
|
|
|
2021-11-13 21:42:58 +00:00
|
|
|
int settings_get_default_clients_in_master()
|
|
|
|
{
|
2021-11-15 05:50:02 +00:00
|
|
|
return default_clients_in_master;
|
2021-11-13 21:42:58 +00:00
|
|
|
}
|
|
|
|
|
2021-11-18 15:37:49 +00:00
|
|
|
void settings_set_default_clients_in_master(const int new_default_clients_in_master)
|
2021-11-13 21:42:58 +00:00
|
|
|
{
|
2021-11-18 15:37:49 +00:00
|
|
|
default_clients_in_master = constraints_default_clients_in_master(new_default_clients_in_master);
|
2021-11-13 21:42:58 +00:00
|
|
|
}
|
|
|
|
|
2021-11-18 15:00:13 +00:00
|
|
|
float settings_get_default_master_area_factor()
|
|
|
|
{
|
|
|
|
return default_master_area_factor;
|
|
|
|
}
|
|
|
|
|
2021-11-18 15:37:49 +00:00
|
|
|
void settings_set_default_master_area_factor(const float new_default_master_area_factor)
|
2021-11-18 15:00:13 +00:00
|
|
|
{
|
2021-11-18 15:37:49 +00:00
|
|
|
default_master_area_factor = constraints_default_master_area_factor(new_default_master_area_factor);
|
2021-11-18 15:00:13 +00:00
|
|
|
}
|
|
|
|
|
2021-11-16 01:05:22 +00:00
|
|
|
SettingsForSingleWindow settings_get_gap_for_single_window()
|
2021-11-15 03:55:39 +00:00
|
|
|
{
|
2021-11-16 01:05:22 +00:00
|
|
|
return gap_for_single_window;
|
2021-11-15 03:55:39 +00:00
|
|
|
}
|
|
|
|
|
2021-11-16 01:05:22 +00:00
|
|
|
void settings_set_gap_for_single_window(const SettingsForSingleWindow new_gap_for_single_window)
|
2021-11-15 03:55:39 +00:00
|
|
|
{
|
2021-11-16 01:05:22 +00:00
|
|
|
gap_for_single_window = new_gap_for_single_window;
|
2021-11-15 03:55:39 +00:00
|
|
|
// TODO: notify WM to rearrange clients
|
|
|
|
}
|
|
|
|
|
2021-11-15 23:38:42 +00:00
|
|
|
bool settings_get_enable_swallowing()
|
|
|
|
{
|
|
|
|
return enable_swallowing;
|
|
|
|
}
|
|
|
|
|
|
|
|
void settings_set_enable_swallowing(const bool new_enable_swallowing)
|
|
|
|
{
|
|
|
|
enable_swallowing = new_enable_swallowing;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2021-11-13 16:31:28 +00:00
|
|
|
bool settings_get_focus_on_wheel()
|
|
|
|
{
|
|
|
|
return focus_on_wheel;
|
|
|
|
}
|
|
|
|
|
|
|
|
void settings_set_focus_on_wheel(const bool new_focus_on_wheel)
|
|
|
|
{
|
|
|
|
focus_on_wheel = new_focus_on_wheel;
|
|
|
|
}
|
2021-11-13 18:01:10 +00:00
|
|
|
|
2021-11-15 02:31:24 +00:00
|
|
|
int settings_get_gap_size()
|
|
|
|
{
|
|
|
|
return gap_size;
|
|
|
|
}
|
|
|
|
|
2021-11-18 15:37:49 +00:00
|
|
|
void settings_set_gap_size(const int new_gap_size)
|
2021-11-15 02:31:24 +00:00
|
|
|
{
|
2021-11-18 15:37:49 +00:00
|
|
|
gap_size = constraints_gap_size(new_gap_size);
|
2021-11-15 02:31:24 +00:00
|
|
|
// TODO: notify WM to rearrange clients
|
|
|
|
}
|
|
|
|
|
2021-11-18 18:40:08 +00:00
|
|
|
UnitKind settings_get_master_area_factor_per_unit()
|
2021-11-18 15:09:52 +00:00
|
|
|
{
|
|
|
|
return master_area_factor_per_unit;
|
|
|
|
}
|
|
|
|
|
|
|
|
void settings_set_master_area_factor_per_unit(const UnitKind new_master_area_factor_per_unit)
|
|
|
|
{
|
|
|
|
master_area_factor_per_unit = new_master_area_factor_per_unit;
|
|
|
|
// TODO: notify WM to rearrange clients
|
|
|
|
}
|
|
|
|
|
2021-11-13 20:58:10 +00:00
|
|
|
int settings_get_max_clients_in_master()
|
|
|
|
{
|
2021-11-15 05:50:02 +00:00
|
|
|
return max_clients_in_master;
|
2021-11-13 20:58:10 +00:00
|
|
|
}
|
|
|
|
|
2021-11-18 15:37:49 +00:00
|
|
|
void settings_set_max_clients_in_master(const int new_max_clients_in_master)
|
2021-11-13 20:58:10 +00:00
|
|
|
{
|
2021-11-18 15:37:49 +00:00
|
|
|
max_clients_in_master = constraints_max_clients_in_master(new_max_clients_in_master);
|
2021-11-15 02:31:24 +00:00
|
|
|
// TODO: notify WM to rearrange clients
|
2021-11-13 20:58:10 +00:00
|
|
|
}
|
|
|
|
|
2021-11-13 18:01:10 +00:00
|
|
|
bool settings_get_respect_resize_hints_in_floating_layout()
|
|
|
|
{
|
|
|
|
return respect_resize_hints_in_floating_layout;
|
|
|
|
}
|
|
|
|
|
|
|
|
void settings_set_respect_resize_hints_in_floating_layout(const bool new_respect_resize_hints_in_floating_layout)
|
|
|
|
{
|
|
|
|
respect_resize_hints_in_floating_layout = new_respect_resize_hints_in_floating_layout;
|
2021-11-13 18:02:26 +00:00
|
|
|
// TODO: notify WM to rearrange clients
|
2021-11-13 18:01:10 +00:00
|
|
|
}
|
2021-11-13 18:32:57 +00:00
|
|
|
|
2021-11-16 16:28:49 +00:00
|
|
|
bool settings_get_show_bar_by_default()
|
|
|
|
{
|
|
|
|
return show_bar_by_default;
|
|
|
|
}
|
|
|
|
|
2021-11-18 15:09:52 +00:00
|
|
|
void settings_set_show_bar_by_default(const bool new_show_bar_by_default)
|
2021-11-16 16:28:49 +00:00
|
|
|
{
|
|
|
|
show_bar_by_default = new_show_bar_by_default;
|
|
|
|
}
|
|
|
|
|
2021-11-17 04:35:21 +00:00
|
|
|
UnitKind settings_get_show_bar_per_unit()
|
|
|
|
{
|
|
|
|
return show_bar_per_unit;
|
|
|
|
}
|
|
|
|
|
|
|
|
void settings_set_show_bar_per_unit(const UnitKind new_show_bar_per_unit)
|
|
|
|
{
|
|
|
|
show_bar_per_unit = new_show_bar_per_unit;
|
|
|
|
// TODO: notify WM to rearrange clients
|
|
|
|
}
|
|
|
|
|
2021-11-13 18:32:57 +00:00
|
|
|
unsigned int settings_get_snap_distance()
|
|
|
|
{
|
|
|
|
return snap_distance;
|
|
|
|
}
|
|
|
|
|
2021-11-15 05:50:02 +00:00
|
|
|
void settings_set_snap_distance(unsigned int new_snap_distance)
|
2021-11-13 18:32:57 +00:00
|
|
|
{
|
2021-11-18 15:37:49 +00:00
|
|
|
snap_distance = constraints_snap_distance(new_snap_distance);
|
2021-11-13 18:32:57 +00:00
|
|
|
}
|
2021-11-15 23:38:42 +00:00
|
|
|
|
|
|
|
bool settings_get_swallow_floating()
|
|
|
|
{
|
|
|
|
return swallow_floating;
|
|
|
|
}
|
|
|
|
|
|
|
|
void settings_set_swallow_floating(const bool new_swallow_floating)
|
|
|
|
{
|
|
|
|
swallow_floating = new_swallow_floating;
|
|
|
|
}
|