diff --git a/.gitea/workflows/mirror-to-github.yaml b/.gitea/workflows/mirror-to-github.yaml new file mode 100644 index 0000000..ebb7a85 --- /dev/null +++ b/.gitea/workflows/mirror-to-github.yaml @@ -0,0 +1,73 @@ +name: Simple Mirror to GitHub + +on: + push: + branches: + - master + +jobs: + mirror: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 # Fetch full history for complete mirror + # token: ${{ secrets.GITEA_TOKEN }} + + - name: Push to GitHub + run: | + # Configure git + git config --global user.name "Gitea Mirror Bot" + git config --global user.email "noreply@gitea.local" + + # Create mirror README + cat > README.md << 'EOF' + + # 🪞 GitHub Mirror + + This is an automated mirror of the repository hosted on [GitGud.foo/xbazzi/fastinahurry](https://gitgud.foo/xbazzi/fastinahurry). + + **⚠️ This is a read-only mirror - do not create issues or pull requests here.** + + ## 🏠 Original Repository + + Please visit the [original](https://gitgud.foo/xbazzi/fastinahurry) repository for: + - 📝 Issues and bug reports + - 🔄 Pull requests and contributions + - 📋 Project documentation + - 💬 Discussions + + --- + + *This mirror is automatically updated when changes are pushed to the master branch.* + EOF + + # Stage and commit the new README + git add README.md + if git diff --staged --quiet; then + echo "No changes to README, skipping commit" + else + git commit -m "Update README for GitHub mirror" + fi + + # Add remote + git remote add github https://${{ secrets.GH_TOKEN }}@github.com/xbazzi/fastinahurry.git + + # Check if GitHub repo is empty + if git ls-remote --heads github | grep -q refs/heads/; then + echo "GitHub repo has branches, doing full mirror" + git push github --all --force + git push github --tags --force + else + echo "GitHub repo is empty, pushing master branch first" + git push github master + # After master is established, push other branches and tags + git push github --all --force || echo "No additional branches to push" + git push github --tags --force || echo "No tags to push" + fi + - name: Debug git state + run: | + git log --oneline -5 + git branch -a + git remote -v \ No newline at end of file diff --git a/flake.lock b/flake.lock index f1d9a4a..a0dce1b 100755 --- a/flake.lock +++ b/flake.lock @@ -1,42 +1,5 @@ { "nodes": { - "aquamarine": { - "inputs": { - "hyprutils": [ - "hyprland-plugins", - "hyprland", - "hyprutils" - ], - "hyprwayland-scanner": [ - "hyprland-plugins", - "hyprland", - "hyprwayland-scanner" - ], - "nixpkgs": [ - "hyprland-plugins", - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland-plugins", - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1751740947, - "narHash": "sha256-35040CHH7P3JGmhGVfEb2oJHL/A5mI2IXumhkxrBnao=", - "owner": "hyprwm", - "repo": "aquamarine", - "rev": "dfc1db15a08c4cd234288f66e1199c653495301f", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "aquamarine", - "type": "github" - } - }, "base16": { "inputs": { "fromYaml": "fromYaml" @@ -151,22 +114,6 @@ "type": "github" } }, - "flake-compat_2": { - "flake": false, - "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, "flake-parts": { "inputs": { "nixpkgs-lib": [ @@ -226,29 +173,6 @@ } }, "gitignore": { - "inputs": { - "nixpkgs": [ - "hyprland-plugins", - "hyprland", - "pre-commit-hooks", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1709087332, - "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", - "owner": "hercules-ci", - "repo": "gitignore.nix", - "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "gitignore.nix", - "type": "github" - } - }, - "gitignore_2": { "inputs": { "nixpkgs": [ "lanzaboote", @@ -307,262 +231,9 @@ "type": "github" } }, - "hyprcursor": { - "inputs": { - "hyprlang": [ - "hyprland-plugins", - "hyprland", - "hyprlang" - ], - "nixpkgs": [ - "hyprland-plugins", - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland-plugins", - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1749155331, - "narHash": "sha256-XR9fsI0zwLiFWfqi/pdS/VD+YNorKb3XIykgTg4l1nA=", - "owner": "hyprwm", - "repo": "hyprcursor", - "rev": "45fcc10b4c282746d93ec406a740c43b48b4ef80", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprcursor", - "type": "github" - } - }, - "hyprgraphics": { - "inputs": { - "hyprutils": [ - "hyprland-plugins", - "hyprland", - "hyprutils" - ], - "nixpkgs": [ - "hyprland-plugins", - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland-plugins", - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1751808145, - "narHash": "sha256-OXgL0XaKMmfX2rRQkt9SkJw+QNfv0jExlySt1D6O72g=", - "owner": "hyprwm", - "repo": "hyprgraphics", - "rev": "b841473a0bd4a1a74a0b64f1ec2ab199035c349f", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprgraphics", - "type": "github" - } - }, - "hyprland": { - "inputs": { - "aquamarine": "aquamarine", - "hyprcursor": "hyprcursor", - "hyprgraphics": "hyprgraphics", - "hyprland-protocols": "hyprland-protocols", - "hyprland-qtutils": "hyprland-qtutils", - "hyprlang": "hyprlang", - "hyprutils": "hyprutils", - "hyprwayland-scanner": "hyprwayland-scanner", - "nixpkgs": "nixpkgs", - "pre-commit-hooks": "pre-commit-hooks", - "systems": "systems", - "xdph": "xdph" - }, - "locked": { - "lastModified": 1752149340, - "narHash": "sha256-DJc2ROpttbP6FHcXwWpmK7EB2cpVsP/LmXjEr8RWcO8=", - "owner": "hyprwm", - "repo": "Hyprland", - "rev": "b5433bb75324a95dd27eb5492141565466c2cdd6", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "Hyprland", - "type": "github" - } - }, - "hyprland-plugins": { - "inputs": { - "hyprland": "hyprland", - "nixpkgs": [ - "nixpkgs" - ], - "systems": [ - "hyprland-plugins", - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1755183521, - "narHash": "sha256-wrP8TM2lb2x0+PyTc7Uc3yfVBeIlYW7+hFeG14N9Cr8=", - "owner": "hyprwm", - "repo": "hyprland-plugins", - "rev": "c1ddebb423acc7c88653c04de5ddafee64dac89a", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprland-plugins", - "type": "github" - } - }, - "hyprland-protocols": { - "inputs": { - "nixpkgs": [ - "hyprland-plugins", - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland-plugins", - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1749046714, - "narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=", - "owner": "hyprwm", - "repo": "hyprland-protocols", - "rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprland-protocols", - "type": "github" - } - }, - "hyprland-qt-support": { - "inputs": { - "hyprlang": [ - "hyprland-plugins", - "hyprland", - "hyprland-qtutils", - "hyprlang" - ], - "nixpkgs": [ - "hyprland-plugins", - "hyprland", - "hyprland-qtutils", - "nixpkgs" - ], - "systems": [ - "hyprland-plugins", - "hyprland", - "hyprland-qtutils", - "systems" - ] - }, - "locked": { - "lastModified": 1749154592, - "narHash": "sha256-DO7z5CeT/ddSGDEnK9mAXm1qlGL47L3VAHLlLXoCjhE=", - "owner": "hyprwm", - "repo": "hyprland-qt-support", - "rev": "4c8053c3c888138a30c3a6c45c2e45f5484f2074", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprland-qt-support", - "type": "github" - } - }, - "hyprland-qtutils": { - "inputs": { - "hyprland-qt-support": "hyprland-qt-support", - "hyprlang": [ - "hyprland-plugins", - "hyprland", - "hyprlang" - ], - "hyprutils": [ - "hyprland-plugins", - "hyprland", - "hyprland-qtutils", - "hyprlang", - "hyprutils" - ], - "nixpkgs": [ - "hyprland-plugins", - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland-plugins", - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1750371812, - "narHash": "sha256-D868K1dVEACw17elVxRgXC6hOxY+54wIEjURztDWLk8=", - "owner": "hyprwm", - "repo": "hyprland-qtutils", - "rev": "b13c7481e37856f322177010bdf75fccacd1adc8", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprland-qtutils", - "type": "github" - } - }, - "hyprlang": { - "inputs": { - "hyprutils": [ - "hyprland-plugins", - "hyprland", - "hyprutils" - ], - "nixpkgs": [ - "hyprland-plugins", - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland-plugins", - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1750371198, - "narHash": "sha256-/iuJ1paQOBoSLqHflRNNGyroqfF/yvPNurxzcCT0cAE=", - "owner": "hyprwm", - "repo": "hyprlang", - "rev": "cee01452bca58d6cadb3224e21e370de8bc20f0b", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprlang", - "type": "github" - } - }, "hyprshell": { "inputs": { - "nixpkgs": "nixpkgs_2" + "nixpkgs": "nixpkgs" }, "locked": { "lastModified": 1754807024, @@ -578,64 +249,10 @@ "url": "https://gitgud.foo/thegrind/hypr-shell.git" } }, - "hyprutils": { - "inputs": { - "nixpkgs": [ - "hyprland-plugins", - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland-plugins", - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1751888065, - "narHash": "sha256-F2SV9WGqgtRsXIdUrl3sRe0wXlQD+kRRZcSfbepjPJY=", - "owner": "hyprwm", - "repo": "hyprutils", - "rev": "a8229739cf36d159001cfc203871917b83fdf917", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprutils", - "type": "github" - } - }, - "hyprwayland-scanner": { - "inputs": { - "nixpkgs": [ - "hyprland-plugins", - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland-plugins", - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1751881472, - "narHash": "sha256-meB0SnXbwIe2trD041MLKEv6R7NZ759QwBcVIhlSBfE=", - "owner": "hyprwm", - "repo": "hyprwayland-scanner", - "rev": "8fb426b3e5452fd9169453fd6c10f8c14ca37120", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprwayland-scanner", - "type": "github" - } - }, "lanzaboote": { "inputs": { "crane": "crane", - "flake-compat": "flake-compat_2", + "flake-compat": "flake-compat", "flake-parts": "flake-parts", "nixpkgs": [ "nixpkgs" @@ -660,11 +277,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1751792365, - "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=", + "lastModified": 1755186698, + "narHash": "sha256-wNO3+Ks2jZJ4nTHMuks+cxAiVBGNuEBXsT29Bz6HASo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb", + "rev": "fbcf476f790d8a217c3eab4e12033dc4a0f6d23c", "type": "github" }, "original": { @@ -691,22 +308,6 @@ } }, "nixpkgs_2": { - "locked": { - "lastModified": 1755186698, - "narHash": "sha256-wNO3+Ks2jZJ4nTHMuks+cxAiVBGNuEBXsT29Bz6HASo=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "fbcf476f790d8a217c3eab4e12033dc4a0f6d23c", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_3": { "locked": { "lastModified": 1755186698, "narHash": "sha256-wNO3+Ks2jZJ4nTHMuks+cxAiVBGNuEBXsT29Bz6HASo=", @@ -747,37 +348,13 @@ "type": "github" } }, - "pre-commit-hooks": { - "inputs": { - "flake-compat": "flake-compat", - "gitignore": "gitignore", - "nixpkgs": [ - "hyprland-plugins", - "hyprland", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1750779888, - "narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=", - "owner": "cachix", - "repo": "git-hooks.nix", - "rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "git-hooks.nix", - "type": "github" - } - }, "pre-commit-hooks-nix": { "inputs": { "flake-compat": [ "lanzaboote", "flake-compat" ], - "gitignore": "gitignore_2", + "gitignore": "gitignore", "nixpkgs": [ "lanzaboote", "nixpkgs" @@ -801,10 +378,9 @@ "root": { "inputs": { "home-manager": "home-manager", - "hyprland-plugins": "hyprland-plugins", "hyprshell": "hyprshell", "lanzaboote": "lanzaboote", - "nixpkgs": "nixpkgs_3", + "nixpkgs": "nixpkgs_2", "stylix": "stylix" } }, @@ -842,7 +418,7 @@ "nixpkgs" ], "nur": "nur", - "systems": "systems_2", + "systems": "systems", "tinted-foot": "tinted-foot", "tinted-kitty": "tinted-kitty", "tinted-schemes": "tinted-schemes", @@ -864,21 +440,6 @@ } }, "systems": { - "locked": { - "lastModified": 1689347949, - "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", - "owner": "nix-systems", - "repo": "default-linux", - "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default-linux", - "type": "github" - } - }, - "systems_2": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -973,53 +534,6 @@ "repo": "base16-zed", "type": "github" } - }, - "xdph": { - "inputs": { - "hyprland-protocols": [ - "hyprland-plugins", - "hyprland", - "hyprland-protocols" - ], - "hyprlang": [ - "hyprland-plugins", - "hyprland", - "hyprlang" - ], - "hyprutils": [ - "hyprland-plugins", - "hyprland", - "hyprutils" - ], - "hyprwayland-scanner": [ - "hyprland-plugins", - "hyprland", - "hyprwayland-scanner" - ], - "nixpkgs": [ - "hyprland-plugins", - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland-plugins", - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1751300244, - "narHash": "sha256-PFuv1TZVYvQhha0ac53E3YgdtmLShrN0t4T6xqHl0jE=", - "owner": "hyprwm", - "repo": "xdg-desktop-portal-hyprland", - "rev": "6115f3fdcb2c1a57b4a80a69f3c797e47607b90a", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "xdg-desktop-portal-hyprland", - "type": "github" - } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 03d8cba..78f5d55 100755 --- a/flake.nix +++ b/flake.nix @@ -23,10 +23,11 @@ inputs.nixpkgs.follows = "nixpkgs"; }; - hyprland-plugins = { - url = "github:hyprwm/hyprland-plugins"; - inputs.nixpkgs.follows = "nixpkgs"; - }; + + # hyprland-plugins = { + # url = "github:hyprwm/hyprland-plugins"; + # inputs.nixpkgs.follows = "hyprland"; + # }; # walker = { # url = "github:abenz1267/walker"; @@ -79,6 +80,7 @@ devShells.${system}.default = pkgs.mkShell { buildInputs = [ pkgs.neovim + # pkgs.legacyPackages.x86_64-linux.claude-code pkgs.vim ]; shellHook = '' @@ -101,6 +103,8 @@ environment.systemPackages = [ # For debugging and troubleshooting Secure Boot. pkgs.sbctl + # (inputs.nixpkgs.legacyPackages.${pkgs.system}.claude-code) + ]; # Lanzaboote currently replaces the systemd-boot module. diff --git a/home/btop.nix b/home/btop.nix index a26004e..89c843d 100644 --- a/home/btop.nix +++ b/home/btop.nix @@ -3,7 +3,8 @@ { programs.btop = { enable = true; - # color_theme = "tokyo-night"; - # theme_background = false; + # color_theme = "phoenix-night"; + color_theme = "HotPurpleTrafficLight"; + theme_background = false; }; } \ No newline at end of file diff --git a/home/default.nix b/home/default.nix index e8a8552..018ceda 100755 --- a/home/default.nix +++ b/home/default.nix @@ -28,7 +28,7 @@ # ./hyprpanel.nix ./hyprpanel2.nix ./wofi.nix - ./hyprpaper.nix + ./hyprpaper2.nix ./git.nix ./hyprland.nix ./zsh.nix diff --git a/home/home.nix b/home/home.nix index 174d036..455ac40 100755 --- a/home/home.nix +++ b/home/home.nix @@ -14,6 +14,7 @@ stylix = { enable = true; + polarity = "dark"; base16Scheme = "${pkgs.base16-schemes}/share/themes/tokyo-night-storm.yaml"; targets = { btop.enable = true; @@ -30,7 +31,23 @@ # Home Manager is pretty good at managing dotfiles. The primary way to manage # plain files is through 'home.file'. home.file = { - #".p10k.zsh".text = builtins.readFile ./.p10k.zsh; + # ".claude/settings.json".text = '' + # { + # "permissions": { + # "allow": [ + # "Bash(npm run lint)", + # "Bash(npm run test:*)", + # "Read(~/.zshrc)" + # ], + # "deny": [ + # "Bash(curl:*)", + # "Read(./.env*)", + # "Read(./.env.*)", + # "Read(./secrets/**)" + # ] + # }, + # } + # ''; # # Building this configuration will create a copy of 'dotfiles/screenrc' in # # the Nix store. Activating the configuration will then make '~/.screenrc' a diff --git a/home/hypridle.nix b/home/hypridle.nix index 76d6720..a785984 100644 --- a/home/hypridle.nix +++ b/home/hypridle.nix @@ -22,7 +22,7 @@ listener = [ { - timeout = 270; # 4.5 min — warn before lock + timeout = 10; # 4.5 min — warn before lock on-timeout = "notify-send '🔒 Locking in 30s...'"; # on-timeout = "notify-send 'hiii'"; } diff --git a/home/hyprland.nix b/home/hyprland.nix index feec2c0..0ee28a5 100644 --- a/home/hyprland.nix +++ b/home/hyprland.nix @@ -158,6 +158,8 @@ }; windowrulev2 = [ + # "size 1920 1440, class:^(cs2)$" + "opacity 0.85, class:^(Code)$" "opacity 0.75, class:^(kitty)$" ]; @@ -227,9 +229,11 @@ }; exec-once = [ + "noisetorch" + "hyprpaper" # "sleep 2 && waybar &" # "hypridle &" - "hyprpanel &" + # "hyprpanel &" "eval $(gnome-keyring-daemon --start --components=secrets,ssh,gpg)" # "hash dbus-update-activation-environment 2>/dev/null" # "dbus-update-activation-environment --all --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP" @@ -248,7 +252,9 @@ ]; plugins = [ + # legacyPackages.x86_64-linux.hyprlandPlugins.csgo-vulkan-fix # inputs.hyprland-plugins.packages.${pkgs.stdenv.hostPlatform.system}.hyprbars + # inputs.hyprland-plugins.packages.${pkgs.system}.csgo-vulkan-fix ]; }; }; diff --git a/home/hyprpaper.nix b/home/hyprpaper.nix index e992455..53cdd82 100644 --- a/home/hyprpaper.nix +++ b/home/hyprpaper.nix @@ -1,24 +1,32 @@ { pkgs, - # inputs, + config, ... }: { home.packages = [ pkgs.hyprpaper - ]; + ]; + # xdg.configFile."/hypr/hyprpaper/matsumoto.jpg".source = "${config.home.homeDirectory}/nixos-config/home/wallpapers"; + home.file."wallpapers" = { + source = ./wallpapers; + recursive = true; + }; + services.hyprpaper = { enable = true; settings = { ipc = "on"; splash = true; preload = [ - "/home/xbazzi/Pictures/wallpapers/cities/sanfran.jpg" "/home/xbazzi/Pictures/wallpapers/cities/dubai.jpg" + "${config.home.homeDirectory}/wallpapers/dubai.jpg" + "${config.home.homeDirectory}/wallpapers/newyork.jpg" ]; wallpaper = [ - ",/home/xbazzi/Pictures/wallpapers/cities/dubai.jpg" + ",${config.home.homeDirectory}/wallpapers/newyork.jpg" + ",${config.home.homeDirectory}/wallpapers/dubai.jpg" ]; }; }; diff --git a/home/hyprpaper2.nix b/home/hyprpaper2.nix new file mode 100644 index 0000000..a114e82 --- /dev/null +++ b/home/hyprpaper2.nix @@ -0,0 +1,98 @@ +{ + pkgs, + config, + ... +}: +let + wallpaperDir = "${config.home.homeDirectory}/wallpapers"; + # wallpaperScript = pkgs.writeShellScript "wallpaper-cycler" '' + # #!/bin/bash + + # # Array of wallpapers + # wallpapers=( + # "${wallpaperDir}/dubai.jpg" + # "${wallpaperDir}/amsterdam.jpg" + # "${wallpaperDir}/matsumoto.jpg" + # # Add more wallpapers here + # ) + + # # Get current wallpaper index from file (or default to 0) + # index_file="$HOME/.cache/wallpaper_index" + # if [ -f "$index_file" ]; then + # current_index=$(cat "$index_file") + # notify-send "uncle philly" + # else + # notify-send "mafangu" + # current_index=0 + # fi + + # # Get next wallpaper + # next_index=$(( (current_index + 1) % ''${#wallpapers[@]} )) + # next_wallpaper="''${wallpapers[$next_index]}" + + # # Set wallpaper using hyprctl + # ${pkgs.hyprland}/bin/hyprctl hyprpaper wallpaper ",$next_wallpaper" + + # # Save current index + # echo "$next_index" > "$index_file" + # ''; +in +{ + home.packages = [ + pkgs.hyprpaper + ]; + + home.file."wallpapers" = { + source = ./wallpapers; + recursive = true; + }; + + services.hyprpaper = { + enable = true; + settings = { + ipc = "on"; + splash = true; + preload = [ + "${wallpaperDir}/dubai.jpg" + "${wallpaperDir}/amsterdam.jpg" + "${wallpaperDir}/matsumoto.jpg" + # Add all your wallpapers here + ]; + wallpaper = [ + ",${wallpaperDir}/dubai.jpg" + ",${wallpaperDir}/amsterdam.jpg" + ",${wallpaperDir}/matsumoto.jpg" + ]; + }; + }; + + # Create systemd user service for wallpaper cycling + # systemd.user.services.wallpaper-cycler = { + # Unit = { + # Description = "Wallpaper cycler for hyprpaper"; + # After = [ "hyprpaper.service" ]; + # Wants = [ "hyprpaper.service" ]; + # }; + # Service = { + # Type = "oneshot"; + # ExecStart = "${wallpaperScript}"; + # Environment = [ "PATH=${pkgs.hyprland}/bin:$PATH" ]; + # }; + # }; + + # # Create systemd timer to run every 10 minutes + # systemd.user.timers.wallpaper-cycler = { + # Unit = { + # Description = "Timer for wallpaper cycling"; + # Requires = [ "wallpaper-cycler.service" ]; + # }; + # Timer = { + # OnBootSec = "1min"; + # OnUnitActiveSec = "1min"; + # Unit = "wallpaper-cycler.service"; + # }; + # Install = { + # WantedBy = [ "timers.target" ]; + # }; + # }; +} diff --git a/home/packages.nix b/home/packages.nix index fc1881b..cf2d454 100755 --- a/home/packages.nix +++ b/home/packages.nix @@ -2,6 +2,7 @@ { home.packages = with pkgs; [ + # legacyPackages.${pkgs.system}.claude-code kitty btop hello @@ -20,6 +21,7 @@ hyprlock hyprpanel wofi + hyprlandPlugins.csgo-vulkan-fix # Python python3Packages.gpustat diff --git a/home/variables.nix b/home/variables.nix index 0598ec9..ba15b9e 100755 --- a/home/variables.nix +++ b/home/variables.nix @@ -24,9 +24,53 @@ # /etc/profiles/per-user/nixxer/etc/profile.d/hm-session-vars.sh # home.sessionVariables = { + XDG_CACHE_HOME = "${config.home.homeDirectory}/.cache"; + XDG_CONFIG_HOME = "${config.home.homeDirectory}/.config"; + XDG_DATA_HOME = "${config.home.homeDirectory}/.local/share"; + XDG_STATE_HOME = "${config.home.homeDirectory}/.local/state"; EDITOR = "nvim"; # TERM = "xterm-kitty"; }; + xdg = { + enable = true; + configFile."user-dirs.conf" = { + text = '' + enabled=True + filename_encoding=UTF-8 + ''; + force = true; # This forces overwrite of existing content + }; + userDirs = { + enable = true; + createDirectories = true; + desktop = "${config.home.homeDirectory}/Desktop"; + documents = "${config.home.homeDirectory}/Documents"; + download = "${config.home.homeDirectory}/Downloads"; + music = "${config.home.homeDirectory}/Music"; + pictures = "${config.home.homeDirectory}/Pictures"; + publicShare = "${config.home.homeDirectory}/Public"; + templates = "${config.home.homeDirectory}/Templates"; + videos = "${config.home.homeDirectory}/Videos"; + }; + + # TODO: Move the http handler to a browser.nix + # # File/app associations + # mimeApps = { + # enable = true; + # defaultApplications = { + # "text/html" = "brave.desktop"; + # "x-scheme-handler/http" = "brave.desktop"; + # "x-scheme-handler/https" = "brave.desktop"; + # "x-scheme-handler/about" = "brave.desktop"; + # "x-scheme-handler/unknown" = "brave.desktop"; + # "application/pdf" = "org.gnome.Evince.desktop"; + # "text/plain" = "code.desktop"; + # "application/json" = "code.desktop"; + # "application/javascript" = "code.desktop"; + # "text/x-php" = "code.desktop"; + # }; + # }; + }; home.sessionPath = [ "$HOME/.local/bin" diff --git a/home/wallpapers/Lake.png b/home/wallpapers/Lake.png new file mode 100644 index 0000000..1e92af4 Binary files /dev/null and b/home/wallpapers/Lake.png differ diff --git a/home/wallpapers/amsterdam.jpg b/home/wallpapers/amsterdam.jpg new file mode 100644 index 0000000..4326c3f Binary files /dev/null and b/home/wallpapers/amsterdam.jpg differ diff --git a/home/wallpapers/brooklyn.jpeg b/home/wallpapers/brooklyn.jpeg new file mode 100644 index 0000000..a7f19fb Binary files /dev/null and b/home/wallpapers/brooklyn.jpeg differ diff --git a/home/wallpapers/dubai.jpg b/home/wallpapers/dubai.jpg new file mode 100644 index 0000000..986bf16 Binary files /dev/null and b/home/wallpapers/dubai.jpg differ diff --git a/home/wallpapers/empire_state.jpg b/home/wallpapers/empire_state.jpg new file mode 100644 index 0000000..8cdb22e Binary files /dev/null and b/home/wallpapers/empire_state.jpg differ diff --git a/home/wallpapers/matsumoto.jpg b/home/wallpapers/matsumoto.jpg new file mode 100644 index 0000000..fe78258 Binary files /dev/null and b/home/wallpapers/matsumoto.jpg differ diff --git a/home/wallpapers/newyork.jpg b/home/wallpapers/newyork.jpg new file mode 100644 index 0000000..1c82688 Binary files /dev/null and b/home/wallpapers/newyork.jpg differ diff --git a/home/wallpapers/sanfran.jpg b/home/wallpapers/sanfran.jpg new file mode 100644 index 0000000..8feec46 Binary files /dev/null and b/home/wallpapers/sanfran.jpg differ diff --git a/home/wallpapers/world_map_of_cpp_STL_algorithms.png b/home/wallpapers/world_map_of_cpp_STL_algorithms.png deleted file mode 100644 index 990ad20..0000000 Binary files a/home/wallpapers/world_map_of_cpp_STL_algorithms.png and /dev/null differ diff --git a/home/zsh.nix b/home/zsh.nix index f5b0cca..fbf5d46 100755 --- a/home/zsh.nix +++ b/home/zsh.nix @@ -12,11 +12,18 @@ enableCompletion = true; autosuggestion.enable = true; syntaxHighlighting.enable = true; - initExtra = '' + initContent = '' source ${pkgs.nix-index}/etc/profile.d/command-not-found.sh export TERM=xterm-kitty bindkey -e + function nvibrant() { + cd ~/repos/nVibrant + . .venv/bin/activate + command nvibrant $(printf "+%s " $(repeat 9 echo "$1")) + } + + function y() { local tmp="$(mktemp -t "yazi-cwd.XXXXXX")" cwd yazi "$@" --cwd-file="$tmp" @@ -39,7 +46,7 @@ } function reboot() { - echo "Nice try. Use `sudo /run/current-system/sw/bin/reboot` instead." + echo "Nice try. Use `reboot-foreal` instead." } function makerole() { diff --git a/system/configuration.nix b/system/configuration.nix index 35a919c..3a6313f 100755 --- a/system/configuration.nix +++ b/system/configuration.nix @@ -143,6 +143,7 @@ isNormalUser = true; description = "Xander Bazzi"; extraGroups = [ + "xbazzi" "video" "render" "docker" diff --git a/system/nfs.nix b/system/nfs.nix index 2126e78..9018401 100755 --- a/system/nfs.nix +++ b/system/nfs.nix @@ -31,18 +31,8 @@ "_netdev" "rw" "vers=4" - # On-demand mount (recommended): mounts when first accessed "x-systemd.automount" - # "noauto" # optional but fine with automount - - # Make sure network is really up before trying - # "x-systemd.after=network-online.target" - # "x-systemd.requires=network-online.target" - - # Quality-of-life - # "x-systemd.mount-timeout=30s" - # "x-systemd.idle-timeout=600" # unmount after 10min idle (automount only) ]; }; @@ -51,8 +41,11 @@ fsType = "nfs"; options = [ "noauto" + "_netdev" "rw" "vers=4" + # On-demand mount (recommended): mounts when first accessed + "x-systemd.automount" ]; }; } diff --git a/system/nvidia.nix b/system/nvidia.nix index 191d4a1..21f2f61 100755 --- a/system/nvidia.nix +++ b/system/nvidia.nix @@ -29,7 +29,7 @@ # https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus # Only available from driver 515.43.04+ # Currently alpha-quality/buggy, so false is currently the recommended setting. - open = false; + open = true; # Enable the Nvidia settings menu, # accessible via `nvidia-settings`. @@ -38,7 +38,7 @@ # Optionally, you may need to select the appropriate driver version for your specific GPU. package = config.boot.kernelPackages.nvidiaPackages.stable; }; - + boot.kernelParams = [ "nvidia_drm.modeset=1" ]; # Nvidia driver for X services.xserver.videoDrivers = [ "nvidia" ]; } diff --git a/system/packages.nix b/system/packages.nix index f30e07d..2091595 100755 --- a/system/packages.nix +++ b/system/packages.nix @@ -1,7 +1,11 @@ -{ config, pkgs, ... }: +{ config, lib, pkgs, system, inputs, ... }: { environment.systemPackages = with pkgs; [ + + + # (inputs.nixpkgs.legacyPackages.${pkgs.system}.claude-code) # modrinth-app + claude-code gnumake ansible niv @@ -22,6 +26,7 @@ discord cudaPackages_12.cudatoolkit python3 + python313Packages.pip gimp vlc xclip @@ -54,6 +59,7 @@ nixfmt unzip nettools + vibrantlinux # Hyprland Ecosystem hyprpaper @@ -64,6 +70,8 @@ enableXWayland = true; withSystemd = true; }) + gamescope + google-chrome # Qt # kdePackages.qt5compat @@ -71,6 +79,10 @@ # libsForQt5.qt5.qtdeclarative ]; + nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ + "claude-code" + ]; + programs.nix-ld.enable = true; programs.thunderbird.enable = true; # Install noisetorch. @@ -86,6 +98,8 @@ dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers }; + programs.gamemode.enable = true; + hardware.opengl.enable = true; # nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ # "steam" diff --git a/system/sddm.nix b/system/sddm.nix index fa5fefe..6d8b64e 100644 --- a/system/sddm.nix +++ b/system/sddm.nix @@ -21,19 +21,19 @@ in ''; }; - systemPackages = with pkgs; [ - papirus-icon-theme - (sddm-chili-theme.override { - themeConfig = { - background = "/etc/sddm-wallpaper.png"; - ScreenWidth = "3440"; - ScreenHeight = "1440"; - recursiveBlurLoops = 1; - recursiveBlurRadius = 10; - }; - }) - libsForQt5.qt5.qtgraphicaleffects - ]; + # systemPackages = with pkgs; [ + # papirus-icon-theme + # (sddm-chili-theme.override { + # themeConfig = { + # background = "/etc/sddm-wallpaper.png"; + # ScreenWidth = "3440"; + # ScreenHeight = "1440"; + # recursiveBlurLoops = 1; + # recursiveBlurRadius = 10; + # }; + # }) + # libsForQt5.qt5.qtgraphicaleffects + # ]; pathsToLink = [ "/share/icons" diff --git a/system/vscode.nix b/system/vscode.nix index e427f82..a49dc14 100755 --- a/system/vscode.nix +++ b/system/vscode.nix @@ -7,6 +7,9 @@ }: { + nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ + "claude-code" + ]; environment.systemPackages = with pkgs; [ (vscode-with-extensions.override { vscodeExtensions = @@ -30,19 +33,25 @@ zxh404.vscode-proto3 twxs.cmake tamasfe.even-better-toml - + # anthropic.claude-code # Use the nix-ide instead # arrterian.nix-env-selector # bbenoist.nix jnoortheen.nix-ide - # Doesn't work lmao. Use bbnoist's + # Neither works # TheQtCompany.qt-qml # bbenoist.qml mkhl.direnv ] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ + { + name = "claude-code"; + publisher = "anthropic"; + version = "1.0.80"; + sha256 = "WNm29AUas6ZmMC2odIs1wBNknG3DL1T2jXQChpvqTLA="; + } # { # name = "QML"; # keep exact Marketplace name # publisher = "bbenoist";