blob: da9bc1e56de9fa7f933c129e1c6a9b7370461a2c (
plain) (
blame)
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
|
;; Configure additional settings if this is one of my NixOS machines
;; (i.e. if ExWM is required)
;; -*- lexical-binding: t; -*-
(require 's)
(require 'f)
(defvar is-nixos
(let ((os-f "/etc/os-release"))
(s-contains?
"NixOS" (if (f-file? os-f) (f-read os-f)))))
(if is-nixos
(progn
(message "Running on NixOS, configuring ExWM.")
(require 'exwm)
(require 'exwm-config)
(require 'exwm-cm)
(fringe-mode 3)
(setq exwm-workspace-number 2)
;; Make class name the buffer name
(add-hook 'exwm-update-class-hook
(lambda ()
(exwm-workspace-rename-buffer exwm-class-name)))
;; 's-r': Reset
(exwm-input-set-key (kbd "s-r") #'exwm-reset)
;; 's-w': Switch workspace
(exwm-input-set-key (kbd "s-w") #'exwm-workspace-switch)
;; 's-N': Switch to certain workspace
(dotimes (i 10)
(exwm-input-set-key (kbd (format "s-%d" i))
`(lambda ()
(interactive)
(exwm-workspace-switch-create ,i))))
;; Launch applications with completion (dmenu style!)
(exwm-input-set-key (kbd "s-p") #'helm-run-external-command)
;; Toggle between line-mode / char-mode
(exwm-input-set-key (kbd "C-c C-t C-t") #'exwm-input-toggle-keyboard)
;; Line-editing shortcuts
(exwm-input-set-simulation-keys
'(([?\C-d] . delete)
([?\C-w] . ?\C-c)))
;; Enable EXWM
(exwm-enable)
;; Configure compositor
(setq exwm-cm-opacity 95)
(exwm-cm-enable)
;; Show time in the mode line
(display-time-mode)))
(provide 'nixos)
|