adding some better filesearch utils
This commit is contained in:
		
							parent
							
								
									5aa5d2db6a
								
							
						
					
					
						commit
						9908f574f2
					
				
					 5 changed files with 338 additions and 4 deletions
				
			
		
							
								
								
									
										324
									
								
								README.org
									
										
									
									
									
								
							
							
						
						
									
										324
									
								
								README.org
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -837,6 +837,14 @@ Notice how I am including all of my software here. It may be a big file, but hav
 | 
			
		|||
 | 
			
		||||
  # List services that you want to enable:
 | 
			
		||||
 | 
			
		||||
  services.locate = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    locate = pkgs.plocate;
 | 
			
		||||
    localuser = null;
 | 
			
		||||
    interval = "hourly";
 | 
			
		||||
    prunePaths = [ "/tmp" "/nix/store" "/nix/var/log/nix" "/etc" "/bin" "/boot" "/usr" "/var" "/run" "/srv" "/sys" "/root" "/proc" "/opt" "/dev" "/home/chris/.emacs.d" "/home/chris/.config" "/home/chris/.nix-profile" "/home/chris/.profile" "/home/chris/dev/nixpkgs" "/home/chris/.cache" "/home/chris/.local" "/home/chris/.dotemacs" "/home/chris/.cargo" "/home/chris/.mozilla" "/home/chris/.var" "/home/chris/.dotfiles" "/home/chris/.dbus" "/home/chris/.android" "/var/lib"]
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # Enable the OpenSSH daemon.
 | 
			
		||||
  services.openssh.enable = true;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1576,6 +1584,322 @@ Dalinar's hardware
 | 
			
		|||
}
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
** Kohlin
 | 
			
		||||
Kohlin is another home server. It's built with an old laptop at the moment, but the way everything is orchestrated is to protect from screw ups.
 | 
			
		||||
 | 
			
		||||
*** Configuration
 | 
			
		||||
Kohlin's config is of course server oriented.
 | 
			
		||||
 | 
			
		||||
#+begin_src nix :tangle system/kohlin/configuration.nix
 | 
			
		||||
{ config, pkgs, ... }:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  imports =
 | 
			
		||||
    [ # Include the results of the hardware scan.
 | 
			
		||||
      ./hardware-configuration.nix
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
  nix = {
 | 
			
		||||
   extraOptions = "experimental-features = nix-command flakes";
 | 
			
		||||
   package = pkgs.nixFlakes; 
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  nixpkgs.config.allowUnFree = true;
 | 
			
		||||
 | 
			
		||||
  # Use the systemd-boot EFI boot loader.
 | 
			
		||||
  boot.loader.systemd-boot.enable = true;
 | 
			
		||||
  boot.loader.efi.canTouchEfiVariables = true;
 | 
			
		||||
 | 
			
		||||
  networking.hostName = "kohlin"; # Define your hostname.
 | 
			
		||||
  # Pick only one of the below networking options.
 | 
			
		||||
  # networking.wireless.enable = true;  # Enables wireless support via wpa_supplicant.
 | 
			
		||||
  networking.networkmanager.enable = true;  # Easiest to use and most distros use this by default.
 | 
			
		||||
 | 
			
		||||
  # Set your time zone.
 | 
			
		||||
  time.timeZone = "America/Chicago";
 | 
			
		||||
 | 
			
		||||
  # Configure network proxy if necessary
 | 
			
		||||
  # networking.proxy.default = "http://user:password@proxy:port/";
 | 
			
		||||
  # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
 | 
			
		||||
 | 
			
		||||
  # Select internationalisation properties.
 | 
			
		||||
  i18n.defaultLocale = "en_US.UTF-8";
 | 
			
		||||
 | 
			
		||||
  # Enable the X11 windowing system.
 | 
			
		||||
  # services.xserver.enable = true;
 | 
			
		||||
 | 
			
		||||
  # Configure keymap in X11
 | 
			
		||||
  # services.xserver.layout = "us";
 | 
			
		||||
  # services.xserver.xkbOptions = {
 | 
			
		||||
  #   "eurosign:e";
 | 
			
		||||
  #   "caps:escape" # map caps to escape.
 | 
			
		||||
  # };
 | 
			
		||||
 | 
			
		||||
  # Enable CUPS to print documents.
 | 
			
		||||
  # services.printing.enable = true;
 | 
			
		||||
 | 
			
		||||
  # Enable sound.
 | 
			
		||||
  # sound.enable = true;
 | 
			
		||||
  # hardware.pulseaudio.enable = true;
 | 
			
		||||
 | 
			
		||||
  hardware.opengl = {
 | 
			
		||||
   enable = true;
 | 
			
		||||
   extraPackages = with pkgs; [
 | 
			
		||||
    intel-media-driver
 | 
			
		||||
    vaapiIntel
 | 
			
		||||
    vaapiVdpau
 | 
			
		||||
    libvdpau-va-gl    
 | 
			
		||||
   ];
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  environment.homeBinInPath = true;
 | 
			
		||||
  programs.fish.enable = true;
 | 
			
		||||
 | 
			
		||||
  # Enable touchpad support (enabled default in most desktopManager).
 | 
			
		||||
  # services.xserver.libinput.enable = true;
 | 
			
		||||
 | 
			
		||||
  # Define a user account. Don't forget to set a password with ‘passwd’.
 | 
			
		||||
  users.users.chris = {
 | 
			
		||||
    isNormalUser = true;
 | 
			
		||||
    extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # List packages installed in system profile. To search, run:
 | 
			
		||||
  # $ nix search wget
 | 
			
		||||
  environment.systemPackages = with pkgs; [
 | 
			
		||||
    vim  
 | 
			
		||||
    wget
 | 
			
		||||
    yt-dlp
 | 
			
		||||
    bat
 | 
			
		||||
    ripgrep
 | 
			
		||||
    ffmpeg-full
 | 
			
		||||
    rsync
 | 
			
		||||
    dutree
 | 
			
		||||
    tmux
 | 
			
		||||
    git
 | 
			
		||||
    samba
 | 
			
		||||
    exa
 | 
			
		||||
    jq
 | 
			
		||||
    fd
 | 
			
		||||
    bc
 | 
			
		||||
    sysstat
 | 
			
		||||
    procs
 | 
			
		||||
    btop
 | 
			
		||||
    htop
 | 
			
		||||
    unzip
 | 
			
		||||
    #blesh
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  virtualisation.docker.enable = true;
 | 
			
		||||
 | 
			
		||||
  # Some programs need SUID wrappers, can be configured further or are
 | 
			
		||||
  # started in user sessions.
 | 
			
		||||
  # programs.mtr.enable = true;
 | 
			
		||||
  # programs.gnupg.agent = {
 | 
			
		||||
  #   enable = true;
 | 
			
		||||
  #   enableSSHSupport = true;
 | 
			
		||||
  # };
 | 
			
		||||
 | 
			
		||||
  services.syncthing = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    dataDir = "/storage/syncthing";
 | 
			
		||||
    openDefaultPorts = true;
 | 
			
		||||
    configDir = "/home/chris/syncthing";
 | 
			
		||||
    user = "chris";
 | 
			
		||||
    group = "users";
 | 
			
		||||
    guiAddress = "0.0.0.0:8384";
 | 
			
		||||
    devices = {
 | 
			
		||||
      syl = {
 | 
			
		||||
        id = "AJMADOK-TENODAA-VSOEW2A-4RXY2XI-YNHIS7H-H3ZYAO5-3UQ64EE-O2N5BAY";
 | 
			
		||||
      };
 | 
			
		||||
      kaladin = {
 | 
			
		||||
        id = "LH6523Z-QQ5F3A4-SINZDOI-UFMQBIX-ZV6Q5BQ-LTKVMDB-CRI6QG5-RRKJFQS";
 | 
			
		||||
      };
 | 
			
		||||
      shadow = {
 | 
			
		||||
        id = "SGO2BUT-WDOB2B7-SD5BHKU-ES3BFZF-EZPFSQJ-B4744TP-SXKZS4O-SDLJ5QX";
 | 
			
		||||
      };
 | 
			
		||||
      tablet = {
 | 
			
		||||
        id = "4HEXCNH-MCVBZQX-LQ735TG-P2VTJ7N-CZ5MK4P-ICZAPC7-YCXVEWV-7NILMA5";
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
    folders = {
 | 
			
		||||
      music = {
 | 
			
		||||
        id = "teqqy-rzvec";
 | 
			
		||||
        path = "/storage/syncthing/Music";
 | 
			
		||||
        devices = [ "syl" "kaladin" "shadow" ];
 | 
			
		||||
        versioning = {
 | 
			
		||||
          type = "trashcan";
 | 
			
		||||
          params.cleanoutDays = "100";
 | 
			
		||||
        };
 | 
			
		||||
      };
 | 
			
		||||
      ebooks = {
 | 
			
		||||
        id = "wziqy-7hyv9";
 | 
			
		||||
        path = "/storage/syncthing/ebooks";
 | 
			
		||||
        devices = [ "syl" "kaladin" "shadow" "tablet" ];
 | 
			
		||||
        versioning = {
 | 
			
		||||
          type = "trashcan";
 | 
			
		||||
          params.cleanoutDays = "100";
 | 
			
		||||
        };
 | 
			
		||||
      };
 | 
			
		||||
      notes = {
 | 
			
		||||
        id = "zwshm-umwbt";
 | 
			
		||||
        path = "/storage/syncthing/notes";
 | 
			
		||||
        devices = [ "syl" "kaladin" "shadow" ];
 | 
			
		||||
        versioning = {
 | 
			
		||||
          type = "trashcan";
 | 
			
		||||
          params.cleanoutDays = "100";
 | 
			
		||||
        };
 | 
			
		||||
      };
 | 
			
		||||
      librera = {
 | 
			
		||||
        id = "vvtvj-osndy";
 | 
			
		||||
        path = "/storage/syncthing/librera";
 | 
			
		||||
        devices = [ "tablet" "shadow" ];
 | 
			
		||||
        versioning = {
 | 
			
		||||
          type = "trashcan";
 | 
			
		||||
          params.cleanoutDays = "100";
 | 
			
		||||
        };
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # List services that you want to enable:
 | 
			
		||||
 | 
			
		||||
  services.locate = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    locate = pkgs.plocate;
 | 
			
		||||
    localuser = null;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # Enable the OpenSSH daemon.
 | 
			
		||||
  services.openssh.enable = true;
 | 
			
		||||
  services.fstrim.enable = true;
 | 
			
		||||
  services.logind = {
 | 
			
		||||
    lidSwitch = "ignore";
 | 
			
		||||
    lidSwitchExternalPower = "ignore";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # DDCLIENT
 | 
			
		||||
  services.ddclient = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    configFile = /home/chris/ddclient.conf;
 | 
			
		||||
   #domains = [
 | 
			
		||||
   #  "nc.cochrun.xyz"
 | 
			
		||||
   #  "home.cochrun.xyz"
 | 
			
		||||
   #  "mail.cochrun.xyz"
 | 
			
		||||
   #  "jelly.cochrun.xyz"
 | 
			
		||||
   #];
 | 
			
		||||
   #passwordFile = "/etc/nixos/ddclientp";
 | 
			
		||||
   #protocol = "namecheap";
 | 
			
		||||
   #use = "web, web=dynamicdns.park-your-domain.com/getip";
 | 
			
		||||
   #server = "dynamicdns.park-your-domain.com";
 | 
			
		||||
   #username = "cochrun.xyz";
 | 
			
		||||
   #extraConfig = ''
 | 
			
		||||
   #use=web, web=dynamicdns.park-your-domain.com/getip
 | 
			
		||||
   #protocol=namecheap
 | 
			
		||||
   #server=dynamicdns.park-your-domain.com
 | 
			
		||||
   #login=livingseedco.shop
 | 
			
		||||
   #password=e157e42337fc4ccd850d0a3904733f46
 | 
			
		||||
   #@
 | 
			
		||||
 | 
			
		||||
   #use=web, web=dynamicdns.park-your-domain.com/getip
 | 
			
		||||
   #protocol=namecheap
 | 
			
		||||
   #server=dynamicdns.park-your-domain.com
 | 
			
		||||
   #login=cochrun.xyz
 | 
			
		||||
   #password=94602c373f9f4743838bf567def2eb72
 | 
			
		||||
   #@,nc.cochrun.xyz,home.cochrun.xyz,mail.cochrun.xyz,jelly.cochrun.xyz
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
   #'';
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # CADDY
 | 
			
		||||
  services.caddy = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  systemd.services = {
 | 
			
		||||
    # mail-cert-renew = {
 | 
			
		||||
    #   enable = true;
 | 
			
		||||
    #   serviceConfig = {
 | 
			
		||||
    #     Type = "oneshot";
 | 
			
		||||
    #     ExecStart = with pkgs.docker "sh -c /home/chris/bin/mail-cert-renew";
 | 
			
		||||
    #   };
 | 
			
		||||
    # };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # Open ports in the firewall.
 | 
			
		||||
  # networking.firewall.allowedTCPPorts = [ ... ];
 | 
			
		||||
  # networking.firewall.allowedUDPPorts = [ ... ];
 | 
			
		||||
  # Or disable the firewall altogether.
 | 
			
		||||
  networking.firewall.enable = false;
 | 
			
		||||
 | 
			
		||||
  # Copy the NixOS configuration file and link it from the resulting system
 | 
			
		||||
  # (/run/current-system/configuration.nix). This is useful in case you
 | 
			
		||||
  # accidentally delete configuration.nix.
 | 
			
		||||
  # system.copySystemConfiguration = true;
 | 
			
		||||
 | 
			
		||||
  # This value determines the NixOS release from which the default
 | 
			
		||||
  # settings for stateful data, like file locations and database versions
 | 
			
		||||
  # on your system were taken. It‘s perfectly fine and recommended to leave
 | 
			
		||||
  # this value at the release version of the first install of this system.
 | 
			
		||||
  # Before changing this value read the documentation for this option
 | 
			
		||||
  # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
 | 
			
		||||
  system.stateVersion = "22.05"; # Did you read the comment?
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
*** Containers
 | 
			
		||||
*** Hardware Configuration
 | 
			
		||||
Kohlin's hardware
 | 
			
		||||
#+begin_src nix :tangle system/kohlin/hardware-configuration.nix
 | 
			
		||||
# Do not modify this file!  It was generated by ‘nixos-generate-config’
 | 
			
		||||
# and may be overwritten by future invocations.  Please make changes
 | 
			
		||||
# to /etc/nixos/configuration.nix instead.
 | 
			
		||||
{ config, lib, pkgs, modulesPath, ... }:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  imports =
 | 
			
		||||
    [ (modulesPath + "/installer/scan/not-detected.nix")
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
  boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usb_storage" "sd_mod" "sr_mod" "rtsx_usb_sdmmc" ];
 | 
			
		||||
  boot.initrd.kernelModules = [ ];
 | 
			
		||||
  boot.kernelModules = [ "kvm-intel" ];
 | 
			
		||||
  boot.extraModulePackages = [ ];
 | 
			
		||||
 | 
			
		||||
  fileSystems."/" =
 | 
			
		||||
    { device = "/dev/disk/by-uuid/103a24d5-ffb5-4f7c-ab68-48e0b766b3ac";
 | 
			
		||||
      fsType = "btrfs";
 | 
			
		||||
      options = [ "subvol=@" "noatime" "nodiratime" "compress=zstd" ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/boot" =
 | 
			
		||||
    { device = "/dev/disk/by-uuid/55C5-7725";
 | 
			
		||||
      fsType = "vfat";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/storage" =
 | 
			
		||||
    { device = "/dev/disk/by-uuid/f1804953-14e5-42db-a974-1e18f16d884c";
 | 
			
		||||
      fsType = "btrfs";
 | 
			
		||||
      options = [ "noatime" "nodiratime" "compress=zstd" ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  swapDevices = [ ];
 | 
			
		||||
 | 
			
		||||
  # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
 | 
			
		||||
  # (the default) this is the recommended approach. When using systemd-networkd it's
 | 
			
		||||
  # still possible to use this option, but it's recommended to use it in conjunction
 | 
			
		||||
  # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
 | 
			
		||||
  networking.useDHCP = lib.mkDefault true;
 | 
			
		||||
  # networking.interfaces.enp2s0.useDHCP = lib.mkDefault true;
 | 
			
		||||
  # networking.interfaces.wlp3s0.useDHCP = lib.mkDefault true;
 | 
			
		||||
 | 
			
		||||
  hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
 | 
			
		||||
}
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
** Home
 | 
			
		||||
I also use home-manager for managing dotfiles. This means that everything is contained in this folder and then tangled out to their respective places when rebuilding the system.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -194,7 +194,7 @@
 | 
			
		|||
    ))
 | 
			
		||||
 | 
			
		||||
(defwindow bar
 | 
			
		||||
          :monitor 1
 | 
			
		||||
          :monitor 0
 | 
			
		||||
          :geometry (geometry :x "0%"
 | 
			
		||||
                       :y "9px"
 | 
			
		||||
                       :width "98%"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,8 +2,8 @@
 | 
			
		|||
osc=no
 | 
			
		||||
vo=gpu
 | 
			
		||||
af=scaletempo2
 | 
			
		||||
autofit=95%
 | 
			
		||||
geometry=95%:95%
 | 
			
		||||
autofit=2700
 | 
			
		||||
geometry=50%:50%
 | 
			
		||||
# input-ipc-server="/tmp/mpvsocket"
 | 
			
		||||
hwdec=auto
 | 
			
		||||
rtsp-transport=udp
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,7 +11,9 @@ else
 | 
			
		|||
    #echo "this is not hidpi"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
lolcate | rofi -dmenu -p " " -i -matching regex -theme ~/.config/rofi/launchers-git/$style.rasi | xargs -r0 xdg-open
 | 
			
		||||
cd ~/
 | 
			
		||||
 | 
			
		||||
cat db | wofi --dmenu -i -M multi-contains | xargs -r0 xdg-open
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# $@ &
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -547,6 +547,14 @@
 | 
			
		|||
 | 
			
		||||
  # List services that you want to enable:
 | 
			
		||||
 | 
			
		||||
  services.locate = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    locate = pkgs.plocate;
 | 
			
		||||
    localuser = null;
 | 
			
		||||
    interval = "hourly";
 | 
			
		||||
    prunePaths = [ "/tmp" "/nix/store" "/nix/var/log/nix" "/etc" "/bin" "/boot" "/usr" "/var" "/run" "/srv" "/sys" "/root" "/proc" "/opt" "/dev" "/home/chris/.emacs.d" "/home/chris/.config" "/home/chris/.nix-profile" "/home/chris/.profile" "/home/chris/dev/nixpkgs" "/home/chris/.cache" "/home/chris/.local" "/home/chris/.dotemacs" "/home/chris/.cargo" "/home/chris/.mozilla" "/home/chris/.var" "/home/chris/.dotfiles" "/home/chris/.dbus" "/home/chris/.android" "/var/lib"]
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # Enable the OpenSSH daemon.
 | 
			
		||||
  services.openssh.enable = true;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue