From 42cf90da66e9ff24939a98139016138905e1b201 Mon Sep 17 00:00:00 2001 From: jao Date: Wed, 2 Feb 2022 03:53:54 +0000 Subject: sway improvements --- init.org | 103 ++++++++++++++++++++++++++++++++++----------------------------- 1 file changed, 55 insertions(+), 48 deletions(-) (limited to 'init.org') diff --git a/init.org b/init.org index ec104fe..6d77719 100644 --- a/init.org +++ b/init.org @@ -163,6 +163,9 @@ #+end_src *** Brightness control #+begin_src emacs-lisp + (when (eq 'pgtk window-system) + (defalias 'x-change-window-property #'ignore)) + (jao-def-exec jao-bright-set-up "brightnessctl" "-q" "s" "5%+") (jao-def-exec jao-bright-set-down "brightnessctl" "-q" "s" "5%-") @@ -289,42 +292,6 @@ (pinentry-start) #+end_src * Fonts and colour themes -*** Transparency - #+begin_src emacs-lisp - (defvar jao-frames-default-alpha (if (eq window-system 'pgtk) 100 90)) - (defvar jao-transparent-frame (< jao-frames-default-alpha 100)) - (defvar jao-transparent-only-bg nil) - - (defun jao-transparent-p () jao-transparent-frame) - - (defun jao-alpha-pair (&optional level) - (let ((level (or level jao-frames-default-alpha))) - (if (and (featurep 'gtk) jao-transparent-only-bg) - (cons 'alpha-background level) - (cons 'alpha (cons level level))))) - - (defun jao-sway-set-transparency (level) - (when jao-sway-enabled-p - (let ((alpha (/ level 100.0))) - (jao-swaymsg (format "[app_id=emacs] opacity %s" alpha))))) - - (defun jao-set-transparency (level &optional all) - (interactive "nOpacity (0-100): ") - (let ((level (or level jao-frames-default-alpha))) - (setq jao-transparent-p (< level 100)) - (if jao-sway-enabled-p - (jao-sway-set-transparency level) - (let ((a (jao-alpha-pair level))) - (if all - (modify-all-frames-parameters (list a)) - (set-frame-parameter nil (car a) (cdr a))))))) - - (defun jao-toggle-transparency (&optional all) - (interactive "P") - (let ((level (if jao-transparent-p 100 jao-frames-default-alpha))) - (jao-set-transparency level all))) - - #+end_src *** Widgets #+begin_src emacs-lisp (setq widget-image-enable nil @@ -467,18 +434,56 @@ (use-package jao-recoll) #+end_src * Window manager helpers +*** transparency + #+begin_src emacs-lisp + (defvar jao-transparent-only-bg t) + + (defvar jao-frames-default-alpha + (cond ((eq window-system 'pgtk) 80) + (jao-transparent-only-bg 85) + (t 85))) + + (defvar jao-transparent-frame (< jao-frames-default-alpha 100)) + + (defun jao-transparent-p () jao-transparent-frame) + + (defun jao-alpha-parameters (&optional level) + (let ((level (or level jao-frames-default-alpha))) + (if jao-transparent-only-bg + `((alpha-background . ,level) (alpha)) + `((alpha . ,(cons level level)) (alpha-background))))) + + (defun jao-set-transparency (&optional level all) + (interactive "nOpacity (0-100): ") + (let ((level (or level jao-frames-default-alpha))) + (setq jao-transparent-frame (< level 100)) + (if all + (modify-all-frames-parameters (jao-alpha-parameters level)) + (modify-frame-parameters nil (jao-alpha-parameters level))))) + + (defun jao-toggle-transparency (&optional all) + (interactive "P") + (let ((level (if jao-transparent-frame 100 jao-frames-default-alpha))) + (jao-set-transparency level all))) + + (add-hook 'after-init-hook #'jao-set-transparency) + + #+end_src *** exwm - To start emacs in an exwm session we use the flag ~-f - jao-exwm-enable~, which calls the function below enabling it. This - function, in turn, loads exwm's configuration from [[./exwm.org][exwm.org]]. + To start emacs in an exwm session we use the flag + ~-f jao-exwm-enable~, which calls the function below enabling it. + This function, in turn, loads exwm's configuration from [[./exwm.org][exwm.org]]. #+begin_src emacs-lisp (defvar jao-exwm-enabled nil) (defun jao-exwm-enabled-p () jao-exwm-enabled) + (defun jao-exwm-enable () (jao-load-org "exwm.org") (setq jao-exwm-enabled t) (display-time-mode -1) (exwm-enable) + (setq jao-transparent-only-bg nil jao-frames-default-alpha 88) + (jao-set-transparency nil) (x-change-window-property "_XMONAD_TRAYPAD" "" nil nil nil nil 0) (jao-trisect t)) #+end_src @@ -496,7 +501,7 @@ (jao-swaymsg ,msg))) (jao-def-swaymsg firefox "[app_id=firefox] focus") - (defvar jao-sway-enabled-p nil) + (defvar jao-sway-enabled (eq window-system 'pgtk)) (defun jao-sway-set-wallpaper (f) (jao-swaymsg (format "output * bg %s fill" f)) @@ -509,14 +514,17 @@ (start-process-shell-command cmd nil cmd))) (defun jao-sway-enable () - (setq jao-sway-enabled-p t) + ;; (setq jao-sway-enabled t) (setq jao-browse-doc-use-emacs-p t) - (setq jao-minibuffer-right-margin 1) - (jao-toggle-inactive-mode-line t) + (setq jao-minibuffer-right-margin "") + (setq jao-wallpaper-random-wake nil) (jao-trisect) - (jao-set-transparency 92) + (jao-set-transparency 85) (jao-themes-setup) (message "Welcome to sway")) + + (when jao-sway-enabled (add-hook 'after-init-hook #'jao-sway-enable)) + #+end_src *** Wallpaper #+begin_src emacs-lisp @@ -541,7 +549,7 @@ (file-symlink-p current) t)))) (make-symbolic-link (expand-file-name f) current t) - (if jao-sway-enabled-p + (if jao-sway-enabled (jao-sway-set-wallpaper (expand-file-name f)) (shell-command (format "xwallpaper --zoom %s" f)))))) @@ -579,7 +587,7 @@ (defun jao-lock-screen () (interactive) - (if jao-sway-enabled-p + (if jao-sway-enabled (shell-command "swaylock -i ~/.lockimage") (jao-xlock-screen))) @@ -1175,7 +1183,6 @@ (vertical-scroll-bars . nil) (scroll-bar-width . 11) (menu-bar . nil) - ,(jao-alpha-pair) (font . ,jao-default-font))) #+end_src *** Frame layout, title, etc. @@ -1505,7 +1512,7 @@ (message "No URL at point") (when (and (jao-exwm-enabled-p) (fboundp 'jao-exwm-firefox)) (jao-exwm-firefox)) - (when (and jao-sway-enabled-p (fboundp 'jao-sway-firefox)) + (when (and jao-sway-enabled (fboundp 'jao-sway-firefox)) (jao-sway-firefox)) (browse-url-generic url)))) (setq jao-browse-url-external-function 'jao-browse-with-external-browser) -- cgit v1.2.3