mirror of
				https://github.com/materusPL/nixos-config
				synced 2025-11-03 22:10:28 +01:00 
			
		
		
		
	Compare commits
	
		
			7 Commits
		
	
	
		
			1d99fb630f
			...
			e374cc2f6f
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| e374cc2f6f | |||
| 241d269789 | |||
| 30ca0d4dcf | |||
| 35380d2465 | |||
| 44228e35c9 | |||
| 3c1f23b5d4 | |||
| 3ee90d9e60 | 
							
								
								
									
										18
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								README.md
									
									
									
									
									
								
							@ -1,18 +0,0 @@
 | 
				
			|||||||
# nixos-config
 | 
					 | 
				
			||||||
My NixOS and home-manager configs.
 | 
					 | 
				
			||||||
Dotfiles and helper scripts.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Not all config is here, some I keep in private flake.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## Hosts
 | 
					 | 
				
			||||||
materusPC - my main PC
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Old-materusPC - my old PC, barely used
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
flamaster - my laptop, used mostly as server for games.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
valkyrie - VPS, my website and pleroma instance
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
waffentrager - raspberry pi4, home server
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
							
								
								
									
										21
									
								
								README.org
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								README.org
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,21 @@
 | 
				
			|||||||
 | 
					#+TITLE: nixos-config
 | 
				
			||||||
 | 
					#+AUTHOR: materus
 | 
				
			||||||
 | 
					#+DESCRIPTION: NixOS config and dotfiles
 | 
				
			||||||
 | 
					#+OPTIONS: \n:t
 | 
				
			||||||
 | 
					My NixOS and home-manager configs.
 | 
				
			||||||
 | 
					Dotfiles and helper scripts.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Part of it is encrypted by git-crypt, mostly just ips and names. Secrets are managed by sops.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Hosts
 | 
				
			||||||
 | 
					[[./configurations/host/materusPC/][materusPC]] - my main PC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[./configurations/host/Old-materusPC/][Old-materusPC]] - my old PC, barely used
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[./configurations/host/flamaster/][flamaster]] - my laptop, used mostly as server for games.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[./configurations/host/valkyrie/][valkyrie]] - VPS, my website and pleroma instance
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[./configurations/host/waffentrager/][waffentrager]] - raspberry pi4, home server
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -2,28 +2,43 @@
 | 
				
			|||||||
# your system.  Help is available in the configuration.nix(5) man page
 | 
					# your system.  Help is available in the configuration.nix(5) man page
 | 
				
			||||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
 | 
					# and in the NixOS manual (accessible by running ‘nixos-help’).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{ config, pkgs, materusCfg, materusArg, ... }:
 | 
					{
 | 
				
			||||||
 | 
					  config,
 | 
				
			||||||
 | 
					  pkgs,
 | 
				
			||||||
 | 
					  materusCfg,
 | 
				
			||||||
 | 
					  materusArg,
 | 
				
			||||||
 | 
					  ...
 | 
				
			||||||
 | 
					}:
 | 
				
			||||||
let
 | 
					let
 | 
				
			||||||
  unstable = import materusCfg.materusFlake.inputs.nixpkgs { system = "x86_64-linux"; config = { allowUnfree = true; nvidia.acceptLicense = true; }; };
 | 
					  unstable = import materusCfg.materusFlake.inputs.nixpkgs {
 | 
				
			||||||
 | 
					    system = "x86_64-linux";
 | 
				
			||||||
 | 
					    config = {
 | 
				
			||||||
 | 
					      allowUnfree = true;
 | 
				
			||||||
 | 
					      nvidia.acceptLicense = true;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
in
 | 
					in
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  imports =
 | 
					  imports = [
 | 
				
			||||||
    [
 | 
					 | 
				
			||||||
    # Include the results of the hardware scan.
 | 
					    # Include the results of the hardware scan.
 | 
				
			||||||
    ./hardware-configuration.nix
 | 
					    ./hardware-configuration.nix
 | 
				
			||||||
    ./network.nix
 | 
					    ./network.nix
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
  boot.supportedFilesystems = [ "ntfs" ];
 | 
					  boot.supportedFilesystems = [ "ntfs" ];
 | 
				
			||||||
  nix.settings.experimental-features = [ "nix-command" "flakes" ];
 | 
					  nix.settings.experimental-features = [
 | 
				
			||||||
 | 
					    "nix-command"
 | 
				
			||||||
 | 
					    "flakes"
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
  nix.settings.auto-optimise-store = true;
 | 
					  nix.settings.auto-optimise-store = true;
 | 
				
			||||||
  nix.settings.substituters = [
 | 
					  nix.settings.substituters = [
 | 
				
			||||||
    "https://nix-community.cachix.org"
 | 
					    "https://nix-community.cachix.org"
 | 
				
			||||||
    "https://cache.nixos.org/"
 | 
					    "https://cache.nixos.org/"
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
  nix.settings.trusted-public-keys = [ "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" ];
 | 
					  nix.settings.trusted-public-keys = [
 | 
				
			||||||
 | 
					    "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
  nixpkgs.config.allowUnfree = true;
 | 
					  nixpkgs.config.allowUnfree = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Use the systemd-boot EFI boot loader.
 | 
					  # Use the systemd-boot EFI boot loader.
 | 
				
			||||||
  boot.loader.grub = {
 | 
					  boot.loader.grub = {
 | 
				
			||||||
    enable = true;
 | 
					    enable = true;
 | 
				
			||||||
@ -70,20 +85,11 @@ in
 | 
				
			|||||||
  # Enable the X11 windowing system.
 | 
					  # Enable the X11 windowing system.
 | 
				
			||||||
  services.xserver.enable = true;
 | 
					  services.xserver.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
  hardware.opengl.enable = true;
 | 
					  hardware.opengl.enable = true;
 | 
				
			||||||
  hardware.opengl.driSupport32Bit = true;
 | 
					  hardware.opengl.driSupport32Bit = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  materus.profile.steam.enable = true;
 | 
					  materus.profile.steam.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Configure keymap in X11
 | 
					  # Configure keymap in X11
 | 
				
			||||||
  services.xserver.xkb.layout = "pl";
 | 
					  services.xserver.xkb.layout = "pl";
 | 
				
			||||||
  # services.xserver.xkbOptions = {
 | 
					  # services.xserver.xkbOptions = {
 | 
				
			||||||
@ -114,17 +120,25 @@ in
 | 
				
			|||||||
    '';
 | 
					    '';
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
  virtualisation.podman = {
 | 
					  virtualisation.podman = {
 | 
				
			||||||
    enable = true;
 | 
					    enable = true;
 | 
				
			||||||
    dockerCompat = true;
 | 
					    dockerCompat = true;
 | 
				
			||||||
    dockerSocket.enable = true;
 | 
					    dockerSocket.enable = true;
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
  users.users.materus = {
 | 
					  users.users.materus = {
 | 
				
			||||||
    isNormalUser = true;
 | 
					    isNormalUser = true;
 | 
				
			||||||
    extraGroups = [ "wheel" "networkmanager" "kvm" "input" "libvirt" "libvirtd" "podman" "audio" "pipewire" ];
 | 
					    extraGroups = [
 | 
				
			||||||
 | 
					      "wheel"
 | 
				
			||||||
 | 
					      "networkmanager"
 | 
				
			||||||
 | 
					      "kvm"
 | 
				
			||||||
 | 
					      "input"
 | 
				
			||||||
 | 
					      "libvirt"
 | 
				
			||||||
 | 
					      "libvirtd"
 | 
				
			||||||
 | 
					      "podman"
 | 
				
			||||||
 | 
					      "audio"
 | 
				
			||||||
 | 
					      "pipewire"
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
    shell = pkgs.zsh;
 | 
					    shell = pkgs.zsh;
 | 
				
			||||||
    description = "Mateusz Słodkowicz";
 | 
					    description = "Mateusz Słodkowicz";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -140,9 +154,7 @@ in
 | 
				
			|||||||
    STEAM_EXTRA_COMPAT_TOOLS_PATHS = "\${HOME}/.steam/root/compatibilitytools.d";
 | 
					    STEAM_EXTRA_COMPAT_TOOLS_PATHS = "\${HOME}/.steam/root/compatibilitytools.d";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    MOZ_USE_XINPUT2 = "1";
 | 
					    MOZ_USE_XINPUT2 = "1";
 | 
				
			||||||
    PATH = [
 | 
					    PATH = [ "\${XDG_BIN_HOME}" ];
 | 
				
			||||||
      "\${XDG_BIN_HOME}"
 | 
					 | 
				
			||||||
    ];
 | 
					 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
  environment.shellInit = ''
 | 
					  environment.shellInit = ''
 | 
				
			||||||
    if ! [ -z "$DISPLAY" ]; then xhost +si:localuser:root &> /dev/null; fi;
 | 
					    if ! [ -z "$DISPLAY" ]; then xhost +si:localuser:root &> /dev/null; fi;
 | 
				
			||||||
@ -151,11 +163,13 @@ in
 | 
				
			|||||||
  # List packages installed in system profile. To search, run:
 | 
					  # List packages installed in system profile. To search, run:
 | 
				
			||||||
  # $ nix search wget
 | 
					  # $ nix search wget
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  i18n.inputMethod.enabled = "fcitx5";
 | 
					  i18n.inputMethod.enabled = "fcitx5";
 | 
				
			||||||
  i18n.inputMethod.fcitx5.addons = [ pkgs.fcitx5-configtool pkgs.fcitx5-lua pkgs.fcitx5-mozc pkgs.libsForQt5.fcitx5-qt ];
 | 
					  i18n.inputMethod.fcitx5.addons = [
 | 
				
			||||||
 | 
					    pkgs.fcitx5-configtool
 | 
				
			||||||
 | 
					    pkgs.fcitx5-lua
 | 
				
			||||||
 | 
					    pkgs.fcitx5-mozc
 | 
				
			||||||
 | 
					    pkgs.libsForQt5.fcitx5-qt
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  environment.systemPackages = with pkgs; [
 | 
					  environment.systemPackages = with pkgs; [
 | 
				
			||||||
    brave
 | 
					    brave
 | 
				
			||||||
@ -172,10 +186,14 @@ in
 | 
				
			|||||||
    curl
 | 
					    curl
 | 
				
			||||||
    jdk
 | 
					    jdk
 | 
				
			||||||
    nss_latest
 | 
					    nss_latest
 | 
				
			||||||
    aspell
 | 
					    (aspellWithDicts (
 | 
				
			||||||
    aspellDicts.pl
 | 
					      ds: with ds; [
 | 
				
			||||||
    aspellDicts.en
 | 
					        en
 | 
				
			||||||
    aspellDicts.en-computers
 | 
					        en-computers
 | 
				
			||||||
 | 
					        en-science
 | 
				
			||||||
 | 
					        pl
 | 
				
			||||||
 | 
					      ]
 | 
				
			||||||
 | 
					    ))
 | 
				
			||||||
    distrobox
 | 
					    distrobox
 | 
				
			||||||
    p7zip
 | 
					    p7zip
 | 
				
			||||||
    unrar
 | 
					    unrar
 | 
				
			||||||
@ -197,12 +215,9 @@ in
 | 
				
			|||||||
    iptraf-ng
 | 
					    iptraf-ng
 | 
				
			||||||
    mprocs
 | 
					    mprocs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    nix-du
 | 
					    nix-du
 | 
				
			||||||
    git-crypt
 | 
					    git-crypt
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
    wineWowPackages.stagingFull
 | 
					    wineWowPackages.stagingFull
 | 
				
			||||||
    winetricks
 | 
					    winetricks
 | 
				
			||||||
    protontricks
 | 
					    protontricks
 | 
				
			||||||
@ -215,9 +230,6 @@ in
 | 
				
			|||||||
    inkscape
 | 
					    inkscape
 | 
				
			||||||
    gimp
 | 
					    gimp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    virt-manager
 | 
					    virt-manager
 | 
				
			||||||
    libguestfs
 | 
					    libguestfs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -228,7 +240,6 @@ in
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    binutils
 | 
					    binutils
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  fonts.fontDir.enable = true;
 | 
					  fonts.fontDir.enable = true;
 | 
				
			||||||
@ -244,15 +255,38 @@ in
 | 
				
			|||||||
    ubuntu_font_family
 | 
					    ubuntu_font_family
 | 
				
			||||||
    wqy_zenhei
 | 
					    wqy_zenhei
 | 
				
			||||||
    monocraft
 | 
					    monocraft
 | 
				
			||||||
    (nerdfonts.override { fonts = [ "FiraCode" "DroidSansMono" "Meslo" "ProFont" ]; })
 | 
					    (nerdfonts.override {
 | 
				
			||||||
 | 
					      fonts = [
 | 
				
			||||||
 | 
					        "FiraCode"
 | 
				
			||||||
 | 
					        "DroidSansMono"
 | 
				
			||||||
 | 
					        "Meslo"
 | 
				
			||||||
 | 
					        "ProFont"
 | 
				
			||||||
 | 
					      ];
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
  fonts.fontconfig.enable = true;
 | 
					  fonts.fontconfig.enable = true;
 | 
				
			||||||
  fonts.fontconfig.cache32Bit = true;
 | 
					  fonts.fontconfig.cache32Bit = true;
 | 
				
			||||||
  fonts.fontconfig.defaultFonts.sansSerif = [ "Noto Sans" "DejaVu Sans" "WenQuanYi Zen Hei" "Noto Color Emoji" ];
 | 
					  fonts.fontconfig.defaultFonts.sansSerif = [
 | 
				
			||||||
  fonts.fontconfig.defaultFonts.serif = [ "Noto Serif" "DejaVu Serif" "WenQuanYi Zen Hei" "Noto Color Emoji" ];
 | 
					    "Noto Sans"
 | 
				
			||||||
  fonts.fontconfig.defaultFonts.emoji = [ "Noto Color Emoji" "OpenMoji Color" ];
 | 
					    "DejaVu Sans"
 | 
				
			||||||
  fonts.fontconfig.defaultFonts.monospace = [ "Hack Nerd Font" "Noto Sans Mono" "WenQuanYi Zen Hei Mono" ];
 | 
					    "WenQuanYi Zen Hei"
 | 
				
			||||||
 | 
					    "Noto Color Emoji"
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					  fonts.fontconfig.defaultFonts.serif = [
 | 
				
			||||||
 | 
					    "Noto Serif"
 | 
				
			||||||
 | 
					    "DejaVu Serif"
 | 
				
			||||||
 | 
					    "WenQuanYi Zen Hei"
 | 
				
			||||||
 | 
					    "Noto Color Emoji"
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					  fonts.fontconfig.defaultFonts.emoji = [
 | 
				
			||||||
 | 
					    "Noto Color Emoji"
 | 
				
			||||||
 | 
					    "OpenMoji Color"
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					  fonts.fontconfig.defaultFonts.monospace = [
 | 
				
			||||||
 | 
					    "Hack Nerd Font"
 | 
				
			||||||
 | 
					    "Noto Sans Mono"
 | 
				
			||||||
 | 
					    "WenQuanYi Zen Hei Mono"
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  environment.enableAllTerminfo = true;
 | 
					  environment.enableAllTerminfo = true;
 | 
				
			||||||
  environment.pathsToLink = [ "/share/zsh" ];
 | 
					  environment.pathsToLink = [ "/share/zsh" ];
 | 
				
			||||||
@ -273,14 +307,15 @@ in
 | 
				
			|||||||
  # programs.mtr.enable = true;
 | 
					  # programs.mtr.enable = true;
 | 
				
			||||||
  services.pcscd.enable = true;
 | 
					  services.pcscd.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /*systemd.user.services.gpg-agent.serviceConfig.ExecStart = [
 | 
					  /*
 | 
				
			||||||
 | 
					    systemd.user.services.gpg-agent.serviceConfig.ExecStart = [
 | 
				
			||||||
    ""
 | 
					    ""
 | 
				
			||||||
    ''
 | 
					    ''
 | 
				
			||||||
    ${pkgs.gnupg}/bin/gpg-agent --supervised \
 | 
					    ${pkgs.gnupg}/bin/gpg-agent --supervised \
 | 
				
			||||||
    --pinentry-program ${pkgs.kwalletcli}/bin/pinentry-kwallet
 | 
					    --pinentry-program ${pkgs.kwalletcli}/bin/pinentry-kwallet
 | 
				
			||||||
    ''
 | 
					    ''
 | 
				
			||||||
    ];*/
 | 
					    ];
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  programs.gnupg.agent = {
 | 
					  programs.gnupg.agent = {
 | 
				
			||||||
    enable = true;
 | 
					    enable = true;
 | 
				
			||||||
@ -294,9 +329,6 @@ in
 | 
				
			|||||||
  # Enable the OpenSSH daemon.
 | 
					  # Enable the OpenSSH daemon.
 | 
				
			||||||
  services.openssh.enable = true;
 | 
					  services.openssh.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Copy the NixOS configuration file and link it from the resulting system
 | 
					  # Copy the NixOS configuration file and link it from the resulting system
 | 
				
			||||||
  # (/run/current-system/configuration.nix). This is useful in case you
 | 
					  # (/run/current-system/configuration.nix). This is useful in case you
 | 
				
			||||||
  # accidentally delete configuration.nix.
 | 
					  # accidentally delete configuration.nix.
 | 
				
			||||||
@ -311,4 +343,3 @@ in
 | 
				
			|||||||
  system.stateVersion = "23.11"; # Did you read the comment?
 | 
					  system.stateVersion = "23.11"; # Did you read the comment?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
				
			|||||||
@ -1,4 +1,9 @@
 | 
				
			|||||||
{ config, pkgs, materusArg, ... }:
 | 
					{
 | 
				
			||||||
 | 
					  config,
 | 
				
			||||||
 | 
					  pkgs,
 | 
				
			||||||
 | 
					  materusArg,
 | 
				
			||||||
 | 
					  ...
 | 
				
			||||||
 | 
					}:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  services.jackett.enable = true;
 | 
					  services.jackett.enable = true;
 | 
				
			||||||
@ -7,11 +12,26 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
  environment.systemPackages = with pkgs; [
 | 
					  environment.systemPackages = with pkgs; [
 | 
				
			||||||
    #(pkgs.lutris.override { extraLibraries = pkgs: with pkgs;  [ pkgs.samba pkgs.jansson pkgs.tdb pkgs.libunwind pkgs.libusb1 pkgs.gnutls pkgs.gtk3 pkgs.pango ]; })
 | 
					    #(pkgs.lutris.override { extraLibraries = pkgs: with pkgs;  [ pkgs.samba pkgs.jansson pkgs.tdb pkgs.libunwind pkgs.libusb1 pkgs.gnutls pkgs.gtk3 pkgs.pango ]; })
 | 
				
			||||||
    materusArg.pkgs.amdgpu-pro-libs.prefixes
 | 
					    materusArg.pkgs.amdgpu-pro-libs.prefixes
 | 
				
			||||||
    (pkgs.bottles.override { extraPkgs = pkgs: [ pkgs.libsForQt5.breeze-qt5 pkgs.kdePackages.breeze-gtk pkgs.nss_latest ]; extraLibraries = pkgs: [ pkgs.samba pkgs.jansson pkgs.tdb pkgs.libunwind pkgs.libusb1 pkgs.gnutls pkgs.gtk3 pkgs.pango ]; })
 | 
					    (pkgs.bottles.override {
 | 
				
			||||||
 | 
					      extraPkgs = pkgs: [
 | 
				
			||||||
 | 
					        pkgs.libsForQt5.breeze-qt5
 | 
				
			||||||
 | 
					        pkgs.kdePackages.breeze-gtk
 | 
				
			||||||
 | 
					        pkgs.nss_latest
 | 
				
			||||||
 | 
					      ];
 | 
				
			||||||
 | 
					      extraLibraries = pkgs: [
 | 
				
			||||||
 | 
					        pkgs.samba
 | 
				
			||||||
 | 
					        pkgs.jansson
 | 
				
			||||||
 | 
					        pkgs.tdb
 | 
				
			||||||
 | 
					        pkgs.libunwind
 | 
				
			||||||
 | 
					        pkgs.libusb1
 | 
				
			||||||
 | 
					        pkgs.gnutls
 | 
				
			||||||
 | 
					        pkgs.gtk3
 | 
				
			||||||
 | 
					        pkgs.pango
 | 
				
			||||||
 | 
					      ];
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
    glibc
 | 
					    glibc
 | 
				
			||||||
    glib
 | 
					    glib
 | 
				
			||||||
    gtk3
 | 
					    gtk3
 | 
				
			||||||
@ -38,10 +58,14 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    pciutils
 | 
					    pciutils
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    aspell
 | 
					    (aspellWithDicts (
 | 
				
			||||||
    aspellDicts.pl
 | 
					      ds: with ds; [
 | 
				
			||||||
    aspellDicts.en
 | 
					        en
 | 
				
			||||||
    aspellDicts.en-computers
 | 
					        en-computers
 | 
				
			||||||
 | 
					        en-science
 | 
				
			||||||
 | 
					        pl
 | 
				
			||||||
 | 
					      ]
 | 
				
			||||||
 | 
					    ))
 | 
				
			||||||
    steamtinkerlaunch
 | 
					    steamtinkerlaunch
 | 
				
			||||||
    distrobox
 | 
					    distrobox
 | 
				
			||||||
    # WebP support
 | 
					    # WebP support
 | 
				
			||||||
@ -78,7 +102,6 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    nix-du
 | 
					    nix-du
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
    kate
 | 
					    kate
 | 
				
			||||||
    krusader
 | 
					    krusader
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -93,22 +116,16 @@
 | 
				
			|||||||
    monkeysphere
 | 
					    monkeysphere
 | 
				
			||||||
    gparted
 | 
					    gparted
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    virt-viewer
 | 
					    virt-viewer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    inkscape
 | 
					    inkscape
 | 
				
			||||||
    gimp
 | 
					    gimp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    git-crypt
 | 
					    git-crypt
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    bubblewrap
 | 
					    bubblewrap
 | 
				
			||||||
    bindfs
 | 
					    bindfs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    binutils
 | 
					    binutils
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    materusArg.unstable.qbittorrent
 | 
					    materusArg.unstable.qbittorrent
 | 
				
			||||||
 | 
				
			|||||||
@ -1,20 +1,26 @@
 | 
				
			|||||||
{ config, pkgs, lib, materusArg, ... }:
 | 
					{
 | 
				
			||||||
 | 
					  config,
 | 
				
			||||||
 | 
					  pkgs,
 | 
				
			||||||
 | 
					  lib,
 | 
				
			||||||
 | 
					  materusArg,
 | 
				
			||||||
 | 
					  ...
 | 
				
			||||||
 | 
					}:
 | 
				
			||||||
with materusArg.pkgs.lib;
 | 
					with materusArg.pkgs.lib;
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  imports = [
 | 
					  imports = [ ./fonts.nix ];
 | 
				
			||||||
    ./fonts.nix
 | 
					 | 
				
			||||||
  ];
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  #Single Packages
 | 
					  #Single Packages
 | 
				
			||||||
  options.materus.profile.packages.home-manager = mkPrivateVar materusArg.cfg.configInputs.home-manager.packages.${pkgs.system}.home-manager;
 | 
					  options.materus.profile.packages.home-manager =
 | 
				
			||||||
  options.materus.profile.packages.firefox = mkPrivateVar (pkgs.firefox.override {
 | 
					    mkPrivateVar
 | 
				
			||||||
    nativeMessagingHosts = [
 | 
					      materusArg.cfg.configInputs.home-manager.packages.${pkgs.system}.home-manager;
 | 
				
			||||||
      pkgs.plasma-browser-integration
 | 
					  options.materus.profile.packages.firefox = mkPrivateVar (
 | 
				
			||||||
    ];
 | 
					    pkgs.firefox.override { nativeMessagingHosts = [ pkgs.plasma-browser-integration ]; }
 | 
				
			||||||
  });
 | 
					  );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  #Package Lists
 | 
					  #Package Lists
 | 
				
			||||||
  options.materus.profile.packages.list.nixRelated = mkPrivateVar (with pkgs; [
 | 
					  options.materus.profile.packages.list.nixRelated = mkPrivateVar (
 | 
				
			||||||
 | 
					    with pkgs;
 | 
				
			||||||
 | 
					    [
 | 
				
			||||||
      nix-prefetch
 | 
					      nix-prefetch
 | 
				
			||||||
      nix-prefetch-scripts
 | 
					      nix-prefetch-scripts
 | 
				
			||||||
      nix-prefetch-github
 | 
					      nix-prefetch-github
 | 
				
			||||||
@ -26,10 +32,17 @@ with materusArg.pkgs.lib;
 | 
				
			|||||||
      nix-ld
 | 
					      nix-ld
 | 
				
			||||||
      nixpkgs-fmt
 | 
					      nixpkgs-fmt
 | 
				
			||||||
      nixpkgs-review
 | 
					      nixpkgs-review
 | 
				
			||||||
  ]);
 | 
					    ]
 | 
				
			||||||
 | 
					  );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  options.materus.profile.packages.list.desktopApps = mkPrivateVar (with pkgs; [
 | 
					  options.materus.profile.packages.list.desktopApps = mkPrivateVar (
 | 
				
			||||||
    (discord.override { nss = nss_latest; withOpenASAR = true; withTTS = true; })
 | 
					    with pkgs;
 | 
				
			||||||
 | 
					    [
 | 
				
			||||||
 | 
					      (discord.override {
 | 
				
			||||||
 | 
					        nss = nss_latest;
 | 
				
			||||||
 | 
					        withOpenASAR = true;
 | 
				
			||||||
 | 
					        withTTS = true;
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
      tdesktop
 | 
					      tdesktop
 | 
				
			||||||
      syncplay
 | 
					      syncplay
 | 
				
			||||||
      ani-cli
 | 
					      ani-cli
 | 
				
			||||||
@ -37,17 +50,27 @@ with materusArg.pkgs.lib;
 | 
				
			|||||||
      spotify
 | 
					      spotify
 | 
				
			||||||
      thunderbird
 | 
					      thunderbird
 | 
				
			||||||
      keepassxc
 | 
					      keepassxc
 | 
				
			||||||
    (aspellWithDicts (ds: with ds; [ en en-computers en-science pl ]))
 | 
					      (aspellWithDicts (
 | 
				
			||||||
 | 
					        ds: with ds; [
 | 
				
			||||||
 | 
					          en
 | 
				
			||||||
 | 
					          en-computers
 | 
				
			||||||
 | 
					          en-science
 | 
				
			||||||
 | 
					          pl
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					      ))
 | 
				
			||||||
      onlyoffice-bin
 | 
					      onlyoffice-bin
 | 
				
			||||||
      qalculate-qt
 | 
					      qalculate-qt
 | 
				
			||||||
  ]);
 | 
					    ]
 | 
				
			||||||
 | 
					  );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  options.materus.profile.packages.list.terminalApps = mkPrivateVar (with pkgs; [
 | 
					  options.materus.profile.packages.list.terminalApps = mkPrivateVar (
 | 
				
			||||||
 | 
					    with pkgs;
 | 
				
			||||||
 | 
					    [
 | 
				
			||||||
      neofetch
 | 
					      neofetch
 | 
				
			||||||
      ripgrep
 | 
					      ripgrep
 | 
				
			||||||
      fd
 | 
					      fd
 | 
				
			||||||
      micro
 | 
					      micro
 | 
				
			||||||
  ]);
 | 
					    ]
 | 
				
			||||||
 | 
					  );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
				
			|||||||
@ -127,11 +127,13 @@ let
 | 
				
			|||||||
      visual-replace
 | 
					      visual-replace
 | 
				
			||||||
      scroll-restore
 | 
					      scroll-restore
 | 
				
			||||||
      highlight-indent-guides
 | 
					      highlight-indent-guides
 | 
				
			||||||
 | 
					      diff-hl
 | 
				
			||||||
      # Completions & Minibuffer
 | 
					      # Completions & Minibuffer
 | 
				
			||||||
      corfu
 | 
					      corfu
 | 
				
			||||||
      company
 | 
					      corfu-terminal
 | 
				
			||||||
      company-quickhelp
 | 
					      kind-icon
 | 
				
			||||||
      cape
 | 
					      cape
 | 
				
			||||||
 | 
					      
 | 
				
			||||||
      embark
 | 
					      embark
 | 
				
			||||||
      embark-consult
 | 
					      embark-consult
 | 
				
			||||||
      orderless
 | 
					      orderless
 | 
				
			||||||
 | 
				
			|||||||
@ -2,12 +2,13 @@
 | 
				
			|||||||
#+AUTHOR: materus
 | 
					#+AUTHOR: materus
 | 
				
			||||||
#+DESCRIPTION: materus emacs configuration
 | 
					#+DESCRIPTION: materus emacs configuration
 | 
				
			||||||
#+STARTUP: overview
 | 
					#+STARTUP: overview
 | 
				
			||||||
#+PROPERTY: header-args :tangle etc/materus/emacs-config.el :comments link
 | 
					#+PROPERTY: EMACS-DIR: "./"
 | 
				
			||||||
 | 
					#+PROPERTY: header-args :tangle (concat (org-entry-get nil "EMACS-DIR" t) "etc/materus/emacs-config.el") :comments link
 | 
				
			||||||
#+OPTIONS: \n:t
 | 
					#+OPTIONS: \n:t
 | 
				
			||||||
#+auto_tangle: t
 | 
					#+auto_tangle: t
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
My emacs config, tangled file is [[file:etc/materus/emacs-config.el][there]]
 | 
					My emacs config, tangled file is [[file:etc/materus/emacs-config.el][there]]
 | 
				
			||||||
 | 
					#+html:<img src="https://img.shields.io/badge/Telegram-2CA5E0?style=for-the-badge&logo=telegram&logoColor=white"/>
 | 
				
			||||||
* Table of Contents    :noexport:TOC_3:
 | 
					* Table of Contents    :noexport:TOC_3:
 | 
				
			||||||
- [[#init-files][Init Files]]
 | 
					- [[#init-files][Init Files]]
 | 
				
			||||||
  - [[#early-init][Early Init]]
 | 
					  - [[#early-init][Early Init]]
 | 
				
			||||||
@ -27,8 +28,10 @@ My emacs config, tangled file is [[file:etc/materus/emacs-config.el][there]]
 | 
				
			|||||||
    - [[#misc][Misc]]
 | 
					    - [[#misc][Misc]]
 | 
				
			||||||
    - [[#dashboard][Dashboard]]
 | 
					    - [[#dashboard][Dashboard]]
 | 
				
			||||||
    - [[#modeline][Modeline]]
 | 
					    - [[#modeline][Modeline]]
 | 
				
			||||||
 | 
					    - [[#diff-hl][Diff-hl]]
 | 
				
			||||||
  - [[#org-mode][Org-mode]]
 | 
					  - [[#org-mode][Org-mode]]
 | 
				
			||||||
  - [[#completions][Completions]]
 | 
					  - [[#completions][Completions]]
 | 
				
			||||||
 | 
					    - [[#style][Style]]
 | 
				
			||||||
    - [[#minibuffer][Minibuffer]]
 | 
					    - [[#minibuffer][Minibuffer]]
 | 
				
			||||||
    - [[#code-completion][Code completion]]
 | 
					    - [[#code-completion][Code completion]]
 | 
				
			||||||
  - [[#terms][Terms]]
 | 
					  - [[#terms][Terms]]
 | 
				
			||||||
@ -61,7 +64,7 @@ My emacs config, tangled file is [[file:etc/materus/emacs-config.el][there]]
 | 
				
			|||||||
* Init Files
 | 
					* Init Files
 | 
				
			||||||
** Early Init
 | 
					** Early Init
 | 
				
			||||||
:PROPERTIES:
 | 
					:PROPERTIES:
 | 
				
			||||||
:header-args: :tangle early-init.el :comments link
 | 
					:header-args: :tangle (concat (org-entry-get nil "EMACS-DIR" t) "early-init.el") :comments link
 | 
				
			||||||
:END:
 | 
					:END:
 | 
				
			||||||
Early init file, setting for GC and some paths.
 | 
					Early init file, setting for GC and some paths.
 | 
				
			||||||
Tangled file is [[./early-init.el][there]]
 | 
					Tangled file is [[./early-init.el][there]]
 | 
				
			||||||
@ -159,7 +162,7 @@ Early frame settings, maybe some could be move to normal init
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
** Init
 | 
					** Init
 | 
				
			||||||
:PROPERTIES:
 | 
					:PROPERTIES:
 | 
				
			||||||
:header-args: :tangle init.el :comments link
 | 
					:header-args: :tangle (concat (org-entry-get nil "EMACS-DIR" t) "init.el") :comments link
 | 
				
			||||||
:END:
 | 
					:END:
 | 
				
			||||||
Init File, tangled [[./init.el][there]]
 | 
					Init File, tangled [[./init.el][there]]
 | 
				
			||||||
Checking if using emacs from my nix config, loads config and custom.el
 | 
					Checking if using emacs from my nix config, loads config and custom.el
 | 
				
			||||||
@ -459,6 +462,17 @@ Graphical related settings.
 | 
				
			|||||||
  (use-package minions
 | 
					  (use-package minions
 | 
				
			||||||
    :hook (after-init . minions-mode))
 | 
					    :hook (after-init . minions-mode))
 | 
				
			||||||
#+end_src
 | 
					#+end_src
 | 
				
			||||||
 | 
					*** Diff-hl
 | 
				
			||||||
 | 
					#+begin_src emacs-lisp
 | 
				
			||||||
 | 
					  (use-package diff-hl
 | 
				
			||||||
 | 
					    :config
 | 
				
			||||||
 | 
					    (setq diff-hl-side 'right)
 | 
				
			||||||
 | 
					    (global-diff-hl-mode 1)
 | 
				
			||||||
 | 
					    (diff-hl-margin-mode 1)
 | 
				
			||||||
 | 
					    (diff-hl-flydiff-mode 1)
 | 
				
			||||||
 | 
					    (global-diff-hl-show-hunk-mouse-mode 1))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#+end_src
 | 
				
			||||||
** Org-mode
 | 
					** Org-mode
 | 
				
			||||||
Org mode settings
 | 
					Org mode settings
 | 
				
			||||||
#+begin_src emacs-lisp
 | 
					#+begin_src emacs-lisp
 | 
				
			||||||
@ -496,11 +510,20 @@ Org mode settings
 | 
				
			|||||||
#+end_src
 | 
					#+end_src
 | 
				
			||||||
 | 
					
 | 
				
			||||||
** Completions
 | 
					** Completions
 | 
				
			||||||
 | 
					*** Style
 | 
				
			||||||
 | 
					#+begin_src emacs-lisp
 | 
				
			||||||
 | 
					   (use-package orderless
 | 
				
			||||||
 | 
					    :init
 | 
				
			||||||
 | 
					    ;; Tune the global completion style settings to your liking!
 | 
				
			||||||
 | 
					    ;; This affects the minibuffer and non-lsp completion at point.
 | 
				
			||||||
 | 
					    (setq completion-styles '(basic partial-completion orderless)
 | 
				
			||||||
 | 
					          completion-category-defaults nil
 | 
				
			||||||
 | 
					          completion-category-overrides nil))
 | 
				
			||||||
 | 
					#+end_src
 | 
				
			||||||
*** Minibuffer
 | 
					*** Minibuffer
 | 
				
			||||||
#+begin_src emacs-lisp
 | 
					#+begin_src emacs-lisp
 | 
				
			||||||
  (use-package consult)
 | 
					  (use-package consult)
 | 
				
			||||||
  (use-package marginalia)
 | 
					  (use-package marginalia)
 | 
				
			||||||
  (use-package orderless)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  (use-package which-key
 | 
					  (use-package which-key
 | 
				
			||||||
    :config
 | 
					    :config
 | 
				
			||||||
@ -523,10 +546,52 @@ Org mode settings
 | 
				
			|||||||
#+end_src
 | 
					#+end_src
 | 
				
			||||||
*** Code completion
 | 
					*** Code completion
 | 
				
			||||||
#+begin_src emacs-lisp
 | 
					#+begin_src emacs-lisp
 | 
				
			||||||
  (use-package company
 | 
					
 | 
				
			||||||
 | 
					  (use-package cape)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  (use-package corfu
 | 
				
			||||||
 | 
					    ;; 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))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  (use-package corfu-terminal
 | 
				
			||||||
 | 
					    :after (corfu)
 | 
				
			||||||
    :config
 | 
					    :config
 | 
				
			||||||
    (setq global-corfu-minibuffer nil)
 | 
					    (when (or (daemonp) (not (display-graphic-p)))
 | 
				
			||||||
    (global-company-mode 1))
 | 
					      (corfu-terminal-mode)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  (use-package corfu-mouse
 | 
				
			||||||
 | 
					    :after (corfu)
 | 
				
			||||||
 | 
					    :config 
 | 
				
			||||||
 | 
					    (corfu-mouse-mode)
 | 
				
			||||||
 | 
					    (keymap-set corfu--mouse-ignore-map "<mouse-movement>" 'ignore)
 | 
				
			||||||
 | 
					    (keymap-set corfu-map "<mouse-movement>" 'ignore))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  (use-package kind-icon
 | 
				
			||||||
 | 
					    :config
 | 
				
			||||||
 | 
					    (add-to-list 'corfu-margin-formatters #'kind-icon-margin-formatter))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 #+end_src
 | 
					 #+end_src
 | 
				
			||||||
** Terms
 | 
					** Terms
 | 
				
			||||||
*** Eat
 | 
					*** Eat
 | 
				
			||||||
@ -538,6 +603,7 @@ Other configs
 | 
				
			|||||||
*** Defaults
 | 
					*** Defaults
 | 
				
			||||||
#+begin_src emacs-lisp
 | 
					#+begin_src emacs-lisp
 | 
				
			||||||
  (setq-default buffer-file-coding-system 'utf-8-unix)
 | 
					  (setq-default buffer-file-coding-system 'utf-8-unix)
 | 
				
			||||||
 | 
					  (setq text-mode-ispell-word-completion nil) ; Disable ispell
 | 
				
			||||||
#+end_src
 | 
					#+end_src
 | 
				
			||||||
*** Elcord
 | 
					*** Elcord
 | 
				
			||||||
#+begin_src emacs-lisp
 | 
					#+begin_src emacs-lisp
 | 
				
			||||||
@ -610,7 +676,24 @@ Other configs
 | 
				
			|||||||
* Programming
 | 
					* Programming
 | 
				
			||||||
** LSP
 | 
					** LSP
 | 
				
			||||||
#+begin_src emacs-lisp
 | 
					#+begin_src emacs-lisp
 | 
				
			||||||
  (use-package lsp-mode)
 | 
					  (use-package lsp-mode
 | 
				
			||||||
 | 
					    :custom
 | 
				
			||||||
 | 
					    (lsp-completion-provider :none) ;; we use Corfu!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    :init
 | 
				
			||||||
 | 
					    (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 lsp-ui)
 | 
					    (use-package lsp-ui)
 | 
				
			||||||
@ -754,7 +837,8 @@ Other configs
 | 
				
			|||||||
  ;; perspective
 | 
					  ;; perspective
 | 
				
			||||||
  (global-set-key (kbd "C-x C-b") 'persp-list-buffers)
 | 
					  (global-set-key (kbd "C-x C-b") 'persp-list-buffers)
 | 
				
			||||||
  (global-set-key (kbd "C-x C-B") 'list-buffers)
 | 
					  (global-set-key (kbd "C-x C-B") 'list-buffers)
 | 
				
			||||||
  (global-set-key (kbd "C-x B") 'persp-switch-to-buffer)
 | 
					  (global-set-key (kbd "C-x b") 'persp-switch-to-buffer)
 | 
				
			||||||
 | 
					  (global-set-key (kbd "C-x B") 'consult-buffer)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  ;; CUA
 | 
					  ;; CUA
 | 
				
			||||||
  (keymap-set cua--cua-keys-keymap "C-z" 'undo-tree-undo)
 | 
					  (keymap-set cua--cua-keys-keymap "C-z" 'undo-tree-undo)
 | 
				
			||||||
@ -817,8 +901,6 @@ Just for testing some code
 | 
				
			|||||||
#+begin_src emacs-lisp 
 | 
					#+begin_src emacs-lisp 
 | 
				
			||||||
  ;;; (global-set-key (kbd "C-∇") (kbd "C-H"))
 | 
					  ;;; (global-set-key (kbd "C-∇") (kbd "C-H"))
 | 
				
			||||||
  ;;; (global-set-key (kbd "H-∇") (lambda () (interactive) (insert-char #x2207)))
 | 
					  ;;; (global-set-key (kbd "H-∇") (lambda () (interactive) (insert-char #x2207)))
 | 
				
			||||||
  ;;;  (keymap-set corfu--mouse-ignore-map "<mouse-movement>" 'ignore)
 | 
					 | 
				
			||||||
  ;;; (keymap-set corfu-map "<mouse-movement>" 'ignore)
 | 
					 | 
				
			||||||
  ;;; (buffer-text-pixel-size)
 | 
					  ;;; (buffer-text-pixel-size)
 | 
				
			||||||
  ;;; (set-window-vscroll nil 960 t t)
 | 
					  ;;; (set-window-vscroll nil 960 t t)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -259,6 +259,16 @@
 | 
				
			|||||||
  :hook (after-init . minions-mode))
 | 
					  :hook (after-init . minions-mode))
 | 
				
			||||||
;; Modeline:1 ends here
 | 
					;; Modeline:1 ends here
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;; [[file:../../emacs-materus-config.org::*Diff-hl][Diff-hl:1]]
 | 
				
			||||||
 | 
					(use-package diff-hl
 | 
				
			||||||
 | 
					  :config
 | 
				
			||||||
 | 
					  (setq diff-hl-side 'right)
 | 
				
			||||||
 | 
					  (global-diff-hl-mode 1)
 | 
				
			||||||
 | 
					  (diff-hl-margin-mode 1)
 | 
				
			||||||
 | 
					  (diff-hl-flydiff-mode 1)
 | 
				
			||||||
 | 
					  (global-diff-hl-show-hunk-mouse-mode 1))
 | 
				
			||||||
 | 
					;; Diff-hl:1 ends here
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;; [[file:../../emacs-materus-config.org::*Org-mode][Org-mode:1]]
 | 
					;; [[file:../../emacs-materus-config.org::*Org-mode][Org-mode:1]]
 | 
				
			||||||
(use-package org
 | 
					(use-package org
 | 
				
			||||||
  :mode (("\\.org$" . org-mode))
 | 
					  :mode (("\\.org$" . org-mode))
 | 
				
			||||||
@ -293,10 +303,19 @@
 | 
				
			|||||||
   (markdown-mode . toc-org-mode)))
 | 
					   (markdown-mode . toc-org-mode)))
 | 
				
			||||||
;; Org-mode:1 ends here
 | 
					;; Org-mode:1 ends here
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;; [[file:../../emacs-materus-config.org::*Style][Style:1]]
 | 
				
			||||||
 | 
					(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))
 | 
				
			||||||
 | 
					;; Style:1 ends here
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;; [[file:../../emacs-materus-config.org::*Minibuffer][Minibuffer:1]]
 | 
					;; [[file:../../emacs-materus-config.org::*Minibuffer][Minibuffer:1]]
 | 
				
			||||||
(use-package consult)
 | 
					(use-package consult)
 | 
				
			||||||
(use-package marginalia)
 | 
					(use-package marginalia)
 | 
				
			||||||
(use-package orderless)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
(use-package which-key
 | 
					(use-package which-key
 | 
				
			||||||
  :config
 | 
					  :config
 | 
				
			||||||
@ -319,10 +338,50 @@
 | 
				
			|||||||
;; Minibuffer:1 ends here
 | 
					;; Minibuffer:1 ends here
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;; [[file:../../emacs-materus-config.org::*Code completion][Code completion:1]]
 | 
					;; [[file:../../emacs-materus-config.org::*Code completion][Code completion:1]]
 | 
				
			||||||
(use-package company
 | 
					(use-package cape)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(use-package corfu
 | 
				
			||||||
 | 
					  ;; 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))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(use-package corfu-terminal
 | 
				
			||||||
 | 
					  :after (corfu)
 | 
				
			||||||
  :config
 | 
					  :config
 | 
				
			||||||
  (setq global-corfu-minibuffer nil)
 | 
					  (when (or (daemonp) (not (display-graphic-p)))
 | 
				
			||||||
  (global-company-mode 1))
 | 
					    (corfu-terminal-mode)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(use-package corfu-mouse
 | 
				
			||||||
 | 
					  :after (corfu)
 | 
				
			||||||
 | 
					  :config 
 | 
				
			||||||
 | 
					  (corfu-mouse-mode)
 | 
				
			||||||
 | 
					  (keymap-set corfu--mouse-ignore-map "<mouse-movement>" 'ignore)
 | 
				
			||||||
 | 
					  (keymap-set corfu-map "<mouse-movement>" 'ignore))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(use-package kind-icon
 | 
				
			||||||
 | 
					  :config
 | 
				
			||||||
 | 
					  (add-to-list 'corfu-margin-formatters #'kind-icon-margin-formatter))
 | 
				
			||||||
;; Code completion:1 ends here
 | 
					;; Code completion:1 ends here
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;; [[file:../../emacs-materus-config.org::*Eat][Eat:1]]
 | 
					;; [[file:../../emacs-materus-config.org::*Eat][Eat:1]]
 | 
				
			||||||
@ -331,6 +390,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
;; [[file:../../emacs-materus-config.org::*Defaults][Defaults:1]]
 | 
					;; [[file:../../emacs-materus-config.org::*Defaults][Defaults:1]]
 | 
				
			||||||
(setq-default buffer-file-coding-system 'utf-8-unix)
 | 
					(setq-default buffer-file-coding-system 'utf-8-unix)
 | 
				
			||||||
 | 
					(setq text-mode-ispell-word-completion nil) ; Disable ispell
 | 
				
			||||||
;; Defaults:1 ends here
 | 
					;; Defaults:1 ends here
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;; [[file:../../emacs-materus-config.org::*Elcord][Elcord:1]]
 | 
					;; [[file:../../emacs-materus-config.org::*Elcord][Elcord:1]]
 | 
				
			||||||
@ -401,7 +461,24 @@
 | 
				
			|||||||
;; Perspective:1 ends here
 | 
					;; Perspective:1 ends here
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;; [[file:../../emacs-materus-config.org::*LSP][LSP:1]]
 | 
					;; [[file:../../emacs-materus-config.org::*LSP][LSP:1]]
 | 
				
			||||||
(use-package lsp-mode)
 | 
					(use-package lsp-mode
 | 
				
			||||||
 | 
					  :custom
 | 
				
			||||||
 | 
					  (lsp-completion-provider :none) ;; we use Corfu!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  :init
 | 
				
			||||||
 | 
					  (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 lsp-ui)
 | 
					  (use-package lsp-ui)
 | 
				
			||||||
@ -543,7 +620,8 @@
 | 
				
			|||||||
;; perspective
 | 
					;; perspective
 | 
				
			||||||
(global-set-key (kbd "C-x C-b") 'persp-list-buffers)
 | 
					(global-set-key (kbd "C-x C-b") 'persp-list-buffers)
 | 
				
			||||||
(global-set-key (kbd "C-x C-B") 'list-buffers)
 | 
					(global-set-key (kbd "C-x C-B") 'list-buffers)
 | 
				
			||||||
(global-set-key (kbd "C-x B") 'persp-switch-to-buffer)
 | 
					(global-set-key (kbd "C-x b") 'persp-switch-to-buffer)
 | 
				
			||||||
 | 
					(global-set-key (kbd "C-x B") 'consult-buffer)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;; CUA
 | 
					;; CUA
 | 
				
			||||||
(keymap-set cua--cua-keys-keymap "C-z" 'undo-tree-undo)
 | 
					(keymap-set cua--cua-keys-keymap "C-z" 'undo-tree-undo)
 | 
				
			||||||
@ -601,8 +679,6 @@
 | 
				
			|||||||
;; [[file:../../emacs-materus-config.org::*Test][Test:1]]
 | 
					;; [[file:../../emacs-materus-config.org::*Test][Test:1]]
 | 
				
			||||||
;;; (global-set-key (kbd "C-∇") (kbd "C-H"))
 | 
					;;; (global-set-key (kbd "C-∇") (kbd "C-H"))
 | 
				
			||||||
;;; (global-set-key (kbd "H-∇") (lambda () (interactive) (insert-char #x2207)))
 | 
					;;; (global-set-key (kbd "H-∇") (lambda () (interactive) (insert-char #x2207)))
 | 
				
			||||||
;;;  (keymap-set corfu--mouse-ignore-map "<mouse-movement>" 'ignore)
 | 
					 | 
				
			||||||
;;; (keymap-set corfu-map "<mouse-movement>" 'ignore)
 | 
					 | 
				
			||||||
;;; (buffer-text-pixel-size)
 | 
					;;; (buffer-text-pixel-size)
 | 
				
			||||||
;;; (set-window-vscroll nil 960 t t)
 | 
					;;; (set-window-vscroll nil 960 t t)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -40,7 +40,6 @@
 | 
				
			|||||||
;;; Code:
 | 
					;;; Code:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(require 'corfu)
 | 
					(require 'corfu)
 | 
				
			||||||
(make-gdb-table)
 | 
					 | 
				
			||||||
(defgroup corfu-mouse nil
 | 
					(defgroup corfu-mouse nil
 | 
				
			||||||
  "Mouse support for Corfu."
 | 
					  "Mouse support for Corfu."
 | 
				
			||||||
  :group 'corfu
 | 
					  :group 'corfu
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user