Make transparency a core part of Siren

This commit is contained in:
2016-01-31 10:40:41 +00:00
parent e71ed5fc4e
commit 958bcbadaf
4 changed files with 29 additions and 21 deletions

View File

@@ -25,6 +25,10 @@ Only modes that don't derive from `prog-mode' should be listed here."
:type 'list
:group 'siren)
(defcustom siren-transparency-level 99
"The default frame transparency level for Emacs frames."
:type 'number
:group 'siren)
(provide 'siren-custom)
;;; siren-custom.el ends here

View File

@@ -1,31 +1,35 @@
;;
;; frame transparency
;;
;;; siren-transparency.el --- jimeh's Emacs Siren: Emacs Frame transparency.
(defun siren-frame-transparency-fix ()
"Set initial value of alpha parameter for the current frame"
;;; 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-frame-transparency-increase ()
"Increase level of transparency for the current frame"
(defun siren-transparency-increase ()
"Increase level of transparency for the current frame."
(interactive)
(siren-frame-transparency-fix)
(siren-transparency-fix)
(if (> (frame-parameter nil 'alpha) 0)
(set-frame-parameter nil 'alpha (+ (frame-parameter nil 'alpha) -1))
(message "This is a minimum value of transparency!")))
(defun siren-frame-transparency-decrease ()
"Decrease level of transparency for the current frame"
(defun siren-transparency-decrease ()
"Decrease level of transparency for the current frame."
(interactive)
(siren-frame-transparency-fix)
(siren-transparency-fix)
(if (< (frame-parameter nil 'alpha) 100)
(set-frame-parameter nil 'alpha (+ (frame-parameter nil 'alpha) +1))
(message "This is a minimum value of transparency!")))
(defun siren-frame-transparency (numb)
"Set level of transparency for the current frame"
(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!")
@@ -33,16 +37,15 @@
(message "Error! The minimum value for transparency is 0!")
(set-frame-parameter nil 'alpha numb))))
(setq siren-transparency-level 99)
(siren-frame-transparency siren-transparency-level)
(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-frame-transparency)
(global-set-key (kbd "C-M-<") 'siren-frame-transparency-increase)
(global-set-key (kbd "C-M->") 'siren-frame-transparency-decrease)
(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-frame-transparency)
(provide 'siren-transparency)
;;; siren-transparency.el ends here

View File

@@ -6,6 +6,8 @@
;;; Code:
(require 'siren-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

View File

@@ -13,7 +13,6 @@
(require 'siren-company)
(require 'siren-dired)
(require 'siren-exec-path-from-shell)
(require 'siren-frame-transparency)
(require 'siren-full-ack)
(require 'siren-github)
(require 'siren-global-keybindings)