mirror of
https://github.com/SqrtMinusOne/dotfiles.git
synced 2025-12-10 11:13:04 +03:00
81 lines
2.9 KiB
EmacsLisp
81 lines
2.9 KiB
EmacsLisp
;;; -*- lexical-binding: t -*-
|
|
(use-package doom-modeline
|
|
:straight t
|
|
;; :if (not (display-graphic-p))
|
|
:init
|
|
(setq doom-modeline-env-enable-python nil)
|
|
(setq doom-modeline-env-enable-go nil)
|
|
(setq doom-modeline-buffer-encoding 'nondefault)
|
|
(setq doom-modeline-hud t)
|
|
(setq doom-modeline-persp-icon nil)
|
|
(setq doom-modeline-persp-name nil)
|
|
(setq doom-modeline-display-misc-in-all-mode-lines nil)
|
|
(when my/is-termux
|
|
(setopt doom-modeline-icon nil))
|
|
:config
|
|
(setq doom-modeline-minor-modes nil)
|
|
(setq doom-modeline-irc nil)
|
|
(setq doom-modeline-buffer-state-icon nil)
|
|
(doom-modeline-mode 1))
|
|
|
|
(defun my/tab-bar-mode-line--format ()
|
|
(unless (derived-mode-p 'company-box-mode)
|
|
(cl-letf (((symbol-function 'window-pixel-width)
|
|
'frame-pixel-width)
|
|
((symbol-function 'window-margins)
|
|
(lambda (&rest _)
|
|
(list nil))))
|
|
(let ((doom-modeline-window-width-limit nil)
|
|
(doom-modeline--limited-width-p nil))
|
|
(format-mode-line
|
|
'("%e"
|
|
(:eval
|
|
(doom-modeline-format--main))))))))
|
|
|
|
(defun my/hide-mode-line-if-only-window ()
|
|
(let* ((windows (window-list))
|
|
(hide-mode-line-p (length= windows 1)))
|
|
(dolist (win windows)
|
|
(with-current-buffer (window-buffer win)
|
|
(unless (eq hide-mode-line-p hide-mode-line-mode)
|
|
(hide-mode-line-mode
|
|
(if hide-mode-line-p +1 -1)))))))
|
|
|
|
(define-minor-mode my/tab-bar-mode-line-mode
|
|
"Use tab-bar as mode line mode."
|
|
:global t
|
|
(if my/tab-bar-mode-line-mode
|
|
(progn
|
|
(tab-bar-mode +1)
|
|
(setq tab-bar-format '(my/tab-bar-mode-line--format))
|
|
(set-face-attribute 'tab-bar nil :inherit 'mode-line)
|
|
(add-hook 'window-configuration-change-hook #'my/hide-mode-line-if-only-window)
|
|
|
|
(dolist (buf (buffer-list))
|
|
(with-current-buffer buf
|
|
(doom-modeline-set-modeline 'minimal)))
|
|
(doom-modeline-set-modeline 'minimal 'default)
|
|
|
|
(dolist (frame (frame-list))
|
|
(with-selected-frame frame
|
|
(my/hide-mode-line-if-only-window))
|
|
(when-let (cb-frame (company-box--get-frame frame))
|
|
(set-frame-parameter cb-frame 'tab-bar-lines 0)))
|
|
(setenv "POLYBAR_BOTTOM" "false")
|
|
(when (fboundp #'my/exwm-run-polybar)
|
|
(my/exwm-run-polybar)))
|
|
(tab-bar-mode -1)
|
|
(setq tab-bar-format
|
|
'(tab-bar-format-history tab-bar-format-tabs tab-bar-separator tab-bar-format-add-tab))
|
|
(set-face-attribute 'tab-bar nil :inherit 'default)
|
|
(remove-hook 'window-configuration-change-hook #'my/hide-mode-line-if-only-window)
|
|
(global-hide-mode-line-mode -1)
|
|
(dolist (buf (buffer-list))
|
|
(with-current-buffer buf
|
|
(doom-modeline-set-modeline 'main)))
|
|
(doom-modeline-set-modeline 'main 'default)
|
|
(setenv "POLYBAR_BOTTOM" "true")
|
|
(when (fboundp #'my/exwm-run-polybar)
|
|
(my/exwm-run-polybar))))
|
|
|
|
(provide 'sqrt-doom-modeline)
|