diff --git a/README.org b/README.org index c0d5a8a..2e6def5 100644 --- a/README.org +++ b/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..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. diff --git a/eww/eww.yuck b/eww/eww.yuck index f1beebc..ac4b4df 100644 --- a/eww/eww.yuck +++ b/eww/eww.yuck @@ -194,7 +194,7 @@ )) (defwindow bar - :monitor 1 + :monitor 0 :geometry (geometry :x "0%" :y "9px" :width "98%" diff --git a/mpv/mpv.conf b/mpv/mpv.conf index 1039094..239822f 100644 --- a/mpv/mpv.conf +++ b/mpv/mpv.conf @@ -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 diff --git a/scripts/filesearch b/scripts/filesearch index 8227b0c..886dda7 100755 --- a/scripts/filesearch +++ b/scripts/filesearch @@ -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 # $@ & diff --git a/system/syl/configuration.nix b/system/syl/configuration.nix index 924de1b..dc88952 100644 --- a/system/syl/configuration.nix +++ b/system/syl/configuration.nix @@ -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;