Update README.md and remove reserved CPUs
This commit is contained in:
47
README.md
47
README.md
@@ -4,21 +4,50 @@ This repository hosts a minimal Emacs configuration with `early-init.el` and `in
|
|||||||
|
|
||||||
These files are designed to optimize startup time, configure essential settings, and manage package installations efficiently.
|
These files are designed to optimize startup time, configure essential settings, and manage package installations efficiently.
|
||||||
|
|
||||||
## Features
|
|
||||||
|
|
||||||
- Optimized garbage collection for faster startup.
|
|
||||||
- Suppression of unnecessary warnings and verbose outputs during byte compilation.
|
|
||||||
- Configuration of package archives (MELPA and ELPA).
|
|
||||||
- Disabling of unnecessary UI elements (menu bar, tool bar, scroll bar).
|
|
||||||
- Automatic installation of essential packages using use-package.
|
|
||||||
- Support for additional user-specific configurations.
|
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
```
|
```
|
||||||
git clone https://github.com/jamescherti/minimal-emacs.d ~/.emacs.d
|
git clone https://github.com/jamescherti/minimal-emacs.d ~/.emacs.d
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
1. **Performance Improvements:**
|
||||||
|
- Prefers loading newer compiled files.
|
||||||
|
- Increases the amount read from processes in a single chunk.
|
||||||
|
- Reduces rendering workload by not rendering cursors or regions in non-focused windows.
|
||||||
|
- Disables warnings from the legacy advice API and suppresses warnings about aliased variables.
|
||||||
|
- Avoids unnecessary network checks and excessive UI updates.
|
||||||
|
- Disables font compacting to avoid high memory usage.
|
||||||
|
- Customizes `file-name-handler-alist` for improved startup time and package load time.
|
||||||
|
- Reduces startup screen and message noise, including removing the "For information about GNU Emacs..." message.
|
||||||
|
- Configures Emacs to start with a scratch buffer in `fundamental-mode` to shave seconds off startup time.
|
||||||
|
- Delays garbage collection during startup to improve performance and resets it to a more reasonable value once Emacs has started.
|
||||||
|
|
||||||
|
2. **Native Compilation and Byte Compilation:**
|
||||||
|
- Configures `native-compile` settings
|
||||||
|
- Suppresses compiler warnings and errors during native compilation.
|
||||||
|
|
||||||
|
4. **UI Element Management:**
|
||||||
|
- Disables the startup screen and messages, including menu bar, tool bar, and scroll bars.
|
||||||
|
- Configures Emacs to avoid resizing frames and minimizes unnecessary UI updates.
|
||||||
|
|
||||||
|
5. **Package Management:**
|
||||||
|
- Configures package archives and priorities for MELPA, ELPA, and other repositories.
|
||||||
|
|
||||||
|
6. **Customizable Initialization Files:**
|
||||||
|
- Supports additional configuration files (`pre-init.el`, `post-init.el`, `pre-early-init.el`, and `post-early-init.el`) to allow further customization at different stages of the startup process.
|
||||||
|
|
||||||
|
7. **File Management:**
|
||||||
|
- Manages auto-save and backup files, including backup options and version control settings.
|
||||||
|
|
||||||
|
8. **User Experience Enhancements:**
|
||||||
|
- Configures user interface settings such as cursor behavior, scrolling, and response to prompts.
|
||||||
|
- Disables beeping and blinking to avoid distractions.
|
||||||
|
|
||||||
|
9. **Buffer and Window Configuration:**
|
||||||
|
- Sets default fringe widths and buffer boundaries.
|
||||||
|
- Configures smooth scrolling and cursor behavior for a more seamless editing experience.
|
||||||
|
|
||||||
## Update
|
## Update
|
||||||
|
|
||||||
|
|||||||
@@ -21,9 +21,6 @@
|
|||||||
(defvar minimal-emacs-gc-cons-threshold (* 16 1024 1024)
|
(defvar minimal-emacs-gc-cons-threshold (* 16 1024 1024)
|
||||||
"The value of `gc-cons-threshold' after Emacs startup.")
|
"The value of `gc-cons-threshold' after Emacs startup.")
|
||||||
|
|
||||||
(defvar minimal-emacs-native-comp-reserved-cpus 2
|
|
||||||
"Number of CPUs to reserve and not use for `native-compile'.")
|
|
||||||
|
|
||||||
;;; Load pre-early-init.el
|
;;; Load pre-early-init.el
|
||||||
(defvar minimal-emacs--default-user-emacs-directory user-emacs-directory
|
(defvar minimal-emacs--default-user-emacs-directory user-emacs-directory
|
||||||
"The default value of the `user-emacs-directory' variable.")
|
"The default value of the `user-emacs-directory' variable.")
|
||||||
@@ -175,19 +172,13 @@
|
|||||||
(setq initial-major-mode 'fundamental-mode
|
(setq initial-major-mode 'fundamental-mode
|
||||||
initial-scratch-message nil)))
|
initial-scratch-message nil)))
|
||||||
|
|
||||||
;;; Native comp and Byte comp
|
;;; Native compilation and Byte compilation
|
||||||
(defun minimal-emacs-calculate-native-comp-async-jobs ()
|
|
||||||
"Set `native-comp-async-jobs-number' based on the available CPUs."
|
|
||||||
;; The `num-processors' function is only available in Emacs >= 28.1
|
|
||||||
(max 1 (- (num-processors) minimal-emacs-native-comp-reserved-cpus)))
|
|
||||||
|
|
||||||
(if (and (featurep 'native-compile)
|
(if (and (featurep 'native-compile)
|
||||||
(fboundp 'native-comp-available-p)
|
(fboundp 'native-comp-available-p)
|
||||||
(native-comp-available-p))
|
(native-comp-available-p))
|
||||||
;; Activate `native-compile'
|
;; Activate `native-compile'
|
||||||
(setq native-comp-async-jobs-number
|
(setq native-comp-deferred-compilation t
|
||||||
(minimal-emacs-calculate-native-comp-async-jobs)
|
|
||||||
native-comp-deferred-compilation t
|
|
||||||
package-native-compile t)
|
package-native-compile t)
|
||||||
;; Deactivate the `native-compile' feature if it is not available
|
;; Deactivate the `native-compile' feature if it is not available
|
||||||
(setq features (delq 'native-compile features)))
|
(setq features (delq 'native-compile features)))
|
||||||
|
|||||||
Reference in New Issue
Block a user