diff --git a/flake.lock b/flake.lock index 71784e6..f80d2e7 100644 --- a/flake.lock +++ b/flake.lock @@ -8,11 +8,11 @@ "utils": "utils" }, "locked": { - "lastModified": 1674511629, - "narHash": "sha256-e2sc2Pv6z3aLuqXrunGvoKAfOABbWV31txgboIro+GE=", + "lastModified": 1674556204, + "narHash": "sha256-HCRmkZsq01h2Evch08zpgE9jeHdMtGdT1okWotyvuhY=", "owner": "nix-community", "repo": "home-manager", - "rev": "12d43fd40a7658976c18eaa05bba62b6045e5b3e", + "rev": "c59f0eac51da91c6989fd13a68e156f63c0e60b6", "type": "github" }, "original": { @@ -23,11 +23,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1674211260, - "narHash": "sha256-xU6Rv9sgnwaWK7tgCPadV6HhI2Y/fl4lKxJoG2+m9qs=", + "lastModified": 1674459583, + "narHash": "sha256-L0UZl/u2H3HGsrhN+by42c5kNYeKtdmJiPzIRvEVeiM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5ed481943351e9fd354aeb557679624224de38d5", + "rev": "1b1f50645af2a70dc93eae18bfd88d330bfbcf7f", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index fb6a7be..a680477 100644 --- a/flake.nix +++ b/flake.nix @@ -17,7 +17,7 @@ modules = [ ./systems/common.nix ./systems/framework.nix - ./users/jsutter.nix + ./user-jsutter.nix ]; }; aurora = nixpkgs.lib.nixosSystem { diff --git a/users/jsutter.nix b/users/jsutter.nix new file mode 100644 index 0000000..a6e5cfe --- /dev/null +++ b/users/jsutter.nix @@ -0,0 +1,209 @@ +{ 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 = { + isNormalUser = true; + description = "Julian Sutter"; + extraGroups = [ "networkmanager" "wheel" ]; + packages = with pkgs; [ + firefox + git + tor-browser-bundle-bin + nextcloud-client + vlc + deluge + steam + vmware-horizon-client + kleopatra + pinentry + arc-theme + zoom-us + slack + vscodium + direnv + ]; + }; + + # Steam + programs.steam = { + 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 + }; + + # Zerotier + services.zerotierone.joinNetworks = [ "b15644912e748585" ]; + services.zerotierone.enable= true; + home-manager.users.jsutter = { + home.username = "jsutter"; + home.homeDirectory = "/home/jsutter"; + programs.home-manager.enable = true; + home.stateVersion = "22.11"; + + # Git Configuration + programs.git = { + enable = true; + userName = "Julian Sutter"; + userEmail = "jsutter@symbiotip.com"; + }; + dconf.settings = { + "org/gnome/mutter" = { + experimental-features = [ "scale-monitor-framebuffer" ]; + }; + }; + + # Gnome Stuff + gtk = { + enable = true; + iconTheme = { + name = "Papirus-Dark"; + package = pkgs.papirus-icon-theme; + }; + theme = { + name = "palenight"; + package = pkgs.palenight-theme; + }; + cursorTheme = { + name = "Numix-Cursor"; + package = pkgs.numix-cursor-theme; + }; + gtk3.extraConfig = { + Settings = '' + gtk-application-prefer-dark-theme=1 + ''; + }; + gtk4.extraConfig = { + Settings = '' + gtk-application-prefer-dark-theme=1 + ''; + }; + }; + dconf.settings = { + "org/gnome/shell" = { + favorite-apps = [ + "org.gnome.Console.desktop" + "firefox.desktop" + "slack.desktop" + "codium.desktop" + "com.nextcloud.desktopclient.nextcloud.desktop" + "Zoom.desktop" + "steam.desktop" + "vmware-view.desktop" + ]; + }; + "org/gnome/desktop/interface" = { + color-scheme = "prefer-dark"; + enable-hot-corners = false; + }; + "org/gnome/desktop/wm/preferences" = { + workspace-names = [ "Main" ]; + }; + "org/gnome/desktop/background" = { + picture-uri = "https://git.sym.bio/jsutter/backgrounds/-/raw/main/2.jpg"; + picture-uri-dark = "https://git.sym.bio/jsutter/backgrounds/-/raw/main/3.jpg"; + }; + "org/gnome/desktop/screensaver" = { + picture-uri = "https://git.sym.bio/jsutter/backgrounds/-/raw/main/4.jpg"; + primary-color = "#3465a4"; + secondary-color = "#000000"; + }; + "org/gnome/shell" = { + disable-user-extensions = false; + enabled-extensions = [ # "gnome-extensions list" to get a list. + "user-theme@gnome-shell-extensions.gcampax.github.com" + "trayIconsReloaded@selfmade.pl" + "dash-to-panel@jderose9.github.com" + ]; + }; + }; + home.packages = with pkgs; [ + gnomeExtensions.user-themes + gnomeExtensions.tray-icons-reloaded + gnomeExtensions.dash-to-panel + ]; + home.sessionVariables.GTK_THEME = "palenight"; + home.file."firefox-gnome-theme" = { + target = ".mozilla/firefox/default/chrome/firefox-gnome-theme"; + source = fetchTarball { + url = "https://github.com/rafaelmardojai/firefox-gnome-theme/archive/master.tar.gz"; + sha256 = "1k7w7drq5xvxccxijjl6spf4w02ghil9jya35crysa3hi0mvyn29"; + }; + }; + + 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; + }; + }; + }; + extensions = with pkgs.nur.repos.rycee.firefox-addons; [ + ublock-origin + privacy-badger + bitwarden + clearurls + decentraleyes + ghostery + privacy-redirect + privacy-badger + disconnect + ]; + 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); + ''; + userChrome = '' + @import "firefox-gnome-theme/userChrome.css"; + @import "firefox-gnome-theme/theme/colors/dark.css"; + ''; + }; + }; + }; + }; +}