diff options
Diffstat (limited to 'custom/jao-custom-window-system.el')
-rw-r--r-- | custom/jao-custom-window-system.el | 198 |
1 files changed, 0 insertions, 198 deletions
diff --git a/custom/jao-custom-window-system.el b/custom/jao-custom-window-system.el deleted file mode 100644 index 32b3578..0000000 --- a/custom/jao-custom-window-system.el +++ /dev/null @@ -1,198 +0,0 @@ -;; -*- lexical-binding: t -*- - -;;; x11 utils -(defun jao-xdotool (arg-or-wait &rest args) - (apply 'jao-shell-exec* - (if (stringp arg-or-wait) "xdotool" arg-or-wait) - (if (stringp arg-or-wait) arg-or-wait "xdotool") - args)) - -(defsubst jao-xdotool-string (&rest args) - (apply 'jao-shell-string "xdotool" args)) - -(defsubst jao-x11-focused-id () (jao-xdotool-string "getwindowfocus")) - -(defsubst jao-x11-window-name (&optional wid) - (jao-xdotool-string "getwindowname" (or wid (jao-x11-focused-id)))) - -(defsubst jao-x11-search-window (title) - (jao-xdotool-string "search" "--name" title)) - -(defsubst jao-x11-goto-ws (n) (jao-xdotool t "set_desktop" (format "%s" n))) - -;;; exwm -(defvar jao-exwm-enabled nil) -(defun jao-exwm-enabled-p () jao-exwm-enabled) - -(defun jao-exwm-enable () - (require 'jao-custom-exwm) - (setq jao-exwm-enabled t) - (display-time-mode -1) - (jao-ednc-setup 95) - (x-change-window-property "_XMONAD_TRAYPAD" "" nil nil nil nil 0) - (jao-mode-line-add-to-minibuffer-left 90) - (jao-xmobar-restart) - (jao-trisect t)) - -;;; xmonad -(defvar jao-xmonad-enabled (string= "xmonad" (or (getenv "wm") ""))) -(defun jao-xmonad-enabled-p () jao-xmonad-enabled) - -(defun jao-xmonad-enable () - (setq jao-browse-doc-use-emacs-p (display-graphic-p)) - (setq jao-mode-line-in-minibuffer nil) - (display-battery-mode -1) - (jao-trisect) - (message "Welcome to xmonad")) - -(when jao-xmonad-enabled - (add-hook 'after-init-hook #'jao-xmonad-enable)) - -;;; wayland - -(use-package jao-wayland :demand t) - -(defun jao-wayland-enable () - (interactive) - (defalias 'x-change-window-property #'ignore) - (jao-trisect) - (message "Welcome to wayland")) - -(defun jao-river-enable () - (jao-wayland-enable) - (when (jao-shell-running-p "i3bar-river") - (jao-tracking-set-log "")) - (message "Welcome to river")) - -(when jao-river-enabled - (add-hook 'after-init-hook #'jao-river-enable t)) - -(when jao-sway-enabled - (add-hook 'after-init-hook #'jao-wayland-enable t)) - -;;; wallpaper -(defvar jao-wallpaper-dir "~/.wallpapers/") - -(defvar jao-wallpaper-random-candidates - '("wallpaper.jpg" "wallpaper2.jpg")) - -(defvar jao-wallpaper-random-candidates-light - '("wallpaper.jpg" "wallpaper2.jpg")) - -(defvar jao-wallpaper-random-wake t - "Set to t for getting a new wallpaper on awaking from sleep") - -(defun jao-set-wallpaper (&optional path) - (interactive) - (let ((current (format "~/.wallpaper.%s" (jao-colors-scheme)))) - (when-let ((f (or (and path (expand-file-name path)) - (read-file-name "Image: " - jao-wallpaper-dir - (file-symlink-p current) - t)))) - (make-symbolic-link f current t) - (cond (jao-river-enabled (jao-river-set-wallpaper f)) - (jao-sway-enabled (jao-sway-set-wallpaper f)) - (t (shell-command-to-string (format "xwallpaper --zoom %s" f))))))) - -(defun jao-set-random-wallpaper () - (interactive) - (when (or (called-interactively-p 'interactive) - jao-wallpaper-random-wake) - (let* ((ws (if (jao-colors-scheme-dark-p) - jao-wallpaper-random-candidates - jao-wallpaper-random-candidates-light)) - (f (seq-random-elt ws))) - (jao-set-wallpaper (expand-file-name f jao-wallpaper-dir)) - (message "%s" f)))) - -(add-to-list 'jao-sleep-awake-functions #'jao-set-random-wallpaper) - -;;; screensaver and lock -(defun jao-screensaver-enabled () - (string= (jao-shell-string "xdg-screensaver status") "enabled")) - -(defvar jao-screensaver--wid nil) -(defun jao-screensaver-toggle () - (interactive) - (if (jao-screensaver-enabled) - (let ((wid (jao-x11-focused-id))) - (setq jao-screensaver--wid wid) - (jao-shell-exec* t "xdg-screensaver" "suspend" wid)) - (jao-shell-exec* t "xdg-screensaver" "resume" jao-screensaver--wid) - (setq jao-screensaver--wid nil)) - (jao-notify (format "Screensaver %s" - (jao-shell-string "xdg-screensaver status")))) - -(jao-shell-def-exec jao-xlock-screen "xdg-screensaver" "activate") -(jao-shell-def-exec jao-suspend "sudo" "systemctl" "suspend") -(jao-shell-def-exec jao-poweroff "sudo" "systemctl" "poweroff") - -(defun jao-lock-screen () - (interactive) - (if jao-wayland-enabled - (shell-command "swaylock -i ~/.lockimage") - (jao-xlock-screen))) - -(transient-define-prefix jao-transient-sleep () - ["Sleep" - ("l" "lock screen" jao-lock-screen) - ("z" "sleep" jao-suspend) - ("u" (lambda () - (if (jao-screensaver-enabled) "suspend screensaver" "resume screensaver")) - jao-screensaver-toggle) - ("poof" "power-off" jao-poweroff)]) - -;;; X clipboard -(setq select-enable-clipboard t - select-enable-primary t - selection-timeout 100 - xterm-select-active-regions t) - -(use-package xclip - :ensure t - :init (setq xclip-method (if jao-wayland-enabled 'wl-copy 'xclip))) - -(unless (display-graphic-p) (xclip-mode 1)) - -;;; pop-up frames -(defun jao-open-in-x-frame (&optional width height) - (interactive) - (make-frame `((window-system . x) - (name . "emacs popup") - (width . ,(or width (window-width))) - (height . ,(or height (window-height))))) - (define-key (current-local-map) "q" #'delete-frame)) - -;;; xmobar -(defun jao-xmobar-kill () - (interactive) - (shell-command "killall xmobar-single")) - -(defun jao-xmobar-restart () - (interactive) - (jao-xmobar-kill) - (start-process "" nil "xmobar-single" "-d")) - -(use-package tab-bar - :init (setq tab-bar-close-button-show nil - tab-bar-show (> emacs-major-version 28) - tab-bar-format ())) - -(use-package xmobar - :init (setq xmobar-tab-bar t - xmobar-tab-split "*" - xmobar-tab-bar-format - (if window-system - '(xmobar-left-string - tab-bar-format-align-right - xmobar-right-string) - '(xmobar-left-string - xmobar-elastic-space - xmobar-right-string)) - xmobar-command - (if window-system '("xmobar-emacs" "-TAnsi") "xmobar-emacs"))) - - -;;; - provide -(provide 'jao-custom-window-system) |