mirror of
				https://github.com/materusPL/nixos-config
				synced 2025-10-31 04:30:27 +01:00 
			
		
		
		
	update
This commit is contained in:
		
							parent
							
								
									fd229ecd76
								
							
						
					
					
						commit
						371b1b1432
					
				| @ -1,6 +1,6 @@ | ||||
| { pkgs, lib, ... }: | ||||
| { | ||||
| 
 | ||||
|   #REGION test | ||||
|   #sound.enable = true; | ||||
|   security.rtkit.enable = true; | ||||
|   services.pipewire = { | ||||
| @ -9,20 +9,20 @@ | ||||
|     alsa.enable = true; | ||||
|     alsa.support32Bit = true; | ||||
|     pulse.enable = true; | ||||
|     systemWide = false; | ||||
|     systemWide = true; | ||||
|     jack.enable = true; | ||||
|   }; | ||||
|   hardware.pulseaudio.enable = false; | ||||
| 
 | ||||
|   environment.sessionVariables = | ||||
|     let | ||||
|       makePluginPath = format: | ||||
|         (lib.makeSearchPath format [ | ||||
|       makePluginPath = | ||||
|         format: | ||||
|         "$HOME/.${format}:" | ||||
|         + (lib.makeSearchPath format [ | ||||
|           "$HOME/.nix-profile/lib" | ||||
|           "/run/current-system/sw/lib" | ||||
|           "/etc/profiles/per-user/$USER/lib" | ||||
|         ]) | ||||
|         + ":$HOME/.${format}"; | ||||
|         ]); | ||||
|     in | ||||
|     { | ||||
|       ALSOFT_DRIVERS = "pulse"; | ||||
| @ -36,11 +36,37 @@ | ||||
| 
 | ||||
|     }; | ||||
| 
 | ||||
|   services.udev = { | ||||
|   services.udev = let | ||||
|     script = pkgs.writeShellScript "arch-mknod" '' | ||||
|       ACTION=$1 | ||||
|       KERNEL=$(basename $2) | ||||
|       MAJOR=$3 | ||||
|       MINOR=$4 | ||||
| 
 | ||||
| 
 | ||||
|       if (systemctl is-active --quiet systemd-nspawn@archlinux); then | ||||
|           if [[ $ACTION == "add" || "$ACTION" == "change"  ]]; then | ||||
|               machinectl shell root@archlinux /bin/bash -c " | ||||
|                   if ! [ -f /dev/$KERNEL ]; then | ||||
|                     mknod /dev/$KERNEL c $MAJOR $MINOR | ||||
|                     chmod 660 /dev/$KERNEL | ||||
|                     chown root:input /dev/$KERNEL | ||||
|                   fi | ||||
|               " | ||||
|           elif [[ $ACTION == "remove" ]]; then | ||||
|               machinectl shell root@archlinux /bin/rm /dev/$KERNEL | ||||
|           fi | ||||
|       fi | ||||
| 
 | ||||
|     ''; | ||||
|   in { | ||||
|     extraRules = '' | ||||
|       KERNEL=="rtc0", GROUP="audio" | ||||
|       KERNEL=="hpet", GROUP="audio" | ||||
|       DEVPATH=="/devices/virtual/misc/cpu_dma_latency", OWNER="root", GROUP="audio", MODE="0660" | ||||
| 
 | ||||
|        | ||||
|       SUBSYSTEM=="hidraw", KERNEL=="hidraw*", RUN+="${script} ''$env{ACTION} ''$env{DEVNAME} ''$env{MAJOR} ''$env{MINOR}" | ||||
|     ''; | ||||
|   }; | ||||
|   environment.systemPackages = with pkgs; [ | ||||
|  | ||||
| @ -102,10 +102,15 @@ in | ||||
|         "/:/run/host-root" | ||||
| 
 | ||||
|         "/run/udev" | ||||
|         "/run/pipewire" | ||||
| 
 | ||||
|         "/sys/class" | ||||
|         "/sys/devices" | ||||
| 
 | ||||
|         "/dev/fuse" | ||||
|         "/dev/snd" | ||||
|         "/dev/input" | ||||
|         "/dev/uinput" | ||||
|         "/dev/shm" | ||||
|         "/dev/kfd" | ||||
|         "/dev/dri" | ||||
| @ -131,9 +136,10 @@ in | ||||
|     overrideStrategy = "asDropin"; | ||||
|     serviceConfig = { | ||||
|       DeviceAllow = [ | ||||
|         "char-tty rwm" | ||||
|         "char-input rwm" | ||||
|         "char-drm rwm" | ||||
|         "char-* rwm" | ||||
|         "block-* rwm" | ||||
|         "/dev/shm rwm" | ||||
| 
 | ||||
|       ]; | ||||
|     }; | ||||
|   }; | ||||
|  | ||||
| @ -24,7 +24,8 @@ in | ||||
|     "rcu_nocbs=${materusArg.materusPC.vmCores}" | ||||
|     "nohz_full=${materusArg.materusPC.vmCores}" | ||||
|     "vfio_iommu_type1.allow_unsafe_interrupts=1" | ||||
|     "pcie_acs_override=downstream,multifunction" /*"pci-stub.ids=1002:744c"*/ | ||||
|     "pcie_acs_override=downstream,multifunction" | ||||
|     #''vfio-pci.ids="1002:744c"'' | ||||
|     "nox2apic" | ||||
|     "nvme_core.default_ps_max_latency_us=0" | ||||
|     "nvme_core.io_timeout=255" | ||||
| @ -32,10 +33,13 @@ in | ||||
|     "nvme_core.shutdown_timeout=10" | ||||
|     "amd_iommu=on" | ||||
|     "amdgpu.ppfeaturemask=0xffffffff" | ||||
|     "amdgpu.runpm=0" | ||||
|     "iommu=pt" | ||||
|     "psi=1" | ||||
|     "i915.force_probe=!56a6"  | ||||
|     "xe.force_probe=56a6" | ||||
|   ] ++ video; | ||||
|   boot.kernelModules = [ "pci-stub" "amdgpu" "i2c_dev" "kvm_amd" "vfio" "vfio_iommu_type1" "vfio-pci" "kvmfr" ]; | ||||
|   boot.kernelModules = [ "pci-stub" "amdgpu" "i2c_dev" "kvm_amd" "vfio" "vfio_iommu_type1" "vfio-pci" "kvmfr" "xe" ]; | ||||
|   boot.extraModprobeConfig = '' | ||||
|     options kvm_amd nested=1 avic=1 npt=1 sev=0 | ||||
|     options vfio_iommu_type1 allow_unsafe_interrupts=1 | ||||
| @ -49,7 +53,7 @@ in | ||||
| 
 | ||||
| 
 | ||||
|   boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "usbhid" "sd_mod" ]; | ||||
|   boot.initrd.kernelModules = [ "amdgpu" ]; | ||||
|   boot.initrd.kernelModules = [ "vfio-pci" "amdgpu" ]; | ||||
|    | ||||
|   boot.extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback kvmfr ]; | ||||
| 
 | ||||
|  | ||||
| @ -31,6 +31,8 @@ | ||||
|   hardware.opengl.driSupport32Bit = true; | ||||
|   hardware.opengl.extraPackages = with pkgs; [ | ||||
|     vaapiVdpau | ||||
|     vpl-gpu-rt | ||||
|     intel-media-driver  | ||||
|     libvdpau-va-gl | ||||
|     amdvlk | ||||
|     vkbasalt | ||||
|  | ||||
| @ -1,4 +1,9 @@ | ||||
| { pkgs, materusArg, lib, ... }: | ||||
| { | ||||
|   pkgs, | ||||
|   materusArg, | ||||
|   lib, | ||||
|   ... | ||||
| }: | ||||
| { | ||||
|   imports = [ | ||||
|     ./plasma.nix | ||||
| @ -19,7 +24,13 @@ | ||||
|     enableNixDevel = lib.mkDefault true; | ||||
|     editor.emacs.enable = true; | ||||
|     editor.code.fhs.enable = true; | ||||
|     editor.code.fhs.packages = (ps: with ps; let llvmpkgs = llvmPackages_18; in [ | ||||
|     editor.code.fhs.packages = ( | ||||
|       ps: | ||||
|       with ps; | ||||
|       let | ||||
|         llvmpkgs = llvmPackages_18; | ||||
|       in | ||||
|       [ | ||||
|         llvmpkgs.clang | ||||
|         llvmpkgs.llvm | ||||
|         llvmpkgs.bintools | ||||
| @ -82,15 +93,17 @@ | ||||
|         ldc | ||||
|         dmd | ||||
|         dub | ||||
|     ]); | ||||
| 
 | ||||
|      | ||||
|       ] | ||||
|     ); | ||||
| 
 | ||||
|   }; | ||||
| 
 | ||||
|   home.packages = [ | ||||
|     materusArg.pkgs.ffmpeg_7-amf-full | ||||
|     (materusArg.pkgs.polymc-qt5.wrap { extraJDKs = [ pkgs.graalvm-ce ]; extraLibs = [ ]; }) | ||||
|     (materusArg.pkgs.polymc.wrap { | ||||
|       extraJDKs = [ pkgs.graalvm-ce ]; | ||||
|       extraLibs = [ ]; | ||||
|     }) | ||||
|     pkgs.git-crypt | ||||
|     pkgs.obsidian | ||||
|   ]; | ||||
| @ -133,7 +146,11 @@ | ||||
|       exec = "${script} %U"; | ||||
|       icon = "brave-browser"; | ||||
|       terminal = false; | ||||
|       categories = [ "Application" "Network" "WebBrowser" ]; | ||||
|       categories = [ | ||||
|         "Application" | ||||
|         "Network" | ||||
|         "WebBrowser" | ||||
|       ]; | ||||
|       mimeType = [ | ||||
|         "application/pdf" | ||||
|         "application/rdf+xml" | ||||
|  | ||||
| @ -1,6 +1,5 @@ | ||||
| { config, pkgs, lib, ... }: | ||||
| { | ||||
|   services.displayManager.defaultSession = "plasma"; | ||||
| 
 | ||||
|   xdg.portal.enable = true; | ||||
|   xdg.portal.wlr.enable = true; | ||||
|  | ||||
| @ -1,5 +1,10 @@ | ||||
| { config, pkgs, lib, ... }: | ||||
| let | ||||
|   plasma-materus = pkgs.writeScript "plasma-materus" '' | ||||
|   export KWIN_DRM_DEVICES="/dev/dri/by-path/pci-0000\:53\:00.0-card" | ||||
|   ${pkgs.kdePackages.plasma-workspace}/libexec/plasma-dbus-run-session-if-needed ${pkgs.kdePackages.plasma-workspace}/bin/startplasma-wayland | ||||
|   ''; | ||||
| 
 | ||||
|   westonSddm = let xcfg = config.services.xserver; in  pkgs.writeText "weston.ini" | ||||
|     '' | ||||
|       [core] | ||||
| @ -21,7 +26,7 @@ let | ||||
|       mode=1920x1080@240 | ||||
| 
 | ||||
|       [output] | ||||
|       name=DP-2 | ||||
|       name=DP-4 | ||||
|       mode=off | ||||
| 
 | ||||
|       [output] | ||||
| @ -31,6 +36,8 @@ let | ||||
|     ''; | ||||
| in | ||||
| { | ||||
|   services.displayManager.defaultSession = "plasma-materus"; | ||||
|    | ||||
|   services.displayManager.sddm.enable = true; | ||||
|   services.displayManager.sddm.wayland.enable = true; | ||||
|   services.displayManager.sddm.wayland.compositor = lib.mkForce "weston"; | ||||
| @ -39,6 +46,17 @@ in | ||||
|     "--shell=kiosk" | ||||
|     "-c ${westonSddm}" | ||||
|   ]; | ||||
|   services.displayManager.sessionPackages = [ | ||||
|   ((pkgs.writeTextDir "share/wayland-sessions/plasma-materus.desktop" '' | ||||
|     [Desktop Entry] | ||||
|     Name=Plasma (Wayland Materus) | ||||
|     Comment=Plasma Desktop with KWIN_DRM_DEVICES env | ||||
|     Exec=${plasma-materus} | ||||
|     DesktopNames=KDE | ||||
|     Type=Application | ||||
|   '') | ||||
|   .overrideAttrs (_: {passthru.providedSessions = ["plasma-materus"];}))  | ||||
| ]; | ||||
| 
 | ||||
|   services.displayManager.sddm.settings = { | ||||
|     General = { | ||||
|  | ||||
| @ -14,13 +14,29 @@ | ||||
| 
 | ||||
|   systemd.tmpfiles.rules = [ "L+    /opt/rocm/hip   -    -    -     -    ${pkgs.rocmPackages.clr}" ]; | ||||
| 
 | ||||
|   # Gamepad | ||||
|   services.udev = { | ||||
|     packages = with pkgs; [ | ||||
|       game-devices-udev-rules | ||||
|     ]; | ||||
|   }; | ||||
|   hardware.uinput.enable = true; | ||||
|   hardware.steam-hardware.enable = true; | ||||
| 
 | ||||
|   nix.package = pkgs.nixVersions.nix_2_28; | ||||
|   programs.steam = { | ||||
|     enable = false; | ||||
|     remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play | ||||
|     dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server | ||||
|     localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers | ||||
|   }; | ||||
|   services.flatpak.enable = true; | ||||
|   services.gvfs.enable = true; | ||||
| 
 | ||||
|   services.xserver.xkb.layout = "pl"; | ||||
| 
 | ||||
|   services.xserver.enable = true; | ||||
|   services.xserver.videoDrivers = [ "amdgpu" ]; | ||||
|   #services.xserver.videoDrivers = [ "amdgpu" "intel" ]; | ||||
|   services.dbus.enable = true; | ||||
|   services.dbus.packages = [ pkgs.gcr ]; | ||||
| 
 | ||||
| @ -128,9 +144,6 @@ | ||||
|     autoStart = false; | ||||
|   }; | ||||
| 
 | ||||
|   hardware.sane.enable = true; | ||||
|   hardware.sane.extraBackends = [ pkgs.hplipWithPlugin ]; | ||||
| 
 | ||||
|   environment.enableAllTerminfo = true; | ||||
|   environment.pathsToLink = [ | ||||
|     "/share/zsh" | ||||
|  | ||||
| @ -7,9 +7,9 @@ in | ||||
|   config = lib.mkIf cfg.enable { | ||||
|     programs.neovim = { | ||||
|       enable = true; | ||||
|       package = materusArg.unstable.neovim-unwrapped; | ||||
|       package = pkgs.neovim-unwrapped; | ||||
|       coc.enable = true; | ||||
|       coc.package = materusArg.unstable.vimPlugins.coc-nvim; | ||||
|       coc.package = pkgs.vimPlugins.coc-nvim; | ||||
|       viAlias = true; | ||||
|       vimAlias = true; | ||||
|       vimdiffAlias = true; | ||||
| @ -25,7 +25,7 @@ in | ||||
|       extraPackages = with pkgs;[ | ||||
|       ]; | ||||
| 
 | ||||
|       plugins = with materusArg.unstable.vimPlugins;[ | ||||
|       plugins = with pkgs.vimPlugins;[ | ||||
|         syntastic | ||||
|         vim-fugitive | ||||
|         vim-airline | ||||
|  | ||||
| @ -5,6 +5,7 @@ | ||||
| #+PROPERTY: header-args :tangle no :noweb yes | ||||
| #+OPTIONS: \n:t | ||||
| #+auto_tangle: t | ||||
| 
 | ||||
| * Table of Contents    :noexport:TOC_3: | ||||
| - [[#early-init][Early Init]] | ||||
| - [[#init-core][Init Core]] | ||||
| @ -23,12 +24,14 @@ | ||||
|     - [[#modeline][Modeline]] | ||||
|     - [[#dashboard][Dashboard]] | ||||
|     - [[#highlight-indent-guides][Highlight Indent Guides]] | ||||
|     - [[#outli][Outli]] | ||||
|     - [[#visual-replace][Visual Replace]] | ||||
|   - [[#terminal][Terminal]] | ||||
|     - [[#eat][Eat]] | ||||
|     - [[#vterm][Vterm]] | ||||
|   - [[#navigation-and-completion][Navigation and Completion]] | ||||
|     - [[#helm][HELM]] | ||||
|     - [[#comapny][Comapny]] | ||||
|     - [[#minibuffer-orderless-vertico-marginalia-consult][minibuffer (orderless, vertico, marginalia, consult)]] | ||||
|     - [[#code-completion-cape-corfu][Code completion (Cape, corfu)]] | ||||
|     - [[#dirvish][Dirvish]] | ||||
|     - [[#treemacs][Treemacs]] | ||||
|   - [[#programming][Programming]] | ||||
| @ -66,9 +69,11 @@ | ||||
| - [[#keybindings][Keybindings]] | ||||
| - [[#final-code][Final Code]] | ||||
| - [[#links][Links]] | ||||
| - [[#tests][Tests]] | ||||
| - [[#archive][Archive]] | ||||
|   - [[#minibuffer-orderless-vertico-marginalia-consult][minibuffer (orderless, vertico, marginalia, consult)]] | ||||
|   - [[#code-completion-cape-corfu][Code completion (Cape, corfu)]] | ||||
|   - [[#navigation-and-completion-1][Navigation and completion]] | ||||
|     - [[#helm][HELM]] | ||||
|     - [[#comapny][Comapny]] | ||||
| 
 | ||||
| * Early Init | ||||
| #+begin_src emacs-lisp :tangle (expand-file-name "early-init.el" user-emacs-directory) :noweb-ref early-init | ||||
| @ -81,7 +86,9 @@ | ||||
| 
 | ||||
|   (setq c-default-style nil)                                                                ; Clear default styles for languages, will set them up later | ||||
|   (setq default-input-method nil)                                                           ; Disable default input method, I'm not using them anyway so far | ||||
|   (setq initial-major-mode 'fundamental-mode)                                               ; Use fundamental mode in scratch buffer, speed up loading, not really important when emacs used as daemon | ||||
| 
 | ||||
|   (setq initial-major-mode 'emacs-lisp-mode)                                               | ||||
| 
 | ||||
|   (setq auto-save-default nil)                                                              ; TODO: configure auto saves, disable for now | ||||
|   (setq backup-directory-alist | ||||
|         `((".*" . ,(concat user-emacs-directory "var/backups/"))))                          ; Set backup location | ||||
| @ -146,21 +153,17 @@ | ||||
|   ;;; NATIVE COMPILATION | ||||
| 
 | ||||
|   (setq native-comp-async-report-warnings-errors nil) ; Silence warnings | ||||
|   (setq native-comp-speed 3)                          ; Set native-comp speed | ||||
|   (setq native-comp-speed 2)                          ; Set native-comp speed | ||||
| 
 | ||||
|   (setq native-comp-jit-compilation t | ||||
|         ;;native-comp-deferred-compilation t  | ||||
|         native-comp-deferred-compilation t  | ||||
|         package-native-compile t) | ||||
| 
 | ||||
| 
 | ||||
|   ;; Setting up native-comp cache location | ||||
| 
 | ||||
|   (when (and (fboundp 'startup-redirect-eln-cache) | ||||
|              (fboundp 'native-comp-available-p) | ||||
|              (native-comp-available-p)) | ||||
|     (startup-redirect-eln-cache | ||||
|      (convert-standard-filename | ||||
|       (concat user-emacs-directory "var/eln-cache/")))) | ||||
| (when (boundp 'native-comp-eln-load-path) | ||||
|   (startup-redirect-eln-cache (expand-file-name "var/eln-cache/" user-emacs-directory))) | ||||
| #+end_src | ||||
| 
 | ||||
| * Init Core | ||||
| @ -176,7 +179,7 @@ | ||||
|     (print "WARN: emacs-build-time not set up, using current time") | ||||
|     (setq emacs-build-time (decode-time (current-time)))) | ||||
|   (add-to-list 'load-path (concat user-emacs-directory "etc/pkgs/"))                ; Extra load path for packages | ||||
| 
 | ||||
|   (defvar materus/nixos-config (getenv "MATERUS_CONFIG_DIR"))   | ||||
|   (setq read-process-output-max (* 1024 1024 3)) | ||||
| 
 | ||||
| #+END_src | ||||
| @ -237,6 +240,33 @@ | ||||
|            (use-package ,package :ensure nil ,@body)) | ||||
|       `(use-package ,package ,@body))) | ||||
| 
 | ||||
|   (defun materus/--outli-modes () | ||||
|     "Check if supported mode" | ||||
|     (or (eq major-mode 'nix-mode) | ||||
|         (eq major-mode 'nix-ts-mode) | ||||
|         (eq major-mode 'c-mode) | ||||
|         (eq major-mode 'c-ts-mode) | ||||
|         (eq major-mode 'c++-mode) | ||||
|         (eq major-mode 'c++-ts-mode))) | ||||
| 
 | ||||
|   (defun materus/--fix-outli-formatting (FORMATTER STATUS) | ||||
|     "Remove whitespaces before outli headers" | ||||
|     (when (and (materus/--outli-modes) | ||||
|                (eq STATUS :reformatted)) | ||||
|       (save-excursion | ||||
|         (save-restriction | ||||
|           (widen) | ||||
|           (goto-char (point-min)) | ||||
|           (while (re-search-forward (concat "^[ 	]+\\(" comment-start "\\*+ +[^ ].*\\)[ 	]*") nil t) | ||||
|             (replace-match "\\1")))))) | ||||
| 
 | ||||
|   (defun materus/--electric-indent-ignore-outli (char) | ||||
|     "Don't indent outli headers" | ||||
|     (when (materus/--outli-modes) | ||||
|       (save-excursion | ||||
|         (backward-char) | ||||
|         (beginning-of-line) | ||||
|         (if (not (looking-at-p  (concat "^\\(" comment-start "\\*+ +[^ ].*\\)[ 	]*"))) nil 'no-indent)))) | ||||
| #+END_src | ||||
| 
 | ||||
| ** Custom File | ||||
| @ -269,6 +299,8 @@ | ||||
|                                 (set-frame-parameter frame 'fullscreen 'maximized))  | ||||
|                 (select-frame-set-input-focus frame) ))) | ||||
|   (global-tab-line-mode 1) | ||||
|   (setq tab-line-close-tab-function 'kill-buffer) | ||||
| 
 | ||||
|   (setq window-divider-default-bottom-width 1) | ||||
|   (setq window-divider-default-right-width 1) | ||||
|   (window-divider-mode 1) | ||||
| @ -329,19 +361,19 @@ Setting up mouse | ||||
| #+end_src | ||||
| *** Modeline | ||||
| #+begin_src emacs-lisp | ||||
|   ;; (use-package doom-modeline | ||||
|   ;;   :init (setq doom-modeline-support-imenu t) | ||||
|   ;;   :hook (elpaca-after-init . doom-modeline-mode) | ||||
|   ;;   :config | ||||
|   ;;   (setq doom-modeline-icon t) | ||||
|   ;;   (setq doom-modeline-project-detection 'auto) | ||||
|   ;;   (setq doom-modeline-height 20) | ||||
|   ;;   (setq doom-modeline-enable-word-count t) | ||||
|   ;;   (setq doom-modeline-minor-modes t) | ||||
|   ;;   (setq display-time-24hr-format t) | ||||
|   ;;   (display-time-mode 1) | ||||
|   ;;   (column-number-mode 1) | ||||
|   ;;   (line-number-mode 1)) | ||||
|   (use-package doom-modeline | ||||
|     :init (setq doom-modeline-support-imenu t) | ||||
|     :hook (elpaca-after-init . doom-modeline-mode) | ||||
|     :config | ||||
|     (setq doom-modeline-icon t) | ||||
|     (setq doom-modeline-project-detection 'auto) | ||||
|     (setq doom-modeline-height 20) | ||||
|     (setq doom-modeline-enable-word-count t) | ||||
|     (setq doom-modeline-minor-modes t) | ||||
|     (setq display-time-24hr-format t) | ||||
|     (display-time-mode 1) | ||||
|     (column-number-mode 1) | ||||
|     (line-number-mode 1)) | ||||
| 
 | ||||
|   (use-package minions | ||||
|     :hook (elpaca-after-init . minions-mode)) | ||||
| @ -377,6 +409,20 @@ Setting up mouse | ||||
|   (use-package highlight-indent-guides | ||||
|     :hook ((prog-mode . highlight-indent-guides-mode))) | ||||
| #+end_src | ||||
| *** Outli | ||||
| #+begin_src emacs-lisp | ||||
|   (use-package outli | ||||
|     :ensure (:host github :repo "jdtsmith/outli") | ||||
|     :hook ((prog-mode . outli-mode))) | ||||
| #+end_src | ||||
| *** Visual Replace | ||||
| #+begin_src emacs-lisp | ||||
|   (use-package visual-replace | ||||
|     :defer t | ||||
|     :bind (("C-r" . visual-replace) | ||||
|            :map isearch-mode-map | ||||
|            ("C-r" . visual-replace-from-isearch))) | ||||
| #+end_src | ||||
| ** Terminal | ||||
| *** Eat | ||||
| #+begin_src emacs-lisp | ||||
| @ -414,40 +460,109 @@ Setting up mouse | ||||
| (materus/use-package vterm) | ||||
| #+end_src | ||||
| ** Navigation and Completion | ||||
| *** HELM | ||||
| *** minibuffer (orderless, vertico, marginalia, consult) | ||||
| #+begin_src emacs-lisp | ||||
|   (use-package helm | ||||
|     :config | ||||
|     (setq helm-x-icons-provider 'nerd-icons) | ||||
|     (setq helm-move-to-line-cycle-in-source nil) | ||||
|     (helm-mode 1) | ||||
|     ) | ||||
|   (use-package helm-projectile | ||||
|     :after (helm projectile)) | ||||
|   (use-package helm-ag | ||||
|     :after (helm)) | ||||
|   (use-package helm-rg | ||||
|     :after (helm))  | ||||
|   (use-package helm-ls-git | ||||
|     :after (helm)) | ||||
| #+end_src | ||||
| #+begin_src emacs-lisp :tangle no :noweb-ref keybindings | ||||
|   ;; Helm | ||||
|   (global-set-key (kbd "M-x") 'helm-M-x) | ||||
|   (global-set-key (kbd "C-x r b") #'helm-filtered-bookmarks) | ||||
|   (global-set-key (kbd "C-x C-f") #'helm-find-files) | ||||
|   (global-set-key (kbd "C-x b") #'helm-mini) | ||||
| #+end_src | ||||
| *** Comapny | ||||
| #+begin_src emacs-lisp | ||||
|     (use-package company | ||||
|       :hook | ||||
|       ((prog-mode . company-mode))) | ||||
|     (use-package slime-company | ||||
|       :if (executable-find "sbcl") | ||||
|       :after (company slime)) | ||||
|   (use-package orderless | ||||
|     :init | ||||
|     ;; Tune the global completion style settings to your liking! | ||||
|     ;; This affects the minibuffer and non-lsp completion at point. | ||||
|     (setq completion-styles '(basic partial-completion orderless) | ||||
|           completion-category-defaults nil | ||||
|           completion-category-overrides nil)) | ||||
|   (use-package consult) | ||||
|   (use-package marginalia) | ||||
|   (use-package embark) | ||||
|   (use-package embark-consult | ||||
|     :after (embark consult)) | ||||
| 
 | ||||
|   (use-package vertico | ||||
|     :ensure t | ||||
|     :after (consult marginalia embark) | ||||
|     :config | ||||
|     (setq completion-in-region-function | ||||
|           (lambda (&rest args) | ||||
|             (apply (if vertico-mode | ||||
|                        #'consult-completion-in-region | ||||
|                      #'completion--in-region) | ||||
|                    args))) | ||||
|     (vertico-mode 1) | ||||
|     (marginalia-mode 1)) | ||||
|   (use-package vertico-mouse | ||||
|     :config | ||||
|     (vertico-mouse-mode 1) | ||||
|     :ensure nil | ||||
|     :after (vertico)) | ||||
| #+end_src | ||||
| 
 | ||||
| *** Code completion (Cape, corfu) | ||||
| #+begin_src emacs-lisp | ||||
|   (use-package cape) | ||||
| 
 | ||||
|   (use-package corfu | ||||
|     :ensure t | ||||
|     :after (lsp-mode cape) | ||||
|     ;; Optional customizations | ||||
|     :custom | ||||
|     (corfu-cycle nil)                 ;; Enable cycling for `corfu-next/previous' | ||||
|     (corfu-auto t)                    ;; Enable auto completion | ||||
|     (global-corfu-minibuffer nil) | ||||
|     ;; (corfu-quit-at-boundary nil)   ;; Never quit at completion boundary | ||||
|     ;; (corfu-quit-no-match nil)      ;; Never quit, even if there is no match | ||||
|     (corfu-preview-current nil)       ;; Disable current candidate preview | ||||
|     ;; (corfu-preselect 'prompt)      ;; Preselect the prompt | ||||
|     ;; (corfu-on-exact-match nil)     ;; Configure handling of exact matches | ||||
| 
 | ||||
|     ;; Enable Corfu only for certain modes. See also `global-corfu-modes'. | ||||
|     ;; :hook ((prog-mode . corfu-mode) | ||||
|     ;;        (shell-mode . corfu-mode) | ||||
|     ;;        (eshell-mode . corfu-mode)) | ||||
| 
 | ||||
|     ;; Recommended: Enable Corfu globally.  This is recommended since Dabbrev can | ||||
|     ;; be used globally (M-/).  See also the customization variable | ||||
|     ;; `global-corfu-modes' to exclude certain modes. | ||||
|     :init | ||||
|     (global-corfu-mode 1) | ||||
|     (corfu-popupinfo-mode 1) | ||||
|     (corfu-history-mode 1) | ||||
| 
 | ||||
|     (defun materus/orderless-dispatch-flex-first (_pattern index _total) | ||||
|       (and (eq index 0) 'orderless-flex)) | ||||
| 
 | ||||
|     (defun materus/lsp-mode-setup-completion () | ||||
|       (setf (alist-get 'styles (alist-get 'lsp-capf completion-category-defaults)) | ||||
|             '(orderless)) | ||||
|       ;; Optionally configure the first word as flex filtered. | ||||
|       (add-hook 'orderless-style-dispatchers #'materus/orderless-dispatch-flex-first nil 'local) | ||||
|       ;; Optionally configure the cape-capf-buster. | ||||
|       (setq-local completion-at-point-functions (list (cape-capf-buster #'lsp-completion-at-point)))) | ||||
| 
 | ||||
|     :hook | ||||
|     (lsp-completion-mode . materus/lsp-mode-setup-completion)) | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   (use-package corfu-terminal | ||||
|     :after (corfu) | ||||
|     :config | ||||
|     (when (or (daemonp) (not (display-graphic-p))) | ||||
|       (corfu-terminal-mode))) | ||||
| 
 | ||||
|   (use-package corfu-mouse | ||||
|      :after (corfu) | ||||
|      :ensure (:type git :repo "https://codeberg.org/materus/emacs-corfu-mouse.git") | ||||
|      :config | ||||
|      (corfu-mouse-mode) | ||||
|      (keymap-set corfu--mouse-ignore-map "<mouse-movement>" 'ignore) | ||||
|      (keymap-set corfu-map "<mouse-movement>" 'ignore)) | ||||
| 
 | ||||
|   (use-package kind-icon | ||||
|     :after (corfu) | ||||
|     :config | ||||
|     (add-to-list 'corfu-margin-formatters #'kind-icon-margin-formatter)) | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  #+end_src | ||||
| *** Dirvish | ||||
| #+begin_src emacs-lisp | ||||
|   (use-package dirvish | ||||
| @ -503,6 +618,7 @@ Setting up mouse | ||||
| 
 | ||||
|   (add-hook 'prog-mode-hook 'display-line-numbers-mode) | ||||
|   (add-hook 'prog-mode-hook 'electric-indent-local-mode) | ||||
|   (add-hook 'electric-indent-functions 'materus/--electric-indent-ignore-outli) | ||||
| #+end_src | ||||
| **** LSP | ||||
| #+begin_src emacs-lisp | ||||
| @ -513,7 +629,7 @@ Setting up mouse | ||||
|     ;; (lsp-completion-provider :none) ;; we use Corfu! | ||||
|     :config | ||||
|     (setq lsp-keep-workspace-alive nil) | ||||
| 
 | ||||
|     (setq lsp-enable-on-type-formatting nil) | ||||
|      | ||||
|     (defun lsp-booster--advice-json-parse (old-fn &rest args) | ||||
|       "Try to parse bytecode instead of json." | ||||
| @ -564,6 +680,18 @@ Setting up mouse | ||||
|     (dap-auto-configure-mode 1)) | ||||
| 
 | ||||
| #+end_src | ||||
| **** Formatting | ||||
| #+begin_src emacs-lisp | ||||
|   (use-package format-all | ||||
|     :hook ((prog-mode . format-all-mode)) | ||||
|     :config | ||||
|     (defun format-all--buffer-from-hook () nil) ; I don't want formatting on save | ||||
|     (add-hook 'format-all-after-format-functions 'materus/--fix-outli-formatting) | ||||
|     (setq-default format-all-formatters   | ||||
|                   '(("Nix" (nixfmt)) | ||||
|                     ("C++" (clang-format "--fallback-style=microsoft")) | ||||
|                     ("C" (clang-format "--fallback-style=microsoft"))))) | ||||
| #+end_src | ||||
| *** Snippets | ||||
| #+begin_src emacs-lisp  | ||||
|   (use-package yasnippet | ||||
| @ -588,8 +716,8 @@ Setting up mouse | ||||
|     (add-hook 'c++-mode-hook 'display-line-numbers-mode) | ||||
|     (add-hook 'c++-ts-mode-hook 'lsp-deferred) | ||||
|     (add-hook 'c++-ts-mode-hook 'display-line-numbers-mode) | ||||
|     ;(when (treesit-language-available-p 'c) (push '(c-mode . c-ts-mode) major-mode-remap-alist)) | ||||
|     ;(when (treesit-language-available-p 'cpp) (push '(c++-mode . c++-ts-mode) major-mode-remap-alist)) | ||||
|     (when (treesit-language-available-p 'c) (push '(c-mode . c-ts-mode) major-mode-remap-alist)) | ||||
|     (when (treesit-language-available-p 'cpp) (push '(c++-mode . c++-ts-mode) major-mode-remap-alist)) | ||||
| 
 | ||||
|     (add-to-list 'c-default-style '(c-mode . "bsd")) | ||||
|     (add-to-list 'c-default-style '(c++-mode . "bsd")) | ||||
| @ -632,14 +760,13 @@ Setting up mouse | ||||
|   (use-package nix-mode) | ||||
|   (use-package nix-ts-mode) | ||||
|   (use-package lsp-nix | ||||
|     :after (lsp-mode nix-mode nix-ts-mode) | ||||
|     :after (lsp-mode nix-mode nix-ts-mode format-all) | ||||
|     :ensure nil | ||||
|     :config | ||||
|     (add-to-list 'lsp-disabled-clients '(nix-mode . nix-nil))  | ||||
|     (setq lsp-nix-nixd-server-path "nixd") | ||||
|     (when (executable-find "nixfmt")   | ||||
|       (setq lsp-nix-nixd-formatting-command [ "nixfmt" ]) ) | ||||
|      | ||||
|       (setq lsp-nix-nixd-formatting-command [ "nixfmt" ])) | ||||
|      | ||||
|     (unless lsp-nix-nixd-nixos-options-expr | ||||
|       (setq lsp-nix-nixd-nixos-options-expr (concat "(builtins.getFlake \"/etc/nixos\").nixosConfigurations." (system-name) ".options"))) | ||||
| @ -666,8 +793,7 @@ Setting up mouse | ||||
|   (use-package slime | ||||
|     :if (executable-find "sbcl") | ||||
|     :config | ||||
|     (setq inferior-lisp-program "sbcl") | ||||
|     (slime-setup '(slime-fancy slime-company))) | ||||
|     (setq inferior-lisp-program "sbcl")) | ||||
| #+end_src | ||||
| *** Shell | ||||
| **** Bash | ||||
| @ -885,10 +1011,6 @@ Setting up mouse | ||||
| 
 | ||||
|     ;; CUA-like global | ||||
|     (define-key global-map (kbd "C-s") 'save-buffer) | ||||
|     (define-key global-map (kbd "C-r") 'query-replace) | ||||
|     (define-key global-map (kbd "C-S-r") 'replace-string) | ||||
|     (define-key global-map (kbd "M-r") 'query-replace-regexp) | ||||
|     (define-key global-map (kbd "M-S-r") 'replace-regexp) | ||||
|     (define-key global-map (kbd "C-a") 'mark-whole-buffer) | ||||
|     (define-key global-map (kbd "C-f") 'isearch-forward) | ||||
|     (define-key global-map (kbd "C-S-f") 'isearch-backward) | ||||
| @ -922,7 +1044,6 @@ Setting up mouse | ||||
|   (add-hook 'elpaca-after-init-hook #'materus/keybind-set ) | ||||
| #+end_src | ||||
| 
 | ||||
| 
 | ||||
| * Final Code | ||||
| #+begin_src emacs-lisp :tangle (expand-file-name "init.el" user-emacs-directory) :noweb-ref final | ||||
|   ;;; -*- lexical-binding: t; -*- | ||||
| @ -936,115 +1057,80 @@ Setting up mouse | ||||
|   <<init-custom-file>> | ||||
| #+end_src | ||||
| Make copy in this repository | ||||
| #+begin_src emacs-lisp :tangle ./early-init.el | ||||
| #+begin_src emacs-lisp :tangle (if (not (string= default-directory user-emacs-directory)) "./early-init.el" "no") | ||||
|   <<early-init>> | ||||
| #+end_src | ||||
| #+begin_src emacs-lisp :tangle ./init.el | ||||
| #+begin_src emacs-lisp :tangle (if (not (string= default-directory user-emacs-directory)) "./init.el" "no") | ||||
|   <<final>> | ||||
| #+end_src | ||||
| * Links | ||||
| [[https://github.com/emacs-tw/awesome-emacs][awesome-emacs]] | ||||
| [[https://github.com/emacs-tw/awesome-emacs][awesome-emacs]] - Nice list of Emacs Packages | ||||
| [[https://codeberg.org/ashton314/emacs-bedrock][Emacs Bedrock]] - Initial Config to base on | ||||
| [[https://github.com/benide/emacs-config][benide Config]] - Took use-package macro for NixOS from there | ||||
| [[https://gitlab.com/dwt1/dotfiles/-/blob/master/.config/emacs/config.org][DT's Config]] - Some inspiration | ||||
| * Tests | ||||
| :PROPERTIES: | ||||
| :header-args: :tangle no | ||||
| :END: | ||||
| #+begin_src emacs-lisp :tangle no | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   (let* ((current-pos (point)) | ||||
|          (start (re-search-backward "^[ \t]*\\(#\\|//\\|;;\\)-NARROW_START[ \t]+\\[\\(.*\\)\\]" nil t)) | ||||
|          (match (match-string-no-properties 2)) | ||||
|          (end (re-search-forward (concat "^[ \t]*\\(#\\|//\\|;;\\)-NARROW_END[ \t]+\\[\\" (regexp-quote match) "\\]") nil t)))  | ||||
|     (if (buffer-narrowed-p) | ||||
|         (progn (widen) (goto-char current-pos)) | ||||
|       (progn  | ||||
|         (if start | ||||
|             (if end  | ||||
|                 (if ( >= end current-pos) (narrow-to-region start end) | ||||
|                   (message "Not between narrow tags")) | ||||
|               (message "Not between narrow tags")) | ||||
|           (message "Not between narrow tags")) | ||||
|         (goto-char current-pos))))  | ||||
| #+end_src | ||||
| * Archive | ||||
| :PROPERTIES: | ||||
| :header-args: :tangle no | ||||
| :END: | ||||
| ** minibuffer (orderless, vertico, marginalia, consult) | ||||
| ** Navigation and completion | ||||
| *** HELM | ||||
| #+begin_src emacs-lisp | ||||
|   (use-package orderless | ||||
|     :init | ||||
|     ;; Tune the global completion style settings to your liking! | ||||
|     ;; This affects the minibuffer and non-lsp completion at point. | ||||
|     (setq completion-styles '(basic partial-completion orderless) | ||||
|           completion-category-defaults nil | ||||
|           completion-category-overrides nil)) | ||||
|   (use-package consult) | ||||
|   (use-package marginalia) | ||||
| 
 | ||||
|    | ||||
| 
 | ||||
|   (use-package vertico | ||||
|     :after (consult marginalia) | ||||
|   (use-package helm | ||||
|     :config | ||||
|     (setq completion-in-region-function | ||||
|           (lambda (&rest args) | ||||
|             (apply (if vertico-mode | ||||
|                        #'consult-completion-in-region | ||||
|                      #'completion--in-region) | ||||
|                    args))) | ||||
|     (vertico-mode 1) | ||||
|     (marginalia-mode 1)) | ||||
|   (use-package vertico-mouse | ||||
|     :config | ||||
|     (vertico-mouse-mode 1) | ||||
|     :ensure nil | ||||
|     :after (vertico)) | ||||
|     (setq helm-x-icons-provider 'nerd-icons) | ||||
|     (setq helm-move-to-line-cycle-in-source nil) | ||||
|     (helm-mode 1) | ||||
|     ) | ||||
|   (use-package helm-projectile | ||||
|     :after (helm projectile)) | ||||
|   (use-package helm-ag | ||||
|     :after (helm)) | ||||
|   (use-package helm-rg | ||||
|     :after (helm))  | ||||
|   (use-package helm-ls-git | ||||
|     :after (helm)) | ||||
| #+end_src | ||||
| #+begin_src emacs-lisp :tangle no | ||||
|   ;; Helm | ||||
|   (global-set-key (kbd "M-x") 'helm-M-x) | ||||
|   (global-set-key (kbd "C-x r b") #'helm-filtered-bookmarks) | ||||
|   (global-set-key (kbd "C-x C-f") #'helm-find-files) | ||||
|   (global-set-key (kbd "C-x b") #'helm-mini) | ||||
| 
 | ||||
| ** Code completion (Cape, corfu) | ||||
|   (define-key helm-map (kbd "<right>") #'right-char) | ||||
|   (define-key helm-map (kbd "<left>") #'left-char) | ||||
| #+end_src | ||||
| *** Comapny | ||||
| #+begin_src emacs-lisp | ||||
|   (use-package cape) | ||||
| 
 | ||||
|   (use-package corfu | ||||
|     :after (lsp-mode cape) | ||||
|     ;; Optional customizations | ||||
|     :custom | ||||
|     (corfu-cycle nil)                 ;; Enable cycling for `corfu-next/previous' | ||||
|     (corfu-auto t)                    ;; Enable auto completion | ||||
|     (global-corfu-minibuffer nil) | ||||
|     ;; (corfu-quit-at-boundary nil)   ;; Never quit at completion boundary | ||||
|     ;; (corfu-quit-no-match nil)      ;; Never quit, even if there is no match | ||||
|     (corfu-preview-current nil)       ;; Disable current candidate preview | ||||
|     ;; (corfu-preselect 'prompt)      ;; Preselect the prompt | ||||
|     ;; (corfu-on-exact-match nil)     ;; Configure handling of exact matches | ||||
| 
 | ||||
|     ;; Enable Corfu only for certain modes. See also `global-corfu-modes'. | ||||
|     ;; :hook ((prog-mode . corfu-mode) | ||||
|     ;;        (shell-mode . corfu-mode) | ||||
|     ;;        (eshell-mode . corfu-mode)) | ||||
| 
 | ||||
|     ;; Recommended: Enable Corfu globally.  This is recommended since Dabbrev can | ||||
|     ;; be used globally (M-/).  See also the customization variable | ||||
|     ;; `global-corfu-modes' to exclude certain modes. | ||||
|     :init | ||||
|     (global-corfu-mode 1) | ||||
|     (corfu-popupinfo-mode 1) | ||||
|     (corfu-history-mode 1) | ||||
| 
 | ||||
|     (defun materus/orderless-dispatch-flex-first (_pattern index _total) | ||||
|       (and (eq index 0) 'orderless-flex)) | ||||
| 
 | ||||
|     (defun materus/lsp-mode-setup-completion () | ||||
|       (setf (alist-get 'styles (alist-get 'lsp-capf completion-category-defaults)) | ||||
|             '(orderless)) | ||||
|       ;; Optionally configure the first word as flex filtered. | ||||
|       (add-hook 'orderless-style-dispatchers #'materus/orderless-dispatch-flex-first nil 'local) | ||||
|       ;; Optionally configure the cape-capf-buster. | ||||
|       (setq-local completion-at-point-functions (list (cape-capf-buster #'lsp-completion-at-point)))) | ||||
| 
 | ||||
|     (use-package company | ||||
|       :hook | ||||
|     (lsp-completion-mode . materus/lsp-mode-setup-completion)) | ||||
|       ((prog-mode . company-mode))) | ||||
|     (use-package slime-company | ||||
|       :if (executable-find "sbcl") | ||||
|       :after (company slime)) | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   (use-package corfu-terminal | ||||
|     :after (corfu) | ||||
|     :config | ||||
|     (when (or (daemonp) (not (display-graphic-p))) | ||||
|       (corfu-terminal-mode))) | ||||
| 
 | ||||
|   ;; (use-package corfu-mouse | ||||
|   ;;   :after (corfu) | ||||
|   ;;   :config | ||||
|   ;;   :ensure nil | ||||
|   ;;   (corfu-mouse-mode) | ||||
|   ;;   (keymap-set corfu--mouse-ignore-map "<mouse-movement>" 'ignore) | ||||
|   ;;   (keymap-set corfu-map "<mouse-movement>" 'ignore)) | ||||
| 
 | ||||
|   (use-package kind-icon | ||||
|     :after (corfu) | ||||
|     :config | ||||
|     (add-to-list 'corfu-margin-formatters #'kind-icon-margin-formatter)) | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  #+end_src | ||||
| #+end_src | ||||
|  | ||||
| @ -1,67 +1,69 @@ | ||||
| ;;; -*- lexical-binding: t; -*- | ||||
|      | ||||
| ;;; VARIABLES | ||||
|   ;;; VARIABLES | ||||
| 
 | ||||
| 
 | ||||
| (setenv "LSP_USE_PLISTS" "true")                                                          ; Make lsp-mode use plists | ||||
|   (setenv "LSP_USE_PLISTS" "true")                                                          ; Make lsp-mode use plists | ||||
| 
 | ||||
| (setq c-default-style nil)                                                                ; Clear default styles for languages, will set them up later | ||||
| (setq default-input-method nil)                                                           ; Disable default input method, I'm not using them anyway so far | ||||
| (setq initial-major-mode 'fundamental-mode)                                               ; Use fundamental mode in scratch buffer, speed up loading, not really important when emacs used as daemon | ||||
| (setq auto-save-default nil)                                                              ; TODO: configure auto saves, disable for now | ||||
| (setq backup-directory-alist | ||||
|   (setq c-default-style nil)                                                                ; Clear default styles for languages, will set them up later | ||||
|   (setq default-input-method nil)                                                           ; Disable default input method, I'm not using them anyway so far | ||||
| 
 | ||||
|   (setq initial-major-mode 'emacs-lisp-mode)                                               | ||||
| 
 | ||||
|   (setq auto-save-default nil)                                                              ; TODO: configure auto saves, disable for now | ||||
|   (setq backup-directory-alist | ||||
|         `((".*" . ,(concat user-emacs-directory "var/backups/"))))                          ; Set backup location | ||||
| (setq auto-save-file-name-transforms | ||||
|   (setq auto-save-file-name-transforms | ||||
|         `((".*" ,(concat user-emacs-directory "var/recovery/") t)))                         ; Set auto-save location   | ||||
| (setq auto-save-list-file-prefix (concat user-emacs-directory "var/auto-save/sessions/")) ; Set auto-save-list location | ||||
| (setq load-prefer-newer t)                                                                ; Prefer newer files to load | ||||
|   (setq auto-save-list-file-prefix (concat user-emacs-directory "var/auto-save/sessions/")) ; Set auto-save-list location | ||||
|   (setq load-prefer-newer t)                                                                ; Prefer newer files to load | ||||
| 
 | ||||
| 
 | ||||
| (setq package-enable-at-startup nil)                                                        | ||||
| (setq package-quickstart nil)                                                             ; Disable package quickstart | ||||
|   (setq package-enable-at-startup nil)                                                        | ||||
|   (setq package-quickstart nil)                                                             ; Disable package quickstart | ||||
| 
 | ||||
| (setq inhibit-startup-screen t) | ||||
|   (setq inhibit-startup-screen t) | ||||
| 
 | ||||
| (setq inhibit-compacting-font-caches t)                                                   ; Don't compact fonts | ||||
|   (setq inhibit-compacting-font-caches t)                                                   ; Don't compact fonts | ||||
| 
 | ||||
| (set-language-environment "UTF-8")                                                        ; Use UTF-8 | ||||
| (setq-default buffer-file-coding-system 'utf-8-unix) | ||||
|   (set-language-environment "UTF-8")                                                        ; Use UTF-8 | ||||
|   (setq-default buffer-file-coding-system 'utf-8-unix) | ||||
| 
 | ||||
| (setq custom-file (concat user-emacs-directory "etc/custom.el"))                          ; Set custom file location, don't want clutter in main directory | ||||
| (setq custom-theme-directory | ||||
|   (setq custom-file (concat user-emacs-directory "etc/custom.el"))                          ; Set custom file location, don't want clutter in main directory | ||||
|   (setq custom-theme-directory | ||||
|         (concat user-emacs-directory "/etc/materus/themes" ))                               ; Set custom themes location | ||||
| 
 | ||||
| (setq ring-bell-function 'ignore)                                                         ; Disable bell | ||||
|   (setq ring-bell-function 'ignore)                                                         ; Disable bell | ||||
| 
 | ||||
| 
 | ||||
| (defvar materus/emacs-gc-cons-threshold (* 64 1024 1024) | ||||
|   (defvar materus/emacs-gc-cons-threshold (* 64 1024 1024) | ||||
|     "The value of `gc-cons-threshold' after Emacs startup.")                                ; Define after init garbage collector threshold | ||||
| 
 | ||||
| 
 | ||||
| ;;; GARBAGE COLLECTOR  | ||||
| (setq gc-cons-threshold most-positive-fixnum)                                             ; Set `gc-cons-threshold' so it won't collectect during initialization  | ||||
|   ;;; GARBAGE COLLECTOR  | ||||
|   (setq gc-cons-threshold most-positive-fixnum)                                             ; Set `gc-cons-threshold' so it won't collectect during initialization  | ||||
| 
 | ||||
| (add-hook 'emacs-startup-hook | ||||
|   (add-hook 'emacs-startup-hook | ||||
|             (lambda () | ||||
|               (setq gc-cons-threshold materus/emacs-gc-cons-threshold)))                    ; Set `gc-cons-threshold' to desired value after startup | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ;;; FRAMES | ||||
|   ;;; FRAMES | ||||
| 
 | ||||
| (setq frame-inhibit-implied-resize t) | ||||
| (setq frame-resize-pixelwise t) | ||||
| (setq window-resize-pixelwise t)                                ; Allow pixelwise resizing of window and frame | ||||
|   (setq frame-inhibit-implied-resize t) | ||||
|   (setq frame-resize-pixelwise t) | ||||
|   (setq window-resize-pixelwise t)                                ; Allow pixelwise resizing of window and frame | ||||
| 
 | ||||
| (unless (daemonp) | ||||
|   (unless (daemonp) | ||||
|     (add-to-list 'initial-frame-alist '(fullscreen . maximized))) ; Start first frame maximized if not running as daemon, daemon frame are set up later in config | ||||
| (setq default-frame-alist                                       ; Set default size for frames | ||||
|   (setq default-frame-alist                                       ; Set default size for frames | ||||
|         '((width . 130)    | ||||
|           (height . 40)))                  | ||||
| 
 | ||||
| (advice-add #'tty-run-terminal-initialization :override #'ignore) | ||||
| (add-hook 'window-setup-hook | ||||
|   (advice-add #'tty-run-terminal-initialization :override #'ignore) | ||||
|   (add-hook 'window-setup-hook | ||||
|             (lambda () | ||||
|               (unless (display-graphic-p) | ||||
|                 (advice-remove #'tty-run-terminal-initialization #'ignore)  | ||||
| @ -69,21 +71,17 @@ | ||||
|                 ))) | ||||
| 
 | ||||
| 
 | ||||
| ;;; NATIVE COMPILATION | ||||
|   ;;; NATIVE COMPILATION | ||||
| 
 | ||||
| (setq native-comp-async-report-warnings-errors nil) ; Silence warnings | ||||
| (setq native-comp-speed 3)                          ; Set native-comp speed | ||||
|   (setq native-comp-async-report-warnings-errors nil) ; Silence warnings | ||||
|   (setq native-comp-speed 2)                          ; Set native-comp speed | ||||
| 
 | ||||
| (setq native-comp-jit-compilation t | ||||
|       ;;native-comp-deferred-compilation t  | ||||
|   (setq native-comp-jit-compilation t | ||||
|         native-comp-deferred-compilation t  | ||||
|         package-native-compile t) | ||||
| 
 | ||||
| 
 | ||||
| ;; Setting up native-comp cache location | ||||
|   ;; Setting up native-comp cache location | ||||
| 
 | ||||
| (when (and (fboundp 'startup-redirect-eln-cache) | ||||
|            (fboundp 'native-comp-available-p) | ||||
|            (native-comp-available-p)) | ||||
|   (startup-redirect-eln-cache | ||||
|    (convert-standard-filename | ||||
|     (concat user-emacs-directory "var/eln-cache/")))) | ||||
| (when (boundp 'native-comp-eln-load-path) | ||||
|   (startup-redirect-eln-cache (expand-file-name "var/eln-cache/" user-emacs-directory))) | ||||
|  | ||||
| @ -6,7 +6,7 @@ | ||||
|     (print "WARN: emacs-build-time not set up, using current time") | ||||
|     (setq emacs-build-time (decode-time (current-time)))) | ||||
|   (add-to-list 'load-path (concat user-emacs-directory "etc/pkgs/"))                ; Extra load path for packages | ||||
| 
 | ||||
|   (defvar materus/nixos-config (getenv "MATERUS_CONFIG_DIR"))   | ||||
|   (setq read-process-output-max (* 1024 1024 3)) | ||||
| 
 | ||||
| ;; Elpaca Init | ||||
| @ -61,6 +61,33 @@ | ||||
|          (use-package ,package :ensure nil ,@body)) | ||||
|     `(use-package ,package ,@body))) | ||||
| 
 | ||||
| (defun materus/--outli-modes () | ||||
|   "Check if supported mode" | ||||
|   (or (eq major-mode 'nix-mode) | ||||
|       (eq major-mode 'nix-ts-mode) | ||||
|       (eq major-mode 'c-mode) | ||||
|       (eq major-mode 'c-ts-mode) | ||||
|       (eq major-mode 'c++-mode) | ||||
|       (eq major-mode 'c++-ts-mode))) | ||||
| 
 | ||||
| (defun materus/--fix-outli-formatting (FORMATTER STATUS) | ||||
|   "Remove whitespaces before outli headers" | ||||
|   (when (and (materus/--outli-modes) | ||||
|              (eq STATUS :reformatted)) | ||||
|     (save-excursion | ||||
|       (save-restriction | ||||
|         (widen) | ||||
|         (goto-char (point-min)) | ||||
|         (while (re-search-forward (concat "^[ 	]+\\(" comment-start "\\*+ +[^ ].*\\)[ 	]*") nil t) | ||||
|           (replace-match "\\1")))))) | ||||
| 
 | ||||
| (defun materus/--electric-indent-ignore-outli (char) | ||||
|   "Don't indent outli headers" | ||||
|   (when (materus/--outli-modes) | ||||
|     (save-excursion | ||||
|       (backward-char) | ||||
|       (beginning-of-line) | ||||
|       (if (not (looking-at-p  (concat "^\\(" comment-start "\\*+ +[^ ].*\\)[ 	]*"))) nil 'no-indent)))) | ||||
| (use-package no-littering | ||||
|   :ensure (:wait t) | ||||
|   :config | ||||
| @ -90,6 +117,8 @@ | ||||
|                               (set-frame-parameter frame 'fullscreen 'maximized))  | ||||
|               (select-frame-set-input-focus frame) ))) | ||||
| (global-tab-line-mode 1) | ||||
| (setq tab-line-close-tab-function 'kill-buffer) | ||||
| 
 | ||||
| (setq window-divider-default-bottom-width 1) | ||||
| (setq window-divider-default-right-width 1) | ||||
| (window-divider-mode 1) | ||||
| @ -126,6 +155,7 @@ | ||||
| 
 | ||||
| (add-hook 'prog-mode-hook 'display-line-numbers-mode) | ||||
| (add-hook 'prog-mode-hook 'electric-indent-local-mode) | ||||
| (add-hook 'electric-indent-functions 'materus/--electric-indent-ignore-outli) | ||||
| (use-package dracula-theme :config | ||||
|   (if (daemonp) | ||||
|       (add-hook 'after-make-frame-functions | ||||
| @ -146,19 +176,19 @@ | ||||
|   (set-face-attribute 'rainbow-delimiters-depth-5-face nil :foreground "#6A5ACD") | ||||
|   (set-face-attribute 'rainbow-delimiters-unmatched-face nil :foreground "#FF0000")) | ||||
| 
 | ||||
| ;; (use-package doom-modeline | ||||
| ;;   :init (setq doom-modeline-support-imenu t) | ||||
| ;;   :hook (elpaca-after-init . doom-modeline-mode) | ||||
| ;;   :config | ||||
| ;;   (setq doom-modeline-icon t) | ||||
| ;;   (setq doom-modeline-project-detection 'auto) | ||||
| ;;   (setq doom-modeline-height 20) | ||||
| ;;   (setq doom-modeline-enable-word-count t) | ||||
| ;;   (setq doom-modeline-minor-modes t) | ||||
| ;;   (setq display-time-24hr-format t) | ||||
| ;;   (display-time-mode 1) | ||||
| ;;   (column-number-mode 1) | ||||
| ;;   (line-number-mode 1)) | ||||
| (use-package doom-modeline | ||||
|   :init (setq doom-modeline-support-imenu t) | ||||
|   :hook (elpaca-after-init . doom-modeline-mode) | ||||
|   :config | ||||
|   (setq doom-modeline-icon t) | ||||
|   (setq doom-modeline-project-detection 'auto) | ||||
|   (setq doom-modeline-height 20) | ||||
|   (setq doom-modeline-enable-word-count t) | ||||
|   (setq doom-modeline-minor-modes t) | ||||
|   (setq display-time-24hr-format t) | ||||
|   (display-time-mode 1) | ||||
|   (column-number-mode 1) | ||||
|   (line-number-mode 1)) | ||||
| 
 | ||||
| (use-package minions | ||||
|   :hook (elpaca-after-init . minions-mode)) | ||||
| @ -182,29 +212,112 @@ | ||||
|   (setq initial-buffer-choice (lambda () (get-buffer "*dashboard*")))) ; Show dashboard when emacs is running as daemon) | ||||
| (use-package highlight-indent-guides | ||||
|   :hook ((prog-mode . highlight-indent-guides-mode))) | ||||
| (use-package outli | ||||
|   :ensure (:host github :repo "jdtsmith/outli") | ||||
|   :hook ((prog-mode . outli-mode))) | ||||
| (use-package visual-replace | ||||
|   :defer t | ||||
|   :bind (("C-r" . visual-replace) | ||||
|          :map isearch-mode-map | ||||
|          ("C-r" . visual-replace-from-isearch))) | ||||
| (use-package eat) | ||||
| 
 | ||||
| (materus/use-package vterm) | ||||
| (use-package helm | ||||
| (use-package orderless | ||||
|   :init | ||||
|   ;; Tune the global completion style settings to your liking! | ||||
|   ;; This affects the minibuffer and non-lsp completion at point. | ||||
|   (setq completion-styles '(basic partial-completion orderless) | ||||
|         completion-category-defaults nil | ||||
|         completion-category-overrides nil)) | ||||
| (use-package consult) | ||||
| (use-package marginalia) | ||||
| (use-package embark) | ||||
| (use-package embark-consult | ||||
|   :after (embark consult)) | ||||
| 
 | ||||
| (use-package vertico | ||||
|   :ensure t | ||||
|   :after (consult marginalia embark) | ||||
|   :config | ||||
|   (setq helm-x-icons-provider 'nerd-icons) | ||||
|   (setq helm-move-to-line-cycle-in-source nil) | ||||
|   (helm-mode 1) | ||||
|   ) | ||||
| (use-package helm-projectile | ||||
|   :after (helm projectile)) | ||||
| (use-package helm-ag | ||||
|   :after (helm)) | ||||
| (use-package helm-rg | ||||
|   :after (helm))  | ||||
| (use-package helm-ls-git | ||||
|   :after (helm)) | ||||
| (use-package company | ||||
|   (setq completion-in-region-function | ||||
|         (lambda (&rest args) | ||||
|           (apply (if vertico-mode | ||||
|                      #'consult-completion-in-region | ||||
|                    #'completion--in-region) | ||||
|                  args))) | ||||
|   (vertico-mode 1) | ||||
|   (marginalia-mode 1)) | ||||
| (use-package vertico-mouse | ||||
|   :config | ||||
|   (vertico-mouse-mode 1) | ||||
|   :ensure nil | ||||
|   :after (vertico)) | ||||
| (use-package cape) | ||||
| 
 | ||||
| (use-package corfu | ||||
|   :ensure t | ||||
|   :after (lsp-mode cape) | ||||
|   ;; Optional customizations | ||||
|   :custom | ||||
|   (corfu-cycle nil)                 ;; Enable cycling for `corfu-next/previous' | ||||
|   (corfu-auto t)                    ;; Enable auto completion | ||||
|   (global-corfu-minibuffer nil) | ||||
|   ;; (corfu-quit-at-boundary nil)   ;; Never quit at completion boundary | ||||
|   ;; (corfu-quit-no-match nil)      ;; Never quit, even if there is no match | ||||
|   (corfu-preview-current nil)       ;; Disable current candidate preview | ||||
|   ;; (corfu-preselect 'prompt)      ;; Preselect the prompt | ||||
|   ;; (corfu-on-exact-match nil)     ;; Configure handling of exact matches | ||||
| 
 | ||||
|   ;; Enable Corfu only for certain modes. See also `global-corfu-modes'. | ||||
|   ;; :hook ((prog-mode . corfu-mode) | ||||
|   ;;        (shell-mode . corfu-mode) | ||||
|   ;;        (eshell-mode . corfu-mode)) | ||||
| 
 | ||||
|   ;; Recommended: Enable Corfu globally.  This is recommended since Dabbrev can | ||||
|   ;; be used globally (M-/).  See also the customization variable | ||||
|   ;; `global-corfu-modes' to exclude certain modes. | ||||
|   :init | ||||
|   (global-corfu-mode 1) | ||||
|   (corfu-popupinfo-mode 1) | ||||
|   (corfu-history-mode 1) | ||||
| 
 | ||||
|   (defun materus/orderless-dispatch-flex-first (_pattern index _total) | ||||
|     (and (eq index 0) 'orderless-flex)) | ||||
| 
 | ||||
|   (defun materus/lsp-mode-setup-completion () | ||||
|     (setf (alist-get 'styles (alist-get 'lsp-capf completion-category-defaults)) | ||||
|           '(orderless)) | ||||
|     ;; Optionally configure the first word as flex filtered. | ||||
|     (add-hook 'orderless-style-dispatchers #'materus/orderless-dispatch-flex-first nil 'local) | ||||
|     ;; Optionally configure the cape-capf-buster. | ||||
|     (setq-local completion-at-point-functions (list (cape-capf-buster #'lsp-completion-at-point)))) | ||||
| 
 | ||||
|   :hook | ||||
|   ((prog-mode . company-mode))) | ||||
| (use-package slime-company | ||||
|   :if (executable-find "sbcl") | ||||
|   :after (company slime)) | ||||
|   (lsp-completion-mode . materus/lsp-mode-setup-completion)) | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| (use-package corfu-terminal | ||||
|   :after (corfu) | ||||
|   :config | ||||
|   (when (or (daemonp) (not (display-graphic-p))) | ||||
|     (corfu-terminal-mode))) | ||||
| 
 | ||||
| (use-package corfu-mouse | ||||
|    :after (corfu) | ||||
|    :ensure (:type git :repo "https://codeberg.org/materus/emacs-corfu-mouse.git") | ||||
|    :config | ||||
|    (corfu-mouse-mode) | ||||
|    (keymap-set corfu--mouse-ignore-map "<mouse-movement>" 'ignore) | ||||
|    (keymap-set corfu-map "<mouse-movement>" 'ignore)) | ||||
| 
 | ||||
| (use-package kind-icon | ||||
|   :after (corfu) | ||||
|   :config | ||||
|   (add-to-list 'corfu-margin-formatters #'kind-icon-margin-formatter)) | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| (use-package dirvish | ||||
|   :after (nerd-icons) | ||||
| @ -237,7 +350,7 @@ | ||||
|   ;; (lsp-completion-provider :none) ;; we use Corfu! | ||||
|   :config | ||||
|   (setq lsp-keep-workspace-alive nil) | ||||
| 
 | ||||
|   (setq lsp-enable-on-type-formatting nil) | ||||
|    | ||||
|   (defun lsp-booster--advice-json-parse (old-fn &rest args) | ||||
|     "Try to parse bytecode instead of json." | ||||
| @ -284,6 +397,15 @@ | ||||
|   (setq dap-gdb-lldb-extension-version "0.27.0") | ||||
|   (dap-auto-configure-mode 1)) | ||||
| 
 | ||||
| (use-package format-all | ||||
|   :hook ((prog-mode . format-all-mode)) | ||||
|   :config | ||||
|   (defun format-all--buffer-from-hook () nil) ; I don't want formatting on save | ||||
|   (add-hook 'format-all-after-format-functions 'materus/--fix-outli-formatting) | ||||
|   (setq-default format-all-formatters   | ||||
|                 '(("Nix" (nixfmt)) | ||||
|                   ("C++" (clang-format "--fallback-style=microsoft")) | ||||
|                   ("C" (clang-format "--fallback-style=microsoft"))))) | ||||
| (use-package yasnippet | ||||
|   :config | ||||
|   (yas-global-mode 1)) | ||||
| @ -302,8 +424,8 @@ | ||||
|   (add-hook 'c++-mode-hook 'display-line-numbers-mode) | ||||
|   (add-hook 'c++-ts-mode-hook 'lsp-deferred) | ||||
|   (add-hook 'c++-ts-mode-hook 'display-line-numbers-mode) | ||||
|   ;(when (treesit-language-available-p 'c) (push '(c-mode . c-ts-mode) major-mode-remap-alist)) | ||||
|   ;(when (treesit-language-available-p 'cpp) (push '(c++-mode . c++-ts-mode) major-mode-remap-alist)) | ||||
|   (when (treesit-language-available-p 'c) (push '(c-mode . c-ts-mode) major-mode-remap-alist)) | ||||
|   (when (treesit-language-available-p 'cpp) (push '(c++-mode . c++-ts-mode) major-mode-remap-alist)) | ||||
| 
 | ||||
|   (add-to-list 'c-default-style '(c-mode . "bsd")) | ||||
|   (add-to-list 'c-default-style '(c++-mode . "bsd")) | ||||
| @ -337,14 +459,13 @@ | ||||
| (use-package nix-mode) | ||||
| (use-package nix-ts-mode) | ||||
| (use-package lsp-nix | ||||
|   :after (lsp-mode nix-mode nix-ts-mode) | ||||
|   :after (lsp-mode nix-mode nix-ts-mode format-all) | ||||
|   :ensure nil | ||||
|   :config | ||||
|   (add-to-list 'lsp-disabled-clients '(nix-mode . nix-nil))  | ||||
|   (setq lsp-nix-nixd-server-path "nixd") | ||||
|   (when (executable-find "nixfmt")   | ||||
|     (setq lsp-nix-nixd-formatting-command [ "nixfmt" ]) ) | ||||
|    | ||||
|     (setq lsp-nix-nixd-formatting-command [ "nixfmt" ])) | ||||
|    | ||||
|   (unless lsp-nix-nixd-nixos-options-expr | ||||
|     (setq lsp-nix-nixd-nixos-options-expr (concat "(builtins.getFlake \"/etc/nixos\").nixosConfigurations." (system-name) ".options"))) | ||||
| @ -362,8 +483,7 @@ | ||||
| (use-package slime | ||||
|   :if (executable-find "sbcl") | ||||
|   :config | ||||
|   (setq inferior-lisp-program "sbcl") | ||||
|   (slime-setup '(slime-fancy slime-company))) | ||||
|   (setq inferior-lisp-program "sbcl")) | ||||
| (use-package bash-completion) | ||||
| (use-package diff-hl | ||||
|   :config | ||||
| @ -379,17 +499,17 @@ | ||||
| (use-package git-timemachine | ||||
|   :defer t) | ||||
| (use-package org | ||||
| :mode (("\\.org$" . org-mode)) | ||||
| :hook | ||||
| ((org-mode . org-indent-mode) | ||||
|   :mode (("\\.org$" . org-mode)) | ||||
|   :hook | ||||
|   ((org-mode . org-indent-mode) | ||||
|    (org-mode . display-line-numbers-mode) | ||||
|    ) | ||||
| :config | ||||
| (require 'org-mouse) | ||||
| (require 'org-tempo) | ||||
| (setq org-src-window-setup 'current-window) | ||||
| (setq org-latex-pdf-process '("latexmk -xelatex -quiet -shell-escape -f -output-directory=%o %f")) | ||||
| (org-babel-do-load-languages | ||||
|   :config | ||||
|   (require 'org-mouse) | ||||
|   (require 'org-tempo) | ||||
|   (setq org-src-window-setup 'current-window) | ||||
|   (setq org-latex-pdf-process '("latexmk -xelatex -quiet -shell-escape -f -output-directory=%o %f")) | ||||
|   (org-babel-do-load-languages | ||||
|    'org-babel-load-languages | ||||
|    '((latex . t) | ||||
|      (emacs-lisp . t) | ||||
| @ -400,7 +520,7 @@ | ||||
|      (awk . t) | ||||
|      (sql . t) | ||||
|      (sqlite . t))) | ||||
| (add-hook 'org-mode-hook (lambda () | ||||
|   (add-hook 'org-mode-hook (lambda () | ||||
|                              (setq-local | ||||
|                               electric-pair-inhibit-predicate | ||||
|                               `(lambda (c) | ||||
| @ -477,10 +597,6 @@ | ||||
| 
 | ||||
|   ;; CUA-like global | ||||
|   (define-key global-map (kbd "C-s") 'save-buffer) | ||||
|   (define-key global-map (kbd "C-r") 'query-replace) | ||||
|   (define-key global-map (kbd "C-S-r") 'replace-string) | ||||
|   (define-key global-map (kbd "M-r") 'query-replace-regexp) | ||||
|   (define-key global-map (kbd "M-S-r") 'replace-regexp) | ||||
|   (define-key global-map (kbd "C-a") 'mark-whole-buffer) | ||||
|   (define-key global-map (kbd "C-f") 'isearch-forward) | ||||
|   (define-key global-map (kbd "C-S-f") 'isearch-backward) | ||||
| @ -534,11 +650,6 @@ | ||||
|   (advice-add 'eat-char-mode :after #'cua--eat-char-override-keymap) | ||||
|   (add-hook 'eat-char-mode-hook #'cua--eat-char-override-keymap) | ||||
|    | ||||
|   ;; Helm | ||||
|   (global-set-key (kbd "M-x") 'helm-M-x) | ||||
|   (global-set-key (kbd "C-x r b") #'helm-filtered-bookmarks) | ||||
|   (global-set-key (kbd "C-x C-f") #'helm-find-files) | ||||
|   (global-set-key (kbd "C-x b") #'helm-mini) | ||||
|   ;; Treemacs | ||||
|   (define-key global-map (kbd "C-H-t") 'treemacs)) | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										122
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										122
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							| @ -5,11 +5,11 @@ | ||||
|         "fromYaml": "fromYaml" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1732200724, | ||||
|         "narHash": "sha256-+R1BH5wHhfnycySb7Sy5KbYEaTJZWm1h+LW1OtyhiTs=", | ||||
|         "lastModified": 1746562888, | ||||
|         "narHash": "sha256-YgNJQyB5dQiwavdDFBMNKk1wyS77AtdgDk/VtU6wEaI=", | ||||
|         "owner": "SenchoPens", | ||||
|         "repo": "base16.nix", | ||||
|         "rev": "153d52373b0fb2d343592871009a286ec8837aec", | ||||
|         "rev": "806a1777a5db2a1ef9d5d6f493ef2381047f2b89", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
| @ -24,11 +24,11 @@ | ||||
|         "fromYaml": "fromYaml_2" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1732200724, | ||||
|         "narHash": "sha256-+R1BH5wHhfnycySb7Sy5KbYEaTJZWm1h+LW1OtyhiTs=", | ||||
|         "lastModified": 1746562888, | ||||
|         "narHash": "sha256-YgNJQyB5dQiwavdDFBMNKk1wyS77AtdgDk/VtU6wEaI=", | ||||
|         "owner": "SenchoPens", | ||||
|         "repo": "base16.nix", | ||||
|         "rev": "153d52373b0fb2d343592871009a286ec8837aec", | ||||
|         "rev": "806a1777a5db2a1ef9d5d6f493ef2381047f2b89", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
| @ -159,11 +159,11 @@ | ||||
|         "nixpkgs-stable": "nixpkgs-stable" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1744967866, | ||||
|         "narHash": "sha256-jWHOSSZ03R1Dvru5rXEForMgkV1RAsCd+IjMmehpmFg=", | ||||
|         "lastModified": 1747188492, | ||||
|         "narHash": "sha256-9DZ/Wr6zDvb2GxgvxkGxCFJctqhn4vIPeCh+Yctflg0=", | ||||
|         "owner": "nix-community", | ||||
|         "repo": "emacs-overlay", | ||||
|         "rev": "c54fd7dc3e696136c8257abfe12815274b42660e", | ||||
|         "rev": "6d15ffa9720fc7d6635238d961593a289062b555", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
| @ -182,11 +182,11 @@ | ||||
|         "nixpkgs-stable": "nixpkgs-stable_2" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1744967866, | ||||
|         "narHash": "sha256-jWHOSSZ03R1Dvru5rXEForMgkV1RAsCd+IjMmehpmFg=", | ||||
|         "lastModified": 1747188492, | ||||
|         "narHash": "sha256-9DZ/Wr6zDvb2GxgvxkGxCFJctqhn4vIPeCh+Yctflg0=", | ||||
|         "owner": "nix-community", | ||||
|         "repo": "emacs-overlay", | ||||
|         "rev": "c54fd7dc3e696136c8257abfe12815274b42660e", | ||||
|         "rev": "6d15ffa9720fc7d6635238d961593a289062b555", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
| @ -436,11 +436,11 @@ | ||||
|         ] | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1744743431, | ||||
|         "narHash": "sha256-iyn/WBYDc7OtjSawbegINDe/gIkok888kQxk3aVnkgg=", | ||||
|         "lastModified": 1747020534, | ||||
|         "narHash": "sha256-D/6rkiC6w2p+4SwRiVKrWIeYzun8FBg7NlMKMwQMxO0=", | ||||
|         "owner": "nix-community", | ||||
|         "repo": "home-manager", | ||||
|         "rev": "c61bfe3ae692f42ce688b5865fac9e0de58e1387", | ||||
|         "rev": "b4bbdc6fde16fc2051fcde232f6e288cd22007ca", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
| @ -458,11 +458,11 @@ | ||||
|         ] | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1744919155, | ||||
|         "narHash": "sha256-IJksPW32V9gid9vDxoloJMRk+YGjxq5drFHBFeBkKU8=", | ||||
|         "lastModified": 1747184352, | ||||
|         "narHash": "sha256-GBZulv50wztp5cgc405t1uOkxQYhSkMqeKLI+iSrlpk=", | ||||
|         "owner": "nix-community", | ||||
|         "repo": "home-manager", | ||||
|         "rev": "72526a5f7cde2ef9075637802a1e2a8d2d658f70", | ||||
|         "rev": "7c1cefb98369cc85440642fdccc1c1394ca6dd2c", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
| @ -477,10 +477,10 @@ | ||||
|         "nixpkgs": "nixpkgs_5" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1744117652, | ||||
|         "narHash": "sha256-t7dFCDl4vIOOUMhEZnJF15aAzkpaup9x4ZRGToDFYWI=", | ||||
|         "path": "/nix/store/avba4k04vxmknff9mjchmwyvr3vpzccz-source", | ||||
|         "rev": "b4e98224ad1336751a2ac7493967a4c9f6d9cb3f", | ||||
|         "lastModified": 1746171682, | ||||
|         "narHash": "sha256-EyXUNSa+H+YvGVuQJP1nZskXAowxKYp79RNUsNdQTj4=", | ||||
|         "path": "/nix/store/xcqyjkljvvi1qk78la2vh5b783yzs7wl-source", | ||||
|         "rev": "50eee705bbdbac942074a8c120e8194185633675", | ||||
|         "type": "path" | ||||
|       }, | ||||
|       "original": { | ||||
| @ -500,11 +500,11 @@ | ||||
|         ] | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1744941256, | ||||
|         "narHash": "sha256-dCsDco+HQ0rwApyTmmyot9fUVIC0XeWOf/YpB8LZd18=", | ||||
|         "lastModified": 1747188026, | ||||
|         "narHash": "sha256-NjiJ2Bce5F7dn+6ZGCenzIjem2+Ei4SDF78x2wHVlOY=", | ||||
|         "owner": "nix-community", | ||||
|         "repo": "nix-vscode-extensions", | ||||
|         "rev": "0dd8474f697c02ac1861a96f7626f8fb9e21f268", | ||||
|         "rev": "083675f78e7de80e9fec1f621b8a508e58327131", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
| @ -526,11 +526,11 @@ | ||||
|         ] | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1744941256, | ||||
|         "narHash": "sha256-dCsDco+HQ0rwApyTmmyot9fUVIC0XeWOf/YpB8LZd18=", | ||||
|         "lastModified": 1747188026, | ||||
|         "narHash": "sha256-NjiJ2Bce5F7dn+6ZGCenzIjem2+Ei4SDF78x2wHVlOY=", | ||||
|         "owner": "nix-community", | ||||
|         "repo": "nix-vscode-extensions", | ||||
|         "rev": "0dd8474f697c02ac1861a96f7626f8fb9e21f268", | ||||
|         "rev": "083675f78e7de80e9fec1f621b8a508e58327131", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
| @ -553,11 +553,11 @@ | ||||
|         "nur": "nur" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1744223916, | ||||
|         "narHash": "sha256-LHS51wl/LFzWvrplcL/LJ3eIqMRyiwXch4IxA1Pq1ig=", | ||||
|         "lastModified": 1747136507, | ||||
|         "narHash": "sha256-lnt9LypZVMRzRDpl+gQtrInxvsF7CL18TTEMthXz8p8=", | ||||
|         "owner": "materusPL", | ||||
|         "repo": "Nixerus", | ||||
|         "rev": "2caaf0b89ebf8edb9a1b0400c774670d838ef12f", | ||||
|         "rev": "8c329020c653c04a8f0f50dc7400c01b3b9e3733", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
| @ -580,11 +580,11 @@ | ||||
|         "nur": "nur_3" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1744223916, | ||||
|         "narHash": "sha256-LHS51wl/LFzWvrplcL/LJ3eIqMRyiwXch4IxA1Pq1ig=", | ||||
|         "lastModified": 1747136507, | ||||
|         "narHash": "sha256-lnt9LypZVMRzRDpl+gQtrInxvsF7CL18TTEMthXz8p8=", | ||||
|         "owner": "materusPL", | ||||
|         "repo": "Nixerus", | ||||
|         "rev": "2caaf0b89ebf8edb9a1b0400c774670d838ef12f", | ||||
|         "rev": "8c329020c653c04a8f0f50dc7400c01b3b9e3733", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
| @ -596,11 +596,11 @@ | ||||
|     }, | ||||
|     "nixos-hardware": { | ||||
|       "locked": { | ||||
|         "lastModified": 1744633460, | ||||
|         "narHash": "sha256-fbWE4Xpw6eH0Q6in+ymNuDwTkqmFmtxcQEmtRuKDTTk=", | ||||
|         "lastModified": 1747129300, | ||||
|         "narHash": "sha256-L3clA5YGeYCF47ghsI7Tcex+DnaaN/BbQ4dR2wzoiKg=", | ||||
|         "owner": "NixOS", | ||||
|         "repo": "nixos-hardware", | ||||
|         "rev": "9a049b4a421076d27fee3eec664a18b2066824cb", | ||||
|         "rev": "e81fd167b33121269149c57806599045fd33eeed", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
| @ -612,11 +612,11 @@ | ||||
|     }, | ||||
|     "nixos-hardware_2": { | ||||
|       "locked": { | ||||
|         "lastModified": 1744633460, | ||||
|         "narHash": "sha256-fbWE4Xpw6eH0Q6in+ymNuDwTkqmFmtxcQEmtRuKDTTk=", | ||||
|         "lastModified": 1747129300, | ||||
|         "narHash": "sha256-L3clA5YGeYCF47ghsI7Tcex+DnaaN/BbQ4dR2wzoiKg=", | ||||
|         "owner": "NixOS", | ||||
|         "repo": "nixos-hardware", | ||||
|         "rev": "9a049b4a421076d27fee3eec664a18b2066824cb", | ||||
|         "rev": "e81fd167b33121269149c57806599045fd33eeed", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
| @ -644,11 +644,11 @@ | ||||
|     }, | ||||
|     "nixpkgs-stable": { | ||||
|       "locked": { | ||||
|         "lastModified": 1744440957, | ||||
|         "narHash": "sha256-FHlSkNqFmPxPJvy+6fNLaNeWnF1lZSgqVCl/eWaJRc4=", | ||||
|         "lastModified": 1746957726, | ||||
|         "narHash": "sha256-k9ut1LSfHCr0AW82ttEQzXVCqmyWVA5+SHJkS5ID/Jo=", | ||||
|         "owner": "NixOS", | ||||
|         "repo": "nixpkgs", | ||||
|         "rev": "26d499fc9f1d567283d5d56fcf367edd815dba1d", | ||||
|         "rev": "a39ed32a651fdee6842ec930761e31d1f242cb94", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
| @ -660,11 +660,11 @@ | ||||
|     }, | ||||
|     "nixpkgs-stable_2": { | ||||
|       "locked": { | ||||
|         "lastModified": 1744440957, | ||||
|         "narHash": "sha256-FHlSkNqFmPxPJvy+6fNLaNeWnF1lZSgqVCl/eWaJRc4=", | ||||
|         "lastModified": 1746957726, | ||||
|         "narHash": "sha256-k9ut1LSfHCr0AW82ttEQzXVCqmyWVA5+SHJkS5ID/Jo=", | ||||
|         "owner": "NixOS", | ||||
|         "repo": "nixpkgs", | ||||
|         "rev": "26d499fc9f1d567283d5d56fcf367edd815dba1d", | ||||
|         "rev": "a39ed32a651fdee6842ec930761e31d1f242cb94", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
| @ -676,11 +676,11 @@ | ||||
|     }, | ||||
|     "nixpkgs-stable_3": { | ||||
|       "locked": { | ||||
|         "lastModified": 1744440957, | ||||
|         "narHash": "sha256-FHlSkNqFmPxPJvy+6fNLaNeWnF1lZSgqVCl/eWaJRc4=", | ||||
|         "lastModified": 1746957726, | ||||
|         "narHash": "sha256-k9ut1LSfHCr0AW82ttEQzXVCqmyWVA5+SHJkS5ID/Jo=", | ||||
|         "owner": "NixOS", | ||||
|         "repo": "nixpkgs", | ||||
|         "rev": "26d499fc9f1d567283d5d56fcf367edd815dba1d", | ||||
|         "rev": "a39ed32a651fdee6842ec930761e31d1f242cb94", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
| @ -740,11 +740,11 @@ | ||||
|     }, | ||||
|     "nixpkgs_5": { | ||||
|       "locked": { | ||||
|         "lastModified": 1731755305, | ||||
|         "narHash": "sha256-v5P3dk5JdiT+4x69ZaB18B8+Rcu3TIOrcdG4uEX7WZ8=", | ||||
|         "lastModified": 1746055187, | ||||
|         "narHash": "sha256-3dqArYSMP9hM7Qpy5YWhnSjiqniSaT2uc5h2Po7tmg0=", | ||||
|         "owner": "NixOS", | ||||
|         "repo": "nixpkgs", | ||||
|         "rev": "057f63b6dc1a2c67301286152eb5af20747a9cb4", | ||||
|         "rev": "3e362ce63e16b9572d8c2297c04f7c19ab6725a5", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
| @ -756,11 +756,11 @@ | ||||
|     }, | ||||
|     "nixpkgs_6": { | ||||
|       "locked": { | ||||
|         "lastModified": 1744463964, | ||||
|         "narHash": "sha256-LWqduOgLHCFxiTNYi3Uj5Lgz0SR+Xhw3kr/3Xd0GPTM=", | ||||
|         "lastModified": 1746904237, | ||||
|         "narHash": "sha256-3e+AVBczosP5dCLQmMoMEogM57gmZ2qrVSrmq9aResQ=", | ||||
|         "owner": "NixOS", | ||||
|         "repo": "nixpkgs", | ||||
|         "rev": "2631b0b7abcea6e640ce31cd78ea58910d31e650", | ||||
|         "rev": "d89fc19e405cb2d55ce7cc114356846a0ee5e956", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
| @ -970,11 +970,11 @@ | ||||
|         ] | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1744669848, | ||||
|         "narHash": "sha256-pXyanHLUzLNd3MX9vsWG+6Z2hTU8niyphWstYEP3/GU=", | ||||
|         "lastModified": 1746485181, | ||||
|         "narHash": "sha256-PxrrSFLaC7YuItShxmYbMgSuFFuwxBB+qsl9BZUnRvg=", | ||||
|         "owner": "Mic92", | ||||
|         "repo": "sops-nix", | ||||
|         "rev": "61154300d945f0b147b30d24ddcafa159148026a", | ||||
|         "rev": "e93ee1d900ad264d65e9701a5c6f895683433386", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
| @ -992,11 +992,11 @@ | ||||
|         ] | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1744669848, | ||||
|         "narHash": "sha256-pXyanHLUzLNd3MX9vsWG+6Z2hTU8niyphWstYEP3/GU=", | ||||
|         "lastModified": 1746485181, | ||||
|         "narHash": "sha256-PxrrSFLaC7YuItShxmYbMgSuFFuwxBB+qsl9BZUnRvg=", | ||||
|         "owner": "Mic92", | ||||
|         "repo": "sops-nix", | ||||
|         "rev": "61154300d945f0b147b30d24ddcafa159148026a", | ||||
|         "rev": "e93ee1d900ad264d65e9701a5c6f895683433386", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user