mirror of
https://github.com/jimeh/.emacs.d.git
synced 2026-02-19 13:46:41 +00:00
refactor(ui): move transparency related things to a module
This commit is contained in:
@@ -2,20 +2,13 @@
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; Refinements of the core editing experience in Emacs.
|
||||
;;
|
||||
;; Shamelessly ripped from Emacs Prelude.
|
||||
;; Definition of base siren group.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(defgroup siren nil
|
||||
"Basic settings for Siren."
|
||||
:group 'tools)
|
||||
|
||||
(defcustom siren-transparency-level 99
|
||||
"The default frame transparency level for Emacs frames."
|
||||
:type 'number
|
||||
:group 'siren)
|
||||
"Basic settings for Siren."
|
||||
:group 'tools)
|
||||
|
||||
(provide 'siren-core-custom)
|
||||
;;; siren-core-custom.el ends here
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
;; UI
|
||||
(require 'siren-pixel-scroll)
|
||||
(require 'siren-solaire-mode)
|
||||
(require 'siren-transparency)
|
||||
|
||||
;; Core
|
||||
(require 'siren-aliases)
|
||||
|
||||
@@ -1,55 +0,0 @@
|
||||
;;; siren-core-transparency.el --- jimeh's Emacs Siren: Emacs Frame transparency.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; Basic helpers and configuration for frame transparency.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(defun siren-transparency-fix ()
|
||||
"Set initial value of alpha parameter for the current frame."
|
||||
(interactive)
|
||||
(if (equal (frame-parameter nil 'alpha) nil)
|
||||
(set-frame-parameter nil 'alpha 100)))
|
||||
|
||||
(defun siren-transparency-increase ()
|
||||
"Increase level of transparency for the current frame."
|
||||
(interactive)
|
||||
(siren-transparency-fix)
|
||||
(if (> (frame-parameter nil 'alpha) 0)
|
||||
(let ((new-level (+ (frame-parameter nil 'alpha) -1)))
|
||||
(set-frame-parameter nil 'alpha new-level)
|
||||
(message "Frame transparency set to %s" new-level))
|
||||
(message "This is a minimum value of transparency!")))
|
||||
|
||||
(defun siren-transparency-decrease ()
|
||||
"Decrease level of transparency for the current frame."
|
||||
(interactive)
|
||||
(siren-transparency-fix)
|
||||
(if (< (frame-parameter nil 'alpha) 100)
|
||||
(let ((new-level (+ (frame-parameter nil 'alpha) +1)))
|
||||
(set-frame-parameter nil 'alpha (+ (frame-parameter nil 'alpha) +1))
|
||||
(message "Frame transparency set to %s" new-level))
|
||||
(message "This is a minimum value of transparency!")))
|
||||
|
||||
(defun siren-transparency (numb)
|
||||
"Set level of transparency for the current frame by providing NUMB."
|
||||
(interactive "nEnter transparency level in range 0-100: ")
|
||||
(if (> numb 100)
|
||||
(message "Error! The maximum value for transparency is 100!")
|
||||
(if (< numb 0)
|
||||
(message "Error! The minimum value for transparency is 0!")
|
||||
(set-frame-parameter nil 'alpha numb))))
|
||||
|
||||
(siren-transparency siren-transparency-level)
|
||||
(add-hook 'after-make-frame-functions
|
||||
(lambda (selected-frame)
|
||||
(set-frame-parameter selected-frame 'alpha siren-transparency-level)))
|
||||
|
||||
;; Keybindings
|
||||
(global-set-key (kbd "C-M-|") 'siren-transparency)
|
||||
(global-set-key (kbd "C-M-<") 'siren-transparency-increase)
|
||||
(global-set-key (kbd "C-M->") 'siren-transparency-decrease)
|
||||
|
||||
(provide 'siren-core-transparency)
|
||||
;;; siren-core-transparency.el ends here
|
||||
@@ -6,8 +6,6 @@
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'siren-core-transparency)
|
||||
|
||||
;; the toolbar is just a waste of valuable screen estate
|
||||
;; in a tty tool-bar-mode does not properly auto-load, and is
|
||||
;; already disabled anyway
|
||||
|
||||
56
modules/ui/siren-transparency.el
Normal file
56
modules/ui/siren-transparency.el
Normal file
@@ -0,0 +1,56 @@
|
||||
;;; siren-transparency.el --- jimeh's Emacs Siren: Emacs Frame transparency.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; Basic helpers and configuration for frame transparency.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'siren-ui)
|
||||
|
||||
(defgroup siren-transparency nil
|
||||
"Options for the Siren transparency."
|
||||
:group 'siren-ui)
|
||||
|
||||
(defcustom siren-transparency-default-level 99
|
||||
"The default frame transparency level for Emacs frames."
|
||||
:type 'number
|
||||
:set (lambda (symbol value)
|
||||
(set-default symbol value)
|
||||
(setf (alist-get 'alpha default-frame-alist) value))
|
||||
:group 'siren)
|
||||
|
||||
(defun siren-transparency-decrease ()
|
||||
"Decrease level of transparency for the current frame."
|
||||
(interactive)
|
||||
(let ((current (or (frame-parameter nil 'alpha) 100)))
|
||||
(if (> current 0)
|
||||
(let ((new-level (+ current -1)))
|
||||
(siren-transparency new-level)
|
||||
(message "Frame transparency set to %s" new-level))
|
||||
(message "This is a minimum value of transparency!"))))
|
||||
|
||||
(defun siren-transparency-increase ()
|
||||
"Increase level of transparency for the current frame."
|
||||
(interactive)
|
||||
(let ((current (or (frame-parameter nil 'alpha) 100)))
|
||||
(if (< current 100)
|
||||
(let ((new-level (+ current +1)))
|
||||
(siren-transparency new-level)
|
||||
(message "Frame transparency set to %s" new-level))
|
||||
(message "This is a minimum value of transparency!"))))
|
||||
|
||||
(defun siren-transparency (num)
|
||||
"Set level of transparency for the current frame by providing NUM."
|
||||
(interactive "nEnter transparency level in range 0-100: ")
|
||||
(set-frame-parameter nil 'alpha (cond ((> num 100) 100)
|
||||
((< num 0) 0)
|
||||
(t num))))
|
||||
|
||||
;; Keybindings
|
||||
(global-set-key (kbd "C-M-|") 'siren-transparency)
|
||||
(global-set-key (kbd "C-M-<") 'siren-transparency-decrease)
|
||||
(global-set-key (kbd "C-M->") 'siren-transparency-increase)
|
||||
|
||||
(provide 'siren-transparency)
|
||||
;;; siren-transparency.el ends here
|
||||
14
modules/ui/siren-ui.el
Normal file
14
modules/ui/siren-ui.el
Normal file
@@ -0,0 +1,14 @@
|
||||
;;; siren-ui.el --- jimeh's Emacs Siren: siren-ui.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; Basic setup for siren-ui.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(defgroup siren-ui nil
|
||||
"Options for the Siren UI."
|
||||
:group 'siren)
|
||||
|
||||
(provide 'siren-ui)
|
||||
;;; siren-ui.el ends here
|
||||
Reference in New Issue
Block a user