86 lines
2.6 KiB
EmacsLisp
86 lines
2.6 KiB
EmacsLisp
(require 'dash)
|
|
(require 'exwm)
|
|
(require 'exwm-systemtray)
|
|
|
|
(exwm-systemtray-enable)
|
|
|
|
(display-battery-mode 1)
|
|
(display-time-mode 1)
|
|
|
|
(defvar newbuf "*dashboard*")
|
|
|
|
(defun discord ()
|
|
(interactive)
|
|
(call-process "discord" nil 0 nil))
|
|
|
|
(defun firefox ()
|
|
(interactive)
|
|
(let ((buff (--filter (string= "Firefox" (buffer-name it))
|
|
(buffer-list))))
|
|
(if buff
|
|
(apply 'switch-to-buffer buff)
|
|
(call-process "firefox" nil 0 nil))))
|
|
|
|
(defun rofi ()
|
|
(interactive)
|
|
(call-process "rofi" nil 0 nil "-show" "run"))
|
|
|
|
(defun pass ()
|
|
(interactive)
|
|
(call-process "/home/deppy/bin/cpypsk" nil 0 nil))
|
|
|
|
(defun scrot ()
|
|
(interactive)
|
|
(call-process "maim" nil 0 nil
|
|
"-s"
|
|
(concat "/home/deppy/img/scrot/" (format-time-string "%s" (current-time)) ".png")))
|
|
|
|
(setq exwm-input-global-keys
|
|
`((,(kbd "s-E") . exwm-exit)
|
|
(,(kbd "s-Q") . evil-quit)
|
|
;; Windowing
|
|
(,(kbd "s-h") . (lambda () (interactive) (evil-window-decrease-width 1)))
|
|
(,(kbd "s-j") . (lambda () (interactive) (select-window (next-window))))
|
|
(,(kbd "s-k") . (lambda () (interactive) (select-window (previous-window))))
|
|
(,(kbd "s-l") . (lambda () (interactive) (evil-window-increase-width 1)))
|
|
|
|
;; Maybe use window-right, window-left, etc, and add things to split in all directions too?
|
|
(,(kbd "s-J") . (lambda () (interactive)
|
|
(window-swap-states (selected-window) (next-window))))
|
|
(,(kbd "s-K") . (lambda () (interactive)
|
|
(window-swap-states (selected-window) (previous-window))))
|
|
(,(kbd "s-L") . (lambda () (interactive)
|
|
(select-window (split-window-right))
|
|
(switch-to-buffer ,newbuf)))
|
|
(,(kbd "s-H") . (lambda () (interactive)
|
|
(let ((cwin (selected-window))
|
|
(nwin (split-window-right)))
|
|
(window-swapstated cwin nwin)
|
|
(select-window nwin)
|
|
(switch-to-buffer ,newbuf))))
|
|
|
|
(,(kbd "s-r") . exwm-reset)
|
|
(,(kbd "s-f") . exwm-layout-set-fullscreen)
|
|
|
|
;; Applications
|
|
(,(kbd "s-<backspace>") . firefox)
|
|
(,(kbd "s-<return>") . multi-vterm)
|
|
(,(kbd "s-d") . rofi)
|
|
(,(kbd "s-p") . pass)
|
|
(,(kbd "<print>") . scrot)
|
|
|
|
;; Workspaces
|
|
,@(mapcar (lambda (i)
|
|
`(,(kbd (format "s-%d" i)) .
|
|
(lambda ()
|
|
(interactive)
|
|
(exwm-workspace-switch-create ,i))))
|
|
(number-sequence 0 9))))
|
|
|
|
(add-hook 'exwm-update-class-hook
|
|
(lambda () (exwm-workspace-rename-buffer exwm-class-name)))
|
|
|
|
(setq exwm-manage-force-tiling 1)
|
|
|
|
(exwm-init)
|