(let ((indent 2))
  (setq standard-indent indent)
  (setq-default indent-tabs-mode nil)
  (setq-default tab-width 2)
  (setq c-basic-offset indent))
(load (expand-file-name "~/.quicklisp/slime-helper.el"))
(setq inferior-lisp-program "sbcl")
(defun font-size-to-height (size) (* 10 size))
(let ((font-size 14))
  (set-face-attribute 'default nil :height (font-size-to-height font-size)))
(setq mastodon-instance-url "https://shonk.phite.ro"
      mastodon-active-user "graphite")
(evil-mode 1)
(add-hook 'lisp-mode 'parinfer-rust-mode)
(require 'bshell)
(add-hook 'eshell-load-hook #'eat-eshell-mode)
(add-hook 'eshell-load-hook #'eat-eshell-visual-command-mode)
; (load (expand-file-name "~/.emacs.d/everblush-theme.el"))
(load-theme 'uwu)
(if (window-system)
    (set-frame-size (selected-frame) 80 20))
;; (add-hook 'c++-mode-hook 'irony-mode)
;; (add-hook 'c-mode-hook 'irony-mode)
;; (add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options)
(add-hook 'emacs-lisp-mode-hook 'parinfer-rust-mode)

;(push 'hotfuzz completion-styles)

(setq vertico-cycle nil)
(setq vertico-resize t)
(keymap-global-set "C-j" #'vertico-next-group)
(keymap-global-set "C-k" #'vertico-previous-group)
; (keymap-global-set "<tab>" #'vertico-insert)
(add-hook 'text-mode-hook (lambda ()
                            (keymap-set text-mode-map "<tab>" #'vertico-insert)))
(vertico-mode)

(savehist-mode)

(marginalia-mode 1)


(keymap-global-set "M-s M-g" #'consult-grep)
(keymap-global-set "M-s M-f" #'consult-find)
(keymap-global-set "M-s M-o" #'consult-outline)
(keymap-global-set "M-s M-l" #'consult-line)
(keymap-global-set "M-s M-b" #'consult-buffer)
(keymap-global-set "M-s M-m" #'consult-man)


(setq corfu-cycle t)
(setq corfu-auto t)
;(corfu-separator ?\s)
(global-corfu-mode)

(keymap-global-set "C-\\" #'eat)

(add-hook 'eat-mode-hook (lambda () (evil-mode nil)))
(evil-set-initial-state 'eat-mode 'emacs)
(setq evil-move-beyond-eol t)

(recentf-mode 1)
(setq recentf-max-menu-items 25)
(setq recentf-max-saved-items 25)
(keymap-global-set "C-x C-r" #'recentf)

(use-package lambda-line
  :straight (:type git :host github :repo "lambda-emacs/lambda-line")
  :custom
  (lambda-line-line-position 'bottom)
  (lambda-line-abbrev t)
  (lambda-line-hspace "  ")
  (lambda-line-prefix t)
  (lambda-line-prefix-padding nil)
  (lambda-line-status-invert nil)
  (lambda-line-gui-ro-symbol  " ⨂") ;; symbols
  (lambda-line-gui-mod-symbol " ⬤") 
  (lambda-line-gui-rw-symbol  " ◯")
  :config
  (lambda-line-mode)
  (when (eq lambda-line-position 'top)
    (setq-default mode-line-format (list "%_"))
    (setq mode-line-format (list "%_"))))

;; tab bar
(setq-default tab-bar-show 1)
(tab-bar-mode)

;; doom-modeline
(doom-modeline-mode 1)
(setq doom-modeline-height 15)

;; treesitter
(add-hook 'c-mode-hook (c-ts-mode))
(add-hook 'c++-mode-hook (c++-ts-mode))

;; eglot
(with-eval-after-load 'eglot
  (add-to-list 'eglot-server-programs
               '(c-mode "/home/ultra/.nix-profile/bin/clangd")
               '(c++-mode "/home/ultra/.nix-profile/bin/clangd")))
(add-hook 'c-mode-hook 'eglot-ensure)
(add-hook 'c-ts-mode-hook 'eglot-ensure)
(add-hook 'c++-ts-mode-hook 'eglot-ensure)

;; which-key
(which-key-setup-minibuffer)
(setq which-key-idle-delay 2000)
(setq which-key-idle-secondary-delay 0.05)
(which-key-mode)