   (defvar-local narf--env-version nil)
   (defvar-local narf--env-command nil)
   (defvar powerline-height 23)
-  (setq-default
-   powerline-default-separator nil
-   spaceline-highlight-face-func 'spaceline-highlight-face-evil-state)
+  (defvar powerline-default-separator nil)
 
   :config
   (defface mode-line-is-modified nil "Face for mode-line modified symbol")
   (defface mode-line-buffer-file nil "Face for mode-line buffer file path")
 
   ;; Custom modeline segments
-  (spaceline-define-segment *buffer-size ""
-    "%I"
-    :when buffer-file-name
-    :tight-right t)
-
   (spaceline-define-segment *buffer-path
     (if buffer-file-name
-        (let* ((project-path (narf/project-root))
-               (buffer-path (f-relative buffer-file-name project-path))
-               (max-length 40))
-          (concat (projectile-project-name) "/"
-                  (if (> (length buffer-path) max-length)
-                      (let ((path (reverse (split-string buffer-path "/")))
-                            (output ""))
-                        (when (and path (equal "" (car path)))
-                          (setq path (cdr path)))
-                        (while (and path (< (length output) (- max-length 4)))
-                          (setq output (concat (car path) "/" output))
-                          (setq path (cdr path)))
-                        (when path
-                          (setq output (concat "../" output)))
-                        output)
-                    buffer-path)))
+        (let ((buffer-path (f-relative buffer-file-name (f-dirname (narf/project-root))))
+              (max-length 50))
+          (if (> (length buffer-path) max-length)
+              (let ((path (reverse (split-string buffer-path "/")))
+                    (output ""))
+                (when (and path (equal "" (car path)))
+                  (setq path (cdr path)))
+                (while (and path (< (length output) (- max-length 4)))
+                  (setq output (concat (car path) "/" output))
+                  (setq path (cdr path)))
+                (when path
+                  (setq output (concat "../" output)))
+                output)
+            buffer-path))
       "%b")
-    :face (if active 'mode-line-buffer-file 'mode-line-inactive)
-    :skip-alternate t
+    :face other-face
     :tight-right t)
 
-  (spaceline-define-segment *remote-host
-    "Hostname for remote buffers."
-    (concat "@" (file-remote-p default-directory 'host))
-    :when (file-remote-p default-directory 'host))
-
   (spaceline-define-segment *buffer-modified
-    (concat
-     (when buffer-file-name
-       (concat
-        (when (buffer-modified-p) "[+]")
-        (unless (file-exists-p buffer-file-name) "[!]")))
-     (if buffer-read-only "[RO]"))
-    :face mode-line-is-modified
+    (propertize
+     (concat (when buffer-file-name
+               (concat
+                (if (buffer-modified-p) "[+]")
+                (if (not (file-exists-p buffer-file-name)) "[!]")))
+             (if buffer-read-only "[RO]"))
+     'face 'mode-line-is-modified)
     :when (not (string-prefix-p "*" (buffer-name)))
     :skip-alternate t
     :tight t)

     ;; Left side
     '(((*macro-recording *anzu *iedit *evil-substitute *flycheck)
        :skip-alternate t
        :fallback *buffer-size)
       (*buffer-path *remote-host)
       *buffer-modified
       *vc
       )
     ;; Right side
     '((*selection-info :when active)
       *buffer-encoding-abbrev
       *major-mode
       *env-version
       (global :when active)
       ("%l/%c" *buffer-position)
       *pad

             (setq narf--flycheck-cache
                   (let ((fe (narf--flycheck-count 'error))
                         (fw (narf--flycheck-count 'warning))
                         ;; (fi (narf--flycheck-count 'info))
                         )
                     (concat
                      (if fe (propertize (format " ⚠%s " fe) 'face (if active 'spaceline-flycheck-error 'mode-line)))
                      (if fw (propertize (format " ⚠%s " fw) 'face (if active 'spaceline-flycheck-warning 'mode-line)))
                      ;; (if fi (propertize (format " ⚠%s " fi) 'face 'spaceline-flycheck-info))
                      )))))
    :when (and (bound-and-true-p flycheck-mode)
               (or flycheck-current-errors
                   (eq 'running flycheck-last-status-change)))
