feat: add straight package manager

This commit is contained in:
Rahul Martim Juliato
2025-04-05 21:39:35 -03:00
parent 3d83c32e19
commit ebfab32d5c
4 changed files with 367 additions and 326 deletions

1
.gitignore vendored
View File

@@ -55,4 +55,5 @@ history
ielm-history.eld ielm-history.eld
p/.extension/ p/.extension/
savehist savehist
straight/
var/ var/

View File

@@ -6,7 +6,6 @@ setup, you don't need to leave behind your favorite terminal or tools
like `yazi`, `starship`, `lazygit`, and `lazydocker` just to like `yazi`, `starship`, `lazygit`, and `lazydocker` just to
give Emacs a try. give Emacs a try.
Use Emacs the same way you'd use `Neovim`, seamlessly integrating it Use Emacs the same way you'd use `Neovim`, seamlessly integrating it
into your workflow inside terminal multiplexers like `tmux` or into your workflow inside terminal multiplexers like `tmux` or
`Zellij`, while also enjoying modern features such as `treesitter` `Zellij`, while also enjoying modern features such as `treesitter`
@@ -14,13 +13,11 @@ and `LSP`—no hassle.
![Demo](doc/demo01.png) ![Demo](doc/demo01.png)
**Emacs-Kick** isnt a full-fledged distribution but rather a **Emacs-Kick** isnt a full-fledged distribution but rather a
**starting point** for building your own Emacs configuration. Its **starting point** for building your own Emacs configuration. Its
designed to be especially accessible for Vim/Neovim users, letting you designed to be especially accessible for Vim/Neovim users, letting you
explore the power of Emacs without committing to its entire ecosystem. explore the power of Emacs without committing to its entire ecosystem.
You can take advantage of Emacs features without needing to master You can take advantage of Emacs features without needing to master
every Emacs-specific workflow right away. And if you find yourself every Emacs-specific workflow right away. And if you find yourself
enjoying it, you can: enjoying it, you can:
@@ -32,15 +29,13 @@ enjoying it, you can:
OR... OR...
- Just keep using it on TUI, it is all up to you! - Just keep using it on TUI, it is all up to you!
With Emacs-Kick, the goal is to empower you to explore Emacs at your With Emacs-Kick, the goal is to empower you to explore Emacs at your
own pace. The sky's the limit! 🌟 own pace. The sky's the limit! 🌟
## Minimum Requirements ## Minimum Requirements
- Emacs version **>=30** - Emacs version **>=30.1**
- You can verify your version by running: - You can verify your installed Emacs version by running:
```bash ```bash
emacs --version emacs --version
@@ -54,7 +49,6 @@ emacs --version
`~/.emacs.d`, please back it up before proceeding. You can do this `~/.emacs.d`, please back it up before proceeding. You can do this
by renaming the directory: by renaming the directory:
```bash ```bash
mv ~/.emacs.d ~/.emacs.d.backup mv ~/.emacs.d ~/.emacs.d.backup
``` ```
@@ -65,7 +59,6 @@ files such as `~/.emacs.d`, `~/.emacs`, `~/.emacs~`,
`~/.config/emacs`, `~/.config/doom`, `~/.config/cache/emacs` and `~/.config/emacs`, `~/.config/doom`, `~/.config/cache/emacs` and
any other related files. any other related files.
After deleting/backing up, clone the repository: After deleting/backing up, clone the repository:
```bash ```bash
@@ -74,7 +67,7 @@ git clone https://github.com/LionyxML/emacs-kick.git ~/.emacs.d
2. **Run the setup**: 2. **Run the setup**:
After cloning, install the configuration by running: After cloning, install the configuration by running:
```bash ```bash
emacs -nw --eval="(ek/first-install)" emacs -nw --eval="(ek/first-install)"
@@ -90,13 +83,15 @@ cd ~/.emacs.d/ && ./ek-reinstall.sh
Both methods will install all necessary packages and apply the Both methods will install all necessary packages and apply the
configuration. configuration.
**NOTE**: During the initial setup, you'll be prompted to install Tree-sitter
**NOTE**: You will be prompted to install Tree-sitter grammars and grammars and download some fonts. This configuration uses **Nerd Fonts** by
download some fonts (this configuration uses Nerd Fonts by default, so installing them now is highly recommended for the best experience.
default). While you can choose to do this later, it is highly On first launch, Emacs will also **native compile some external packages**,
recommended to complete these steps during the installation process which may take a little time. Additionally, the first time you perform certain
for the best experience! actions—like opening the tree explorer, Emacs may compile related components in
the background. This is completely normal and only happens once per feature.
You might notice a brief moment of sluggish performance during this initial
compilation.
3. **Set terminal mode by default**: 3. **Set terminal mode by default**:
@@ -131,24 +126,25 @@ emacs
``` ```
**Usage Tips**: **Usage Tips**:
- **Leader Key**: The leader key is set to `SPC` (spacebar), - **Leader Key**: The leader key is set to `SPC` (spacebar),
`which-key` is there to help you discover keybindings. `which-key` is there to help you discover keybindings.
- **Help Commands**: - **Help Commands**:
- `SPC h i` opens the Emacs info documentation (`M-x info`). - `SPC h i` opens the Emacs info documentation (`M-x info`).
- `SPC h v` allows you to explore available variables. - `SPC h v` allows you to explore available variables.
- `SPC h f` lets you explore functions. - `SPC h f` lets you explore functions.
- `SPC h k` displays keybindings. - `SPC h k` displays keybindings.
**Troubleshooting**: **Troubleshooting**:
- If you encounter any issues during installation, check the
`*Messages*` buffer for more information. You can switch between
buffers with `SPC SPC`, and navigate options using `C-p` and `C-n`.
- If you encounter any issues during installation, check the
`*Messages*` buffer for more information. You can switch between
buffers with `SPC SPC`, and navigate options using `C-p` and `C-n`.
## Available Commands ## Available Commands
| Keybinding | Action | | Keybinding | Action |
|---------------------|-------------------------------------------| | -------------- | ----------------------------------------- |
| `SPC` | Leader key | | `SPC` | Leader key |
| `C-d` | Scroll down | | `C-d` | Scroll down |
| `C-u` | Scroll up | | `C-u` | Scroll up |
@@ -211,7 +207,6 @@ emacs
...and a lot more, discoverable with which-key :) ...and a lot more, discoverable with which-key :)
## Contributing ## Contributing
This package is intentionally designed with a specific vision in mind, This package is intentionally designed with a specific vision in mind,
@@ -219,17 +214,14 @@ reflecting my own opinions and preferences. While contributions are
welcome, please understand that this configuration is quite welcome, please understand that this configuration is quite
opinionated. opinionated.
If you have suggestions or requests, they will be considered If you have suggestions or requests, they will be considered
carefully, but I cannot make any promises regarding implementation or carefully, but I cannot make any promises regarding implementation or
acceptance. Your input is valuable, and I appreciate any help or acceptance. Your input is valuable, and I appreciate any help or
feedback to improve the project. feedback to improve the project.
To contribute, feel free to open an issue or submit a pull To contribute, feel free to open an issue or submit a pull
request. Let's make this configuration even better together! request. Let's make this configuration even better together!
## About PRs ## About PRs
Always welcome, not a promise to accept though (see above). Please Always welcome, not a promise to accept though (see above). Please

View File

@@ -5,7 +5,7 @@ echo ">>> (re)Installing Emacs Kick ..."
sleep 2 sleep 2
echo ">>> Deleting packages, grammars and native compilation cache ..." echo ">>> Deleting packages, grammars and native compilation cache ..."
rm -rf eln-cache/ elpa/ tree-sitter/ rm -rf eln-cache/ elpa/ tree-sitter/ straight/
sleep 2 sleep 2
echo ">>> Starting Emacs and auto-package fetching/installing ..." echo ">>> Starting Emacs and auto-package fetching/installing ..."

96
init.el
View File

@@ -1,7 +1,8 @@
;;; init.el --- Emacs-Kick --- A feature rich Emacs config for (neo)vi(m)mers -*- lexical-binding: t; -*- ;;; init.el --- Emacs-Kick --- A feature rich Emacs config for (neo)vi(m)mers -*- lexical-binding: t; -*-
;; Author: Rahul Martim Juliato ;; Author: Rahul Martim Juliato
;; Version: 0.1.3
;; Package-Requires: ((emacs "30.0")) ;; Version: 0.2.0
;; Package-Requires: ((emacs "30.1"))
;; License: GPL-2.0-or-later ;; License: GPL-2.0-or-later
;;; Commentary: ;;; Commentary:
@@ -119,13 +120,38 @@
;; running Emacs as a server, such as 'What version of Node is my LSP using?'. ;; running Emacs as a server, such as 'What version of Node is my LSP using?'.
;; Again, this setup configures Emacs much like how a Vimmer would configure Neovim. ;; Again, this setup configures Emacs much like how a Vimmer would configure Neovim.
;; Emacs already comes with its on package manager.
;; Others are available, but let's stick with the defaults when it makes sense. ;; Emacs comes with a built-in package manager (`package.el'), and we'll use it
;; ;; when it makes sense. However, `straight.el' is a bit more user-friendly and
;; Requires the default Emacs package manager, similar to an 'import' in other languages. ;; reproducible, especially for newcomers and shareable configs like emacs-kick.
;; So we bootstrap it here.
(setq package-enable-at-startup nil) ;; Disables the default package manager.
;; Bootstraps `straight.el'
(setq straight-check-for-modifications nil)
(defvar bootstrap-version)
(let ((bootstrap-file
(expand-file-name
"straight/repos/straight.el/bootstrap.el"
(or (bound-and-true-p straight-base-dir)
user-emacs-directory)))
(bootstrap-version 7))
(unless (file-exists-p bootstrap-file)
(with-current-buffer
(url-retrieve-synchronously
"https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el"
'silent 'inhibit-cookies)
(goto-char (point-max))
(eval-print-last-sexp)))
(load bootstrap-file nil 'nomessage))
(straight-use-package '(project :type built-in))
(straight-use-package 'use-package)
;; In Emacs, a package is a collection of Elisp code that extends the editor's functionality, ;; In Emacs, a package is a collection of Elisp code that extends the editor's functionality,
;; much like plugins do in Neovim. ;; much like plugins do in Neovim. We need to import this package to add package archives.
(require 'package) (require 'package)
;; Add MELPA (Milkypostman's Emacs Lisp Package Archive) to the list of package archives. ;; Add MELPA (Milkypostman's Emacs Lisp Package Archive) to the list of package archives.
;; This allows you to install packages from this widely-used repository, similar to how ;; This allows you to install packages from this widely-used repository, similar to how
;; pip works for Python or npm for Node.js. While Emacs comes with ELPA (Emacs Lisp ;; pip works for Python or npm for Node.js. While Emacs comes with ELPA (Emacs Lisp
@@ -134,7 +160,6 @@
;; standard for Emacs users. You can also add more package archives later as needed. ;; standard for Emacs users. You can also add more package archives later as needed.
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t) (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
;; Define a global customizable variable `ek-use-nerd-fonts' to control the use of ;; Define a global customizable variable `ek-use-nerd-fonts' to control the use of
;; Nerd Fonts symbols throughout the configuration. This boolean variable allows ;; Nerd Fonts symbols throughout the configuration. This boolean variable allows
;; users to easily enable or disable the use of symbols from Nerd Fonts, providing ;; users to easily enable or disable the use of symbols from Nerd Fonts, providing
@@ -146,22 +171,24 @@
:group 'appearance) :group 'appearance)
;; From now on, you'll see configurations using the `use-package' macro, which ;; From now on, you'll see configurations using the `use-package` macro, which
;; allows us to organize our Emacs setup in a modular way. These configurations ;; allows us to organize our Emacs setup in a modular way. These configurations
;; look like this: ;; look like this:
;; ;;
;; (use-package some-package ;; (use-package some-package
;; :ensure t ;; Ensure the package is installed. ;; :ensure t ;; Ensure the package is installed (used with package.el).
;; :straight t ;; Use straight.el to install and manage this package.
;; :config ;; Configuration settings for the package. ;; :config ;; Configuration settings for the package.
;; ;; Additional settings can go here. ;; ;; Additional settings can go here.
;; ) ;; )
;; ;;
;; This approach simplifies package management, enabling us to easily control ;; This approach simplifies package management, enabling us to easily control
;; both built-in (first-party) and external (third-party) packages. While Emacs ;; both built-in (first-party) and external (third-party) packages. While Emacs
;; is a vast and powerful editor, using `use-package' helps streamline our ;; is a vast and powerful editor, using `use-package`—especially in combination
;; configuration for better organization and customization. As we proceed, ;; with `straight.el`—helps streamline our configuration for better organization,
;; you'll see smaller `use-package' declarations for specific packages, which ;; reproducibility, and customization. As we proceed, you'll see smaller
;; will help us enable the desired features and improve our workflow. ;; `use-package` declarations for specific packages, which will help us enable
;; the desired features and improve our workflow.
;;; EMACS ;;; EMACS
@@ -500,6 +527,7 @@
;; it easier to choose the correct one without typing out the entire string. ;; it easier to choose the correct one without typing out the entire string.
(use-package vertico (use-package vertico
:ensure t :ensure t
:straight t
:hook :hook
(after-init . vertico-mode) ;; Enable vertico after Emacs has initialized. (after-init . vertico-mode) ;; Enable vertico after Emacs has initialized.
:custom :custom
@@ -527,6 +555,7 @@
;; This combination provides a powerful and customizable completion experience. ;; This combination provides a powerful and customizable completion experience.
(use-package orderless (use-package orderless
:ensure t :ensure t
:straight t
:defer t ;; Load Orderless on demand. :defer t ;; Load Orderless on demand.
:after vertico ;; Ensure Vertico is loaded before Orderless. :after vertico ;; Ensure Vertico is loaded before Orderless.
:init :init
@@ -542,6 +571,7 @@
;; information, making it easier to choose the right option. ;; information, making it easier to choose the right option.
(use-package marginalia (use-package marginalia
:ensure t :ensure t
:straight t
:hook :hook
(after-init . marginalia-mode)) (after-init . marginalia-mode))
@@ -553,6 +583,7 @@
;; navigating buffers, files, and xrefs with ease. ;; navigating buffers, files, and xrefs with ease.
(use-package consult (use-package consult
:ensure t :ensure t
:straight t
:defer t :defer t
:init :init
;; Enhance register preview with thin lines and no mode line. ;; Enhance register preview with thin lines and no mode line.
@@ -571,6 +602,7 @@
;; Just `<leader> .' over any text, explore it :) ;; Just `<leader> .' over any text, explore it :)
(use-package embark (use-package embark
:ensure t :ensure t
:straight t
:defer t) :defer t)
@@ -579,6 +611,7 @@
;; that Consult commands, like previews, are available when using Embark. ;; that Consult commands, like previews, are available when using Embark.
(use-package embark-consult (use-package embark-consult
:ensure t :ensure t
:straight t
:hook :hook
(embark-collect-mode . consult-preview-at-point-mode)) ;; Enable preview in Embark collect mode. (embark-collect-mode . consult-preview-at-point-mode)) ;; Enable preview in Embark collect mode.
@@ -591,6 +624,7 @@
;; programming languages. ;; programming languages.
(use-package treesit-auto (use-package treesit-auto
:ensure t :ensure t
:straight t
:after emacs :after emacs
:custom :custom
(treesit-auto-install 'prompt) (treesit-auto-install 'prompt)
@@ -606,6 +640,7 @@
;; to use GitHub Flavored Markdown for enhanced compatibility. ;; to use GitHub Flavored Markdown for enhanced compatibility.
(use-package markdown-mode (use-package markdown-mode
:defer t :defer t
:straight t
:ensure t :ensure t
:mode ("README\\.md\\'" . gfm-mode) ;; Use gfm-mode for README.md files. :mode ("README\\.md\\'" . gfm-mode) ;; Use gfm-mode for README.md files.
:init (setq markdown-command "multimarkdown")) ;; Set the Markdown processing command. :init (setq markdown-command "multimarkdown")) ;; Set the Markdown processing command.
@@ -619,6 +654,7 @@
;; various modes and languages. ;; various modes and languages.
(use-package company (use-package company
:defer t :defer t
:straight t
:ensure t :ensure t
:custom :custom
(company-tooltip-align-annotations t) ;; Align annotations with completions. (company-tooltip-align-annotations t) ;; Align annotations with completions.
@@ -657,6 +693,7 @@
;; https://emacs-lsp.github.io/lsp-mode/ ;; https://emacs-lsp.github.io/lsp-mode/
(use-package lsp-mode (use-package lsp-mode
:ensure t :ensure t
:straight t
:defer t :defer t
:hook (;; Replace XXX-mode with concrete major mode (e.g. python-mode) :hook (;; Replace XXX-mode with concrete major mode (e.g. python-mode)
(bash-ts-mode . lsp) ;; Enable LSP for Bash (bash-ts-mode . lsp) ;; Enable LSP for Bash
@@ -717,6 +754,7 @@
;; different languages and frameworks. ;; different languages and frameworks.
(use-package lsp-tailwindcss (use-package lsp-tailwindcss
:ensure t :ensure t
:straight t
:defer t :defer t
:config :config
(add-to-list 'lsp-language-id-configuration '(".*\\.erb$" . "html")) ;; Associate ERB files with HTML. (add-to-list 'lsp-language-id-configuration '(".*\\.erb$" . "html")) ;; Associate ERB files with HTML.
@@ -738,6 +776,7 @@
;; a comparable experience in Emacs with its own set of customizations. ;; a comparable experience in Emacs with its own set of customizations.
(use-package diff-hl (use-package diff-hl
:defer t :defer t
:straight t
:ensure t :ensure t
:hook :hook
(find-file . (lambda () (find-file . (lambda ()
@@ -770,6 +809,7 @@
;; extend the powerful capabilities that Magit offers in Emacs. ;; extend the powerful capabilities that Magit offers in Emacs.
(use-package magit (use-package magit
:ensure t :ensure t
:straight t
:defer t) :defer t)
@@ -781,6 +821,7 @@
;; smooth workflow when working across multiple environments. ;; smooth workflow when working across multiple environments.
(use-package xclip (use-package xclip
:ensure t :ensure t
:straight t
:defer t :defer t
:hook :hook
(after-init . xclip-mode)) ;; Enable xclip mode after initialization. (after-init . xclip-mode)) ;; Enable xclip mode after initialization.
@@ -794,6 +835,7 @@
;; the code. ;; the code.
(use-package indent-guide (use-package indent-guide
:defer t :defer t
:straight t
:ensure t :ensure t
:hook :hook
(prog-mode . indent-guide-mode) ;; Activate indent-guide in programming modes. (prog-mode . indent-guide-mode) ;; Activate indent-guide in programming modes.
@@ -819,6 +861,7 @@
;; properly utilized. ;; properly utilized.
(use-package add-node-modules-path (use-package add-node-modules-path
:ensure t :ensure t
:straight t
:defer t :defer t
:custom :custom
;; Makes sure you are using the local bin for your ;; Makes sure you are using the local bin for your
@@ -840,6 +883,7 @@
;; experience. ;; experience.
(use-package evil (use-package evil
:ensure t :ensure t
:straight t
:defer t :defer t
:hook :hook
(after-init . evil-mode) (after-init . evil-mode)
@@ -988,6 +1032,7 @@
;; commands to fit the `evil' style. ;; commands to fit the `evil' style.
(use-package evil-collection (use-package evil-collection
:defer t :defer t
:straight t
:ensure t :ensure t
:custom :custom
(evil-collection-want-find-usages-bindings t) (evil-collection-want-find-usages-bindings t)
@@ -1008,6 +1053,7 @@
;; - https://github.com/emacs-evil/evil-surround?tab=readme-ov-file#examples ;; - https://github.com/emacs-evil/evil-surround?tab=readme-ov-file#examples
(use-package evil-surround (use-package evil-surround
:ensure t :ensure t
:straight t
:after evil-collection :after evil-collection
:config :config
(global-evil-surround-mode 1)) (global-evil-surround-mode 1))
@@ -1021,6 +1067,7 @@
;; Just use % for jumping between matching structures to check it out. ;; Just use % for jumping between matching structures to check it out.
(use-package evil-matchit (use-package evil-matchit
:ensure t :ensure t
:straight t
:after evil-collection :after evil-collection
:config :config
(global-evil-matchit-mode 1)) (global-evil-matchit-mode 1))
@@ -1034,6 +1081,7 @@
(use-package undo-tree (use-package undo-tree
:defer t :defer t
:ensure t :ensure t
:straight t
:hook :hook
(after-init . global-undo-tree-mode) (after-init . global-undo-tree-mode)
:init :init
@@ -1058,6 +1106,7 @@
;; a different color, making it easier to match pairs visually. ;; a different color, making it easier to match pairs visually.
(use-package rainbow-delimiters (use-package rainbow-delimiters
:defer t :defer t
:straight t
:ensure t :ensure t
:hook :hook
(prog-mode . rainbow-delimiters-mode)) (prog-mode . rainbow-delimiters-mode))
@@ -1067,6 +1116,7 @@
;; A simple major mode to provide .env files with color highlighting ;; A simple major mode to provide .env files with color highlighting
(use-package dotenv-mode (use-package dotenv-mode
:defer t :defer t
:straight t
:ensure t :ensure t
:config) :config)
@@ -1079,6 +1129,7 @@
;; jumping to definitions. ;; jumping to definitions.
(use-package pulsar (use-package pulsar
:defer t :defer t
:straight t
:ensure t :ensure t
:hook :hook
(after-init . pulsar-global-mode) (after-init . pulsar-global-mode)
@@ -1106,6 +1157,7 @@
;; experience by displaying relevant information in a compact format. ;; experience by displaying relevant information in a compact format.
(use-package doom-modeline (use-package doom-modeline
:ensure t :ensure t
:straight t
:defer t :defer t
:custom :custom
(doom-modeline-buffer-file-name-style 'buffer-name) ;; Set the buffer file name style to just the buffer name (without path). (doom-modeline-buffer-file-name-style 'buffer-name) ;; Set the buffer file name style to just the buffer name (without path).
@@ -1126,6 +1178,7 @@
;; and integrates with version control to show file states. ;; and integrates with version control to show file states.
(use-package neotree (use-package neotree
:ensure t :ensure t
:straight t
:custom :custom
(neo-show-hidden-files t) ;; By default shows hidden files (toggle with H) (neo-show-hidden-files t) ;; By default shows hidden files (toggle with H)
(neo-theme 'nerd) ;; Set the default theme for Neotree to 'nerd' for a visually appealing look. (neo-theme 'nerd) ;; Set the default theme for Neotree to 'nerd' for a visually appealing look.
@@ -1144,6 +1197,7 @@
(use-package nerd-icons (use-package nerd-icons
:if ek-use-nerd-fonts ;; Load the package only if the user has configured to use nerd fonts. :if ek-use-nerd-fonts ;; Load the package only if the user has configured to use nerd fonts.
:ensure t ;; Ensure the package is installed. :ensure t ;; Ensure the package is installed.
:straight t
:defer t) ;; Load the package only when needed to improve startup time. :defer t) ;; Load the package only when needed to improve startup time.
@@ -1154,6 +1208,7 @@
(use-package nerd-icons-dired (use-package nerd-icons-dired
:if ek-use-nerd-fonts ;; Load the package only if the user has configured to use nerd fonts. :if ek-use-nerd-fonts ;; Load the package only if the user has configured to use nerd fonts.
:ensure t ;; Ensure the package is installed. :ensure t ;; Ensure the package is installed.
:straight t
:defer t ;; Load the package only when needed to improve startup time. :defer t ;; Load the package only when needed to improve startup time.
:hook :hook
(dired-mode . nerd-icons-dired-mode)) (dired-mode . nerd-icons-dired-mode))
@@ -1167,6 +1222,7 @@
(use-package nerd-icons-completion (use-package nerd-icons-completion
:if ek-use-nerd-fonts ;; Load the package only if the user has configured to use nerd fonts. :if ek-use-nerd-fonts ;; Load the package only if the user has configured to use nerd fonts.
:ensure t ;; Ensure the package is installed. :ensure t ;; Ensure the package is installed.
:straight t
:after (:all nerd-icons marginalia) ;; Load after `nerd-icons' and `marginalia' to ensure proper integration. :after (:all nerd-icons marginalia) ;; Load after `nerd-icons' and `marginalia' to ensure proper integration.
:config :config
(nerd-icons-completion-mode) ;; Activate nerd icons for completion interfaces. (nerd-icons-completion-mode) ;; Activate nerd icons for completion interfaces.
@@ -1180,6 +1236,7 @@
;; with soft colors that are easy on the eyes. ;; with soft colors that are easy on the eyes.
(use-package catppuccin-theme (use-package catppuccin-theme
:ensure t :ensure t
:straight t
:config :config
(custom-set-faces (custom-set-faces
;; Set the color for changes in the diff highlighting to blue. ;; Set the color for changes in the diff highlighting to blue.
@@ -1210,16 +1267,7 @@
(message ">>> Configuring Nerd Fonts...") (message ">>> Configuring Nerd Fonts...")
(require 'nerd-icons) (require 'nerd-icons)
(nerd-icons-install-fonts) ;; Install all available nerd-fonts (nerd-icons-install-fonts) ;; Install all available nerd-fonts
(message ">>> Native compile 3rd-party packages...\n") (message ">>> Emacs-Kick installed! Press any key to close the installer and open Emacs normally. First boot will compile some extra stuff :)")
(require 'comp)
(native-compile-prune-cache) ;; Prune the native compilation cache to free up resources.
;; Iterate through all directories in the user's package directory.
(dolist (dir (directory-files package-user-dir t "^[^.]" t))
(when (file-directory-p dir) ;; Check if the current entry is a directory.
(byte-recompile-directory dir 0 t) ;; Byte compile all files in the directory.
(native-compile-async dir 'recursively))) ;; Asynchronously compile the directory and its subdirectories.
(message ">>> Emacs-Kick installed!!! Press any key to close the installer and open Emacs normally.") ;; Notify the user that the installation is complete.
(read-key) ;; Wait for the user to press any key. (read-key) ;; Wait for the user to press any key.
(kill-emacs)) ;; Close Emacs after installation is complete. (kill-emacs)) ;; Close Emacs after installation is complete.