diff --git a/flake.lock b/flake.lock index fbbc956..87f668c 100644 --- a/flake.lock +++ b/flake.lock @@ -340,6 +340,21 @@ "type": "github" } }, + "nur": { + "locked": { + "lastModified": 1706686049, + "narHash": "sha256-TCuYU/F5uuMDIBcFSm1xi2fYHt1Bit8fYPzIzB7T6HY=", + "owner": "nix-community", + "repo": "NUR", + "rev": "fab803d7fa7e066ff6193fe40ba29d2e322835e1", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "NUR", + "type": "github" + } + }, "pre-commit-hooks": { "inputs": { "flake-compat": "flake-compat", @@ -375,7 +390,8 @@ "home-manager": "home-manager", "hyprland": "hyprland", "nixpkgs": "nixpkgs_3", - "nixvim": "nixvim" + "nixvim": "nixvim", + "nur": "nur" } }, "systems": { diff --git a/flake.nix b/flake.nix index a6803c9..79d6a8a 100644 --- a/flake.nix +++ b/flake.nix @@ -1,6 +1,7 @@ { inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + nur.url = "github:nix-community/NUR"; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; @@ -19,6 +20,7 @@ outputs = { nixpkgs, + nur, home-manager, ags, nixvim, @@ -39,12 +41,14 @@ trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="]; }; overlays = [ + nur.overlay (final: prev: { anyrunPlugins = anyrun.packages.${prev.system}; hyprland = hyprland.packages.${prev.system}.hyprland; xdg-desktop-portal-hyprland = hyprland.packages.${prev.system}.xdg-desktop-portal-hyprland; ags = ags.packages.${prev.system}.default; gbmonctl = prev.callPackage ./overlays/gbmonctl {}; + lpc21isp = prev.callPackage ./overlays/lpc21isp {}; }) ]; }); diff --git a/home/clean-home-dir.nix b/home/clean-home-dir.nix new file mode 100644 index 0000000..f59a1bc --- /dev/null +++ b/home/clean-home-dir.nix @@ -0,0 +1,26 @@ +{config, ...}: { + xdg.enable = true; + xdg.userDirs.enable = true; + home.sessionVariables = { + HISTFILE = "${config.xdg.stateHome}/bash/history"; + NPM_CONFIG_USERCONFIG = "${config.xdg.configHome}/npm/config"; + NPM_CONFIG_CACHE = "${config.xdg.cacheHome}/npm"; + NPM_CONFIG_TMP = "${config.xdg.stateHome}/npm"; + WINEPREFIX = "${config.xdg.configHome}/wineprefixes/default"; + _JAVA_OPTGRADLE_USER_HOMEIONS = ''-Djava.util.prefs.userRoot="${config.xdg.configHome}"/java''; + GRADLE_USER_HOME = "${config.xdg.configHome}/gradle"; + DVDCSS_CACHE = "${config.xdg.cacheHome}/dvdcss"; + DOCKER_CONFIG = "${config.xdg.configHome}/docker"; + PYTHON_HISTORY = "${config.xdg.stateHome}/python/history"; + PYTHONCACHEPREFIX = "${config.xdg.cacheHome}/python"; + PYTHONUSERBASE = "${config.xdg.dataHome}/python"; + WGETRC = "${config.xdg.configHome}/wgetrc"; + XCOMPOSEFILE = "${config.xdg.configHome}/X11/xcompose"; + XCOMPOSECACHE = "${config.xdg.cacheHome}/X11/xcompose"; + }; + gtk.gtk2.configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc"; + programs.gpg.homedir = "${config.xdg.configHome}/gnupg"; + xdg.configFile.wgetrc.text = '' + hsts-file="${config.xdg.cacheHome}/wget-hsts" + ''; +} diff --git a/home/default.nix b/home/default.nix index ec53aca..c5651a1 100644 --- a/home/default.nix +++ b/home/default.nix @@ -10,16 +10,11 @@ inherit username stateVersion; homeDirectory = "/home/${username}"; }; - xdg.userDirs = { - enable = true; - extraConfig = { - XDG_PROJECTS_DIR = "${home.homeDirectory}/Projects"; - }; - }; imports = [ inputs.ags.homeManagerModules.default inputs.nixvim.homeManagerModules.nixvim inputs.anyrun.homeManagerModules.default + ./clean-home-dir.nix ./programs/neovide.nix ./packages ./programs diff --git a/home/desktops/hyprland/default.nix b/home/desktops/hyprland/default.nix index 559fe23..35102fe 100644 --- a/home/desktops/hyprland/default.nix +++ b/home/desktops/hyprland/default.nix @@ -17,6 +17,8 @@ "GBM_BACKEND,nvidia-drm" "__GLX_VENDOR_LIBRARY_NAME,nvidia" "WLR_NO_HARDWARE_CURSORS,1" + "__GL_GSYNC_ALLOWED,0" + "__GL_VRR_ALLOWED,0" "NIXOS_OZONE_WL,1" # Fixes black screen on Jellyfin # https://github.com/jellyfin/jellyfin-media-player/issues/165#issuecomment-1569842393 diff --git a/home/packages/default.nix b/home/packages/default.nix index b76ed37..bae288f 100644 --- a/home/packages/default.nix +++ b/home/packages/default.nix @@ -9,7 +9,6 @@ libxcrypt # browsers - firefox-wayland chromium brave @@ -60,6 +59,11 @@ avalonia-ilspy ghidra + # 3d printing + lpc21isp + dfu-util + cura + # gaming steam oversteer diff --git a/home/packages/firefox-gnome-theme-installer.nix b/home/packages/firefox-gnome-theme-installer.nix deleted file mode 100644 index 29d14ed..0000000 --- a/home/packages/firefox-gnome-theme-installer.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ - lib, - stdenv, - fetchFromGitHub, - pkgs, -}: -stdenv.mkDerivation rec { - name = "firefox-gnome-theme"; - version = "116.0.0"; - src = fetchFromGitHub { - owner = "rafaelmardojai"; - repo = "firefox-gnome-theme"; - sparseCheckout = ["scripts"]; - rev = "v116"; - sha256 = "0IS5na2WRSNWNygHhmZOcXhdrx2aFhCDQY8XVVeHf8Q="; - }; - installPhase = '' - mkdir -p $out/bin - cp scripts/install-by-curl.sh $out/bin/install-firefox-gnome-theme - ''; -} diff --git a/home/programs/default.nix b/home/programs/default.nix index 3ab9c09..aa8f505 100644 --- a/home/programs/default.nix +++ b/home/programs/default.nix @@ -5,6 +5,8 @@ git = import ./git.nix; lazygit.enable = true; nixvim = import ./nixvim.nix {inherit pkgs;}; + firefox = import ./firefox.nix {inherit pkgs;}; + gpg.enable = true; btop = { enable = true; settings = { diff --git a/home/programs/firefox.nix b/home/programs/firefox.nix new file mode 100644 index 0000000..04c0c03 --- /dev/null +++ b/home/programs/firefox.nix @@ -0,0 +1,80 @@ +{pkgs}: { + enable = true; + package = pkgs.wrapFirefox pkgs.firefox-unwrapped { + extraPolicies = { + CaptivePortal = false; + DisableFirefoxStudies = true; + DisablePocket = true; + DisableTelemetry = true; + DisableFirefoxAccounts = true; + NoDefaultBookmarks = true; + OfferToSaveLogins = false; + OfferToSaveLoginsDefault = false; + PasswordManagerEnabled = false; + FirefoxHome = { + Search = true; + Pocket = false; + Snippets = false; + TopSites = true; + Highlights = false; + }; + UserMessaging = { + ExtensionRecommendations = false; + SkipOnboarding = true; + }; + }; + }; + profiles.default = { + id = 0; + name = "default"; + isDefault = true; + bookmarks = [ + { + name = "Monkeytype"; + url = "https://monkeytype.com/"; + } + { + name = "YouTube"; + url = "https://youtube.com/"; + } + ]; + search = { + force = true; + default = "Google"; + engines = { + "Nix Packages" = { + urls = [ + { + template = "https://search.nixos.org/packages"; + params = [ + { + name = "type"; + value = "packages"; + } + { + name = "query"; + value = "{searchTerms}"; + } + ]; + } + ]; + icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; + definedAliases = ["@np"]; + }; + "NixOS Wiki" = { + urls = [{template = "https://nixos.wiki/index.php?search={searchTerms}";}]; + iconUpdateURL = "https://nixos.wiki/favicon.png"; + updateInterval = 24 * 60 * 60 * 1000; + definedAliases = ["@nw"]; + }; + "Wikipedia (en)".metaData.alias = "@wiki"; + }; + }; + extensions = with pkgs.nur.repos.rycee.firefox-addons; [ + ublock-origin + ublacklist + sponsorblock + bitwarden + ]; + }; +} diff --git a/overlays/lpc21isp/default.nix b/overlays/lpc21isp/default.nix new file mode 100644 index 0000000..bc36f59 --- /dev/null +++ b/overlays/lpc21isp/default.nix @@ -0,0 +1,27 @@ +{ + stdenv, + fetchFromGitHub, + glibc, + lib, +}: +stdenv.mkDerivation { + name = "lpc21isp"; + src = fetchFromGitHub { + owner = "capiman"; + repo = "lpc21isp"; + rev = "cf89d0b122ef02358e0f130b8f32cb804c11a54e"; + hash = "sha256-BZvtJMtVyqsCPVhp/QL5cXJY8Q25T/RzYzHMutE24hk="; + }; + nativeBuildInputs = [glibc.static]; + installPhase = '' + mkdir -p $out/bin + cp lpc21isp $out/bin + ''; + meta = with lib; { + description = "Portable command line ISP for NXP LPC family and Analog Devices ADUC70xx"; + homepage = "https://github.com/capiman/lpc21isp"; + license = licenses.lgpl3Plus; + maintainers = [maintainers.theaninova]; + mainProgram = "lpc21isp"; + }; +}