   (setq evil-normal-state-cursor 'box)  ; █
   (setq evil-emacs-state-cursor  'bar)) ; |
 
-;; Disable insert mode, emacs is better at handling the insert
-;; This needs to come after other evil configs
-(defalias 'evil-insert-state 'evil-emacs-state)
-
-
-;;; Custom keybindings
-(global-set-key (kbd "C-h i") 'my-lookup)
-(global-set-key (kbd "C-x z") 'doom/window-maximize-buffer)
- 
+;; custom keybinding for code navigation in evil modes
+;; same as my vim bindings
+;; (map! :n "M-g" #'lsp-ivy-workspace-symbol
+;;       :nv ",cc" #'comment-line
+;;       :nv ",O" #'neotree-toggle
+;;       :nv ",o" #'+neotree/find-this-file
+;;       :n ",f" #'lsp-format-buffer
+;;       :nv "TAB" #'+workspace/switch-right
+;;       :nv "<backtab>" #'+workspace/switch-left
+;;       :n ", SPC" #'evil-ex-nohighlight)
+;; other custom vim bindings
+;; (global-set-key (kbd "M-p") '+ivy/projectile-find-file)
+;; (global-set-key (kbd "M-u") 'evil-scroll-up)
+;; (global-set-key (kbd "M-d") 'evil-scroll-down)
+;; (global-set-key (kbd "M-v") 'evil-visual-block)
+
+(use-package perspective
+  :ensure t
+  :bind (("C-x b" . persp-switch-to-buffer*)
+         ("C-x k" . persp-kill-buffer*)))
+(persp-mode)
+
+;; custom keybinding for window management
+;; same as my tmux bindings
+(global-set-key (kbd "C-n z") 'doom/window-maximize-buffer)
+(global-set-key (kbd "C-n h") 'evil-window-left)
+(global-set-key (kbd "C-n H") 'evil-window-move-far-left)
+(global-set-key (kbd "C-n l") 'evil-window-right)
+(global-set-key (kbd "C-n L") 'evil-window-move-far-right)
+(global-set-key (kbd "C-n j") 'evil-window-down)
+(global-set-key (kbd "C-n J") 'evil-window-move-very-bottom)
+(global-set-key (kbd "C-n k") 'evil-window-up)
+(global-set-key (kbd "C-n K") 'evil-window-move-very-top)
+(global-set-key (kbd "C-n %") 'evil-window-vsplit)
+(global-set-key (kbd "C-n \"") 'evil-window-split)
+(global-set-key (kbd "C-n x") 'evil-window-delete)
+(global-set-key (kbd "C-n b") 'persp-ivy-switch-buffer)
+(global-set-key (kbd "C-n :") 'counsel-M-x)
+(global-set-key (kbd "C-n s") 'persp-switch)
+(global-set-key (kbd "C-n $") 'persp-rename)
+(global-set-key (kbd "C-n n") 'persp-next)
+(global-set-key (kbd "C-n p") 'persp-prev)
+
 ;;; init.el ends here
 (custom-set-variables
  ;; custom-set-variables was added by Custom.

Alternatively, use `doom/window-enlargen'."
  (interactive)
  (setq doom--maximize-last-wconf
     (if (and (null (cdr (cl-remove-if #'window-dedicated-p (window-list))))
                 doom--maximize-last-wconf)
            (ignore (set-window-configuration doom--maximize-last-wconf))
          (prog1 (current-window-configuration)

  :config
  (evil-collection-init))

;; free C-n for personal use. my favourite tmux mapping
(define-key evil-normal-state-map (kbd "C-n") nil)
(define-key evil-insert-state-map (kbd "C-n") nil)
(define-key evil-visual-state-map (kbd "C-n") nil)
(define-key evil-emacs-state-map (kbd "C-n") nil)
(define-key evil-motion-state-map (kbd "C-n") nil)
(global-set-key (kbd "C-n") nil)

;; key bindings
(define-key evil-normal-state-map (kbd ", SPC") 'evil-ex-nohighlight)
(define-key evil-normal-state-map (kbd ",cc") 'comment-line)
