Compare commits
No commits in common. "f22dee69f0e034fee5cd4e3ff507366489916bb9" and "c37a1de490c636864f0bfca193611a30a4c817ee" have entirely different histories.
f22dee69f0
...
c37a1de490
18 changed files with 432 additions and 668 deletions
308
flake.lock
generated
308
flake.lock
generated
|
|
@ -20,11 +20,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1765900596,
|
||||
"narHash": "sha256-+hn8v9jkkLP9m+o0Nm5SiEq10W0iWDSotH2XfjU45fA=",
|
||||
"lastModified": 1759499898,
|
||||
"narHash": "sha256-UNzYHLWfkSzLHDep5Ckb5tXc0fdxwPIrT+MY4kpQttM=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "aquamarine",
|
||||
"rev": "d83c97f8f5c0aae553c1489c7d9eff3eadcadace",
|
||||
"rev": "655e067f96fd44b3f5685e17f566b0e4d535d798",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -43,11 +43,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767198468,
|
||||
"narHash": "sha256-FxDbqVgsT/ofpcVD4oNSO4YyPK0bu0/w4TGr/p87E4A=",
|
||||
"lastModified": 1759544172,
|
||||
"narHash": "sha256-oSkKuK4qWhN9ccvRMcnYhSCO9TJOmBb67z9+LIRdtNg=",
|
||||
"owner": "nix-community",
|
||||
"repo": "emacs-overlay",
|
||||
"rev": "ff02fe1802aa90146fe3c236ec504c788825b152",
|
||||
"rev": "942530872529aad21e9ac205b630694ef6b755de",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -59,11 +59,11 @@
|
|||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1761588595,
|
||||
"narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=",
|
||||
"lastModified": 1747046372,
|
||||
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5",
|
||||
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -122,11 +122,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767104570,
|
||||
"narHash": "sha256-GKgwu5//R+cLdKysZjGqvUEEOGXXLdt93sNXeb2M/Lk=",
|
||||
"lastModified": 1759550472,
|
||||
"narHash": "sha256-JLM3D6RbnGmXR8x+3WNac9neklAxA1JtZHZscwukFYw=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "e4e78a2cbeaddd07ab7238971b16468cc1d14daf",
|
||||
"rev": "817ace497b72b38da0c08728a683b7febaccf9cf",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -180,11 +180,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1763733840,
|
||||
"narHash": "sha256-JnET78yl5RvpGuDQy3rCycOCkiKoLr5DN1fPhRNNMco=",
|
||||
"lastModified": 1759490292,
|
||||
"narHash": "sha256-T6iWzDOXp8Wv0KQOCTHpBcmAOdHJ6zc/l9xaztW6Ivc=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprgraphics",
|
||||
"rev": "8f1bec691b2d198c60cccabca7a94add2df4ed1a",
|
||||
"rev": "9431db625cd9bb66ac55525479dce694101d6d7a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -198,8 +198,8 @@
|
|||
"aquamarine": "aquamarine",
|
||||
"hyprcursor": "hyprcursor",
|
||||
"hyprgraphics": "hyprgraphics",
|
||||
"hyprland-guiutils": "hyprland-guiutils",
|
||||
"hyprland-protocols": "hyprland-protocols",
|
||||
"hyprland-qtutils": "hyprland-qtutils",
|
||||
"hyprlang": [
|
||||
"hyprlang"
|
||||
],
|
||||
|
|
@ -207,7 +207,6 @@
|
|||
"hyprutils"
|
||||
],
|
||||
"hyprwayland-scanner": "hyprwayland-scanner",
|
||||
"hyprwire": "hyprwire",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
|
|
@ -218,11 +217,11 @@
|
|||
"xdph": "xdph"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767201430,
|
||||
"narHash": "sha256-2FF66EaIbsc7CL1jKHbRFslSePDq40fzlTTbUlm5v3k=",
|
||||
"lastModified": 1759530922,
|
||||
"narHash": "sha256-9NgZKpibALekGTPDc2O8lP8vFealQSZkXe+L+S7MMZU=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "Hyprland",
|
||||
"rev": "48a024e0322bbd7c4c88126498ec478444ec4cb2",
|
||||
"rev": "76d998743ac10e712238c1016db4d8e8d16f1049",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -231,52 +230,6 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprland-guiutils": {
|
||||
"inputs": {
|
||||
"aquamarine": [
|
||||
"hyprland",
|
||||
"aquamarine"
|
||||
],
|
||||
"hyprgraphics": [
|
||||
"hyprland",
|
||||
"hyprgraphics"
|
||||
],
|
||||
"hyprlang": [
|
||||
"hyprland",
|
||||
"hyprlang"
|
||||
],
|
||||
"hyprtoolkit": "hyprtoolkit",
|
||||
"hyprutils": [
|
||||
"hyprland",
|
||||
"hyprutils"
|
||||
],
|
||||
"hyprwayland-scanner": [
|
||||
"hyprland",
|
||||
"hyprwayland-scanner"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"hyprland",
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": [
|
||||
"hyprland",
|
||||
"systems"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1765643131,
|
||||
"narHash": "sha256-CCGohW5EBIRy4B7vTyBMqPgsNcaNenVad/wszfddET0=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-guiutils",
|
||||
"rev": "e50ae912813bdfa8372d62daf454f48d6df02297",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-guiutils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprland-hy3": {
|
||||
"inputs": {
|
||||
"hyprland": [
|
||||
|
|
@ -284,11 +237,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1766381032,
|
||||
"narHash": "sha256-Wuk2MULnGfgAbP1N/Rp6H6k7zG/ynDiy54mPvkt/4bM=",
|
||||
"lastModified": 1759126670,
|
||||
"narHash": "sha256-p+HObKRf2j3DfI4mcrJoF+WR7IIg9demMioYBsRH0GM=",
|
||||
"owner": "outfoxxed",
|
||||
"repo": "hy3",
|
||||
"rev": "50643d625829f303239f9ec019021f17d7e9f3fc",
|
||||
"rev": "af94b011af255de87b2b026121fab1e6f2c56c6d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -309,11 +262,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1765214753,
|
||||
"narHash": "sha256-P9zdGXOzToJJgu5sVjv7oeOGPIIwrd9hAUAP3PsmBBs=",
|
||||
"lastModified": 1749046714,
|
||||
"narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-protocols",
|
||||
"rev": "3f3860b869014c00e8b9e0528c7b4ddc335c21ab",
|
||||
"rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -322,6 +275,74 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprland-qt-support": {
|
||||
"inputs": {
|
||||
"hyprlang": [
|
||||
"hyprland",
|
||||
"hyprland-qtutils",
|
||||
"hyprlang"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"hyprland",
|
||||
"hyprland-qtutils",
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": [
|
||||
"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",
|
||||
"hyprlang"
|
||||
],
|
||||
"hyprutils": [
|
||||
"hyprland",
|
||||
"hyprland-qtutils",
|
||||
"hyprlang",
|
||||
"hyprutils"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"hyprland",
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": [
|
||||
"hyprland",
|
||||
"systems"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1759080228,
|
||||
"narHash": "sha256-RgDoAja0T1hnF0pTc56xPfLfFOO8Utol2iITwYbUhTk=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-qtutils",
|
||||
"rev": "629b15c19fa4082e4ce6be09fdb89e8c3312aed7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-qtutils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprlang": {
|
||||
"inputs": {
|
||||
"hyprutils": [
|
||||
|
|
@ -335,11 +356,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1764612430,
|
||||
"narHash": "sha256-54ltTSbI6W+qYGMchAgCR6QnC1kOdKXN6X6pJhOWxFg=",
|
||||
"lastModified": 1758927902,
|
||||
"narHash": "sha256-LZgMds7M94+vuMql2bERQ6LiFFdhgsEFezE4Vn+Ys3A=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprlang",
|
||||
"rev": "0d00dc118981531aa731150b6ea551ef037acddd",
|
||||
"rev": "4dafa28d4f79877d67a7d1a654cddccf8ebf15da",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -348,58 +369,6 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprtoolkit": {
|
||||
"inputs": {
|
||||
"aquamarine": [
|
||||
"hyprland",
|
||||
"hyprland-guiutils",
|
||||
"aquamarine"
|
||||
],
|
||||
"hyprgraphics": [
|
||||
"hyprland",
|
||||
"hyprland-guiutils",
|
||||
"hyprgraphics"
|
||||
],
|
||||
"hyprlang": [
|
||||
"hyprland",
|
||||
"hyprland-guiutils",
|
||||
"hyprlang"
|
||||
],
|
||||
"hyprutils": [
|
||||
"hyprland",
|
||||
"hyprland-guiutils",
|
||||
"hyprutils"
|
||||
],
|
||||
"hyprwayland-scanner": [
|
||||
"hyprland",
|
||||
"hyprland-guiutils",
|
||||
"hyprwayland-scanner"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"hyprland",
|
||||
"hyprland-guiutils",
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": [
|
||||
"hyprland",
|
||||
"hyprland-guiutils",
|
||||
"systems"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1764592794,
|
||||
"narHash": "sha256-7CcO+wbTJ1L1NBQHierHzheQGPWwkIQug/w+fhTAVuU=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprtoolkit",
|
||||
"rev": "5cfe0743f0e608e1462972303778d8a0859ee63e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprtoolkit",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprutils": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
|
|
@ -410,11 +379,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1766253372,
|
||||
"narHash": "sha256-1+p4Kw8HdtMoFSmJtfdwjxM4bPxDK9yg27SlvUMpzWA=",
|
||||
"lastModified": 1759490926,
|
||||
"narHash": "sha256-7IbZGJ5qAAfZsGhBHIsP8MBsfuFYS0hsxYHVkkeDG5Q=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprutils",
|
||||
"rev": "51a4f93ce8572e7b12b7284eb9e6e8ebf16b4be9",
|
||||
"rev": "94cce794344538c4d865e38682684ec2bbdb2ef3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -435,11 +404,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1763640274,
|
||||
"narHash": "sha256-Uan1Nl9i4TF/kyFoHnTq1bd/rsWh4GAK/9/jDqLbY5A=",
|
||||
"lastModified": 1755184602,
|
||||
"narHash": "sha256-RCBQN8xuADB0LEgaKbfRqwm6CdyopE1xIEhNc67FAbw=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprwayland-scanner",
|
||||
"rev": "f6cf414ca0e16a4d30198fd670ec86df3c89f671",
|
||||
"rev": "b3b0f1f40ae09d4447c20608e5a4faf8bf3c492d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -448,35 +417,6 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprwire": {
|
||||
"inputs": {
|
||||
"hyprutils": [
|
||||
"hyprland",
|
||||
"hyprutils"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"hyprland",
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": [
|
||||
"hyprland",
|
||||
"systems"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1766253200,
|
||||
"narHash": "sha256-26qPwrd3od+xoYVywSB7hC2cz9ivN46VPLlrsXyGxvE=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprwire",
|
||||
"rev": "1079777525b30a947c8d657fac158e00ae85de9d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprwire",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"impurity": {
|
||||
"locked": {
|
||||
"lastModified": 1689836741,
|
||||
|
|
@ -499,11 +439,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1765267181,
|
||||
"narHash": "sha256-d3NBA9zEtBu2JFMnTBqWj7Tmi7R5OikoU2ycrdhQEws=",
|
||||
"lastModified": 1759032422,
|
||||
"narHash": "sha256-WZf+FhebP2/1pK2np5xj/NuDjD6fXK2BHnq/tPUN18o=",
|
||||
"owner": "Mic92",
|
||||
"repo": "nix-index-database",
|
||||
"rev": "82befcf7dc77c909b0f2a09f5da910ec95c5b78f",
|
||||
"rev": "ec7a78cb0e098832d8acac091a4df393259c4839",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -534,11 +474,11 @@
|
|||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1766902085,
|
||||
"narHash": "sha256-coBu0ONtFzlwwVBzmjacUQwj3G+lybcZ1oeNSQkgC0M=",
|
||||
"lastModified": 1759381078,
|
||||
"narHash": "sha256-gTrEEp5gEspIcCOx9PD8kMaF1iEmfBcTbO0Jag2QhQs=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "c0b0e0fddf73fd517c3471e546c0df87a42d53f4",
|
||||
"rev": "7df7ff7d8e00218376575f0acdcc5d66741351ee",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -555,11 +495,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767202981,
|
||||
"narHash": "sha256-XF68CQaLfPcCk5DVAP/OLbyqchc9uj4E65AEf363HI8=",
|
||||
"lastModified": 1759562581,
|
||||
"narHash": "sha256-Ws/2AeBPNO0rKZClWMZGHzpYYxvzipkQe0Uv0bRcYDM=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"rev": "8666a7d3d9d26a7a3031ba4d5688ba4e6f83d6bd",
|
||||
"rev": "fc4bde0d1bbd11352fd7836af54e56573f6649e6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -578,11 +518,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1765911976,
|
||||
"narHash": "sha256-t3T/xm8zstHRLx+pIHxVpQTiySbKqcQbK+r+01XVKc0=",
|
||||
"lastModified": 1758108966,
|
||||
"narHash": "sha256-ytw7ROXaWZ7OfwHrQ9xvjpUWeGVm86pwnEd1QhzawIo=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "b68b780b69702a090c8bb1b973bab13756cc7a27",
|
||||
"rev": "54df955a695a84cd47d4a43e08e1feaf90b1fd9b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -598,11 +538,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1766725085,
|
||||
"narHash": "sha256-O2aMFdDUYJazFrlwL7aSIHbUSEm3ADVZjmf41uBJfHs=",
|
||||
"lastModified": 1759303785,
|
||||
"narHash": "sha256-EUXrK7pUIzOQWR1dquZh26A6W8lsY2oiHEEZzQnsarM=",
|
||||
"ref": "refs/heads/master",
|
||||
"rev": "41828c4180fb921df7992a5405f5ff05d2ac2fff",
|
||||
"revCount": 715,
|
||||
"rev": "9662234759eb57f2a1057f2a1c667da1bf128c1c",
|
||||
"revCount": 686,
|
||||
"type": "git",
|
||||
"url": "https://git.outfoxxed.me/quickshell/quickshell"
|
||||
},
|
||||
|
|
@ -631,11 +571,11 @@
|
|||
},
|
||||
"stable": {
|
||||
"locked": {
|
||||
"lastModified": 1767051569,
|
||||
"narHash": "sha256-0MnuWoN+n1UYaGBIpqpPs9I9ZHW4kynits4mrnh1Pk4=",
|
||||
"lastModified": 1759281824,
|
||||
"narHash": "sha256-FIBE1qXv9TKvSNwst6FumyHwCRH3BlWDpfsnqRDCll0=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "40ee5e1944bebdd128f9fbada44faefddfde29bd",
|
||||
"rev": "5b5be50345d4113d04ba58c444348849f5585b4a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -687,11 +627,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1761431178,
|
||||
"narHash": "sha256-xzjC1CV3+wpUQKNF+GnadnkeGUCJX+vgaWIZsnz9tzI=",
|
||||
"lastModified": 1755354946,
|
||||
"narHash": "sha256-zdov5f/GcoLQc9qYIS1dUTqtJMeDqmBmo59PAxze6e4=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "xdg-desktop-portal-hyprland",
|
||||
"rev": "4b8801228ff958d028f588f0c2b911dbf32297f9",
|
||||
"rev": "a10726d6a8d0ef1a0c645378f983b6278c42eaa0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
|
|||
|
|
@ -3,6 +3,22 @@
|
|||
(with inputs.emacs-overlay.overlays; [
|
||||
emacs
|
||||
package
|
||||
|
||||
(final: prev: {
|
||||
tree-sitter = prev.tree-sitter.override {
|
||||
extraGrammars = {
|
||||
tree-sitter-astro = {
|
||||
version = "master";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "virchau13";
|
||||
repo = "tree-sitter-astro";
|
||||
rev = "0ad33e32ae9726e151d16ca20ba3e507ff65e01f";
|
||||
sha256 = "LhehKOhCDPExEgEiOj3TiuFk8/DohzYhy/9GmUSxaIg=";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
})
|
||||
]);
|
||||
|
||||
tree-sitter-parsers = grammars: with grammars; [
|
||||
|
|
@ -40,25 +56,15 @@
|
|||
tree-sitter-toml
|
||||
tree-sitter-tsx
|
||||
tree-sitter-typescript
|
||||
tree-sitter-astro
|
||||
tree-sitter-vim
|
||||
tree-sitter-yaml
|
||||
tree-sitter-zig
|
||||
(pkgs.tree-sitter.buildGrammar {
|
||||
language = "astro";
|
||||
version = "master";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "virchau13";
|
||||
repo = "tree-sitter-astro";
|
||||
rev = "0ad33e32ae9726e151d16ca20ba3e507ff65e01f";
|
||||
sha256 = "LhehKOhCDPExEgEiOj3TiuFk8/DohzYhy/9GmUSxaIg=";
|
||||
};
|
||||
})
|
||||
];
|
||||
|
||||
custom-emacs =
|
||||
with newpkgs;
|
||||
((emacsPackagesFor (emacs30-pgtk.override { withNativeCompilation = true; })).emacsWithPackages (epkgs: with epkgs; [
|
||||
aidermacs transient
|
||||
avy
|
||||
better-jumper
|
||||
company
|
||||
|
|
@ -83,7 +89,6 @@
|
|||
lsp-ui
|
||||
lsp-haskell
|
||||
lsp-java
|
||||
dap-mode
|
||||
magit
|
||||
markdown-mode
|
||||
nasm-mode
|
||||
|
|
@ -102,14 +107,7 @@
|
|||
use-package
|
||||
vertico
|
||||
which-key
|
||||
(melpaPackages.ws-butler.overrideAttrs { # https://github.com/nix-community/emacs-overlay/issues/499
|
||||
src = pkgs.fetchFromSavannah {
|
||||
repo = "emacs/nongnu";
|
||||
rev = "9ee5a7657a22e836618813c2e2b64a548d27d2f";
|
||||
hash = "sha256-S9aFJcFMkyB1KozJc9hpwKjAMkOyEnCZ6Wf3JVZ8d0c=";
|
||||
};
|
||||
})
|
||||
minuet
|
||||
melpaPackages.ws-butler
|
||||
zig-ts-mode
|
||||
]));
|
||||
in {
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ misc {
|
|||
|
||||
render {
|
||||
direct_scanout = true
|
||||
new_render_scheduling = false
|
||||
new_render_scheduling = true
|
||||
}
|
||||
|
||||
binds {
|
||||
|
|
@ -108,36 +108,48 @@ debug {
|
|||
|
||||
monitor = , preferred, auto, 1
|
||||
|
||||
layerrule = match:namespace shell:background, animation fade
|
||||
layerrule = blur, test
|
||||
layerrule = ignorezero, test
|
||||
layerrule = noanim, test
|
||||
|
||||
layerrule = match:namespace shell:bar, blur on
|
||||
layerrule = match:namespace shell:bar, blur_popups on
|
||||
layerrule = match:namespace shell:bar, ignore_alpha 0
|
||||
layerrule = match:namespace shell:notifications, blur on
|
||||
layerrule = match:namespace shell:notifications, ignore_alpha 0
|
||||
layerrule = match:namespace shell:notifications, animation 0
|
||||
layerrule = match:namespace shell:screenshot, animation 0
|
||||
layerrule = blur, wofi
|
||||
layerrule = ignorezero, wofi
|
||||
layerrule = noanim, ^(selection)$
|
||||
|
||||
layerrule = match:namespace shell:launcher, blur on
|
||||
layerrule = match:namespace shell:launcher, ignore_alpha 0
|
||||
layerrule = match:namespace shell:launcher, animation popin 90%
|
||||
layerrule = blur, termspawner
|
||||
layerrule = ignorezero, termspawner
|
||||
layerrule = noanim, termspawner
|
||||
|
||||
windowrule = match:class org.kde.polkit-kde-authentication-agent-1, float on
|
||||
windowrule = match:class org.kde.polkit-kde-authentication-agent-1, dim_around on
|
||||
layerrule = animation fade, shell:background
|
||||
|
||||
windowrule = match:class gcr-prompter, float on
|
||||
windowrule = match:class gcr-prompter, dim_around on
|
||||
layerrule = blur, shell:bar
|
||||
layerrule = blurpopups, shell:bar
|
||||
layerrule = ignorezero, shell:bar
|
||||
layerrule = blur, shell:notifications
|
||||
layerrule = ignorezero, shell:notifications
|
||||
layerrule = noanim, shell:notifications
|
||||
|
||||
windowrule = match:class org.freedesktop.impl.portal.desktop.kde, float on
|
||||
windowrule = match:class org.freedesktop.impl.portal.desktop.kde, size 1000 700
|
||||
windowrule = match:class org.freedesktop.impl.portal.desktop.kde, dim_around on
|
||||
layerrule = noanim, shell:screenshot
|
||||
|
||||
windowrule = match:title ^(OpenSSH Authentication Passphrase request)$, float on
|
||||
windowrule = match:title ^(KeePassXC - Access Request)$, float on
|
||||
windowrule = match:title ^(Unlock Database - KeePassXC)$, float on
|
||||
windowrule = match:class org.keepassxc.KeePassXC, no_screen_share on
|
||||
layerrule = blur, shell:launcher
|
||||
layerrule = ignorezero, shell:launcher
|
||||
layerrule = animation popin 90%, shell:launcher
|
||||
|
||||
windowrule = match:class AlacrittyFloating, float on
|
||||
windowrulev2 = float, class:^(opensnitch_ui)$
|
||||
windowrulev2 = dimaround, class:^(opensnitch_ui)$
|
||||
windowrulev2 = float, class:^(org.kde.polkit-kde-authentication-agent-1)$
|
||||
windowrulev2 = dimaround, class:^(org.kde.polkit-kde-authentication-agent-1)$
|
||||
windowrulev2 = float, class:^(gcr-prompter)$
|
||||
windowrulev2 = dimaround, class:^(gcr-prompter)$
|
||||
windowrulev2 = float, class:^(org.freedesktop.impl.portal.desktop.kde)$
|
||||
windowrulev2 = size 1000 700, class:^(org.freedesktop.impl.portal.desktop.kde)$
|
||||
windowrulev2 = center, class:^(org.freedesktop.impl.portal.desktop.kde)$
|
||||
windowrulev2 = dimaround, class:^(org.freedesktop.impl.portal.desktop.kde)$
|
||||
windowrulev2 = float, title:^(OpenSSH Authentication Passphrase request)$
|
||||
windowrulev2 = float, title:^(KeePassXC - Access Request)$
|
||||
windowrulev2 = float, title:^(Unlock Database - KeePassXC)$
|
||||
|
||||
windowrulev2 = float, class:^(AlacrittyFloating)$
|
||||
|
||||
$mod = SUPER
|
||||
$launcher = qs -c shell ipc call launcher open
|
||||
|
|
@ -185,11 +197,6 @@ bind = ,XF86AudioStop, exec, qs -c shell ipc call mpris pauseAll
|
|||
bind = ,XF86AudioPlay, exec, qs -c shell ipc call mpris playPause
|
||||
bind = ,XF86AudioNext, exec, qs -c shell ipc call mpris next
|
||||
bind = ,XF86AudioPrev, exec, qs -c shell ipc call mpris previous
|
||||
bind = $mod, m, exec, qs -c shell ipc call audio toggleMic
|
||||
bind = ,XF86AudioRaiseVolume, exec, qs -c shell ipc call audio volUp
|
||||
bind = ,XF86AudioLowerVolume, exec, qs -c shell ipc call audio volDown
|
||||
bind = SHIFT,XF86AudioNext, exec, qs -c shell ipc call mpris next
|
||||
bind = SHIFT,XF86AudioPrev, exec, qs -c shell ipc call mpris previous
|
||||
|
||||
bind = $mod, h, hy3:movefocus, l
|
||||
bind = $mod, j, hy3:movefocus, d
|
||||
|
|
@ -249,5 +256,6 @@ bind = $mod+SHIFT, 8, hy3:movetoworkspace, 08
|
|||
bind = $mod+SHIFT, 9, hy3:movetoworkspace, 09
|
||||
bind = $mod+SHIFT, 0, hy3:movetoworkspace, 10
|
||||
|
||||
workspace = f[1], gapsout:0
|
||||
windowrule = match:fullscreen_state_internal 1, border_size 0
|
||||
workspace = f[1], gapsout:0, gapsin:0
|
||||
windowrule = bordersize 0, floating:0, onworkspace:f[1]
|
||||
windowrule = rounding 0, floating:0, onworkspace:f[1]
|
||||
|
|
|
|||
|
|
@ -20,8 +20,6 @@
|
|||
, lame
|
||||
, withMusicbrainz ? false
|
||||
, libmusicbrainz5
|
||||
, libebur128
|
||||
, kdePackages
|
||||
|
||||
, withTaglib ? true
|
||||
, taglib
|
||||
|
|
@ -90,8 +88,8 @@ stdenv.mkDerivation rec {
|
|||
src = fetchFromGitHub {
|
||||
owner = "nullobsi";
|
||||
repo = "cantata";
|
||||
rev = "dc5a0ce77cdf3eaacce29180fe7d2c710b3f31af";
|
||||
sha256 = "YcGqVZuP7slfxo5oe0lBPchVCXm+UsSN/wpglwn6UmU=";
|
||||
rev = "a19efdf9649c50320f8592f07d82734c352ace9c";
|
||||
sha256 = "TVqgTYpHyU1OM9XddJ915GM1XQQrhH9V7yhSxQOaXRs=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
|
@ -110,9 +108,6 @@ stdenv.mkDerivation rec {
|
|||
qtbase
|
||||
qtsvg
|
||||
qtwayland
|
||||
libebur128
|
||||
kdePackages.kitemviews
|
||||
kdePackages.karchive
|
||||
(perl.withPackages (ppkgs: with ppkgs; [ URI ]))
|
||||
]
|
||||
++ lib.flatten (builtins.catAttrs "pkgs" (builtins.filter (e: e.enable) options));
|
||||
|
|
|
|||
|
|
@ -7,14 +7,6 @@
|
|||
mcontrolcenter = final.callPackage ./mcontrolcenter.nix {};
|
||||
cantata = final.qt6Packages.callPackage ./cantata {};
|
||||
tws = final.callPackage ./tws.nix {};
|
||||
libsigrok = prev.libsigrok.overrideAttrs {
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "sipeed";
|
||||
repo = "libsigrok";
|
||||
rev = "4bd54163630ab48e3d5cd540ea9e8cf9809c6f3d";
|
||||
hash = "sha256-Rl5w2jABGTKPnRXZJehNMEBNeGe4POHOoRzffIhAMTM=";
|
||||
};
|
||||
};
|
||||
})
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@
|
|||
glib
|
||||
gtk2
|
||||
gtk3
|
||||
javaPackages.openjfx25
|
||||
javaPackages.openjfx21
|
||||
libdrm
|
||||
libGL
|
||||
libxkbcommon
|
||||
|
|
@ -74,7 +74,7 @@ in stdenv.mkDerivation {
|
|||
|
||||
src = fetchurl {
|
||||
url = "https://download2.interactivebrokers.com/installers/tws/latest-standalone/tws-latest-standalone-linux-x64.sh";
|
||||
hash = "sha256-QN7dSe+R2kfDjtJWa9TIGbc8zCSC3XNmxSxOZOjOB2o=";
|
||||
hash = "sha256-Wk7lRE5ypJeAQfvi5aEDZYfUF6fJ3ktueYYytHohIGU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
|||
|
|
@ -16,8 +16,6 @@
|
|||
services.upower.enable = true;
|
||||
services.power-profiles-daemon.enable = true;
|
||||
|
||||
services.nixseparatedebuginfod2.enable = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
git
|
||||
git-lfs
|
||||
|
|
|
|||
|
|
@ -3,11 +3,7 @@
|
|||
|
||||
system.extraDependencies = with pkgs; [ ungoogled-chromium ];
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
nix-output-monitor
|
||||
pulseview # here because usev rules in libsigrok
|
||||
];
|
||||
services.udev.packages = [ pkgs.libsigrok ];
|
||||
environment.systemPackages = with pkgs; [ nix-output-monitor ];
|
||||
environment.sessionVariables.FLAKE = "/home/admin/nixnew";
|
||||
|
||||
programs.steam = {
|
||||
|
|
@ -30,7 +26,7 @@
|
|||
material-symbols
|
||||
font-awesome
|
||||
corefonts
|
||||
vista-fonts
|
||||
vistafonts
|
||||
]);
|
||||
|
||||
fontconfig = {
|
||||
|
|
@ -101,8 +97,6 @@
|
|||
];
|
||||
};
|
||||
|
||||
#programs.ladybird.enable = true;
|
||||
|
||||
home-manager.users.${config.main-user} = homeInputs: let
|
||||
homeConfig = homeInputs.config;
|
||||
in {
|
||||
|
|
@ -112,6 +106,7 @@
|
|||
./modules/wofi
|
||||
./modules/dolphin
|
||||
./modules/firefox
|
||||
./modules/element.nix
|
||||
./modules/keepassxc
|
||||
./dev-support.nix
|
||||
];
|
||||
|
|
@ -140,7 +135,6 @@
|
|||
freetube
|
||||
jujutsu
|
||||
|
||||
freecad
|
||||
tws
|
||||
|
||||
distrobox
|
||||
|
|
@ -168,7 +162,7 @@
|
|||
services = {
|
||||
mpd = {
|
||||
enable = true;
|
||||
musicDirectory = "/pool2/music";
|
||||
musicDirectory = "/pool/music";
|
||||
network.startWhenNeeded = true;
|
||||
|
||||
extraConfig = ''
|
||||
|
|
|
|||
|
|
@ -42,6 +42,13 @@ let
|
|||
url = "https://addons.mozilla.org/firefox/downloads/file/3854469/github_repo_size-1.7.0.xpi";
|
||||
sha256 = "2zGY12esYusaw2IzXM+1kP0B/0Urxu0yj7xXlDlutto=";
|
||||
};
|
||||
vencord = remoteXpiAddon {
|
||||
pname = "vencord";
|
||||
version = "1.2.7";
|
||||
addonId = "vencord-firefox@vendicated.dev";
|
||||
url = "https://addons.mozilla.org/firefox/downloads/file/4123132/vencord_web-1.2.7.xpi";
|
||||
sha256 = "A/XKdT0EuDHsQ7mcK9hsXAoAJYUt4Uvp/rtCf/9dAS0=";
|
||||
};
|
||||
|
||||
theme-gray = theme {
|
||||
name = "theme-gray";
|
||||
|
|
@ -236,6 +243,7 @@ in {
|
|||
|
||||
extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; with extra-addons; [
|
||||
ublock-origin
|
||||
vencord
|
||||
];
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
import Quickshell
|
||||
import Quickshell.Io
|
||||
import Quickshell.Services.Pipewire
|
||||
import qs.bar
|
||||
|
||||
|
|
@ -41,23 +40,4 @@ BarWidgetInner {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
IpcHandler {
|
||||
target: "audio"
|
||||
|
||||
function toggleMic(): void {
|
||||
const source = Pipewire.defaultAudioSource;
|
||||
source.audio.muted = !source.audio.muted;
|
||||
}
|
||||
|
||||
function volUp(): void {
|
||||
const sink = Pipewire.defaultAudioSink;
|
||||
sink.audio.volume += 0.05;
|
||||
}
|
||||
|
||||
function volDown(): void {
|
||||
const sink = Pipewire.defaultAudioSink;
|
||||
sink.audio.volume -= 0.05;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,8 @@ import Quickshell
|
|||
import Quickshell.Io
|
||||
import Quickshell.Wayland
|
||||
import Quickshell.Widgets
|
||||
import Quickshell.Hyprland
|
||||
import Quickshell.Services.SystemTray
|
||||
import ".."
|
||||
|
||||
Singleton {
|
||||
PersistentProperties {
|
||||
|
|
@ -37,37 +38,240 @@ Singleton {
|
|||
activeAsync: persist.launcherOpen
|
||||
|
||||
PanelWindow {
|
||||
id: launcherWindow
|
||||
//anchors { left: true; right: true; top: true; bottom: true }
|
||||
width: 450
|
||||
height: 7 + searchContainer.implicitHeight + list.topMargin * 2 + list.delegateHeight * 10
|
||||
color: "transparent"
|
||||
implicitWidth: content.width
|
||||
implicitHeight: content.height
|
||||
//color: "#20ff0000"
|
||||
//WlrLayershell.keyboardFocus: WlrKeyboardFocus.Exclusive
|
||||
WlrLayershell.keyboardFocus: WlrKeyboardFocus.Exclusive
|
||||
WlrLayershell.namespace: "shell:launcher"
|
||||
|
||||
/*HyprlandWindow.visibleMask: Region {
|
||||
item: content
|
||||
}*/
|
||||
Rectangle {
|
||||
//anchors.fill: parent
|
||||
height: 7 + searchContainer.implicitHeight + list.topMargin + list.bottomMargin + Math.min(list.contentHeight, list.delegateHeight * 10)
|
||||
Behavior on height { NumberAnimation { duration: 200; easing.type: Easing.OutCubic } }
|
||||
width: 450
|
||||
color: ShellGlobals.colors.bar
|
||||
radius: 5
|
||||
border.color: ShellGlobals.colors.barOutline
|
||||
border.width: 1
|
||||
|
||||
HyprlandFocusGrab {
|
||||
windows: [launcherWindow]
|
||||
active: true
|
||||
//onCleared: console.log("cleared")
|
||||
onCleared: persist.launcherOpen = false
|
||||
ColumnLayout {
|
||||
anchors.fill: parent
|
||||
anchors.margins: 7
|
||||
anchors.bottomMargin: 0
|
||||
spacing: 0
|
||||
|
||||
Rectangle {
|
||||
id: searchContainer
|
||||
Layout.fillWidth: true
|
||||
implicitHeight: searchbox.implicitHeight + 10
|
||||
color: "#30c0ffff"
|
||||
radius: 3
|
||||
border.color: "#50ffffff"
|
||||
|
||||
RowLayout {
|
||||
id: searchbox
|
||||
anchors.fill: parent
|
||||
anchors.margins: 5
|
||||
|
||||
IconImage {
|
||||
implicitSize: parent.height
|
||||
source: "root:icons/magnifying-glass.svg"
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
TextInput {
|
||||
id: search
|
||||
Layout.fillWidth: true
|
||||
color: "white"
|
||||
|
||||
onPressed: persist.launcherOpen = false
|
||||
focus: true
|
||||
Keys.forwardTo: [list]
|
||||
Keys.onEscapePressed: persist.launcherOpen = false
|
||||
|
||||
MouseArea {
|
||||
anchors.centerIn: parent
|
||||
width: content.width
|
||||
height: content.height
|
||||
Keys.onPressed: event => {
|
||||
if (event.modifiers & Qt.ControlModifier) {
|
||||
if (event.key == Qt.Key_J) {
|
||||
list.currentIndex = list.currentIndex == list.count - 1 ? 0 : list.currentIndex + 1;
|
||||
event.accepted = true;
|
||||
} else if (event.key == Qt.Key_K) {
|
||||
list.currentIndex = list.currentIndex == 0 ? list.count - 1 : list.currentIndex - 1;
|
||||
event.accepted = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LaunchContent { id: content }
|
||||
onAccepted: {
|
||||
if (list.currentItem) {
|
||||
list.currentItem.clicked(null);
|
||||
}
|
||||
}
|
||||
|
||||
onTextChanged: {
|
||||
list.currentIndex = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ListView {
|
||||
id: list
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
clip: true
|
||||
cacheBuffer: 0 // works around QTBUG-131106
|
||||
//reuseItems: true
|
||||
model: ScriptModel {
|
||||
values: DesktopEntries.applications.values
|
||||
.map(object => {
|
||||
const stxt = search.text.toLowerCase();
|
||||
const ntxt = object.name.toLowerCase();
|
||||
let si = 0;
|
||||
let ni = 0;
|
||||
|
||||
let matches = [];
|
||||
let startMatch = -1;
|
||||
|
||||
for (let si = 0; si != stxt.length; ++si) {
|
||||
const sc = stxt[si];
|
||||
|
||||
while (true) {
|
||||
// Drop any entries with letters that don't exist in order
|
||||
if (ni == ntxt.length) return null;
|
||||
|
||||
const nc = ntxt[ni++];
|
||||
|
||||
if (nc == sc) {
|
||||
if (startMatch == -1) startMatch = ni;
|
||||
break;
|
||||
} else {
|
||||
if (startMatch != -1) {
|
||||
matches.push({
|
||||
index: startMatch,
|
||||
length: ni - startMatch,
|
||||
});
|
||||
|
||||
startMatch = -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (startMatch != -1) {
|
||||
matches.push({
|
||||
index: startMatch,
|
||||
length: ni - startMatch + 1,
|
||||
});
|
||||
}
|
||||
|
||||
return {
|
||||
object: object,
|
||||
matches: matches,
|
||||
};
|
||||
})
|
||||
.filter(entry => entry !== null)
|
||||
.sort((a, b) => {
|
||||
let ai = 0;
|
||||
let bi = 0;
|
||||
let s = 0;
|
||||
|
||||
while (ai != a.matches.length && bi != b.matches.length) {
|
||||
const am = a.matches[ai];
|
||||
const bm = b.matches[bi];
|
||||
|
||||
s = bm.length - am.length;
|
||||
if (s != 0) return s;
|
||||
|
||||
s = am.index - bm.index;
|
||||
if (s != 0) return s;
|
||||
|
||||
++ai;
|
||||
++bi;
|
||||
}
|
||||
|
||||
s = a.matches.length - b.matches.length;
|
||||
if (s != 0) return s;
|
||||
|
||||
s = a.object.name.length - b.object.name.length;
|
||||
if (s != 0) return s;
|
||||
|
||||
return a.object.name.localeCompare(b.object.name);
|
||||
})
|
||||
.map(entry => entry.object);
|
||||
|
||||
onValuesChanged: list.currentIndex = 0
|
||||
}
|
||||
|
||||
topMargin: 7
|
||||
bottomMargin: list.count == 0 ? 0 : 7
|
||||
|
||||
add: Transition {
|
||||
NumberAnimation { property: "opacity"; from: 0; to: 1; duration: 100 }
|
||||
}
|
||||
|
||||
displaced: Transition {
|
||||
NumberAnimation { property: "y"; duration: 200; easing.type: Easing.OutCubic }
|
||||
NumberAnimation { property: "opacity"; to: 1; duration: 100 }
|
||||
}
|
||||
|
||||
move: Transition {
|
||||
NumberAnimation { property: "y"; duration: 200; easing.type: Easing.OutCubic }
|
||||
NumberAnimation { property: "opacity"; to: 1; duration: 100 }
|
||||
}
|
||||
|
||||
remove: Transition {
|
||||
NumberAnimation { property: "y"; duration: 200; easing.type: Easing.OutCubic }
|
||||
NumberAnimation { property: "opacity"; to: 0; duration: 100 }
|
||||
}
|
||||
|
||||
highlight: Rectangle {
|
||||
radius: 5
|
||||
color: "#20e0ffff"
|
||||
border.color: "#30ffffff"
|
||||
border.width: 1
|
||||
}
|
||||
keyNavigationEnabled: true
|
||||
keyNavigationWraps: true
|
||||
highlightMoveVelocity: -1
|
||||
highlightMoveDuration: 100
|
||||
preferredHighlightBegin: list.topMargin
|
||||
preferredHighlightEnd: list.height - list.bottomMargin
|
||||
highlightRangeMode: ListView.ApplyRange
|
||||
snapMode: ListView.SnapToItem
|
||||
|
||||
readonly property real delegateHeight: 44
|
||||
|
||||
delegate: MouseArea {
|
||||
required property DesktopEntry modelData;
|
||||
|
||||
implicitHeight: list.delegateHeight
|
||||
implicitWidth: ListView.view.width
|
||||
|
||||
onClicked: {
|
||||
modelData.execute();
|
||||
persist.launcherOpen = false;
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
id: delegateLayout
|
||||
anchors {
|
||||
verticalCenter: parent.verticalCenter
|
||||
left: parent.left
|
||||
leftMargin: 5
|
||||
}
|
||||
|
||||
IconImage {
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
asynchronous: true
|
||||
implicitSize: 30
|
||||
source: Quickshell.iconPath(modelData.icon)
|
||||
}
|
||||
Text {
|
||||
text: modelData.name
|
||||
color: "#f0f0f0"
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,331 +0,0 @@
|
|||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
import QtQuick.Controls
|
||||
import Quickshell
|
||||
import Quickshell.Widgets
|
||||
import Quickshell.Wayland
|
||||
import qs
|
||||
|
||||
Item {
|
||||
id: root
|
||||
height: 7 + searchContainer.implicitHeight + list.topMargin * 2 + list.delegateHeight * 10;
|
||||
width: 450
|
||||
|
||||
Rectangle {
|
||||
id: content
|
||||
height: 7 + searchContainer.implicitHeight + list.topMargin + list.bottomMargin + Math.min(list.contentHeight, list.delegateHeight * 10)
|
||||
Behavior on height { NumberAnimation { duration: 200; easing.type: Easing.OutCubic } }
|
||||
width: 450
|
||||
color: ShellGlobals.colors.bar
|
||||
radius: 5
|
||||
border.color: ShellGlobals.colors.barOutline
|
||||
border.width: 1
|
||||
|
||||
ColumnLayout {
|
||||
anchors.fill: parent
|
||||
anchors.margins: 7
|
||||
anchors.bottomMargin: 0
|
||||
spacing: 0
|
||||
|
||||
Rectangle {
|
||||
id: searchContainer
|
||||
Layout.fillWidth: true
|
||||
implicitHeight: searchbox.implicitHeight + 10
|
||||
color: "#30c0ffff"
|
||||
radius: 3
|
||||
border.color: "#50ffffff"
|
||||
|
||||
RowLayout {
|
||||
id: searchbox
|
||||
anchors.fill: parent
|
||||
anchors.margins: 5
|
||||
|
||||
IconImage {
|
||||
implicitSize: parent.height
|
||||
source: "root:icons/magnifying-glass.svg"
|
||||
}
|
||||
|
||||
TextInput {
|
||||
id: search
|
||||
Layout.fillWidth: true
|
||||
color: "white"
|
||||
|
||||
focus: true
|
||||
Keys.forwardTo: [list]
|
||||
Keys.onEscapePressed: persist.launcherOpen = false
|
||||
|
||||
Keys.onPressed: event => {
|
||||
if (event.modifiers & Qt.ControlModifier) {
|
||||
if (event.key == Qt.Key_J) {
|
||||
list.currentIndex = list.currentIndex == list.count - 1 ? 0 : list.currentIndex + 1;
|
||||
event.accepted = true;
|
||||
} else if (event.key == Qt.Key_K) {
|
||||
list.currentIndex = list.currentIndex == 0 ? list.count - 1 : list.currentIndex - 1;
|
||||
event.accepted = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
onAccepted: {
|
||||
if (list.currentItem) {
|
||||
list.currentItem.clicked(null);
|
||||
}
|
||||
}
|
||||
|
||||
onTextChanged: {
|
||||
list.currentIndex = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ListView {
|
||||
id: list
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
clip: true
|
||||
cacheBuffer: 0 // works around QTBUG-131106
|
||||
//reuseItems: true
|
||||
model: ScriptModel {
|
||||
values: DesktopEntries.applications.values
|
||||
.map(object => {
|
||||
const stxt = search.text.toLowerCase();
|
||||
const ntxt = object.name.toLowerCase();
|
||||
let si = 0;
|
||||
let ni = 0;
|
||||
|
||||
let matches = [];
|
||||
let startMatch = -1;
|
||||
|
||||
for (let si = 0; si != stxt.length; ++si) {
|
||||
const sc = stxt[si];
|
||||
|
||||
while (true) {
|
||||
// Drop any entries with letters that don't exist in order
|
||||
if (ni == ntxt.length) return null;
|
||||
|
||||
const nc = ntxt[ni++];
|
||||
|
||||
if (nc == sc) {
|
||||
if (startMatch == -1) startMatch = ni;
|
||||
break;
|
||||
} else {
|
||||
if (startMatch != -1) {
|
||||
matches.push({
|
||||
index: startMatch,
|
||||
length: ni - startMatch,
|
||||
});
|
||||
|
||||
startMatch = -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (startMatch != -1) {
|
||||
matches.push({
|
||||
index: startMatch,
|
||||
length: ni - startMatch + 1,
|
||||
});
|
||||
}
|
||||
|
||||
return {
|
||||
object: object,
|
||||
matches: matches,
|
||||
};
|
||||
})
|
||||
.filter(entry => entry !== null)
|
||||
.sort((a, b) => {
|
||||
let ai = 0;
|
||||
let bi = 0;
|
||||
let s = 0;
|
||||
|
||||
while (ai != a.matches.length && bi != b.matches.length) {
|
||||
const am = a.matches[ai];
|
||||
const bm = b.matches[bi];
|
||||
|
||||
s = bm.length - am.length;
|
||||
if (s != 0) return s;
|
||||
|
||||
s = am.index - bm.index;
|
||||
if (s != 0) return s;
|
||||
|
||||
++ai;
|
||||
++bi;
|
||||
}
|
||||
|
||||
s = a.matches.length - b.matches.length;
|
||||
if (s != 0) return s;
|
||||
|
||||
s = a.object.name.length - b.object.name.length;
|
||||
if (s != 0) return s;
|
||||
|
||||
return a.object.name.localeCompare(b.object.name);
|
||||
})
|
||||
.map(entry => entry.object);
|
||||
|
||||
onValuesChanged: list.currentIndex = 0
|
||||
}
|
||||
|
||||
topMargin: 7
|
||||
bottomMargin: list.count == 0 ? 0 : 7
|
||||
|
||||
add: Transition {
|
||||
NumberAnimation { property: "opacity"; from: 0; to: 1; duration: 100 }
|
||||
}
|
||||
|
||||
displaced: Transition {
|
||||
NumberAnimation { property: "y"; duration: 200; easing.type: Easing.OutCubic }
|
||||
NumberAnimation { property: "opacity"; to: 1; duration: 100 }
|
||||
}
|
||||
|
||||
move: Transition {
|
||||
NumberAnimation { property: "y"; duration: 200; easing.type: Easing.OutCubic }
|
||||
NumberAnimation { property: "opacity"; to: 1; duration: 100 }
|
||||
}
|
||||
|
||||
remove: Transition {
|
||||
NumberAnimation { property: "y"; duration: 200; easing.type: Easing.OutCubic }
|
||||
NumberAnimation { property: "opacity"; to: 0; duration: 100 }
|
||||
}
|
||||
|
||||
highlight: Rectangle {
|
||||
radius: 5
|
||||
color: "#20e0ffff"
|
||||
border.color: "#30ffffff"
|
||||
border.width: 1
|
||||
}
|
||||
|
||||
keyNavigationEnabled: true
|
||||
keyNavigationWraps: true
|
||||
highlightMoveVelocity: -1
|
||||
highlightMoveDuration: 100
|
||||
preferredHighlightBegin: list.topMargin
|
||||
preferredHighlightEnd: list.height - list.bottomMargin
|
||||
highlightRangeMode: ListView.ApplyRange
|
||||
snapMode: ListView.SnapToItem
|
||||
|
||||
readonly property real delegateHeight: 44
|
||||
|
||||
delegate: MouseArea {
|
||||
required property DesktopEntry modelData;
|
||||
|
||||
implicitHeight: list.delegateHeight
|
||||
implicitWidth: ListView.view.width
|
||||
|
||||
onClicked: {
|
||||
modelData.execute();
|
||||
persist.launcherOpen = false;
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
id: delegateLayout
|
||||
anchors {
|
||||
verticalCenter: parent.verticalCenter
|
||||
left: parent.left
|
||||
leftMargin: 5
|
||||
}
|
||||
|
||||
IconImage {
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
asynchronous: true
|
||||
implicitSize: 30
|
||||
source: Quickshell.iconPath(modelData.icon)
|
||||
}
|
||||
Text {
|
||||
text: modelData.name
|
||||
color: "#f0f0f0"
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: preview
|
||||
|
||||
anchors {
|
||||
left: content.right
|
||||
leftMargin: 5
|
||||
}
|
||||
|
||||
property real listYOffset: 7 + searchContainer.implicitHeight
|
||||
property real yCenter: list.contentY
|
||||
y: listYOffset - yCenter - height / 2 + (list.currentItem?.y ?? 0) + list.delegateHeight / 2
|
||||
|
||||
implicitWidth: previewContent.implicitWidth + previewContent.anchors.margins * 2
|
||||
implicitHeight: previewContent.implicitHeight + previewContent.anchors.margins * 2
|
||||
|
||||
color: ShellGlobals.colors.bar
|
||||
radius: 5
|
||||
border.color: ShellGlobals.colors.barOutline
|
||||
border.width: 1
|
||||
|
||||
property DesktopEntry entry: list.currentItem?.modelData ?? null
|
||||
property var toplevels: !entry ? []: ToplevelManager.toplevels.values
|
||||
.filter(toplevel => toplevel.appId.toLowerCase() == entry.id.toLowerCase())
|
||||
|
||||
// waits for hasContent before showing
|
||||
// cant use visible because layout wont run
|
||||
property real scaleMul: previewLayout.implicitWidth != 0 ? 1 : 0;
|
||||
Behavior on scaleMul { SmoothedAnimation { velocity: 5 } }
|
||||
|
||||
opacity: scaleMul
|
||||
|
||||
transform: Scale {
|
||||
origin.x: 0
|
||||
origin.y: preview.height / 2
|
||||
xScale: 0.9 + preview.scaleMul * 0.1
|
||||
yScale: xScale
|
||||
}
|
||||
|
||||
Item {
|
||||
id: previewContent
|
||||
anchors.fill: parent
|
||||
anchors.margins: 10
|
||||
implicitWidth: previewLayout.implicitWidth
|
||||
implicitHeight: previewLayout.implicitHeight
|
||||
|
||||
RowLayout {
|
||||
id: previewLayout
|
||||
|
||||
Repeater {
|
||||
model: preview.toplevels
|
||||
|
||||
Rectangle {
|
||||
id: delegate
|
||||
required property Toplevel modelData;
|
||||
color: "transparent"
|
||||
|
||||
visible: view.hasContent
|
||||
implicitWidth: previewContent.implicitWidth
|
||||
implicitHeight: previewContent.implicitHeight
|
||||
|
||||
ColumnLayout {
|
||||
id: previewContent
|
||||
anchors.centerIn: parent
|
||||
width: 240
|
||||
|
||||
ScreencopyView {
|
||||
id: view
|
||||
implicitWidth: 240
|
||||
implicitHeight: 200
|
||||
captureSource: modelData
|
||||
live: true
|
||||
}
|
||||
|
||||
Label {
|
||||
text: modelData.title
|
||||
Layout.fillWidth: true
|
||||
elide: Text.ElideRight
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
import QtQuick
|
||||
|
||||
Item {
|
||||
property real yCenter: 0
|
||||
}
|
||||
|
|
@ -4,8 +4,6 @@ import Quickshell.Wayland
|
|||
import Quickshell.Hyprland
|
||||
|
||||
PanelWindow {
|
||||
id: root
|
||||
|
||||
WlrLayershell.namespace: "shell:notifications"
|
||||
exclusionMode: ExclusionMode.Ignore
|
||||
color: "transparent"
|
||||
|
|
@ -18,9 +16,6 @@ PanelWindow {
|
|||
right: true
|
||||
}
|
||||
|
||||
property var bar: null
|
||||
//property var fullscreen: Hyprland.monitorFor(root.screen)?.activeWorkspace?.hasFullscreen ?? false
|
||||
|
||||
property Component notifComponent: DaemonNotification {}
|
||||
|
||||
NotificationDisplay {
|
||||
|
|
@ -28,8 +23,8 @@ PanelWindow {
|
|||
|
||||
anchors.fill: parent
|
||||
|
||||
stack.y: root.bar.compactState * 10 + 50//5 + 55//(NotificationManager.showTrayNotifs ? 55 : 0)
|
||||
stack.x: root.bar.leftMargin + root.bar.width - 10
|
||||
stack.y: 5 + 55//(NotificationManager.showTrayNotifs ? 55 : 0)
|
||||
stack.x: 72
|
||||
}
|
||||
|
||||
visible: display.stack.children.length != 0
|
||||
|
|
|
|||
|
|
@ -33,7 +33,6 @@ Scope {
|
|||
} else {
|
||||
console.log("screenshot failed")
|
||||
cleanupProc.running = true
|
||||
root.shooting = false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
//@ pragma ShellId shell
|
||||
//@ pragma IgnoreSystemSettings
|
||||
|
||||
import Quickshell
|
||||
import Quickshell.Io
|
||||
|
|
@ -14,8 +13,6 @@ import "launcher" as Launcher
|
|||
import "background"
|
||||
|
||||
ShellRoot {
|
||||
id: root
|
||||
|
||||
Component.onCompleted: [Lock.Controller, Launcher.Controller.init()]
|
||||
|
||||
Process {
|
||||
|
|
@ -41,11 +38,8 @@ ShellRoot {
|
|||
|
||||
Notifs.NotificationOverlay {
|
||||
screen: Quickshell.screens.find(s => s.name == "DP-1")
|
||||
bar: root.bars.find(b => b.screen == screen)
|
||||
}
|
||||
|
||||
property var bars: []
|
||||
|
||||
Variants {
|
||||
model: Quickshell.screens
|
||||
|
||||
|
|
@ -54,8 +48,6 @@ ShellRoot {
|
|||
|
||||
Bar.Bar {
|
||||
screen: modelData
|
||||
Component.onCompleted: root.bars = [...root.bars, this]
|
||||
Component.onDestruction: root.bars = root.bars.filter(b => b == this)
|
||||
}
|
||||
|
||||
PanelWindow {
|
||||
|
|
|
|||
|
|
@ -13,10 +13,10 @@
|
|||
boot.kernelModules = [ "kvm-amd" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
#boot.supportedFilesystems = [ "zfs" ];
|
||||
#networking.hostId = "fd4421b3";
|
||||
#systemd.services.zfs-mount.enable = false;
|
||||
#services.zfs.autoScrub.enable = true;
|
||||
boot.supportedFilesystems = [ "zfs" ];
|
||||
networking.hostId = "fd4421b3";
|
||||
systemd.services.zfs-mount.enable = false;
|
||||
services.zfs.autoScrub.enable = true;
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/c9cb1730-c0d1-4a2e-a092-12dfa7098476";
|
||||
|
|
@ -28,7 +28,6 @@
|
|||
fsType = "vfat";
|
||||
};
|
||||
|
||||
/*
|
||||
fileSystems."/pool/games" = {
|
||||
fsType = "zfs";
|
||||
device = "pool/games";
|
||||
|
|
@ -43,7 +42,6 @@
|
|||
fsType = "zfs";
|
||||
device = "pool/music";
|
||||
};
|
||||
*/
|
||||
|
||||
swapDevices = [ ];
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,7 @@
|
|||
env = AQ_DRM_DEVICES,/dev/dri/card1:/dev/dri/card2
|
||||
|
||||
monitor = eDP-1, 1920x1080@240Hz, 0x1440, 1
|
||||
monitor = DP-1, highres, 1350x0, 1
|
||||
#monitor = DP-1, 5120x1440@120Hz, 1350x0, 1
|
||||
monitor = DP-1, 5120x1440@120Hz, 1350x0, 1
|
||||
monitor = , preferred, auto, 1
|
||||
|
||||
workspace = 01, monitor:DP-1, default:true
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue