blob: 5a338bff3d6a606981cf59149a89e5ef8a186cc7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
;;; -*- lexical-binding: t; -*-
;;; Commentary:
;;; Code:
;;;; defaults
(menu-bar-mode -1)
(tool-bar-mode -1)
(scroll-bar-mode -1)
;; no fringe
(fringe-mode '(0 . 0))
;; dedication
(defun toggle-current-window-dedication ()
"Adds or revokes dedicated window status from a buffer. A
dedicated buffer will never be automatically orphaned."
(interactive)
(let* ((window (selected-window))
(dedicated (window-dedicated-p window)))
(set-window-dedicated-p window (not dedicated))
(message "Window %sdedicated to %s"
(if dedicated "no longer " "")
(buffer-name))))
;; reading mode
(defun split-and-follow ()
(interactive)
(delete-other-windows)
(split-window-horizontally)
(split-window-horizontally)
(balance-windows)
(other-window -1)
(follow-mode 1))
;; alpha
(defun bd/clamp (lower-bound upper-bound value)
(max lower-bound (min value upper-bound)))
(defun set-frame-alpha (value)
"Sets the transparency of the frame background. 0=transparent/100=opaque
Due to a bug with guix-packaged emacs, only uses true-transparency on wayland."
(interactive "nTransparency Value (30 - 100 opaque): ")
(setq value (bd/clamp 30 100 value))
(if (equal display "wayland")
(set-frame-parameter (selected-frame) 'alpha-background value)
(set-frame-parameter (selected-frame) 'alpha `(,value . ,value)))
(message "Alpha set to %d" value))
(if (equal display "wayland")
(add-to-list 'default-frame-alist '(alpha-background . 66))
(add-to-list 'default-frame-alist '(alpha . (82 . 82))))
(require 'project)
;;;; popper
(use-package popper
:demand t
:bind (("C-`" . 'popper-toggle-latest)
("M-`" . 'popper-cycle)
("C-M-`" . popper-toggle-type))
:config
(popper-mode)
(popper-echo-mode)
:custom
(popper-reference-buffers
'(
;; native
("\\*Async Shell Command\\*.*" . hide)
compilation-mode
completion-list-mode
messages-buffer-mode
occur-mode
("Output\\*$" . hide)
;; info
help-mode
Info-mode
"^\\*slime-description.*\\*$"
;; repls
geiser-repl-mode
slime-repl-mode
;; shells
"^\\*eshell.*\\*$" eshell-mode
"^\\*shell.*\\*$" shell-mode
"^\\*term.*\\*$" term-mode
;; magit
magit-diff-mode
magit-status-mode
;; emms
emms-playlist-mode
))
(popper-display-control 'nil)
(popper-mode-line nil)
(popper-group-function #'popper-group-by-project))
;;;; shackle
(use-package shackle
:demand t
:config
(shackle-mode)
:custom
(shackle-rules '(
;; native
(compilation-mode :select nil :align bottom :size 0.2)
(completion-list-mode :select nil :align bottom :size 0.1)
;; info
(help-mode :noselect t :align left :size 0.3)
(Info-mode :select t :align left :size 0.4)
("^\\*slime-description.*\\*$" :regexp t :select t :align left)
;; repls
(geiser-repl-mode :select t :align right)
(slime-repl-mode :select t :align right)
;; shells
(".*eshell.*\\*$" :regexp t :select t :align above :size 0.3)
(".*shell.*\\*$" :regexp t :select t :align above :size 0.3)
("^\\*term.*\\*$" :regexp t :select t :align above :size 0.3)
;; magit
(magit-status-mode :select t :align bottom :size 0.3)
(magit-diff-mode :select nil :align right :size 0.3)
;; emms
(emms-playlist-mode :select t :align left :size 0.2)
))
(shackle-default-rule '(:select t)))
(provide 'bd--windows)
;;; bd-windows ends here
|