Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;; exwm
- (when (string= system-type "gnu/linux")
- (use-package exwm
- :ensure t
- :init
- :config
- (require 'exwm)
- (require 'exwm-config)
- (require 'exwm-systemtray)
- (require 'ido)
- (require 'exwm-randr)
- ;; Set the initial workspace number.
- (setq exwm-workspace-number 3)
- (setq exwm-randr-workspace-output-plist '(0 "HDMI1" 1 "HDMI2" 2 "eDP1"))
- ;; 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 window (M-n does this too)
- (dotimes (i 10)
- (exwm-input-set-key (kbd (format "s-%d" i))
- `(lambda ()
- (interactive)
- (winum-select-window-by-number ,i))))
- ;; 's-d': Launch application
- (exwm-input-set-key (kbd "s-d")
- (lambda (command)
- (interactive (list (read-shell-command "$ ")))
- (start-process-shell-command command nil command)))
- ;; Line-editing shortcuts
- (setq exwm-input-simulation-keys
- '())
- (setq exwm-workspace-show-all-buffers 1)
- ;; Configure Ido
- (exwm-config-ido)
- ;; Other configurations
- (exwm-config-misc)
- (exwm-randr-enable)
- (setq ediff-window-setup-function 'ediff-setup-windows-plain)
- (push ?\M-\s exwm-input-prefix-keys)
- (push ?\C-g exwm-input-prefix-keys)
- (delete ?\C-c exwm-input-prefix-keys)
- (delete ?\C-h exwm-input-prefix-keys)
- (exwm-enable)
- ;; Media keys
- (exwm-input-set-key
- (kbd "<XF86AudioRaiseVolume>")
- (lambda ()
- (interactive) (start-process-shell-command
- "pactl" nil "pactl set-sink-volume 0 +5% && pactl set-sink-volume 1 +5%")))
- (exwm-input-set-key
- (kbd "<XF86AudioLowerVolume>")
- (lambda ()
- (interactive) (start-process-shell-command
- "pactl" nil "pactl set-sink-volume 0 -5% && pactl set-sink-volume 1 -5%")))
- (exwm-input-set-key
- (kbd "<XF86AudioMute>")
- (lambda ()
- (interactive) (start-process-shell-command
- "pactl" nil "pactl set-sink-mute 0 toggle && pactl set-sink-mute 1 toggle")))
- (defun display-backlight-brightness ()
- (message "Backlight at %s"
- (car (split-string
- (shell-command-to-string "xbacklight -get")
- "\\." t))))
- (exwm-input-set-key
- (kbd "<XF86MonBrightnessUp>")
- (lambda ()
- (interactive)
- (start-process-shell-command
- "xbacklight" nil "xbacklight -inc 5")
- (display-backlight-brightness)
- ))
- (exwm-input-set-key
- (kbd "<XF86MonBrightnessDown>")
- (lambda ()
- (interactive)
- (start-process-shell-command
- "xbacklight" nil "xbacklight -dec 5")
- (display-backlight-brightness)))
- ;; s-l locks the screen using slock
- (exwm-input-set-key
- (kbd "s-l")
- (lambda ()
- (interactive)
- (start-process-shell-command
- "slock" nil "slock")
- ))
- (defun change-kbd-brightness (delta)
- (interactive "sBrightness delta: ")
- (start-process-shell-command
- "system76_keyboard.py"
- "*Messages*"
- (concat
- "~/projects/system76_keyboard/system76_keyboard.py change-brightness "
- delta)
- )
- )
- (defun change-kbd-color (color)
- (interactive "sColor (e.g. FFFFFF): ")
- (start-process-shell-command
- "system76_keyboard.py"
- "*Messages*"
- (concat
- "~/projects/system76_keyboard/system76_keyboard.py change-color "
- color)
- )
- )
- (evil-leader/set-key "h k ="
- (lambda ()
- (interactive)
- (change-kbd-brightness "+64")))
- (evil-leader/set-key "h k -"
- (lambda ()
- (interactive)
- (change-kbd-brightness "-64")))
- (evil-leader/set-key "h k c" 'change-kbd-color)
- (add-hook 'exwm-update-title-hook
- (lambda ()
- (rename-buffer exwm-title t)
- ))
- )
- )
- ;; Window management
- (use-package winum
- :ensure t
- :init
- (setq winum-keymap
- (let ((map (make-sparse-keymap)))
- (define-key map (kbd "M-0") 'winum-select-window-0-or-10)
- (define-key map (kbd "M-1") 'winum-select-window-1)
- (define-key map (kbd "M-2") 'winum-select-window-2)
- (define-key map (kbd "M-3") 'winum-select-window-3)
- (define-key map (kbd "M-4") 'winum-select-window-4)
- (define-key map (kbd "M-5") 'winum-select-window-5)
- (define-key map (kbd "M-6") 'winum-select-window-6)
- (define-key map (kbd "M-7") 'winum-select-window-7)
- (define-key map (kbd "M-8") 'winum-select-window-8)
- map))
- :config
- ;; Since I use spaceline for winum numbers, prevent winum from adding them
- (setq winum-auto-setup-mode-line nil)
- (winum-mode)
- )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement