mirror of
				https://github.com/materusPL/nixos-config
				synced 2025-10-31 12:40:26 +01:00 
			
		
		
		
	update
This commit is contained in:
		
							parent
							
								
									fd229ecd76
								
							
						
					
					
						commit
						371b1b1432
					
				| @ -1,6 +1,6 @@ | |||||||
| { pkgs, lib, ... }: | { pkgs, lib, ... }: | ||||||
| { | { | ||||||
| 
 |   #REGION test | ||||||
|   #sound.enable = true; |   #sound.enable = true; | ||||||
|   security.rtkit.enable = true; |   security.rtkit.enable = true; | ||||||
|   services.pipewire = { |   services.pipewire = { | ||||||
| @ -9,20 +9,20 @@ | |||||||
|     alsa.enable = true; |     alsa.enable = true; | ||||||
|     alsa.support32Bit = true; |     alsa.support32Bit = true; | ||||||
|     pulse.enable = true; |     pulse.enable = true; | ||||||
|     systemWide = false; |     systemWide = true; | ||||||
|     jack.enable = true; |     jack.enable = true; | ||||||
|   }; |   }; | ||||||
|   hardware.pulseaudio.enable = false; |   hardware.pulseaudio.enable = false; | ||||||
| 
 |  | ||||||
|   environment.sessionVariables = |   environment.sessionVariables = | ||||||
|     let |     let | ||||||
|       makePluginPath = format: |       makePluginPath = | ||||||
|         (lib.makeSearchPath format [ |         format: | ||||||
|  |         "$HOME/.${format}:" | ||||||
|  |         + (lib.makeSearchPath format [ | ||||||
|           "$HOME/.nix-profile/lib" |           "$HOME/.nix-profile/lib" | ||||||
|           "/run/current-system/sw/lib" |           "/run/current-system/sw/lib" | ||||||
|           "/etc/profiles/per-user/$USER/lib" |           "/etc/profiles/per-user/$USER/lib" | ||||||
|         ]) |         ]); | ||||||
|         + ":$HOME/.${format}"; |  | ||||||
|     in |     in | ||||||
|     { |     { | ||||||
|       ALSOFT_DRIVERS = "pulse"; |       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 = '' |     extraRules = '' | ||||||
|       KERNEL=="rtc0", GROUP="audio" |       KERNEL=="rtc0", GROUP="audio" | ||||||
|       KERNEL=="hpet", GROUP="audio" |       KERNEL=="hpet", GROUP="audio" | ||||||
|       DEVPATH=="/devices/virtual/misc/cpu_dma_latency", OWNER="root", GROUP="audio", MODE="0660" |       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; [ |   environment.systemPackages = with pkgs; [ | ||||||
|  | |||||||
| @ -102,10 +102,15 @@ in | |||||||
|         "/:/run/host-root" |         "/:/run/host-root" | ||||||
| 
 | 
 | ||||||
|         "/run/udev" |         "/run/udev" | ||||||
|  |         "/run/pipewire" | ||||||
|  | 
 | ||||||
|  |         "/sys/class" | ||||||
|  |         "/sys/devices" | ||||||
| 
 | 
 | ||||||
|         "/dev/fuse" |         "/dev/fuse" | ||||||
|         "/dev/snd" |         "/dev/snd" | ||||||
|         "/dev/input" |         "/dev/input" | ||||||
|  |         "/dev/uinput" | ||||||
|         "/dev/shm" |         "/dev/shm" | ||||||
|         "/dev/kfd" |         "/dev/kfd" | ||||||
|         "/dev/dri" |         "/dev/dri" | ||||||
| @ -131,9 +136,10 @@ in | |||||||
|     overrideStrategy = "asDropin"; |     overrideStrategy = "asDropin"; | ||||||
|     serviceConfig = { |     serviceConfig = { | ||||||
|       DeviceAllow = [ |       DeviceAllow = [ | ||||||
|         "char-tty rwm" |         "char-* rwm" | ||||||
|         "char-input rwm" |         "block-* rwm" | ||||||
|         "char-drm rwm" |         "/dev/shm rwm" | ||||||
|  | 
 | ||||||
|       ]; |       ]; | ||||||
|     }; |     }; | ||||||
|   }; |   }; | ||||||
|  | |||||||
| @ -24,7 +24,8 @@ in | |||||||
|     "rcu_nocbs=${materusArg.materusPC.vmCores}" |     "rcu_nocbs=${materusArg.materusPC.vmCores}" | ||||||
|     "nohz_full=${materusArg.materusPC.vmCores}" |     "nohz_full=${materusArg.materusPC.vmCores}" | ||||||
|     "vfio_iommu_type1.allow_unsafe_interrupts=1" |     "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" |     "nox2apic" | ||||||
|     "nvme_core.default_ps_max_latency_us=0" |     "nvme_core.default_ps_max_latency_us=0" | ||||||
|     "nvme_core.io_timeout=255" |     "nvme_core.io_timeout=255" | ||||||
| @ -32,10 +33,13 @@ in | |||||||
|     "nvme_core.shutdown_timeout=10" |     "nvme_core.shutdown_timeout=10" | ||||||
|     "amd_iommu=on" |     "amd_iommu=on" | ||||||
|     "amdgpu.ppfeaturemask=0xffffffff" |     "amdgpu.ppfeaturemask=0xffffffff" | ||||||
|  |     "amdgpu.runpm=0" | ||||||
|     "iommu=pt" |     "iommu=pt" | ||||||
|     "psi=1" |     "psi=1" | ||||||
|  |     "i915.force_probe=!56a6"  | ||||||
|  |     "xe.force_probe=56a6" | ||||||
|   ] ++ video; |   ] ++ 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 = '' |   boot.extraModprobeConfig = '' | ||||||
|     options kvm_amd nested=1 avic=1 npt=1 sev=0 |     options kvm_amd nested=1 avic=1 npt=1 sev=0 | ||||||
|     options vfio_iommu_type1 allow_unsafe_interrupts=1 |     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.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 ]; |   boot.extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback kvmfr ]; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -31,6 +31,8 @@ | |||||||
|   hardware.opengl.driSupport32Bit = true; |   hardware.opengl.driSupport32Bit = true; | ||||||
|   hardware.opengl.extraPackages = with pkgs; [ |   hardware.opengl.extraPackages = with pkgs; [ | ||||||
|     vaapiVdpau |     vaapiVdpau | ||||||
|  |     vpl-gpu-rt | ||||||
|  |     intel-media-driver  | ||||||
|     libvdpau-va-gl |     libvdpau-va-gl | ||||||
|     amdvlk |     amdvlk | ||||||
|     vkbasalt |     vkbasalt | ||||||
|  | |||||||
| @ -1,4 +1,9 @@ | |||||||
| { pkgs, materusArg, lib, ... }: | { | ||||||
|  |   pkgs, | ||||||
|  |   materusArg, | ||||||
|  |   lib, | ||||||
|  |   ... | ||||||
|  | }: | ||||||
| { | { | ||||||
|   imports = [ |   imports = [ | ||||||
|     ./plasma.nix |     ./plasma.nix | ||||||
| @ -19,7 +24,13 @@ | |||||||
|     enableNixDevel = lib.mkDefault true; |     enableNixDevel = lib.mkDefault true; | ||||||
|     editor.emacs.enable = true; |     editor.emacs.enable = true; | ||||||
|     editor.code.fhs.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.clang | ||||||
|         llvmpkgs.llvm |         llvmpkgs.llvm | ||||||
|         llvmpkgs.bintools |         llvmpkgs.bintools | ||||||
| @ -82,15 +93,17 @@ | |||||||
|         ldc |         ldc | ||||||
|         dmd |         dmd | ||||||
|         dub |         dub | ||||||
|     ]); |       ] | ||||||
| 
 |     ); | ||||||
|      |  | ||||||
| 
 | 
 | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   home.packages = [ |   home.packages = [ | ||||||
|     materusArg.pkgs.ffmpeg_7-amf-full |     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.git-crypt | ||||||
|     pkgs.obsidian |     pkgs.obsidian | ||||||
|   ]; |   ]; | ||||||
| @ -133,7 +146,11 @@ | |||||||
|       exec = "${script} %U"; |       exec = "${script} %U"; | ||||||
|       icon = "brave-browser"; |       icon = "brave-browser"; | ||||||
|       terminal = false; |       terminal = false; | ||||||
|       categories = [ "Application" "Network" "WebBrowser" ]; |       categories = [ | ||||||
|  |         "Application" | ||||||
|  |         "Network" | ||||||
|  |         "WebBrowser" | ||||||
|  |       ]; | ||||||
|       mimeType = [ |       mimeType = [ | ||||||
|         "application/pdf" |         "application/pdf" | ||||||
|         "application/rdf+xml" |         "application/rdf+xml" | ||||||
|  | |||||||
| @ -1,6 +1,5 @@ | |||||||
| { config, pkgs, lib, ... }: | { config, pkgs, lib, ... }: | ||||||
| { | { | ||||||
|   services.displayManager.defaultSession = "plasma"; |  | ||||||
| 
 | 
 | ||||||
|   xdg.portal.enable = true; |   xdg.portal.enable = true; | ||||||
|   xdg.portal.wlr.enable = true; |   xdg.portal.wlr.enable = true; | ||||||
|  | |||||||
| @ -1,5 +1,10 @@ | |||||||
| { config, pkgs, lib, ... }: | { config, pkgs, lib, ... }: | ||||||
| let | 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" |   westonSddm = let xcfg = config.services.xserver; in  pkgs.writeText "weston.ini" | ||||||
|     '' |     '' | ||||||
|       [core] |       [core] | ||||||
| @ -21,7 +26,7 @@ let | |||||||
|       mode=1920x1080@240 |       mode=1920x1080@240 | ||||||
| 
 | 
 | ||||||
|       [output] |       [output] | ||||||
|       name=DP-2 |       name=DP-4 | ||||||
|       mode=off |       mode=off | ||||||
| 
 | 
 | ||||||
|       [output] |       [output] | ||||||
| @ -31,6 +36,8 @@ let | |||||||
|     ''; |     ''; | ||||||
| in | in | ||||||
| { | { | ||||||
|  |   services.displayManager.defaultSession = "plasma-materus"; | ||||||
|  |    | ||||||
|   services.displayManager.sddm.enable = true; |   services.displayManager.sddm.enable = true; | ||||||
|   services.displayManager.sddm.wayland.enable = true; |   services.displayManager.sddm.wayland.enable = true; | ||||||
|   services.displayManager.sddm.wayland.compositor = lib.mkForce "weston"; |   services.displayManager.sddm.wayland.compositor = lib.mkForce "weston"; | ||||||
| @ -39,6 +46,17 @@ in | |||||||
|     "--shell=kiosk" |     "--shell=kiosk" | ||||||
|     "-c ${westonSddm}" |     "-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 = { |   services.displayManager.sddm.settings = { | ||||||
|     General = { |     General = { | ||||||
|  | |||||||
| @ -14,13 +14,29 @@ | |||||||
| 
 | 
 | ||||||
|   systemd.tmpfiles.rules = [ "L+    /opt/rocm/hip   -    -    -     -    ${pkgs.rocmPackages.clr}" ]; |   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.flatpak.enable = true; | ||||||
|   services.gvfs.enable = true; |   services.gvfs.enable = true; | ||||||
| 
 | 
 | ||||||
|   services.xserver.xkb.layout = "pl"; |   services.xserver.xkb.layout = "pl"; | ||||||
| 
 | 
 | ||||||
|   services.xserver.enable = true; |   services.xserver.enable = true; | ||||||
|   services.xserver.videoDrivers = [ "amdgpu" ]; |   #services.xserver.videoDrivers = [ "amdgpu" "intel" ]; | ||||||
|   services.dbus.enable = true; |   services.dbus.enable = true; | ||||||
|   services.dbus.packages = [ pkgs.gcr ]; |   services.dbus.packages = [ pkgs.gcr ]; | ||||||
| 
 | 
 | ||||||
| @ -128,9 +144,6 @@ | |||||||
|     autoStart = false; |     autoStart = false; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   hardware.sane.enable = true; |  | ||||||
|   hardware.sane.extraBackends = [ pkgs.hplipWithPlugin ]; |  | ||||||
| 
 |  | ||||||
|   environment.enableAllTerminfo = true; |   environment.enableAllTerminfo = true; | ||||||
|   environment.pathsToLink = [ |   environment.pathsToLink = [ | ||||||
|     "/share/zsh" |     "/share/zsh" | ||||||
|  | |||||||
| @ -7,9 +7,9 @@ in | |||||||
|   config = lib.mkIf cfg.enable { |   config = lib.mkIf cfg.enable { | ||||||
|     programs.neovim = { |     programs.neovim = { | ||||||
|       enable = true; |       enable = true; | ||||||
|       package = materusArg.unstable.neovim-unwrapped; |       package = pkgs.neovim-unwrapped; | ||||||
|       coc.enable = true; |       coc.enable = true; | ||||||
|       coc.package = materusArg.unstable.vimPlugins.coc-nvim; |       coc.package = pkgs.vimPlugins.coc-nvim; | ||||||
|       viAlias = true; |       viAlias = true; | ||||||
|       vimAlias = true; |       vimAlias = true; | ||||||
|       vimdiffAlias = true; |       vimdiffAlias = true; | ||||||
| @ -25,7 +25,7 @@ in | |||||||
|       extraPackages = with pkgs;[ |       extraPackages = with pkgs;[ | ||||||
|       ]; |       ]; | ||||||
| 
 | 
 | ||||||
|       plugins = with materusArg.unstable.vimPlugins;[ |       plugins = with pkgs.vimPlugins;[ | ||||||
|         syntastic |         syntastic | ||||||
|         vim-fugitive |         vim-fugitive | ||||||
|         vim-airline |         vim-airline | ||||||
|  | |||||||
| @ -5,6 +5,7 @@ | |||||||
| #+PROPERTY: header-args :tangle no :noweb yes | #+PROPERTY: header-args :tangle no :noweb yes | ||||||
| #+OPTIONS: \n:t | #+OPTIONS: \n:t | ||||||
| #+auto_tangle: t | #+auto_tangle: t | ||||||
|  | 
 | ||||||
| * Table of Contents    :noexport:TOC_3: | * Table of Contents    :noexport:TOC_3: | ||||||
| - [[#early-init][Early Init]] | - [[#early-init][Early Init]] | ||||||
| - [[#init-core][Init Core]] | - [[#init-core][Init Core]] | ||||||
| @ -23,12 +24,14 @@ | |||||||
|     - [[#modeline][Modeline]] |     - [[#modeline][Modeline]] | ||||||
|     - [[#dashboard][Dashboard]] |     - [[#dashboard][Dashboard]] | ||||||
|     - [[#highlight-indent-guides][Highlight Indent Guides]] |     - [[#highlight-indent-guides][Highlight Indent Guides]] | ||||||
|  |     - [[#outli][Outli]] | ||||||
|  |     - [[#visual-replace][Visual Replace]] | ||||||
|   - [[#terminal][Terminal]] |   - [[#terminal][Terminal]] | ||||||
|     - [[#eat][Eat]] |     - [[#eat][Eat]] | ||||||
|     - [[#vterm][Vterm]] |     - [[#vterm][Vterm]] | ||||||
|   - [[#navigation-and-completion][Navigation and Completion]] |   - [[#navigation-and-completion][Navigation and Completion]] | ||||||
|     - [[#helm][HELM]] |     - [[#minibuffer-orderless-vertico-marginalia-consult][minibuffer (orderless, vertico, marginalia, consult)]] | ||||||
|     - [[#comapny][Comapny]] |     - [[#code-completion-cape-corfu][Code completion (Cape, corfu)]] | ||||||
|     - [[#dirvish][Dirvish]] |     - [[#dirvish][Dirvish]] | ||||||
|     - [[#treemacs][Treemacs]] |     - [[#treemacs][Treemacs]] | ||||||
|   - [[#programming][Programming]] |   - [[#programming][Programming]] | ||||||
| @ -66,9 +69,11 @@ | |||||||
| - [[#keybindings][Keybindings]] | - [[#keybindings][Keybindings]] | ||||||
| - [[#final-code][Final Code]] | - [[#final-code][Final Code]] | ||||||
| - [[#links][Links]] | - [[#links][Links]] | ||||||
|  | - [[#tests][Tests]] | ||||||
| - [[#archive][Archive]] | - [[#archive][Archive]] | ||||||
|   - [[#minibuffer-orderless-vertico-marginalia-consult][minibuffer (orderless, vertico, marginalia, consult)]] |   - [[#navigation-and-completion-1][Navigation and completion]] | ||||||
|   - [[#code-completion-cape-corfu][Code completion (Cape, corfu)]] |     - [[#helm][HELM]] | ||||||
|  |     - [[#comapny][Comapny]] | ||||||
| 
 | 
 | ||||||
| * Early Init | * Early Init | ||||||
| #+begin_src emacs-lisp :tangle (expand-file-name "early-init.el" user-emacs-directory) :noweb-ref 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 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 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 auto-save-default nil)                                                              ; TODO: configure auto saves, disable for now | ||||||
|   (setq backup-directory-alist |   (setq backup-directory-alist | ||||||
|         `((".*" . ,(concat user-emacs-directory "var/backups/"))))                          ; Set backup location |         `((".*" . ,(concat user-emacs-directory "var/backups/"))))                          ; Set backup location | ||||||
| @ -146,21 +153,17 @@ | |||||||
|   ;;; NATIVE COMPILATION |   ;;; NATIVE COMPILATION | ||||||
| 
 | 
 | ||||||
|   (setq native-comp-async-report-warnings-errors nil) ; Silence warnings |   (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 |   (setq native-comp-jit-compilation t | ||||||
|         ;;native-comp-deferred-compilation t  |         native-comp-deferred-compilation t  | ||||||
|         package-native-compile t) |         package-native-compile t) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|   ;; Setting up native-comp cache location |   ;; Setting up native-comp cache location | ||||||
| 
 | 
 | ||||||
|   (when (and (fboundp 'startup-redirect-eln-cache) | (when (boundp 'native-comp-eln-load-path) | ||||||
|              (fboundp 'native-comp-available-p) |   (startup-redirect-eln-cache (expand-file-name "var/eln-cache/" user-emacs-directory))) | ||||||
|              (native-comp-available-p)) |  | ||||||
|     (startup-redirect-eln-cache |  | ||||||
|      (convert-standard-filename |  | ||||||
|       (concat user-emacs-directory "var/eln-cache/")))) |  | ||||||
| #+end_src | #+end_src | ||||||
| 
 | 
 | ||||||
| * Init Core | * Init Core | ||||||
| @ -176,7 +179,7 @@ | |||||||
|     (print "WARN: emacs-build-time not set up, using current time") |     (print "WARN: emacs-build-time not set up, using current time") | ||||||
|     (setq emacs-build-time (decode-time (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 |   (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)) |   (setq read-process-output-max (* 1024 1024 3)) | ||||||
| 
 | 
 | ||||||
| #+END_src | #+END_src | ||||||
| @ -237,6 +240,33 @@ | |||||||
|            (use-package ,package :ensure nil ,@body)) |            (use-package ,package :ensure nil ,@body)) | ||||||
|       `(use-package ,package ,@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 | #+END_src | ||||||
| 
 | 
 | ||||||
| ** Custom File | ** Custom File | ||||||
| @ -269,6 +299,8 @@ | |||||||
|                                 (set-frame-parameter frame 'fullscreen 'maximized))  |                                 (set-frame-parameter frame 'fullscreen 'maximized))  | ||||||
|                 (select-frame-set-input-focus frame) ))) |                 (select-frame-set-input-focus frame) ))) | ||||||
|   (global-tab-line-mode 1) |   (global-tab-line-mode 1) | ||||||
|  |   (setq tab-line-close-tab-function 'kill-buffer) | ||||||
|  | 
 | ||||||
|   (setq window-divider-default-bottom-width 1) |   (setq window-divider-default-bottom-width 1) | ||||||
|   (setq window-divider-default-right-width 1) |   (setq window-divider-default-right-width 1) | ||||||
|   (window-divider-mode 1) |   (window-divider-mode 1) | ||||||
| @ -329,19 +361,19 @@ Setting up mouse | |||||||
| #+end_src | #+end_src | ||||||
| *** Modeline | *** Modeline | ||||||
| #+begin_src emacs-lisp | #+begin_src emacs-lisp | ||||||
|   ;; (use-package doom-modeline |   (use-package doom-modeline | ||||||
|   ;;   :init (setq doom-modeline-support-imenu t) |     :init (setq doom-modeline-support-imenu t) | ||||||
|   ;;   :hook (elpaca-after-init . doom-modeline-mode) |     :hook (elpaca-after-init . doom-modeline-mode) | ||||||
|   ;;   :config |     :config | ||||||
|   ;;   (setq doom-modeline-icon t) |     (setq doom-modeline-icon t) | ||||||
|   ;;   (setq doom-modeline-project-detection 'auto) |     (setq doom-modeline-project-detection 'auto) | ||||||
|   ;;   (setq doom-modeline-height 20) |     (setq doom-modeline-height 20) | ||||||
|   ;;   (setq doom-modeline-enable-word-count t) |     (setq doom-modeline-enable-word-count t) | ||||||
|   ;;   (setq doom-modeline-minor-modes t) |     (setq doom-modeline-minor-modes t) | ||||||
|   ;;   (setq display-time-24hr-format t) |     (setq display-time-24hr-format t) | ||||||
|   ;;   (display-time-mode 1) |     (display-time-mode 1) | ||||||
|   ;;   (column-number-mode 1) |     (column-number-mode 1) | ||||||
|   ;;   (line-number-mode 1)) |     (line-number-mode 1)) | ||||||
| 
 | 
 | ||||||
|   (use-package minions |   (use-package minions | ||||||
|     :hook (elpaca-after-init . minions-mode)) |     :hook (elpaca-after-init . minions-mode)) | ||||||
| @ -377,6 +409,20 @@ Setting up mouse | |||||||
|   (use-package highlight-indent-guides |   (use-package highlight-indent-guides | ||||||
|     :hook ((prog-mode . highlight-indent-guides-mode))) |     :hook ((prog-mode . highlight-indent-guides-mode))) | ||||||
| #+end_src | #+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 | ** Terminal | ||||||
| *** Eat | *** Eat | ||||||
| #+begin_src emacs-lisp | #+begin_src emacs-lisp | ||||||
| @ -414,40 +460,109 @@ Setting up mouse | |||||||
| (materus/use-package vterm) | (materus/use-package vterm) | ||||||
| #+end_src | #+end_src | ||||||
| ** Navigation and Completion | ** Navigation and Completion | ||||||
| *** HELM | *** minibuffer (orderless, vertico, marginalia, consult) | ||||||
| #+begin_src emacs-lisp | #+begin_src emacs-lisp | ||||||
|   (use-package helm |   (use-package orderless | ||||||
|     :config |     :init | ||||||
|     (setq helm-x-icons-provider 'nerd-icons) |     ;; Tune the global completion style settings to your liking! | ||||||
|     (setq helm-move-to-line-cycle-in-source nil) |     ;; This affects the minibuffer and non-lsp completion at point. | ||||||
|     (helm-mode 1) |     (setq completion-styles '(basic partial-completion orderless) | ||||||
|     ) |           completion-category-defaults nil | ||||||
|   (use-package helm-projectile |           completion-category-overrides nil)) | ||||||
|     :after (helm projectile)) |   (use-package consult) | ||||||
|   (use-package helm-ag |   (use-package marginalia) | ||||||
|     :after (helm)) |   (use-package embark) | ||||||
|   (use-package helm-rg |   (use-package embark-consult | ||||||
|     :after (helm))  |     :after (embark consult)) | ||||||
|   (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 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 | #+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 | *** Dirvish | ||||||
| #+begin_src emacs-lisp | #+begin_src emacs-lisp | ||||||
|   (use-package dirvish |   (use-package dirvish | ||||||
| @ -503,6 +618,7 @@ Setting up mouse | |||||||
| 
 | 
 | ||||||
|   (add-hook 'prog-mode-hook 'display-line-numbers-mode) |   (add-hook 'prog-mode-hook 'display-line-numbers-mode) | ||||||
|   (add-hook 'prog-mode-hook 'electric-indent-local-mode) |   (add-hook 'prog-mode-hook 'electric-indent-local-mode) | ||||||
|  |   (add-hook 'electric-indent-functions 'materus/--electric-indent-ignore-outli) | ||||||
| #+end_src | #+end_src | ||||||
| **** LSP | **** LSP | ||||||
| #+begin_src emacs-lisp | #+begin_src emacs-lisp | ||||||
| @ -513,7 +629,7 @@ Setting up mouse | |||||||
|     ;; (lsp-completion-provider :none) ;; we use Corfu! |     ;; (lsp-completion-provider :none) ;; we use Corfu! | ||||||
|     :config |     :config | ||||||
|     (setq lsp-keep-workspace-alive nil) |     (setq lsp-keep-workspace-alive nil) | ||||||
| 
 |     (setq lsp-enable-on-type-formatting nil) | ||||||
|      |      | ||||||
|     (defun lsp-booster--advice-json-parse (old-fn &rest args) |     (defun lsp-booster--advice-json-parse (old-fn &rest args) | ||||||
|       "Try to parse bytecode instead of json." |       "Try to parse bytecode instead of json." | ||||||
| @ -564,6 +680,18 @@ Setting up mouse | |||||||
|     (dap-auto-configure-mode 1)) |     (dap-auto-configure-mode 1)) | ||||||
| 
 | 
 | ||||||
| #+end_src | #+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 | *** Snippets | ||||||
| #+begin_src emacs-lisp  | #+begin_src emacs-lisp  | ||||||
|   (use-package yasnippet |   (use-package yasnippet | ||||||
| @ -588,8 +716,8 @@ Setting up mouse | |||||||
|     (add-hook 'c++-mode-hook 'display-line-numbers-mode) |     (add-hook 'c++-mode-hook 'display-line-numbers-mode) | ||||||
|     (add-hook 'c++-ts-mode-hook 'lsp-deferred) |     (add-hook 'c++-ts-mode-hook 'lsp-deferred) | ||||||
|     (add-hook 'c++-ts-mode-hook 'display-line-numbers-mode) |     (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 '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 '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")) | ||||||
|     (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-mode) | ||||||
|   (use-package nix-ts-mode) |   (use-package nix-ts-mode) | ||||||
|   (use-package lsp-nix |   (use-package lsp-nix | ||||||
|     :after (lsp-mode nix-mode nix-ts-mode) |     :after (lsp-mode nix-mode nix-ts-mode format-all) | ||||||
|     :ensure nil |     :ensure nil | ||||||
|     :config |     :config | ||||||
|     (add-to-list 'lsp-disabled-clients '(nix-mode . nix-nil))  |     (add-to-list 'lsp-disabled-clients '(nix-mode . nix-nil))  | ||||||
|     (setq lsp-nix-nixd-server-path "nixd") |     (setq lsp-nix-nixd-server-path "nixd") | ||||||
|     (when (executable-find "nixfmt")   |     (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 |     (unless lsp-nix-nixd-nixos-options-expr | ||||||
|       (setq lsp-nix-nixd-nixos-options-expr (concat "(builtins.getFlake \"/etc/nixos\").nixosConfigurations." (system-name) ".options"))) |       (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 |   (use-package slime | ||||||
|     :if (executable-find "sbcl") |     :if (executable-find "sbcl") | ||||||
|     :config |     :config | ||||||
|     (setq inferior-lisp-program "sbcl") |     (setq inferior-lisp-program "sbcl")) | ||||||
|     (slime-setup '(slime-fancy slime-company))) |  | ||||||
| #+end_src | #+end_src | ||||||
| *** Shell | *** Shell | ||||||
| **** Bash | **** Bash | ||||||
| @ -885,10 +1011,6 @@ Setting up mouse | |||||||
| 
 | 
 | ||||||
|     ;; CUA-like global |     ;; CUA-like global | ||||||
|     (define-key global-map (kbd "C-s") 'save-buffer) |     (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-a") 'mark-whole-buffer) | ||||||
|     (define-key global-map (kbd "C-f") 'isearch-forward) |     (define-key global-map (kbd "C-f") 'isearch-forward) | ||||||
|     (define-key global-map (kbd "C-S-f") 'isearch-backward) |     (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 ) |   (add-hook 'elpaca-after-init-hook #'materus/keybind-set ) | ||||||
| #+end_src | #+end_src | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| * Final Code | * Final Code | ||||||
| #+begin_src emacs-lisp :tangle (expand-file-name "init.el" user-emacs-directory) :noweb-ref final | #+begin_src emacs-lisp :tangle (expand-file-name "init.el" user-emacs-directory) :noweb-ref final | ||||||
|   ;;; -*- lexical-binding: t; -*- |   ;;; -*- lexical-binding: t; -*- | ||||||
| @ -936,115 +1057,80 @@ Setting up mouse | |||||||
|   <<init-custom-file>> |   <<init-custom-file>> | ||||||
| #+end_src | #+end_src | ||||||
| Make copy in this repository | 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>> |   <<early-init>> | ||||||
| #+end_src | #+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>> |   <<final>> | ||||||
| #+end_src | #+end_src | ||||||
| * Links | * 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 | * Archive | ||||||
| :PROPERTIES: | :PROPERTIES: | ||||||
| :header-args: :tangle no | :header-args: :tangle no | ||||||
| :END: | :END: | ||||||
| ** minibuffer (orderless, vertico, marginalia, consult) | ** Navigation and completion | ||||||
|  | *** HELM | ||||||
| #+begin_src emacs-lisp | #+begin_src emacs-lisp | ||||||
|   (use-package orderless |   (use-package helm | ||||||
|     :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) |  | ||||||
|     :config |     :config | ||||||
|     (setq completion-in-region-function |     (setq helm-x-icons-provider 'nerd-icons) | ||||||
|           (lambda (&rest args) |     (setq helm-move-to-line-cycle-in-source nil) | ||||||
|             (apply (if vertico-mode |     (helm-mode 1) | ||||||
|                        #'consult-completion-in-region |     ) | ||||||
|                      #'completion--in-region) |   (use-package helm-projectile | ||||||
|                    args))) |     :after (helm projectile)) | ||||||
|     (vertico-mode 1) |   (use-package helm-ag | ||||||
|     (marginalia-mode 1)) |     :after (helm)) | ||||||
|   (use-package vertico-mouse |   (use-package helm-rg | ||||||
|     :config |     :after (helm))  | ||||||
|     (vertico-mouse-mode 1) |   (use-package helm-ls-git | ||||||
|     :ensure nil |     :after (helm)) | ||||||
|     :after (vertico)) |  | ||||||
| #+end_src | #+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 | #+begin_src emacs-lisp | ||||||
|   (use-package cape) |     (use-package company | ||||||
| 
 |  | ||||||
|   (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)))) |  | ||||||
| 
 |  | ||||||
|       :hook |       :hook | ||||||
|     (lsp-completion-mode . materus/lsp-mode-setup-completion)) |       ((prog-mode . company-mode))) | ||||||
|  |     (use-package slime-company | ||||||
|  |       :if (executable-find "sbcl") | ||||||
|  |       :after (company slime)) | ||||||
| 
 | 
 | ||||||
| 
 | #+end_src | ||||||
| 
 |  | ||||||
|   (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 |  | ||||||
|  | |||||||
| @ -1,67 +1,69 @@ | |||||||
| ;;; -*- lexical-binding: t; -*- | ;;; -*- 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 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 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 initial-major-mode 'emacs-lisp-mode)                                               | ||||||
| (setq backup-directory-alist | 
 | ||||||
|  |   (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 |         `((".*" . ,(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   |         `((".*" ,(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 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 load-prefer-newer t)                                                                ; Prefer newer files to load | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| (setq package-enable-at-startup nil)                                                        |   (setq package-enable-at-startup nil)                                                        | ||||||
| (setq package-quickstart nil)                                                             ; Disable package quickstart |   (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 |   (set-language-environment "UTF-8")                                                        ; Use UTF-8 | ||||||
| (setq-default buffer-file-coding-system 'utf-8-unix) |   (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-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-theme-directory | ||||||
|         (concat user-emacs-directory "/etc/materus/themes" ))                               ; Set custom themes location |         (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 |     "The value of `gc-cons-threshold' after Emacs startup.")                                ; Define after init garbage collector threshold | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ;;; GARBAGE COLLECTOR  |   ;;; GARBAGE COLLECTOR  | ||||||
| (setq gc-cons-threshold most-positive-fixnum)                                             ; Set `gc-cons-threshold' so it won't collectect during initialization  |   (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 () |             (lambda () | ||||||
|               (setq gc-cons-threshold materus/emacs-gc-cons-threshold)))                    ; Set `gc-cons-threshold' to desired value after startup |               (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-inhibit-implied-resize t) | ||||||
| (setq frame-resize-pixelwise t) |   (setq frame-resize-pixelwise t) | ||||||
| (setq window-resize-pixelwise t)                                ; Allow pixelwise resizing of window and frame |   (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 |     (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)    |         '((width . 130)    | ||||||
|           (height . 40)))                  |           (height . 40)))                  | ||||||
| 
 | 
 | ||||||
| (advice-add #'tty-run-terminal-initialization :override #'ignore) |   (advice-add #'tty-run-terminal-initialization :override #'ignore) | ||||||
| (add-hook 'window-setup-hook |   (add-hook 'window-setup-hook | ||||||
|             (lambda () |             (lambda () | ||||||
|               (unless (display-graphic-p) |               (unless (display-graphic-p) | ||||||
|                 (advice-remove #'tty-run-terminal-initialization #'ignore)  |                 (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-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 |   (setq native-comp-jit-compilation t | ||||||
|       ;;native-comp-deferred-compilation t  |         native-comp-deferred-compilation t  | ||||||
|         package-native-compile t) |         package-native-compile t) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ;; Setting up native-comp cache location |   ;; Setting up native-comp cache location | ||||||
| 
 | 
 | ||||||
| (when (and (fboundp 'startup-redirect-eln-cache) | (when (boundp 'native-comp-eln-load-path) | ||||||
|            (fboundp 'native-comp-available-p) |   (startup-redirect-eln-cache (expand-file-name "var/eln-cache/" user-emacs-directory))) | ||||||
|            (native-comp-available-p)) |  | ||||||
|   (startup-redirect-eln-cache |  | ||||||
|    (convert-standard-filename |  | ||||||
|     (concat user-emacs-directory "var/eln-cache/")))) |  | ||||||
|  | |||||||
| @ -6,7 +6,7 @@ | |||||||
|     (print "WARN: emacs-build-time not set up, using current time") |     (print "WARN: emacs-build-time not set up, using current time") | ||||||
|     (setq emacs-build-time (decode-time (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 |   (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)) |   (setq read-process-output-max (* 1024 1024 3)) | ||||||
| 
 | 
 | ||||||
| ;; Elpaca Init | ;; Elpaca Init | ||||||
| @ -61,6 +61,33 @@ | |||||||
|          (use-package ,package :ensure nil ,@body)) |          (use-package ,package :ensure nil ,@body)) | ||||||
|     `(use-package ,package ,@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 | (use-package no-littering | ||||||
|   :ensure (:wait t) |   :ensure (:wait t) | ||||||
|   :config |   :config | ||||||
| @ -90,6 +117,8 @@ | |||||||
|                               (set-frame-parameter frame 'fullscreen 'maximized))  |                               (set-frame-parameter frame 'fullscreen 'maximized))  | ||||||
|               (select-frame-set-input-focus frame) ))) |               (select-frame-set-input-focus frame) ))) | ||||||
| (global-tab-line-mode 1) | (global-tab-line-mode 1) | ||||||
|  | (setq tab-line-close-tab-function 'kill-buffer) | ||||||
|  | 
 | ||||||
| (setq window-divider-default-bottom-width 1) | (setq window-divider-default-bottom-width 1) | ||||||
| (setq window-divider-default-right-width 1) | (setq window-divider-default-right-width 1) | ||||||
| (window-divider-mode 1) | (window-divider-mode 1) | ||||||
| @ -126,6 +155,7 @@ | |||||||
| 
 | 
 | ||||||
| (add-hook 'prog-mode-hook 'display-line-numbers-mode) | (add-hook 'prog-mode-hook 'display-line-numbers-mode) | ||||||
| (add-hook 'prog-mode-hook 'electric-indent-local-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 | (use-package dracula-theme :config | ||||||
|   (if (daemonp) |   (if (daemonp) | ||||||
|       (add-hook 'after-make-frame-functions |       (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-depth-5-face nil :foreground "#6A5ACD") | ||||||
|   (set-face-attribute 'rainbow-delimiters-unmatched-face nil :foreground "#FF0000")) |   (set-face-attribute 'rainbow-delimiters-unmatched-face nil :foreground "#FF0000")) | ||||||
| 
 | 
 | ||||||
| ;; (use-package doom-modeline | (use-package doom-modeline | ||||||
| ;;   :init (setq doom-modeline-support-imenu t) |   :init (setq doom-modeline-support-imenu t) | ||||||
| ;;   :hook (elpaca-after-init . doom-modeline-mode) |   :hook (elpaca-after-init . doom-modeline-mode) | ||||||
| ;;   :config |   :config | ||||||
| ;;   (setq doom-modeline-icon t) |   (setq doom-modeline-icon t) | ||||||
| ;;   (setq doom-modeline-project-detection 'auto) |   (setq doom-modeline-project-detection 'auto) | ||||||
| ;;   (setq doom-modeline-height 20) |   (setq doom-modeline-height 20) | ||||||
| ;;   (setq doom-modeline-enable-word-count t) |   (setq doom-modeline-enable-word-count t) | ||||||
| ;;   (setq doom-modeline-minor-modes t) |   (setq doom-modeline-minor-modes t) | ||||||
| ;;   (setq display-time-24hr-format t) |   (setq display-time-24hr-format t) | ||||||
| ;;   (display-time-mode 1) |   (display-time-mode 1) | ||||||
| ;;   (column-number-mode 1) |   (column-number-mode 1) | ||||||
| ;;   (line-number-mode 1)) |   (line-number-mode 1)) | ||||||
| 
 | 
 | ||||||
| (use-package minions | (use-package minions | ||||||
|   :hook (elpaca-after-init . minions-mode)) |   :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) |   (setq initial-buffer-choice (lambda () (get-buffer "*dashboard*")))) ; Show dashboard when emacs is running as daemon) | ||||||
| (use-package highlight-indent-guides | (use-package highlight-indent-guides | ||||||
|   :hook ((prog-mode . highlight-indent-guides-mode))) |   :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) | (use-package eat) | ||||||
| 
 | 
 | ||||||
| (materus/use-package vterm) | (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 |   :config | ||||||
|   (setq helm-x-icons-provider 'nerd-icons) |   (setq completion-in-region-function | ||||||
|   (setq helm-move-to-line-cycle-in-source nil) |         (lambda (&rest args) | ||||||
|   (helm-mode 1) |           (apply (if vertico-mode | ||||||
|   ) |                      #'consult-completion-in-region | ||||||
| (use-package helm-projectile |                    #'completion--in-region) | ||||||
|   :after (helm projectile)) |                  args))) | ||||||
| (use-package helm-ag |   (vertico-mode 1) | ||||||
|   :after (helm)) |   (marginalia-mode 1)) | ||||||
| (use-package helm-rg | (use-package vertico-mouse | ||||||
|   :after (helm))  |   :config | ||||||
| (use-package helm-ls-git |   (vertico-mouse-mode 1) | ||||||
|   :after (helm)) |   :ensure nil | ||||||
| (use-package company |   :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 |   :hook | ||||||
|   ((prog-mode . company-mode))) |   (lsp-completion-mode . materus/lsp-mode-setup-completion)) | ||||||
| (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) | ||||||
|  |    :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 | (use-package dirvish | ||||||
|   :after (nerd-icons) |   :after (nerd-icons) | ||||||
| @ -237,7 +350,7 @@ | |||||||
|   ;; (lsp-completion-provider :none) ;; we use Corfu! |   ;; (lsp-completion-provider :none) ;; we use Corfu! | ||||||
|   :config |   :config | ||||||
|   (setq lsp-keep-workspace-alive nil) |   (setq lsp-keep-workspace-alive nil) | ||||||
| 
 |   (setq lsp-enable-on-type-formatting nil) | ||||||
|    |    | ||||||
|   (defun lsp-booster--advice-json-parse (old-fn &rest args) |   (defun lsp-booster--advice-json-parse (old-fn &rest args) | ||||||
|     "Try to parse bytecode instead of json." |     "Try to parse bytecode instead of json." | ||||||
| @ -284,6 +397,15 @@ | |||||||
|   (setq dap-gdb-lldb-extension-version "0.27.0") |   (setq dap-gdb-lldb-extension-version "0.27.0") | ||||||
|   (dap-auto-configure-mode 1)) |   (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 | (use-package yasnippet | ||||||
|   :config |   :config | ||||||
|   (yas-global-mode 1)) |   (yas-global-mode 1)) | ||||||
| @ -302,8 +424,8 @@ | |||||||
|   (add-hook 'c++-mode-hook 'display-line-numbers-mode) |   (add-hook 'c++-mode-hook 'display-line-numbers-mode) | ||||||
|   (add-hook 'c++-ts-mode-hook 'lsp-deferred) |   (add-hook 'c++-ts-mode-hook 'lsp-deferred) | ||||||
|   (add-hook 'c++-ts-mode-hook 'display-line-numbers-mode) |   (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 '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 '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")) | ||||||
|   (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-mode) | ||||||
| (use-package nix-ts-mode) | (use-package nix-ts-mode) | ||||||
| (use-package lsp-nix | (use-package lsp-nix | ||||||
|   :after (lsp-mode nix-mode nix-ts-mode) |   :after (lsp-mode nix-mode nix-ts-mode format-all) | ||||||
|   :ensure nil |   :ensure nil | ||||||
|   :config |   :config | ||||||
|   (add-to-list 'lsp-disabled-clients '(nix-mode . nix-nil))  |   (add-to-list 'lsp-disabled-clients '(nix-mode . nix-nil))  | ||||||
|   (setq lsp-nix-nixd-server-path "nixd") |   (setq lsp-nix-nixd-server-path "nixd") | ||||||
|   (when (executable-find "nixfmt")   |   (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 |   (unless lsp-nix-nixd-nixos-options-expr | ||||||
|     (setq lsp-nix-nixd-nixos-options-expr (concat "(builtins.getFlake \"/etc/nixos\").nixosConfigurations." (system-name) ".options"))) |     (setq lsp-nix-nixd-nixos-options-expr (concat "(builtins.getFlake \"/etc/nixos\").nixosConfigurations." (system-name) ".options"))) | ||||||
| @ -362,8 +483,7 @@ | |||||||
| (use-package slime | (use-package slime | ||||||
|   :if (executable-find "sbcl") |   :if (executable-find "sbcl") | ||||||
|   :config |   :config | ||||||
|   (setq inferior-lisp-program "sbcl") |   (setq inferior-lisp-program "sbcl")) | ||||||
|   (slime-setup '(slime-fancy slime-company))) |  | ||||||
| (use-package bash-completion) | (use-package bash-completion) | ||||||
| (use-package diff-hl | (use-package diff-hl | ||||||
|   :config |   :config | ||||||
| @ -379,17 +499,17 @@ | |||||||
| (use-package git-timemachine | (use-package git-timemachine | ||||||
|   :defer t) |   :defer t) | ||||||
| (use-package org | (use-package org | ||||||
| :mode (("\\.org$" . org-mode)) |   :mode (("\\.org$" . org-mode)) | ||||||
| :hook |   :hook | ||||||
| ((org-mode . org-indent-mode) |   ((org-mode . org-indent-mode) | ||||||
|    (org-mode . display-line-numbers-mode) |    (org-mode . display-line-numbers-mode) | ||||||
|    ) |    ) | ||||||
| :config |   :config | ||||||
| (require 'org-mouse) |   (require 'org-mouse) | ||||||
| (require 'org-tempo) |   (require 'org-tempo) | ||||||
| (setq org-src-window-setup 'current-window) |   (setq org-src-window-setup 'current-window) | ||||||
| (setq org-latex-pdf-process '("latexmk -xelatex -quiet -shell-escape -f -output-directory=%o %f")) |   (setq org-latex-pdf-process '("latexmk -xelatex -quiet -shell-escape -f -output-directory=%o %f")) | ||||||
| (org-babel-do-load-languages |   (org-babel-do-load-languages | ||||||
|    'org-babel-load-languages |    'org-babel-load-languages | ||||||
|    '((latex . t) |    '((latex . t) | ||||||
|      (emacs-lisp . t) |      (emacs-lisp . t) | ||||||
| @ -400,7 +520,7 @@ | |||||||
|      (awk . t) |      (awk . t) | ||||||
|      (sql . t) |      (sql . t) | ||||||
|      (sqlite . t))) |      (sqlite . t))) | ||||||
| (add-hook 'org-mode-hook (lambda () |   (add-hook 'org-mode-hook (lambda () | ||||||
|                              (setq-local |                              (setq-local | ||||||
|                               electric-pair-inhibit-predicate |                               electric-pair-inhibit-predicate | ||||||
|                               `(lambda (c) |                               `(lambda (c) | ||||||
| @ -477,10 +597,6 @@ | |||||||
| 
 | 
 | ||||||
|   ;; CUA-like global |   ;; CUA-like global | ||||||
|   (define-key global-map (kbd "C-s") 'save-buffer) |   (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-a") 'mark-whole-buffer) | ||||||
|   (define-key global-map (kbd "C-f") 'isearch-forward) |   (define-key global-map (kbd "C-f") 'isearch-forward) | ||||||
|   (define-key global-map (kbd "C-S-f") 'isearch-backward) |   (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) |   (advice-add 'eat-char-mode :after #'cua--eat-char-override-keymap) | ||||||
|   (add-hook 'eat-char-mode-hook #'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 |   ;; Treemacs | ||||||
|   (define-key global-map (kbd "C-H-t") 'treemacs)) |   (define-key global-map (kbd "C-H-t") 'treemacs)) | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										122
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										122
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							| @ -5,11 +5,11 @@ | |||||||
|         "fromYaml": "fromYaml" |         "fromYaml": "fromYaml" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1732200724, |         "lastModified": 1746562888, | ||||||
|         "narHash": "sha256-+R1BH5wHhfnycySb7Sy5KbYEaTJZWm1h+LW1OtyhiTs=", |         "narHash": "sha256-YgNJQyB5dQiwavdDFBMNKk1wyS77AtdgDk/VtU6wEaI=", | ||||||
|         "owner": "SenchoPens", |         "owner": "SenchoPens", | ||||||
|         "repo": "base16.nix", |         "repo": "base16.nix", | ||||||
|         "rev": "153d52373b0fb2d343592871009a286ec8837aec", |         "rev": "806a1777a5db2a1ef9d5d6f493ef2381047f2b89", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
| @ -24,11 +24,11 @@ | |||||||
|         "fromYaml": "fromYaml_2" |         "fromYaml": "fromYaml_2" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1732200724, |         "lastModified": 1746562888, | ||||||
|         "narHash": "sha256-+R1BH5wHhfnycySb7Sy5KbYEaTJZWm1h+LW1OtyhiTs=", |         "narHash": "sha256-YgNJQyB5dQiwavdDFBMNKk1wyS77AtdgDk/VtU6wEaI=", | ||||||
|         "owner": "SenchoPens", |         "owner": "SenchoPens", | ||||||
|         "repo": "base16.nix", |         "repo": "base16.nix", | ||||||
|         "rev": "153d52373b0fb2d343592871009a286ec8837aec", |         "rev": "806a1777a5db2a1ef9d5d6f493ef2381047f2b89", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
| @ -159,11 +159,11 @@ | |||||||
|         "nixpkgs-stable": "nixpkgs-stable" |         "nixpkgs-stable": "nixpkgs-stable" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1744967866, |         "lastModified": 1747188492, | ||||||
|         "narHash": "sha256-jWHOSSZ03R1Dvru5rXEForMgkV1RAsCd+IjMmehpmFg=", |         "narHash": "sha256-9DZ/Wr6zDvb2GxgvxkGxCFJctqhn4vIPeCh+Yctflg0=", | ||||||
|         "owner": "nix-community", |         "owner": "nix-community", | ||||||
|         "repo": "emacs-overlay", |         "repo": "emacs-overlay", | ||||||
|         "rev": "c54fd7dc3e696136c8257abfe12815274b42660e", |         "rev": "6d15ffa9720fc7d6635238d961593a289062b555", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
| @ -182,11 +182,11 @@ | |||||||
|         "nixpkgs-stable": "nixpkgs-stable_2" |         "nixpkgs-stable": "nixpkgs-stable_2" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1744967866, |         "lastModified": 1747188492, | ||||||
|         "narHash": "sha256-jWHOSSZ03R1Dvru5rXEForMgkV1RAsCd+IjMmehpmFg=", |         "narHash": "sha256-9DZ/Wr6zDvb2GxgvxkGxCFJctqhn4vIPeCh+Yctflg0=", | ||||||
|         "owner": "nix-community", |         "owner": "nix-community", | ||||||
|         "repo": "emacs-overlay", |         "repo": "emacs-overlay", | ||||||
|         "rev": "c54fd7dc3e696136c8257abfe12815274b42660e", |         "rev": "6d15ffa9720fc7d6635238d961593a289062b555", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
| @ -436,11 +436,11 @@ | |||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1744743431, |         "lastModified": 1747020534, | ||||||
|         "narHash": "sha256-iyn/WBYDc7OtjSawbegINDe/gIkok888kQxk3aVnkgg=", |         "narHash": "sha256-D/6rkiC6w2p+4SwRiVKrWIeYzun8FBg7NlMKMwQMxO0=", | ||||||
|         "owner": "nix-community", |         "owner": "nix-community", | ||||||
|         "repo": "home-manager", |         "repo": "home-manager", | ||||||
|         "rev": "c61bfe3ae692f42ce688b5865fac9e0de58e1387", |         "rev": "b4bbdc6fde16fc2051fcde232f6e288cd22007ca", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
| @ -458,11 +458,11 @@ | |||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1744919155, |         "lastModified": 1747184352, | ||||||
|         "narHash": "sha256-IJksPW32V9gid9vDxoloJMRk+YGjxq5drFHBFeBkKU8=", |         "narHash": "sha256-GBZulv50wztp5cgc405t1uOkxQYhSkMqeKLI+iSrlpk=", | ||||||
|         "owner": "nix-community", |         "owner": "nix-community", | ||||||
|         "repo": "home-manager", |         "repo": "home-manager", | ||||||
|         "rev": "72526a5f7cde2ef9075637802a1e2a8d2d658f70", |         "rev": "7c1cefb98369cc85440642fdccc1c1394ca6dd2c", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
| @ -477,10 +477,10 @@ | |||||||
|         "nixpkgs": "nixpkgs_5" |         "nixpkgs": "nixpkgs_5" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1744117652, |         "lastModified": 1746171682, | ||||||
|         "narHash": "sha256-t7dFCDl4vIOOUMhEZnJF15aAzkpaup9x4ZRGToDFYWI=", |         "narHash": "sha256-EyXUNSa+H+YvGVuQJP1nZskXAowxKYp79RNUsNdQTj4=", | ||||||
|         "path": "/nix/store/avba4k04vxmknff9mjchmwyvr3vpzccz-source", |         "path": "/nix/store/xcqyjkljvvi1qk78la2vh5b783yzs7wl-source", | ||||||
|         "rev": "b4e98224ad1336751a2ac7493967a4c9f6d9cb3f", |         "rev": "50eee705bbdbac942074a8c120e8194185633675", | ||||||
|         "type": "path" |         "type": "path" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
| @ -500,11 +500,11 @@ | |||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1744941256, |         "lastModified": 1747188026, | ||||||
|         "narHash": "sha256-dCsDco+HQ0rwApyTmmyot9fUVIC0XeWOf/YpB8LZd18=", |         "narHash": "sha256-NjiJ2Bce5F7dn+6ZGCenzIjem2+Ei4SDF78x2wHVlOY=", | ||||||
|         "owner": "nix-community", |         "owner": "nix-community", | ||||||
|         "repo": "nix-vscode-extensions", |         "repo": "nix-vscode-extensions", | ||||||
|         "rev": "0dd8474f697c02ac1861a96f7626f8fb9e21f268", |         "rev": "083675f78e7de80e9fec1f621b8a508e58327131", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
| @ -526,11 +526,11 @@ | |||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1744941256, |         "lastModified": 1747188026, | ||||||
|         "narHash": "sha256-dCsDco+HQ0rwApyTmmyot9fUVIC0XeWOf/YpB8LZd18=", |         "narHash": "sha256-NjiJ2Bce5F7dn+6ZGCenzIjem2+Ei4SDF78x2wHVlOY=", | ||||||
|         "owner": "nix-community", |         "owner": "nix-community", | ||||||
|         "repo": "nix-vscode-extensions", |         "repo": "nix-vscode-extensions", | ||||||
|         "rev": "0dd8474f697c02ac1861a96f7626f8fb9e21f268", |         "rev": "083675f78e7de80e9fec1f621b8a508e58327131", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
| @ -553,11 +553,11 @@ | |||||||
|         "nur": "nur" |         "nur": "nur" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1744223916, |         "lastModified": 1747136507, | ||||||
|         "narHash": "sha256-LHS51wl/LFzWvrplcL/LJ3eIqMRyiwXch4IxA1Pq1ig=", |         "narHash": "sha256-lnt9LypZVMRzRDpl+gQtrInxvsF7CL18TTEMthXz8p8=", | ||||||
|         "owner": "materusPL", |         "owner": "materusPL", | ||||||
|         "repo": "Nixerus", |         "repo": "Nixerus", | ||||||
|         "rev": "2caaf0b89ebf8edb9a1b0400c774670d838ef12f", |         "rev": "8c329020c653c04a8f0f50dc7400c01b3b9e3733", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
| @ -580,11 +580,11 @@ | |||||||
|         "nur": "nur_3" |         "nur": "nur_3" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1744223916, |         "lastModified": 1747136507, | ||||||
|         "narHash": "sha256-LHS51wl/LFzWvrplcL/LJ3eIqMRyiwXch4IxA1Pq1ig=", |         "narHash": "sha256-lnt9LypZVMRzRDpl+gQtrInxvsF7CL18TTEMthXz8p8=", | ||||||
|         "owner": "materusPL", |         "owner": "materusPL", | ||||||
|         "repo": "Nixerus", |         "repo": "Nixerus", | ||||||
|         "rev": "2caaf0b89ebf8edb9a1b0400c774670d838ef12f", |         "rev": "8c329020c653c04a8f0f50dc7400c01b3b9e3733", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
| @ -596,11 +596,11 @@ | |||||||
|     }, |     }, | ||||||
|     "nixos-hardware": { |     "nixos-hardware": { | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1744633460, |         "lastModified": 1747129300, | ||||||
|         "narHash": "sha256-fbWE4Xpw6eH0Q6in+ymNuDwTkqmFmtxcQEmtRuKDTTk=", |         "narHash": "sha256-L3clA5YGeYCF47ghsI7Tcex+DnaaN/BbQ4dR2wzoiKg=", | ||||||
|         "owner": "NixOS", |         "owner": "NixOS", | ||||||
|         "repo": "nixos-hardware", |         "repo": "nixos-hardware", | ||||||
|         "rev": "9a049b4a421076d27fee3eec664a18b2066824cb", |         "rev": "e81fd167b33121269149c57806599045fd33eeed", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
| @ -612,11 +612,11 @@ | |||||||
|     }, |     }, | ||||||
|     "nixos-hardware_2": { |     "nixos-hardware_2": { | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1744633460, |         "lastModified": 1747129300, | ||||||
|         "narHash": "sha256-fbWE4Xpw6eH0Q6in+ymNuDwTkqmFmtxcQEmtRuKDTTk=", |         "narHash": "sha256-L3clA5YGeYCF47ghsI7Tcex+DnaaN/BbQ4dR2wzoiKg=", | ||||||
|         "owner": "NixOS", |         "owner": "NixOS", | ||||||
|         "repo": "nixos-hardware", |         "repo": "nixos-hardware", | ||||||
|         "rev": "9a049b4a421076d27fee3eec664a18b2066824cb", |         "rev": "e81fd167b33121269149c57806599045fd33eeed", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
| @ -644,11 +644,11 @@ | |||||||
|     }, |     }, | ||||||
|     "nixpkgs-stable": { |     "nixpkgs-stable": { | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1744440957, |         "lastModified": 1746957726, | ||||||
|         "narHash": "sha256-FHlSkNqFmPxPJvy+6fNLaNeWnF1lZSgqVCl/eWaJRc4=", |         "narHash": "sha256-k9ut1LSfHCr0AW82ttEQzXVCqmyWVA5+SHJkS5ID/Jo=", | ||||||
|         "owner": "NixOS", |         "owner": "NixOS", | ||||||
|         "repo": "nixpkgs", |         "repo": "nixpkgs", | ||||||
|         "rev": "26d499fc9f1d567283d5d56fcf367edd815dba1d", |         "rev": "a39ed32a651fdee6842ec930761e31d1f242cb94", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
| @ -660,11 +660,11 @@ | |||||||
|     }, |     }, | ||||||
|     "nixpkgs-stable_2": { |     "nixpkgs-stable_2": { | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1744440957, |         "lastModified": 1746957726, | ||||||
|         "narHash": "sha256-FHlSkNqFmPxPJvy+6fNLaNeWnF1lZSgqVCl/eWaJRc4=", |         "narHash": "sha256-k9ut1LSfHCr0AW82ttEQzXVCqmyWVA5+SHJkS5ID/Jo=", | ||||||
|         "owner": "NixOS", |         "owner": "NixOS", | ||||||
|         "repo": "nixpkgs", |         "repo": "nixpkgs", | ||||||
|         "rev": "26d499fc9f1d567283d5d56fcf367edd815dba1d", |         "rev": "a39ed32a651fdee6842ec930761e31d1f242cb94", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
| @ -676,11 +676,11 @@ | |||||||
|     }, |     }, | ||||||
|     "nixpkgs-stable_3": { |     "nixpkgs-stable_3": { | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1744440957, |         "lastModified": 1746957726, | ||||||
|         "narHash": "sha256-FHlSkNqFmPxPJvy+6fNLaNeWnF1lZSgqVCl/eWaJRc4=", |         "narHash": "sha256-k9ut1LSfHCr0AW82ttEQzXVCqmyWVA5+SHJkS5ID/Jo=", | ||||||
|         "owner": "NixOS", |         "owner": "NixOS", | ||||||
|         "repo": "nixpkgs", |         "repo": "nixpkgs", | ||||||
|         "rev": "26d499fc9f1d567283d5d56fcf367edd815dba1d", |         "rev": "a39ed32a651fdee6842ec930761e31d1f242cb94", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
| @ -740,11 +740,11 @@ | |||||||
|     }, |     }, | ||||||
|     "nixpkgs_5": { |     "nixpkgs_5": { | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1731755305, |         "lastModified": 1746055187, | ||||||
|         "narHash": "sha256-v5P3dk5JdiT+4x69ZaB18B8+Rcu3TIOrcdG4uEX7WZ8=", |         "narHash": "sha256-3dqArYSMP9hM7Qpy5YWhnSjiqniSaT2uc5h2Po7tmg0=", | ||||||
|         "owner": "NixOS", |         "owner": "NixOS", | ||||||
|         "repo": "nixpkgs", |         "repo": "nixpkgs", | ||||||
|         "rev": "057f63b6dc1a2c67301286152eb5af20747a9cb4", |         "rev": "3e362ce63e16b9572d8c2297c04f7c19ab6725a5", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
| @ -756,11 +756,11 @@ | |||||||
|     }, |     }, | ||||||
|     "nixpkgs_6": { |     "nixpkgs_6": { | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1744463964, |         "lastModified": 1746904237, | ||||||
|         "narHash": "sha256-LWqduOgLHCFxiTNYi3Uj5Lgz0SR+Xhw3kr/3Xd0GPTM=", |         "narHash": "sha256-3e+AVBczosP5dCLQmMoMEogM57gmZ2qrVSrmq9aResQ=", | ||||||
|         "owner": "NixOS", |         "owner": "NixOS", | ||||||
|         "repo": "nixpkgs", |         "repo": "nixpkgs", | ||||||
|         "rev": "2631b0b7abcea6e640ce31cd78ea58910d31e650", |         "rev": "d89fc19e405cb2d55ce7cc114356846a0ee5e956", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
| @ -970,11 +970,11 @@ | |||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1744669848, |         "lastModified": 1746485181, | ||||||
|         "narHash": "sha256-pXyanHLUzLNd3MX9vsWG+6Z2hTU8niyphWstYEP3/GU=", |         "narHash": "sha256-PxrrSFLaC7YuItShxmYbMgSuFFuwxBB+qsl9BZUnRvg=", | ||||||
|         "owner": "Mic92", |         "owner": "Mic92", | ||||||
|         "repo": "sops-nix", |         "repo": "sops-nix", | ||||||
|         "rev": "61154300d945f0b147b30d24ddcafa159148026a", |         "rev": "e93ee1d900ad264d65e9701a5c6f895683433386", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
| @ -992,11 +992,11 @@ | |||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1744669848, |         "lastModified": 1746485181, | ||||||
|         "narHash": "sha256-pXyanHLUzLNd3MX9vsWG+6Z2hTU8niyphWstYEP3/GU=", |         "narHash": "sha256-PxrrSFLaC7YuItShxmYbMgSuFFuwxBB+qsl9BZUnRvg=", | ||||||
|         "owner": "Mic92", |         "owner": "Mic92", | ||||||
|         "repo": "sops-nix", |         "repo": "sops-nix", | ||||||
|         "rev": "61154300d945f0b147b30d24ddcafa159148026a", |         "rev": "e93ee1d900ad264d65e9701a5c6f895683433386", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user