Replace straight.el with nix
This commit is contained in:
		
							parent
							
								
									e80b231881
								
							
						
					
					
						commit
						1f9c5f8980
					
				
					 5 changed files with 190 additions and 23 deletions
				
			
		
							
								
								
									
										6
									
								
								early-init.el
									
										
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										6
									
								
								early-init.el
									
										
									
									
									
										
										
										Normal file → Executable file
									
								
							| 
						 | 
					@ -1,8 +1,12 @@
 | 
				
			||||||
(setq native-comp-speed -1)
 | 
					(setq native-comp-speed -1)
 | 
				
			||||||
(setq package-enable-at-startup nil)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
;; Anti-flashbang
 | 
					;; Anti-flashbang
 | 
				
			||||||
(custom-set-faces
 | 
					(custom-set-faces
 | 
				
			||||||
 '(default ((t (:foreground "#b7c9ee" :background "#0d1017")))))
 | 
					 '(default ((t (:foreground "#b7c9ee" :background "#0d1017")))))
 | 
				
			||||||
(menu-bar-mode -1)
 | 
					(menu-bar-mode -1)
 | 
				
			||||||
(tool-bar-mode -1)
 | 
					(tool-bar-mode -1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;; This defaults to XDG_CONFIG_HOME, which is bad because lots of
 | 
				
			||||||
 | 
					;; state gets written to it.
 | 
				
			||||||
 | 
					(setq user-emacs-directory
 | 
				
			||||||
 | 
					      (concat (file-name-as-directory (getenv "XDG_DATA_HOME")) "emacs"))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										80
									
								
								flake.lock
									
										
									
										generated
									
									
									
										Executable file
									
								
							
							
						
						
									
										80
									
								
								flake.lock
									
										
									
										generated
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1,80 @@
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  "nodes": {
 | 
				
			||||||
 | 
					    "emacs-overlay": {
 | 
				
			||||||
 | 
					      "inputs": {
 | 
				
			||||||
 | 
					        "flake-utils": "flake-utils",
 | 
				
			||||||
 | 
					        "nixpkgs": [
 | 
				
			||||||
 | 
					          "nixpkgs"
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "locked": {
 | 
				
			||||||
 | 
					        "lastModified": 1673667358,
 | 
				
			||||||
 | 
					        "narHash": "sha256-29xEYwKyYQQzpmN7bdCGRTNiSazkpFF6UWYx2RYaKJo=",
 | 
				
			||||||
 | 
					        "owner": "nix-community",
 | 
				
			||||||
 | 
					        "repo": "emacs-overlay",
 | 
				
			||||||
 | 
					        "rev": "1114c22aeb13c1c2344f237ec57bf155c9fc1a8f",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "original": {
 | 
				
			||||||
 | 
					        "owner": "nix-community",
 | 
				
			||||||
 | 
					        "repo": "emacs-overlay",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "flake-utils": {
 | 
				
			||||||
 | 
					      "locked": {
 | 
				
			||||||
 | 
					        "lastModified": 1667395993,
 | 
				
			||||||
 | 
					        "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
 | 
				
			||||||
 | 
					        "owner": "numtide",
 | 
				
			||||||
 | 
					        "repo": "flake-utils",
 | 
				
			||||||
 | 
					        "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "original": {
 | 
				
			||||||
 | 
					        "owner": "numtide",
 | 
				
			||||||
 | 
					        "repo": "flake-utils",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "nixpkgs": {
 | 
				
			||||||
 | 
					      "locked": {
 | 
				
			||||||
 | 
					        "lastModified": 1673612960,
 | 
				
			||||||
 | 
					        "narHash": "sha256-DWR7hrbecJKmUJCswk9MXZta710mq+3jZwTvHU/UfyY=",
 | 
				
			||||||
 | 
					        "owner": "NixOS",
 | 
				
			||||||
 | 
					        "repo": "nixpkgs",
 | 
				
			||||||
 | 
					        "rev": "e285dd0ca97c264003867c7329f0d1f4f028739c",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "original": {
 | 
				
			||||||
 | 
					        "id": "nixpkgs",
 | 
				
			||||||
 | 
					        "ref": "nixos-22.11",
 | 
				
			||||||
 | 
					        "type": "indirect"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "root": {
 | 
				
			||||||
 | 
					      "inputs": {
 | 
				
			||||||
 | 
					        "emacs-overlay": "emacs-overlay",
 | 
				
			||||||
 | 
					        "nixpkgs": "nixpkgs",
 | 
				
			||||||
 | 
					        "ts-fold": "ts-fold"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "ts-fold": {
 | 
				
			||||||
 | 
					      "flake": false,
 | 
				
			||||||
 | 
					      "locked": {
 | 
				
			||||||
 | 
					        "lastModified": 1673328482,
 | 
				
			||||||
 | 
					        "narHash": "sha256-6yQ35uJDAK531QNQZgloQaOQayRa8azOlOMbO8lXsHE=",
 | 
				
			||||||
 | 
					        "owner": "emacs-tree-sitter",
 | 
				
			||||||
 | 
					        "repo": "ts-fold",
 | 
				
			||||||
 | 
					        "rev": "75d6f9ed317b042b5bc7cb21503596d1c7a1b8c0",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "original": {
 | 
				
			||||||
 | 
					        "owner": "emacs-tree-sitter",
 | 
				
			||||||
 | 
					        "repo": "ts-fold",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "root": "root",
 | 
				
			||||||
 | 
					  "version": 7
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										102
									
								
								flake.nix
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										102
									
								
								flake.nix
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1,102 @@
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  inputs = {
 | 
				
			||||||
 | 
					    nixpkgs.url = "nixpkgs/nixos-22.11";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    emacs-overlay = {
 | 
				
			||||||
 | 
					      url = "github:nix-community/emacs-overlay";
 | 
				
			||||||
 | 
					      inputs.nixpkgs.follows = "nixpkgs";
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ts-fold = {
 | 
				
			||||||
 | 
					      url = "github:emacs-tree-sitter/ts-fold";
 | 
				
			||||||
 | 
					      flake = false;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  outputs = { ts-fold, nixpkgs, emacs-overlay, ... }: let
 | 
				
			||||||
 | 
					    system = "x86_64-linux";
 | 
				
			||||||
 | 
					    nix = import nixpkgs (let
 | 
				
			||||||
 | 
					      inherit (emacs-overlay.overlays) emacs package;
 | 
				
			||||||
 | 
					      grammers = (self: super: {
 | 
				
			||||||
 | 
					        tree-sitter-grammars = super.tree-sitter-grammars // {
 | 
				
			||||||
 | 
					          tree-sitter-rust = super.tree-sitter-grammars.tree-sitter-rust.overrideAttrs(_: {
 | 
				
			||||||
 | 
					            nativeBuildInputs = [ self.nodejs self.tree-sitter ];
 | 
				
			||||||
 | 
					            configurePhase = ''
 | 
				
			||||||
 | 
					                tree-sitter generate --abi 13 src/grammar.json
 | 
				
			||||||
 | 
					                '';
 | 
				
			||||||
 | 
					          });
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					    in {
 | 
				
			||||||
 | 
					      inherit system;
 | 
				
			||||||
 | 
					      overlays = [
 | 
				
			||||||
 | 
					        emacs
 | 
				
			||||||
 | 
					        package
 | 
				
			||||||
 | 
					        grammers
 | 
				
			||||||
 | 
					      ];
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					  in {
 | 
				
			||||||
 | 
					    packages.${system} = let
 | 
				
			||||||
 | 
					      custom-emacs =
 | 
				
			||||||
 | 
					        with nix; with pkgs;
 | 
				
			||||||
 | 
					        ((emacsPackagesFor emacs).emacsWithPackages (epkgs: with epkgs; [
 | 
				
			||||||
 | 
					          avy
 | 
				
			||||||
 | 
					          company
 | 
				
			||||||
 | 
					          editorconfig
 | 
				
			||||||
 | 
					          evil
 | 
				
			||||||
 | 
					          evil-collection
 | 
				
			||||||
 | 
					          evil-goggles
 | 
				
			||||||
 | 
					          evil-textobj-tree-sitter
 | 
				
			||||||
 | 
					          flycheck
 | 
				
			||||||
 | 
					          lsp-mode
 | 
				
			||||||
 | 
					          lsp-treemacs
 | 
				
			||||||
 | 
					          lsp-ui
 | 
				
			||||||
 | 
					          magit
 | 
				
			||||||
 | 
					          markdown-mode
 | 
				
			||||||
 | 
					          nix-mode reformatter # required by nix mode
 | 
				
			||||||
 | 
					          projectile
 | 
				
			||||||
 | 
					          rainbow-mode
 | 
				
			||||||
 | 
					          rustic
 | 
				
			||||||
 | 
					          tree-sitter
 | 
				
			||||||
 | 
					          tree-sitter-langs
 | 
				
			||||||
 | 
					          (trivialBuild {
 | 
				
			||||||
 | 
					            pname = "ts-fold";
 | 
				
			||||||
 | 
					            version = "0.1.0";
 | 
				
			||||||
 | 
					            src = ts-fold;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            buildInputs = [
 | 
				
			||||||
 | 
					              tree-sitter
 | 
				
			||||||
 | 
					              s
 | 
				
			||||||
 | 
					              fringe-helper
 | 
				
			||||||
 | 
					            ];
 | 
				
			||||||
 | 
					          })
 | 
				
			||||||
 | 
					          treemacs
 | 
				
			||||||
 | 
					          treemacs-evil
 | 
				
			||||||
 | 
					          treemacs-projectile
 | 
				
			||||||
 | 
					          treemacs-magit
 | 
				
			||||||
 | 
					          use-package
 | 
				
			||||||
 | 
					          vertico
 | 
				
			||||||
 | 
					          which-key
 | 
				
			||||||
 | 
					          ws-butler
 | 
				
			||||||
 | 
					        ]));
 | 
				
			||||||
 | 
					    in {
 | 
				
			||||||
 | 
					      emacs = custom-emacs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      module =
 | 
				
			||||||
 | 
					        with nix; {
 | 
				
			||||||
 | 
					          home.packages = [ custom-emacs ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          xdg.configFile."emacs".source = with pkgs;
 | 
				
			||||||
 | 
					            runCommandNoCC ".emacs.d" {
 | 
				
			||||||
 | 
					              nativeBuildInputs = [ emacs ];
 | 
				
			||||||
 | 
					            } ''
 | 
				
			||||||
 | 
					              cp ${./early-init.el} early-init.el
 | 
				
			||||||
 | 
					              cp ${./init.el} init.el
 | 
				
			||||||
 | 
					              cp ${./my-theme-theme.el} my-theme-theme.el
 | 
				
			||||||
 | 
					              install -d $out
 | 
				
			||||||
 | 
					              install *.el *.elc $out
 | 
				
			||||||
 | 
					            '';
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										25
									
								
								init.el
									
										
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										25
									
								
								init.el
									
										
									
									
									
										
										
										Normal file → Executable file
									
								
							| 
						 | 
					@ -47,26 +47,8 @@
 | 
				
			||||||
(add-hook 'lisp-mode-hook 'disable-tabs)
 | 
					(add-hook 'lisp-mode-hook 'disable-tabs)
 | 
				
			||||||
(add-hook 'emacs-lisp-mode-hook 'disable-tabs)
 | 
					(add-hook 'emacs-lisp-mode-hook 'disable-tabs)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;;;; Packages (straight.el)
 | 
					;; Packages
 | 
				
			||||||
 | 
					(require 'use-package)
 | 
				
			||||||
(defvar bootstrap-version)
 | 
					 | 
				
			||||||
(let ((bootstrap-file
 | 
					 | 
				
			||||||
       (expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
 | 
					 | 
				
			||||||
      (bootstrap-version 6))
 | 
					 | 
				
			||||||
  (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))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(setq straight-disable-native-compile t)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
;; Use-Package
 | 
					 | 
				
			||||||
(straight-use-package 'use-package)
 | 
					 | 
				
			||||||
(setq straight-use-package-by-default t)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
;; Evil (Vim Emulation)
 | 
					;; Evil (Vim Emulation)
 | 
				
			||||||
(use-package evil
 | 
					(use-package evil
 | 
				
			||||||
| 
						 | 
					@ -118,8 +100,7 @@
 | 
				
			||||||
  (add-hook 'prog-mode-hook #'ws-butler-mode))
 | 
					  (add-hook 'prog-mode-hook #'ws-butler-mode))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;; Code folding
 | 
					;; Code folding
 | 
				
			||||||
(use-package ts-fold
 | 
					(use-package ts-fold)
 | 
				
			||||||
  :straight (ts-fold :type git :host github :repo "emacs-tree-sitter/ts-fold"))
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
;; Markdown
 | 
					;; Markdown
 | 
				
			||||||
(use-package markdown-mode
 | 
					(use-package markdown-mode
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										0
									
								
								my-theme-theme.el
									
										
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										0
									
								
								my-theme-theme.el
									
										
									
									
									
										
										
										Normal file → Executable file
									
								
							
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue