{ config, pkgs, home-manager, ... }: let home-manager = builtins.fetchTarball { url = "https://github.com/nix-community/home-manager/archive/master.tar.gz"; # sha256 = "05msmzfa45l9sr9ngd2cfxw66kw0x76d68gp29v5ilrakf8nc90w"; }; in { # Nix User Repository https://github.com/nix-community/NUR nixpkgs.config.packageOverrides = pkgs: { nur = import (builtins.fetchTarball "https://github.com/nix-community/NUR/archive/master.tar.gz") { inherit pkgs; }; }; imports = [ (import "${home-manager}/nixos") ]; users.users.jsutter = { shell = pkgs.zsh; isNormalUser = true; description = "Julian Sutter"; extraGroups = [ "networkmanager" "wheel" "docker" "adbusers" "libvirtd" "syncthing" ]; hashedPassword = "$6$tvkhGd24G6pVOsWr$j8ZAqSnXPTGwMGmIulU5Puzqd4iKdu8eAMSFis/cPqTW6u2xGQMqPHH1W9IZwKSL6.nS7Jc/NR2VwpPosyXDH/"; openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBNVUh+RrcOSMRV6qysnsdPs5AyK8dSm4QhhnwgpikyI jsutter@symbiotrip.com" ]; packages = with pkgs; [ firefox git tor-browser-bundle-bin nextcloud-client vlc steam vmware-horizon-client kleopatra pinentry arc-theme zoom-us slack vscodium direnv appimage-run libreoffice-qt deluge signal-desktop ]; }; # Steam programs.steam = with pkgs; { enable = true; remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server }; # Android Dev programs.adb.enable = true; # Syncthing services.syncthing = { enable = true; systemService = true; configDir = "/home/jsutter/.config/syncthing"; user = "jsutter"; group = "users"; dataDir = "/mnt/data"; overrideDevices = true; # overrides any devices added or deleted through the WebUI overrideFolders = true; # overrides any folders added or deleted through the WebUI settings = { extraOptions.gui = { user = "admin"; password = "Monaco55"; }; devices = { "app01" = { id = "N22JOMX-FNT3BFV-HQDZJR7-X6Y4HKF-N5WX5NU-BMABJJ6-UGIRJPQ-MQT77QB"; }; # "dummy" = { id = "DEVICE-ID-GOES-HERE"; }; }; }; }; #Everything below is home manager managed: home-manager = { useUserPackages = true; users.jsutter = { home.username = "jsutter"; home.homeDirectory = "/home/jsutter"; programs.home-manager.enable = true; home.stateVersion = "23.05"; services.syncthing.tray.enable = true; # Git Configuration programs.git = { enable = true; userName = "Julian Sutter"; userEmail = "jsutter@symbiotip.com"; extraConfig = { core.editor = "nano"; credential.helper = "cache"; }; }; programs.zsh = { enable = true; enableCompletion = false; # enabled in oh-my-zsh enableAutosuggestions = true; initExtra = '' test -f ~/.dir_colors && eval $(dircolors ~/.dir_colors) ''; shellAliases = { ne = "nix-env"; ni = "nix-env -iA"; no = "nixops"; ns = "nix-shell --pure"; cat = "bat"; nra = "sudo nixos-rebuild switch --flake .#aurora --impure"; nif = "sudo nixos-rebuild switch --flake .#framework --impure"; }; oh-my-zsh = { enable = true; plugins = [ "git" "systemd" "rsync" "kubectl" "ansible" "battery" "colored-man-pages" "colorize" "common-aliases" "cp" "docker" "docker-compose" "docker-machine" "git-auto-fetch" "git-extras" "github" "git-prompt" "gnu-utils" "golang" "nmap" "postgres" "python" "rust" "ssh-agent" "sudo" "systemd" "ufw" "vscode" ]; theme = "terminalparty"; }; }; programs.lsd = { enable = true; enableAliases = true; }; programs.bat.enable = true; # Firefox programs.firefox = { enable = true; package = pkgs.wrapFirefox pkgs.firefox-unwrapped { extraPolicies = { CaptivePortal = false; DisableFirefoxStudies = true; DisablePocket = true; DisableTelemetry = true; DisableFirefoxAccounts = false; NoDefaultBookmarks = true; OfferToSaveLogins = false; OfferToSaveLoginsDefault = false; PasswordManagerEnabled = false; FirefoxHome = { Search = true; Pocket = false; Snippets = false; TopSites = false; Highlights = false; }; UserMessaging = { ExtensionRecommendations = false; SkipOnboarding = true; }; }; }; profiles = { jsutter = { id = 0; name = "jsutter"; settings = { "general.smoothScroll" = true; }; extraConfig = '' user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true); user_pref("full-screen-api.ignore-widgets", true); user_pref("media.ffmpeg.vaapi.enabled", true); user_pref("media.rdd-vpx.enabled", true); ''; extensions = with pkgs.nur.repos.rycee.firefox-addons; [ ublock-origin privacy-badger bitwarden clearurls decentraleyes ghostery privacy-redirect privacy-badger disconnect plasma-integration ]; userChrome = '' @import "firefox-gnome-theme/userChrome.css"; @import "firefox-gnome-theme/theme/colors/dark.css"; ''; }; }; }; }; }; }