fedora-csb-system-manager
 1;;; early-init.el --- Early init configuration file -*- lexical-binding: t; -*-
 2
 3;; Copyright (c) 2020-2023  Vincent Demeester <vincent@sbr.pm>
 4
 5;; Author: Vincent Demeester <vincent@sbr.pm>
 6;; URL: https://git.sr.ht/~vdemeester/home
 7;; Version: 0.1.0
 8;; Package-Requires: ((emacs "29.1"))
 9
10;; This file is NOT part of GNU Emacs.
11
12;; This file is free software: you can redistribute it and/or modify it
13;; under the terms of the GNU General Public License as published by the
14;; Free Software Foundation, either version 3 of the License, or (at
15;; your option) any later version.
16;;
17;; This file is distributed in the hope that it will be useful, but
18;; WITHOUT ANY WARRANTY; without even the implied warranty of
19;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
20;; General Public License for more details.
21;;
22;; You should have received a copy of the GNU General Public License
23;; along with this file.  If not, see <http://www.gnu.org/licenses/>.
24
25;;; Commentary:
26
27;; Prior to Emacs 27, the `init.el' was supposed to handle the
28;; initialisation of the package manager, by means of calling
29;; `package-initialize'.  Starting with Emacs 27, the default
30;; behaviour is to start the package manager before loading the init
31;; file.
32;;
33
34;; See my dotfiles: https://git.sr.ht/~vdemeester/home
35
36;;; Code:
37
38;; Do not initialize installed packages
39(setopt package-enable-at-startup nil
40	package-archives nil
41	package-quickstart nil)
42(setopt use-package-ensure-function 'ignore)
43
44;; Do not resize the frame at this early stage
45(setopt frame-inhibit-implied-resize t
46	frame-resize-pixelwise t
47	frame-title-format '("%b")) ;; do not add "GNU Emacs at …"
48
49;; Disable GUI elements
50(push '(menu-bar-lines . 0) default-frame-alist)
51(push '(tool-bar-lines . 0) default-frame-alist)
52(push '(vertical-scroll-bars) default-frame-alist)
53(menu-bar-mode -1)
54(tool-bar-mode -1)
55(scroll-bar-mode -1)
56(horizontal-scroll-bar-mode -1)
57
58(setopt use-dialog-box nil   ;; never use dialog-box (no mouse)
59	use-file-dialog nil  ;; never use file dialog (gtk)
60	use-short-answers t  ;; replace defalias yes-or-no-p
61	read-answer-short t) ;; accepts single-character answer, similar to above
62
63(setopt inhibit-startup-message t
64	inhibit-startup-screen t
65	inhibit-startup-echo-area-message user-login-name ; read the docstring
66	inhibit-startup-buffer-menu t)
67
68(setq gc-cons-threshold most-positive-fixnum
69      gc-cons-percentage 0.5)
70
71(defvar vde--file-name-handler-alist file-name-handler-alist)
72(defvar vde--vc-handled-backends vc-handled-backends)
73(setq file-name-handler-alist nil
74      vc-handled-backends nil)
75
76
77;; Ignore X resources; its settings would be redundant with the other settings
78;; in this file and can conflict with later config (particularly where the
79;; cursor color is concerned).
80(advice-add #'x-apply-session-resources :override #'ignore)
81(setopt inhibit-x-resources t)
82
83;;
84(when (getenv-internal "DEBUG")
85  (setq init-file-debug t
86	debug-on-error t))
87
88;; - Resetting garbage collection and file-name-handler values.
89(add-hook 'after-init-hook
90          `(lambda ()
91             (setq gc-cons-threshold 67108864 ; 64mb
92                   gc-cons-percentage 0.1
93                   file-name-handler-alist vde--file-name-handler-alist
94		   vc-handled-backends vde--vc-handled-backends)
95             (garbage-collect)) t)