Compare commits
5 Commits
25ea289fcd
...
c26b837282
Author | SHA1 | Date |
---|---|---|
|
c26b837282 | |
|
8cc5e78e22 | |
|
a63893b566 | |
|
9b2b73e865 | |
|
4ecf1e471f |
235
flake.lock
235
flake.lock
|
@ -8,11 +8,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733743004,
|
"lastModified": 1738087375,
|
||||||
"narHash": "sha256-ZgnLrPOLrDTpGpvdMpX9cPPn7GrisnKhEw/x8M6Vf4Y=",
|
"narHash": "sha256-GLyNtU9A2VN22jNRHZ2OXuFfTJLh8uEVVt+ftsKUX0c=",
|
||||||
"owner": "Aylur",
|
"owner": "Aylur",
|
||||||
"repo": "ags",
|
"repo": "ags",
|
||||||
"rev": "ce27d3036f7fbebc3476ccbb5a1c51f0603c2475",
|
"rev": "a6a7a0adb17740f4c34a59902701870d46fbb6a4",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -41,11 +41,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731959031,
|
"lastModified": 1742213273,
|
||||||
"narHash": "sha256-TGcvIjftziC1CjuiHCzrYDwmOoSFYIhdiKmLetzB5L0=",
|
"narHash": "sha256-0l0vDb4anfsBu1rOs94bC73Hub+xEivgBAo6QXl2MmU=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "aquamarine",
|
"repo": "aquamarine",
|
||||||
"rev": "4468981c1c50999f315baa1508f0e53c4ee70c52",
|
"rev": "484b732195cc53f4536ce4bd59a5c6402b1e7ccf",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -62,11 +62,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733520119,
|
"lastModified": 1737670815,
|
||||||
"narHash": "sha256-6K07ZJTnFu1xASBCMtVc9cFTbBEauwSc7gGBmjLkLSk=",
|
"narHash": "sha256-ZCxxshGN7XooabArcoGkYSNx5yVunqjKJi2aTv6cznI=",
|
||||||
"owner": "aylur",
|
"owner": "aylur",
|
||||||
"repo": "astal",
|
"repo": "astal",
|
||||||
"rev": "4c19d8d06fa25cc6389f37abe8839b4d8be5c0d6",
|
"rev": "127e9cdcbf173846a3c40ddc0abfbb038df48042",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -129,6 +129,24 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"grayjay": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1743203987,
|
||||||
|
"narHash": "sha256-fA1qhxuaZsQODGXr+gQETYI0ow6ak8Vp1VSKv/+jsPs=",
|
||||||
|
"owner": "rishabh5321",
|
||||||
|
"repo": "grayjay-flake",
|
||||||
|
"rev": "eb64a22457766aeff5935ed72f91249e387520d3",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "rishabh5321",
|
||||||
|
"repo": "grayjay-flake",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
@ -136,11 +154,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733873195,
|
"lastModified": 1743136572,
|
||||||
"narHash": "sha256-dTosiZ3sZ/NKoLKQ++v8nZdEHya0eTNEsaizNp+MUPM=",
|
"narHash": "sha256-uwaVrKgi6g1TUq56247j6QvvFtYHloCkjCrEpGBvV54=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "f26aa4b76fb7606127032d33ac73d7d507d82758",
|
"rev": "1efd2503172016a6742c87b47b43ca2c8145607d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -166,11 +184,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1728669738,
|
"lastModified": 1742215578,
|
||||||
"narHash": "sha256-EDNAU9AYcx8OupUzbTbWE1d3HYdeG0wO6Msg3iL1muk=",
|
"narHash": "sha256-zfs71PXVVPEe56WEyNi2TJQPs0wabU4WAlq0XV7GcdE=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprcursor",
|
"repo": "hyprcursor",
|
||||||
"rev": "0264e698149fcb857a66a53018157b41f8d97bb0",
|
"rev": "2fd36421c21aa87e2fe3bee11067540ae612f719",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -195,11 +213,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733248371,
|
"lastModified": 1739049071,
|
||||||
"narHash": "sha256-FFLJzFTyNhS7tBEEECx0B8Ye/bpmxhFVEKlECgMLc6c=",
|
"narHash": "sha256-3+7TpXMrbsUXSwgr5VAKAnmkzMb6JO+Rvc9XRb5NMg4=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprgraphics",
|
"repo": "hyprgraphics",
|
||||||
"rev": "cc95e5babc6065bc3ab4cd195429a9900836ef13",
|
"rev": "175c6b29b6ff82100539e7c4363a35a02c74dd73",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -218,17 +236,17 @@
|
||||||
"hyprlang": "hyprlang",
|
"hyprlang": "hyprlang",
|
||||||
"hyprutils": "hyprutils",
|
"hyprutils": "hyprutils",
|
||||||
"hyprwayland-scanner": "hyprwayland-scanner",
|
"hyprwayland-scanner": "hyprwayland-scanner",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs_2",
|
||||||
"pre-commit-hooks": "pre-commit-hooks",
|
"pre-commit-hooks": "pre-commit-hooks",
|
||||||
"systems": "systems",
|
"systems": "systems",
|
||||||
"xdph": "xdph"
|
"xdph": "xdph"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733864105,
|
"lastModified": 1743207575,
|
||||||
"narHash": "sha256-WjyOigIoneQijFAHxpu2xHCRdl4PcVctx0c1miPBBIA=",
|
"narHash": "sha256-bNz2WfcZAF6hZkcEcRYFsoh49wNAamphS+NOhSrf5A0=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprland",
|
"repo": "hyprland",
|
||||||
"rev": "4d05677e8d398b6fa144eae7a98ad4f2a54acb92",
|
"rev": "7374a023eff964817c9e5fbe75a661540516f798",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -249,11 +267,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1728345020,
|
"lastModified": 1738422629,
|
||||||
"narHash": "sha256-xGbkc7U/Roe0/Cv3iKlzijIaFBNguasI31ynL2IlEoM=",
|
"narHash": "sha256-5v+bv75wJWvahyM2xcMTSNNxmV8a7hb01Eey5zYnBJw=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprland-protocols",
|
"repo": "hyprland-protocols",
|
||||||
"rev": "a7c183800e74f337753de186522b9017a07a8cee",
|
"rev": "755aef8dab49d0fc4663c715fa4ad221b2aedaed",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -262,10 +280,49 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"hyprland-qt-support": {
|
||||||
|
"inputs": {
|
||||||
|
"hyprlang": [
|
||||||
|
"hyprland",
|
||||||
|
"hyprland-qtutils",
|
||||||
|
"hyprlang"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"hyprland",
|
||||||
|
"hyprland-qtutils",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": [
|
||||||
|
"hyprland",
|
||||||
|
"hyprland-qtutils",
|
||||||
|
"systems"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1737634706,
|
||||||
|
"narHash": "sha256-nGCibkfsXz7ARx5R+SnisRtMq21IQIhazp6viBU8I/A=",
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprland-qt-support",
|
||||||
|
"rev": "8810df502cdee755993cb803eba7b23f189db795",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprland-qt-support",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"hyprland-qtutils": {
|
"hyprland-qtutils": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"hyprland-qt-support": "hyprland-qt-support",
|
||||||
|
"hyprlang": [
|
||||||
|
"hyprland",
|
||||||
|
"hyprlang"
|
||||||
|
],
|
||||||
"hyprutils": [
|
"hyprutils": [
|
||||||
"hyprland",
|
"hyprland",
|
||||||
|
"hyprland-qtutils",
|
||||||
|
"hyprlang",
|
||||||
"hyprutils"
|
"hyprutils"
|
||||||
],
|
],
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
@ -278,11 +335,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733472316,
|
"lastModified": 1739048983,
|
||||||
"narHash": "sha256-PvXiFLIExJEJj+goLbIuXLTN5CSDSAUsAfiYSdbbWg0=",
|
"narHash": "sha256-REhTcXq4qs3B3cCDtLlYDz0GZvmsBSh947Ub6pQWGTQ=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprland-qtutils",
|
"repo": "hyprland-qtutils",
|
||||||
"rev": "969427419276c7ee170301ef1ebe0f68eb6eb2e2",
|
"rev": "3504a293c8f8db4127cb0f7cfc1a318ffb4316f8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -307,11 +364,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1728168612,
|
"lastModified": 1741191527,
|
||||||
"narHash": "sha256-AnB1KfiXINmuiW7BALYrKqcjCnsLZPifhb/7BsfPbns=",
|
"narHash": "sha256-kM+11Nch47Xwfgtw2EpRitJuORy4miwoMuRi5tyMBDY=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprlang",
|
"repo": "hyprlang",
|
||||||
"rev": "f054f2e44d6a0b74607a6bc0f52dba337a3db38e",
|
"rev": "72df3861f1197e41b078faa3e38eedd60e00018d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -332,11 +389,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1732288281,
|
"lastModified": 1741534688,
|
||||||
"narHash": "sha256-XTU9B53IjGeJiJ7LstOhuxcRjCOFkQFl01H78sT9Lg4=",
|
"narHash": "sha256-EV3945SnjOCuRVbGRghsWx/9D89FyshnSO1Q6/TuQ14=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprutils",
|
"repo": "hyprutils",
|
||||||
"rev": "b26f33cc1c8a7fd5076e19e2cce3f062dca6351c",
|
"rev": "dd1f720cbc2dbb3c71167c9598045dd3261d27b3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -357,11 +414,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1726874836,
|
"lastModified": 1739870480,
|
||||||
"narHash": "sha256-VKR0sf0PSNCB0wPHVKSAn41mCNVCnegWmgkrneKDhHM=",
|
"narHash": "sha256-SiDN5BGxa/1hAsqhgJsS03C3t2QrLgBT8u+ENJ0Qzwc=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprwayland-scanner",
|
"repo": "hyprwayland-scanner",
|
||||||
"rev": "500c81a9e1a76760371049a8d99e008ea77aa59e",
|
"rev": "206367a08dc5ac4ba7ad31bdca391d098082e64b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -376,15 +433,15 @@
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"nixpkgs-stable": "nixpkgs-stable_2",
|
"nixpkgs-stable": "nixpkgs-stable",
|
||||||
"rust-overlay": "rust-overlay"
|
"rust-overlay": "rust-overlay"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733708804,
|
"lastModified": 1743246566,
|
||||||
"narHash": "sha256-PiUrztTiR4aVRC2fMdNcOWYWF1ojvqbrSUYmhtp3970=",
|
"narHash": "sha256-arEFUDLjADYIZ7T6PZX1yLOnfMoZ1ByebtmPuvV98+s=",
|
||||||
"owner": "lilyinstarlight",
|
"owner": "lilyinstarlight",
|
||||||
"repo": "nixos-cosmic",
|
"repo": "nixos-cosmic",
|
||||||
"rev": "1531210f371ecf966ff67e87975f684553bdbbf7",
|
"rev": "c709db4b95e58f410978bb49c87cb74214d03e78",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -395,11 +452,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733392399,
|
"lastModified": 1743095683,
|
||||||
"narHash": "sha256-kEsTJTUQfQFIJOcLYFt/RvNxIK653ZkTBIs4DG+cBns=",
|
"narHash": "sha256-gWd4urRoLRe8GLVC/3rYRae1h+xfQzt09xOfb0PaHSk=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "d0797a04b81caeae77bcff10a9dde78bc17f5661",
|
"rev": "5e5402ecbcb27af32284d4a62553c019a3a49ea6",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -411,27 +468,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-stable": {
|
"nixpkgs-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730741070,
|
"lastModified": 1742937945,
|
||||||
"narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=",
|
"narHash": "sha256-lWc+79eZRyvHp/SqMhHTMzZVhpxkRvthsP1Qx6UCq0E=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "d063c1dd113c91ab27959ba540c0d9753409edf3",
|
"rev": "d02d88f8de5b882ccdde0465d8fa2db3aa1169f7",
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixos-24.05",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs-stable_2": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1733412085,
|
|
||||||
"narHash": "sha256-FillH0qdWDt/nlO6ED7h4cmN+G9uXwGjwmCnHs0QVYM=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "4dc2fc4e62dbf62b84132fe526356fbac7b03541",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -443,11 +484,27 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733759999,
|
"lastModified": 1742669843,
|
||||||
"narHash": "sha256-463SNPWmz46iLzJKRzO3Q2b0Aurff3U1n0nYItxq7jU=",
|
"narHash": "sha256-G5n+FOXLXcRx+3hCJ6Rt6ZQyF1zqQ0DL0sWAMn2Nk0w=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "1e5b653dff12029333a6546c11e108ede13052eb",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1743095683,
|
||||||
|
"narHash": "sha256-gWd4urRoLRe8GLVC/3rYRae1h+xfQzt09xOfb0PaHSk=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "a73246e2eef4c6ed172979932bc80e1404ba2d56",
|
"rev": "5e5402ecbcb27af32284d4a62553c019a3a49ea6",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -457,13 +514,13 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
"nixpkgs_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1735471104,
|
"lastModified": 1742288794,
|
||||||
"narHash": "sha256-0q9NGQySwDQc7RhAV2ukfnu7Gxa5/ybJ2ANT8DQrQrs=",
|
"narHash": "sha256-Txwa5uO+qpQXrNG4eumPSD+hHzzYi/CdaM80M9XRLCo=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "88195a94f390381c6afcdaa933c2f6ff93959cb4",
|
"rev": "b6eaf97c6960d97350c584de1b6dcff03c9daf42",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -492,11 +549,11 @@
|
||||||
"plugin-rainbow-delimiters-nvim": {
|
"plugin-rainbow-delimiters-nvim": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733870816,
|
"lastModified": 1742829650,
|
||||||
"narHash": "sha256-40NE1+BFG6OPcHKGejfltuTANB/GTIPn1BfvAB55t9Q=",
|
"narHash": "sha256-sQAVw+9bKmJzX/MHA/vcmvzL+Q5kyWpDfPJ97efxQxE=",
|
||||||
"owner": "HiPhish",
|
"owner": "HiPhish",
|
||||||
"repo": "rainbow-delimiters.nvim",
|
"repo": "rainbow-delimiters.nvim",
|
||||||
"rev": "dc788723f717bdd3041838b8db34cce53c9aa920",
|
"rev": "de39919a57e1a40a4c7dc5bae0de276f9c616ef3",
|
||||||
"type": "gitlab"
|
"type": "gitlab"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -528,15 +585,14 @@
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"hyprland",
|
"hyprland",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
]
|
||||||
"nixpkgs-stable": "nixpkgs-stable"
|
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733318908,
|
"lastModified": 1742649964,
|
||||||
"narHash": "sha256-SVQVsbafSM1dJ4fpgyBqLZ+Lft+jcQuMtEL3lQWx2Sk=",
|
"narHash": "sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "git-hooks.nix",
|
"repo": "git-hooks.nix",
|
||||||
"rev": "6f4e2a2112050951a314d2733a994fbab94864c6",
|
"rev": "dcf5072734cb576d2b0c59b2ac44f5050b5eac82",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -548,10 +604,11 @@
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"ags": "ags",
|
"ags": "ags",
|
||||||
|
"grayjay": "grayjay",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"hyprland": "hyprland",
|
"hyprland": "hyprland",
|
||||||
"nixos-cosmic": "nixos-cosmic",
|
"nixos-cosmic": "nixos-cosmic",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"nixpkgs": "nixpkgs_3",
|
||||||
"plugin-harpoon1": "plugin-harpoon1",
|
"plugin-harpoon1": "plugin-harpoon1",
|
||||||
"plugin-rainbow-delimiters-nvim": "plugin-rainbow-delimiters-nvim",
|
"plugin-rainbow-delimiters-nvim": "plugin-rainbow-delimiters-nvim",
|
||||||
"plugin-undotree-nvim": "plugin-undotree-nvim",
|
"plugin-undotree-nvim": "plugin-undotree-nvim",
|
||||||
|
@ -566,11 +623,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733625333,
|
"lastModified": 1743215516,
|
||||||
"narHash": "sha256-tIML2axjm4AnlKP29upVJxzBpj4Cy4ak+PKonqQtXmc=",
|
"narHash": "sha256-52qbrkG65U1hyrQWltgHTgH4nm0SJL+9TWv2UDCEPNI=",
|
||||||
"owner": "oxalica",
|
"owner": "oxalica",
|
||||||
"repo": "rust-overlay",
|
"repo": "rust-overlay",
|
||||||
"rev": "430c8b054e45ea44fd2c9521a378306ada507a6c",
|
"rev": "524463199fdee49338006b049bc376b965a2cfed",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -622,11 +679,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733157064,
|
"lastModified": 1741934139,
|
||||||
"narHash": "sha256-NetqJHAN4bbZDQADvpep+wXk2AbMZ2bN6tINz8Kpz6M=",
|
"narHash": "sha256-ZhTcTH9FoeAtbPfWGrhkH7RjLJZ7GeF18nygLAMR+WE=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "xdg-desktop-portal-hyprland",
|
"repo": "xdg-desktop-portal-hyprland",
|
||||||
"rev": "fd85ef39369f95eed67fdf3f025e86916edeea2f",
|
"rev": "150b0b6f52bb422a1b232a53698606fe0320dde0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -637,14 +694,14 @@
|
||||||
},
|
},
|
||||||
"zen-browser": {
|
"zen-browser": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_3"
|
"nixpkgs": "nixpkgs_4"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1737573247,
|
"lastModified": 1743216975,
|
||||||
"narHash": "sha256-qYr17CTrtmudrwcDXBZjgZM6E8elQ8O7SfMhmZj7x00=",
|
"narHash": "sha256-29xgm8F3DCcTNrQZ9V3Pwj6BkjalkKvGyjd+sF9/+3k=",
|
||||||
"owner": "0xc000022070",
|
"owner": "0xc000022070",
|
||||||
"repo": "zen-browser-flake",
|
"repo": "zen-browser-flake",
|
||||||
"rev": "c3ea41c78e72866919a46116a5231c4e92062327",
|
"rev": "165ee672e6b17a8bcc0a3fb51fab3f79715cc1f3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
@ -12,6 +12,9 @@
|
||||||
# Zen browser
|
# Zen browser
|
||||||
zen-browser.url = "github:0xc000022070/zen-browser-flake";
|
zen-browser.url = "github:0xc000022070/zen-browser-flake";
|
||||||
|
|
||||||
|
# Grayjay
|
||||||
|
grayjay.url = "github:rishabh5321/grayjay-flake";
|
||||||
|
|
||||||
# AGS
|
# AGS
|
||||||
ags.url = "github:Aylur/ags";
|
ags.url = "github:Aylur/ags";
|
||||||
ags.inputs.nixpkgs.follows = "nixpkgs";
|
ags.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
|
@ -47,9 +47,9 @@
|
||||||
vesktop
|
vesktop
|
||||||
chromium
|
chromium
|
||||||
httpie
|
httpie
|
||||||
kate
|
kdePackages.kate
|
||||||
dolphin
|
kdePackages.dolphin
|
||||||
ark
|
kdePackages.ark
|
||||||
rustup
|
rustup
|
||||||
gcc
|
gcc
|
||||||
pavucontrol
|
pavucontrol
|
||||||
|
|
|
@ -19,8 +19,12 @@
|
||||||
../../modules/git.nix
|
../../modules/git.nix
|
||||||
../../modules/direnv.nix
|
../../modules/direnv.nix
|
||||||
../../modules/firefox.nix
|
../../modules/firefox.nix
|
||||||
|
../../modules/zen-browser.nix
|
||||||
../../modules/steam.nix
|
../../modules/steam.nix
|
||||||
../../modules/nvim
|
../../modules/nvim
|
||||||
|
../../modules/ags
|
||||||
|
../../modules/grayjay.nix
|
||||||
|
../../modules/signal.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.loader.systemd-boot.enable = true;
|
boot.loader.systemd-boot.enable = true;
|
||||||
|
@ -84,7 +88,7 @@
|
||||||
];
|
];
|
||||||
|
|
||||||
autoStart = [
|
autoStart = [
|
||||||
"${pkgs.ags}/bin/ags"
|
"uwsm-app -- ags run"
|
||||||
(mkUwsmApp inputs.zen-browser.packages.x86_64-linux.default "zen")
|
(mkUwsmApp inputs.zen-browser.packages.x86_64-linux.default "zen")
|
||||||
(mkUwsmApp pkgs.discord "discord")
|
(mkUwsmApp pkgs.discord "discord")
|
||||||
];
|
];
|
||||||
|
@ -134,9 +138,9 @@
|
||||||
vesktop
|
vesktop
|
||||||
chromium
|
chromium
|
||||||
httpie
|
httpie
|
||||||
kate
|
kdePackages.kate
|
||||||
dolphin
|
kdePackages.dolphin
|
||||||
ark
|
kdePackages.ark
|
||||||
rustup
|
rustup
|
||||||
gcc
|
gcc
|
||||||
prismlauncher
|
prismlauncher
|
||||||
|
@ -147,10 +151,25 @@
|
||||||
vlc
|
vlc
|
||||||
feishin
|
feishin
|
||||||
cachix
|
cachix
|
||||||
inputs.zen-browser.packages.x86_64-linux.default
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# NOTE: For debugging staging server configs
|
||||||
|
networking.extraHosts = ''
|
||||||
|
192.168.10.99 staging.kallestruik.nl
|
||||||
|
192.168.10.99 service1.staging.kallestruik.nl
|
||||||
|
192.168.10.99 service2.staging.kallestruik.nl
|
||||||
|
192.168.10.99 service3.staging.kallestruik.nl
|
||||||
|
192.168.10.99 service4.staging.kallestruik.nl
|
||||||
|
192.168.10.99 service5.staging.kallestruik.nl
|
||||||
|
192.168.10.99 service6.staging.kallestruik.nl
|
||||||
|
'';
|
||||||
|
|
||||||
|
services.udev.packages = [
|
||||||
|
# Allow flashing android devices and using ADB
|
||||||
|
pkgs.android-udev-rules
|
||||||
|
];
|
||||||
|
|
||||||
# This value determines the NixOS release from which the default
|
# This value determines the NixOS release from which the default
|
||||||
# settings for stateful data, like file locations and database versions
|
# settings for stateful data, like file locations and database versions
|
||||||
# on your system were taken. It's perfectly fine and recommended to leave
|
# on your system were taken. It's perfectly fine and recommended to leave
|
||||||
|
|
|
@ -22,6 +22,10 @@
|
||||||
device = "/dev/disk/by-uuid/0ac05c3f-df12-458e-b145-e912febe1205";
|
device = "/dev/disk/by-uuid/0ac05c3f-df12-458e-b145-e912febe1205";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
"/mnt/games-nvme" = {
|
||||||
|
device = "/dev/disk/by-uuid/7ae70244-cf8e-491e-b617-5d2d2ea3e4f1";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
"/mnt/external" = {
|
"/mnt/external" = {
|
||||||
device = "/dev/disk/by-uuid/13e2dfc3-7b4d-44ac-9417-51b933a36917";
|
device = "/dev/disk/by-uuid/13e2dfc3-7b4d-44ac-9417-51b933a36917";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
|
|
|
@ -1,10 +1,15 @@
|
||||||
import { App } from "astal/gtk3"
|
import { App } from "astal/gtk3"
|
||||||
import style from "./style.scss"
|
import style from "./style.scss"
|
||||||
import LeftBar from "./widget/LeftBar"
|
import LeftBar from "./widget/LeftBar"
|
||||||
|
import RightBar from "./widget/RightBar"
|
||||||
|
|
||||||
|
const LEFT_DISPLAY = "HF237"
|
||||||
|
const RIGHT_DISPLAY = "LCDTV16"
|
||||||
|
|
||||||
App.start({
|
App.start({
|
||||||
css: style,
|
css: style,
|
||||||
main() {
|
main() {
|
||||||
App.get_monitors().map(LeftBar)
|
LeftBar(App.get_monitors().find(it => it.get_model() == LEFT_DISPLAY)!);
|
||||||
|
RightBar(App.get_monitors().find(it => it.get_model() == RIGHT_DISPLAY)!);
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,18 +1,97 @@
|
||||||
// https://gitlab.gnome.org/GNOME/gtk/-/blob/gtk-3-24/gtk/theme/Adwaita/_colors-public.scss
|
// https://gitlab.gnome.org/GNOME/gtk/-/blob/gtk-3-24/gtk/theme/Adwaita/_colors-public.scss
|
||||||
$fg-color: #{"@theme_fg_color"};
|
@use 'sass:color';
|
||||||
$bg-color: #{"@theme_bg_color"};
|
|
||||||
|
@import "themes/catpuccin.scss";
|
||||||
|
|
||||||
window.Bar {
|
window.Bar {
|
||||||
background: transparent;
|
background: transparent;
|
||||||
color: $fg-color;
|
color: $ctp-text;
|
||||||
|
|
||||||
>centerbox {
|
>centerbox {
|
||||||
background: $bg-color;
|
background: $ctp-base;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
margin: 8px;
|
margin: 8px;
|
||||||
|
padding: 8px;
|
||||||
>box {
|
|
||||||
margin: 4px;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.Time {
|
||||||
|
background: $ctp-surface-0;
|
||||||
|
border-radius: 5px;
|
||||||
|
|
||||||
|
>.icon {
|
||||||
|
background: $ctp-red;
|
||||||
|
color: $ctp-surface-0;
|
||||||
|
padding: 6px 8px;
|
||||||
|
font-size: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.icon-left>.icon {
|
||||||
|
border-radius: 5px 0 0 5px;
|
||||||
|
}
|
||||||
|
&.icon-right>.icon {
|
||||||
|
border-radius: 0 5px 5px 0;
|
||||||
|
}
|
||||||
|
>.label {
|
||||||
|
padding: 0 8px;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.Workspaces {
|
||||||
|
background: $ctp-surface-0;
|
||||||
|
border-radius: 5px;
|
||||||
|
|
||||||
|
>.icon {
|
||||||
|
background: $ctp-blue;
|
||||||
|
color: $ctp-surface-0;
|
||||||
|
padding: 6px 8px;
|
||||||
|
font-size: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.icon-left>.icon {
|
||||||
|
border-radius: 5px 0 0 5px;
|
||||||
|
}
|
||||||
|
&.icon-right>.icon {
|
||||||
|
border-radius: 0 5px 5px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
>.labels {
|
||||||
|
padding: 0 8px;
|
||||||
|
font-size: 16px;
|
||||||
|
|
||||||
|
button {
|
||||||
|
all: unset;
|
||||||
|
|
||||||
|
&.add {
|
||||||
|
font-size: 12px;
|
||||||
|
margin-left: 4px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.Systray {
|
||||||
|
background: $ctp-surface-0;
|
||||||
|
border-radius: 5px;
|
||||||
|
|
||||||
|
>.icon {
|
||||||
|
background: $ctp-green;
|
||||||
|
color: $ctp-surface-0;
|
||||||
|
padding: 4px 8px 0 8px;
|
||||||
|
font-size: 20px;
|
||||||
|
border-radius: 5px 0 0 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.icon-left>.icon {
|
||||||
|
border-radius: 5px 0 0 5px;
|
||||||
|
}
|
||||||
|
&.icon-right>.icon {
|
||||||
|
border-radius: 0 5px 5px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
>.item {
|
||||||
|
all: unset;
|
||||||
|
padding: 8px 8px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
$ctp-rosewater: #f5e0dc;
|
||||||
|
$ctp-flamingo: #f2cdcd;
|
||||||
|
$ctp-pink: #f5c2e7;
|
||||||
|
$ctp-mauve: #cba6f7;
|
||||||
|
$ctp-red: #f38ba8;
|
||||||
|
$ctp-maroon: #eba0ac;
|
||||||
|
$ctp-peach: #fab387;
|
||||||
|
$ctp-yellow: #f9e2af;
|
||||||
|
$ctp-green: #a6e3a1;
|
||||||
|
$ctp-teal: #94e2d5;
|
||||||
|
$ctp-sky: #89dceb;
|
||||||
|
$ctp-sapphire: #74c7ec;
|
||||||
|
$ctp-blue: #89b4fa;
|
||||||
|
$ctp-lavender: #b4befe;
|
||||||
|
$ctp-text: #cdd6f4;
|
||||||
|
$ctp-subtext-1: #bac2de;
|
||||||
|
$ctp-subtext-0: #a6adc8;
|
||||||
|
$ctp-overlay-2: #9399b2;
|
||||||
|
$ctp-overlay-1: #7f849c;
|
||||||
|
$ctp-overlay-0: #6c7086;
|
||||||
|
$ctp-surface-2: #585b70;
|
||||||
|
$ctp-surface-1: #45475a;
|
||||||
|
$ctp-surface-0: #313244;
|
||||||
|
$ctp-base: #1e1e2e;
|
||||||
|
$ctp-mantle: #181825;
|
||||||
|
$ctp-crust: #11111b;
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
import { GLib, Variable } from "astal"
|
||||||
|
|
||||||
|
const TIME_FORMAT = "%H:%M"
|
||||||
|
|
||||||
|
export default function Clock(props: { iconSide: "left" | "right" }) {
|
||||||
|
const time = Variable<string>("").poll(1000, () =>
|
||||||
|
GLib.DateTime.new_now_local().format(TIME_FORMAT)!)
|
||||||
|
|
||||||
|
return <box className={`Time icon-${props.iconSide}`}>
|
||||||
|
{props.iconSide == "left" && <label className="icon" label="" />}
|
||||||
|
<label
|
||||||
|
className="label"
|
||||||
|
onDestroy={() => time.drop()}
|
||||||
|
label={time()}
|
||||||
|
/>
|
||||||
|
{props.iconSide == "right" && <label className="icon" label="" />}
|
||||||
|
</box>
|
||||||
|
}
|
|
@ -1,5 +1,6 @@
|
||||||
import { App, Astal, Gdk, Gtk } from "astal/gtk3";
|
import { App, Astal, Gdk, Gtk } from "astal/gtk3";
|
||||||
import Systray from "./Systray";
|
import Clock from "./Clock";
|
||||||
|
import Workspaces from "./Workspaces";
|
||||||
|
|
||||||
export default function LeftBar(gdkmonitor: Gdk.Monitor) {
|
export default function LeftBar(gdkmonitor: Gdk.Monitor) {
|
||||||
const { TOP, LEFT, RIGHT } = Astal.WindowAnchor;
|
const { TOP, LEFT, RIGHT } = Astal.WindowAnchor;
|
||||||
|
@ -11,25 +12,14 @@ export default function LeftBar(gdkmonitor: Gdk.Monitor) {
|
||||||
anchor={TOP | LEFT | RIGHT}
|
anchor={TOP | LEFT | RIGHT}
|
||||||
application={App}>
|
application={App}>
|
||||||
<centerbox>
|
<centerbox>
|
||||||
<Left />
|
<box halign={Gtk.Align.START}>
|
||||||
<Center />
|
</box>
|
||||||
<Right />
|
<box halign={Gtk.Align.CENTER}>
|
||||||
|
<Workspaces monitor="HDMI-A-2" iconSide="right" />
|
||||||
|
</box>
|
||||||
|
<box halign={Gtk.Align.END}>
|
||||||
|
<Clock iconSide="right" />
|
||||||
|
</box>
|
||||||
</centerbox>
|
</centerbox>
|
||||||
</window>
|
</window>
|
||||||
}
|
}
|
||||||
|
|
||||||
function Left() {
|
|
||||||
return <box halign={Gtk.Align.START}>
|
|
||||||
</box>
|
|
||||||
}
|
|
||||||
|
|
||||||
function Center() {
|
|
||||||
return <box halign={Gtk.Align.CENTER}>
|
|
||||||
</box>
|
|
||||||
}
|
|
||||||
|
|
||||||
function Right() {
|
|
||||||
return <box halign={Gtk.Align.END}>
|
|
||||||
<Systray />
|
|
||||||
</box>
|
|
||||||
}
|
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
import { App, Astal, Gdk, Gtk } from "astal/gtk3";
|
||||||
|
import Clock from "./Clock";
|
||||||
|
import Workspaces from "./Workspaces";
|
||||||
|
import Systray from "./Systray";
|
||||||
|
|
||||||
|
export default function RightBar(gdkmonitor: Gdk.Monitor) {
|
||||||
|
const { TOP, LEFT, RIGHT } = Astal.WindowAnchor;
|
||||||
|
|
||||||
|
return <window
|
||||||
|
className="RightBar Bar"
|
||||||
|
gdkmonitor={gdkmonitor}
|
||||||
|
exclusivity={Astal.Exclusivity.EXCLUSIVE}
|
||||||
|
anchor={TOP | LEFT | RIGHT}
|
||||||
|
application={App}>
|
||||||
|
<centerbox>
|
||||||
|
<box halign={Gtk.Align.START}>
|
||||||
|
<Clock iconSide="left" />
|
||||||
|
</box>
|
||||||
|
<box halign={Gtk.Align.CENTER}>
|
||||||
|
<Workspaces monitor="HDMI-A-1" iconSide="left" />
|
||||||
|
</box>
|
||||||
|
<box halign={Gtk.Align.END}>
|
||||||
|
<Systray iconSide="left" />
|
||||||
|
</box>
|
||||||
|
</centerbox>
|
||||||
|
</window>
|
||||||
|
}
|
|
@ -1,23 +1,23 @@
|
||||||
import { bind } from "astal"
|
import { bind } from "astal"
|
||||||
import { Button, Icon } from "astal/gtk3/widget"
|
|
||||||
import Tray from "gi://AstalTray"
|
import Tray from "gi://AstalTray"
|
||||||
|
|
||||||
const tray = Tray.get_default()
|
const tray = Tray.get_default()
|
||||||
|
|
||||||
export default function Systray() {
|
export default function Systray(props: { iconSide: "left" | "right" }) {
|
||||||
for (const item of tray.get_items()) {
|
return <box className={`Systray icon-${props.iconSide}`}>
|
||||||
print(item.title)
|
{props.iconSide == "left" && <label className="icon" label="" />}
|
||||||
}
|
{bind(tray, "items").as(items => items.map(item => <SystrayItem item={item} />))}
|
||||||
return <box>
|
{props.iconSide == "right" && <label className="icon" label="" />}
|
||||||
{tray.get_items().map(item => <SystrayItem item={item} />)}
|
|
||||||
</box>
|
</box>
|
||||||
}
|
}
|
||||||
|
|
||||||
function SystrayItem({ item }: { item: Tray.TrayItem }) {
|
function SystrayItem({ item }: { item: Tray.TrayItem }) {
|
||||||
return <Button
|
return <menubutton
|
||||||
onClick={() => item.activate(0, 0) /* NOTE: Figure out what these numbers do */}
|
className="item"
|
||||||
tooltipMarkup={bind(item, "tooltip_markup")}
|
tooltipMarkup={bind(item, "tooltipMarkup")}
|
||||||
>
|
usePopover={false}
|
||||||
<Icon gicon={bind(item, "gicon")} />
|
actionGroup={bind(item, "actionGroup").as(ag => ["dbusmenu", ag])}
|
||||||
</Button>
|
menuModel={bind(item, "menuModel")}>
|
||||||
|
<icon gicon={bind(item, "gicon")} />
|
||||||
|
</menubutton>
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,55 @@
|
||||||
|
import { bind } from "astal"
|
||||||
|
import Hyprland from "gi://AstalHyprland"
|
||||||
|
|
||||||
|
export default function Workspaces(props: { monitor: string, iconSide: "left" | "right" }) {
|
||||||
|
const hyprland = Hyprland.get_default();
|
||||||
|
|
||||||
|
return <box className={`Workspaces icon-${props.iconSide}`}>
|
||||||
|
{props.iconSide == "left" && <label className="icon" label="" />}
|
||||||
|
<box className="labels">
|
||||||
|
{bind(hyprland, "workspaces").as(wss => wss
|
||||||
|
.filter(it => it && it.get_monitor && it.get_monitor().name == props.monitor)
|
||||||
|
.sort((a, b) => a.get_id() - b.get_id())
|
||||||
|
.map(workspace => <Workspace workspace={workspace} />)
|
||||||
|
)}
|
||||||
|
<button
|
||||||
|
className="add"
|
||||||
|
onClick={() => {
|
||||||
|
hyprland.dispatch("workspace", "emptynm");
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<label label="" />
|
||||||
|
</button>
|
||||||
|
</box>
|
||||||
|
{props.iconSide == "right" && <label className="icon" label="" />}
|
||||||
|
</box>
|
||||||
|
}
|
||||||
|
|
||||||
|
function Workspace(props: { workspace: Hyprland.Workspace }) {
|
||||||
|
const hyprland = Hyprland.get_default();
|
||||||
|
|
||||||
|
return <box>
|
||||||
|
{bind(props.workspace.get_monitor(), "activeWorkspace").as(ws => {
|
||||||
|
if (ws == props.workspace) {
|
||||||
|
return <label
|
||||||
|
label=""
|
||||||
|
/>
|
||||||
|
} else {
|
||||||
|
return <button
|
||||||
|
onClick={() => {
|
||||||
|
const name = props.workspace.name
|
||||||
|
if (name) {
|
||||||
|
hyprland.dispatch("workspace", `name:${name}`);
|
||||||
|
} else {
|
||||||
|
hyprland.dispatch("workspace", `id:${props.workspace.get_id()}`);
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<label
|
||||||
|
label=""
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
}
|
||||||
|
})}
|
||||||
|
</box>
|
||||||
|
}
|
|
@ -1,46 +0,0 @@
|
||||||
import { GTK_ALIGN_CENTER, GTK_ALIGN_END, GTK_ALIGN_START } from "../constants.js"
|
|
||||||
import { Clock } from "./Clock.js"
|
|
||||||
import { SysTray } from "./Systray.js"
|
|
||||||
|
|
||||||
function BarStart() {
|
|
||||||
return Widget.Box({
|
|
||||||
halign: GTK_ALIGN_START,
|
|
||||||
children: [
|
|
||||||
Widget.Label({ label: "Start" }),
|
|
||||||
Widget.Button({ label: "Button", onClicked: () => App.ToggleWindow("media2") }),
|
|
||||||
],
|
|
||||||
})
|
|
||||||
}
|
|
||||||
function BarCenter() {
|
|
||||||
return Widget.Box({
|
|
||||||
halign: GTK_ALIGN_CENTER,
|
|
||||||
children: [
|
|
||||||
Clock(),
|
|
||||||
],
|
|
||||||
})
|
|
||||||
}
|
|
||||||
function BarEnd() {
|
|
||||||
return Widget.Box({
|
|
||||||
halign: GTK_ALIGN_END,
|
|
||||||
children: [
|
|
||||||
SysTray(),
|
|
||||||
],
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function Bar(monitor = 0) {
|
|
||||||
return Widget.Window({
|
|
||||||
monitor,
|
|
||||||
exclusivity: "exclusive",
|
|
||||||
className: "bar",
|
|
||||||
margins: [5, 5, 0, 5],
|
|
||||||
name: `bar${monitor}`,
|
|
||||||
anchor: ["left", "top", "right"],
|
|
||||||
child: Widget.CenterBox({
|
|
||||||
vertical: false,
|
|
||||||
startWidget: BarStart(),
|
|
||||||
centerWidget: BarCenter(),
|
|
||||||
endWidget: BarEnd(),
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
|
@ -1,24 +0,0 @@
|
||||||
const time = Variable("", {
|
|
||||||
poll: [1000, 'date "+%H:%M"'],
|
|
||||||
})
|
|
||||||
|
|
||||||
const date = Variable("", {
|
|
||||||
poll: [1000, 'date "+%Y-%m-%d"'],
|
|
||||||
})
|
|
||||||
|
|
||||||
export function Clock() {
|
|
||||||
return Widget.Box({
|
|
||||||
className: "clock",
|
|
||||||
vertical: true,
|
|
||||||
children: [
|
|
||||||
Widget.Label({
|
|
||||||
className: "time",
|
|
||||||
label: time.bind(),
|
|
||||||
}),
|
|
||||||
Widget.Label({
|
|
||||||
className: "date",
|
|
||||||
label: date.bind(),
|
|
||||||
}),
|
|
||||||
],
|
|
||||||
})
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
const systemtray = await Service.import("systemtray")
|
|
||||||
|
|
||||||
export function SysTray() {
|
|
||||||
const items = systemtray.bind("items")
|
|
||||||
.as(items => items.map(item => Widget.Button({
|
|
||||||
child: Widget.Icon({ icon: item.bind("icon") }),
|
|
||||||
on_primary_click: (_, event) => item.activate(event),
|
|
||||||
on_secondary_click: (_, event) => item.openMenu(event),
|
|
||||||
tooltip_markup: item.bind("tooltip_markup"),
|
|
||||||
})))
|
|
||||||
|
|
||||||
return Widget.Box({
|
|
||||||
className: "systray",
|
|
||||||
children: items,
|
|
||||||
})
|
|
||||||
}
|
|
|
@ -1,35 +0,0 @@
|
||||||
@define-color ctp-rosewater #f5e0dc;
|
|
||||||
@define-color ctp-flamingo #f2cdcd;
|
|
||||||
@define-color ctp-pink #f5c2e7;
|
|
||||||
@define-color ctp-mauve #cba6f7;
|
|
||||||
@define-color ctp-red #f38ba8;
|
|
||||||
@define-color ctp-maroon #eba0ac;
|
|
||||||
@define-color ctp-peach #fab387;
|
|
||||||
@define-color ctp-yellow #f9e2af;
|
|
||||||
@define-color ctp-green #a6e3a1;
|
|
||||||
@define-color ctp-teal #94e2d5;
|
|
||||||
@define-color ctp-sky #89dceb;
|
|
||||||
@define-color ctp-sapphire #74c7ec;
|
|
||||||
@define-color ctp-blue #89b4fa;
|
|
||||||
@define-color ctp-lavender #b4befe;
|
|
||||||
@define-color ctp-text #cdd6f4;
|
|
||||||
@define-color ctp-subtext1 #bac2de;
|
|
||||||
@define-color ctp-subtext0 #a6adc8;
|
|
||||||
@define-color ctp-overlay2 #9399b2;
|
|
||||||
@define-color ctp-overlay1 #7f849c;
|
|
||||||
@define-color ctp-overlay0 #6c7086;
|
|
||||||
@define-color ctp-surface2 #585b70;
|
|
||||||
@define-color ctp-surface1 #45475a;
|
|
||||||
@define-color ctp-surface0 #313244;
|
|
||||||
@define-color ctp-base #1e1e2e;
|
|
||||||
@define-color ctp-mantle #181825;
|
|
||||||
@define-color ctp-crust #11111b;
|
|
||||||
|
|
||||||
button {
|
|
||||||
background: @ctp-surface0;
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
button:active, button:hover, button:focus {
|
|
||||||
background: @ctp-surface1;
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
import { Media } from "./media/Media.js";
|
|
||||||
import { Bar } from "./bar/Bar.js";
|
|
||||||
import { Notifications } from "./notifications/Notifications.js";
|
|
||||||
|
|
||||||
|
|
||||||
App.config({
|
|
||||||
style: "./style.css",
|
|
||||||
windows: [
|
|
||||||
Bar(2),
|
|
||||||
Media(2),
|
|
||||||
Notifications(2),
|
|
||||||
]
|
|
||||||
})
|
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
export const GTK_ALIGN_FILL = 0;
|
|
||||||
export const GTK_ALIGN_START = 1;
|
|
||||||
export const GTK_ALIGN_END = 2;
|
|
||||||
export const GTK_ALIGN_CENTER = 3;
|
|
||||||
export const GTK_ALIGN_BASELINE = 4;
|
|
|
@ -1,160 +0,0 @@
|
||||||
import { GTK_ALIGN_CENTER, GTK_ALIGN_FILL } from '../constants.js'
|
|
||||||
|
|
||||||
const mpris = await Service.import("mpris")
|
|
||||||
const players = mpris.bind("players")
|
|
||||||
|
|
||||||
const FALLBACK_ICON = "audio-x-generic-symbolic"
|
|
||||||
const PLAY_ICON = "media-playback-start-symbolic"
|
|
||||||
const PAUSE_ICON = "media-playback-pause-symbolic"
|
|
||||||
const PREV_ICON = "media-skip-backward-symbolic"
|
|
||||||
const NEXT_ICON = "media-skip-forward-symbolic"
|
|
||||||
|
|
||||||
/** @param {number} length */
|
|
||||||
function lengthStr(length) {
|
|
||||||
const min = Math.floor(length / 60)
|
|
||||||
const sec = Math.floor(length % 60)
|
|
||||||
const sec0 = sec < 10 ? "0" : ""
|
|
||||||
return `${min}:${sec0}${sec}`
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @param {import('types/service/mpris').MprisPlayer} player */
|
|
||||||
function Player(player) {
|
|
||||||
const artists = player.bind("track_artists").transform(a => a.join(", "))
|
|
||||||
|
|
||||||
const playPause = Widget.Button({
|
|
||||||
className: "play-pause",
|
|
||||||
onClicked: () => player.playPause(),
|
|
||||||
visible: player.bind("can_play"),
|
|
||||||
child: Widget.Icon({
|
|
||||||
icon: player.bind("play_back_status").transform(s => {
|
|
||||||
switch (s) {
|
|
||||||
case "Playing": return PAUSE_ICON
|
|
||||||
case "Paused":
|
|
||||||
case "Stopped": return PLAY_ICON
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
}),
|
|
||||||
})
|
|
||||||
|
|
||||||
const prev = Widget.Button({
|
|
||||||
onClicked: () => player.previous(),
|
|
||||||
visible: player.bind("can_go_prev"),
|
|
||||||
child: Widget.Icon(PREV_ICON),
|
|
||||||
})
|
|
||||||
|
|
||||||
const next = Widget.Button({
|
|
||||||
onClicked: () => player.next(),
|
|
||||||
visible: player.bind("can_go_next"),
|
|
||||||
child: Widget.Icon(NEXT_ICON),
|
|
||||||
})
|
|
||||||
|
|
||||||
const positionSlider = Widget.Slider({
|
|
||||||
className: "position",
|
|
||||||
drawValue: false,
|
|
||||||
onChange: ({ value }) => player.position = value * player.length,
|
|
||||||
visible: player.bind("length").as(l => l > 0),
|
|
||||||
setup: self => {
|
|
||||||
function update() {
|
|
||||||
const value = player.position / player.length
|
|
||||||
self.value = value > 0 ? value : 0
|
|
||||||
}
|
|
||||||
self.hook(player, update)
|
|
||||||
self.hook(player, update, "position")
|
|
||||||
self.poll(1000, update)
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
const positionLabel = Widget.Label({
|
|
||||||
className: "position",
|
|
||||||
hpack: "start",
|
|
||||||
setup: self => {
|
|
||||||
const update = (_, time) => {
|
|
||||||
self.label = lengthStr(time || player.position)
|
|
||||||
self.visible = player.length > 0
|
|
||||||
}
|
|
||||||
|
|
||||||
self.hook(player, update, "position")
|
|
||||||
self.poll(1000, update)
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
const lengthLabel = Widget.Label({
|
|
||||||
className: "length",
|
|
||||||
hpack: "end",
|
|
||||||
visible: player.bind("length").transform(l => l > 0),
|
|
||||||
label: player.bind("length").transform(lengthStr),
|
|
||||||
})
|
|
||||||
|
|
||||||
return Widget.Overlay({
|
|
||||||
className: "player",
|
|
||||||
child: Widget.Box({
|
|
||||||
className: "bg-img",
|
|
||||||
vpack: "start",
|
|
||||||
css: player.bind("cover_path").transform(p => `background-image: url('${p}');`),
|
|
||||||
}),
|
|
||||||
overlays: [
|
|
||||||
Widget.Box({
|
|
||||||
className: "bg-cover"
|
|
||||||
}),
|
|
||||||
Widget.Box({
|
|
||||||
className: "overlay",
|
|
||||||
vertical: true,
|
|
||||||
halign: GTK_ALIGN_CENTER,
|
|
||||||
children: [
|
|
||||||
Widget.Box({
|
|
||||||
className: "info",
|
|
||||||
vertical: true,
|
|
||||||
children: [
|
|
||||||
Widget.Label({ className: "title", label: player.bind("track_title") }),
|
|
||||||
Widget.Label({ className: "album", label: player.bind("track_album") }),
|
|
||||||
Widget.Label({ className: "artist", label: artists }),
|
|
||||||
],
|
|
||||||
}),
|
|
||||||
Widget.Box({
|
|
||||||
vexpand: true,
|
|
||||||
}),
|
|
||||||
Widget.CenterBox({
|
|
||||||
className: "controls",
|
|
||||||
startWidget: positionLabel,
|
|
||||||
centerWidget: Widget.Box({
|
|
||||||
halign: GTK_ALIGN_CENTER,
|
|
||||||
spacing: 20,
|
|
||||||
children: [
|
|
||||||
prev,
|
|
||||||
playPause,
|
|
||||||
next,
|
|
||||||
],
|
|
||||||
}),
|
|
||||||
endWidget: lengthLabel,
|
|
||||||
}),
|
|
||||||
positionSlider,
|
|
||||||
],
|
|
||||||
})
|
|
||||||
],
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
function MediaContent() {
|
|
||||||
const currentIdx = Variable(0);
|
|
||||||
const currentPlayer = Utils.merge([currentIdx.bind(), players], (currentIdx, players) => {
|
|
||||||
const idx = Math.min(currentIdx, players.length - 1);
|
|
||||||
return players[idx];
|
|
||||||
})
|
|
||||||
|
|
||||||
return Widget.Box({
|
|
||||||
children: currentPlayer.as(p => [Player(p)]),
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function Media(monitor = 0) {
|
|
||||||
return Widget.Window({
|
|
||||||
monitor,
|
|
||||||
visible: false,
|
|
||||||
exclusivity: "normal",
|
|
||||||
className: "media",
|
|
||||||
margins: [10, 10, 0, 10],
|
|
||||||
name: `media${monitor}`,
|
|
||||||
anchor: ["left", "top"],
|
|
||||||
child: MediaContent(),
|
|
||||||
})
|
|
||||||
}
|
|
|
@ -1,59 +0,0 @@
|
||||||
.media > box {
|
|
||||||
border-radius: 5px;
|
|
||||||
|
|
||||||
background-color: transparent;
|
|
||||||
color: @ctp-text;
|
|
||||||
}
|
|
||||||
|
|
||||||
.media .player .bg-img {
|
|
||||||
border-radius: 5px;
|
|
||||||
min-width: 400px;
|
|
||||||
min-height: 200px;
|
|
||||||
background-size: cover;
|
|
||||||
}
|
|
||||||
|
|
||||||
.media .player .bg-cover {
|
|
||||||
background: linear-gradient(alpha(@ctp-base, 0.5), @ctp-base);
|
|
||||||
}
|
|
||||||
|
|
||||||
.media .player .overlay {
|
|
||||||
border-radius: 5px;
|
|
||||||
min-width: 400px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.media .player .info {
|
|
||||||
padding: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.media .player .controls {
|
|
||||||
padding: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.media .player .info .title {
|
|
||||||
font-size: 1.2em;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
.media .player scale.position {
|
|
||||||
padding: 0;
|
|
||||||
border-radius: 0;
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.media .player scale.position trough {
|
|
||||||
min-height: 4px;
|
|
||||||
border-radius: 0;
|
|
||||||
border: none;
|
|
||||||
background-color: @ctp-overlay0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.media .player scale.position highlight {
|
|
||||||
border-radius: 0;
|
|
||||||
border: none;
|
|
||||||
background-color: @ctp-lavender;
|
|
||||||
}
|
|
||||||
|
|
||||||
.media .player scale.position slider {
|
|
||||||
all: unset;
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,129 +0,0 @@
|
||||||
const notifications = await Service.import("notifications")
|
|
||||||
|
|
||||||
/** @param {import('resource:///com/github/Aylur/ags/service/notifications.js').Notification} n */
|
|
||||||
function NotificationIcon({ app_entry, app_icon, image }) {
|
|
||||||
if (image) {
|
|
||||||
return Widget.Box({
|
|
||||||
css: `background-image: url("${image}");`
|
|
||||||
+ "background-size: contain;"
|
|
||||||
+ "background-repeat: no-repeat;"
|
|
||||||
+ "background-position: center;",
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
let icon = "dialog-information-symbolic"
|
|
||||||
if (Utils.lookUpIcon(app_icon))
|
|
||||||
icon = app_icon
|
|
||||||
|
|
||||||
if (app_entry && Utils.lookUpIcon(app_entry))
|
|
||||||
icon = app_entry
|
|
||||||
|
|
||||||
return Widget.Box({
|
|
||||||
child: Widget.Icon(icon),
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @param {import('resource:///com/github/Aylur/ags/service/notifications.js').Notification} n */
|
|
||||||
function Notification(n) {
|
|
||||||
const icon = Widget.Box({
|
|
||||||
vpack: "start",
|
|
||||||
class_name: "icon",
|
|
||||||
child: NotificationIcon(n),
|
|
||||||
})
|
|
||||||
|
|
||||||
const title = Widget.Label({
|
|
||||||
class_name: "title",
|
|
||||||
xalign: 0,
|
|
||||||
justification: "left",
|
|
||||||
hexpand: true,
|
|
||||||
max_width_chars: 24,
|
|
||||||
label: n.summary,
|
|
||||||
use_markup: true,
|
|
||||||
})
|
|
||||||
|
|
||||||
const body = Widget.Label({
|
|
||||||
class_name: "body",
|
|
||||||
hexpand: true,
|
|
||||||
use_markup: true,
|
|
||||||
xalign: 0,
|
|
||||||
justification: "left",
|
|
||||||
label: n.body,
|
|
||||||
wrap: true,
|
|
||||||
})
|
|
||||||
|
|
||||||
const content = Widget.Box({
|
|
||||||
className: "content",
|
|
||||||
children: [
|
|
||||||
icon,
|
|
||||||
Widget.Box({
|
|
||||||
vertical: true,
|
|
||||||
children: [
|
|
||||||
title,
|
|
||||||
body,
|
|
||||||
]
|
|
||||||
}),
|
|
||||||
],
|
|
||||||
})
|
|
||||||
|
|
||||||
const actions = Widget.Box({
|
|
||||||
className: "actions",
|
|
||||||
children: n.actions.map(({ id, label }) => Widget.Button({
|
|
||||||
className: "action",
|
|
||||||
on_clicked: () => {
|
|
||||||
n.invoke(id)
|
|
||||||
n.dismiss()
|
|
||||||
},
|
|
||||||
hexpand: true,
|
|
||||||
child: Widget.Label(label),
|
|
||||||
})),
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
return Widget.EventBox({
|
|
||||||
attribute: { id: n.id },
|
|
||||||
onPrimaryClick: n.dismiss,
|
|
||||||
child: Widget.Box({
|
|
||||||
classNames: ["notification", n.urgency],
|
|
||||||
vertical: true,
|
|
||||||
children: [
|
|
||||||
content,
|
|
||||||
actions,
|
|
||||||
],
|
|
||||||
}),
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
function NotificationList() {
|
|
||||||
const list = Widget.Box({
|
|
||||||
css: "min-width: 2px; min-height: 2px;",
|
|
||||||
vertical: true,
|
|
||||||
spacing: 10,
|
|
||||||
children: notifications.popups.map(Notification),
|
|
||||||
})
|
|
||||||
|
|
||||||
function onNotified(_, /** @type {number} */ id) {
|
|
||||||
const n = notifications.getNotification(id)
|
|
||||||
if (n)
|
|
||||||
list.children = [Notification(n), ...list.children]
|
|
||||||
}
|
|
||||||
|
|
||||||
function onDismissed(_, /** @type {number} */ id) {
|
|
||||||
list.children.find(n => n.attribute.id === id)?.destroy()
|
|
||||||
}
|
|
||||||
|
|
||||||
list.hook(notifications, onNotified, "notified")
|
|
||||||
.hook(notifications, onDismissed, "dismissed")
|
|
||||||
return list
|
|
||||||
}
|
|
||||||
|
|
||||||
export function Notifications(monitor = 0) {
|
|
||||||
return Widget.Window({
|
|
||||||
monitor,
|
|
||||||
exclusivity: "normal",
|
|
||||||
className: "notifications",
|
|
||||||
margins: [10, 10, 10, 10],
|
|
||||||
name: `notifications${monitor}`,
|
|
||||||
anchor: ["left", "top"],
|
|
||||||
child: NotificationList(),
|
|
||||||
})
|
|
||||||
}
|
|
|
@ -1,59 +0,0 @@
|
||||||
.notification {
|
|
||||||
min-width: 300px;
|
|
||||||
padding: 10px;
|
|
||||||
background-color: alpha(@ctp-base, 0.7);
|
|
||||||
border-radius: 5px;
|
|
||||||
|
|
||||||
border: 1px solid;
|
|
||||||
border-left: 5px solid;
|
|
||||||
border-color: @ctp-overlay1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification.low {
|
|
||||||
border-color: @ctp-base;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification.critical {
|
|
||||||
border-color: @ctp-red;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification .icon {
|
|
||||||
min-width: 68px;
|
|
||||||
min-height: 68px;
|
|
||||||
margin-right: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification .icon image {
|
|
||||||
font-size: 58px;
|
|
||||||
/* to center the icon */
|
|
||||||
margin: 5px;
|
|
||||||
color: @ctp-text;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification .icon box {
|
|
||||||
min-width: 68px;
|
|
||||||
min-height: 68px;
|
|
||||||
border-radius: 7px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification .actions .action {
|
|
||||||
margin: 0 .4em;
|
|
||||||
margin-top: .8em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification .actions .action:first-child {
|
|
||||||
margin-left: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification .actions .action:last-child {
|
|
||||||
margin-right: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification .title {
|
|
||||||
color: @ctp-text;
|
|
||||||
font-size: 1.4em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification .body {
|
|
||||||
color: @ctp-subtext0;
|
|
||||||
}
|
|
|
@ -1,22 +0,0 @@
|
||||||
@import url("colors.css");
|
|
||||||
@import url("notifications/style.css");
|
|
||||||
@import url("media/style.css");
|
|
||||||
|
|
||||||
|
|
||||||
.bar > box {
|
|
||||||
padding: 10px;
|
|
||||||
border-radius: 5px;
|
|
||||||
|
|
||||||
background-color: alpha(@ctp-base, 0.95);
|
|
||||||
color: @ctp-text;
|
|
||||||
}
|
|
||||||
|
|
||||||
.clock .time {
|
|
||||||
font-weight: bold;
|
|
||||||
font-size: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.clock .date {
|
|
||||||
font-size: 0.8em;
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
{
|
|
||||||
"compilerOptions": {
|
|
||||||
"target": "ES2022",
|
|
||||||
"module": "ES2022",
|
|
||||||
"lib": [
|
|
||||||
"ES2022"
|
|
||||||
],
|
|
||||||
"allowJs": true,
|
|
||||||
"checkJs": true,
|
|
||||||
"strict": true,
|
|
||||||
"noImplicitAny": false,
|
|
||||||
"baseUrl": ".",
|
|
||||||
"typeRoots": [
|
|
||||||
"./types"
|
|
||||||
],
|
|
||||||
"skipLibCheck": true
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1 +0,0 @@
|
||||||
/home/kalle/.local/share/com.github.Aylur.ags/types
|
|
|
@ -1,15 +1,20 @@
|
||||||
{
|
{
|
||||||
inputs,
|
inputs,
|
||||||
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
home-manager.users.kalle = {
|
home-manager.users.kalle = {
|
||||||
imports = [ inputs.ags.homeManagerModules.default ];
|
imports = [ inputs.ags.homeManagerModules.default ];
|
||||||
programs.ags = {
|
programs.ags = {
|
||||||
enable = true;
|
enable = true;
|
||||||
configDir = ./config;
|
configDir = ./config;
|
||||||
|
extraPackages = with inputs.ags.packages.${pkgs.system}; [
|
||||||
|
tray
|
||||||
|
hyprland
|
||||||
|
mpris
|
||||||
|
wireplumber
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
{
|
{
|
||||||
home-manager.users.kalle.programs.firefox = {
|
home-manager.users.kalle.programs.firefox = {
|
||||||
enable = true;
|
enable = true;
|
||||||
nativeMessagingHosts = [ pkgs.plasma-browser-integration ];
|
nativeMessagingHosts = [ pkgs.kdePackages.plasma-browser-integration ];
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
{
|
||||||
|
inputs,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
home-manager.users.kalle.home.packages = [
|
||||||
|
inputs.grayjay.packages.${pkgs.system}.grayjay
|
||||||
|
];
|
||||||
|
}
|
|
@ -85,6 +85,11 @@
|
||||||
config = "colorscheme catppuccin-mocha";
|
config = "colorscheme catppuccin-mocha";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
plugin = oil-nvim;
|
||||||
|
config = toLua "require('oil').setup()";
|
||||||
|
}
|
||||||
|
|
||||||
cmp-nvim-lsp
|
cmp-nvim-lsp
|
||||||
cmp-nvim-lsp-signature-help
|
cmp-nvim-lsp-signature-help
|
||||||
cmp-buffer
|
cmp-buffer
|
||||||
|
|
|
@ -112,7 +112,7 @@ require('lspconfig').nixd.setup {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
require('lspconfig').tsserver.setup {
|
require('lspconfig').ts_ls.setup {
|
||||||
on_attach = on_attach,
|
on_attach = on_attach,
|
||||||
capabilities = capabilities,
|
capabilities = capabilities,
|
||||||
init_options = {
|
init_options = {
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
home-manager.users.kalle.home.packages = [
|
||||||
|
pkgs.signal-desktop
|
||||||
|
];
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
{
|
||||||
|
inputs,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
home-manager.users.kalle.home.packages = [
|
||||||
|
inputs.zen-browser.packages.${pkgs.system}.default
|
||||||
|
];
|
||||||
|
}
|
|
@ -1,5 +1,6 @@
|
||||||
{ inputs
|
{
|
||||||
, ...
|
inputs,
|
||||||
|
...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -8,16 +9,25 @@
|
||||||
rainbow-delimiters-nvim = prev.vimUtils.buildVimPlugin {
|
rainbow-delimiters-nvim = prev.vimUtils.buildVimPlugin {
|
||||||
name = "raindow-delimiters.nvim";
|
name = "raindow-delimiters.nvim";
|
||||||
src = inputs.plugin-rainbow-delimiters-nvim;
|
src = inputs.plugin-rainbow-delimiters-nvim;
|
||||||
|
nvimSkipModule = [
|
||||||
|
"rainbow-delimiters.types"
|
||||||
|
"rainbow-delimiters._test.highlight"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
undotree-nvim = prev.vimUtils.buildVimPlugin {
|
undotree-nvim = prev.vimUtils.buildVimPlugin {
|
||||||
name = "undotree.nvim";
|
name = "undotree.nvim";
|
||||||
src = inputs.plugin-undotree-nvim;
|
src = inputs.plugin-undotree-nvim;
|
||||||
|
nvimSkipModule = [
|
||||||
|
"undotree"
|
||||||
|
"undotree.collector"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
harpoon1 = prev.vimUtils.buildVimPlugin {
|
harpoon1 = prev.vimUtils.buildVimPlugin {
|
||||||
name = "harpoon";
|
name = "harpoon";
|
||||||
src = inputs.plugin-harpoon1;
|
src = inputs.plugin-harpoon1;
|
||||||
|
doCheck = false;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue