diff options
author | Emile <git@emile.space> | 2025-02-10 19:34:33 +0100 |
---|---|---|
committer | Emile <git@emile.space> | 2025-02-10 19:34:33 +0100 |
commit | 89af5d64e2bc74f4c9a41926f0366ed9e2f9a35b (patch) | |
tree | 1979027002fac743916999fef0ea56f4dab5e7dd | |
parent | c4d4ae7ad1c95051e8b9770eebd883fa3dd1e5f3 (diff) |
chaos: a bit collection of random changes
-rw-r--r-- | nix/hosts/caladan/emacs_config.el | 196 | ||||
-rw-r--r-- | nix/hosts/caladan/home_emile.nix | 2 | ||||
-rw-r--r-- | nix/pkgs/aarch64-darwin.nix | 1 | ||||
-rw-r--r-- | nix/pkgs/libc-database/default.nix | 34 | ||||
-rw-r--r-- | nix/pkgs/x86_64-linux.nix | 1 |
5 files changed, 234 insertions, 0 deletions
diff --git a/nix/hosts/caladan/emacs_config.el b/nix/hosts/caladan/emacs_config.el new file mode 100644 index 0000000..dc62586 --- /dev/null +++ b/nix/hosts/caladan/emacs_config.el @@ -0,0 +1,196 @@ +(require 'package) +(package-initialize) +(add-to-list 'package-archives + '("melpa" . "https://melpa.org/packages/") t) +(unless package-archive-contents + (package-refresh-contents)) + +(dolist (package '(use-package sly corfu org)) + (unless (package-installed-p package) + (package-install package))) + +(when (display-graphic-p) + (tool-bar-mode 0) + (scroll-bar-mode 'left)) + +(load-theme 'leuven) ;; light theme +(setq pixel-scroll-precision-mode 1) +(xterm-mouse-mode 1) + +(setq standard-indent 2) +(setq create-lockfiles nil) +(setq delete-old-versions -1) +(setq make-backup-files nil) ; stop creating ~ files +(setq version-control t) +(setq coding-system-for-write 'utf-8) +(setq-default indent-tabs-mode nil) ;; use spaces, not tabs +(setq show-paren-delay 0) +(show-paren-mode) + +(setq custom-file (expand-file-name "custom.el" user-emacs-directory)) + +(add-to-list 'display-buffer-alist + '("\\`\\*\\(Warnings\\|Compile-Log\\)\\*\\'" + (display-buffer-no-window) + (allow-no-window . t))) + +(when (not (display-graphic-p)) + (menu-bar-mode -1)) + +;; general purpose emacs settings +(use-package emacs + :init + + ;; do not allow cursor in the minibuffer prompt + (setq minibuffer-prompt-properties + '(read-only t cursor-intangible t face minibuffer-prompt)) + (add-hook 'minibuffer-setup-hook #'cursor-intangible-mode) + + ;; support opening new minibuffers from inside existing minibuffers + (setq enable-recursive-minibuffers t) + + ;; Emacs 28 and newer: Hide commands in M-x which do not work in the current + ;; mode. Vertico commands are hidden in normal buffers. This setting is + ;; useful beyond Vertico. + (setq read-extended-command-predicate #'command-completion-default-include-p)) + +;; org-mode +(use-package org) +(define-key global-map "\C-cl" 'org-store-link) +(define-key global-map "\C-ca" 'org-agenda) +(setq org-log-done t) + +;; =============== plugins ================== + +;; Corfu - COmpletion in Region FUnction +;; https://github.com/minad/corfu +(use-package corfu + :custom + (corfu-cycle-tab t) + (corfu-auto t) + (corfu-auto-prefix 2) + (corfu-auto-delay 0.0) + (corfu-quit-at-boundary 'separator) + (corfu-echo-documentation 0.5) + (corfu-preview-current 'insert) + (corfu-preselect 'prompt) + :bind (:map corfu-map + ("M-SPC" . corfu-insert-separator) + ("RET" . nil) + ("TAB" . corfu-next) + ([tab] . corfu-next) + ("S-TAB" . corfu-previous) + ([backtab] . corfu-previous) + ("S-<return>" . corfu-insert)) + :init + (global-corfu-mode) + (corfu-history-mode) + + :config + (add-hook 'eshell-mode-hook + (lambda () + (setq-local corfu-quit-at-boundary t + corfu-quit-no-match t + corfu-auto nil) + (corfu-mode)))) + +;; Marginalia - Marginalia in the minibuffer +;; https://github.com/minad/marginalia +(use-package marginalia + :custom + (marginalia-max-relative-age 0) + (marginalia-align 'right) + :init + (marginalia-mode)) + +;; == Fancy icons == +;; all-the-icons +;; https://github.com/domtronn/all-the-icons.el +(use-package all-the-icons + :if (display-graphic-p)) + +;; ... also in completions +(use-package all-the-icons-completion + :after (marginalia all-the-icons) + :hook (marginalia . all-the-icons-completion-marginalia-setup) + :init (all-the-icons-completion-mode)) + +;; vectico.el - VERTical Interactive COmpletion +;; https://github.com/minad/vertico +(use-package vertico + :init (vertico-mode) + :custom (vertico-count 13) + (vertico-resize t) + (vertico-cycle nil) + :config (vertico-mode)) + +;; orderless - completion +;; This allows searching for space separated terms in any order +;; https://github.com/oantolin/orderless +(use-package orderless + :init (setq completion-styles '(orderless basic) + completion-category-defaults nil + completion-category-overrides '((file (styles partial-completion))))) + + + +;; markdown mode +;; https://jblevins.org/projects/markdown-mode/ +(use-package markdown-mode + :ensure t + :mode ("README\\.md\\'" . gfm-mode) + :init (setq markdown-command "multimarkdown")) + +;; Minibuffer with help when waiting too long +;; In emacs per default with Emacs v30 +(use-package which-key + :ensure t + :config + (setq which-key-idle-delay 0.1) + (setq which-key-idle-secondary-delay 0.1) + (which-key-mode)) + +;; flycheck - Syntax checking for GNU EmacsĀ¶ +;; https://www.flycheck.org/en/latest/ +(use-package flycheck + :ensure t + :init (global-flycheck-mode)) + +;; allow the deletion of selected text (don't know why this isn't implemented by default) +(use-package delsel + :ensure nil ; no need to install it as it is built-in, but needs to be activated + :hook (after-init . delete-selection-mode)) + +;; Configure the Lisp program for SLIME +(add-to-list 'exec-path "/Users/emile/.nix-profile/bin") +(defvar inferior-lisp-program "sbcl") + +;; configure parinfer to be enabled as a mode when the major lisp mode is enabled +(add-to-list 'load-path "/Users/emile/parinfer-rust") +(add-hook 'emacs-lisp-mode 'parinfer-rust-mode) +(add-hook 'emacs-lisp-mods (lambda () (lispy-mode 1))) + +; pixel perfect ultra precise low latency scrolling +(use-package ultra-scroll + ; if you git clone'd instead of package-vc-install + ;:load-path "~/code/emacs/ultra-scroll" + + :init + (setq scroll-conservatively 101 ; important! + scroll-margin 0) + :config + (ultra-scroll-mode 1)) + +(use-package breadcrumb + :ensure t) + +;(setq circe-network-options +; '(("Libera Chat" +; :tls t +; :tls-keylist (("/Users/emile/libera.crt" +; "/Users/emile/libera.key")) +; :sasl-external t +; :nick "hanemile" +; :channels ("#test")))) + +(provide '.emacs) ; makes flycheck happy diff --git a/nix/hosts/caladan/home_emile.nix b/nix/hosts/caladan/home_emile.nix index 7836608..80c8be4 100644 --- a/nix/hosts/caladan/home_emile.nix +++ b/nix/hosts/caladan/home_emile.nix @@ -439,6 +439,8 @@ drawio + libc-database + # blender # rustdesk diff --git a/nix/pkgs/aarch64-darwin.nix b/nix/pkgs/aarch64-darwin.nix index 081eb59..f5e8b60 100644 --- a/nix/pkgs/aarch64-darwin.nix +++ b/nix/pkgs/aarch64-darwin.nix @@ -2,4 +2,5 @@ final: prev: { vokobe = final.callPackage ./vokobe { inherit (final) naersk; }; r2wars-web = final.callPackage ./r2wars-web { }; remarvin = final.callPackage ./remarvin { }; + libc-database = final.callPackage ./libc-database {}; } diff --git a/nix/pkgs/libc-database/default.nix b/nix/pkgs/libc-database/default.nix new file mode 100644 index 0000000..4ddcf07 --- /dev/null +++ b/nix/pkgs/libc-database/default.nix @@ -0,0 +1,34 @@ +{ + pkgs ? import <nixpkgs> { }, + lib, + fetchFromGitHub, + ... +}: + +pkgs.stdenv.mkDerivation rec { + name = "libc-database-${version}"; + version = "master"; + + src = fetchFromGitHub { + owner = "niklasb"; + repo = "libc-database"; + rev = version; + sha256 = "Zysjhr76TenMarnoKo+M8DrTNbsnaXSoFZO1puPVoxU="; + }; + + # not building, we just want to download the repo + buildPhase = ''''; + + installPhase = '' + mkdir -p $out/bin + ls -l + cp add download dump find get identify $out/bin/ + ''; + + meta = { + description = "Build a database of libc offsets to simplify exploitation"; + homepage = "https://github.com/niklasb/libc-database"; + license = lib.license.mit; + maintainers = with lib.maintainers; [ hanemile ]; + }; +} diff --git a/nix/pkgs/x86_64-linux.nix b/nix/pkgs/x86_64-linux.nix index 081eb59..f5e8b60 100644 --- a/nix/pkgs/x86_64-linux.nix +++ b/nix/pkgs/x86_64-linux.nix @@ -2,4 +2,5 @@ final: prev: { vokobe = final.callPackage ./vokobe { inherit (final) naersk; }; r2wars-web = final.callPackage ./r2wars-web { }; remarvin = final.callPackage ./remarvin { }; + libc-database = final.callPackage ./libc-database {}; } |