Compare commits
22 commits
8f3c7fff7e
...
384e0c24b3
Author | SHA1 | Date | |
---|---|---|---|
|
384e0c24b3 | ||
|
0665c3bfae | ||
|
177f8555a3 | ||
|
3b6033da4f | ||
|
107f3a0e3e | ||
|
85473011b2 | ||
|
ac29acb446 | ||
|
595e3996c3 | ||
|
c738d4137f | ||
|
5285b166b2 | ||
|
b01190a532 | ||
|
bc4be97591 | ||
|
315a06dbf2 | ||
|
dfa762d46e | ||
|
f4618c3271 | ||
|
5fd6448ba2 | ||
|
1ca52dc2ae | ||
|
f2710d1c19 | ||
|
585d764720 | ||
|
2caeb6f438 | ||
|
e1d746b0f5 | ||
|
b12b2e2911 |
|
@ -30,14 +30,16 @@
|
||||||
boot.tmp.useTmpfs = true;
|
boot.tmp.useTmpfs = true;
|
||||||
|
|
||||||
nix = {
|
nix = {
|
||||||
# Allow deleting store files with '.' in the name
|
# FIXME: https://github.com/nix-community/home-manager/issues/4692#issuecomment-2054003365
|
||||||
package = pkgs.nix.overrideAttrs (o: {
|
package = pkgs.nixVersions.unstable.overrideAttrs (o: {
|
||||||
patches =
|
src = pkgs.fetchFromGitHub {
|
||||||
(o.patches or [])
|
owner = "NixOS";
|
||||||
++ [
|
repo = "nix";
|
||||||
./overlays/nix/patch
|
rev = "60824fa97c588a0faf68ea61260a47e388b0a4e5";
|
||||||
];
|
sha256 = "10z/SoidVl9/lh56cMLj7ntJZHtVrumFvmn1YEqXmaM=";
|
||||||
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
# Edit nix.conf
|
# Edit nix.conf
|
||||||
settings = {
|
settings = {
|
||||||
# Store
|
# Store
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.vars) hostName mainUser neovimIde;
|
inherit (config.vars) hostName mainUser neovimIde;
|
||||||
inherit (lib) fileContents hasPrefix mdDoc optionalAttrs optionals removePrefix;
|
inherit (lib) fileContents hasPrefix optionalAttrs optionals removePrefix;
|
||||||
|
|
||||||
javaSdk = pkgs.temurin-bin-17;
|
javaSdk = pkgs.temurin-bin-17;
|
||||||
coc-stylelintplus-flake = coc-stylelintplus.packages.${pkgs.system}.default;
|
coc-stylelintplus-flake = coc-stylelintplus.packages.${pkgs.system}.default;
|
||||||
|
|
|
@ -11,7 +11,6 @@ in {
|
||||||
../../modules/kmscon.nix
|
../../modules/kmscon.nix
|
||||||
../../modules/printer.nix
|
../../modules/printer.nix
|
||||||
../../modules/ratbag-mice.nix
|
../../modules/ratbag-mice.nix
|
||||||
../../modules/razer.nix
|
|
||||||
../../modules/sshd.nix
|
../../modules/sshd.nix
|
||||||
../../modules/tailscale.nix
|
../../modules/tailscale.nix
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
pkgs:
|
pkgs:
|
||||||
pkgs.dockerTools.pullImage {
|
pkgs.dockerTools.pullImage {
|
||||||
imageName = "codeberg.org/forgejo/forgejo";
|
imageName = "codeberg.org/forgejo/forgejo";
|
||||||
imageDigest = "sha256:c3c662609a02cf6d384fa3698c59eceaf78b8799dbfee4ea4e438eb19f613095";
|
imageDigest = "sha256:0b50b596246cc4c439b6113411973f4c0639cb8556c7cf98e8017efdb5c3ab90";
|
||||||
sha256 = "0zx9ikm66bqdlkfgcj2v7si17qsc1m69xjjxf1ghdnia4wnwbch9";
|
sha256 = "0hw9qmhs5ykry51kc7cl1w1kcswrpza8dsam5b5samcb0ga609ng";
|
||||||
finalImageName = "codeberg.org/forgejo/forgejo";
|
finalImageName = "codeberg.org/forgejo/forgejo";
|
||||||
finalImageTag = "7";
|
finalImageTag = "7.0.1";
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
pkgs:
|
pkgs:
|
||||||
pkgs.dockerTools.pullImage {
|
pkgs.dockerTools.pullImage {
|
||||||
imageName = "postgres";
|
imageName = "postgres";
|
||||||
imageDigest = "sha256:c7b1085b1a26835716593174ee2169e76e8ee1d37cc8aab0b78a3e4da794d8cb";
|
imageDigest = "sha256:d6850c40261fdc9a4fb33b9521d9d641c4a5dcb82145f7bcc32c9258f81e75a2";
|
||||||
sha256 = "0zjcx747n54jnnliqd80v8ca43rl09dp3bh6xir5kxq2hw5p22i4";
|
sha256 = "0zjcx747n54jnnliqd80v8ca43rl09dp3bh6xir5kxq2hw5p22i4";
|
||||||
finalImageName = "postgres";
|
finalImageName = "postgres";
|
||||||
finalImageTag = "14";
|
finalImageTag = "14";
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
pkgs:
|
pkgs:
|
||||||
pkgs.dockerTools.pullImage {
|
pkgs.dockerTools.pullImage {
|
||||||
imageName = "postgres";
|
imageName = "postgres";
|
||||||
imageDigest = "sha256:c7b1085b1a26835716593174ee2169e76e8ee1d37cc8aab0b78a3e4da794d8cb";
|
imageDigest = "sha256:d6850c40261fdc9a4fb33b9521d9d641c4a5dcb82145f7bcc32c9258f81e75a2";
|
||||||
sha256 = "0zjcx747n54jnnliqd80v8ca43rl09dp3bh6xir5kxq2hw5p22i4";
|
sha256 = "0zjcx747n54jnnliqd80v8ca43rl09dp3bh6xir5kxq2hw5p22i4";
|
||||||
finalImageName = "postgres";
|
finalImageName = "postgres";
|
||||||
finalImageTag = "14";
|
finalImageTag = "14";
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
pkgs:
|
pkgs:
|
||||||
pkgs.dockerTools.pullImage {
|
pkgs.dockerTools.pullImage {
|
||||||
imageName = "rssbridge/rss-bridge";
|
imageName = "rssbridge/rss-bridge";
|
||||||
imageDigest = "sha256:9e501c795c0e47dffbd81c7a0169b2601582abcadc5d8d415188ab60196b4819";
|
imageDigest = "sha256:4d173965f264fe8921366eb7b2f3ab0072d039ed85146a193b3e2029161dd7c1";
|
||||||
sha256 = "0gc8d1hd44k7ib4d8rg8w6qlz5zhjzp8wfn1cfcwbgm883pca808";
|
sha256 = "0d3cfhfasd4y46z6jj8ij728lih6mxwkhlplxr0vqnbd8ch3jg3h";
|
||||||
finalImageName = "rssbridge/rss-bridge";
|
finalImageName = "rssbridge/rss-bridge";
|
||||||
finalImageTag = "latest";
|
finalImageTag = "latest";
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
pkgs:
|
pkgs:
|
||||||
pkgs.dockerTools.pullImage {
|
pkgs.dockerTools.pullImage {
|
||||||
imageName = "ghcr.io/immich-app/immich-machine-learning";
|
imageName = "ghcr.io/immich-app/immich-machine-learning";
|
||||||
imageDigest = "sha256:f825b7d09f4645671a76310575334e09fa2585c1023c3f1b66db815db0aa14ee";
|
imageDigest = "sha256:708ff677ab952dda9d7cb9343a6d650a6ac02a4e6c7447015f9df95c780cfc42";
|
||||||
sha256 = "0nrwj2qalgnzy2j53dyjv42aqy2v00fxzhzyxp9c50bk3wqbiv03";
|
sha256 = "0d94x4nw24zbkfqm3glhcf27awws2bkp8fr8vsc56fbzcv81xxv2";
|
||||||
finalImageName = "ghcr.io/immich-app/immich-machine-learning";
|
finalImageName = "ghcr.io/immich-app/immich-machine-learning";
|
||||||
finalImageTag = "v1.102.3";
|
finalImageTag = "v1.103.1";
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
pkgs:
|
pkgs:
|
||||||
pkgs.dockerTools.pullImage {
|
pkgs.dockerTools.pullImage {
|
||||||
imageName = "ghcr.io/immich-app/immich-server";
|
imageName = "ghcr.io/immich-app/immich-server";
|
||||||
imageDigest = "sha256:bce8c500bfd89f01af056460431c7b20cec16d08b07299fd530824f6d420b656";
|
imageDigest = "sha256:10761af14a6145353169042f29d2e49943de75b57a5d19251b365fe0d41ee15a";
|
||||||
sha256 = "1k7igyic7iqn6rmw6lwbjgpw8aljsl0s5j320anbqhpczp5drn74";
|
sha256 = "01mf31w6wmx2dhdwyjxs5iqw10bl70gdwd69wv3klzm2hhxbx388";
|
||||||
finalImageName = "ghcr.io/immich-app/immich-server";
|
finalImageName = "ghcr.io/immich-app/immich-server";
|
||||||
finalImageTag = "v1.102.3";
|
finalImageTag = "v1.103.1";
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
pkgs:
|
pkgs:
|
||||||
pkgs.dockerTools.pullImage {
|
pkgs.dockerTools.pullImage {
|
||||||
imageName = "ghcr.io/linuxserver/bazarr";
|
imageName = "ghcr.io/linuxserver/bazarr";
|
||||||
imageDigest = "sha256:2268b45c0b9f6b978eb75b7955459682659e146e18a3cb057e9656ea3dd80600";
|
imageDigest = "sha256:2c9269dd25c62d46e679a035849f32e963152ec44000e30f008d211a2f70e80c";
|
||||||
sha256 = "0yy3zrpahx7f3x7b6sx35qhg9xw07jjmp55sl02bjp8cmkrqn5bc";
|
sha256 = "14ljv9jcczhdd5pzdyvmf6zs57bikhrbqi6vwpgjdg5dyka3ikc5";
|
||||||
finalImageName = "ghcr.io/linuxserver/bazarr";
|
finalImageName = "ghcr.io/linuxserver/bazarr";
|
||||||
finalImageTag = "latest";
|
finalImageTag = "latest";
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
pkgs:
|
pkgs:
|
||||||
pkgs.dockerTools.pullImage {
|
pkgs.dockerTools.pullImage {
|
||||||
imageName = "ghcr.io/linuxserver/calibre-web";
|
imageName = "ghcr.io/linuxserver/calibre-web";
|
||||||
imageDigest = "sha256:153babfa106ea042777784f64b06d228e9d4e28e3b96db1a88e7800729b1cfe8";
|
imageDigest = "sha256:33ddda92b3f02bbd38a452b44f7343da25ada4c374fbac50c656bc04b995d93f";
|
||||||
sha256 = "0723kr8k7vvdxnb462lbdgq5b6nxnf9pm8m03wydrzazi23071y7";
|
sha256 = "1qylqqbngqxsl87jr7ks9pnkjnchy7jinkdc3y5ch7vxrml1919r";
|
||||||
finalImageName = "ghcr.io/linuxserver/calibre-web";
|
finalImageName = "ghcr.io/linuxserver/calibre-web";
|
||||||
finalImageTag = "latest";
|
finalImageTag = "latest";
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
pkgs:
|
pkgs:
|
||||||
pkgs.dockerTools.pullImage {
|
pkgs.dockerTools.pullImage {
|
||||||
imageName = "ghcr.io/linuxserver/calibre";
|
imageName = "ghcr.io/linuxserver/calibre";
|
||||||
imageDigest = "sha256:b9396864085793c57ae2ece29246839ad4eb29e8f007a8d8969c6eb98ff8e850";
|
imageDigest = "sha256:1175ad34511e6c8e82d7ce882123623433013bc2da9dee1c7d1c518996394443";
|
||||||
sha256 = "02rgpaf1zj7yp6ysy46srcyglhwpbrgi9gg0bq9sqigz5nc26qr3";
|
sha256 = "0k2pgsg9b305lkyr1rzpaav8x080iyh2kcnhzv5969f0fd9d3mkf";
|
||||||
finalImageName = "ghcr.io/linuxserver/calibre";
|
finalImageName = "ghcr.io/linuxserver/calibre";
|
||||||
finalImageTag = "latest";
|
finalImageTag = "latest";
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
pkgs:
|
pkgs:
|
||||||
pkgs.dockerTools.pullImage {
|
pkgs.dockerTools.pullImage {
|
||||||
imageName = "ghcr.io/linuxserver/prowlarr";
|
imageName = "ghcr.io/linuxserver/prowlarr";
|
||||||
imageDigest = "sha256:c1f9e2e8339642b32c8c8679b4d89058f3985699760fc7bc4e187a99f8549e86";
|
imageDigest = "sha256:576b61b488e3bd2cd0d56cd080189ebb60eb12f35280632d00f689f8e25e3524";
|
||||||
sha256 = "042vf3s2nl3wvjhqvabxjl4k8fmkpshdsan0mpwhj7y8zilbycsg";
|
sha256 = "066psqnpbaywmzymghvdwxi75hi5m5sw6lwgkwajfkx2mlc8zz7z";
|
||||||
finalImageName = "ghcr.io/linuxserver/prowlarr";
|
finalImageName = "ghcr.io/linuxserver/prowlarr";
|
||||||
finalImageTag = "latest";
|
finalImageTag = "latest";
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,7 +33,6 @@ in {
|
||||||
POSTGRES_HOST = "nextcloud-db";
|
POSTGRES_HOST = "nextcloud-db";
|
||||||
REDIS_HOST = "nextcloud-cache";
|
REDIS_HOST = "nextcloud-cache";
|
||||||
REDIS_HOST_PASSWORD = "password";
|
REDIS_HOST_PASSWORD = "password";
|
||||||
TRUSTED_PROXIES = "cloud.nelim.org nginx-server";
|
|
||||||
NEXTCLOUD_INIT_HTACCESS = "true";
|
NEXTCLOUD_INIT_HTACCESS = "true";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
pkgs:
|
pkgs:
|
||||||
pkgs.dockerTools.pullImage {
|
pkgs.dockerTools.pullImage {
|
||||||
imageName = "nextcloud";
|
imageName = "nextcloud";
|
||||||
imageDigest = "sha256:0a4e5f7e271888914cbf1e26b462f8cb44afb42681f404a32dcb47273c1eb446";
|
imageDigest = "sha256:3a77dd75fedae5c1e28b786f82e5a71c0758036d4991c5713c1513b6daa34358";
|
||||||
sha256 = "17mafd6ya0fg9h751shmkw4jyil1ix3vkpk87vm6jxxmw97hr8zx";
|
sha256 = "121a4vpp8wnw3z6ngpif4pyvkannxf7jqk6c2zqhl6lpkv9sbm0v";
|
||||||
finalImageName = "nextcloud";
|
finalImageName = "nextcloud";
|
||||||
finalImageTag = "28.0.4-fpm";
|
finalImageTag = "28.0.5-fpm";
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,14 +1,19 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
|
nix-eval-jobs,
|
||||||
|
nix-fast-build,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.vars) mainUser;
|
inherit (config.vars) mainUser;
|
||||||
inherit (config.sops) secrets;
|
inherit (config.sops) secrets;
|
||||||
|
|
||||||
nix-fast-buildPkg = pkgs.writeShellApplication {
|
nixPkg = {
|
||||||
name = "nix-fast-build";
|
nix = config.nix.package;
|
||||||
text = "nix run github:Mic92/nix-fast-build \"$@\"";
|
};
|
||||||
|
nix-fast-buildPkg = nix-fast-build.packages.${pkgs.system}.nix-fast-build.override {
|
||||||
|
nix-eval-jobs =
|
||||||
|
nix-eval-jobs.packages.${pkgs.system}.default.override nixPkg // nixPkg;
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
services.nix-serve = {
|
services.nix-serve = {
|
||||||
|
@ -31,7 +36,6 @@ in {
|
||||||
|
|
||||||
path = with pkgs; [
|
path = with pkgs; [
|
||||||
git
|
git
|
||||||
nix
|
|
||||||
nix-fast-buildPkg
|
nix-fast-buildPkg
|
||||||
openssh
|
openssh
|
||||||
];
|
];
|
||||||
|
|
393
flake.lock
393
flake.lock
|
@ -1,25 +1,5 @@
|
||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
"Hyprspace": {
|
|
||||||
"inputs": {
|
|
||||||
"hyprland": [
|
|
||||||
"hyprland"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1713989021,
|
|
||||||
"narHash": "sha256-oIpcibtKHP8e7yhYilK9+TaiOTApS4TqXQbdKqJpyWQ=",
|
|
||||||
"owner": "KZDKM",
|
|
||||||
"repo": "Hyprspace",
|
|
||||||
"rev": "a44d834af279f233a269d065d2e14fe4101d6f41",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "KZDKM",
|
|
||||||
"repo": "Hyprspace",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ags": {
|
"ags": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
@ -27,11 +7,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1713301451,
|
"lastModified": 1714402202,
|
||||||
"narHash": "sha256-LzYVqEukjOJjm4HGFe6rtHBiuJxAyPqd2MY1k5ci9QU=",
|
"narHash": "sha256-Ga7MdGc1CA+WwLB7xAEbuzXzGtEM2346kUDvq8ymgJc=",
|
||||||
"owner": "Aylur",
|
"owner": "Aylur",
|
||||||
"repo": "ags",
|
"repo": "ags",
|
||||||
"rev": "33bcaf34d5277031ecb97047fb8ddd44abd8d80e",
|
"rev": "bb91f7c8fdd2f51c79d3af3f2881cacbdff19f60",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -50,11 +30,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1713728172,
|
"lastModified": 1714329018,
|
||||||
"narHash": "sha256-rac5WwUyZGxVqcNh2PIOxXJFGPXBSFPfkox1AdqwVgk=",
|
"narHash": "sha256-q0vsfqjYB0Phx4HoykT2HwRZDuxFwaRI9SQeEDbqZkU=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "arion",
|
"repo": "arion",
|
||||||
"rev": "add0e67d2b83814667490985ea4ef1226d3b4511",
|
"rev": "efa008e12f590eea1a3e7f2088877dc9bdcc54b7",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -106,11 +86,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1714028800,
|
"lastModified": 1714374379,
|
||||||
"narHash": "sha256-fiQASqXfJAIkyNen7YB1FzDKg9eQg9MU1PiTp4QVv74=",
|
"narHash": "sha256-CZU1I6V2Iw26F9IHv0pzSjP+Gg5LEhpZ7ZA46ZlVdz0=",
|
||||||
"owner": "matt1432",
|
"owner": "matt1432",
|
||||||
"repo": "nixos-caddy-cloudflare",
|
"repo": "nixos-caddy-cloudflare",
|
||||||
"rev": "5fac03dc0bba7d446883f00f506d2121bc04e647",
|
"rev": "12aa149f2de32995ecb44fb6503fb0555652ba13",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -248,7 +228,10 @@
|
||||||
},
|
},
|
||||||
"flake-parts_3": {
|
"flake-parts_3": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": "nixpkgs-lib"
|
"nixpkgs-lib": [
|
||||||
|
"nix-eval-jobs",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1712014858,
|
"lastModified": 1712014858,
|
||||||
|
@ -265,6 +248,24 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-parts_4": {
|
"flake-parts_4": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": "nixpkgs-lib"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1698882062,
|
||||||
|
"narHash": "sha256-HkhafUayIqxXyHH1X8d9RDl1M2CkFgZLjKD3MzabiEo=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "8c9fa2545007b49a5db5f650ae91f227672c3877",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-parts_5": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": "nixpkgs-lib_2"
|
"nixpkgs-lib": "nixpkgs-lib_2"
|
||||||
},
|
},
|
||||||
|
@ -282,7 +283,25 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-parts_5": {
|
"flake-parts_6": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": "nixpkgs-lib_3"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1712014858,
|
||||||
|
"narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "9126214d0a59633752a136528f5f3b9aa8565b7d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-parts_7": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": [
|
"nixpkgs-lib": [
|
||||||
"nixpkgs-wayland",
|
"nixpkgs-wayland",
|
||||||
|
@ -392,11 +411,11 @@
|
||||||
"gpu-screen-recorder-src": {
|
"gpu-screen-recorder-src": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1714047774,
|
"lastModified": 1714173938,
|
||||||
"narHash": "sha256-st4tcl13jyqOnwBR2uP4el28VIF4SqiLPQ1xd9xUX9A=",
|
"narHash": "sha256-1PULc1djvATCoXn6jZRJqbE8RtEYEUHFhNMj738Hsd4=",
|
||||||
"ref": "refs/heads/master",
|
"ref": "refs/heads/master",
|
||||||
"rev": "4b28221a77cd1407208793cc84cfe4014607f3db",
|
"rev": "3143358c3bfc882fb94c1ea906630fc0aa7fd061",
|
||||||
"revCount": 573,
|
"revCount": 575,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://repo.dec05eba.com/gpu-screen-recorder"
|
"url": "https://repo.dec05eba.com/gpu-screen-recorder"
|
||||||
},
|
},
|
||||||
|
@ -475,6 +494,7 @@
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "juanfont",
|
"owner": "juanfont",
|
||||||
"repo": "headscale",
|
"repo": "headscale",
|
||||||
|
"rev": "fef8261339899fe526777a7aa42df57ca02021c5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -507,11 +527,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1714042918,
|
"lastModified": 1714515075,
|
||||||
"narHash": "sha256-4AItZA3EQIiSNAxliuYEJumw/LaVfrMv84gYyrs0r3U=",
|
"narHash": "sha256-azMK7aWH0eUc3IqU4Fg5rwZdB9WZBvimOGG3piqvtsY=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "0c5704eceefcb7bb238a958f532a86e3b59d76db",
|
"rev": "6d3b6dc9222c12b951169becdf4b0592ee9576ef",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -520,6 +540,31 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"hypr-official-plugins": {
|
||||||
|
"inputs": {
|
||||||
|
"hyprland": [
|
||||||
|
"hyprland"
|
||||||
|
],
|
||||||
|
"systems": [
|
||||||
|
"hypr-official-plugins",
|
||||||
|
"hyprland",
|
||||||
|
"systems"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1714219583,
|
||||||
|
"narHash": "sha256-s6yf/bsAum3sAXSxB5gDCHQoLMn5Skl9EWL8nvsXzog=",
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprland-plugins",
|
||||||
|
"rev": "97e9d252ffec654cdc69a2cea8b63a172795706b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprland-plugins",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"hyprcursor": {
|
"hyprcursor": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"hyprlang": [
|
"hyprlang": [
|
||||||
|
@ -585,11 +630,11 @@
|
||||||
"xdph": "xdph"
|
"xdph": "xdph"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1714051955,
|
"lastModified": 1714564780,
|
||||||
"narHash": "sha256-+KYD3UqhVKezaQflOykEl1qSjwSsbsFN3S0RSuYjPfI=",
|
"narHash": "sha256-OqpHFDNgzxTlhBcDiwK5E7/gqNUwaHQTx6ErZK0QovE=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "Hyprland",
|
"repo": "Hyprland",
|
||||||
"rev": "01df3b73d815beaa892849ae7bd4eddc94642dc7",
|
"rev": "d2899a6c272d4619295543b5b4c77b40fa1934bf",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -682,11 +727,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1713989318,
|
"lastModified": 1714171579,
|
||||||
"narHash": "sha256-WSsEQQxZQ+bsAWRhi1iXvP8sxgRyNtY3X1V3CfFdP5Q=",
|
"narHash": "sha256-eaWDIvt8ufUKKz3Lc2a3PyemLJG1m9RYlF+HP3hWbaw=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprwayland-scanner",
|
"repo": "hyprwayland-scanner",
|
||||||
"rev": "1cfe2d26a82ce794fd33ec06fa022e68501c5a45",
|
"rev": "126dad854f22fe30e6b82cd21808e76903d90ac5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -734,14 +779,14 @@
|
||||||
"lib-aggregate": {
|
"lib-aggregate": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils_3",
|
"flake-utils": "flake-utils_3",
|
||||||
"nixpkgs-lib": "nixpkgs-lib_3"
|
"nixpkgs-lib": "nixpkgs-lib_4"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1713701427,
|
"lastModified": 1714306226,
|
||||||
"narHash": "sha256-v6z8hz/UDaC/rbnkH+hxGFUxlNyseVntRetVpSxLU6c=",
|
"narHash": "sha256-CA7bfnDt9TcFc7I8eKHf72DodYUEETDPgmBFXBRP9/E=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "lib-aggregate",
|
"repo": "lib-aggregate",
|
||||||
"rev": "3b32a98eb3053f8c8ca55497d1881443ef2996e6",
|
"rev": "49d9b510614b9bd137e067eb31445a8feca83313",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -750,6 +795,22 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"libratbag-src": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1709658456,
|
||||||
|
"narHash": "sha256-9rlnGQ7kcXqX+8mFb0imnzLo0X6Nuca6fcMv+H6ZwEw=",
|
||||||
|
"owner": "libratbag",
|
||||||
|
"repo": "libratbag",
|
||||||
|
"rev": "8444ceb638b19c3fbeb073a5cd29f17c6d34dd07",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "libratbag",
|
||||||
|
"repo": "libratbag",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"modernx-src": {
|
"modernx-src": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
|
@ -771,11 +832,11 @@
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1713635132,
|
"lastModified": 1714557650,
|
||||||
"narHash": "sha256-lLftlafVmv9RPzCO7gTsswiD+Q0MoAP0FVXVoK3iGmE=",
|
"narHash": "sha256-N1qTL5wIlbbX7DorBaKOMYfz+gYoyf8LREMWVlOXNYc=",
|
||||||
"owner": "viperML",
|
"owner": "viperML",
|
||||||
"repo": "nh",
|
"repo": "nh",
|
||||||
"rev": "6c772f572fd17ed9181625e221e2365e9bffc3f6",
|
"rev": "e4eb011975bee4c3f47199cc01d2d986e24851bd",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -786,9 +847,11 @@
|
||||||
},
|
},
|
||||||
"nix-eval-jobs": {
|
"nix-eval-jobs": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts_5",
|
"flake-parts": "flake-parts_3",
|
||||||
"nix-github-actions": "nix-github-actions",
|
"nix-github-actions": "nix-github-actions",
|
||||||
"nixpkgs": "nixpkgs_6",
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
"treefmt-nix": "treefmt-nix"
|
"treefmt-nix": "treefmt-nix"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
|
@ -805,6 +868,49 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nix-eval-jobs_2": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-parts": "flake-parts_7",
|
||||||
|
"nix-github-actions": "nix-github-actions_2",
|
||||||
|
"nixpkgs": "nixpkgs_6",
|
||||||
|
"treefmt-nix": "treefmt-nix_3"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1713858845,
|
||||||
|
"narHash": "sha256-StJq7Zy+/iVBUAKFzhHWlsirFucZ3gNtzXhAYXAsNnw=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nix-eval-jobs",
|
||||||
|
"rev": "7b6640f2a10701bf0db16aff048070f400e8ea7c",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nix-eval-jobs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nix-fast-build": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-parts": "flake-parts_4",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"treefmt-nix": "treefmt-nix_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1713864757,
|
||||||
|
"narHash": "sha256-eBh+4DLKktrMWh0QfSFwugd4Gf2KO/X0VUTlRspR+9I=",
|
||||||
|
"owner": "Mic92",
|
||||||
|
"repo": "nix-fast-build",
|
||||||
|
"rev": "f024a66e6a1f83de95aba109287a97dd6ca76127",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "Mic92",
|
||||||
|
"repo": "nix-fast-build",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nix-formatter-pack": {
|
"nix-formatter-pack": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
@ -830,15 +936,15 @@
|
||||||
},
|
},
|
||||||
"nix-gaming": {
|
"nix-gaming": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts_3",
|
"flake-parts": "flake-parts_5",
|
||||||
"nixpkgs": "nixpkgs_2"
|
"nixpkgs": "nixpkgs_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1713921309,
|
"lastModified": 1714303849,
|
||||||
"narHash": "sha256-9/5xt3019W55Vu8MX9LlaFTFoNd4dwLqwvUEDWjn+KU=",
|
"narHash": "sha256-o/IgiwA0ZS/nMh5YB0bt+ae3Lt+tlbQouY/xL7tB5h0=",
|
||||||
"owner": "fufexan",
|
"owner": "fufexan",
|
||||||
"repo": "nix-gaming",
|
"repo": "nix-gaming",
|
||||||
"rev": "a21a6f3321682226e47f7ead4d2eba59a3f63654",
|
"rev": "dbb96ae98e723128cf5a612480ba6187113f5e49",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -848,6 +954,27 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nix-github-actions": {
|
"nix-github-actions": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nix-eval-jobs",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1703863825,
|
||||||
|
"narHash": "sha256-rXwqjtwiGKJheXB43ybM8NwWB8rO2dSRrEqes0S7F5Y=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nix-github-actions",
|
||||||
|
"rev": "5163432afc817cf8bd1f031418d1869e4c9d5547",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nix-github-actions",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nix-github-actions_2": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs-wayland",
|
"nixpkgs-wayland",
|
||||||
|
@ -876,11 +1003,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1713869268,
|
"lastModified": 1714273701,
|
||||||
"narHash": "sha256-o3CMQeu/S8/4zU0pMtYg51rd1FWdJsI2Xohzng1Ysdg=",
|
"narHash": "sha256-bmoeZ5zMSSO/e8P51yjrzaxA9uzA3SZAEFvih6S3LFo=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "nix-index-database",
|
"repo": "nix-index-database",
|
||||||
"rev": "dcb6ac44922858ce3a5b46f77a36d6030181460c",
|
"rev": "941c4973c824509e0356be455d89613611f76c8a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -936,16 +1063,16 @@
|
||||||
},
|
},
|
||||||
"nixd": {
|
"nixd": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts_4",
|
"flake-parts": "flake-parts_6",
|
||||||
"flake-root": "flake-root",
|
"flake-root": "flake-root",
|
||||||
"nixpkgs": "nixpkgs_4"
|
"nixpkgs": "nixpkgs_4"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1714002774,
|
"lastModified": 1714536133,
|
||||||
"narHash": "sha256-gj/MyKHqQdxfZKnmbsGVz2fkRbAVFKaEyWZZmgZsiaQ=",
|
"narHash": "sha256-zVRNhlvRaWxdwO1w77uZwolrUOCEA71OUtzlNwM+DEg=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixd",
|
"repo": "nixd",
|
||||||
"rev": "39ff96c1f1e7ea2584b55b96469b0a55e445c97c",
|
"rev": "891b5487b7dba00c85de0ef79bbc29ffeb936005",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -956,11 +1083,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1711668574,
|
"lastModified": 1714409183,
|
||||||
"narHash": "sha256-u1dfs0ASQIEr1icTVrsKwg2xToIpn7ZXxW3RHfHxshg=",
|
"narHash": "sha256-Wacm/DrzLD7mjFGnSxxyGkJgg2unU/dNdNgdngBH+RU=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "219951b495fc2eac67b1456824cc1ec1fd2ee659",
|
"rev": "576ecd43d3b864966b4423a853412d6177775e8b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -1005,11 +1132,11 @@
|
||||||
"nixpkgs-lib": {
|
"nixpkgs-lib": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"dir": "lib",
|
"dir": "lib",
|
||||||
"lastModified": 1711703276,
|
"lastModified": 1698611440,
|
||||||
"narHash": "sha256-iMUFArF0WCatKK6RzfUJknjem0H9m4KgorO/p3Dopkk=",
|
"narHash": "sha256-jPjHjrerhYDy3q9+s5EAsuhyhuknNfowY6yt6pjn9pc=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "d8fe5e6c92d0d190646fb9f1056741a229980089",
|
"rev": "0cbe9f69c234a7700596e943bfae7ef27a31b735",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -1040,11 +1167,29 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-lib_3": {
|
"nixpkgs-lib_3": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1713660444,
|
"dir": "lib",
|
||||||
"narHash": "sha256-2bVnrEGyWJhRNKspzfTJmVD/fsH9HQURD4cWpz79Ulw=",
|
"lastModified": 1711703276,
|
||||||
|
"narHash": "sha256-iMUFArF0WCatKK6RzfUJknjem0H9m4KgorO/p3Dopkk=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "d8fe5e6c92d0d190646fb9f1056741a229980089",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"dir": "lib",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-lib_4": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1714265296,
|
||||||
|
"narHash": "sha256-jVnKiCOoFulPT1zDdA4jfG/lnEnngdth5CT6rVDXEJ4=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixpkgs.lib",
|
"repo": "nixpkgs.lib",
|
||||||
"rev": "6882347415e352cfc9c277cc01f73e0f5cb7b93c",
|
"rev": "ade4fb7bbf04cd52bc1705734d5dc67755d77ec9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -1089,15 +1234,15 @@
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat",
|
"flake-compat": "flake-compat",
|
||||||
"lib-aggregate": "lib-aggregate",
|
"lib-aggregate": "lib-aggregate",
|
||||||
"nix-eval-jobs": "nix-eval-jobs",
|
"nix-eval-jobs": "nix-eval-jobs_2",
|
||||||
"nixpkgs": "nixpkgs_7"
|
"nixpkgs": "nixpkgs_7"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1714047868,
|
"lastModified": 1714525911,
|
||||||
"narHash": "sha256-uGbzMTV3Vs5pWqzeLPWXx8oe4EkidB73jzeaXmdcV2c=",
|
"narHash": "sha256-XYARtyCpKeL0IosMSzeHl6YFblV3n4y7plM+K9fg4N4=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixpkgs-wayland",
|
"repo": "nixpkgs-wayland",
|
||||||
"rev": "41903b991bc2dc248f39439e376339e5e2fd436c",
|
"rev": "4cbf82124f2c03fa5b1b669771c48f9927264684",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -1108,11 +1253,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1713596654,
|
"lastModified": 1714213793,
|
||||||
"narHash": "sha256-LJbHQQ5aX1LVth2ST+Kkse/DRzgxlVhTL1rxthvyhZc=",
|
"narHash": "sha256-Yg5D5LhyAZvd3DZrQQfJAVK8K3TkUYKooFtH1ulM0mw=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "fd16bb6d3bcca96039b11aa52038fafeb6e4f4be",
|
"rev": "d6f6eb2a984f2ba9a366c31e4d36d65465683450",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -1156,11 +1301,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_5": {
|
"nixpkgs_5": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1713895582,
|
"lastModified": 1714253743,
|
||||||
"narHash": "sha256-cfh1hi+6muQMbi9acOlju3V1gl8BEaZBXBR9jQfQi4U=",
|
"narHash": "sha256-mdTQw2XlariysyScCv2tTE45QSU9v/ezLcHJ22f0Nxc=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "572af610f6151fd41c212f897c71f7056e3fb518",
|
"rev": "58a1abdbae3217ca6b702f03d3b35125d88a2994",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -1188,11 +1333,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_7": {
|
"nixpkgs_7": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1713895582,
|
"lastModified": 1714253743,
|
||||||
"narHash": "sha256-cfh1hi+6muQMbi9acOlju3V1gl8BEaZBXBR9jQfQi4U=",
|
"narHash": "sha256-mdTQw2XlariysyScCv2tTE45QSU9v/ezLcHJ22f0Nxc=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "572af610f6151fd41c212f897c71f7056e3fb518",
|
"rev": "58a1abdbae3217ca6b702f03d3b35125d88a2994",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -1310,11 +1455,11 @@
|
||||||
},
|
},
|
||||||
"nur": {
|
"nur": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1714056679,
|
"lastModified": 1714560279,
|
||||||
"narHash": "sha256-RKilQQQiuVVeRTRjJkZSmhsG60MG0ln9d9eSn07Zbt0=",
|
"narHash": "sha256-ULWq8u8EushwKSPFJucS7lrHYHIp7ecd/wnpc9WsprA=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "NUR",
|
"repo": "NUR",
|
||||||
"rev": "9410133c3f453de8074e16f06926a5302bc19b29",
|
"rev": "09f5a5a5276a717be553571b8bccea865f06c23d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -1443,6 +1588,22 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"piper-src": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1708275645,
|
||||||
|
"narHash": "sha256-ar1f0d2dzgUCL9F/AI1la26i/4Ab6SgxmeTjiI1J4z0=",
|
||||||
|
"owner": "libratbag",
|
||||||
|
"repo": "piper",
|
||||||
|
"rev": "66c1897540d107e48227ce05c5ac51ea41454feb",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "libratbag",
|
||||||
|
"repo": "piper",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"plymouth-theme-src": {
|
"plymouth-theme-src": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
|
@ -1527,7 +1688,6 @@
|
||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"Hyprspace": "Hyprspace",
|
|
||||||
"ags": "ags",
|
"ags": "ags",
|
||||||
"arion": "arion",
|
"arion": "arion",
|
||||||
"astal": "astal",
|
"astal": "astal",
|
||||||
|
@ -1543,12 +1703,16 @@
|
||||||
"gtk-theme-src": "gtk-theme-src",
|
"gtk-theme-src": "gtk-theme-src",
|
||||||
"headscale": "headscale",
|
"headscale": "headscale",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
|
"hypr-official-plugins": "hypr-official-plugins",
|
||||||
"hypridle": "hypridle",
|
"hypridle": "hypridle",
|
||||||
"hyprland": "hyprland",
|
"hyprland": "hyprland",
|
||||||
"jellyfin-flake": "jellyfin-flake",
|
"jellyfin-flake": "jellyfin-flake",
|
||||||
"jellyfin-ultrachromic-src": "jellyfin-ultrachromic-src",
|
"jellyfin-ultrachromic-src": "jellyfin-ultrachromic-src",
|
||||||
|
"libratbag-src": "libratbag-src",
|
||||||
"modernx-src": "modernx-src",
|
"modernx-src": "modernx-src",
|
||||||
"nh": "nh",
|
"nh": "nh",
|
||||||
|
"nix-eval-jobs": "nix-eval-jobs",
|
||||||
|
"nix-fast-build": "nix-fast-build",
|
||||||
"nix-gaming": "nix-gaming",
|
"nix-gaming": "nix-gaming",
|
||||||
"nix-index-db": "nix-index-db",
|
"nix-index-db": "nix-index-db",
|
||||||
"nix-melt": "nix-melt",
|
"nix-melt": "nix-melt",
|
||||||
|
@ -1563,6 +1727,7 @@
|
||||||
"pam-fprint-grosshack-src": "pam-fprint-grosshack-src",
|
"pam-fprint-grosshack-src": "pam-fprint-grosshack-src",
|
||||||
"pcsd": "pcsd",
|
"pcsd": "pcsd",
|
||||||
"persist-properties-src": "persist-properties-src",
|
"persist-properties-src": "persist-properties-src",
|
||||||
|
"piper-src": "piper-src",
|
||||||
"plymouth-theme-src": "plymouth-theme-src",
|
"plymouth-theme-src": "plymouth-theme-src",
|
||||||
"pointer-event-src": "pointer-event-src",
|
"pointer-event-src": "pointer-event-src",
|
||||||
"pokemon-colorscripts-src": "pokemon-colorscripts-src",
|
"pokemon-colorscripts-src": "pokemon-colorscripts-src",
|
||||||
|
@ -1815,6 +1980,48 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"treefmt-nix": {
|
"treefmt-nix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nix-eval-jobs",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1711963903,
|
||||||
|
"narHash": "sha256-N3QDhoaX+paWXHbEXZapqd1r95mdshxToGowtjtYkGI=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"rev": "49dc4a92b02b8e68798abd99184f228243b6e3ac",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"treefmt-nix_2": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nix-fast-build",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1698438538,
|
||||||
|
"narHash": "sha256-AWxaKTDL3MtxaVTVU5lYBvSnlspOS0Fjt8GxBgnU0Do=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"rev": "5deb8dc125a9f83b65ca86cf0c8167c46593e0b1",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"treefmt-nix_3": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs-wayland",
|
"nixpkgs-wayland",
|
||||||
|
@ -1893,11 +2100,11 @@
|
||||||
"systems": "systems_7"
|
"systems": "systems_7"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1713427743,
|
"lastModified": 1714464091,
|
||||||
"narHash": "sha256-5riZ/6yjgsW++SUIyJP5rFG65tkjJKgtvDLIGaoiHN0=",
|
"narHash": "sha256-yGqYMbXR2GRXoT7iLz5k8995fpAa1FSKgyGYK2Y6nR8=",
|
||||||
"owner": "danyspin97",
|
"owner": "danyspin97",
|
||||||
"repo": "wpaperd",
|
"repo": "wpaperd",
|
||||||
"rev": "ee109b08066ed9893cf898b24e16354f547475a4",
|
"rev": "204b1c550ad6bfa9f2b855de4666c3495d204420",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
44
flake.nix
44
flake.nix
|
@ -93,7 +93,7 @@
|
||||||
alejandra
|
alejandra
|
||||||
git
|
git
|
||||||
|
|
||||||
(pkgs.writeShellScriptBin "mkIso" (lib.concatStrings [
|
(writeShellScriptBin "mkIso" (lib.concatStrings [
|
||||||
"nix build $(realpath /etc/nixos)#nixosConfigurations."
|
"nix build $(realpath /etc/nixos)#nixosConfigurations."
|
||||||
"live-image.config.system.build.isoImage"
|
"live-image.config.system.build.isoImage"
|
||||||
]))
|
]))
|
||||||
|
@ -102,7 +102,7 @@
|
||||||
|
|
||||||
ags = pkgs.mkShell {
|
ags = pkgs.mkShell {
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
nodejs_18
|
nodejs_latest
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -152,6 +152,7 @@
|
||||||
type = "github";
|
type = "github";
|
||||||
owner = "Mic92";
|
owner = "Mic92";
|
||||||
repo = "sops-nix";
|
repo = "sops-nix";
|
||||||
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -198,6 +199,9 @@
|
||||||
owner = "juanfont";
|
owner = "juanfont";
|
||||||
repo = "headscale";
|
repo = "headscale";
|
||||||
|
|
||||||
|
# FIXME: doesn't work on latest
|
||||||
|
rev = "fef8261339899fe526777a7aa42df57ca02021c5";
|
||||||
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -267,10 +271,10 @@
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
Hyprspace = {
|
hypr-official-plugins = {
|
||||||
type = "github";
|
type = "github";
|
||||||
owner = "KZDKM";
|
owner = "hyprwm";
|
||||||
repo = "Hyprspace";
|
repo = "hyprland-plugins";
|
||||||
|
|
||||||
inputs.hyprland.follows = "hyprland";
|
inputs.hyprland.follows = "hyprland";
|
||||||
};
|
};
|
||||||
|
@ -355,6 +359,22 @@
|
||||||
owner = "nix-community";
|
owner = "nix-community";
|
||||||
repo = "nix-melt";
|
repo = "nix-melt";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
nix-eval-jobs = {
|
||||||
|
type = "github";
|
||||||
|
owner = "nix-community";
|
||||||
|
repo = "nix-eval-jobs";
|
||||||
|
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
nix-fast-build = {
|
||||||
|
type = "github";
|
||||||
|
owner = "Mic92";
|
||||||
|
repo = "nix-fast-build";
|
||||||
|
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
#
|
#
|
||||||
|
|
||||||
# -= Non-flake inputs =-
|
# -= Non-flake inputs =-
|
||||||
|
@ -409,6 +429,20 @@
|
||||||
url = "https://repo.dec05eba.com/gpu-screen-recorder";
|
url = "https://repo.dec05eba.com/gpu-screen-recorder";
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
libratbag-src = {
|
||||||
|
type = "github";
|
||||||
|
owner = "libratbag";
|
||||||
|
repo = "libratbag";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
piper-src = {
|
||||||
|
type = "github";
|
||||||
|
owner = "libratbag";
|
||||||
|
repo = "piper";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
##
|
##
|
||||||
|
|
||||||
## MPV scripts
|
## MPV scripts
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
{...}: {
|
|
||||||
programs = {
|
|
||||||
wofi = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
prompt = "";
|
|
||||||
allow_images = true;
|
|
||||||
normal_window = true;
|
|
||||||
image_size = "48";
|
|
||||||
matching = "fuzzy";
|
|
||||||
insensitive = true;
|
|
||||||
no_actions = true;
|
|
||||||
};
|
|
||||||
style = builtins.readFile ./style.css;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,92 +0,0 @@
|
||||||
/* https://github.com/dracula/wofi/blob/master/style.css */
|
|
||||||
* {
|
|
||||||
font-size: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
window,
|
|
||||||
undershoot {
|
|
||||||
all: unset;
|
|
||||||
}
|
|
||||||
|
|
||||||
#input {
|
|
||||||
all: unset;
|
|
||||||
border-radius: 9px;
|
|
||||||
color: #f8f8f2;
|
|
||||||
background-color: rgba(#44475a, 0.6);
|
|
||||||
border: 1px solid #44475a;
|
|
||||||
padding: 8px;
|
|
||||||
margin: 16.2px;
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#outer-box {
|
|
||||||
all: unset;
|
|
||||||
box-shadow: 0 0 4.5px 0 rgba(0, 0, 0, 0.6);
|
|
||||||
border: 2px solid rgba(189, 147, 249, 0.8);
|
|
||||||
border-radius: 25px;
|
|
||||||
background-color: rgba(40, 42, 54, 0.8);
|
|
||||||
color: #f8f8f2;
|
|
||||||
padding: 16.2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#inner-box {
|
|
||||||
padding: 16.2px;
|
|
||||||
min-width: 500px;
|
|
||||||
min-height: 450px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#scroll scrollbar, #scroll scrollbar * {
|
|
||||||
all: unset;
|
|
||||||
}
|
|
||||||
|
|
||||||
#scroll scrollbar {
|
|
||||||
transition: 200ms;
|
|
||||||
background-color: rgba(23, 23, 23, 0.3);
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
background-color: rgba(23, 23, 23, 0.7);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#scroll scrollbar.vertical:hover slider {
|
|
||||||
background-color: rgba(238, 238, 238, 0.7);
|
|
||||||
min-width: .6em;
|
|
||||||
}
|
|
||||||
#scroll scrollbar.horizontal:hover slider {
|
|
||||||
background-color: rgba(238, 238, 238, 0.7);
|
|
||||||
min-height: .6em;
|
|
||||||
}
|
|
||||||
#scroll .vertical slider {
|
|
||||||
background-color: rgba(238, 238, 238, 0.5);
|
|
||||||
border-radius: 9px;
|
|
||||||
min-width: .4em;
|
|
||||||
min-height: 2em;
|
|
||||||
transition: 200ms;
|
|
||||||
}
|
|
||||||
#scroll .horizontal slider {
|
|
||||||
background-color: rgba(238, 238, 238, 0.5);
|
|
||||||
border-radius: 9px;
|
|
||||||
min-height: .4em;
|
|
||||||
min-width: 2em;
|
|
||||||
transition: 200ms;
|
|
||||||
}
|
|
||||||
|
|
||||||
#entry {
|
|
||||||
all: unset;
|
|
||||||
padding: 9px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#entry image, #entry label {
|
|
||||||
all: unset;
|
|
||||||
}
|
|
||||||
#entry image {
|
|
||||||
margin-right: 9px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#entry:selected {
|
|
||||||
background-color: rgba(189, 147, 249, 0.5);
|
|
||||||
border-radius: 9px;
|
|
||||||
box-shadow: inset 0 0 0 3px rgba(238, 238, 238, 0.03);
|
|
||||||
}
|
|
||||||
#entry:selected image {
|
|
||||||
-gtk-icon-shadow: 3px 3px rgba(0, 0, 0, 0.8);
|
|
||||||
}
|
|
19
modules/ags/clipboard/default.nix
Normal file
19
modules/ags/clipboard/default.nix
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
{
|
||||||
|
cliphist,
|
||||||
|
gawk,
|
||||||
|
imagemagick,
|
||||||
|
ripgrep,
|
||||||
|
writeShellApplication,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
writeShellApplication {
|
||||||
|
name = "clipboard-manager";
|
||||||
|
runtimeInputs = [
|
||||||
|
cliphist
|
||||||
|
gawk
|
||||||
|
imagemagick
|
||||||
|
ripgrep
|
||||||
|
];
|
||||||
|
|
||||||
|
text = builtins.readFile ./script.sh;
|
||||||
|
}
|
45
modules/ags/clipboard/script.sh
Executable file
45
modules/ags/clipboard/script.sh
Executable file
|
@ -0,0 +1,45 @@
|
||||||
|
set +o errexit
|
||||||
|
|
||||||
|
# Modified from https://github.com/sentriz/cliphist/blob/master/contrib/cliphist-wofi-img
|
||||||
|
|
||||||
|
# set up thumbnail directory
|
||||||
|
thumb_dir="/tmp/cliphist/thumbs"
|
||||||
|
mkdir -p "$thumb_dir"
|
||||||
|
|
||||||
|
cliphist_list="$(cliphist list)"
|
||||||
|
|
||||||
|
# delete thumbnails in cache but not in cliphist
|
||||||
|
for thumb in "$thumb_dir"/*; do
|
||||||
|
clip_id="${thumb##*/}"
|
||||||
|
clip_id="${clip_id%.*}"
|
||||||
|
check=$(rg <<< "$cliphist_list" "^$clip_id\s")
|
||||||
|
if [ -z "$check" ]; then
|
||||||
|
>&2 rm -v "$thumb"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# create thumbnail if image not processed already
|
||||||
|
read -r -d '' prog <<EOF
|
||||||
|
/^[0-9]+\s<meta http-equiv=/ { next }
|
||||||
|
|
||||||
|
match(\$0, /^([0-9]+)\s(\[\[\s)?binary.*(jpg|jpeg|png|bmp)/, grp) {
|
||||||
|
image = grp[1]"."grp[3]
|
||||||
|
system("[ -f $thumb_dir/"image" ] || echo " grp[1] "\\\\\t | cliphist decode | convert - -resize '256x256>' $thumb_dir/"image )
|
||||||
|
print "img:$thumb_dir/"image
|
||||||
|
next
|
||||||
|
}
|
||||||
|
|
||||||
|
1
|
||||||
|
EOF
|
||||||
|
|
||||||
|
output=$(gawk <<< "$cliphist_list" "$prog")
|
||||||
|
|
||||||
|
# Use a while loop with read to iterate over each line
|
||||||
|
echo "$output" | while IFS= read -r line; do
|
||||||
|
if [[ ! $line =~ ^img:/tmp/cliphist/thumbs ]]; then
|
||||||
|
[[ $line =~ ([0-9]+) ]]
|
||||||
|
line=${BASH_REMATCH[1]}
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "$line"
|
||||||
|
done
|
|
@ -4,6 +4,7 @@ import Pointers from './services/pointers.ts';
|
||||||
|
|
||||||
import AppLauncher from './ts/applauncher/main.ts';
|
import AppLauncher from './ts/applauncher/main.ts';
|
||||||
import Bar from './ts/bar/binto.ts';
|
import Bar from './ts/bar/binto.ts';
|
||||||
|
import Clipboard from './ts/clipboard/main.ts';
|
||||||
import { NotifPopups, NotifCenter } from './ts/notifications/binto.ts';
|
import { NotifPopups, NotifCenter } from './ts/notifications/binto.ts';
|
||||||
import OSD from './ts/osd/main.ts';
|
import OSD from './ts/osd/main.ts';
|
||||||
import Powermenu from './ts/powermenu.ts';
|
import Powermenu from './ts/powermenu.ts';
|
||||||
|
@ -24,6 +25,7 @@ App.config({
|
||||||
|
|
||||||
windows: () => [
|
windows: () => [
|
||||||
AppLauncher(),
|
AppLauncher(),
|
||||||
|
Clipboard(),
|
||||||
NotifCenter(),
|
NotifCenter(),
|
||||||
Powermenu(),
|
Powermenu(),
|
||||||
|
|
||||||
|
|
|
@ -25,26 +25,3 @@
|
||||||
background-color: $bgfull;
|
background-color: $bgfull;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.razer {
|
|
||||||
padding: 0 5px;
|
|
||||||
background: $bgfull;
|
|
||||||
|
|
||||||
.low {
|
|
||||||
color: $red;
|
|
||||||
}
|
|
||||||
|
|
||||||
.medium {
|
|
||||||
color: $yellow;
|
|
||||||
}
|
|
||||||
|
|
||||||
.high {
|
|
||||||
color: $green;
|
|
||||||
}
|
|
||||||
|
|
||||||
image {
|
|
||||||
padding-right: 5px;
|
|
||||||
font-size: 22px;
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
83
modules/ags/config/scss/binto-widgets/clipboard.scss
Normal file
83
modules/ags/config/scss/binto-widgets/clipboard.scss
Normal file
|
@ -0,0 +1,83 @@
|
||||||
|
.clipboard {
|
||||||
|
all: unset;
|
||||||
|
border: 2px solid $contrast-bg;
|
||||||
|
background-color: $bg;
|
||||||
|
color: #f8f8f2;
|
||||||
|
padding: 2px;
|
||||||
|
|
||||||
|
* {
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
list, row {
|
||||||
|
all: unset;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header {
|
||||||
|
margin: 16.2px;
|
||||||
|
margin-bottom: 0;
|
||||||
|
|
||||||
|
image, entry {
|
||||||
|
all: unset;
|
||||||
|
border-radius: 9px;
|
||||||
|
color: #f8f8f2;
|
||||||
|
background-color: rgba(#44475a, 0.6);
|
||||||
|
border: 1px solid #44475a;
|
||||||
|
padding: 4.5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
image {
|
||||||
|
margin-right: 9px;
|
||||||
|
-gtk-icon-transform: scale(0.8);
|
||||||
|
font-size: 25.6px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
scrolledwindow {
|
||||||
|
padding: 10px;
|
||||||
|
padding-bottom: 0;
|
||||||
|
min-width: 900px;
|
||||||
|
min-height: 750px;
|
||||||
|
|
||||||
|
scrollbar, scrollbar * {
|
||||||
|
all: unset;
|
||||||
|
}
|
||||||
|
|
||||||
|
scrollbar.vertical {
|
||||||
|
transition: 200ms;
|
||||||
|
background-color: rgba(23, 23, 23, 0.3);
|
||||||
|
margin: 20px 0;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-color: rgba(23, 23, 23, 0.7);
|
||||||
|
|
||||||
|
slider {
|
||||||
|
background-color: rgba(238, 238, 238, 0.7);
|
||||||
|
min-width: .6em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
slider {
|
||||||
|
background-color: rgba(238, 238, 238, 0.5);
|
||||||
|
border-radius: 9px;
|
||||||
|
min-width: .4em;
|
||||||
|
min-height: 2em;
|
||||||
|
transition: 200ms;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.item {
|
||||||
|
all: unset;
|
||||||
|
transition: 200ms;
|
||||||
|
border-radius: 9px;
|
||||||
|
|
||||||
|
box {
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
*:selected, .item:hover, .item:focus {
|
||||||
|
background-color: #363449;
|
||||||
|
}
|
||||||
|
}
|
|
@ -48,7 +48,6 @@
|
||||||
.notification-list-box {
|
.notification-list-box {
|
||||||
background: $bgfull;
|
background: $bgfull;
|
||||||
padding: 0 12px;
|
padding: 0 12px;
|
||||||
box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.5);
|
|
||||||
|
|
||||||
scrollbar {
|
scrollbar {
|
||||||
all: unset;
|
all: unset;
|
||||||
|
|
|
@ -15,3 +15,4 @@ undershoot {
|
||||||
@import './binto-widgets/notification-center';
|
@import './binto-widgets/notification-center';
|
||||||
@import './binto-widgets/osd';
|
@import './binto-widgets/osd';
|
||||||
@import './binto-widgets/powermenu';
|
@import './binto-widgets/powermenu';
|
||||||
|
@import './binto-widgets/clipboard';
|
||||||
|
|
84
modules/ags/config/scss/wim-widgets/clipboard.scss
Normal file
84
modules/ags/config/scss/wim-widgets/clipboard.scss
Normal file
|
@ -0,0 +1,84 @@
|
||||||
|
.clipboard {
|
||||||
|
all: unset;
|
||||||
|
border: 2px solid $contrast-bg;
|
||||||
|
border-radius: 25px;
|
||||||
|
background-color: $bg;
|
||||||
|
color: #f8f8f2;
|
||||||
|
padding: 2px;
|
||||||
|
|
||||||
|
* {
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
list, row {
|
||||||
|
all: unset;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header {
|
||||||
|
margin: 16.2px;
|
||||||
|
margin-bottom: 0;
|
||||||
|
|
||||||
|
image, entry {
|
||||||
|
all: unset;
|
||||||
|
border-radius: 9px;
|
||||||
|
color: #f8f8f2;
|
||||||
|
background-color: rgba(#44475a, 0.6);
|
||||||
|
border: 1px solid #44475a;
|
||||||
|
padding: 4.5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
image {
|
||||||
|
margin-right: 9px;
|
||||||
|
-gtk-icon-transform: scale(0.8);
|
||||||
|
font-size: 25.6px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
scrolledwindow {
|
||||||
|
padding: 10px;
|
||||||
|
padding-bottom: 0;
|
||||||
|
min-width: 900px;
|
||||||
|
min-height: 750px;
|
||||||
|
|
||||||
|
scrollbar, scrollbar * {
|
||||||
|
all: unset;
|
||||||
|
}
|
||||||
|
|
||||||
|
scrollbar.vertical {
|
||||||
|
transition: 200ms;
|
||||||
|
background-color: rgba(23, 23, 23, 0.3);
|
||||||
|
margin: 20px 0;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-color: rgba(23, 23, 23, 0.7);
|
||||||
|
|
||||||
|
slider {
|
||||||
|
background-color: rgba(238, 238, 238, 0.7);
|
||||||
|
min-width: .6em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
slider {
|
||||||
|
background-color: rgba(238, 238, 238, 0.5);
|
||||||
|
border-radius: 9px;
|
||||||
|
min-width: .4em;
|
||||||
|
min-height: 2em;
|
||||||
|
transition: 200ms;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.item {
|
||||||
|
all: unset;
|
||||||
|
transition: 200ms;
|
||||||
|
border-radius: 9px;
|
||||||
|
|
||||||
|
box {
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
*:selected, .item:hover, .item:focus {
|
||||||
|
background-color: #363449;
|
||||||
|
}
|
||||||
|
}
|
|
@ -54,7 +54,6 @@
|
||||||
padding: 0 12px;
|
padding: 0 12px;
|
||||||
border-radius: 30px;
|
border-radius: 30px;
|
||||||
border-top: 2px solid $contrast-bg;
|
border-top: 2px solid $contrast-bg;
|
||||||
box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.5);
|
|
||||||
|
|
||||||
scrollbar {
|
scrollbar {
|
||||||
all: unset;
|
all: unset;
|
||||||
|
|
|
@ -21,3 +21,4 @@ undershoot {
|
||||||
@import "./wim-widgets/applauncher";
|
@import "./wim-widgets/applauncher";
|
||||||
@import "./wim-widgets/osd";
|
@import "./wim-widgets/osd";
|
||||||
@import "./wim-widgets/osk";
|
@import "./wim-widgets/osk";
|
||||||
|
@import "./wim-widgets/clipboard";
|
||||||
|
|
|
@ -49,7 +49,7 @@ class GSR extends Service {
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
logError,
|
() => {/**/},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -65,7 +65,7 @@ class GSR extends Service {
|
||||||
{},
|
{},
|
||||||
Notifications.popupTimeout,
|
Notifications.popupTimeout,
|
||||||
);
|
);
|
||||||
}).catch(logError);
|
}).catch(console.error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,7 @@ const Applauncher = (window_name = 'applauncher') => {
|
||||||
const s1 = fzfResults.find((r) => r.item.name === row1)?.score ?? 0;
|
const s1 = fzfResults.find((r) => r.item.name === row1)?.score ?? 0;
|
||||||
const s2 = fzfResults.find((r) => r.item.name === row2)?.score ?? 0;
|
const s2 = fzfResults.find((r) => r.item.name === row2)?.score ?? 0;
|
||||||
|
|
||||||
return s1 - s2;
|
return s2 - s1;
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,6 @@ import BarRevealer from './fullscreen.ts';
|
||||||
import Clock from './items/clock.ts';
|
import Clock from './items/clock.ts';
|
||||||
import CurrentWindow from './items/current-window';
|
import CurrentWindow from './items/current-window';
|
||||||
import NotifButton from './items/notif-button.ts';
|
import NotifButton from './items/notif-button.ts';
|
||||||
import RazerStats from './items/razer-stats.ts';
|
|
||||||
import SysTray from './items/systray.ts';
|
import SysTray from './items/systray.ts';
|
||||||
|
|
||||||
const PADDING = 20;
|
const PADDING = 20;
|
||||||
|
@ -29,10 +28,6 @@ export default () => BarRevealer({
|
||||||
Separator(PADDING),
|
Separator(PADDING),
|
||||||
|
|
||||||
SysTray(),
|
SysTray(),
|
||||||
|
|
||||||
Separator(PADDING / 2 / 2),
|
|
||||||
|
|
||||||
RazerStats(),
|
|
||||||
],
|
],
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
|
|
@ -1,93 +0,0 @@
|
||||||
import { execAsync, interval } from 'resource:///com/github/Aylur/ags/utils.js';
|
|
||||||
|
|
||||||
const { Box, Icon, Label } = Widget;
|
|
||||||
|
|
||||||
const RAZER_POLL = 10000;
|
|
||||||
const LOW_BATT = 20;
|
|
||||||
|
|
||||||
const RazerBat = Variable({
|
|
||||||
battery: 0,
|
|
||||||
charging: false,
|
|
||||||
sleeping: false,
|
|
||||||
disconnected: true,
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
const fetchInfo = () => {
|
|
||||||
execAsync([
|
|
||||||
'bash',
|
|
||||||
'-c',
|
|
||||||
"polychromatic-cli -n 'Razer Naga Pro (Wired)' -k" +
|
|
||||||
' || ' +
|
|
||||||
"polychromatic-cli -n 'Razer Naga Pro (Wireless)' -k",
|
|
||||||
|
|
||||||
]).then((out) => {
|
|
||||||
const batteryMatches = out.split('\n')
|
|
||||||
.filter((i) => i.includes('Battery'))[0]
|
|
||||||
.match(/[0-9]+/);
|
|
||||||
|
|
||||||
let sleeping = false;
|
|
||||||
let battery = batteryMatches !== null ?
|
|
||||||
parseInt(batteryMatches[0]) :
|
|
||||||
0;
|
|
||||||
|
|
||||||
// Don't set to zero when in sleep mode
|
|
||||||
if (battery === 0 && RazerBat.value.battery > 10) {
|
|
||||||
battery = RazerBat.value.battery;
|
|
||||||
sleeping = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// If 'Wireless' isn't in the logs it means the cmd found 'Wired'
|
|
||||||
const charging = !out.includes('Wireless');
|
|
||||||
|
|
||||||
RazerBat.value = {
|
|
||||||
battery,
|
|
||||||
charging,
|
|
||||||
sleeping,
|
|
||||||
disconnected: false,
|
|
||||||
};
|
|
||||||
}).catch(() => {
|
|
||||||
RazerBat.value.disconnected = true;
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
interval(RAZER_POLL, fetchInfo);
|
|
||||||
|
|
||||||
export default () => {
|
|
||||||
const percentage = Label({ vpack: 'center' });
|
|
||||||
|
|
||||||
const icon = Icon({ hpack: 'start' })
|
|
||||||
.hook(RazerBat, (self) => {
|
|
||||||
const v = RazerBat.value;
|
|
||||||
|
|
||||||
percentage.visible = !(v.disconnected || v.charging);
|
|
||||||
percentage.label = `${v.battery}%`;
|
|
||||||
|
|
||||||
self.icon = v.disconnected ?
|
|
||||||
'content-loading-symbolic' :
|
|
||||||
'mouse-razer-symbolic';
|
|
||||||
self.setCss(
|
|
||||||
v.disconnected || v.charging ?
|
|
||||||
'margin-right: -5px;' :
|
|
||||||
'',
|
|
||||||
);
|
|
||||||
|
|
||||||
self.toggleClassName(
|
|
||||||
'high',
|
|
||||||
v.battery > 66,
|
|
||||||
);
|
|
||||||
self.toggleClassName(
|
|
||||||
'medium',
|
|
||||||
v.battery > LOW_BATT && v.battery <= 66,
|
|
||||||
);
|
|
||||||
self.toggleClassName(
|
|
||||||
'low',
|
|
||||||
v.battery <= LOW_BATT,
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
return Box({
|
|
||||||
class_name: 'razer',
|
|
||||||
children: [icon, percentage],
|
|
||||||
});
|
|
||||||
};
|
|
196
modules/ags/config/ts/clipboard/main.ts
Normal file
196
modules/ags/config/ts/clipboard/main.ts
Normal file
|
@ -0,0 +1,196 @@
|
||||||
|
const { Box, Entry, Icon, Label, ListBox, Scrollable } = Widget;
|
||||||
|
const { execAsync } = Utils;
|
||||||
|
|
||||||
|
const Hyprland = await Service.import('hyprland');
|
||||||
|
|
||||||
|
import { Fzf, FzfResultItem } from 'fzf';
|
||||||
|
import Gtk from 'gi://Gtk?version=3.0';
|
||||||
|
|
||||||
|
import CursorBox from '../misc/cursorbox.ts';
|
||||||
|
import PopupWindow from '../misc/popup.ts';
|
||||||
|
import { Monitor } from 'types/service/hyprland';
|
||||||
|
|
||||||
|
|
||||||
|
const N_ITEMS = 30;
|
||||||
|
|
||||||
|
const copyOldItem = (key: string | number): void => {
|
||||||
|
execAsync([
|
||||||
|
'bash', '-c', `cliphist list | grep ${key} | cliphist decode | wl-copy`,
|
||||||
|
]).then(() => {
|
||||||
|
App.closeWindow('win-clipboard');
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
export default () => {
|
||||||
|
let CopiedItems = [] as [string, number][];
|
||||||
|
let fzfResults: FzfResultItem<[string, number]>[];
|
||||||
|
|
||||||
|
const getKey = (r: Gtk.ListBoxRow) => parseInt(r.get_child()?.name ?? '');
|
||||||
|
|
||||||
|
const list = ListBox().on('row-activated', (_, row) => {
|
||||||
|
copyOldItem(getKey(row));
|
||||||
|
});
|
||||||
|
|
||||||
|
const updateItems = () => {
|
||||||
|
(list.get_children() as Gtk.ListBoxRow[]).forEach((r) => {
|
||||||
|
r.changed();
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const setSort = (text: string) => {
|
||||||
|
if (text === '' || text === '-') {
|
||||||
|
list.set_sort_func((row1, row2) => getKey(row2) - getKey(row1));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
const fzf = new Fzf(CopiedItems, {
|
||||||
|
selector: (item) => item[0],
|
||||||
|
|
||||||
|
tiebreakers: [(a, b) => b[1] - a[1]],
|
||||||
|
});
|
||||||
|
|
||||||
|
fzfResults = fzf.find(text);
|
||||||
|
list.set_sort_func((a, b) => {
|
||||||
|
const row1 = fzfResults.find((f) => f.item[1] === getKey(a))?.score ?? 0;
|
||||||
|
const row2 = fzfResults.find((f) => f.item[1] === getKey(b))?.score ?? 0;
|
||||||
|
|
||||||
|
return row2 - row1;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
updateItems();
|
||||||
|
};
|
||||||
|
|
||||||
|
const makeItem = (key: string, val: string) => {
|
||||||
|
CopiedItems.push([val, parseInt(key)]);
|
||||||
|
|
||||||
|
const widget = CursorBox({
|
||||||
|
class_name: 'item',
|
||||||
|
name: key,
|
||||||
|
|
||||||
|
on_primary_click_release: () => copyOldItem(key),
|
||||||
|
|
||||||
|
child: Box({
|
||||||
|
children: [
|
||||||
|
val.startsWith('img:') ?
|
||||||
|
Icon({
|
||||||
|
icon: val.replace('img:', ''),
|
||||||
|
size: 100 * 2,
|
||||||
|
}) :
|
||||||
|
|
||||||
|
Label({
|
||||||
|
label: val,
|
||||||
|
truncate: 'end',
|
||||||
|
max_width_chars: 100,
|
||||||
|
}),
|
||||||
|
],
|
||||||
|
}),
|
||||||
|
});
|
||||||
|
|
||||||
|
list.add(widget);
|
||||||
|
widget.show_all();
|
||||||
|
updateItems();
|
||||||
|
};
|
||||||
|
|
||||||
|
// Decode old item:
|
||||||
|
const decodeItem = (index: string) => {
|
||||||
|
execAsync([
|
||||||
|
'bash', '-c', `cliphist list | grep ${index} | cliphist decode`,
|
||||||
|
]).then((out) => {
|
||||||
|
makeItem(index, out);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const entry = Entry({
|
||||||
|
// Set some text so on-change works the first time
|
||||||
|
text: '-',
|
||||||
|
hexpand: true,
|
||||||
|
|
||||||
|
on_change: ({ text }) => {
|
||||||
|
if (text !== null) {
|
||||||
|
setSort(text);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const on_open = () => {
|
||||||
|
CopiedItems = [];
|
||||||
|
entry.text = '';
|
||||||
|
|
||||||
|
execAsync('clipboard-manager').then(async(out) => {
|
||||||
|
list.get_children()?.forEach((ch) => {
|
||||||
|
ch.destroy();
|
||||||
|
});
|
||||||
|
|
||||||
|
const items = out.split('\n');
|
||||||
|
|
||||||
|
for (let i = 0; i < N_ITEMS; ++i) {
|
||||||
|
if (items[i].includes('img')) {
|
||||||
|
makeItem((items[i].match('[0-9]+') ?? [''])[0], items[i]);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
decodeItem(items[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let x: number;
|
||||||
|
let y: number;
|
||||||
|
const monitor = (JSON.parse(await Hyprland.messageAsync('j/monitors')) as Monitor[])
|
||||||
|
.find((m) => m.focused) as Monitor;
|
||||||
|
|
||||||
|
switch (monitor.transform) {
|
||||||
|
case 1:
|
||||||
|
x = monitor.x - (monitor.height / 2);
|
||||||
|
y = monitor.y - (monitor.width / 2);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 2:
|
||||||
|
x = monitor.x - (monitor.width / 2);
|
||||||
|
y = monitor.y - (monitor.height / 2);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 3:
|
||||||
|
x = monitor.x + (monitor.height / 2);
|
||||||
|
y = monitor.y + (monitor.width / 2);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
x = monitor.x + (monitor.width / 2);
|
||||||
|
y = monitor.y + (monitor.height / 2);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
await Hyprland.messageAsync(`dispatch movecursor ${x} ${y}`);
|
||||||
|
entry.grab_focus();
|
||||||
|
}).catch(console.log);
|
||||||
|
};
|
||||||
|
|
||||||
|
on_open();
|
||||||
|
|
||||||
|
return PopupWindow({
|
||||||
|
name: 'clipboard',
|
||||||
|
keymode: 'on-demand',
|
||||||
|
on_open,
|
||||||
|
|
||||||
|
child: Box({
|
||||||
|
class_name: 'clipboard',
|
||||||
|
vertical: true,
|
||||||
|
children: [
|
||||||
|
Box({
|
||||||
|
class_name: 'header',
|
||||||
|
children: [
|
||||||
|
Icon('preferences-system-search-symbolic'),
|
||||||
|
entry,
|
||||||
|
],
|
||||||
|
}),
|
||||||
|
|
||||||
|
Scrollable({
|
||||||
|
hscroll: 'never',
|
||||||
|
vscroll: 'automatic',
|
||||||
|
child: Box({
|
||||||
|
vertical: true,
|
||||||
|
children: [list],
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
],
|
||||||
|
}),
|
||||||
|
});
|
||||||
|
};
|
|
@ -14,7 +14,7 @@ import { Box as AgsBox } from 'types/widgets/box';
|
||||||
|
|
||||||
|
|
||||||
const lock = Lock.prepare_lock();
|
const lock = Lock.prepare_lock();
|
||||||
const windows: Gtk.Window[] = [];
|
const windows: Map<Gdk.Monitor, Gtk.Window> = new Map();
|
||||||
const blurBGs: AgsBox<Gtk.Widget, { geometry: { w: number, h: number }; }>[] = [];
|
const blurBGs: AgsBox<Gtk.Widget, { geometry: { w: number, h: number }; }>[] = [];
|
||||||
|
|
||||||
const transition_duration = 1000;
|
const transition_duration = 1000;
|
||||||
|
@ -175,12 +175,10 @@ const createWindow = (monitor: Gdk.Monitor) => {
|
||||||
const entryVisible = Vars.mainMonitor.startsWith(hyprDesc) || Vars.dupeLockscreen;
|
const entryVisible = Vars.mainMonitor.startsWith(hyprDesc) || Vars.dupeLockscreen;
|
||||||
const win = PasswordPrompt(monitor, entryVisible);
|
const win = PasswordPrompt(monitor, entryVisible);
|
||||||
|
|
||||||
windows.push(win);
|
windows.set(monitor, win);
|
||||||
lock.new_surface(win, monitor);
|
|
||||||
win.show();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const on_locked = () => {
|
const lock_screen = () => {
|
||||||
const display = Gdk.Display.get_default();
|
const display = Gdk.Display.get_default();
|
||||||
|
|
||||||
for (let m = 0; m < (display?.get_n_monitors() ?? 0); m++) {
|
for (let m = 0; m < (display?.get_n_monitors() ?? 0); m++) {
|
||||||
|
@ -193,6 +191,11 @@ const on_locked = () => {
|
||||||
display?.connect('monitor-added', (_, monitor) => {
|
display?.connect('monitor-added', (_, monitor) => {
|
||||||
createWindow(monitor);
|
createWindow(monitor);
|
||||||
});
|
});
|
||||||
|
lock.lock_lock();
|
||||||
|
windows.forEach((win, monitor) => {
|
||||||
|
lock.new_surface(win, monitor);
|
||||||
|
win.show();
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const on_finished = () => {
|
const on_finished = () => {
|
||||||
|
@ -201,7 +204,6 @@ const on_finished = () => {
|
||||||
App.quit();
|
App.quit();
|
||||||
};
|
};
|
||||||
|
|
||||||
lock.connect('locked', on_locked);
|
|
||||||
lock.connect('finished', on_finished);
|
lock.connect('finished', on_finished);
|
||||||
|
|
||||||
if (Vars.hasFprintd) {
|
if (Vars.hasFprintd) {
|
||||||
|
@ -211,4 +213,4 @@ if (Vars.hasFprintd) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
export default () => lock.lock_lock();
|
export default () => lock_screen();
|
||||||
|
|
|
@ -176,7 +176,6 @@ export const Notification = ({
|
||||||
|
|
||||||
const BlockedApps = [
|
const BlockedApps = [
|
||||||
'Spotify',
|
'Spotify',
|
||||||
'OpenRazer',
|
|
||||||
];
|
];
|
||||||
|
|
||||||
if (BlockedApps.find((app) => app === notif.app_name)) {
|
if (BlockedApps.find((app) => app === notif.app_name)) {
|
||||||
|
|
|
@ -3,6 +3,7 @@ import AppLauncher from './ts/applauncher/main.ts';
|
||||||
import Bar from './ts/bar/wim.ts';
|
import Bar from './ts/bar/wim.ts';
|
||||||
import BgFade from './ts/misc/background-fade.ts';
|
import BgFade from './ts/misc/background-fade.ts';
|
||||||
import Calendar from './ts/date.ts';
|
import Calendar from './ts/date.ts';
|
||||||
|
import Clipboard from './ts/clipboard/main.ts';
|
||||||
import Corners from './ts/corners/main.ts';
|
import Corners from './ts/corners/main.ts';
|
||||||
import { NotifPopups, NotifCenter } from './ts/notifications/wim.ts';
|
import { NotifPopups, NotifCenter } from './ts/notifications/wim.ts';
|
||||||
import OSD from './ts/osd/main.ts';
|
import OSD from './ts/osd/main.ts';
|
||||||
|
@ -23,6 +24,7 @@ App.config({
|
||||||
|
|
||||||
AppLauncher(),
|
AppLauncher(),
|
||||||
Calendar(),
|
Calendar(),
|
||||||
|
Clipboard(),
|
||||||
NotifCenter(),
|
NotifCenter(),
|
||||||
OSD(),
|
OSD(),
|
||||||
OSK(),
|
OSK(),
|
||||||
|
|
|
@ -107,6 +107,7 @@ in {
|
||||||
dart-sass
|
dart-sass
|
||||||
bun
|
bun
|
||||||
playerctl
|
playerctl
|
||||||
|
(callPackage ./clipboard {})
|
||||||
|
|
||||||
## gui
|
## gui
|
||||||
pavucontrol # TODO: replace with ags widget
|
pavucontrol # TODO: replace with ags widget
|
||||||
|
|
|
@ -3,11 +3,6 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
"${agsConfigDir}/config/icons/mouse-razer-symbolic.svg".source = pkgs.fetchurl {
|
|
||||||
url = "https://raw.githubusercontent.com/bithatch/razer-icon-font/main/src/devices/mouse.svg";
|
|
||||||
hash = "sha256-A1+eIp2VEFDyY23GIHKhbnByHXrnVS3QgIJ9sjjtuZw=";
|
|
||||||
};
|
|
||||||
|
|
||||||
"${agsConfigDir}/config/icons/down-large-symbolic.svg".source = pkgs.fetchurl {
|
"${agsConfigDir}/config/icons/down-large-symbolic.svg".source = pkgs.fetchurl {
|
||||||
url = "https://www.svgrepo.com/download/158537/down-chevron.svg";
|
url = "https://www.svgrepo.com/download/158537/down-chevron.svg";
|
||||||
hash = "sha256-mOfNjgZh0rt6XosKA2kpLY22lJldSS1XCphgrnvZH1s=";
|
hash = "sha256-mOfNjgZh0rt6XosKA2kpLY22lJldSS1XCphgrnvZH1s=";
|
||||||
|
|
|
@ -8,20 +8,12 @@
|
||||||
inherit (import ./hyprland.nix {inherit config lib pkgs;}) hyprConf;
|
inherit (import ./hyprland.nix {inherit config lib pkgs;}) hyprConf;
|
||||||
|
|
||||||
# Nix stuff
|
# Nix stuff
|
||||||
isTouchscreen = config.hardware.sensor.iio.enable;
|
|
||||||
hyprland = config.home-manager.users.${mainUser}.wayland.windowManager.hyprland.finalPackage;
|
hyprland = config.home-manager.users.${mainUser}.wayland.windowManager.hyprland.finalPackage;
|
||||||
in {
|
in {
|
||||||
imports = [./astal.nix];
|
imports = [./astal.nix];
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
displayManager = {
|
displayManager.sessionPackages = [hyprland];
|
||||||
sessionPackages = [hyprland];
|
|
||||||
};
|
|
||||||
|
|
||||||
xserver = {
|
|
||||||
libinput.enable = true;
|
|
||||||
wacom.enable = isTouchscreen;
|
|
||||||
};
|
|
||||||
|
|
||||||
greetd = {
|
greetd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
{
|
|
||||||
Hyprspace,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
wayland.windowManager.hyprland = {
|
|
||||||
plugins = [Hyprspace.packages.${pkgs.system}.Hyprspace];
|
|
||||||
|
|
||||||
settings = {
|
|
||||||
bind = [
|
|
||||||
"ALT, tab, overview:toggle"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,10 +0,0 @@
|
||||||
[Default]
|
|
||||||
save_dir=$HOME/Pictures/Screenshots
|
|
||||||
save_filename_format=swappy-%Y%m%d-%H%M%S.png
|
|
||||||
show_panel=false
|
|
||||||
line_size=5
|
|
||||||
text_size=20
|
|
||||||
text_font=Ubuntu-Mono
|
|
||||||
paint_mode=brush
|
|
||||||
early_exit=false
|
|
||||||
fill_shape=false
|
|
|
@ -9,6 +9,7 @@
|
||||||
inherit (config.vars) mainUser;
|
inherit (config.vars) mainUser;
|
||||||
|
|
||||||
cfg = config.programs.hyprland;
|
cfg = config.programs.hyprland;
|
||||||
|
isTouchscreen = config.hardware.sensor.iio.enable;
|
||||||
in {
|
in {
|
||||||
# SYSTEM CONFIG
|
# SYSTEM CONFIG
|
||||||
imports = [
|
imports = [
|
||||||
|
@ -29,32 +30,36 @@ in {
|
||||||
services = {
|
services = {
|
||||||
dbus.enable = true;
|
dbus.enable = true;
|
||||||
gvfs.enable = true;
|
gvfs.enable = true;
|
||||||
|
libinput.enable = true;
|
||||||
|
xserver.wacom.enable = isTouchscreen;
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.hyprland = with hyprland.packages.${pkgs.system}; {
|
programs.hyprland = with hyprland.packages.${pkgs.system}; {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = default.overrideAttrs (o: {
|
package = default;
|
||||||
postFixup = ''
|
|
||||||
rm "$out/share/xdg-desktop-portal/hyprland-portals.conf"
|
|
||||||
|
|
||||||
cat <<EOF > "$out/share/xdg-desktop-portal/hyprland-portals.conf"
|
|
||||||
[preferred]
|
|
||||||
default=hyprland;gtk
|
|
||||||
org.freedesktop.impl.portal.FileChooser=kde
|
|
||||||
EOF
|
|
||||||
'';
|
|
||||||
});
|
|
||||||
portalPackage = xdg-desktop-portal-hyprland;
|
portalPackage = xdg-desktop-portal-hyprland;
|
||||||
};
|
};
|
||||||
|
|
||||||
xdg.portal.extraPortals = [
|
xdg.portal = {
|
||||||
pkgs.xdg-desktop-portal-kde
|
enable = true;
|
||||||
];
|
|
||||||
|
extraPortals = with pkgs; [
|
||||||
|
xdg-desktop-portal-kde
|
||||||
|
];
|
||||||
|
|
||||||
|
config.hyprland = {
|
||||||
|
default = [
|
||||||
|
"hyprland"
|
||||||
|
"gtk"
|
||||||
|
];
|
||||||
|
"org.freedesktop.impl.portal.FileChooser" = ["kde"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
# HOME-MANAGER CONFIG
|
# HOME-MANAGER CONFIG
|
||||||
home-manager.users.${mainUser} = {
|
home-manager.users.${mainUser} = {
|
||||||
imports = [
|
imports = [
|
||||||
./Hyprspace.nix
|
./hyprexpo.nix
|
||||||
./inputs.nix
|
./inputs.nix
|
||||||
./style.nix
|
./style.nix
|
||||||
];
|
];
|
||||||
|
|
28
modules/hyprland/hyprexpo.nix
Normal file
28
modules/hyprland/hyprexpo.nix
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
{
|
||||||
|
hypr-official-plugins,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
wayland.windowManager.hyprland = {
|
||||||
|
plugins = [hypr-official-plugins.packages.${pkgs.system}.hyprexpo];
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
plugin = {
|
||||||
|
hyprexpo = {
|
||||||
|
columns = 3;
|
||||||
|
gap_size = 5;
|
||||||
|
bg_col = "rgb(111111)";
|
||||||
|
workspace_method = "center current"; # [center/first] [workspace] e.g. first 1 or center m+1
|
||||||
|
|
||||||
|
enable_gesture = true; # laptop touchpad, 4 fingers
|
||||||
|
gesture_distance = 300; # how far is the "max"
|
||||||
|
gesture_positive = true; # positive = swipe down. Negative = swipe up.
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
bind = [
|
||||||
|
"ALT, tab, hyprexpo:expo, toggle" # can be: toggle, off/disable or on/enable
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -8,15 +8,7 @@
|
||||||
inherit (osConfig.vars) mainMonitor;
|
inherit (osConfig.vars) mainMonitor;
|
||||||
|
|
||||||
miceNames = [
|
miceNames = [
|
||||||
# Wireless
|
"logitech-g502-x"
|
||||||
"razer-razer-naga-pro"
|
|
||||||
|
|
||||||
# Wired (it always changes)
|
|
||||||
"razer-razer-naga-pro-1"
|
|
||||||
"razer-naga-pro"
|
|
||||||
"razer-naga-pro-1"
|
|
||||||
"razer-naga-pro-2"
|
|
||||||
"razer-naga-pro-3"
|
|
||||||
"logitech-g502-hero-gaming-mouse"
|
"logitech-g502-hero-gaming-mouse"
|
||||||
];
|
];
|
||||||
nagaConf = name: {
|
nagaConf = name: {
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (lib) makeLibraryPath optionalString;
|
inherit (lib) makeLibraryPath optionalString;
|
||||||
|
inherit (pkgs.writers) writeTOML;
|
||||||
inherit (config.vars) mainUser;
|
inherit (config.vars) mainUser;
|
||||||
flakeDir = config.environment.variables.FLAKE;
|
flakeDir = config.environment.variables.FLAKE;
|
||||||
in {
|
in {
|
||||||
|
@ -17,7 +18,6 @@ in {
|
||||||
../../home/foot.nix
|
../../home/foot.nix
|
||||||
../../home/mpv
|
../../home/mpv
|
||||||
../../home/obs.nix
|
../../home/obs.nix
|
||||||
../../home/wofi
|
|
||||||
|
|
||||||
({config, ...}: let
|
({config, ...}: let
|
||||||
symlink = config.lib.file.mkOutOfStoreSymlink;
|
symlink = config.lib.file.mkOutOfStoreSymlink;
|
||||||
|
@ -29,7 +29,19 @@ in {
|
||||||
"kiorc".source = symlink "${configDir}/kiorc";
|
"kiorc".source = symlink "${configDir}/kiorc";
|
||||||
"mimeapps.list".source = symlink "${configDir}/mimeapps.list";
|
"mimeapps.list".source = symlink "${configDir}/mimeapps.list";
|
||||||
"neofetch".source = symlink "${configDir}/neofetch";
|
"neofetch".source = symlink "${configDir}/neofetch";
|
||||||
"swappy".source = symlink "${configDir}/swappy";
|
|
||||||
|
"satty/config.toml".source = writeTOML "satty.toml" {
|
||||||
|
general = {
|
||||||
|
early-exit = true;
|
||||||
|
copy-command = "wl-copy";
|
||||||
|
initial-tool = "crop";
|
||||||
|
output-filename = "${config.home.homeDirectory}/Pictures/Screenshots/screen-%d-%m-%Y_%H:%M:%S.png";
|
||||||
|
};
|
||||||
|
|
||||||
|
font = {
|
||||||
|
family = "Ubuntu Mono";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
@ -50,7 +62,7 @@ in {
|
||||||
photoqt
|
photoqt
|
||||||
nextcloud-client
|
nextcloud-client
|
||||||
jellyfin-media-player
|
jellyfin-media-player
|
||||||
prismlauncher-qt5
|
prismlauncher
|
||||||
|
|
||||||
# tools
|
# tools
|
||||||
wl-color-picker
|
wl-color-picker
|
||||||
|
@ -58,7 +70,22 @@ in {
|
||||||
cliphist
|
cliphist
|
||||||
grim
|
grim
|
||||||
slurp
|
slurp
|
||||||
swappy
|
satty
|
||||||
|
|
||||||
|
# TODO: make an ags widget to select windows, screens or a selection
|
||||||
|
(writeShellApplication {
|
||||||
|
name = "screenshot";
|
||||||
|
runtimeInputs = [
|
||||||
|
config.programs.hyprland.package
|
||||||
|
satty
|
||||||
|
grim
|
||||||
|
jq
|
||||||
|
];
|
||||||
|
text = ''
|
||||||
|
screen=$(hyprctl monitors -j | jq -r '.[] | select(.focused == true).name')
|
||||||
|
exec grim -o "$screen" - | satty -f -
|
||||||
|
'';
|
||||||
|
})
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Discord themes for Vencord
|
Discord themes for Vencord
|
||||||
|
@ -101,9 +128,10 @@ in {
|
||||||
];
|
];
|
||||||
|
|
||||||
windowrule = [
|
windowrule = [
|
||||||
"noborder,^(wofi)$"
|
|
||||||
"tile,^(libreoffice)$"
|
"tile,^(libreoffice)$"
|
||||||
"float,^(org.gnome.Calculator)$"
|
"float,^(org.gnome.Calculator)$"
|
||||||
|
"float,^(com.gabm.satty)$"
|
||||||
|
"size 1000 700,^(com.gabm.satty)$"
|
||||||
|
|
||||||
"float,^(com.nextcloud.desktopclient.nextcloud)$"
|
"float,^(com.nextcloud.desktopclient.nextcloud)$"
|
||||||
"move cursor -15 -10,^(com.nextcloud.desktopclient.nextcloud)$"
|
"move cursor -15 -10,^(com.nextcloud.desktopclient.nextcloud)$"
|
||||||
|
@ -117,9 +145,10 @@ in {
|
||||||
"$mainMod, Q, exec, foot"
|
"$mainMod, Q, exec, foot"
|
||||||
|
|
||||||
# Clipboard History
|
# Clipboard History
|
||||||
"$mainMod, V, exec, killall -r wofi || cliphist list | wofi --dmenu | cliphist decode | wl-copy"
|
"$mainMod, V, exec, ags -t win-clipboard"
|
||||||
|
|
||||||
",Print, exec, grim -g \"$(slurp)\" - | swappy -f -"
|
" , Print, exec, screenshot"
|
||||||
|
"$mainMod, Print, exec, grim -g \"$(slurp)\" - | satty -f -"
|
||||||
"$mainMod SHIFT, C, exec, wl-color-picker"
|
"$mainMod SHIFT, C, exec, wl-color-picker"
|
||||||
|
|
||||||
"$mainMod, T, togglespecialworkspace, thunder"
|
"$mainMod, T, togglespecialworkspace, thunder"
|
||||||
|
|
|
@ -1,28 +1,26 @@
|
||||||
{
|
{
|
||||||
config,
|
libratbag-src,
|
||||||
lib,
|
|
||||||
pkgs,
|
pkgs,
|
||||||
|
piper-src,
|
||||||
...
|
...
|
||||||
}: let
|
}: {
|
||||||
inherit (config.vars) mainUser;
|
services.ratbagd = {
|
||||||
inherit (lib) mkIf;
|
enable = true;
|
||||||
cfgHypr =
|
|
||||||
config
|
|
||||||
.home-manager
|
|
||||||
.users
|
|
||||||
.${mainUser}
|
|
||||||
.wayland
|
|
||||||
.windowManager
|
|
||||||
.hyprland;
|
|
||||||
in {
|
|
||||||
services.ratbagd.enable = true;
|
|
||||||
|
|
||||||
# HOME-MANAGER CONFIG
|
package = pkgs.libratbag.overrideAttrs {
|
||||||
home-manager.users.${mainUser} = {
|
version = libratbag-src.shortRev;
|
||||||
home.packages = with pkgs; [piper];
|
src = libratbag-src;
|
||||||
|
|
||||||
wayland.windowManager.hyprland = mkIf (cfgHypr.enable) {
|
|
||||||
# settings.exec-once = [""];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
(piper.overrideAttrs {
|
||||||
|
name = "piper-${piper-src.shortRev}";
|
||||||
|
src = piper-src;
|
||||||
|
|
||||||
|
mesonFlags = [
|
||||||
|
"-Druntime-dependency-checks=false"
|
||||||
|
];
|
||||||
|
})
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,35 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
inherit (config.vars) mainUser;
|
|
||||||
inherit (lib) mkIf;
|
|
||||||
|
|
||||||
cfgHypr =
|
|
||||||
config
|
|
||||||
.home-manager
|
|
||||||
.users
|
|
||||||
.${mainUser}
|
|
||||||
.wayland
|
|
||||||
.windowManager
|
|
||||||
.hyprland;
|
|
||||||
in {
|
|
||||||
hardware.openrazer = {
|
|
||||||
enable = true;
|
|
||||||
users = [mainUser];
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
openrazer-daemon
|
|
||||||
polychromatic
|
|
||||||
];
|
|
||||||
|
|
||||||
# HOME-MANAGER CONFIG
|
|
||||||
home-manager.users.${mainUser} = {
|
|
||||||
wayland.windowManager.hyprland = mkIf (cfgHypr.enable) {
|
|
||||||
settings.exec-once = ["polychromatic-tray-applet"];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
Loading…
Reference in a new issue