 
 ;; modeline tabs
 (use-package moody
-  :after (:all (:any modus-operandi-theme modus-vivendi-theme) perspective )
+  :after (:all (:any modus-operandi-theme modus-vivendi-theme) project )
   :demand
   :custom
   (x-underline-at-descent-line t)

           (init-str (concat "--init={\"cache\":{\"directory\":\"" cache-dir "\"}}")))
      (add-to-list 'eglot-server-programs
                   `((c++-mode c-mode) "ccls" ,init-str))))

  ;; project-find-function which uses projectile methods to find
  ;; the projectile project associated with a directory.
  ;; If projectile not loaded, or directory is not in a project,
  ;; hopefully returns nil.
  (defun me:project-finder (dir)
    (if (boundp 'projectile-project-root-cache)
        (let ((root (projectile-project-root dir)))
          (and root (cons 'transient root)))))
  (add-to-list 'project-find-functions #'me:project-finder))

;; N.B. Completion when candidate is already typed out is broken in company.
;; See issues #451, #205, #150

  (defun me:find-some-files ()
    "Find files in project or fallback to current directory"
    (interactive)
    (if-let* ((project (project-current))
              (root-path (cdr project))
              (action (lambda (f) (with-ivy-window (find-file (expand-file-name f root-path)))))
              (files (project-files project)))
        (me:find-file "Find file: " files action 'me:find-some-files)
      (counsel-find-file)))

  (defun me:find-window-buffer()
    (interactive)
    "Find buffer from buffers previously used in window"
