This repository has been archived on 2024-10-22. You can view files and clone it, but cannot push or open issues or pull requests.
spacemacs/contrib/!window-management/eyebrowse/packages.el

96 lines
3.7 KiB
EmacsLisp
Raw Normal View History

2015-04-26 02:59:55 +00:00
;;; packages.el --- Colors Layer packages File for Spacemacs
;;
;; Copyright (c) 2012-2014 Sylvain Benner
;; Copyright (c) 2014-2015 Sylvain Benner & Contributors
;;
;; Author: Sylvain Benner <sylvain.benner@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs
;;
;; This file is not part of GNU Emacs.
;;
;;; License: GPLv3
(setq eyebrowse-packages '(eyebrowse))
(defun eyebrowse/init-eyebrowse ()
(use-package eyebrowse
:diminish eyebrowse-mode
:init
(progn
(setq eyebrowse-new-workspace #'spacemacs/home
eyebrowse-wrap-around t)
2015-04-26 02:59:55 +00:00
(eyebrowse-mode)
(defun spacemacs/workspace-number ()
"Return the number of the current workspace."
(let* ((num (eyebrowse--get 'current-slot))
2015-04-26 02:59:55 +00:00
(str (if num (int-to-string num))))
(cond
((not dotspacemacs-mode-line-unicode-symbols) str)
2015-04-26 02:59:55 +00:00
((equal str "1") "")
((equal str "2") "")
((equal str "3") "")
((equal str "4") "")
((equal str "5") "")
((equal str "6") "")
((equal str "7") "")
((equal str "8") "")
((equal str "9") "")
((equal str "0") ""))))
(defun spacemacs/workspaces-ms-rename ()
"Rename a workspace and get back to micro-state."
(interactive)
(eyebrowse-rename-window-config (eyebrowse--get 'current-slot))
(spacemacs/workspaces-micro-state))
(defun spacemacs//workspaces-ms-get-slot-name (window-config)
"Return the name for the given window-config"
(let ((slot (car window-config))
(caption (eyebrowse-format-slot window-config)))
(if (= slot current-slot)
(format "[%s]" caption)
caption)))
2015-04-26 02:59:55 +00:00
(defun spacemacs//workspaces-ms-documentation ()
"Return the docstring for the workspaces micro-state."
(let* ((current-slot (eyebrowse--get 'current-slot))
(window-configs (eyebrowse--get 'window-configs))
2015-04-26 02:59:55 +00:00
(window-config-slots (mapcar (lambda (x)
(number-to-string (car x)))
window-configs)))
(concat
"<" (if window-configs
(concat
(mapconcat 'spacemacs//workspaces-ms-get-slot-name
window-configs "> <") ">")
(when eyebrowse-display-help
(concat
"\n[0-9] to create/switch to a workspace, "
"[n] next, [p/N] previous, [TAB] back and forth, [c] close, "
"[r] rename"))))))
2015-04-26 02:59:55 +00:00
(spacemacs|define-micro-state workspaces
:doc (spacemacs//workspaces-ms-documentation)
:use-minibuffer t
:evil-leader "W"
:bindings
("0" eyebrowse-switch-to-window-config-0)
("1" eyebrowse-switch-to-window-config-1)
("2" eyebrowse-switch-to-window-config-2)
("3" eyebrowse-switch-to-window-config-3)
("4" eyebrowse-switch-to-window-config-4)
("5" eyebrowse-switch-to-window-config-5)
("6" eyebrowse-switch-to-window-config-6)
("7" eyebrowse-switch-to-window-config-7)
("8" eyebrowse-switch-to-window-config-8)
("9" eyebrowse-switch-to-window-config-9)
("<tab>" eyebrowse-last-window-config)
("C-i" eyebrowse-last-window-config)
("c" eyebrowse-close-window-config)
2015-04-26 02:59:55 +00:00
("n" eyebrowse-next-window-config)
("N" eyebrowse-prev-window-config)
("p" eyebrowse-prev-window-config)
("r" spacemacs/workspaces-ms-rename :exit t)
("s" eyebrowse-switch-to-window-config :exit t)))))