{ 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? }