diff --git a/core/siren-core-custom.el b/core/siren-core-custom.el index acc3f43..bcc1725c 100644 --- a/core/siren-core-custom.el +++ b/core/siren-core-custom.el @@ -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 diff --git a/core/siren-core-modules.el b/core/siren-core-modules.el index 9ba432e..857f637 100644 --- a/core/siren-core-modules.el +++ b/core/siren-core-modules.el @@ -16,6 +16,7 @@ ;; UI (require 'siren-pixel-scroll) (require 'siren-solaire-mode) +(require 'siren-transparency) ;; Core (require 'siren-aliases) diff --git a/core/siren-core-transparency.el b/core/siren-core-transparency.el deleted file mode 100644 index 4b99c1e..0000000 --- a/core/siren-core-transparency.el +++ /dev/null @@ -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 diff --git a/core/siren-core-ui.el b/core/siren-core-ui.el index 790f1e2..6b2298d 100644 --- a/core/siren-core-ui.el +++ b/core/siren-core-ui.el @@ -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 diff --git a/modules/ui/siren-transparency.el b/modules/ui/siren-transparency.el new file mode 100644 index 0000000..00609bb --- /dev/null +++ b/modules/ui/siren-transparency.el @@ -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 diff --git a/modules/ui/siren-ui.el b/modules/ui/siren-ui.el new file mode 100644 index 0000000..7b60a59 --- /dev/null +++ b/modules/ui/siren-ui.el @@ -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