Consolidate options for hiding window decorations
Merged into a single option, hide_window_decorations. Old aliases still work if set to yes. Fixes #1127
This commit is contained in:
parent
34aea3bca1
commit
53166d659e
@ -16,7 +16,7 @@ from .conf.utils import (
|
|||||||
parse_config_base, python_string, to_bool, to_cmdline
|
parse_config_base, python_string, to_bool, to_cmdline
|
||||||
)
|
)
|
||||||
from .config_data import all_options, parse_mods, type_map
|
from .config_data import all_options, parse_mods, type_map
|
||||||
from .constants import cache_dir, defconf
|
from .constants import cache_dir, defconf, is_macos
|
||||||
from .utils import log_error
|
from .utils import log_error
|
||||||
|
|
||||||
named_keys = {
|
named_keys = {
|
||||||
@ -312,6 +312,15 @@ special_handlers = {}
|
|||||||
|
|
||||||
def special_handler(func):
|
def special_handler(func):
|
||||||
special_handlers[func.__name__.partition('_')[2]] = func
|
special_handlers[func.__name__.partition('_')[2]] = func
|
||||||
|
return func
|
||||||
|
|
||||||
|
|
||||||
|
def deprecated_handler(*names):
|
||||||
|
def special_handler(func):
|
||||||
|
for name in names:
|
||||||
|
special_handlers[name] = func
|
||||||
|
return func
|
||||||
|
return special_handler
|
||||||
|
|
||||||
|
|
||||||
@special_handler
|
@special_handler
|
||||||
@ -336,6 +345,15 @@ def handle_clear_all_shortcuts(key, val, ans):
|
|||||||
ans['key_definitions'] = [None]
|
ans['key_definitions'] = [None]
|
||||||
|
|
||||||
|
|
||||||
|
@deprecated_handler('x11_hide_window_decorations', 'macos_hide_titlebar')
|
||||||
|
def handle_deprecated_hide_window_decorations_aliases(key, val, ans):
|
||||||
|
if not hasattr(handle_deprecated_hide_window_decorations_aliases, key):
|
||||||
|
handle_deprecated_hide_window_decorations_aliases.key = True
|
||||||
|
log_error('The option {} is deprecated. Use hide_window_decorations instead.'.format(key))
|
||||||
|
if to_bool(val):
|
||||||
|
ans['hide_window_decorations'] = True
|
||||||
|
|
||||||
|
|
||||||
def expandvars(val, env):
|
def expandvars(val, env):
|
||||||
|
|
||||||
def sub(m):
|
def sub(m):
|
||||||
@ -552,4 +570,6 @@ def load_config(*paths, overrides=None):
|
|||||||
if opts.background_opacity < 1.0 and opts.macos_titlebar_color:
|
if opts.background_opacity < 1.0 and opts.macos_titlebar_color:
|
||||||
log_error('Cannot use both macos_titlebar_color and background_opacity')
|
log_error('Cannot use both macos_titlebar_color and background_opacity')
|
||||||
opts.macos_titlebar_color = 0
|
opts.macos_titlebar_color = 0
|
||||||
|
if (is_macos and getattr(opts, 'macos_hide_titlebar', False)) or (not is_macos and getattr(opts, 'x11_hide_window_decorations', False)):
|
||||||
|
opts.hide_window_decorations = True
|
||||||
return opts
|
return opts
|
||||||
|
|||||||
@ -538,6 +538,12 @@ o('inactive_text_alpha', 1.0, option_type=unit_float, long_text=_('''
|
|||||||
Fade the text in inactive windows by the specified amount (a number between
|
Fade the text in inactive windows by the specified amount (a number between
|
||||||
zero and one, with zero being fully faded).
|
zero and one, with zero being fully faded).
|
||||||
'''))
|
'''))
|
||||||
|
|
||||||
|
o('hide_window_decorations', False, long_text=_('''
|
||||||
|
Hide the window decorations (title-bar and window borders).
|
||||||
|
Whether this works and exactly what effect it has depends on the
|
||||||
|
window manager/operating system.
|
||||||
|
'''))
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
g('tabbar') # {{{
|
g('tabbar') # {{{
|
||||||
@ -772,15 +778,6 @@ incompatible with :opt:`background_opacity`. If you want to use both, you are
|
|||||||
probably better off just hiding the titlebar with :opt:`macos_hide_titlebar`.
|
probably better off just hiding the titlebar with :opt:`macos_hide_titlebar`.
|
||||||
'''))
|
'''))
|
||||||
|
|
||||||
o('macos_hide_titlebar', False, long_text=_('''
|
|
||||||
Hide the kitty window's title bar on macOS.'''))
|
|
||||||
|
|
||||||
o('x11_hide_window_decorations', False, long_text=_('''
|
|
||||||
Hide the window decorations (title bar and window borders) on X11 and Wayland.
|
|
||||||
Whether this works and exactly what effect it has depends on the window
|
|
||||||
manager, as it is the job of the window manager/compositor to draw window
|
|
||||||
decorations.'''))
|
|
||||||
|
|
||||||
o('macos_option_as_alt', True, long_text=_('''
|
o('macos_option_as_alt', True, long_text=_('''
|
||||||
Use the option key as an alt key. With this set to no, kitty will use
|
Use the option key as an alt key. With this set to no, kitty will use
|
||||||
the macOS native :kbd:`Option+Key` = unicode character behavior. This will
|
the macOS native :kbd:`Option+Key` = unicode character behavior. This will
|
||||||
|
|||||||
@ -467,9 +467,9 @@ create_os_window(PyObject UNUSED *self, PyObject *args) {
|
|||||||
glfwWindowHint(GLFW_DEPTH_BITS, 0);
|
glfwWindowHint(GLFW_DEPTH_BITS, 0);
|
||||||
glfwWindowHint(GLFW_STENCIL_BITS, 0);
|
glfwWindowHint(GLFW_STENCIL_BITS, 0);
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
if (OPT(macos_hide_titlebar)) glfwWindowHint(GLFW_DECORATED, false);
|
|
||||||
glfwWindowHint(GLFW_COCOA_GRAPHICS_SWITCHING, true);
|
glfwWindowHint(GLFW_COCOA_GRAPHICS_SWITCHING, true);
|
||||||
glfwSetApplicationShouldHandleReopen(on_application_reopen);
|
glfwSetApplicationShouldHandleReopen(on_application_reopen);
|
||||||
|
if (OPT(hide_window_decorations)) glfwWindowHint(GLFW_DECORATED, false);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -478,9 +478,7 @@ create_os_window(PyObject UNUSED *self, PyObject *args) {
|
|||||||
glfwWindowHintString(GLFW_X11_INSTANCE_NAME, wm_class_name);
|
glfwWindowHintString(GLFW_X11_INSTANCE_NAME, wm_class_name);
|
||||||
glfwWindowHintString(GLFW_X11_CLASS_NAME, wm_class_class);
|
glfwWindowHintString(GLFW_X11_CLASS_NAME, wm_class_class);
|
||||||
glfwWindowHintString(GLFW_WAYLAND_APP_ID, wm_class_class);
|
glfwWindowHintString(GLFW_WAYLAND_APP_ID, wm_class_class);
|
||||||
if (OPT(x11_hide_window_decorations)) {
|
if (OPT(hide_window_decorations)) glfwWindowHint(GLFW_DECORATED, false);
|
||||||
glfwWindowHint(GLFW_DECORATED, GLFW_FALSE);
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (global_state.num_os_windows >= MAX_CHILDREN) {
|
if (global_state.num_os_windows >= MAX_CHILDREN) {
|
||||||
|
|||||||
@ -354,9 +354,10 @@ PYWRAP1(set_options) {
|
|||||||
global_state.debug_gl = debug_gl ? true : false;
|
global_state.debug_gl = debug_gl ? true : false;
|
||||||
global_state.debug_font_fallback = debug_font_fallback ? true : false;
|
global_state.debug_font_fallback = debug_font_fallback ? true : false;
|
||||||
#define GA(name) ret = PyObject_GetAttrString(opts, #name); if (ret == NULL) return NULL;
|
#define GA(name) ret = PyObject_GetAttrString(opts, #name); if (ret == NULL) return NULL;
|
||||||
#define S(name, convert) { GA(name); global_state.opts.name = convert(ret); Py_DECREF(ret); if (PyErr_Occurred()) return NULL; }
|
#define SS(name, dest, convert) { GA(name); dest = convert(ret); Py_DECREF(ret); if (PyErr_Occurred()) return NULL; }
|
||||||
GA(kitty_mod);
|
#define S(name, convert) SS(name, global_state.opts.name, convert)
|
||||||
kitty_mod = PyLong_AsLong(ret); Py_CLEAR(ret); if (PyErr_Occurred()) return NULL;
|
SS(kitty_mod, kitty_mod, PyLong_AsLong);
|
||||||
|
S(hide_window_decorations, PyObject_IsTrue);
|
||||||
S(visual_bell_duration, PyFloat_AsDouble);
|
S(visual_bell_duration, PyFloat_AsDouble);
|
||||||
S(enable_audio_bell, PyObject_IsTrue);
|
S(enable_audio_bell, PyObject_IsTrue);
|
||||||
S(focus_follows_mouse, PyObject_IsTrue);
|
S(focus_follows_mouse, PyObject_IsTrue);
|
||||||
@ -388,10 +389,8 @@ PYWRAP1(set_options) {
|
|||||||
S(window_alert_on_bell, PyObject_IsTrue);
|
S(window_alert_on_bell, PyObject_IsTrue);
|
||||||
S(macos_option_as_alt, PyObject_IsTrue);
|
S(macos_option_as_alt, PyObject_IsTrue);
|
||||||
S(macos_traditional_fullscreen, PyObject_IsTrue);
|
S(macos_traditional_fullscreen, PyObject_IsTrue);
|
||||||
S(macos_hide_titlebar, PyObject_IsTrue);
|
|
||||||
S(macos_quit_when_last_window_closed, PyObject_IsTrue);
|
S(macos_quit_when_last_window_closed, PyObject_IsTrue);
|
||||||
S(macos_window_resizable, PyObject_IsTrue);
|
S(macos_window_resizable, PyObject_IsTrue);
|
||||||
S(x11_hide_window_decorations, PyObject_IsTrue);
|
|
||||||
S(macos_hide_from_tasks, PyObject_IsTrue);
|
S(macos_hide_from_tasks, PyObject_IsTrue);
|
||||||
S(macos_thicken_font, PyFloat_AsDouble);
|
S(macos_thicken_font, PyFloat_AsDouble);
|
||||||
|
|
||||||
@ -428,6 +427,7 @@ PYWRAP1(set_options) {
|
|||||||
read_adjust(adjust_column_width);
|
read_adjust(adjust_column_width);
|
||||||
#undef read_adjust
|
#undef read_adjust
|
||||||
#undef S
|
#undef S
|
||||||
|
#undef SS
|
||||||
Py_RETURN_NONE;
|
Py_RETURN_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -23,8 +23,8 @@ typedef struct {
|
|||||||
char_type select_by_word_characters[256]; size_t select_by_word_characters_count;
|
char_type select_by_word_characters[256]; size_t select_by_word_characters_count;
|
||||||
color_type url_color, background, active_border_color, inactive_border_color, bell_border_color;
|
color_type url_color, background, active_border_color, inactive_border_color, bell_border_color;
|
||||||
double repaint_delay, input_delay;
|
double repaint_delay, input_delay;
|
||||||
bool focus_follows_mouse;
|
bool focus_follows_mouse, hide_window_decorations;
|
||||||
bool macos_option_as_alt, macos_hide_titlebar, macos_hide_from_tasks, x11_hide_window_decorations, macos_quit_when_last_window_closed, macos_window_resizable, macos_traditional_fullscreen;
|
bool macos_option_as_alt, macos_hide_from_tasks, macos_quit_when_last_window_closed, macos_window_resizable, macos_traditional_fullscreen;
|
||||||
float macos_thicken_font;
|
float macos_thicken_font;
|
||||||
int adjust_line_height_px, adjust_column_width_px;
|
int adjust_line_height_px, adjust_column_width_px;
|
||||||
float adjust_line_height_frac, adjust_column_width_frac;
|
float adjust_line_height_frac, adjust_column_width_frac;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user