summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcashmere <social@cashmere.rs>2026-06-17 18:02:19 +0200
committercashmere <social@cashmere.rs>2026-06-17 18:02:19 +0200
commitd22d0d53b18bd9d349f477eb0ab5fad192af1a84 (patch)
treede2cdb3183ed22ab7bfcdd95fb3de2f6dd00c9bd
parent23df9f84ccfdac6821449450401f91f00bafdb98 (diff)
downloademacs-d22d0d53b18bd9d349f477eb0ab5fad192af1a84.tar.gz
config: replace punch-line with svg-line mode-line
Use the svg-line fork (git.cashmere.rs, feat/tty-kitty-modeline) for the mode-line; segments (modal/evil, buffer, vc, weather, battery, position, major-mode) come from svg-line-segments in the fork, so the config just defines and activates the bar and sets the weather coordinates.
-rw-r--r--config.el47
-rw-r--r--config.org36
-rw-r--r--custom-vars.el21
-rw-r--r--themes/noctalia-theme.el68
4 files changed, 113 insertions, 59 deletions
diff --git a/config.el b/config.el
index 1869afc..08ac520 100644
--- a/config.el
+++ b/config.el
@@ -1052,8 +1052,7 @@ Temporarily disables notifications during the fetch."
(use-package kitty-graphics
- :ensure `,(my/package-recipe 'kitty-graphics
- '(:host github :repo "cashmeredev/kitty-graphics.el" :branch "testing"))
+ :ensure (:host github :repo "cashmeredev/kitty-graphics.el")
:demand t
:custom
(kitty-gfx-enable-video t)
@@ -2963,26 +2962,32 @@ so the working-tree diff stays visible until the user explicitly stages."
(use-package hide-mode-line
:ensure t)
-(use-package punch-line
- :ensure (:host github :repo "cashmeredev/punch-line")
+(use-package svg-line
+ :ensure (:host nil :repo "ssh://git.cashmere.rs/svg-line.git"
+ :branch "feat/tty-kitty-modeline")
:config
- (setq punch-line-left-separator " "
- punch-line-right-separator " "
- punch-show-git-info nil
- punch-show-buffer-position t
- punch-show-column-info t
- punch-show-erc-info nil
- punch-line-music-max-length 80
- punch-line-modal-divider-style 'block
- punch-line-section-backgrounds 'auto
- punch-line-glyph-style 'nerd
- punch-show-weather-info t
- punch-weather-longitude "10.41"
- punch-weather-latitude "53.25"
- punch-cpu-usage nil
- punch-show-processes-info nil
- punch-line-music-info nil)
- (punch-line-mode 1))
+ (require 'svg-line-segments)
+ (setq svg-line-weather-latitude "53.25"
+ svg-line-weather-longitude "10.41")
+ (svg-line-weather-mode 1)
+
+ (svg-line-define 'cashmere-mode-line
+ :target 'mode-line
+ :layout 'lines
+ :active #'mode-line-window-selected-p
+ :background (lambda () (face-background 'mode-line nil t))
+ :foreground (lambda () (face-foreground 'mode-line nil t))
+ :inactive-background (lambda () (face-background 'mode-line-inactive nil t))
+ :inactive-foreground (lambda () (face-foreground 'mode-line-inactive nil t))
+ :content
+ (lambda ()
+ (list (cons (list #'svg-line-segment-evil " "
+ #'svg-line-segment-buffer #'svg-line-segment-vc)
+ (list #'svg-line-segment-weather #'svg-line-segment-battery
+ #'svg-line-segment-position " "
+ #'svg-line-segment-major-mode)))))
+
+ (svg-line-activate 'cashmere-mode-line))
(use-package adaptive-wrap
:ensure t
diff --git a/config.org b/config.org
index ec6961e..7eba6c3 100644
--- a/config.org
+++ b/config.org
@@ -1230,8 +1230,7 @@ Only activates when running in a Kitty terminal (not in GUI Emacs).
#+begin_src emacs-lisp
(use-package kitty-graphics
- :ensure `,(my/package-recipe 'kitty-graphics
- '(:host github :repo "cashmeredev/kitty-graphics.el" :branch "testing"))
+ :ensure (:host github :repo "cashmeredev/kitty-graphics.el")
:demand t
:custom
(kitty-gfx-enable-video t)
@@ -3618,7 +3617,7 @@ Native =undo-redo= (via =evil-undo-system='undo-redo=); just raise the undo limi
:ensure t)
#+end_src
-** punch-line
+** COMMENT punch-line
#+begin_src emacs-lisp
(use-package punch-line
@@ -3643,6 +3642,37 @@ Native =undo-redo= (via =evil-undo-system='undo-redo=); just raise the undo limi
(punch-line-mode 1))
#+end_src
+** svg-line
+
+#+begin_src emacs-lisp
+(use-package svg-line
+ :ensure (:host nil :repo "ssh://git.cashmere.rs/svg-line.git"
+ :branch "feat/tty-kitty-modeline")
+ :config
+ (require 'svg-line-segments)
+ (setq svg-line-weather-latitude "53.25"
+ svg-line-weather-longitude "10.41")
+ (svg-line-weather-mode 1)
+
+ (svg-line-define 'cashmere-mode-line
+ :target 'mode-line
+ :layout 'lines
+ :active #'mode-line-window-selected-p
+ :background (lambda () (face-background 'mode-line nil t))
+ :foreground (lambda () (face-foreground 'mode-line nil t))
+ :inactive-background (lambda () (face-background 'mode-line-inactive nil t))
+ :inactive-foreground (lambda () (face-foreground 'mode-line-inactive nil t))
+ :content
+ (lambda ()
+ (list (cons (list #'svg-line-segment-evil " "
+ #'svg-line-segment-buffer #'svg-line-segment-vc)
+ (list #'svg-line-segment-weather #'svg-line-segment-battery
+ #'svg-line-segment-position " "
+ #'svg-line-segment-major-mode)))))
+
+ (svg-line-activate 'cashmere-mode-line))
+#+end_src
+
* soph
#+begin_src emacs-lisp
diff --git a/custom-vars.el b/custom-vars.el
index ce3e826..578163e 100644
--- a/custom-vars.el
+++ b/custom-vars.el
@@ -17,7 +17,26 @@
nushell-ts-mode offlineimap org-modern pdf-tools
ultra-scroll))
'(safe-local-variable-values
- '((eglot-server-programs
+ '((eval let ((host (car (split-string (system-name) "\\."))))
+ (setq-local eglot-workspace-configuration
+ `(:nixd
+ (:nixpkgs
+ (:expr
+ ,(format
+ "(import ./.).nixosConfigurations.%s.pkgs"
+ host))
+ :formatting (:command ["nixfmt"]) :options
+ (:nixos
+ (:expr
+ ,(format
+ "(import ./.).nixosConfigurations.%s.options"
+ host))
+ :home-manager
+ (:expr
+ ,(format
+ "(import ./.).nixosConfigurations.%s.options.home-manager.users.type.getSubOptions []"
+ host)))))))
+ (eglot-server-programs
((python-ts-mode python-mode) "rass" "--" "ty" "server" "--"
"ruff" "server"))
(eglot-server-programs (nix-mode "devenv" "lsp"))
diff --git a/themes/noctalia-theme.el b/themes/noctalia-theme.el
index 410db4c..85b3523 100644
--- a/themes/noctalia-theme.el
+++ b/themes/noctalia-theme.el
@@ -19,55 +19,55 @@
(deftheme noctalia "Noctalia theme with proper color contrast.")
(let* (;; Core surface colors
- (bg "#1f2335")
- (fg "#a9b1d6")
- (surface "#1f2335")
- (on-surface "#a9b1d6")
- (on-surface-variant "#c0caf5")
- (surface-variant "#2c314a")
- (surface-container "#2c314a")
- (surface-container-low "#252a3f")
- (surface-container-lowest "#212539")
- (surface-container-high "#343957")
- (surface-container-highest "#3b4264")
+ (bg "#eef1f5")
+ (fg "#192330")
+ (surface "#eef1f5")
+ (on-surface "#192330")
+ (on-surface-variant "#29394f")
+ (surface-variant "#d5dce4")
+ (surface-container "#d5dce4")
+ (surface-container-low "#e1e6ec")
+ (surface-container-lowest "#e9ecf1")
+ (surface-container-high "#c9d2dc")
+ (surface-container-highest "#bcc7d4")
;; Accent colors (always readable on surface)
- (primary "#7a88cf")
- (secondary "#d7729f")
- (tertiary "#9cd58a")
- (err "#f7768e")
+ (primary "#4a78b0")
+ (secondary "#5a8f70")
+ (tertiary "#7654b8")
+ (err "#b33a58")
;; Container colors (for BACKGROUNDS only, never as foreground text)
- (primary-container "#1d2c7a")
- (secondary-container "#811645")
- (tertiary-container "#3a8c21")
- (err-container "#bb0023")
+ (primary-container "#cad5e2")
+ (secondary-container "#bfddcb")
+ (tertiary-container "#d5cde4")
+ (err-container "#dec1c8")
;; On-color text (for text ON accent backgrounds)
- (on-primary "#1f2335")
- (on-secondary "#1f2335")
- (on-tertiary "#1f2335")
- (on-err "#1f2335")
+ (on-primary "#eef1f5")
+ (on-secondary "#eef1f5")
+ (on-tertiary "#eef1f5")
+ (on-err "#eef1f5")
;; On-container text (for text on container backgrounds)
- (on-primary-container "#daddf1")
- (on-secondary-container "#f4d7e4")
- (on-tertiary-container "#091106")
- (on-err-container "#fccfd7")
+ (on-primary-container "#172536")
+ (on-secondary-container "#1e2f25")
+ (on-tertiary-container "#211636")
+ (on-err-container "#3a131c")
;; Outline colors
- (outline-color "#626a9e")
- (outline-variant "#454a6f")
+ (outline-color "#71839b")
+ (outline-variant "#9eaabb")
;; Shadow
- (shadow "#181b2a")
+ (shadow "#d5dce4")
;; Auto-lightness variants: lighten in dark mode, darken in light mode
;; Used for heading levels 5-7, rainbow delimiters 5-7, terminal variants
- (primary-variant "#4356ba")
- (secondary-variant "#c53877")
- (tertiary-variant "#6cc152")
- (err-variant "#f32e52"))
+ (primary-variant "#7ea0c9")
+ (secondary-variant "#84b297")
+ (tertiary-variant "#533887")
+ (err-variant "#cf6b83"))
(custom-theme-set-faces
'noctalia