DEVELOPMENT ENVIRONMENT

~liljamo/nix-arta

2981d82fbe9e9d47cee442f429e94d17f425d7f6 — Jonni Liljamo 21 days ago 8bfdaab
feat: hy3
4 files changed, 321 insertions(+), 54 deletions(-)

M flake.lock
M flake.nix
M hosts/alice/hyprland.nix
M roles/hyprland.nix
M flake.lock => flake.lock +295 -37
@@ 145,7 145,7 @@
    },
    "flake-utils": {
      "inputs": {
        "systems": "systems"
        "systems": "systems_2"
      },
      "locked": {
        "lastModified": 1726560853,


@@ 163,7 163,7 @@
    },
    "flake-utils_2": {
      "inputs": {
        "systems": "systems_2"
        "systems": "systems_3"
      },
      "locked": {
        "lastModified": 1710146030,


@@ 181,7 181,7 @@
    },
    "flake-utils_3": {
      "inputs": {
        "systems": "systems_3"
        "systems": "systems_4"
      },
      "locked": {
        "lastModified": 1726560853,


@@ 209,11 209,11 @@
        ]
      },
      "locked": {
        "lastModified": 1728092656,
        "narHash": "sha256-eMeCTJZ5xBeQ0f9Os7K8DThNVSo9gy4umZLDfF5q6OM=",
        "lastModified": 1730302582,
        "narHash": "sha256-W1MIJpADXQCgosJZT8qBYLRuZls2KSiKdpnTVdKBuvU=",
        "owner": "cachix",
        "repo": "git-hooks.nix",
        "rev": "1211305a5b237771e13fcca0c51e60ad47326a9a",
        "rev": "af8a16fe5c264f5e9e18bcee2859b40a656876cf",
        "type": "github"
      },
      "original": {


@@ 364,13 364,206 @@
        "type": "github"
      }
    },
    "hy3": {
      "inputs": {
        "hyprland": "hyprland"
      },
      "locked": {
        "lastModified": 1719341859,
        "narHash": "sha256-aZuNKBwTwj8EXkDBMWNdRKbHPx647wJLWm55h6jOKbo=",
        "owner": "outfoxxed",
        "repo": "hy3",
        "rev": "d200873687ea1f10958adb6c08cfcfa44b13267f",
        "type": "github"
      },
      "original": {
        "owner": "outfoxxed",
        "ref": "hl0.41.2",
        "repo": "hy3",
        "type": "github"
      }
    },
    "hyprcursor": {
      "inputs": {
        "hyprlang": [
          "hy3",
          "hyprland",
          "hyprlang"
        ],
        "nixpkgs": [
          "hy3",
          "hyprland",
          "nixpkgs"
        ],
        "systems": [
          "hy3",
          "hyprland",
          "systems"
        ]
      },
      "locked": {
        "lastModified": 1718450675,
        "narHash": "sha256-jpsns6buS4bK+1sF8sL8AaixAiCRjA+nldTKvcwmvUs=",
        "owner": "hyprwm",
        "repo": "hyprcursor",
        "rev": "66d5b46ff94efbfa6fa3d1d1b66735f1779c34a6",
        "type": "github"
      },
      "original": {
        "owner": "hyprwm",
        "repo": "hyprcursor",
        "type": "github"
      }
    },
    "hyprland": {
      "inputs": {
        "hyprcursor": "hyprcursor",
        "hyprlang": "hyprlang",
        "hyprutils": "hyprutils",
        "hyprwayland-scanner": "hyprwayland-scanner",
        "nixpkgs": "nixpkgs",
        "systems": "systems",
        "xdph": "xdph"
      },
      "locked": {
        "lastModified": 1719317162,
        "narHash": "sha256-JmfnYz+9a4TjNl3mAus1VpoWtTI9d1xkW9MHbkcV0Po=",
        "ref": "refs/heads/main",
        "rev": "918d8340afd652b011b937d29d5eea0be08467f5",
        "revCount": 4886,
        "submodules": true,
        "type": "git",
        "url": "https://github.com/hyprwm/Hyprland"
      },
      "original": {
        "rev": "918d8340afd652b011b937d29d5eea0be08467f5",
        "submodules": true,
        "type": "git",
        "url": "https://github.com/hyprwm/Hyprland"
      }
    },
    "hyprland-protocols": {
      "inputs": {
        "nixpkgs": [
          "hy3",
          "hyprland",
          "xdph",
          "nixpkgs"
        ],
        "systems": [
          "hy3",
          "hyprland",
          "xdph",
          "systems"
        ]
      },
      "locked": {
        "lastModified": 1714869498,
        "narHash": "sha256-vbLVOWvQqo4n1yvkg/Q70VTlPbMmTiCQfNTgcWDCfJM=",
        "owner": "hyprwm",
        "repo": "hyprland-protocols",
        "rev": "e06482e0e611130cd1929f75e8c1cf679e57d161",
        "type": "github"
      },
      "original": {
        "owner": "hyprwm",
        "repo": "hyprland-protocols",
        "type": "github"
      }
    },
    "hyprlang": {
      "inputs": {
        "hyprutils": [
          "hy3",
          "hyprland",
          "hyprutils"
        ],
        "nixpkgs": [
          "hy3",
          "hyprland",
          "nixpkgs"
        ],
        "systems": [
          "hy3",
          "hyprland",
          "systems"
        ]
      },
      "locked": {
        "lastModified": 1717881852,
        "narHash": "sha256-XeeVoKHQgfKuXoP6q90sUqKyl7EYy3ol2dVZGM+Jj94=",
        "owner": "hyprwm",
        "repo": "hyprlang",
        "rev": "ec6938c66253429192274d612912649a0cfe4d28",
        "type": "github"
      },
      "original": {
        "owner": "hyprwm",
        "repo": "hyprlang",
        "type": "github"
      }
    },
    "hyprutils": {
      "inputs": {
        "nixpkgs": [
          "hy3",
          "hyprland",
          "nixpkgs"
        ],
        "systems": [
          "hy3",
          "hyprland",
          "systems"
        ]
      },
      "locked": {
        "lastModified": 1719316102,
        "narHash": "sha256-dmRz128j/lJmMuTYeCYPfSBRHHQO3VeH4PbmoyAhHzw=",
        "owner": "hyprwm",
        "repo": "hyprutils",
        "rev": "1f6bbec5954f623ff8d68e567bddcce97cd2f085",
        "type": "github"
      },
      "original": {
        "owner": "hyprwm",
        "repo": "hyprutils",
        "type": "github"
      }
    },
    "hyprwayland-scanner": {
      "inputs": {
        "nixpkgs": [
          "hy3",
          "hyprland",
          "nixpkgs"
        ],
        "systems": [
          "hy3",
          "hyprland",
          "systems"
        ]
      },
      "locked": {
        "lastModified": 1719067853,
        "narHash": "sha256-mAnZG/eQy72Fp1ImGtqCgUrDumnR1rMZv2E/zgP4U74=",
        "owner": "hyprwm",
        "repo": "hyprwayland-scanner",
        "rev": "914f083741e694092ee60a39d31f693d0a6dc734",
        "type": "github"
      },
      "original": {
        "owner": "hyprwm",
        "repo": "hyprwayland-scanner",
        "type": "github"
      }
    },
    "impermanence": {
      "locked": {
        "lastModified": 1727649413,
        "narHash": "sha256-FA53of86DjFdeQzRDVtvgWF9o52rWK70VHGx0Y8fElQ=",
        "lastModified": 1729068498,
        "narHash": "sha256-C2sGRJl1EmBq0nO98TNd4cbUy20ABSgnHWXLIJQWRFA=",
        "owner": "nix-community",
        "repo": "impermanence",
        "rev": "d0b38e550039a72aff896ee65b0918e975e6d48e",
        "rev": "e337457502571b23e449bf42153d7faa10c0a562",
        "type": "github"
      },
      "original": {


@@ 403,11 596,11 @@
    },
    "nixlib": {
      "locked": {
        "lastModified": 1728176478,
        "narHash": "sha256-px3Q0W//c+mZ4kPMXq4poztsjtXM1Ja1rN+825YMDUQ=",
        "lastModified": 1729386149,
        "narHash": "sha256-hUP9oxmnOmNnKcDOf5Y55HQ+NnoT0+bLWHLQWLLw9Ks=",
        "owner": "nix-community",
        "repo": "nixpkgs.lib",
        "rev": "b61309c3c1b6013d36299bc8285612865b3b9e4c",
        "rev": "cce4521b6df014e79a7b7afc58c703ed683c916e",
        "type": "github"
      },
      "original": {


@@ 424,11 617,11 @@
        ]
      },
      "locked": {
        "lastModified": 1728522165,
        "narHash": "sha256-UQpsJ0Ev6JBGsCYRlS2oOVvb+eWcDD0xTV3RVlqbeVU=",
        "lastModified": 1729472750,
        "narHash": "sha256-s93LPHi5BN7I2xSGNAFWiYb8WRsPvT1LE9ZjZBrpFlg=",
        "owner": "nix-community",
        "repo": "nixos-generators",
        "rev": "40c8d30c490414910fc63626ad1b67af7db40cd3",
        "rev": "7c60ba4bc8d6aa2ba3e5b0f6ceb9fc07bc261565",
        "type": "github"
      },
      "original": {


@@ 439,11 632,11 @@
    },
    "nixos-hardware": {
      "locked": {
        "lastModified": 1728269138,
        "narHash": "sha256-oKxDImsOvgUZMY4NwXVyUc/c1HiU2qInX+b5BU0yXls=",
        "lastModified": 1730161780,
        "narHash": "sha256-z5ILcmwMtiCoHTXS1KsQWqigO7HJO8sbyK7f7wn9F/E=",
        "owner": "nixos",
        "repo": "nixos-hardware",
        "rev": "ecfcd787f373f43307d764762e139a7cdeb9c22b",
        "rev": "07d15e8990d5d86a631641b4c429bc0a7400cfb8",
        "type": "github"
      },
      "original": {


@@ 454,16 647,16 @@
    },
    "nixpkgs": {
      "locked": {
        "lastModified": 1728500571,
        "narHash": "sha256-dOymOQ3AfNI4Z337yEwHGohrVQb4yPODCW9MDUyAc4w=",
        "owner": "nixos",
        "lastModified": 1719075281,
        "narHash": "sha256-CyyxvOwFf12I91PBWz43iGT1kjsf5oi6ax7CrvaMyAo=",
        "owner": "NixOS",
        "repo": "nixpkgs",
        "rev": "d51c28603def282a24fa034bcb007e2bcb5b5dd0",
        "rev": "a71e967ef3694799d0c418c98332f7ff4cc5f6af",
        "type": "github"
      },
      "original": {
        "owner": "nixos",
        "ref": "nixos-24.05",
        "owner": "NixOS",
        "ref": "nixos-unstable",
        "repo": "nixpkgs",
        "type": "github"
      }


@@ 498,11 691,11 @@
    },
    "nixpkgs-unstable": {
      "locked": {
        "lastModified": 1728492678,
        "narHash": "sha256-9UTxR8eukdg+XZeHgxW5hQA9fIKHsKCdOIUycTryeVw=",
        "lastModified": 1729880355,
        "narHash": "sha256-RP+OQ6koQQLX5nw0NmcDrzvGL8HDLnyXt/jHhL1jwjM=",
        "owner": "nixos",
        "repo": "nixpkgs",
        "rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7",
        "rev": "18536bf04cd71abd345f9579158841376fdd0c5a",
        "type": "github"
      },
      "original": {


@@ 514,6 707,22 @@
    },
    "nixpkgs_2": {
      "locked": {
        "lastModified": 1730137625,
        "narHash": "sha256-9z8oOgFZiaguj+bbi3k4QhAD6JabWrnv7fscC/mt0KE=",
        "owner": "nixos",
        "repo": "nixpkgs",
        "rev": "64b80bfb316b57cdb8919a9110ef63393d74382a",
        "type": "github"
      },
      "original": {
        "owner": "nixos",
        "ref": "nixos-24.05",
        "repo": "nixpkgs",
        "type": "github"
      }
    },
    "nixpkgs_3": {
      "locked": {
        "lastModified": 1713254108,
        "narHash": "sha256-0TZIsfDbHG5zibtlw6x0yOp3jkInIGaJ35B7Y4G8Pec=",
        "owner": "nixos",


@@ 635,10 844,11 @@
        "flake-parts": "flake-parts",
        "git-hooks": "git-hooks",
        "home-manager": "home-manager",
        "hy3": "hy3",
        "impermanence": "impermanence",
        "nixos-generators": "nixos-generators",
        "nixos-hardware": "nixos-hardware",
        "nixpkgs": "nixpkgs",
        "nixpkgs": "nixpkgs_2",
        "nixpkgs-unstable": "nixpkgs-unstable",
        "nvim-flake": "nvim-flake",
        "sops-nix": "sops-nix",


@@ 677,11 887,11 @@
        ]
      },
      "locked": {
        "lastModified": 1728345710,
        "narHash": "sha256-lpunY1+bf90ts+sA2/FgxVNIegPDKCpEoWwOPu4ITTQ=",
        "lastModified": 1729999681,
        "narHash": "sha256-qm0uCtM9bg97LeJTKQ8dqV/FvqRN+ompyW4GIJruLuw=",
        "owner": "Mic92",
        "repo": "sops-nix",
        "rev": "06535d0e3d0201e6a8080dd32dbfde339b94f01b",
        "rev": "1666d16426abe79af5c47b7c0efa82fd31bf4c56",
        "type": "github"
      },
      "original": {


@@ 692,6 902,21 @@
    },
    "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=",
        "owner": "nix-systems",


@@ 705,7 930,7 @@
        "type": "github"
      }
    },
    "systems_2": {
    "systems_3": {
      "locked": {
        "lastModified": 1681028828,
        "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",


@@ 720,7 945,7 @@
        "type": "github"
      }
    },
    "systems_3": {
    "systems_4": {
      "locked": {
        "lastModified": 1681028828,
        "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",


@@ 738,7 963,7 @@
    "tamma": {
      "inputs": {
        "flake-utils": "flake-utils_2",
        "nixpkgs": "nixpkgs_2",
        "nixpkgs": "nixpkgs_3",
        "pre-commit-hooks": "pre-commit-hooks"
      },
      "locked": {


@@ 778,6 1003,39 @@
        "type": "github"
      }
    },
    "xdph": {
      "inputs": {
        "hyprland-protocols": "hyprland-protocols",
        "hyprlang": [
          "hy3",
          "hyprland",
          "hyprlang"
        ],
        "nixpkgs": [
          "hy3",
          "hyprland",
          "nixpkgs"
        ],
        "systems": [
          "hy3",
          "hyprland",
          "systems"
        ]
      },
      "locked": {
        "lastModified": 1718619174,
        "narHash": "sha256-FWW68AVYmB91ZDQnhLMBNCUUTCjb1ZpO2k2KIytHtkA=",
        "owner": "hyprwm",
        "repo": "xdg-desktop-portal-hyprland",
        "rev": "c7894aa54f9a7dbd16df5cd24d420c8af22d5623",
        "type": "github"
      },
      "original": {
        "owner": "hyprwm",
        "repo": "xdg-desktop-portal-hyprland",
        "type": "github"
      }
    },
    "zjstatus": {
      "inputs": {
        "crane": "crane",


@@ 788,11 1046,11 @@
        "rust-overlay": "rust-overlay"
      },
      "locked": {
        "lastModified": 1728141581,
        "narHash": "sha256-+wg0Avbw/MC2x3CQK4LyJHCPf+oPllJZzU2p+S/B7MU=",
        "lastModified": 1729787428,
        "narHash": "sha256-kGSM7b4+X5LObd6AdgQZABU241ZzHGm24xaiy33kwBI=",
        "owner": "dj95",
        "repo": "zjstatus",
        "rev": "6d13e481aceacd3efe583fb6c442f30e8909f555",
        "rev": "c74e310c35fb7ec6b59a1c73720db4d6d8e236a1",
        "type": "github"
      },
      "original": {

M flake.nix => flake.nix +3 -0
@@ 40,6 40,9 @@
      inputs.nixpkgs.follows = "nixpkgs-unstable";
    };

    # This has to match what is currently in NixOS stable.
    hy3.url = "github:outfoxxed/hy3?ref=hl0.41.2";

    # Own flakes
    tamma.url = "git+https://git.src.quest/~liljamo/tamma?ref=refs/tags/0.1.2";
    nvim-flake = {

M hosts/alice/hyprland.nix => hosts/alice/hyprland.nix +1 -0
@@ 8,6 8,7 @@
      ];

      general = {
        layout = "hy3";
        border_size = 1;
        gaps_in = 6;
        gaps_out = 12;

M roles/hyprland.nix => roles/hyprland.nix +22 -17
@@ 1,5 1,6 @@
{
  config,
  inputs,
  lib,
  pkgs,
  ...


@@ 24,6 25,7 @@ in {
    hm = {
      wayland.windowManager.hyprland = {
        enable = true;
        plugins = [inputs.hy3.packages.${pkgs.stdenv.hostPlatform.system}.hy3];
        # NOTE: These are just the default settings.
        settings = {
          exec-once = [


@@ 60,14 62,17 @@ in {
            "$mod, Tab, cyclenext,"
            "$mod, Tab, bringactivetotop,"

            "$mod, h, movefocus, l"
            "$mod, j, movefocus, d"
            "$mod, k, movefocus, u"
            "$mod, l, movefocus, r"
            "$mod SHIFT, h, movewindow, l"
            "$mod SHIFT, j, movewindow, d"
            "$mod SHIFT, k, movewindow, u"
            "$mod SHIFT, l, movewindow, r"
            "$mod, v, hy3:makegroup, v, ephemeral"
            "$mod, b, hy3:makegroup, h, ephemeral"

            "$mod, h, hy3:movefocus, l"
            "$mod, j, hy3:movefocus, d"
            "$mod, k, hy3:movefocus, u"
            "$mod, l, hy3:movefocus, r"
            "$mod SHIFT, h, hy3:movewindow, l"
            "$mod SHIFT, j, hy3:movewindow, d"
            "$mod SHIFT, k, hy3:movewindow, u"
            "$mod SHIFT, l, hy3:movewindow, r"

            "$mod, 1, workspace, 1"
            "$mod, 2, workspace, 2"


@@ 78,15 83,15 @@ in {
            "$mod, 7, workspace, 7"
            "$mod, 8, workspace, 8"
            "$mod, 9, workspace, 9"
            "$mod SHIFT, 1, movetoworkspace, 1"
            "$mod SHIFT, 2, movetoworkspace, 2"
            "$mod SHIFT, 3, movetoworkspace, 3"
            "$mod SHIFT, 4, movetoworkspace, 4"
            "$mod SHIFT, 5, movetoworkspace, 5"
            "$mod SHIFT, 6, movetoworkspace, 6"
            "$mod SHIFT, 7, movetoworkspace, 7"
            "$mod SHIFT, 8, movetoworkspace, 8"
            "$mod SHIFT, 9, movetoworkspace, 9"
            "$mod SHIFT, 1, hy3:movetoworkspace, 1"
            "$mod SHIFT, 2, hy3:movetoworkspace, 2"
            "$mod SHIFT, 3, hy3:movetoworkspace, 3"
            "$mod SHIFT, 4, hy3:movetoworkspace, 4"
            "$mod SHIFT, 5, hy3:movetoworkspace, 5"
            "$mod SHIFT, 6, hy3:movetoworkspace, 6"
            "$mod SHIFT, 7, hy3:movetoworkspace, 7"
            "$mod SHIFT, 8, hy3:movetoworkspace, 8"
            "$mod SHIFT, 9, hy3:movetoworkspace, 9"
          ];
          binde = [
            "$mod CTRL, h, resizeactive, -10 0"