From 1cb472dd975a5b69a94f50569c7bdec7256ed0eb Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Thu, 27 Jul 2023 23:01:42 -0700 Subject: Split stumpwm-gaps configuration into separate service --- oni/home/services/stumpwm/config | 65 ---------------------------------------- 1 file changed, 65 deletions(-) (limited to 'oni/home/services/stumpwm/config') diff --git a/oni/home/services/stumpwm/config b/oni/home/services/stumpwm/config index fed4dd2..9350ee9 100644 --- a/oni/home/services/stumpwm/config +++ b/oni/home/services/stumpwm/config @@ -2,7 +2,6 @@ (in-package :stumpwm-user) (require 'swank) -(require 'swm-gaps) (set-prefix-key (kbd "s-x")) @@ -77,70 +76,6 @@ after it has been unlocked." "%d ")) (mode-line) -;;; Redefine this function again because for some reason on my system -;;; `(frame-width ...)' returns a ratio, not an integer, which is not accepted -;;; by `xlib:drawable-width'. -(defun stumpwm::maximize-window (win) - "Redefined gaps aware maximize function." - (multiple-value-bind (x y wx wy width height border stick) - (stumpwm::geometry-hints win) - - (let ((ox 0) (oy 0) (ow 0) (oh 0) - (frame (stumpwm::window-frame win))) - (if (swm-gaps::apply-gaps-p win) - (multiple-value-setq (ox oy ow oh) (swm-gaps::gaps-offsets win))) - - ;; Only do width or height subtraction if result will be positive, - ;; otherwise stumpwm will crash. Also, only modify window dimensions - ;; if needed (i.e. window at least fills frame minus gap). - (when (and (< ow width) - (>= width (- (frame-width frame) ow))) - (setf width (- width ow))) - (when (and (< oh height) - (>= height (- (frame-height frame) oh))) - (setf height (- height oh))) - - (setf x (+ x ox) - y (+ y oy)) - - ;; This is the only place a window's geometry should change - (set-window-geometry win :x wx :y wy :width width :height height :border-width 0) - (xlib:with-state ((window-parent win)) - ;; FIXME: updating the border doesn't need to be run everytime - ;; the window is maximized, but only when the border style or - ;; window type changes. The overhead is probably minimal, - ;; though. - (setf (xlib:drawable-x (window-parent win)) x - (xlib:drawable-y (window-parent win)) y - (xlib:drawable-border-width (window-parent win)) border) - ;; the parent window should stick to the size of the window - ;; unless it isn't being maximized to fill the frame. - (if (or stick - (find *window-border-style* '(:tight :none))) - (setf (xlib:drawable-width (window-parent win)) (window-width win) - (xlib:drawable-height (window-parent win)) (window-height win)) - (let ((frame (stumpwm::window-frame win))) - (setf (xlib:drawable-width (window-parent win)) (- (round (frame-width frame)) - (* 2 (xlib:drawable-border-width (window-parent win))) - ow) - (xlib:drawable-height (window-parent win)) (- (stumpwm::frame-display-height (window-group win) frame) - (* 2 (xlib:drawable-border-width (window-parent win))) - oh)))) - ;; update the "extents" - (xlib:change-property (window-xwin win) :_NET_FRAME_EXTENTS - (list wx - (- (xlib:drawable-width (window-parent win)) width wx) - wy - (- (xlib:drawable-height (window-parent win)) height wy)) - :cardinal 32)) - (update-configuration win)))) - -(setf swm-gaps:*head-gaps-size* 0) -(setf swm-gaps:*inner-gaps-size* 15) -(setf swm-gaps:*outer-gaps-size* 15) - -(swm-gaps:toggle-gaps-on) - ;;; Screenshots (defvar *screenshot-bindings* -- cgit v1.2.3-54-g00ecf