Compare commits
30 commits
Author | SHA1 | Date | |
---|---|---|---|
|
5bccabc8c8 | ||
|
9f05154dad | ||
|
8d37bc0c88 | ||
|
ba07cf6a42 | ||
|
0a4cabca4b | ||
|
b2bdcb1724 | ||
|
16d3af4edb | ||
|
8e839d9174 | ||
|
d710bed16a | ||
|
d6d5643040 | ||
|
99168284c6 | ||
|
42de0ba722 | ||
|
03fd8951d8 | ||
|
6cc1f8a381 | ||
|
b6799321c1 | ||
|
14d4d41b48 | ||
|
139d76bca8 | ||
|
65edfe5a9a | ||
|
a28e50f48a | ||
|
8e028e7066 | ||
|
79d96e3c60 | ||
|
7d6c0d50d7 | ||
|
92c5040b91 | ||
|
59c5099cd6 | ||
|
c6c4417aeb | ||
|
a7770ae62e | ||
|
2e2f2239a5 | ||
|
7780de1f47 | ||
|
b094f8ea74 | ||
|
9ffd7e1175 |
411
flake.lock
411
flake.lock
|
@ -28,11 +28,11 @@
|
||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1736955230,
|
"lastModified": 1723293904,
|
||||||
"narHash": "sha256-uenf8fv2eG5bKM8C/UvFaiJMZ4IpUFaQxk9OH5t/1gA=",
|
"narHash": "sha256-b+uqzj+Wa6xgMS9aNbX4I+sXeb5biPDi39VgvSFqFvU=",
|
||||||
"owner": "ryantm",
|
"owner": "ryantm",
|
||||||
"repo": "agenix",
|
"repo": "agenix",
|
||||||
"rev": "e600439ec4c273cf11e06fe4d9d906fb98fa097c",
|
"rev": "f6291c5935fdc4e0bef208cfc0dcab7e3f7a1c41",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -57,22 +57,6 @@
|
||||||
"type": "gitlab"
|
"type": "gitlab"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"catboy-spinner": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1728098748,
|
|
||||||
"narHash": "sha256-FHM/a+wqctmg1LXf/XB6TcXowL0Wzbq1kSCGVnxGgL8=",
|
|
||||||
"ref": "refs/heads/main",
|
|
||||||
"rev": "c6fc11b0900826508f6a766c65cf92e0c7c4eab9",
|
|
||||||
"revCount": 4,
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://git.lelgenio.com/lelgenio/catboy-spinner"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://git.lelgenio.com/lelgenio/catboy-spinner"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"crane": {
|
"crane": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat",
|
"flake-compat": "flake-compat",
|
||||||
|
@ -98,27 +82,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"crane_2": {
|
"crane_2": {
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"made-you-look",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1718730147,
|
|
||||||
"narHash": "sha256-QmD6B6FYpuoCqu6ZuPJH896ItNquDkn0ulQlOn4ykN8=",
|
|
||||||
"owner": "ipetkov",
|
|
||||||
"repo": "crane",
|
|
||||||
"rev": "32c21c29b034d0a93fdb2379d6fabc40fc3d0e6c",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "ipetkov",
|
|
||||||
"repo": "crane",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"crane_3": {
|
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"warthunder-leak-counter",
|
"warthunder-leak-counter",
|
||||||
|
@ -166,7 +129,9 @@
|
||||||
"advisory-db": "advisory-db",
|
"advisory-db": "advisory-db",
|
||||||
"crane": "crane",
|
"crane": "crane",
|
||||||
"flake-utils": "flake-utils_2",
|
"flake-utils": "flake-utils_2",
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1693509848,
|
"lastModified": 1693509848,
|
||||||
|
@ -186,7 +151,9 @@
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"fenix": "fenix",
|
"fenix": "fenix",
|
||||||
"flake-utils": "flake-utils_3",
|
"flake-utils": "flake-utils_3",
|
||||||
"nixpkgs": "nixpkgs_2"
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1659395338,
|
"lastModified": 1659395338,
|
||||||
|
@ -209,11 +176,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1739353546,
|
"lastModified": 1724769572,
|
||||||
"narHash": "sha256-YTqXhBZvCdZLMBupWlCDvRFaTEhaHa2/Xc/p1sUdSZU=",
|
"narHash": "sha256-K+HQbC2/hnGngIB019mX6f4XUrf7dB1eBfiUHW4Vx48=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "disko",
|
"repo": "disko",
|
||||||
"rev": "26ade1005191e0602a78b0f141970648445bafd9",
|
"rev": "b89a61129f3976d6440e2356ac5d3e30930f7012",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -222,20 +189,40 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"dzgui": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1702780245,
|
||||||
|
"narHash": "sha256-cdW5LN2Q7eYW8xIqKPQfeYPd7e6VdJGaoA9NMHesCrE=",
|
||||||
|
"owner": "aclist",
|
||||||
|
"repo": "dztui",
|
||||||
|
"rev": "28323f3edb8fa747dc559d1939ccdd7729e4e3a1",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "aclist",
|
||||||
|
"repo": "dztui",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"dzgui-nix": {
|
"dzgui-nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_3"
|
"dzgui": "dzgui",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1739502527,
|
"lastModified": 1702850463,
|
||||||
"narHash": "sha256-KMLNOCWmqdDeAZV5O1ccRmVqRutDcy4IONJin3lzd0Q=",
|
"narHash": "sha256-qR/c/GjsLUzrCyHN/Q9nnClduf6OqTg26S1AFYKPzxA=",
|
||||||
"owner": "lelgenio",
|
"owner": "lelgenio",
|
||||||
"repo": "dzgui-nix",
|
"repo": "dzgui-nix",
|
||||||
"rev": "06fcea9445b5a005b40469a69f57f2147398bc94",
|
"rev": "2ed6515b27d8186b9fedfe1dcaf861f07e796a0d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "lelgenio",
|
"owner": "lelgenio",
|
||||||
|
"ref": "dzgui-4.1.0",
|
||||||
"repo": "dzgui-nix",
|
"repo": "dzgui-nix",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
@ -347,7 +334,7 @@
|
||||||
},
|
},
|
||||||
"flake-utils_4": {
|
"flake-utils_4": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_4"
|
"systems": "systems_5"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1681202837,
|
"lastModified": 1681202837,
|
||||||
|
@ -365,7 +352,7 @@
|
||||||
},
|
},
|
||||||
"flake-utils_5": {
|
"flake-utils_5": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_5"
|
"systems": "systems_6"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1681202837,
|
"lastModified": 1681202837,
|
||||||
|
@ -382,24 +369,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils_6": {
|
"flake-utils_6": {
|
||||||
"inputs": {
|
|
||||||
"systems": "systems_6"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1681202837,
|
|
||||||
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-utils_7": {
|
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_7"
|
"systems": "systems_7"
|
||||||
},
|
},
|
||||||
|
@ -417,22 +386,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"hello-fonts": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1728232065,
|
|
||||||
"narHash": "sha256-1DUW1YqZALPFxBM7HYcNZiCZQvMqUiJ1m04NU4IIe3I=",
|
|
||||||
"ref": "refs/heads/main",
|
|
||||||
"rev": "10f7485fea930bb45e97fbda0cd68f199a7e8f59",
|
|
||||||
"revCount": 1,
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://git.lelgenio.com/lelgenio/hello-fonts"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://git.lelgenio.com/lelgenio/hello-fonts"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
@ -440,40 +393,20 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1736373539,
|
"lastModified": 1720042825,
|
||||||
"narHash": "sha256-dinzAqCjenWDxuy+MqUQq0I4zUSfaCvN9rzuCmgMZJY=",
|
"narHash": "sha256-A0vrUB6x82/jvf17qPCpxaM+ulJnD8YZwH9Ci0BsAzE=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "bd65bc3cde04c16755955630b344bc9e35272c56",
|
"rev": "e1391fb22e18a36f57e6999c7a9f966dc80ac073",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"ref": "release-24.11",
|
"ref": "release-24.05",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"made-you-look": {
|
|
||||||
"inputs": {
|
|
||||||
"crane": "crane_2",
|
|
||||||
"flake-utils": "flake-utils_4",
|
|
||||||
"nixpkgs": "nixpkgs_4"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1728159958,
|
|
||||||
"narHash": "sha256-r/h/ch70KfOQ8moftDhHagu3WajglaqU+hrEzUtTM1Y=",
|
|
||||||
"ref": "refs/heads/main",
|
|
||||||
"rev": "96e978aa2f414d4b92b78e7ae975d7ff7db95a91",
|
|
||||||
"revCount": 3,
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://git.lelgenio.com/lelgenio/made-you-look"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://git.lelgenio.com/lelgenio/made-you-look"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nix-index-database": {
|
"nix-index-database": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
@ -481,11 +414,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1739071773,
|
"lastModified": 1724576102,
|
||||||
"narHash": "sha256-/Ak+Quinhmdxa9m3shjm4lwwwqmzG8zzGhhhhgR1k9I=",
|
"narHash": "sha256-uM7n5nNL6fmA0bwMJBNll11f4cMWOFa2Ni6F5KeIldM=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "nix-index-database",
|
"repo": "nix-index-database",
|
||||||
"rev": "895d81b6228bbd50a6ef22f5a58a504ca99763ea",
|
"rev": "e333d62b70b179da1dd78d94315e8a390f2d12e5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -501,91 +434,48 @@
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"nixpkgs-24_11": "nixpkgs-24_11"
|
"nixpkgs-24_05": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"utils": "utils"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1739121270,
|
"lastModified": 1718084203,
|
||||||
"narHash": "sha256-EmJhpy9U8sVlepl2QPjG019VfG67HcucsQNItTqW6cA=",
|
"narHash": "sha256-Cx1xoVfSMv1XDLgKg08CUd1EoTYWB45VmB9XIQzhmzI=",
|
||||||
"owner": "simple-nixos-mailserver",
|
"owner": "simple-nixos-mailserver",
|
||||||
"repo": "nixos-mailserver",
|
"repo": "nixos-mailserver",
|
||||||
"rev": "8c1c4640b878c692dd3d8055e8cdea0a2bbd8cf3",
|
"rev": "29916981e7b3b5782dc5085ad18490113f8ff63b",
|
||||||
"type": "gitlab"
|
"type": "gitlab"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "simple-nixos-mailserver",
|
"owner": "simple-nixos-mailserver",
|
||||||
"ref": "master",
|
"ref": "nixos-24.05",
|
||||||
"repo": "nixos-mailserver",
|
"repo": "nixos-mailserver",
|
||||||
"type": "gitlab"
|
"type": "gitlab"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1684425776,
|
"lastModified": 1726320982,
|
||||||
"narHash": "sha256-eXzSIXkzXa9EecoDF9xCsoim0vd++8dvYU7QOuQMO8A=",
|
"narHash": "sha256-RuVXUwcYwaUeks6h3OLrEmg14z9aFXdWppTWPMTwdQw=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "8dc174d8b768893172eb3e52008f10f48dfbd5cf",
|
"rev": "8f7492cce28977fbf8bd12c72af08b1f6c7c3e49",
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "release-22.11",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs-24_11": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1734083684,
|
|
||||||
"narHash": "sha256-5fNndbndxSx5d+C/D0p/VF32xDiJCJzyOqorOYW4JEo=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "314e12ba369ccdb9b352a4db26ff419f7c49fa84",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"id": "nixpkgs",
|
"id": "nixpkgs",
|
||||||
"ref": "nixos-24.11",
|
"ref": "nixos-24.05",
|
||||||
"type": "indirect"
|
"type": "indirect"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-unstable": {
|
"nixpkgs-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1739446958,
|
"lastModified": 1726334142,
|
||||||
"narHash": "sha256-+/bYK3DbPxMIvSL4zArkMX0LQvS7rzBKXnDXLfKyRVc=",
|
"narHash": "sha256-SxGeAYrGoCnaGkQHNzGvExpgJv1pfS5J2pMX7zlwWxE=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "2ff53fe64443980e139eaa286017f53f88336dd0",
|
"rev": "d9d07251f12399413e6d33d5875a6f1994ef75a7",
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"id": "nixpkgs",
|
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"type": "indirect"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_2": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1659219666,
|
|
||||||
"narHash": "sha256-pzYr5fokQPHv7CmUXioOhhzDy/XyWOIXP4LZvv/T7Mk=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "7b9be38c7250b22d829ab6effdee90d5e40c6e5c",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"id": "nixpkgs",
|
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"type": "indirect"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_3": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1732812356,
|
|
||||||
"narHash": "sha256-LNcgjOLArRlx2W6XSi0yc0xwLjrK3KF9LxAMqUgFDgw=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "581d7e4d23b91daf2afa0005a5d3d01d6a8884fe",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -594,85 +484,6 @@
|
||||||
"type": "indirect"
|
"type": "indirect"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_4": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1719010183,
|
|
||||||
"narHash": "sha256-8HMWaqpyjbVeEsmy/A2H6VFtW/Wr71vkPLnpTiAXu+8=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "0f620ca71fa69abb411a6c78739a9b171a0a95a6",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "release-24.05",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_5": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1739357830,
|
|
||||||
"narHash": "sha256-9xim3nJJUFbVbJCz48UP4fGRStVW5nv4VdbimbKxJ3I=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "0ff09db9d034a04acd4e8908820ba0b410d7a33a",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"id": "nixpkgs",
|
|
||||||
"ref": "nixos-24.11",
|
|
||||||
"type": "indirect"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_6": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1735554305,
|
|
||||||
"narHash": "sha256-zExSA1i/b+1NMRhGGLtNfFGXgLtgo+dcuzHzaWA6w3Q=",
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "0e82ab234249d8eee3e8c91437802b32c74bb3fd",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nixos",
|
|
||||||
"ref": "nixpkgs-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_7": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1719010183,
|
|
||||||
"narHash": "sha256-8HMWaqpyjbVeEsmy/A2H6VFtW/Wr71vkPLnpTiAXu+8=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "0f620ca71fa69abb411a6c78739a9b171a0a95a6",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "release-24.05",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_8": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1714091391,
|
|
||||||
"narHash": "sha256-68n3GBvlm1MIeJXadPzQ3v8Y9sIW3zmv8gI5w5sliC8=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "4c86138ce486d601d956a165e2f7a0fc029a03c1",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixpkgs-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"plymouth-themes": {
|
"plymouth-themes": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
|
@ -692,11 +503,11 @@
|
||||||
"ranger-icons": {
|
"ranger-icons": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1736375293,
|
"lastModified": 1713564482,
|
||||||
"narHash": "sha256-ck53eG+mGIQ706sUnEHbJ6vY1/LYnRcpq94JXzwnGTQ=",
|
"narHash": "sha256-sijO9leDXgnjgcVlh5fKYalhjOupwFMRyH0xh2g/rEQ=",
|
||||||
"owner": "alexanderjeurissen",
|
"owner": "alexanderjeurissen",
|
||||||
"repo": "ranger_devicons",
|
"repo": "ranger_devicons",
|
||||||
"rev": "f227f212e14996fbb366f945ec3ecaf5dc5f44b0",
|
"rev": "a8d626485ca83719e1d8d5e32289cd96a097c861",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -708,27 +519,20 @@
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"agenix": "agenix",
|
"agenix": "agenix",
|
||||||
"catboy-spinner": "catboy-spinner",
|
|
||||||
"demoji": "demoji",
|
"demoji": "demoji",
|
||||||
"dhist": "dhist",
|
"dhist": "dhist",
|
||||||
"disko": "disko",
|
"disko": "disko",
|
||||||
"dzgui-nix": "dzgui-nix",
|
"dzgui-nix": "dzgui-nix",
|
||||||
"hello-fonts": "hello-fonts",
|
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"made-you-look": "made-you-look",
|
|
||||||
"nix-index-database": "nix-index-database",
|
"nix-index-database": "nix-index-database",
|
||||||
"nixos-mailserver": "nixos-mailserver",
|
"nixos-mailserver": "nixos-mailserver",
|
||||||
"nixpkgs": "nixpkgs_5",
|
"nixpkgs": "nixpkgs",
|
||||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||||
"plymouth-themes": "plymouth-themes",
|
"plymouth-themes": "plymouth-themes",
|
||||||
"ranger-icons": "ranger-icons",
|
"ranger-icons": "ranger-icons",
|
||||||
"tlauncher": "tlauncher",
|
"tlauncher": "tlauncher",
|
||||||
"tomater": "tomater",
|
|
||||||
"treefmt-nix": "treefmt-nix",
|
|
||||||
"vpsadminos": "vpsadminos",
|
|
||||||
"warthunder-leak-counter": "warthunder-leak-counter",
|
"warthunder-leak-counter": "warthunder-leak-counter",
|
||||||
"wl-crosshair": "wl-crosshair",
|
"wl-crosshair": "wl-crosshair"
|
||||||
"youre-wrong": "youre-wrong"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rust-analyzer-src": {
|
"rust-analyzer-src": {
|
||||||
|
@ -882,17 +686,17 @@
|
||||||
},
|
},
|
||||||
"tlauncher": {
|
"tlauncher": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils_5",
|
"flake-utils": "flake-utils_4",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734044605,
|
"lastModified": 1684504342,
|
||||||
"narHash": "sha256-CeCYv3JFJIySSf2eX9ceEOF1FqNGeJnzEuO5f+OvioQ=",
|
"narHash": "sha256-rJ0eH7BuPizvXPc+LjVtovse4gWEuxP2WiyNdXjPNL4=",
|
||||||
"ref": "refs/heads/main",
|
"ref": "refs/heads/main",
|
||||||
"rev": "6a68f2cda0aa2fbb399a4c43b445e8c1a2df0634",
|
"rev": "add4df7220bd0b85177a1938c02b60c966c5eb71",
|
||||||
"revCount": 4,
|
"revCount": 3,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://git.lelgenio.xyz/lelgenio/tlauncher-nix"
|
"url": "https://git.lelgenio.xyz/lelgenio/tlauncher-nix"
|
||||||
},
|
},
|
||||||
|
@ -901,60 +705,31 @@
|
||||||
"url": "https://git.lelgenio.xyz/lelgenio/tlauncher-nix"
|
"url": "https://git.lelgenio.xyz/lelgenio/tlauncher-nix"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tomater": {
|
"utils": {
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1728089744,
|
|
||||||
"narHash": "sha256-WOz/qUKyao7lM2qcwqqcJDw4jI8mUJL6kNUNm0sxPKk=",
|
|
||||||
"ref": "refs/heads/main",
|
|
||||||
"rev": "efff561c745514a7874e3f5de95307a74efc7df9",
|
|
||||||
"revCount": 1,
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://git.lelgenio.com/lelgenio/tomater"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://git.lelgenio.com/lelgenio/tomater"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"treefmt-nix": {
|
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_6"
|
"systems": "systems_4"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1738953846,
|
"lastModified": 1709126324,
|
||||||
"narHash": "sha256-yrK3Hjcr8F7qS/j2F+r7C7o010eVWWlm4T1PrbKBOxQ=",
|
"narHash": "sha256-q6EQdSeUZOG26WelxqkmR7kArjgWCdw5sfJVHPH/7j8=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "treefmt-nix",
|
"repo": "flake-utils",
|
||||||
"rev": "4f09b473c936d41582dd744e19f34ec27592c5fd",
|
"rev": "d465f4819400de7c8d874d50b982301f28a84605",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "treefmt-nix",
|
"repo": "flake-utils",
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"vpsadminos": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1739153939,
|
|
||||||
"narHash": "sha256-7z+4SMs1uD/mCruBasPeWeq1DGzzgACRHOSdLE+mHRk=",
|
|
||||||
"owner": "vpsfreecz",
|
|
||||||
"repo": "vpsadminos",
|
|
||||||
"rev": "939254840fcd72bdd3cd52186171815c3f25403b",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "vpsfreecz",
|
|
||||||
"repo": "vpsadminos",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"warthunder-leak-counter": {
|
"warthunder-leak-counter": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"crane": "crane_3",
|
"crane": "crane_2",
|
||||||
"flake-utils": "flake-utils_6",
|
"flake-utils": "flake-utils_5",
|
||||||
"nixpkgs": "nixpkgs_7"
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1719076817,
|
"lastModified": 1719076817,
|
||||||
|
@ -972,8 +747,10 @@
|
||||||
},
|
},
|
||||||
"wl-crosshair": {
|
"wl-crosshair": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils_7",
|
"flake-utils": "flake-utils_6",
|
||||||
"nixpkgs": "nixpkgs_8"
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1715216838,
|
"lastModified": 1715216838,
|
||||||
|
@ -988,22 +765,6 @@
|
||||||
"repo": "wl-crosshair",
|
"repo": "wl-crosshair",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"youre-wrong": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1728228087,
|
|
||||||
"narHash": "sha256-W40rQbQAo3lGrKlfenSA8JaGwZMSx/X4lP71enQtK7Y=",
|
|
||||||
"ref": "refs/heads/main",
|
|
||||||
"rev": "64e7876233e99ad7223cae29688374a1c1ff569a",
|
|
||||||
"revCount": 2,
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://git.lelgenio.com/lelgenio/youre-wrong"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://git.lelgenio.com/lelgenio/youre-wrong"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
|
78
flake.nix
78
flake.nix
|
@ -1,14 +1,10 @@
|
||||||
{
|
{
|
||||||
description = "My system config";
|
description = "My system config";
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "nixpkgs/nixos-24.11";
|
nixpkgs.url = "nixpkgs/nixos-24.05";
|
||||||
nixpkgs-unstable.url = "nixpkgs/nixos-unstable";
|
home-manager.url = "github:nix-community/home-manager/release-24.05";
|
||||||
|
|
||||||
home-manager.url = "github:nix-community/home-manager/release-24.11";
|
|
||||||
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
vpsadminos.url = "github:vpsfreecz/vpsadminos";
|
|
||||||
|
|
||||||
nix-index-database = {
|
nix-index-database = {
|
||||||
url = "github:Mic92/nix-index-database";
|
url = "github:Mic92/nix-index-database";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
@ -27,45 +23,40 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
nixos-mailserver = {
|
nixos-mailserver = {
|
||||||
url = "gitlab:simple-nixos-mailserver/nixos-mailserver/master";
|
url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-24.05";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
inputs.nixpkgs-24_05.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
dzgui-nix.url = "github:lelgenio/dzgui-nix";
|
dzgui-nix = {
|
||||||
|
url = "github:lelgenio/dzgui-nix/dzgui-4.1.0";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
tlauncher = {
|
tlauncher = {
|
||||||
url = "git+https://git.lelgenio.xyz/lelgenio/tlauncher-nix";
|
url = "git+https://git.lelgenio.xyz/lelgenio/tlauncher-nix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
disko = {
|
disko.url = "github:nix-community/disko";
|
||||||
url = "github:nix-community/disko";
|
disko.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
|
|
||||||
treefmt-nix.url = "github:numtide/treefmt-nix";
|
|
||||||
|
|
||||||
# my stuff
|
# my stuff
|
||||||
dhist.url = "github:lelgenio/dhist";
|
dhist = {
|
||||||
demoji.url = "github:lelgenio/demoji";
|
url = "github:lelgenio/dhist";
|
||||||
wl-crosshair.url = "github:lelgenio/wl-crosshair";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
warthunder-leak-counter.url = "git+https://git.lelgenio.com/lelgenio/warthunder-leak-counter";
|
|
||||||
made-you-look.url = "git+https://git.lelgenio.com/lelgenio/made-you-look";
|
|
||||||
catboy-spinner = {
|
|
||||||
url = "git+https://git.lelgenio.com/lelgenio/catboy-spinner";
|
|
||||||
flake = false;
|
|
||||||
};
|
};
|
||||||
tomater = {
|
demoji = {
|
||||||
url = "git+https://git.lelgenio.com/lelgenio/tomater";
|
url = "github:lelgenio/demoji";
|
||||||
flake = false;
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
youre-wrong = {
|
wl-crosshair = {
|
||||||
url = "git+https://git.lelgenio.com/lelgenio/youre-wrong";
|
url = "github:lelgenio/wl-crosshair";
|
||||||
flake = false;
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
hello-fonts = {
|
warthunder-leak-counter = {
|
||||||
url = "git+https://git.lelgenio.com/lelgenio/hello-fonts";
|
url = "git+https://git.lelgenio.com/lelgenio/warthunder-leak-counter";
|
||||||
flake = false;
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
outputs =
|
outputs =
|
||||||
|
@ -84,9 +75,7 @@
|
||||||
pkgs = import inputs.nixpkgs nixpkgsConfig;
|
pkgs = import inputs.nixpkgs nixpkgsConfig;
|
||||||
lib = inputs.nixpkgs.lib;
|
lib = inputs.nixpkgs.lib;
|
||||||
|
|
||||||
packages = import ./pkgs { inherit pkgs inputs; };
|
old_overlays = (import ./overlays { inherit inputs; });
|
||||||
|
|
||||||
old_overlays = (import ./overlays { inherit packages inputs; });
|
|
||||||
|
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
inherit inputs;
|
inherit inputs;
|
||||||
|
@ -96,10 +85,9 @@
|
||||||
{ nixpkgs.pkgs = pkgs; }
|
{ nixpkgs.pkgs = pkgs; }
|
||||||
./system/configuration.nix
|
./system/configuration.nix
|
||||||
./system/secrets.nix
|
./system/secrets.nix
|
||||||
./system/greetd.nix
|
|
||||||
{ login-manager.greetd.enable = desktop == "sway"; }
|
|
||||||
|
|
||||||
inputs.agenix.nixosModules.default
|
inputs.agenix.nixosModules.default
|
||||||
|
inputs.dzgui-nix.nixosModules.default
|
||||||
inputs.home-manager.nixosModules.home-manager
|
inputs.home-manager.nixosModules.home-manager
|
||||||
inputs.disko.nixosModules.disko
|
inputs.disko.nixosModules.disko
|
||||||
{
|
{
|
||||||
|
@ -132,10 +120,16 @@
|
||||||
./hosts/monolith
|
./hosts/monolith
|
||||||
./system/monolith-gitlab-runner.nix
|
./system/monolith-gitlab-runner.nix
|
||||||
./system/monolith-forgejo-runner.nix
|
./system/monolith-forgejo-runner.nix
|
||||||
./system/nix-serve.nix
|
|
||||||
./system/steam.nix
|
./system/steam.nix
|
||||||
] ++ common_modules;
|
] ++ common_modules;
|
||||||
};
|
};
|
||||||
|
rainbow = lib.nixosSystem {
|
||||||
|
inherit system specialArgs;
|
||||||
|
modules = [
|
||||||
|
./hosts/rainbow
|
||||||
|
./system/rainbow-gitlab-runner.nix
|
||||||
|
] ++ common_modules;
|
||||||
|
};
|
||||||
double-rainbow = lib.nixosSystem {
|
double-rainbow = lib.nixosSystem {
|
||||||
inherit system specialArgs;
|
inherit system specialArgs;
|
||||||
modules = [
|
modules = [
|
||||||
|
@ -158,10 +152,7 @@
|
||||||
};
|
};
|
||||||
phantom = lib.nixosSystem {
|
phantom = lib.nixosSystem {
|
||||||
inherit system specialArgs;
|
inherit system specialArgs;
|
||||||
modules = [
|
modules = [ ./hosts/phantom ];
|
||||||
{ nixpkgs.pkgs = pkgs; }
|
|
||||||
./hosts/phantom
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -176,9 +167,8 @@
|
||||||
modules = [ ./user/home.nix ];
|
modules = [ ./user/home.nix ];
|
||||||
};
|
};
|
||||||
|
|
||||||
packages.${system} = pkgs // packages;
|
packages.${system} = pkgs;
|
||||||
|
|
||||||
# formatter.${system} = pkgs.nixfmt-rfc-style;
|
formatter.${system} = pkgs.nixfmt-rfc-style;
|
||||||
formatter.${system} = (inputs.treefmt-nix.lib.evalModule pkgs ./treefmt.nix).config.build.wrapper;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,15 +37,14 @@ in
|
||||||
options = [ "subvol=@" ] ++ btrfs_options ++ btrfs_ssd;
|
options = [ "subvol=@" ] ++ btrfs_options ++ btrfs_ssd;
|
||||||
};
|
};
|
||||||
|
|
||||||
boot.initrd.luks.devices."luks-d6573cf8-25f0-4ffc-8046-ac3a4db1e964".device =
|
boot.initrd.luks.devices."luks-d6573cf8-25f0-4ffc-8046-ac3a4db1e964".device = "/dev/disk/by-uuid/d6573cf8-25f0-4ffc-8046-ac3a4db1e964";
|
||||||
"/dev/disk/by-uuid/d6573cf8-25f0-4ffc-8046-ac3a4db1e964";
|
|
||||||
|
|
||||||
fileSystems."/boot" = {
|
fileSystems."/boot" = {
|
||||||
device = "/dev/disk/by-uuid/97EB-7DB5";
|
device = "/dev/disk/by-uuid/97EB-7DB5";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
};
|
};
|
||||||
|
|
||||||
swapDevices = [ { device = "/swapfile"; } ];
|
swapDevices = [ ];
|
||||||
|
|
||||||
services.udev.extraRules = ''
|
services.udev.extraRules = ''
|
||||||
# Force all disks to use mq-deadline scheduler
|
# Force all disks to use mq-deadline scheduler
|
||||||
|
|
|
@ -1,40 +0,0 @@
|
||||||
{ pkgs, lib, ... }:
|
|
||||||
let
|
|
||||||
undervoltGpu = pkgs.writeShellScript "undervolt-gpu" ''
|
|
||||||
set -xe
|
|
||||||
cd $1
|
|
||||||
echo "manual" > power_dpm_force_performance_level
|
|
||||||
echo "1" > pp_power_profile_mode
|
|
||||||
test -e pp_od_clk_voltage
|
|
||||||
echo "vo -120" > pp_od_clk_voltage
|
|
||||||
echo "c" > pp_od_clk_voltage
|
|
||||||
'';
|
|
||||||
in
|
|
||||||
{
|
|
||||||
boot.initrd.kernelModules = [ "amdgpu" ];
|
|
||||||
boot.kernelParams = [
|
|
||||||
"video=DP-1:1920x1080@144"
|
|
||||||
"amdgpu.ppfeaturemask=0xfffd7fff" # enable undervolting
|
|
||||||
];
|
|
||||||
|
|
||||||
systemd.services.amd-fan-control = {
|
|
||||||
script = ''
|
|
||||||
${lib.getExe pkgs.amd-fan-control} /sys/class/drm/card1/device 60 85
|
|
||||||
'';
|
|
||||||
serviceConfig = {
|
|
||||||
Restart = "always";
|
|
||||||
RestartSec = 10;
|
|
||||||
};
|
|
||||||
wantedBy = [ "multi-user.target" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware.graphics.enable32Bit = true;
|
|
||||||
|
|
||||||
hardware.graphics.extraPackages = with pkgs; [
|
|
||||||
libva
|
|
||||||
];
|
|
||||||
|
|
||||||
services.udev.extraRules = ''
|
|
||||||
ACTION=="add", SUBSYSTEM=="hwmon", ATTR{name}=="amdgpu", ATTR{power1_cap}="186000000", RUN+="${undervoltGpu} %S%p/device"
|
|
||||||
'';
|
|
||||||
}
|
|
|
@ -23,8 +23,7 @@ in
|
||||||
imports = [
|
imports = [
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
./partition.nix
|
./partition.nix
|
||||||
./amdgpu.nix
|
./undervolt.nix
|
||||||
./factorio-server.nix
|
|
||||||
];
|
];
|
||||||
boot.initrd.availableKernelModules = [
|
boot.initrd.availableKernelModules = [
|
||||||
"nvme"
|
"nvme"
|
||||||
|
@ -35,26 +34,37 @@ in
|
||||||
"sd_mod"
|
"sd_mod"
|
||||||
];
|
];
|
||||||
|
|
||||||
hardware.opentabletdriver = {
|
hardware.opentabletdriver.enable = true;
|
||||||
enable = true;
|
|
||||||
# TODO: remove this once otd gets updated
|
|
||||||
package = pkgs.unstable.opentabletdriver;
|
|
||||||
};
|
|
||||||
|
|
||||||
boot.extraModulePackages = with config.boot.kernelPackages; [ zenpower ];
|
boot.extraModulePackages = with config.boot.kernelPackages; [ zenpower ];
|
||||||
|
|
||||||
boot.initrd.kernelModules = [ "amdgpu" ];
|
boot.initrd.kernelModules = [ "amdgpu" ];
|
||||||
boot.kernelModules = [
|
boot.kernelModules = [
|
||||||
"kvm-amd"
|
"kvm-amd"
|
||||||
"amdgpu"
|
"amdgpu"
|
||||||
"zenpower"
|
"zenpower"
|
||||||
];
|
];
|
||||||
|
boot.kernelParams = [
|
||||||
|
"amdgpu.dcdebugmask=0x10" # amdgpu undervolting bug
|
||||||
|
"video=DP-1:1920x1080@144"
|
||||||
|
];
|
||||||
systemd.sleep.extraConfig = ''
|
systemd.sleep.extraConfig = ''
|
||||||
HibernateDelaySec=30s
|
HibernateDelaySec=30s
|
||||||
SuspendState=mem
|
SuspendState=mem
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
hardware.opengl.driSupport = true;
|
||||||
|
# # For 32 bit applications
|
||||||
|
hardware.opengl.driSupport32Bit = true;
|
||||||
|
|
||||||
|
hardware.opengl.extraPackages = with pkgs; [
|
||||||
|
libva
|
||||||
|
libvdpau
|
||||||
|
vaapiVdpau
|
||||||
|
rocm-opencl-icd
|
||||||
|
rocm-opencl-runtime
|
||||||
|
rocmPackages.rocm-smi
|
||||||
|
];
|
||||||
|
|
||||||
fileSystems."/mnt/old" = {
|
fileSystems."/mnt/old" = {
|
||||||
device = "/dev/disk/by-label/BTRFS_ROOT";
|
device = "/dev/disk/by-label/BTRFS_ROOT";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
|
@ -136,9 +146,10 @@ in
|
||||||
virtualisation.virtualbox.host.enable = true;
|
virtualisation.virtualbox.host.enable = true;
|
||||||
|
|
||||||
services.udev.extraRules = ''
|
services.udev.extraRules = ''
|
||||||
# Fix broken suspend with Logitech USB dongle
|
# Disable using controller touchpad as mouse
|
||||||
# `lsusb | grep Logitech` will return "vendor:product"
|
# https://wiki.archlinux.org/title/Gamepad#libinput
|
||||||
ACTION=="add" SUBSYSTEM=="usb" ATTR{idVendor}=="046d" ATTR{idProduct}=="c547" ATTR{power/wakeup}="disabled"
|
ATTRS{name}=="Wireless Controller Touchpad", ENV{LIBINPUT_IGNORE_DEVICE}="1"
|
||||||
|
|
||||||
# Force all disks to use mq-deadline scheduler
|
# Force all disks to use mq-deadline scheduler
|
||||||
# For some reason "noop" is used by default which is kinda bad when io is saturated
|
# For some reason "noop" is used by default which is kinda bad when io is saturated
|
||||||
ACTION=="add|change", KERNEL=="sd[a-z]*[0-9]*|mmcblk[0-9]*p[0-9]*|nvme[0-9]*n[0-9]*p[0-9]*", ATTR{../queue/scheduler}="mq-deadline"
|
ACTION=="add|change", KERNEL=="sd[a-z]*[0-9]*|mmcblk[0-9]*p[0-9]*|nvme[0-9]*n[0-9]*p[0-9]*", ATTR{../queue/scheduler}="mq-deadline"
|
||||||
|
@ -163,4 +174,16 @@ in
|
||||||
# size = (1024 * 16) + (1024 * 2); # RAM size + 2 GB
|
# size = (1024 * 16) + (1024 * 2); # RAM size + 2 GB
|
||||||
# }
|
# }
|
||||||
# ];
|
# ];
|
||||||
|
|
||||||
|
system.autoUpgrade = {
|
||||||
|
enable = true;
|
||||||
|
dates = "04:40";
|
||||||
|
operation = "switch";
|
||||||
|
flags = [
|
||||||
|
"--update-input"
|
||||||
|
"nixpkgs"
|
||||||
|
"--print-build-logs"
|
||||||
|
];
|
||||||
|
flake = "/home/lelgenio/projects/nixos-config#monolith";
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,49 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
services.factorio = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.factorio-headless; # I override this in ./pkgs
|
|
||||||
public = true;
|
|
||||||
lan = true;
|
|
||||||
openFirewall = true;
|
|
||||||
admins = [ "lelgenio" ];
|
|
||||||
extraSettingsFile = config.age.secrets.factorio-settings.path;
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.services.factorio = {
|
|
||||||
after = [ "network-online.target" ];
|
|
||||||
wants = [ "network-online.target" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.services.factorio-backup-save = {
|
|
||||||
description = "Backup factorio saves";
|
|
||||||
script = ''
|
|
||||||
${lib.getExe pkgs.rsync} \
|
|
||||||
-av \
|
|
||||||
--chown=lelgenio \
|
|
||||||
/var/lib/factorio/saves/default.zip \
|
|
||||||
~lelgenio/Documentos/GameSaves/factorio_saves/space-age-$(date --iso=seconds).zip
|
|
||||||
'';
|
|
||||||
serviceConfig.Type = "oneshot";
|
|
||||||
wantedBy = [ "multi-user.target" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.timers.factorio-backup-save = {
|
|
||||||
timerConfig = {
|
|
||||||
OnCalendar = "*-*-* 18:00:00";
|
|
||||||
Persistent = true;
|
|
||||||
Unit = "factorio-backup-save.service";
|
|
||||||
};
|
|
||||||
wantedBy = [ "timers.target" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
age.secrets.factorio-settings = {
|
|
||||||
file = ../../secrets/factorio-settings.age;
|
|
||||||
mode = "777";
|
|
||||||
};
|
|
||||||
}
|
|
18
hosts/monolith/undervolt.nix
Normal file
18
hosts/monolith/undervolt.nix
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
let
|
||||||
|
undervoltGpu = pkgs.writeShellScript "undervolt-gpu" ''
|
||||||
|
set -xe
|
||||||
|
cd $1
|
||||||
|
echo "manual" > power_dpm_force_performance_level
|
||||||
|
echo "1" > pp_power_profile_mode
|
||||||
|
test -e pp_od_clk_voltage
|
||||||
|
echo "vo -120" > pp_od_clk_voltage
|
||||||
|
echo "c" > pp_od_clk_voltage
|
||||||
|
'';
|
||||||
|
in
|
||||||
|
{
|
||||||
|
boot.kernelParams = [ "amdgpu.ppfeaturemask=0xfffd7fff" ];
|
||||||
|
services.udev.extraRules = ''
|
||||||
|
ACTION=="add", SUBSYSTEM=="hwmon", ATTR{name}=="amdgpu", ATTR{power1_cap}="186000000", RUN+="${undervoltGpu} %S%p/device"
|
||||||
|
'';
|
||||||
|
}
|
|
@ -6,12 +6,11 @@
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
inputs.vpsadminos.nixosConfigurations.container
|
./vpsadminos.nix
|
||||||
inputs.agenix.nixosModules.default
|
inputs.agenix.nixosModules.default
|
||||||
../../system/nix.nix
|
../../system/nix.nix
|
||||||
./hardware-config.nix
|
./hardware-config.nix
|
||||||
./mastodon.nix
|
./mastodon.nix
|
||||||
./lemmy.nix
|
|
||||||
./nextcloud.nix
|
./nextcloud.nix
|
||||||
./nginx.nix
|
./nginx.nix
|
||||||
./syncthing.nix
|
./syncthing.nix
|
||||||
|
@ -19,9 +18,9 @@
|
||||||
./writefreely.nix
|
./writefreely.nix
|
||||||
./email.nix
|
./email.nix
|
||||||
./forgejo.nix
|
./forgejo.nix
|
||||||
|
./warthunder-leak-counter.nix
|
||||||
./invidious.nix
|
./invidious.nix
|
||||||
./davi.nix
|
./davi.nix
|
||||||
./goofs.nix
|
|
||||||
];
|
];
|
||||||
|
|
||||||
networking.hostName = "phantom";
|
networking.hostName = "phantom";
|
||||||
|
@ -57,18 +56,6 @@
|
||||||
identityPaths = [ "/root/.ssh/id_rsa" ];
|
identityPaths = [ "/root/.ssh/id_rsa" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
virtualisation.docker = {
|
|
||||||
enable = true;
|
|
||||||
daemon.settings = {
|
|
||||||
# needed by bitbucket runner ???
|
|
||||||
log-driver = "json-file";
|
|
||||||
log-opts = {
|
|
||||||
max-size = "10m";
|
|
||||||
max-file = "3";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
nix.settings = {
|
nix.settings = {
|
||||||
cores = 1;
|
cores = 1;
|
||||||
max-jobs = 1;
|
max-jobs = 1;
|
||||||
|
|
|
@ -27,9 +27,6 @@ in
|
||||||
ENABLED = true;
|
ENABLED = true;
|
||||||
DEFAULT_ACTIONS_URL = "github";
|
DEFAULT_ACTIONS_URL = "github";
|
||||||
};
|
};
|
||||||
repository = {
|
|
||||||
ENABLE_PUSH_CREATE_USER = true;
|
|
||||||
};
|
|
||||||
server = {
|
server = {
|
||||||
DOMAIN = "git.lelgenio.com";
|
DOMAIN = "git.lelgenio.com";
|
||||||
HTTP_PORT = 3000;
|
HTTP_PORT = 3000;
|
||||||
|
|
|
@ -1,46 +0,0 @@
|
||||||
{ inputs, config, ... }:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
inputs.warthunder-leak-counter.nixosModules.default
|
|
||||||
inputs.made-you-look.nixosModules.default
|
|
||||||
];
|
|
||||||
|
|
||||||
services.warthunder-leak-counter.enable = true;
|
|
||||||
services.nginx.virtualHosts."warthunder-leak-counter.lelgenio.com" = {
|
|
||||||
enableACME = true;
|
|
||||||
forceSSL = true;
|
|
||||||
locations."/" = {
|
|
||||||
proxyPass = "http://127.0.0.1:${toString config.services.warthunder-leak-counter.port}";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.made-you-look.enable = true;
|
|
||||||
services.nginx.virtualHosts."coolest-thing-ever.lelgenio.com" = {
|
|
||||||
enableACME = true;
|
|
||||||
forceSSL = true;
|
|
||||||
locations."/" = {
|
|
||||||
proxyPass = "http://127.0.0.1:${toString config.services.made-you-look.port}";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.nginx.virtualHosts."catboy-spinner.lelgenio.com" = {
|
|
||||||
enableACME = true;
|
|
||||||
forceSSL = true;
|
|
||||||
root = inputs.catboy-spinner;
|
|
||||||
};
|
|
||||||
services.nginx.virtualHosts."tomater.lelgenio.com" = {
|
|
||||||
enableACME = true;
|
|
||||||
forceSSL = true;
|
|
||||||
root = inputs.tomater;
|
|
||||||
};
|
|
||||||
services.nginx.virtualHosts."youre-wrong.lelgenio.com" = {
|
|
||||||
enableACME = true;
|
|
||||||
forceSSL = true;
|
|
||||||
root = inputs.youre-wrong;
|
|
||||||
};
|
|
||||||
services.nginx.virtualHosts."hello-fonts.lelgenio.com" = {
|
|
||||||
enableACME = true;
|
|
||||||
forceSSL = true;
|
|
||||||
root = inputs.hello-fonts;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,15 +1,10 @@
|
||||||
{
|
{
|
||||||
fileSystems."/var/lib/syncthing-data" = {
|
config,
|
||||||
device = "172.16.130.7:/nas/5749/syncthinng_data";
|
pkgs,
|
||||||
fsType = "nfs";
|
inputs,
|
||||||
options = [ "nofail" ];
|
...
|
||||||
};
|
}:
|
||||||
fileSystems."/var/lib/mastodon" = {
|
{
|
||||||
device = "172.16.130.7:/nas/5749/mastodon";
|
|
||||||
fsType = "nfs";
|
|
||||||
options = [ "nofail" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices = [
|
swapDevices = [
|
||||||
{
|
{
|
||||||
device = "/swap/swapfile";
|
device = "/swap/swapfile";
|
||||||
|
|
|
@ -1,40 +1,12 @@
|
||||||
{
|
{
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
# Replace with unstable, since 24.05 does not have sig-helper
|
|
||||||
disabledModules = [ "services/web-apps/invidious.nix" ];
|
|
||||||
imports = [ (inputs.nixpkgs-unstable + "/nixos/modules/services/web-apps/invidious.nix") ];
|
|
||||||
|
|
||||||
services.invidious = {
|
services.invidious = {
|
||||||
enable = true;
|
enable = true;
|
||||||
domain = "invidious.lelgenio.com";
|
domain = "invidious.lelgenio.com";
|
||||||
nginx.enable = true;
|
nginx.enable = true;
|
||||||
port = 10601;
|
port = 10601;
|
||||||
http3-ytproxy.enable = true;
|
settings.db = {
|
||||||
sig-helper = {
|
user = "invidious";
|
||||||
enable = true;
|
dbname = "invidious";
|
||||||
package = pkgs.unstable.inv-sig-helper;
|
|
||||||
};
|
};
|
||||||
# {
|
|
||||||
# "visitor_data": "...",
|
|
||||||
# "po_token": "..."
|
|
||||||
# }
|
|
||||||
extraSettingsFile = config.age.secrets.phantom-invidious-settings.path;
|
|
||||||
settings = {
|
|
||||||
force_resolve = "ipv6";
|
|
||||||
db = {
|
|
||||||
user = "invidious";
|
|
||||||
dbname = "invidious";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
age.secrets.phantom-invidious-settings = {
|
|
||||||
file = ../../secrets/phantom-invidious-settings.age;
|
|
||||||
mode = "666";
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
services.lemmy = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
hostname = "lemmy.lelgenio.com";
|
|
||||||
};
|
|
||||||
database.createLocally = true;
|
|
||||||
nginx.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
services.pict-rs.package = pkgs.pict-rs;
|
|
||||||
|
|
||||||
services.nginx.virtualHosts."lemmy.lelgenio.com" = {
|
|
||||||
enableACME = true;
|
|
||||||
forceSSL = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -7,7 +7,7 @@
|
||||||
{
|
{
|
||||||
services.nextcloud = {
|
services.nextcloud = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.nextcloud30;
|
package = pkgs.nextcloud29;
|
||||||
hostName = "cloud.lelgenio.com";
|
hostName = "cloud.lelgenio.com";
|
||||||
https = true;
|
https = true;
|
||||||
config = {
|
config = {
|
||||||
|
|
76
hosts/phantom/vpsadminos.nix
Normal file
76
hosts/phantom/vpsadminos.nix
Normal file
|
@ -0,0 +1,76 @@
|
||||||
|
# This file provides compatibility for NixOS to run in a container on vpsAdminOS
|
||||||
|
# hosts.
|
||||||
|
#
|
||||||
|
# If you're experiencing issues, try updating this file to the latest version
|
||||||
|
# from vpsAdminOS repository:
|
||||||
|
#
|
||||||
|
# https://github.com/vpsfreecz/vpsadminos/blob/staging/os/lib/nixos-container/vpsadminos.nix
|
||||||
|
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
nameservers = [
|
||||||
|
"1.1.1.1"
|
||||||
|
"2606:4700:4700::1111"
|
||||||
|
];
|
||||||
|
in
|
||||||
|
{
|
||||||
|
networking.nameservers = mkDefault nameservers;
|
||||||
|
services.resolved = mkDefault { fallbackDns = nameservers; };
|
||||||
|
networking.dhcpcd.extraConfig = "noipv4ll";
|
||||||
|
|
||||||
|
systemd.services.systemd-sysctl.enable = false;
|
||||||
|
systemd.services.systemd-oomd.enable = false;
|
||||||
|
systemd.sockets."systemd-journald-audit".enable = false;
|
||||||
|
systemd.mounts = [
|
||||||
|
{
|
||||||
|
where = "/sys/kernel/debug";
|
||||||
|
enable = false;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
systemd.services.rpc-gssd.enable = false;
|
||||||
|
|
||||||
|
# Due to our restrictions in /sys, the default systemd-udev-trigger fails
|
||||||
|
# on accessing PCI devices, etc. Override it to match only network devices.
|
||||||
|
# In addition, boot.isContainer prevents systemd-udev-trigger.service from
|
||||||
|
# being enabled at all, so add it explicitly.
|
||||||
|
systemd.additionalUpstreamSystemUnits = [ "systemd-udev-trigger.service" ];
|
||||||
|
systemd.services.systemd-udev-trigger.serviceConfig.ExecStart = [
|
||||||
|
""
|
||||||
|
"-udevadm trigger --subsystem-match=net --action=add"
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.isContainer = true;
|
||||||
|
boot.enableContainers = mkDefault true;
|
||||||
|
boot.loader.initScript.enable = true;
|
||||||
|
boot.specialFileSystems."/run/keys".fsType = mkForce "tmpfs";
|
||||||
|
boot.systemdExecutable = mkDefault "/run/current-system/systemd/lib/systemd/systemd systemd.unified_cgroup_hierarchy=0";
|
||||||
|
|
||||||
|
# Overrides for <nixpkgs/nixos/modules/virtualisation/container-config.nix>
|
||||||
|
documentation.enable = mkOverride 500 true;
|
||||||
|
documentation.nixos.enable = mkOverride 500 true;
|
||||||
|
networking.useHostResolvConf = mkOverride 500 false;
|
||||||
|
services.openssh.startWhenNeeded = mkOverride 500 false;
|
||||||
|
|
||||||
|
# Bring up the network, /ifcfg.{add,del} are supplied by the vpsAdminOS host
|
||||||
|
systemd.services.networking-setup = {
|
||||||
|
description = "Load network configuration provided by the vpsAdminOS host";
|
||||||
|
before = [ "network.target" ];
|
||||||
|
wantedBy = [ "network.target" ];
|
||||||
|
after = [ "network-pre.target" ];
|
||||||
|
path = [ pkgs.iproute2 ];
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "oneshot";
|
||||||
|
RemainAfterExit = true;
|
||||||
|
ExecStart = "${pkgs.bash}/bin/bash /ifcfg.add";
|
||||||
|
ExecStop = "${pkgs.bash}/bin/bash /ifcfg.del";
|
||||||
|
};
|
||||||
|
unitConfig.ConditionPathExists = "/ifcfg.add";
|
||||||
|
restartIfChanged = false;
|
||||||
|
};
|
||||||
|
}
|
19
hosts/phantom/warthunder-leak-counter.nix
Normal file
19
hosts/phantom/warthunder-leak-counter.nix
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
{
|
||||||
|
inputs,
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
imports = [ inputs.warthunder-leak-counter.nixosModules.default ];
|
||||||
|
|
||||||
|
services.warthunder-leak-counter.enable = true;
|
||||||
|
|
||||||
|
services.nginx.virtualHosts."warthunder-leak-counter.lelgenio.com" = {
|
||||||
|
enableACME = true;
|
||||||
|
forceSSL = true;
|
||||||
|
locations."/" = {
|
||||||
|
proxyPass = "http://127.0.0.1:${toString config.services.warthunder-leak-counter.port}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
85
hosts/rainbow/default.nix
Normal file
85
hosts/rainbow/default.nix
Normal file
|
@ -0,0 +1,85 @@
|
||||||
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
|
# and may be overwritten by future invocations. Please make changes
|
||||||
|
# to /etc/nixos/configuration.nix instead.
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
modulesPath,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
btrfs_options = [
|
||||||
|
"compress=zstd:3"
|
||||||
|
"noatime"
|
||||||
|
"x-systemd.device-timeout=0"
|
||||||
|
];
|
||||||
|
btrfs_ssd = [
|
||||||
|
"ssd"
|
||||||
|
"discard=async"
|
||||||
|
];
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
||||||
|
|
||||||
|
boot.initrd.availableKernelModules = [
|
||||||
|
"xhci_pci"
|
||||||
|
"ahci"
|
||||||
|
"usb_storage"
|
||||||
|
"usbhid"
|
||||||
|
"sd_mod"
|
||||||
|
];
|
||||||
|
boot.initrd.kernelModules = [ "i915" ];
|
||||||
|
boot.kernelModules = [ "kvm-intel" ];
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
|
fileSystems."/" = {
|
||||||
|
device = "/dev/disk/by-label/BTRFS_ROOT";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "subvol=@nixos" ] ++ btrfs_options ++ btrfs_ssd;
|
||||||
|
};
|
||||||
|
|
||||||
|
boot.initrd.luks.devices = {
|
||||||
|
"main" = {
|
||||||
|
bypassWorkqueues = true;
|
||||||
|
device = "/dev/disk/by-label/CRYPT_ROOT";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/home" = {
|
||||||
|
device = "/dev/disk/by-label/BTRFS_ROOT";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "subvol=@home" ] ++ btrfs_options ++ btrfs_ssd;
|
||||||
|
};
|
||||||
|
|
||||||
|
boot.loader.efi.efiSysMountPoint = "/boot/efi";
|
||||||
|
fileSystems."/boot/efi" = {
|
||||||
|
device = "/dev/disk/by-uuid/DC3B-5753";
|
||||||
|
fsType = "vfat";
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/swap" = {
|
||||||
|
device = "/dev/disk/by-label/BTRFS_ROOT";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "subvol=@swap" ] ++ btrfs_ssd;
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices = [
|
||||||
|
{
|
||||||
|
device = "/swap/swapfile";
|
||||||
|
size = (1024 * 8);
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
|
# still possible to use this option, but it's recommended to use it in conjunction
|
||||||
|
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||||
|
networking.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.enp1s0.useDHCP = lib.mkDefault true;
|
||||||
|
|
||||||
|
powerManagement.cpuFreqGovernor = lib.mkDefault "ondemand";
|
||||||
|
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
|
||||||
|
networking.hostName = "rainbow"; # Define your hostname.
|
||||||
|
}
|
|
@ -1,21 +1,16 @@
|
||||||
{ inputs, packages, ... }:
|
{ inputs, ... }:
|
||||||
rec {
|
rec {
|
||||||
all = [
|
all = [
|
||||||
scripts
|
scripts
|
||||||
unstable
|
|
||||||
themes
|
themes
|
||||||
|
(import ../pkgs)
|
||||||
new-packages
|
new-packages
|
||||||
patches
|
|
||||||
lib_extended
|
lib_extended
|
||||||
disko
|
disko
|
||||||
];
|
];
|
||||||
|
|
||||||
scripts = (import ../scripts);
|
scripts = (import ../scripts);
|
||||||
|
|
||||||
unstable = final: prev: {
|
|
||||||
unstable = import inputs.nixpkgs-unstable { inherit (final) system config; };
|
|
||||||
};
|
|
||||||
|
|
||||||
themes = (
|
themes = (
|
||||||
final: prev: {
|
final: prev: {
|
||||||
papirus_red = (final.papirus-icon-theme.override { color = "red"; });
|
papirus_red = (final.papirus-icon-theme.override { color = "red"; });
|
||||||
|
@ -39,28 +34,12 @@ rec {
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
new-packages = (
|
new-packages = final: prev: {
|
||||||
final: prev:
|
dhist = inputs.dhist.packages.${prev.system}.dhist;
|
||||||
packages
|
demoji = inputs.demoji.packages.${prev.system}.default;
|
||||||
// {
|
tlauncher = inputs.tlauncher.packages.${prev.system}.tlauncher;
|
||||||
dhist = inputs.dhist.packages.${prev.system}.dhist;
|
wl-crosshair = inputs.wl-crosshair.packages.${prev.system}.default;
|
||||||
demoji = inputs.demoji.packages.${prev.system}.default;
|
};
|
||||||
tlauncher = inputs.tlauncher.packages.${prev.system}.tlauncher;
|
|
||||||
wl-crosshair = inputs.wl-crosshair.packages.${prev.system}.default;
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
patches = (
|
|
||||||
final: prev: {
|
|
||||||
mySway = prev.sway.override {
|
|
||||||
withBaseWrapper = true;
|
|
||||||
withGtkWrapper = true;
|
|
||||||
sway-unwrapped = prev.sway-unwrapped.overrideAttrs (old: {
|
|
||||||
patches = old.patches ++ [ ../patches/sway/fix-hide_cursor-clearing-focus.patch ];
|
|
||||||
});
|
|
||||||
};
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
lib_extended = (
|
lib_extended = (
|
||||||
final: prev: {
|
final: prev: {
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
commit 9c516cc61775a88312280f7732328d5fdf7af825
|
|
||||||
Author: lelgenio <lelgenio@disroot.org>
|
|
||||||
Date: Mon May 22 11:30:01 2023 -0300
|
|
||||||
|
|
||||||
fix: limit lowest value for corner-radious at 0
|
|
||||||
|
|
||||||
diff --git a/src/_sass/_variables.scss b/src/_sass/_variables.scss
|
|
||||||
index 9915a22..6e87a4f 100644
|
|
||||||
--- a/src/_sass/_variables.scss
|
|
||||||
+++ b/src/_sass/_variables.scss
|
|
||||||
@@ -24,7 +24,7 @@ $large-icon-size: 32px;
|
|
||||||
//
|
|
||||||
|
|
||||||
$window-radius: $default_corner + $space-size;
|
|
||||||
-$corner-radius: if($compact == 'false', $default_corner, $default_corner - 2px);
|
|
||||||
+$corner-radius: if($compact == 'false', $default_corner, max(0, $default_corner - 2px));
|
|
||||||
$material-radius: $default_corner / 2 + 4px;
|
|
||||||
$menu-radius: $default_corner / 4 + $space-size + 2px;
|
|
||||||
$popup-radius: $default_corner + $space-size + 2px;
|
|
|
@ -1,24 +0,0 @@
|
||||||
From b21dc487ac4bfc086cf295e06b8d8765a99e7266 Mon Sep 17 00:00:00 2001
|
|
||||||
From: lelgenio <lelgenio@disroot.org>
|
|
||||||
Date: Thu, 24 Jun 2021 22:36:10 -0300
|
|
||||||
Subject: [PATCH] Fix #6297
|
|
||||||
|
|
||||||
This makes it so that `seat hide_cursor` no longer clears cursor focus when hidding.
|
|
||||||
|
|
||||||
Clearing focus casuses problems whenever keyboard and mouse are to be used in conjunction.
|
|
||||||
---
|
|
||||||
sway/input/cursor.c | 1 -
|
|
||||||
1 file changed, 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/sway/input/cursor.c b/sway/input/cursor.c
|
|
||||||
index 96b5b93514..99fe3b4e3f 100644
|
|
||||||
--- a/sway/input/cursor.c
|
|
||||||
+++ b/sway/input/cursor.c
|
|
||||||
@@ -236,7 +236,6 @@ void cursor_update_image(struct sway_cursor *cursor,
|
|
||||||
static void cursor_hide(struct sway_cursor *cursor) {
|
|
||||||
wlr_cursor_set_image(cursor->cursor, NULL, 0, 0, 0, 0, 0, 0);
|
|
||||||
cursor->hidden = true;
|
|
||||||
- wlr_seat_pointer_notify_clear_focus(cursor->seat->wlr_seat);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int hide_notify(void *data) {
|
|
|
@ -1,38 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
rustPlatform,
|
|
||||||
fetchFromGitHub,
|
|
||||||
pkg-config,
|
|
||||||
openssl,
|
|
||||||
zlib,
|
|
||||||
stdenv,
|
|
||||||
Security ? null,
|
|
||||||
}:
|
|
||||||
|
|
||||||
rustPlatform.buildRustPackage rec {
|
|
||||||
pname = "cargo-checkmate";
|
|
||||||
version = "0.1.10";
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "cargo-checkmate";
|
|
||||||
repo = pname;
|
|
||||||
rev = "v${version}";
|
|
||||||
hash = "sha256-I8l/r26cDdimjgy/+IsasF4iHX09UGjVj0Yf6ScI3wQ=";
|
|
||||||
};
|
|
||||||
|
|
||||||
cargoSha256 = "sha256-hOB84u55ishahIFSqBnqccqH3OlC9J8mCYzsd23jTyA=";
|
|
||||||
|
|
||||||
nativeBuildInputs = [ pkg-config ];
|
|
||||||
buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security ];
|
|
||||||
|
|
||||||
meta = with lib; {
|
|
||||||
description = "Check all the things.";
|
|
||||||
longDescriptin = ''
|
|
||||||
Perform a series of useful checks out of the box. cargo-checkmate
|
|
||||||
ensures your project builds, tests pass, has good format, doesn't
|
|
||||||
have dependencies with known vulnerabilities, and so on.
|
|
||||||
'';
|
|
||||||
homepage = "https://github.com/cargo-checkmate/cargo-checkmate";
|
|
||||||
license = with licenses; [ mit ];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,14 +1,7 @@
|
||||||
# Custom packages, that can be defined similarly to ones from nixpkgs
|
final: prev:
|
||||||
# You can build them using 'nix build .#example' or (legacy) 'nix-build -A example'
|
let
|
||||||
|
inherit (final) callPackage;
|
||||||
{ pkgs, inputs }:
|
in
|
||||||
rec {
|
{
|
||||||
cargo-checkmate = pkgs.callPackage ./cargo-checkmate.nix { };
|
draw-on-your-screen2 = callPackage ./draw-on-your-screen2 { };
|
||||||
lipsum = pkgs.callPackage ./lipsum.nix { };
|
|
||||||
emmet-cli = pkgs.callPackage ./emmet-cli.nix { };
|
|
||||||
material-wifi-icons = pkgs.callPackage ./material-wifi-icons.nix { };
|
|
||||||
gnome-pass-search-provider = pkgs.callPackage ./gnome-pass-search-provider.nix { };
|
|
||||||
factorio-headless = pkgs.callPackage ./factorio-headless {
|
|
||||||
inherit (pkgs.unstable) factorio-headless;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
21
pkgs/draw-on-your-screen2/default.nix
Normal file
21
pkgs/draw-on-your-screen2/default.nix
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
{ fetchFromGitHub, stdenv }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
pname = "draw-on-your-screen";
|
||||||
|
version = "unstable-2024-06-18";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "zhrexl";
|
||||||
|
repo = "DrawOnYourScreen2";
|
||||||
|
rev = "9b5c6633a1c2b8c5b35bac45276ad1302542ab9b";
|
||||||
|
hash = "sha256-J4ljx3HBe+86PGOIIgabtj8AuUAf88/bpTfRXowUng4=";
|
||||||
|
};
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/share/gnome-shell/extensions/draw-on-your-screen2@zhrexl.github.com
|
||||||
|
cp -r ./* $out/share/gnome-shell/extensions/draw-on-your-screen2@zhrexl.github.com
|
||||||
|
|
||||||
|
mkdir -p $out/share/glib-2.0/
|
||||||
|
cp -r ./schemas/ $out/share/glib-2.0/
|
||||||
|
'';
|
||||||
|
}
|
|
@ -1,27 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
buildNpmPackage,
|
|
||||||
fetchFromGitHub,
|
|
||||||
}:
|
|
||||||
|
|
||||||
buildNpmPackage rec {
|
|
||||||
pname = "emmet-cli";
|
|
||||||
version = "0.0.1";
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "Delapouite";
|
|
||||||
repo = "emmet-cli";
|
|
||||||
rev = "407b0e8c59f65f205967d6be71105e0bd2001d62";
|
|
||||||
hash = "sha256-8lDgD1eIc2r5aB2baaiHKbkFdAxErX5p96MNqztR9rg=";
|
|
||||||
};
|
|
||||||
|
|
||||||
npmDepsHash = "sha256-Utgk/Cw83ffGr2/4aNkp3n3wSOojLZLA7OR+OakYBC0=";
|
|
||||||
|
|
||||||
dontNpmBuild = true;
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
description = "Emmet command line interface";
|
|
||||||
homepage = "https://github.com/Delapouite/emmet-cli";
|
|
||||||
mainProgram = "emmet";
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,10 +0,0 @@
|
||||||
{ factorio-headless, pkgs }:
|
|
||||||
|
|
||||||
factorio-headless.overrideAttrs (_: rec {
|
|
||||||
version = "2.0.28";
|
|
||||||
src = pkgs.fetchurl {
|
|
||||||
name = "factorio_headless_x64-${version}.tar.xz";
|
|
||||||
url = "https://www.factorio.com/get-download/${version}/headless/linux64";
|
|
||||||
hash = "sha256-6pk3tq3HoY4XpOHmSZLsOJQHSXs25oKAuxT83UyITdM=";
|
|
||||||
};
|
|
||||||
})
|
|
|
@ -1,14 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -xe
|
|
||||||
|
|
||||||
cd "$(dirname $0)"
|
|
||||||
|
|
||||||
current_version="$(rg '^.*?version\s*=\s*"(.+)".*?$' --replace '$1' ./default.nix)"
|
|
||||||
current_hash="$(rg '^.*?hash\s*=\s*"(.+)".*?$' --replace '$1' ./default.nix)"
|
|
||||||
|
|
||||||
new_version="$(curl https://factorio.com/api/latest-releases | jq -r .stable.headless)"
|
|
||||||
new_hash="$(nix-hash --to-sri --type sha256 $(nix-prefetch-url --type sha256 https://www.factorio.com/get-download/${new_version}/headless/linux64))"
|
|
||||||
|
|
||||||
sd --fixed-strings "$current_version" "$new_version" ./default.nix
|
|
||||||
sd --fixed-strings "$current_hash" "$new_hash" ./default.nix
|
|
|
@ -1,63 +0,0 @@
|
||||||
{
|
|
||||||
stdenv,
|
|
||||||
fetchFromGitHub,
|
|
||||||
python3Packages,
|
|
||||||
wrapGAppsHook,
|
|
||||||
gtk3,
|
|
||||||
gobject-introspection,
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
inherit (python3Packages)
|
|
||||||
dbus-python
|
|
||||||
pygobject3
|
|
||||||
fuzzywuzzy
|
|
||||||
levenshtein
|
|
||||||
;
|
|
||||||
in
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
pname = "gnome-pass-search-provider";
|
|
||||||
version = "1.4.0";
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "jle64";
|
|
||||||
repo = "gnome-pass-search-provider";
|
|
||||||
rev = version;
|
|
||||||
hash = "sha256-PDR8fbDoT8IkHiTopQp0zd4DQg7JlacA6NdKYKYmrWw=";
|
|
||||||
};
|
|
||||||
|
|
||||||
nativeBuildInputs = [
|
|
||||||
python3Packages.wrapPython
|
|
||||||
wrapGAppsHook
|
|
||||||
];
|
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
|
||||||
dbus-python
|
|
||||||
pygobject3
|
|
||||||
fuzzywuzzy
|
|
||||||
levenshtein
|
|
||||||
|
|
||||||
gtk3
|
|
||||||
gobject-introspection
|
|
||||||
];
|
|
||||||
|
|
||||||
env = {
|
|
||||||
LIBDIR = builtins.placeholder "out" + "/lib";
|
|
||||||
DATADIR = builtins.placeholder "out" + "/share";
|
|
||||||
};
|
|
||||||
|
|
||||||
postPatch = ''
|
|
||||||
substituteInPlace conf/org.gnome.Pass.SearchProvider.service.{dbus,systemd} \
|
|
||||||
--replace-fail "/usr/lib" "$LIBDIR"
|
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
bash ./install.sh
|
|
||||||
'';
|
|
||||||
|
|
||||||
postFixup = ''
|
|
||||||
makeWrapperArgs=( "''${gappsWrapperArgs[@]}" )
|
|
||||||
wrapPythonProgramsIn "$out/lib" "$out $propagatedBuildInputs"
|
|
||||||
'';
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
stdenv,
|
|
||||||
fetchFromGitHub,
|
|
||||||
pkg-config,
|
|
||||||
vala,
|
|
||||||
wrapGAppsHook,
|
|
||||||
}:
|
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
pname = "lipsum";
|
|
||||||
version = "0.0.1";
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "hannenz";
|
|
||||||
repo = "lipsum";
|
|
||||||
rev = "0fb31e6ede10fbd78d7652f5fb21670cddd8e3ed";
|
|
||||||
hash = "sha256-a6uv0tJulN9cAGWxvQr8B0PUJEY8Rx4e759xzS66Xlo=";
|
|
||||||
};
|
|
||||||
|
|
||||||
nativeBuildInputs = [
|
|
||||||
pkg-config
|
|
||||||
vala
|
|
||||||
wrapGAppsHook
|
|
||||||
];
|
|
||||||
|
|
||||||
makeFlags = [ "PRG=${pname}" ];
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
install -Dm 755 "$pname" "$out/bin/$pname"
|
|
||||||
install -Dm 755 "./data/de.hannenz.lipsum.gschema.xml" "$out/share/glib-2.0/schemas/de.hannenz.lipsum.gschema.xml"
|
|
||||||
glib-compile-schemas "$out/share/glib-2.0/schemas/"
|
|
||||||
'';
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
{ stdenv, fetchFromGitHub }:
|
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
pname = "material-wifi-icons";
|
|
||||||
version = "0.0.1";
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "dcousens";
|
|
||||||
repo = "material-wifi-icons";
|
|
||||||
rev = "2daf6b3d96d65beb2a3e37a9a53556aab3826d97";
|
|
||||||
hash = "sha256-KykU5J7SdpBDG+6rkD//XeHd+6pK3qabe+88RduhwKc=";
|
|
||||||
};
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
install -D material-wifi.ttf $out/share/fonts/${pname}
|
|
||||||
'';
|
|
||||||
}
|
|
|
@ -1,12 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
exec diffr \
|
|
||||||
--colors 'refine-added:foreground:green:underline' \
|
|
||||||
--colors 'refine-added:background:none' \
|
|
||||||
--colors 'refine-removed:foreground:red:underline' \
|
|
||||||
--colors 'refine-removed:background:none' \
|
|
||||||
--colors 'added:foreground:green' \
|
|
||||||
--colors 'added:background:none' \
|
|
||||||
--colors 'removed:foreground:red' \
|
|
||||||
--colors 'removed:background:none' \
|
|
||||||
"$@"
|
|
|
@ -1,33 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# Create the DOCKER-USER chain if it doesn't exist
|
|
||||||
iptables -N DOCKER-USER || true
|
|
||||||
|
|
||||||
# Flush existing rules in the DOCKER-USER chain
|
|
||||||
iptables -F DOCKER-USER
|
|
||||||
|
|
||||||
# Get all external network interfaces
|
|
||||||
interfaces=$(
|
|
||||||
ip -o -f inet addr show |
|
|
||||||
awk '{print $2}' |
|
|
||||||
grep -E '^(enp|eth|wlan|wlp)' |
|
|
||||||
sort -u
|
|
||||||
)
|
|
||||||
|
|
||||||
for iface in $interfaces; do
|
|
||||||
# Allow traffic from LAN
|
|
||||||
iptables -A DOCKER-USER -i "$iface" -s 127.0.0.1 -j ACCEPT
|
|
||||||
iptables -A DOCKER-USER -i "$iface" -s 10.0.0.0/8 -j ACCEPT
|
|
||||||
iptables -A DOCKER-USER -i "$iface" -s 192.168.0.0/16 -j ACCEPT
|
|
||||||
|
|
||||||
# Allow established and related connections
|
|
||||||
iptables -A DOCKER-USER -i "$iface" -m state --state RELATED,ESTABLISHED -j ACCEPT
|
|
||||||
|
|
||||||
# Drop all other traffic
|
|
||||||
iptables -A DOCKER-USER -i "$iface" -j DROP
|
|
||||||
|
|
||||||
echo "iptables rules have been set up for interface: $iface"
|
|
||||||
done
|
|
||||||
|
|
||||||
# Return to the previous chain
|
|
||||||
iptables -A DOCKER-USER -j RETURN
|
|
|
@ -1,30 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
pkgs.writeShellScriptBin "_gpg-unlock" ''
|
|
||||||
${pkgs.gnupg}/bin/gpg-connect-agent reloadagent /bye
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
test -f "$HOME/.config/.preset-password" || {
|
|
||||||
${pkgs.libnotify}/bin/notify-send "No preset password found"
|
|
||||||
exit 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
get_keygrip() {
|
|
||||||
${pkgs.gnupg}/bin/gpg --list-secret-keys --with-keygrip |
|
|
||||||
${pkgs.gawk}/bin/awk '
|
|
||||||
/^ssb/ {
|
|
||||||
ssb=1
|
|
||||||
}
|
|
||||||
/Keygrip/{
|
|
||||||
if (ssb) print $3
|
|
||||||
}'
|
|
||||||
}
|
|
||||||
|
|
||||||
keygrip=$(get_keygrip)
|
|
||||||
|
|
||||||
test -n "$keygrip" || exit 0
|
|
||||||
|
|
||||||
${pkgs.coreutils}/bin/cat "$HOME/.config/.preset-password" |
|
|
||||||
${pkgs.coreutils}/bin/base64 -d |
|
|
||||||
${pkgs.gnupg}/libexec/gpg-preset-passphrase --preset "$keygrip"
|
|
||||||
''
|
|
|
@ -1,11 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
swayidlectl() {
|
|
||||||
systemctl --user $1 swayidle.service
|
|
||||||
}
|
|
||||||
|
|
||||||
if swayidlectl status > /dev/null; then
|
|
||||||
swayidlectl stop
|
|
||||||
else
|
|
||||||
swayidlectl start
|
|
||||||
fi
|
|
|
@ -1,10 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
for path
|
|
||||||
do
|
|
||||||
test -f "$path" &&
|
|
||||||
path=$(dirname "$path")
|
|
||||||
|
|
||||||
cd "$path"
|
|
||||||
terminal
|
|
||||||
done
|
|
|
@ -1,61 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
DEVICE="$1" # eg: /sys/class/drm/card1/device
|
|
||||||
HWMON=$(echo "$DEVICE"/hwmon/hwmon*)
|
|
||||||
|
|
||||||
exit() {
|
|
||||||
echo "Setting controll to auto" >&2
|
|
||||||
echo 2 > "$HWMON/pwm1_enable"
|
|
||||||
}
|
|
||||||
|
|
||||||
trap exit EXIT INT
|
|
||||||
|
|
||||||
bail() {
|
|
||||||
echo "Error: $@" >&2
|
|
||||||
echo "Exiting..." >&2
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
if ! [ -d "$HWMON" ]; then
|
|
||||||
bail "Invalid HWMON"
|
|
||||||
fi
|
|
||||||
|
|
||||||
TEMP_INPUT="$HWMON/temp2_input"
|
|
||||||
|
|
||||||
if ! [ -f $TEMP_INPUT ]; then
|
|
||||||
bail "Invalid TEMP_INPUT"
|
|
||||||
fi
|
|
||||||
|
|
||||||
TEMP_MIN="$2"
|
|
||||||
TEMP_MAX="$3"
|
|
||||||
|
|
||||||
if [ -z "$TEMP_MIN" ];then
|
|
||||||
bail "No minimum temperature provided"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$TEMP_MAX" ];then
|
|
||||||
bail "No maximum temperature provided"
|
|
||||||
fi
|
|
||||||
|
|
||||||
PWM_MIN=0
|
|
||||||
PWM_MAX=255
|
|
||||||
|
|
||||||
echo "Running..." >&2
|
|
||||||
while true; do
|
|
||||||
TEMPERATURE_RAW=$(cat "$TEMP_INPUT")
|
|
||||||
TEMPERATURE="$(( $TEMPERATURE_RAW / 1000 ))"
|
|
||||||
# Remap from a number between 60_000..90_000 to 0..255
|
|
||||||
PWM=$(( ($TEMPERATURE - $TEMP_MIN) * $PWM_MAX / ($TEMP_MAX - $TEMP_MIN) ))
|
|
||||||
|
|
||||||
if [ "$PWM" -gt $PWM_MAX ]; then
|
|
||||||
PWM=$PWM_MAX
|
|
||||||
elif [ "$PWM" -lt $PWM_MIN ]; then
|
|
||||||
PWM=$PWM_MIN
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo 1 > "$HWMON/pwm1_enable"
|
|
||||||
echo "$PWM" > "$HWMON/pwm1"
|
|
||||||
sleep .1s
|
|
||||||
done
|
|
|
@ -1,53 +0,0 @@
|
||||||
#!/usr/bin/env fish
|
|
||||||
|
|
||||||
# wrapper around bemenu
|
|
||||||
# bmenu * - use as dmenu, -p for custom prompt (man bemenu)
|
|
||||||
# bmenu run - select from .desktop files and run it
|
|
||||||
# bmenu start - internal option
|
|
||||||
|
|
||||||
if test "$argv[1]" = "run"
|
|
||||||
test -n "$argv[2]" && set t "$argv[2]" || set t "terminal"
|
|
||||||
|
|
||||||
test -n "$i3SOCK" && set wrapper 'i3-msg exec --'
|
|
||||||
test -n "$SWAYSOCK" && set wrapper 'swaymsg exec --'
|
|
||||||
|
|
||||||
exec j4-dmenu-desktop \
|
|
||||||
--dmenu="bmenu start -p Iniciar:" \
|
|
||||||
--term "$t" \
|
|
||||||
--wrapper="$wrapper" \
|
|
||||||
--no-generic
|
|
||||||
end
|
|
||||||
|
|
||||||
if test -n "$SWAYSOCK"
|
|
||||||
swaymsg -t get_outputs |
|
|
||||||
jq -r 'map(.focused)|reverse|index(true)' |
|
|
||||||
read focused_output
|
|
||||||
|
|
||||||
test -n "$focused_output"
|
|
||||||
and set focused_output "-m $focused_output"
|
|
||||||
end
|
|
||||||
|
|
||||||
set -l config "$HOME/.config/bmenu.conf"
|
|
||||||
if test -f $config
|
|
||||||
source $config
|
|
||||||
end
|
|
||||||
|
|
||||||
exec dhist wrap -- bemenu \
|
|
||||||
$focused_output\
|
|
||||||
--ignorecase\
|
|
||||||
--border 2\
|
|
||||||
--center\
|
|
||||||
--width-factor 0.5\
|
|
||||||
--no-overlap\
|
|
||||||
--list 30\
|
|
||||||
--prefix '>'\
|
|
||||||
--bdr "$bdr"\
|
|
||||||
--fn "$fn"\
|
|
||||||
--tb "$tb" --tf "$tf" \
|
|
||||||
--fb "$fb" --ff "$ff" \
|
|
||||||
--nb "$nb" --nf "$nf" \
|
|
||||||
--ab "$ab" --af "$af" \
|
|
||||||
--hb "$hb" --hf "$hf" \
|
|
||||||
$argv
|
|
||||||
|
|
||||||
# vim: ft=fish
|
|
47
scripts/br
47
scripts/br
|
@ -1,47 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -e -u
|
|
||||||
|
|
||||||
end(){
|
|
||||||
rm -r -- "$(dirname -- "$namebase")"
|
|
||||||
[ $# -ne 0 ] && echo $@ >&2
|
|
||||||
exit $#
|
|
||||||
}
|
|
||||||
|
|
||||||
if [ $# -ne 0 ] ; then
|
|
||||||
for i in "$@" ; do
|
|
||||||
printf "%s\n" "$i"
|
|
||||||
done | "$0"
|
|
||||||
exit $?
|
|
||||||
fi
|
|
||||||
|
|
||||||
namebase="$(mktemp -d)/blkrn"
|
|
||||||
echo '# Modify filenames without removing any line, quitting aborts' \
|
|
||||||
> "$namebase.2"
|
|
||||||
tee -- "$namebase.1" >> "$namebase.2"
|
|
||||||
exec </dev/tty >/dev/tty ||
|
|
||||||
end 'Interactive terminal needed'
|
|
||||||
|
|
||||||
"$EDITOR" -- "$namebase.2"
|
|
||||||
sed -i -- '1d' "$namebase.2"
|
|
||||||
|
|
||||||
! diff -- "$namebase.1" "$namebase.2" &> /dev/null || end "no changes"
|
|
||||||
[ `wc -l < "$namebase.1"` -eq `wc -l < "$namebase.2"` ] || end "Wrong number of lines"
|
|
||||||
|
|
||||||
{
|
|
||||||
echo '# Please review/modify this script or empty it to do nothing'
|
|
||||||
echo 'run(){'
|
|
||||||
echo ' mkdir -p "$(dirname "$2")"'
|
|
||||||
echo ' mv -T -- "$1" "$2"'
|
|
||||||
echo '}'
|
|
||||||
while read -r l1 <&3 && read -r l2 <&4; do
|
|
||||||
[ "$l1" = "$l2" ] || printf "%s\n%s\n" "$l1" "$l2"
|
|
||||||
done 3<"$namebase.1" 4<"$namebase.2" |
|
|
||||||
sed 's/\([\\"$`]\)/\\\1/g;s/^.*$/"&"/' |
|
|
||||||
xargs -d"\n" -L2 echo 'run'
|
|
||||||
} > "$namebase.sh"
|
|
||||||
|
|
||||||
"$EDITOR" -- "$namebase.sh"
|
|
||||||
sh -e -- "$namebase.sh"
|
|
||||||
|
|
||||||
end # exit normaly
|
|
|
@ -1,10 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -xe
|
|
||||||
|
|
||||||
grim -g "$(slurp -b aabbcc00 -p)" - |
|
|
||||||
convert - txt:- |
|
|
||||||
grep -oE '#[0-9A-Fa-f]{6}' |
|
|
||||||
wl-copy -n
|
|
||||||
|
|
||||||
notify-send "$(wl-paste)" "Copied to clipboard"
|
|
|
@ -1,38 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
CONTROLLER=$(find /sys/class/power_supply -maxdepth 1 -name '*controller*' || true)
|
|
||||||
|
|
||||||
if test -z "$CONTROLLER"; then
|
|
||||||
echo
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
CAPACITY=$(cat "$CONTROLLER/capacity")
|
|
||||||
|
|
||||||
echo -n ''
|
|
||||||
|
|
||||||
if test "$CAPACITY" -ge 90; then
|
|
||||||
echo ''
|
|
||||||
elif test "$CAPACITY" -ge 90; then
|
|
||||||
echo ''
|
|
||||||
elif test "$CAPACITY" -ge 80; then
|
|
||||||
echo ''
|
|
||||||
elif test "$CAPACITY" -ge 70; then
|
|
||||||
echo ''
|
|
||||||
elif test "$CAPACITY" -ge 60; then
|
|
||||||
echo ''
|
|
||||||
elif test "$CAPACITY" -ge 50; then
|
|
||||||
echo ''
|
|
||||||
elif test "$CAPACITY" -ge 40; then
|
|
||||||
echo ''
|
|
||||||
elif test "$CAPACITY" -ge 30; then
|
|
||||||
echo ''
|
|
||||||
elif test "$CAPACITY" -ge 20; then
|
|
||||||
echo ''
|
|
||||||
elif test "$CAPACITY" -ge 10; then
|
|
||||||
echo ''
|
|
||||||
else
|
|
||||||
echo ''
|
|
||||||
fi
|
|
|
@ -18,137 +18,17 @@
|
||||||
--suffix PATH : ${lib.makeBinPath runtimeInputs}
|
--suffix PATH : ${lib.makeBinPath runtimeInputs}
|
||||||
'';
|
'';
|
||||||
createScripts = lib.mapAttrs (name: deps: wrapScript name ./${name} deps);
|
createScripts = lib.mapAttrs (name: deps: wrapScript name ./${name} deps);
|
||||||
|
|
||||||
myPass = final.pass.withExtensions (ex: with ex; [ pass-otp ]);
|
|
||||||
in
|
in
|
||||||
with final;
|
with final;
|
||||||
createScripts {
|
createScripts {
|
||||||
amd-fan-control = [ bash ];
|
|
||||||
br = [ ];
|
|
||||||
bmenu = [
|
|
||||||
bemenu
|
|
||||||
dhist
|
|
||||||
fish
|
|
||||||
j4-dmenu-desktop
|
|
||||||
jq
|
|
||||||
sway
|
|
||||||
];
|
|
||||||
down_meme = [
|
|
||||||
wl-clipboard
|
|
||||||
yt-dlp
|
|
||||||
libnotify
|
|
||||||
];
|
|
||||||
wl-copy-file = [
|
wl-copy-file = [
|
||||||
wl-clipboard
|
wl-clipboard
|
||||||
fish
|
fish
|
||||||
];
|
];
|
||||||
_diffr = [ diffr ];
|
|
||||||
_thunar-terminal = [ terminal ];
|
|
||||||
_sway_idle_toggle = [ swayidle ];
|
|
||||||
kak-pager = [
|
|
||||||
fish
|
|
||||||
_diffr
|
|
||||||
];
|
|
||||||
kak-man-pager = [ kak-pager ];
|
|
||||||
helix-pager = [
|
|
||||||
fish
|
|
||||||
_diffr
|
|
||||||
];
|
|
||||||
helix-man-pager = [ helix-pager ];
|
|
||||||
musmenu = [
|
|
||||||
mpc-cli
|
|
||||||
wdmenu
|
|
||||||
trash-cli
|
|
||||||
xdg-user-dirs
|
|
||||||
libnotify
|
|
||||||
sd
|
|
||||||
wl-clipboard
|
|
||||||
];
|
|
||||||
showkeys = [ ]; # This will not work unless programs.wshowkeys is enabled systemwide
|
|
||||||
terminal = [ alacritty ];
|
|
||||||
playerctl-status = [ playerctl ];
|
|
||||||
pass-export = [
|
|
||||||
pass2csv
|
|
||||||
gnupg
|
|
||||||
sd
|
|
||||||
];
|
|
||||||
wpass = [
|
|
||||||
wdmenu
|
|
||||||
fd
|
|
||||||
myPass
|
|
||||||
sd
|
|
||||||
wl-clipboard
|
|
||||||
wtype
|
|
||||||
];
|
|
||||||
screenshotsh = [
|
|
||||||
capitaine-cursors
|
|
||||||
grim
|
|
||||||
slurp
|
|
||||||
jq
|
|
||||||
sway
|
|
||||||
wl-clipboard
|
|
||||||
xdg-user-dirs
|
|
||||||
];
|
|
||||||
volumesh = [
|
|
||||||
pulseaudio
|
|
||||||
libnotify
|
|
||||||
];
|
|
||||||
pulse_sink = [
|
|
||||||
pulseaudio
|
|
||||||
pamixer
|
|
||||||
wdmenu
|
|
||||||
];
|
|
||||||
color_picker = [
|
|
||||||
grim
|
|
||||||
slurp
|
|
||||||
wl-clipboard
|
|
||||||
libnotify
|
|
||||||
imagemagick
|
|
||||||
];
|
|
||||||
dzadd = [
|
|
||||||
procps
|
|
||||||
libnotify
|
|
||||||
wdmenu
|
|
||||||
jq
|
|
||||||
mpv
|
|
||||||
pqiv
|
|
||||||
python3Packages.deemix
|
|
||||||
mpc-cli
|
|
||||||
mpdDup
|
|
||||||
];
|
|
||||||
mpdDup = [
|
|
||||||
mpc-cli
|
|
||||||
perl
|
|
||||||
];
|
|
||||||
readQrCode = [
|
|
||||||
grim
|
|
||||||
zbar
|
|
||||||
wl-clipboard
|
|
||||||
];
|
|
||||||
git_clean_remote_deleted = [
|
|
||||||
git
|
|
||||||
gnugrep
|
|
||||||
gawk
|
|
||||||
findutils
|
|
||||||
];
|
|
||||||
pint-fmt = [ ];
|
|
||||||
powerplay-led-idle = [
|
powerplay-led-idle = [
|
||||||
bash
|
bash
|
||||||
libinput
|
libinput
|
||||||
libratbag
|
libratbag
|
||||||
];
|
];
|
||||||
vrr-fullscreen = [ ];
|
|
||||||
controller-battery = [ ];
|
|
||||||
_docker-block-external-connections = [
|
|
||||||
iptables
|
|
||||||
gawk
|
|
||||||
gnugrep
|
|
||||||
iproute2
|
|
||||||
];
|
|
||||||
}
|
|
||||||
// lib.mapAttrs importScript {
|
|
||||||
wdmenu = ./wdmenu.nix;
|
|
||||||
wlauncher = ./wlauncher.nix;
|
|
||||||
_gpg-unlock = ./_gpg-unlock.nix;
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
DIR=$(mktemp -d)
|
|
||||||
|
|
||||||
cd "$DIR"
|
|
||||||
|
|
||||||
yt-dlp --merge-output-format mp4 "$(wl-paste)"
|
|
||||||
|
|
||||||
FILENAME="$(ls | head -n1)"
|
|
||||||
|
|
||||||
mkdir -p "$HOME/Downloads/Memes"
|
|
||||||
|
|
||||||
cp "$FILENAME" "$HOME/Downloads/Memes/$FILENAME"
|
|
||||||
|
|
||||||
wl-copy-file "$HOME/Downloads/Memes/$FILENAME"
|
|
||||||
|
|
||||||
notify-send "Meme downloaded" "$FILENAME"
|
|
||||||
|
|
||||||
rm -rf "$DIR"
|
|
176
scripts/dzadd
176
scripts/dzadd
|
@ -1,176 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
tmpf=$(mktemp /tmp/dzadd.XXXXXX)
|
|
||||||
|
|
||||||
clean() {
|
|
||||||
test "$?" -eq "0" ||
|
|
||||||
notify-send "Exiting with error"
|
|
||||||
|
|
||||||
set +e
|
|
||||||
kill "$mpvPid"
|
|
||||||
rm -f "$tmpf"
|
|
||||||
}
|
|
||||||
|
|
||||||
trap clean EXIT
|
|
||||||
|
|
||||||
main() {
|
|
||||||
sType=$(printf "Track\nAlbum\nArtist" | wdmenu | tr '[:upper:]' '[:lower:]')
|
|
||||||
test -n "$sType" || exit 1
|
|
||||||
|
|
||||||
query=$(echo -n | wdmenu | sed 's/[^ a-z0-9]//g;s/ /+/g')
|
|
||||||
test -n "$query" || exit 1
|
|
||||||
|
|
||||||
case "$sType" in
|
|
||||||
track)
|
|
||||||
deezer_category="track"
|
|
||||||
jqFilter='.data[]| "\(.title) - \(.album.title) - \(.artist.name) |\(.id)"'
|
|
||||||
;;
|
|
||||||
album)
|
|
||||||
deezer_category="album"
|
|
||||||
jqFilter='.data[]| "\(.nb_tracks) - \(.title) - \(.artist.name) |\(.id)"'
|
|
||||||
;;
|
|
||||||
artist)
|
|
||||||
deezer_category="artist"
|
|
||||||
jqFilter='.data[]| "\(.nb_fan) - \(.name) |\(.id)"'
|
|
||||||
;;
|
|
||||||
top50)
|
|
||||||
deezer_category="artist"
|
|
||||||
jqFilter='.data[]| "\(.nb_fan) - \(.name) |\(.id)"'
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
curl -m30 -s "api.deezer.com/search/${deezer_category}?q=${query}" |
|
|
||||||
sed 's/|//g' |
|
|
||||||
jq -r "$jqFilter" >"$tmpf"
|
|
||||||
|
|
||||||
pick_song
|
|
||||||
}
|
|
||||||
|
|
||||||
pick_song() {
|
|
||||||
choice=$(cat "$tmpf" | cut -d\| -f1 | wdmenu)
|
|
||||||
choice=$(grep "$choice" "$tmpf" | head -n 1)
|
|
||||||
choiceId=$(printf "%s" "$choice" | cut -d\| -f2)
|
|
||||||
|
|
||||||
case "$sType" in
|
|
||||||
top50)
|
|
||||||
choiceUrl="http://deezer.com/${deezer_category}/${choiceId}/top?=limit=50"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
choiceUrl="http://deezer.com/${deezer_category}/${choiceId}"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
|
|
||||||
pick_action "$choiceUrl"
|
|
||||||
}
|
|
||||||
|
|
||||||
pick_action() {
|
|
||||||
|
|
||||||
choiceUrl="$1"
|
|
||||||
|
|
||||||
COMMON_CHOISES="View Image\nDownload\nCopy URL\nAnother"
|
|
||||||
choice=$(printf "Preview\n${COMMON_CHOISES}" | wdmenu)
|
|
||||||
|
|
||||||
case "$choice" in
|
|
||||||
|
|
||||||
"Preview")
|
|
||||||
common_preview
|
|
||||||
;;
|
|
||||||
|
|
||||||
"View Image")
|
|
||||||
common_art
|
|
||||||
;;
|
|
||||||
|
|
||||||
"Download")
|
|
||||||
common_download
|
|
||||||
;;
|
|
||||||
|
|
||||||
"Copy URL")
|
|
||||||
wl-copy
|
|
||||||
;;
|
|
||||||
|
|
||||||
"Another")
|
|
||||||
pick_song
|
|
||||||
;;
|
|
||||||
|
|
||||||
*)
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
|
|
||||||
esac
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
common_preview() {
|
|
||||||
|
|
||||||
case "$sType" in
|
|
||||||
track)
|
|
||||||
;;
|
|
||||||
album)
|
|
||||||
preview_suffix=tracks
|
|
||||||
;;
|
|
||||||
artist)
|
|
||||||
preview_suffix=top
|
|
||||||
;;
|
|
||||||
top50)
|
|
||||||
preview_suffix=top
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
choicePreview=$(
|
|
||||||
curl -m30 -s "http://api.deezer.com/${deezer_category}/${choiceId}/${preview_suffix}" |
|
|
||||||
jq -r '.preview, .data[0].preview | select(. != null)'
|
|
||||||
)
|
|
||||||
|
|
||||||
mpv --quiet --volume=50 --no-resume-playback "$choicePreview" &
|
|
||||||
mpvPid="$!"
|
|
||||||
choice=$(printf "$COMMON_CHOISES" | wdmenu -p 'Download?')
|
|
||||||
kill "$mpvPid" || true
|
|
||||||
}
|
|
||||||
|
|
||||||
common_art() {
|
|
||||||
|
|
||||||
case "$sType" in
|
|
||||||
track)
|
|
||||||
image_filter='.album.cover_big'
|
|
||||||
;;
|
|
||||||
album)
|
|
||||||
image_filter='.cover_big'
|
|
||||||
;;
|
|
||||||
artist)
|
|
||||||
image_filter='.picture_big'
|
|
||||||
;;
|
|
||||||
top50)
|
|
||||||
image_filter='.picture_big'
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
curl -m30 -s "api.deezer.com/${deezer_category}/${choiceId}" |
|
|
||||||
jq -r "$image_filter" |
|
|
||||||
xargs curl -m30 -s |
|
|
||||||
pqiv -
|
|
||||||
|
|
||||||
pick_action
|
|
||||||
}
|
|
||||||
|
|
||||||
common_download() {
|
|
||||||
notify-send "Starting Download"
|
|
||||||
deemix "$choiceUrl" </dev/null &&
|
|
||||||
notify-send "Download Successful" ||
|
|
||||||
notify-send "Download Failed"
|
|
||||||
mpc add /
|
|
||||||
mpdDup
|
|
||||||
}
|
|
||||||
|
|
||||||
main
|
|
|
@ -1,6 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
git branch -vv \
|
|
||||||
| grep ': gone]' \
|
|
||||||
| awk '{print $1}' \
|
|
||||||
| xargs git branch -D
|
|
|
@ -1,3 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
col -b -x | hx
|
|
|
@ -1,28 +0,0 @@
|
||||||
#!/usr/bin/env fish
|
|
||||||
|
|
||||||
if test (count $argv) -ne 0
|
|
||||||
for i in $argv
|
|
||||||
cat "$i"
|
|
||||||
end | eval (status filename)
|
|
||||||
exit 0
|
|
||||||
end
|
|
||||||
|
|
||||||
set term_line_count (tput lines)
|
|
||||||
|
|
||||||
while read line
|
|
||||||
set -a input_lines "$line"
|
|
||||||
|
|
||||||
set input_line_count (printf "%s\n" $input_lines | wc -l)
|
|
||||||
|
|
||||||
if test "$term_line_count" -lt "$input_line_count"
|
|
||||||
begin
|
|
||||||
printf "%s\n" $input_lines
|
|
||||||
cat
|
|
||||||
end | hx
|
|
||||||
|
|
||||||
exit 0
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
printf "%s\n" $input_lines
|
|
|
@ -1,8 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
kak -e '
|
|
||||||
map global normal q :q<ret>;
|
|
||||||
set buffer filetype man;
|
|
||||||
rmhl global/number-lines;
|
|
||||||
set global scrolloff 10,0
|
|
||||||
'
|
|
|
@ -1,33 +0,0 @@
|
||||||
#!/usr/bin/env fish
|
|
||||||
|
|
||||||
if test (count $argv) -ne 0
|
|
||||||
for i in $argv
|
|
||||||
cat "$i"
|
|
||||||
end | eval (status filename)
|
|
||||||
exit 0
|
|
||||||
end
|
|
||||||
|
|
||||||
set term_line_count (tput lines)
|
|
||||||
|
|
||||||
while read line
|
|
||||||
set -a input_lines "$line"
|
|
||||||
|
|
||||||
set input_line_count (printf "%s\n" $input_lines | wc -l)
|
|
||||||
|
|
||||||
if test "$term_line_count" -lt "$input_line_count"
|
|
||||||
begin
|
|
||||||
printf "%s\n" $input_lines
|
|
||||||
cat
|
|
||||||
end | kak -e '
|
|
||||||
exec <a-o>
|
|
||||||
map global normal q :q<ret>;
|
|
||||||
rmhl global/number-lines;
|
|
||||||
set global scrolloff 10,0;
|
|
||||||
'
|
|
||||||
|
|
||||||
exit 0
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
printf "%s\n" $input_lines
|
|
|
@ -1,5 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
mpc playlist -f '%position%\t%file%' |
|
|
||||||
sort -k 2 |
|
|
||||||
perl -ne 'm/(.*)\t(.*)/; print "$1\n" if $2 eq $prev; $prev=$2' |
|
|
||||||
mpc del
|
|
111
scripts/musmenu
111
scripts/musmenu
|
@ -1,111 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
set -e
|
|
||||||
|
|
||||||
menu=wdmenu
|
|
||||||
|
|
||||||
search() {
|
|
||||||
tabs 8
|
|
||||||
|
|
||||||
mpc playlist --format '%artist% : %title%@pos:%position%' |
|
|
||||||
sed '/^ : \t/d'|
|
|
||||||
column -ts"@" |
|
|
||||||
$menu |
|
|
||||||
grep -o 'pos:.*' |
|
|
||||||
cut -d: -f2 |
|
|
||||||
xargs -r mpc play
|
|
||||||
}
|
|
||||||
|
|
||||||
get_current() {
|
|
||||||
music_root=$(xdg-user-dir MUSIC || echo "$HOME/Music")
|
|
||||||
current_file=$(mpc current -f %file%)
|
|
||||||
|
|
||||||
echo "${music_root}/${current_file}"
|
|
||||||
}
|
|
||||||
|
|
||||||
delete() {
|
|
||||||
current=$(get_current)
|
|
||||||
answer=$(printf "nothing\n$current" | $menu -p"delete?")
|
|
||||||
if test "$answer" = "$current"; then
|
|
||||||
trash "$answer"
|
|
||||||
mpc --quiet next
|
|
||||||
mpc --quiet update
|
|
||||||
|
|
||||||
path=$(echo $answer | sd "$HOME" '~')
|
|
||||||
notify-send "Removed Music" "$path"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
yank() {
|
|
||||||
current=$(get_current)
|
|
||||||
|
|
||||||
# Some programs need you to pass a path, not the contents
|
|
||||||
wl-copy --type 'text/uri-list' "file:///${current}"
|
|
||||||
|
|
||||||
notify-send "Yanked Music" "$(echo $current | sd "$HOME" "~")"
|
|
||||||
}
|
|
||||||
|
|
||||||
padd() {
|
|
||||||
get_current
|
|
||||||
cd "$music_root"
|
|
||||||
choice=$(fd -E '*.lrc' -E '*.m3u8' | sort | $menu -p "Add Songs(Use Ctrl):")
|
|
||||||
mpc add "$choice" &&
|
|
||||||
notify-send "Added Music" "$(echo $choice | sd "$HOME" "~")" ||
|
|
||||||
notify-send "Failed to Add Music" "$(echo $choice | sd "$HOME" "~")"
|
|
||||||
mpdDup
|
|
||||||
}
|
|
||||||
|
|
||||||
pclear() {
|
|
||||||
mpc clear &&
|
|
||||||
notify-send "Cleared Playlist" ||
|
|
||||||
notify-send "Failed Clear Playlist"
|
|
||||||
}
|
|
||||||
|
|
||||||
psave() {
|
|
||||||
name=$(mpc playlist | $menu -p 'Save Playlist(Use Shift): ')
|
|
||||||
|
|
||||||
mpc save "$name" &&
|
|
||||||
notify-send "Created playlist" "$name" ||
|
|
||||||
notify-send "Failed to Create Playlist" "$name"
|
|
||||||
}
|
|
||||||
|
|
||||||
pload() {
|
|
||||||
name=$(mpc lsplaylists | $menu -p 'Load Playlist: ')
|
|
||||||
|
|
||||||
mpc clear
|
|
||||||
mpc load "$name" &&
|
|
||||||
notify-send "Loaded playlist" "$name" ||
|
|
||||||
notify-send "Failed to Load Playlist" "$name"
|
|
||||||
}
|
|
||||||
|
|
||||||
pdelete() {
|
|
||||||
name=$(mpc lsplaylists | $menu -p 'Delete Playlist: ')
|
|
||||||
|
|
||||||
mpc delete "$name" &&
|
|
||||||
notify-send "Deleted playlist" "$name" ||
|
|
||||||
notify-send "Failed to Delete Playlist" "$name"
|
|
||||||
}
|
|
||||||
|
|
||||||
usage() {
|
|
||||||
cmdname=$(basename "$0")
|
|
||||||
echo "Commands:"
|
|
||||||
echo " $cmdname search -- Search and play songs."
|
|
||||||
echo " $cmdname delete -- Prompt to delete the current song."
|
|
||||||
echo " $cmdname yank -- Copy current music to clipboard."
|
|
||||||
echo "Playlist Commands:"
|
|
||||||
echo " $cmdname padd -- Add song"
|
|
||||||
echo " $cmdname pclear -- Clear"
|
|
||||||
echo " $cmdname psave -- Save"
|
|
||||||
echo " $cmdname pload -- Load"
|
|
||||||
echo " $cmdname pdelete -- Delete"
|
|
||||||
}
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
delete | search | yank | padd | pclear | psave | pload | pdelete)
|
|
||||||
"$1"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
usage
|
|
||||||
test -n "$1"
|
|
||||||
echo "Unreconized option: $1"
|
|
||||||
;;
|
|
||||||
esac
|
|
|
@ -1,13 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
if test -z "$PASSWORD_STORE_DIR"; then
|
|
||||||
PASSWORD_STORE_DIR="$HOME/.password-store"
|
|
||||||
fi
|
|
||||||
|
|
||||||
pass2csv "$PASSWORD_STORE_DIR" "$HOME/passwords.csv" \
|
|
||||||
-f User '(user|login)(:\s*)?' \
|
|
||||||
-f TOTP 'otpauth(:)?' \
|
|
||||||
-f URL 'url(:\s*)?'
|
|
||||||
|
|
||||||
# Fix TOTP format for keepass
|
|
||||||
sd '"//totp/.*?secret=(.*?)(&.*?)?"' '"$1"' "$HOME/passwords.csv"
|
|
|
@ -1,7 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
file="$(mktemp)"
|
|
||||||
cat - >"$file"
|
|
||||||
./vendor/bin/pint --quiet "$file"
|
|
||||||
cat "$file"
|
|
||||||
rm "$file"
|
|
|
@ -1,10 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
PLAYERCTL="playerctl --ignore-player=mpd"
|
|
||||||
|
|
||||||
test "$(LC_ALL=C $PLAYERCTL status)" = "Playing" \
|
|
||||||
&& printf " %s" "$($PLAYERCTL metadata title)" \
|
|
||||||
&& test -n "$($PLAYERCTL metadata artist)" \
|
|
||||||
&& printf " - %s" "$($PLAYERCTL metadata artist)"
|
|
||||||
|
|
||||||
echo ""
|
|
|
@ -1,26 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
list_sinks() {
|
|
||||||
env LC_ALL=C pactl list sinks
|
|
||||||
}
|
|
||||||
|
|
||||||
desc=$(
|
|
||||||
list_sinks |
|
|
||||||
grep -ie "description:" |
|
|
||||||
cut -d: -f2 |
|
|
||||||
sed 's/^ //g;s/ $//g;' |
|
|
||||||
wdmenu -i -p "Output:"
|
|
||||||
)
|
|
||||||
device=$(
|
|
||||||
list_sinks |
|
|
||||||
grep -C2 "Description: $desc"|
|
|
||||||
grep Name |
|
|
||||||
cut -d: -f2 |
|
|
||||||
xargs
|
|
||||||
)
|
|
||||||
|
|
||||||
vol=$(pamixer --get-volume)
|
|
||||||
|
|
||||||
pactl set-default-sink "$device"
|
|
||||||
|
|
||||||
pamixer --set-volume "$vol"
|
|
|
@ -1,18 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -o pipefail
|
|
||||||
|
|
||||||
main() {
|
|
||||||
|
|
||||||
if wl-paste | zbarimg -q --raw - | wl-copy
|
|
||||||
then
|
|
||||||
notify-send "Copied" "QrCode was copied to clipboard"
|
|
||||||
rm "$LOGFILE"
|
|
||||||
else
|
|
||||||
notify-send "Failed to read QrCode" "Log file is '$LOGFILE'"
|
|
||||||
fi
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
LOGFILE=$(mktemp /tmp/qrcode-XXXXXXXX.log)
|
|
||||||
main > "$LOGFILE" 2>&1
|
|
|
@ -1,49 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
export XCURSOR_SIZE=40
|
|
||||||
export XCURSOR_THEME='capitaine-cursors-light'
|
|
||||||
|
|
||||||
screenshot="grim"
|
|
||||||
copy="wl-copy -t image/png"
|
|
||||||
|
|
||||||
if which xdg-user-dir >/dev/null 2>&1; then
|
|
||||||
DESTFOLDER="$(xdg-user-dir PICTURES)"
|
|
||||||
else
|
|
||||||
for i in Images Imagens Pictures Fotos ""; do
|
|
||||||
DESTFOLDER="$HOME/$i"
|
|
||||||
test -d "$DESTFOLDER" &&
|
|
||||||
break
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
DESTFOLDER="$DESTFOLDER/Screenshots"
|
|
||||||
mkdir -p "$DESTFOLDER"
|
|
||||||
DESTFILE="$DESTFOLDER/$(date +'%Y-%m-%d-%H%M%S_screenshot.png')"
|
|
||||||
|
|
||||||
case $1 in
|
|
||||||
def)
|
|
||||||
# Screenshot to file
|
|
||||||
$screenshot "$DESTFILE"
|
|
||||||
echo "$DESTFILE"
|
|
||||||
;;
|
|
||||||
|
|
||||||
area)
|
|
||||||
# Screen area to file
|
|
||||||
$screenshot -g "$(slurp -d -b 30303088)" "$DESTFILE"
|
|
||||||
echo "$DESTFILE"
|
|
||||||
;;
|
|
||||||
area-clip)
|
|
||||||
# Screen area to clipboard
|
|
||||||
$screenshot -g "$(slurp -d -b 30303088)" - | $copy
|
|
||||||
;;
|
|
||||||
|
|
||||||
clip)
|
|
||||||
# Focused monitor to clipboard
|
|
||||||
cur_output=$(swaymsg -t get_outputs |
|
|
||||||
jq -r '.[] | select(.focused) | .name')
|
|
||||||
|
|
||||||
test -n "$cur_output" &&
|
|
||||||
$screenshot -o "$cur_output" - | $copy ||
|
|
||||||
$screenshot - | $copy
|
|
||||||
;;
|
|
||||||
esac
|
|
|
@ -1,10 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
pidof wshowkeys && pkill wshowkeys ||
|
|
||||||
exec wshowkeys \
|
|
||||||
-a bottom -a right \
|
|
||||||
-F 'Inter 20' \
|
|
||||||
-b 202020AA \
|
|
||||||
-s DD5050 \
|
|
||||||
-t 1 \
|
|
||||||
-m 100
|
|
|
@ -1,18 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
CLASS="terminal"
|
|
||||||
|
|
||||||
while test $# -gt 0;do
|
|
||||||
case $1 in
|
|
||||||
-c|--class)
|
|
||||||
shift
|
|
||||||
CLASS=$1
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
exec alacritty --class "$CLASS" "$@"
|
|
139
scripts/volumesh
139
scripts/volumesh
|
@ -1,139 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -xe
|
|
||||||
|
|
||||||
# depends on: awk, pactl, pacmd, notify-send
|
|
||||||
|
|
||||||
MAX_VOL=150
|
|
||||||
STEP=10
|
|
||||||
|
|
||||||
notify() {
|
|
||||||
volume=$(get_vol_$TARGET)
|
|
||||||
|
|
||||||
if is_muted_$TARGET; then
|
|
||||||
s="Muted"
|
|
||||||
else
|
|
||||||
s="Volume"
|
|
||||||
fi
|
|
||||||
|
|
||||||
s=$(echo "${TARGET} ${s}" | sed 's/^\(.\)/\U\1/')
|
|
||||||
|
|
||||||
notify-send "${s}" "${volume}%" \
|
|
||||||
--app-name=volumesh \
|
|
||||||
--hint=int:value:"$volume"
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
round() {
|
|
||||||
awk '{
|
|
||||||
print int($1/'$STEP')*'$STEP';
|
|
||||||
}'
|
|
||||||
}
|
|
||||||
|
|
||||||
round_vol() {
|
|
||||||
rounded=$(get_vol_$TARGET | round)
|
|
||||||
newvol=$(min $MAX_VOL $rounded)
|
|
||||||
}
|
|
||||||
|
|
||||||
min() {
|
|
||||||
printf '%i\n' ${@} | sort -n | head -n1
|
|
||||||
}
|
|
||||||
|
|
||||||
# Pulse{{{
|
|
||||||
get_vol_system() {
|
|
||||||
pamixer --get-volume
|
|
||||||
}
|
|
||||||
|
|
||||||
is_muted_system() {
|
|
||||||
test "$(pamixer --get-mute)" = "true" >/dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
change_vol_system() {
|
|
||||||
pamixer "-$1" "$(min 120 $2)"
|
|
||||||
round_vol
|
|
||||||
pamixer --set-volume "${newvol}"
|
|
||||||
if
|
|
||||||
test -n "$VOLUME_CHANGE_SOUND"
|
|
||||||
then
|
|
||||||
paplay "$VOLUME_CHANGE_SOUND"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
toggle_mute_system() {
|
|
||||||
pactl set-sink-mute @DEFAULT_SINK@ toggle
|
|
||||||
}
|
|
||||||
#}}}
|
|
||||||
# Mpd {{{
|
|
||||||
|
|
||||||
get_vol_mpd() {
|
|
||||||
env LC_ALL=C mpc vol |
|
|
||||||
sed -e 's/^.*://g' -e 's/%.*$//g' -e 's/ //g'
|
|
||||||
}
|
|
||||||
|
|
||||||
is_muted_mpd() {
|
|
||||||
env LC_ALL=C mpc status | grep '\[paused\]' 1>/dev/null
|
|
||||||
}
|
|
||||||
change_vol_mpd() {
|
|
||||||
case $1 in
|
|
||||||
d)
|
|
||||||
op="-";;
|
|
||||||
i)
|
|
||||||
op="+";;
|
|
||||||
esac
|
|
||||||
mpc vol "${op}${2}" &>/dev/null
|
|
||||||
round_vol
|
|
||||||
mpc vol "${newvol}" &>/dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
toggle_mute_mpd() {
|
|
||||||
mpc toggle
|
|
||||||
}
|
|
||||||
#}}}
|
|
||||||
usage() {
|
|
||||||
local CNAME=$(basename $0)
|
|
||||||
echo "${CNAME} [-m][-di <amount>]"
|
|
||||||
echo "${CNAME} [-m][-t]"
|
|
||||||
echo ""
|
|
||||||
echo "Options:"
|
|
||||||
echo " -m --mpd Target mpd instead of PulseAudio"
|
|
||||||
echo " -i --increase <amount> of volume to increase"
|
|
||||||
echo " -d --decrease <amount> of volume to decrease"
|
|
||||||
echo " -t --toggle Mute/Unmute target"
|
|
||||||
echo " -h --help Show This help message"
|
|
||||||
|
|
||||||
exit "$1"
|
|
||||||
}
|
|
||||||
TARGET=system
|
|
||||||
|
|
||||||
while [ $# -gt 0 ]; do
|
|
||||||
case $1 in
|
|
||||||
-m | --mpd)
|
|
||||||
TARGET=mpd
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
-i | --increase)
|
|
||||||
shift
|
|
||||||
change_vol_$TARGET i $1
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
-d | --decrease)
|
|
||||||
shift
|
|
||||||
change_vol_$TARGET d $1
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
-t | --toggle)
|
|
||||||
toggle_mute_$TARGET
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
-h | --help)
|
|
||||||
usage 0
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
usage 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
notify
|
|
||||||
|
|
||||||
# vim: fdm=marker
|
|
|
@ -1,28 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# List of supported outputs for VRR
|
|
||||||
output_vrr_whitelist=(
|
|
||||||
"DP-1"
|
|
||||||
"DP-2"
|
|
||||||
)
|
|
||||||
|
|
||||||
# Toggle VRR for fullscreened apps in prespecified displays to avoid stutters while in desktop
|
|
||||||
swaymsg -t subscribe -m '[ "window" ]' | while read window_json; do
|
|
||||||
window_event=$(echo ${window_json} | jq -r '.change')
|
|
||||||
|
|
||||||
# Process only focus change and fullscreen toggle
|
|
||||||
if [[ $window_event = "focus" || $window_event = "fullscreen_mode" ]]; then
|
|
||||||
output_json=$(swaymsg -t get_outputs | jq -r '.[] | select(.focused == true)')
|
|
||||||
output_name=$(echo ${output_json} | jq -r '.name')
|
|
||||||
|
|
||||||
# Use only VRR in whitelisted outputs
|
|
||||||
if [[ ${output_vrr_whitelist[*]} =~ ${output_name} ]]; then
|
|
||||||
output_vrr_status=$(echo ${output_json} | jq -r '.adaptive_sync_status')
|
|
||||||
window_fullscreen_status=$(echo ${window_json} | jq -r '.container.fullscreen_mode')
|
|
||||||
|
|
||||||
# Only update output if nesseccary to avoid flickering
|
|
||||||
[[ $output_vrr_status = "disabled" && $window_fullscreen_status = "1" ]] && swaymsg output "${output_name}" adaptive_sync 1
|
|
||||||
[[ $output_vrr_status = "enabled" && $window_fullscreen_status = "0" ]] && swaymsg output "${output_name}" adaptive_sync 0
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
|
@ -1,4 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
pkgs.writeShellScriptBin "wdmenu" ''
|
|
||||||
exec bmenu "$@"
|
|
||||||
''
|
|
|
@ -1,12 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
let
|
|
||||||
inherit (config.my) dmenu;
|
|
||||||
available_menus = {
|
|
||||||
bmenu = "bmenu run";
|
|
||||||
rofi = "rofi -show drun -sort";
|
|
||||||
};
|
|
||||||
menu_cmd = available_menus.${dmenu};
|
|
||||||
in
|
|
||||||
pkgs.writeShellScriptBin "wlauncher" ''
|
|
||||||
exec ${menu_cmd} "$@"
|
|
||||||
''
|
|
|
@ -1,4 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
pkgs.writeShellScriptBin "wlauncher" ''
|
|
||||||
exec bmenu run "$@"
|
|
||||||
''
|
|
Binary file not shown.
|
@ -1,16 +0,0 @@
|
||||||
age-encryption.org/v1
|
|
||||||
-> ssh-rsa BwwxHg
|
|
||||||
iTcgtxF1IxopbtF+aw7V8IQfH7tWiMk9lE/eWlVHVjeaRvER5W6Y3xZNOFCjtbqY
|
|
||||||
VwEyV6ibfZ4GJt1jRu2icEH/AnLUJFFGQnxu/K/rtoZ3tqSIk9WCBv3aPo4oZRiU
|
|
||||||
uaaxi2gD8qo1RLyl/Ij7Djw4i/isUOO1EON5sgx1d39k6qUD4Mak0DSU4EtGdTsr
|
|
||||||
OaxDAc0kAxhxZQOUH/QlKa0HLonaFcy1LHqvttOcw3UZuZnaYfZiPlcqe3USS9cm
|
|
||||||
96aIC5cS9pHr4JFrqRYvfpla2TY5jlCB/xBGw3KjGEIQoBPXSsJZA6BCMZyp00++
|
|
||||||
tdfS2aomt9HFmb1wZDS0jWAxkVF6nXXBbolFVih+58h0nYLljtHIQ3SizRoXY459
|
|
||||||
x3JE9NReHp2OO3SlIeO03Kv8YMBvj7nSSd1C1PMpu+hJ/eCXi1WQxD6QY+40muk6
|
|
||||||
KhqE3PZ8BCY2b+VpywUF5gVH28mo3jscqAzhf2dZ3SQlzldI+hFyKPxTdAqkfUOH
|
|
||||||
|
|
||||||
--- cinb+wzjVfTkpfm1CtFIFaepwoQVCj1MquB5rAC45Ew
|
|
||||||
¾
|
|
||||||
6
|
|
||||||
ZCþHS07ïºÖóýE¼X*Àqb=üOßíÛÉwu¥¤³Pºþ¹Ùçǖѳ/£ómvòÞ×Ë2VœÄ«
|
|
||||||
ÁŠxvç[“£‚µ£±”Ì‚A~ evdÓåÙ0¢Œni³1Ò›¹Qý„"í@Ù¹§ÞÔ{KpÐ:åϵuµsÊÎBñò(X…r[ÂQVg¢Tš¤°ðœîËï@Ä*ÇõÿíB«<>.§¯žhE鲟èÐë’÷½¥Žûzlz|kã`l8‘´8¼M›cch<63>îáZ`ƒ ?yeoƒ+ÈM-:/–À**ìè¦ÊcŸÎZD¡2Ñá¼é&·÷¾Ç¢¹£e¤ï*Hnç"Þ~+|ua(û6óËJ
|
|
|
@ -12,11 +12,9 @@ in
|
||||||
"monolith-forgejo-runner-token.age".publicKeys = [ main_ssh_public_key ];
|
"monolith-forgejo-runner-token.age".publicKeys = [ main_ssh_public_key ];
|
||||||
"lelgenio-cachix.age".publicKeys = [ main_ssh_public_key ];
|
"lelgenio-cachix.age".publicKeys = [ main_ssh_public_key ];
|
||||||
"monolith-nix-serve-privkey.age".publicKeys = [ main_ssh_public_key ];
|
"monolith-nix-serve-privkey.age".publicKeys = [ main_ssh_public_key ];
|
||||||
"factorio-settings.age".publicKeys = [ main_ssh_public_key ];
|
|
||||||
"phantom-nextcloud.age".publicKeys = [ main_ssh_public_key ];
|
"phantom-nextcloud.age".publicKeys = [ main_ssh_public_key ];
|
||||||
"phantom-writefreely.age".publicKeys = [ main_ssh_public_key ];
|
"phantom-writefreely.age".publicKeys = [ main_ssh_public_key ];
|
||||||
"phantom-renawiki.age".publicKeys = [ main_ssh_public_key ];
|
"phantom-renawiki.age".publicKeys = [ main_ssh_public_key ];
|
||||||
"phantom-forgejo-mailer-password.age".publicKeys = [ main_ssh_public_key ];
|
"phantom-forgejo-mailer-password.age".publicKeys = [ main_ssh_public_key ];
|
||||||
"phantom-mastodon-mailer-password.age".publicKeys = [ main_ssh_public_key ];
|
"phantom-mastodon-mailer-password.age".publicKeys = [ main_ssh_public_key ];
|
||||||
"phantom-invidious-settings.age".publicKeys = [ main_ssh_public_key ];
|
|
||||||
}
|
}
|
||||||
|
|
24
switch
24
switch
|
@ -1,25 +1,13 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
set -euo pipefail
|
|
||||||
|
|
||||||
nix fmt
|
nix fmt
|
||||||
|
|
||||||
git --no-pager diff
|
git --no-pager diff
|
||||||
|
|
||||||
run() {
|
sudo nice ionice \
|
||||||
nixos-rebuild \
|
nixos-rebuild \
|
||||||
switch \
|
switch \
|
||||||
--use-remote-sudo \
|
--verbose \
|
||||||
--print-build-logs \
|
--print-build-logs \
|
||||||
--flake .# \
|
--flake .# \
|
||||||
"$@"
|
$@
|
||||||
}
|
|
||||||
|
|
||||||
if which nom >/dev/null; then
|
|
||||||
run --verbose \
|
|
||||||
--log-format internal-json \
|
|
||||||
"$@" \
|
|
||||||
|& nom --json
|
|
||||||
else
|
|
||||||
run "$@"
|
|
||||||
fi
|
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
./switch \
|
|
||||||
--option extra-substituters "http://nixcache.lelgenio.1337.cx:5000" \
|
|
||||||
--option extra-trusted-public-keys "nixcache.lelgenio.1337.cx:HZCwDaM39BOF+MLuviMQTUrz3rBWLTLV9H+GV4zcxVI=" \
|
|
||||||
"$@"
|
|
|
@ -1,6 +1,5 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
services.blueman.enable = true;
|
|
||||||
hardware.bluetooth = {
|
hardware.bluetooth = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
services.cachix-watch-store = {
|
|
||||||
enable = true;
|
|
||||||
cacheName = "lelgenio";
|
|
||||||
cachixTokenFile = config.age.secrets.lelgenio-cachix.path;
|
|
||||||
};
|
|
||||||
systemd.services.cachix-watch-store-agent = {
|
|
||||||
serviceConfig.TimeoutStopSec = 3;
|
|
||||||
# If we don't do this, cachix tends to timeout
|
|
||||||
serviceConfig.KillMode = lib.mkForce "control-group";
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -9,11 +9,8 @@
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./gamemode.nix
|
|
||||||
./cachix.nix
|
|
||||||
./media-packages.nix
|
./media-packages.nix
|
||||||
./boot.nix
|
./boot.nix
|
||||||
./thunar.nix
|
|
||||||
./nix.nix
|
./nix.nix
|
||||||
./fonts.nix
|
./fonts.nix
|
||||||
./sound.nix
|
./sound.nix
|
||||||
|
@ -43,22 +40,11 @@
|
||||||
glib # gsettings
|
glib # gsettings
|
||||||
usbutils
|
usbutils
|
||||||
# dracula-theme # gtk theme
|
# dracula-theme # gtk theme
|
||||||
adwaita-icon-theme # default gnome cursors
|
gnome3.adwaita-icon-theme # default gnome cursors
|
||||||
|
|
||||||
nix-output-monitor
|
|
||||||
];
|
];
|
||||||
|
|
||||||
services.geoclue2.enable = true;
|
services.geoclue2.enable = true;
|
||||||
|
|
||||||
# Workaround for nm-wait-online hanging??
|
|
||||||
# Ref: https://github.com/NixOS/nixpkgs/issues/180175
|
|
||||||
systemd.services.NetworkManager-wait-online = {
|
|
||||||
serviceConfig.ExecStart = [
|
|
||||||
""
|
|
||||||
"${pkgs.networkmanager}/bin/nm-online -q"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.extraConfig = ''
|
systemd.extraConfig = ''
|
||||||
DefaultTimeoutStopSec=10s
|
DefaultTimeoutStopSec=10s
|
||||||
'';
|
'';
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs, lib, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
services.flatpak.enable = true;
|
services.flatpak.enable = true;
|
||||||
|
|
||||||
|
@ -12,18 +12,8 @@
|
||||||
"--volumes"
|
"--volumes"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
daemon.settings = {
|
|
||||||
# needed by bitbucket runner ???
|
|
||||||
log-driver = "json-file";
|
|
||||||
log-opts = {
|
|
||||||
max-size = "10m";
|
|
||||||
max-file = "3";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
networking.firewall.extraCommands = lib.getExe pkgs._docker-block-external-connections;
|
|
||||||
|
|
||||||
programs.extra-container.enable = true;
|
programs.extra-container.enable = true;
|
||||||
|
|
||||||
programs.firejail.enable = true;
|
programs.firejail.enable = true;
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
fonts.enableDefaultPackages = true;
|
fonts.enableDefaultPackages = true;
|
||||||
fonts.packages = with pkgs; [
|
fonts.packages = with pkgs; [
|
||||||
noto-fonts
|
noto-fonts
|
||||||
noto-fonts-cjk-sans
|
noto-fonts-cjk
|
||||||
noto-fonts-emoji
|
noto-fonts-emoji
|
||||||
nerdfonts_fira_hack
|
nerdfonts_fira_hack
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,27 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
inputs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
programs.gamemode.enable = true;
|
|
||||||
programs.gamemode.enableRenice = true;
|
|
||||||
programs.gamemode.settings = {
|
|
||||||
general = {
|
|
||||||
renice = 10;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Warning: GPU optimisations have the potential to damage hardware
|
|
||||||
gpu = {
|
|
||||||
apply_gpu_optimisations = "accept-responsibility";
|
|
||||||
gpu_device = 0;
|
|
||||||
amd_performance_level = "high";
|
|
||||||
};
|
|
||||||
|
|
||||||
custom = {
|
|
||||||
start = "${pkgs.libnotify}/bin/notify-send 'GameMode started'";
|
|
||||||
end = "${pkgs.libnotify}/bin/notify-send 'GameMode ended'";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -42,6 +42,6 @@
|
||||||
|
|
||||||
chrome-gnome-shell
|
chrome-gnome-shell
|
||||||
gnomeExtensions.quick-settings-audio-devices-hider
|
gnomeExtensions.quick-settings-audio-devices-hider
|
||||||
gnome-pass-search-provider
|
gnomeExtensions.dual-shock-4-battery-percentage
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,97 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
inherit (config.my)
|
|
||||||
key
|
|
||||||
accent
|
|
||||||
font
|
|
||||||
theme
|
|
||||||
desktop
|
|
||||||
;
|
|
||||||
|
|
||||||
cfg = config.login-manager.greetd;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.login-manager.greetd = {
|
|
||||||
enable = lib.mkEnableOption "Use greetd as login manager";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
|
|
||||||
# Enable the X11 windowing system.
|
|
||||||
services.xserver.enable = false;
|
|
||||||
|
|
||||||
# enable sway window manager
|
|
||||||
programs.sway = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.mySway;
|
|
||||||
wrapperFeatures.gtk = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
services.dbus.enable = true;
|
|
||||||
programs.wshowkeys.enable = true;
|
|
||||||
xdg.portal = {
|
|
||||||
enable = true;
|
|
||||||
wlr.enable = true;
|
|
||||||
# Always pick the first monitor, this is fine since I only ever use a single monitor
|
|
||||||
wlr.settings.screencast.chooser_type = "none";
|
|
||||||
# gtk portal needed to make gtk apps happy
|
|
||||||
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
|
||||||
};
|
|
||||||
services.greetd =
|
|
||||||
let
|
|
||||||
greetd_main_script = pkgs.writeShellScriptBin "main" ''
|
|
||||||
export XDG_CURRENT_DESKTOP=sway GTK_THEME="${theme.gtk_theme}" XCURSOR_THEME="${theme.cursor_theme}"
|
|
||||||
${pkgs.greetd.gtkgreet}/bin/gtkgreet -l -c ${desktop}
|
|
||||||
swaymsg exit
|
|
||||||
'';
|
|
||||||
swayConfig = pkgs.writeText "greetd-sway-config" ''
|
|
||||||
# `-l` activates layer-shell mode. Notice that `swaymsg exit` will run after gtkgreet.
|
|
||||||
exec "${greetd_main_script}/bin/main"
|
|
||||||
bindsym Mod4+shift+e exec swaynag \
|
|
||||||
-t warning \
|
|
||||||
-m 'What do you want to do?' \
|
|
||||||
-b 'Poweroff' 'systemctl poweroff' \
|
|
||||||
-b 'Reboot' 'systemctl reboot'
|
|
||||||
input "*" {
|
|
||||||
repeat_delay 200
|
|
||||||
repeat_rate 30
|
|
||||||
xkb_layout us(colemak)
|
|
||||||
xkb_numlock enabled
|
|
||||||
xkb_options lv3:lsgt_switch,grp:shifts_toggle
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
in
|
|
||||||
{
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
initial_session = {
|
|
||||||
command = desktop;
|
|
||||||
user = "lelgenio";
|
|
||||||
};
|
|
||||||
default_session = {
|
|
||||||
command = "${pkgs.sway}/bin/sway --config ${swayConfig}";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
sway
|
|
||||||
swaylock
|
|
||||||
swayidle
|
|
||||||
|
|
||||||
wayland
|
|
||||||
pkgs.xdg-desktop-portal
|
|
||||||
pkgs.xdg-desktop-portal-wlr
|
|
||||||
|
|
||||||
## Theme
|
|
||||||
capitaine-cursors
|
|
||||||
bibata-cursors
|
|
||||||
orchis_theme_compact
|
|
||||||
papirus_red
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
{ config, pkgs, ... }:
|
|
||||||
{
|
|
||||||
# Enable the X11 windowing system.
|
|
||||||
services.xserver.enable = true;
|
|
||||||
# Enable the KDE Desktop Environment.
|
|
||||||
services.xserver.displayManager.sddm.enable = true;
|
|
||||||
services.xserver.desktopManager.plasma5.enable = true;
|
|
||||||
# services.xserver.displayManager.autologin.user = "lelgenio";
|
|
||||||
programs.dconf.enable = true;
|
|
||||||
# environment.systemPackages = with pkgs;
|
|
||||||
# with gnome; [
|
|
||||||
# gnome-tweaks
|
|
||||||
# dconf-editor
|
|
||||||
# ];
|
|
||||||
}
|
|
|
@ -13,22 +13,30 @@ in
|
||||||
};
|
};
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
down_meme
|
|
||||||
yt-dlp
|
yt-dlp
|
||||||
ffmpeg
|
ffmpeg
|
||||||
obs-studio
|
obs-studio
|
||||||
imagemagick
|
imagemagick
|
||||||
mpc-cli
|
|
||||||
helvum
|
helvum
|
||||||
gimp
|
gimp
|
||||||
inkscape
|
inkscape
|
||||||
krita
|
krita
|
||||||
kdePackages.breeze
|
kdePackages.breeze
|
||||||
kdePackages.kdenlive
|
kdePackages.kdenlive
|
||||||
pitivi
|
|
||||||
blender-hip
|
blender-hip
|
||||||
libreoffice
|
libreoffice
|
||||||
godot_4
|
godot_4
|
||||||
|
|
||||||
|
(pkgs.writeTextFile {
|
||||||
|
name = "krita-thumbnails";
|
||||||
|
text = ''
|
||||||
|
[Thumbnailer Entry]
|
||||||
|
TryExec=unzip
|
||||||
|
Exec=sh -c "${pkgs.unzip}/bin/unzip -p %i preview.png > %o"
|
||||||
|
MimeType=application/x-krita;
|
||||||
|
'';
|
||||||
|
destination = "/share/thumbnailers/kra.thumbnailer";
|
||||||
|
})
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,7 @@ in
|
||||||
virtualisation.docker.enable = true;
|
virtualisation.docker.enable = true;
|
||||||
services.gitlab-runner = {
|
services.gitlab-runner = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings.concurrent = 12;
|
settings.concurrent = 4;
|
||||||
services = {
|
services = {
|
||||||
# runner for building in docker via host's nix-daemon
|
# runner for building in docker via host's nix-daemon
|
||||||
# nix store will be readable in runner, might be insecure
|
# nix store will be readable in runner, might be insecure
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
services.nix-serve = {
|
|
||||||
enable = true;
|
|
||||||
secretKeyFile = config.age.secrets.monolith-nix-serve-privkey.path;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -44,7 +44,7 @@ in
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
extraOptions = ''
|
extraOptions = ''
|
||||||
experimental-features = nix-command flakes
|
experimental-features = nix-command flakes repl-flake
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,8 +12,20 @@ in
|
||||||
virtualisation.docker.enable = true;
|
virtualisation.docker.enable = true;
|
||||||
services.gitlab-runner = {
|
services.gitlab-runner = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings.concurrent = 6;
|
settings.concurrent = 1;
|
||||||
services = {
|
services = {
|
||||||
|
# ci_test = {
|
||||||
|
# registrationConfigFile = "/srv/gitlab-runner/env/ci_test";
|
||||||
|
# dockerImage = "debian";
|
||||||
|
# dockerPrivileged = true;
|
||||||
|
# };
|
||||||
|
thoreb_builder = {
|
||||||
|
registrationConfigFile =
|
||||||
|
config.age.secrets.rainbow-gitlab-runner-thoreb-itinerario-registrationConfigFile.path;
|
||||||
|
dockerImage = "debian";
|
||||||
|
dockerPrivileged = true;
|
||||||
|
};
|
||||||
|
|
||||||
thoreb-telemetria-nix = mkNixRunner config.age.secrets.gitlab-runner-thoreb-telemetria-registrationConfigFile.path;
|
thoreb-telemetria-nix = mkNixRunner config.age.secrets.gitlab-runner-thoreb-telemetria-registrationConfigFile.path;
|
||||||
thoreb-itinerario-nix = mkNixRunner config.age.secrets.rainbow-gitlab-runner-thoreb-itinerario-registrationConfigFile.path;
|
thoreb-itinerario-nix = mkNixRunner config.age.secrets.rainbow-gitlab-runner-thoreb-itinerario-registrationConfigFile.path;
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
|
sound.enable = true;
|
||||||
hardware.pulseaudio.enable = false;
|
hardware.pulseaudio.enable = false;
|
||||||
services.pipewire = {
|
services.pipewire = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
@ -31,6 +31,8 @@
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
protontricks
|
protontricks
|
||||||
bottles
|
bottles
|
||||||
inputs.dzgui-nix.packages.${pkgs.system}.default
|
|
||||||
];
|
];
|
||||||
|
|
||||||
|
programs.dzgui.enable = true;
|
||||||
|
programs.dzgui.package = inputs.dzgui-nix.packages.${pkgs.system}.default;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
inputs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
programs.thunar = {
|
|
||||||
enable = true;
|
|
||||||
plugins = with pkgs.xfce; [
|
|
||||||
thunar-archive-plugin
|
|
||||||
thunar-volman
|
|
||||||
];
|
|
||||||
};
|
|
||||||
# Mount, trash, and other functionalities
|
|
||||||
services.gvfs.enable = true;
|
|
||||||
# Thumbnail support for images
|
|
||||||
services.tumbler.enable = true;
|
|
||||||
|
|
||||||
environment.systemPackages = [
|
|
||||||
(pkgs.writeTextFile {
|
|
||||||
name = "thumbs";
|
|
||||||
text = ''
|
|
||||||
[Thumbnailer Entry]
|
|
||||||
TryExec=unzip
|
|
||||||
Exec=sh -c "${pkgs.unzip}/bin/unzip -p %i preview.png > %o"
|
|
||||||
MimeType=application/x-krita;
|
|
||||||
'';
|
|
||||||
destination = "/share/thumbnailers/kra.thumbnailer";
|
|
||||||
})
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,8 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
projectRootFile = "flake.nix";
|
|
||||||
programs.nixfmt.enable = true;
|
|
||||||
programs.nixfmt.package = pkgs.nixfmt-rfc-style;
|
|
||||||
|
|
||||||
settings.on-unmatched = "debug";
|
|
||||||
}
|
|
|
@ -1,179 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
inherit (config.my)
|
|
||||||
key
|
|
||||||
theme
|
|
||||||
accent
|
|
||||||
font
|
|
||||||
;
|
|
||||||
inherit (theme) color;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
config = {
|
|
||||||
programs.alacritty = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
font = {
|
|
||||||
size = font.size.small;
|
|
||||||
normal = {
|
|
||||||
family = font.mono;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
colors = {
|
|
||||||
primary = {
|
|
||||||
background = "${color.bg}";
|
|
||||||
foreground = "${color.txt}";
|
|
||||||
};
|
|
||||||
cursor = {
|
|
||||||
text = "#000000";
|
|
||||||
cursor = "${accent.color}";
|
|
||||||
};
|
|
||||||
normal = {
|
|
||||||
black = "${color.normal.black}";
|
|
||||||
red = "${color.normal.red}";
|
|
||||||
green = "${color.normal.green}";
|
|
||||||
yellow = "${color.normal.yellow}";
|
|
||||||
blue = "${color.normal.blue}";
|
|
||||||
magenta = "${color.normal.magenta}";
|
|
||||||
cyan = "${color.normal.cyan}";
|
|
||||||
white = "${color.normal.white}";
|
|
||||||
};
|
|
||||||
draw_bold_text_with_bright_colors = false;
|
|
||||||
};
|
|
||||||
window = {
|
|
||||||
opacity = theme.opacity / 100.0;
|
|
||||||
dynamic_padding = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
hints = {
|
|
||||||
alphabet = key.hints;
|
|
||||||
enabled = [
|
|
||||||
{
|
|
||||||
regex =
|
|
||||||
let
|
|
||||||
mimes = "(mailto:|gemini:|gopher:|https:|http:|news:|file:|git:|ssh:|ftp:)";
|
|
||||||
# I fucking hate regex, look at this bullshit
|
|
||||||
delimiters = ''^\\u0000-\\u001F\\u007F-\\u009F<>"\\s{-}\\^⟨⟩`'';
|
|
||||||
# Kakoune uses these characters to represent whitespace,
|
|
||||||
# but alacritty doesn't know about them
|
|
||||||
whitespace_characters = ''¬·→'';
|
|
||||||
in
|
|
||||||
"${mimes}[${delimiters}${whitespace_characters}]+";
|
|
||||||
command = "xdg-open";
|
|
||||||
post_processing = true;
|
|
||||||
mouse = {
|
|
||||||
enabled = true;
|
|
||||||
mods = "None";
|
|
||||||
};
|
|
||||||
binding = {
|
|
||||||
key = "U";
|
|
||||||
mods = "Control|Shift";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
mouse = {
|
|
||||||
hide_when_typing = true;
|
|
||||||
};
|
|
||||||
keyboard.bindings = [
|
|
||||||
{
|
|
||||||
key = lib.toUpper key.up;
|
|
||||||
mode = "Vi|~Search";
|
|
||||||
action = "Up";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
key = lib.toUpper key.down;
|
|
||||||
mode = "Vi|~Search";
|
|
||||||
action = "Down";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
key = lib.toUpper key.left;
|
|
||||||
mode = "Vi|~Search";
|
|
||||||
action = "Left";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
key = lib.toUpper key.right;
|
|
||||||
mode = "Vi|~Search";
|
|
||||||
action = "Right";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
key = lib.toUpper key.insertMode;
|
|
||||||
mode = "Vi|~Search";
|
|
||||||
action = "ScrollToBottom";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
key = lib.toUpper key.insertMode;
|
|
||||||
mode = "Vi|~Search";
|
|
||||||
action = "ToggleViMode";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
key = lib.toUpper key.next;
|
|
||||||
mode = "Vi|~Search";
|
|
||||||
action = "SearchNext";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
key = lib.toUpper key.next;
|
|
||||||
mods = "Shift";
|
|
||||||
mode = "Vi|~Search";
|
|
||||||
action = "SearchPrevious";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
key = "Up";
|
|
||||||
mods = "Control|Shift";
|
|
||||||
mode = "~Alt";
|
|
||||||
action = "ScrollLineUp";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
key = "Down";
|
|
||||||
mods = "Control|Shift";
|
|
||||||
mode = "~Alt";
|
|
||||||
action = "ScrollLineDown";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
key = "PageUp";
|
|
||||||
mods = "Control|Shift";
|
|
||||||
mode = "~Alt";
|
|
||||||
action = "ScrollHalfPageUp";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
key = "PageDown";
|
|
||||||
mods = "Control|Shift";
|
|
||||||
mode = "~Alt";
|
|
||||||
action = "ScrollHalfPageDown";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
key = "N";
|
|
||||||
mods = "Control|Shift";
|
|
||||||
action = "SpawnNewInstance";
|
|
||||||
}
|
|
||||||
# {%@@ if key.layout == "colemak" @@%}
|
|
||||||
{
|
|
||||||
key = "T";
|
|
||||||
mode = "Vi|~Search";
|
|
||||||
action = "SemanticRightEnd";
|
|
||||||
}
|
|
||||||
# {%@@ endif @@%}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
home.sessionVariables = {
|
|
||||||
TERMINAL = "alacritty";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Look at this fucking bullshit:
|
|
||||||
# https://gitlab.gnome.org/GNOME/glib/-/blob/20c4fcb2a7246a2b205649eae3ebda4296217afc/gio/gdesktopappinfo.c#L2702
|
|
||||||
# Theres a fucking hard coded list of terminals!
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
(pkgs.writeShellScriptBin "gnome-terminal" ''
|
|
||||||
[ "$1" = "--" ] && shift
|
|
||||||
exec terminal -e "$@"
|
|
||||||
'')
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -9,15 +9,15 @@
|
||||||
wayland.windowManager.sway = {
|
wayland.windowManager.sway = {
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
exec thunderbird
|
exec thunderbird
|
||||||
exec discordcanary
|
exec vesktop
|
||||||
exec telegram-desktop
|
exec telegram-desktop
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
tdesktop
|
tdesktop
|
||||||
discord-canary
|
vesktop
|
||||||
thunderbird
|
thunderbird
|
||||||
element-desktop
|
element-desktop-wayland
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,41 +6,6 @@
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
xdg.desktopEntries = {
|
xdg.desktopEntries = {
|
||||||
kak = {
|
|
||||||
name = "Kakoune";
|
|
||||||
genericName = "Text Editor";
|
|
||||||
comment = "Edit text files";
|
|
||||||
exec = "kak %F";
|
|
||||||
terminal = true;
|
|
||||||
type = "Application";
|
|
||||||
icon = "kak.desktop";
|
|
||||||
categories = [
|
|
||||||
"Utility"
|
|
||||||
"TextEditor"
|
|
||||||
];
|
|
||||||
startupNotify = true;
|
|
||||||
mimeType = [
|
|
||||||
"text/english"
|
|
||||||
"text/plain"
|
|
||||||
"text/x-makefile"
|
|
||||||
"text/x-c++hdr"
|
|
||||||
"text/x-c++src"
|
|
||||||
"text/x-chdr"
|
|
||||||
"text/x-csrc"
|
|
||||||
"text/x-java"
|
|
||||||
"text/x-moc"
|
|
||||||
"text/x-pascal"
|
|
||||||
"text/x-tcl"
|
|
||||||
"text/x-tex"
|
|
||||||
"application/x-shellscript"
|
|
||||||
"text/x-c"
|
|
||||||
"text/x-c++"
|
|
||||||
];
|
|
||||||
settings = {
|
|
||||||
Keywords = "Text;editor;";
|
|
||||||
TryExec = "kak";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
down_meme = {
|
down_meme = {
|
||||||
name = "DownMeme";
|
name = "DownMeme";
|
||||||
genericName = "Download memes";
|
genericName = "Download memes";
|
||||||
|
|
|
@ -1,61 +0,0 @@
|
||||||
|
|
||||||
* {
|
|
||||||
all: unset; //Unsets everything so you can style everything from scratch
|
|
||||||
}
|
|
||||||
|
|
||||||
//Global Styles
|
|
||||||
.bar {
|
|
||||||
background-color: #202020;
|
|
||||||
color: #b0b4bc;
|
|
||||||
padding: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Styles on classes (see eww.yuck for more information)
|
|
||||||
|
|
||||||
.sidestuff slider {
|
|
||||||
all: unset;
|
|
||||||
color: #cc5757;
|
|
||||||
}
|
|
||||||
|
|
||||||
.metric scale trough highlight {
|
|
||||||
all: unset;
|
|
||||||
background-color: #D35D6E;
|
|
||||||
color: #000000;
|
|
||||||
border-radius: 10px;
|
|
||||||
}
|
|
||||||
.metric scale trough {
|
|
||||||
all: unset;
|
|
||||||
background-color: #4e4e4e;
|
|
||||||
border-radius: 50px;
|
|
||||||
min-height: 3px;
|
|
||||||
min-width: 50px;
|
|
||||||
margin-left: 10px;
|
|
||||||
margin-right: 20px;
|
|
||||||
}
|
|
||||||
.metric scale trough highlight {
|
|
||||||
all: unset;
|
|
||||||
background-color: #D35D6E;
|
|
||||||
color: #000000;
|
|
||||||
border-radius: 10px;
|
|
||||||
}
|
|
||||||
.metric scale trough {
|
|
||||||
all: unset;
|
|
||||||
background-color: #4e4e4e;
|
|
||||||
border-radius: 50px;
|
|
||||||
min-height: 3px;
|
|
||||||
min-width: 50px;
|
|
||||||
margin-left: 10px;
|
|
||||||
margin-right: 20px;
|
|
||||||
}
|
|
||||||
.label-ram {
|
|
||||||
font-size: large;
|
|
||||||
}
|
|
||||||
.workspaces button:hover {
|
|
||||||
color: #D35D6E;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspaces button.active {
|
|
||||||
color: #D35D6E;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
|
@ -1,80 +0,0 @@
|
||||||
(defwidget bar []
|
|
||||||
(centerbox :orientation "h"
|
|
||||||
(workspaces)
|
|
||||||
(music)
|
|
||||||
(sidestuff)))
|
|
||||||
|
|
||||||
(defwidget sidestuff []
|
|
||||||
(box :class "sidestuff" :orientation "h" :space-evenly false :halign "end"
|
|
||||||
; (metric :label "🔊"
|
|
||||||
; :value volume
|
|
||||||
; :onchange "amixer -D pulse sset Master {}%")
|
|
||||||
(metric :label ""
|
|
||||||
:value {EWW_RAM.used_mem_perc}
|
|
||||||
:onchange "")
|
|
||||||
(metric :label "💾"
|
|
||||||
:value {round((1 - (EWW_DISK["/"].free / EWW_DISK["/"].total)) * 100, 0)}
|
|
||||||
:onchange "")
|
|
||||||
time))
|
|
||||||
|
|
||||||
(defwidget workspaces []
|
|
||||||
(box :class "workspaces"
|
|
||||||
:orientation "h"
|
|
||||||
:space-evenly true
|
|
||||||
:halign "start"
|
|
||||||
:spacing 10
|
|
||||||
(button :class "${active_workspace == 1 ? 'active' : '' }" :onclick "wmctrl -s 0" 1)
|
|
||||||
(button :class "${active_workspace == 2 ? 'active' : '' }" :onclick "wmctrl -s 1" 2)
|
|
||||||
(button :class "${active_workspace == 3 ? 'active' : '' }" :onclick "wmctrl -s 2" 3)
|
|
||||||
(button :class "${active_workspace == 4 ? 'active' : '' }" :onclick "wmctrl -s 3" 4)
|
|
||||||
(button :class "${active_workspace == 5 ? 'active' : '' }" :onclick "wmctrl -s 4" 5)
|
|
||||||
(button :class "${active_workspace == 6 ? 'active' : '' }" :onclick "wmctrl -s 5" 6)
|
|
||||||
(button :class "${active_workspace == 7 ? 'active' : '' }" :onclick "wmctrl -s 6" 7)
|
|
||||||
(button :class "${active_workspace == 8 ? 'active' : '' }" :onclick "wmctrl -s 7" 8)
|
|
||||||
(button :class "${active_workspace == 9 ? 'active' : '' }" :onclick "wmctrl -s 8" 9)))
|
|
||||||
|
|
||||||
(defwidget music []
|
|
||||||
(box :class "music"
|
|
||||||
:orientation "h"
|
|
||||||
:space-evenly false
|
|
||||||
:halign "center"
|
|
||||||
{music != "" ? "🎵${music}" : ""}))
|
|
||||||
|
|
||||||
|
|
||||||
(defwidget metric [label value onchange]
|
|
||||||
(box :orientation "h"
|
|
||||||
:class "metric"
|
|
||||||
:space-evenly false
|
|
||||||
(box :class "label" label)
|
|
||||||
(scale :min 0
|
|
||||||
:max 101
|
|
||||||
:active {onchange != ""}
|
|
||||||
:value value
|
|
||||||
:onchange onchange)))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
(deflisten music :initial ""
|
|
||||||
"playerctl --follow metadata --format '{{ artist }} - {{ title }}' || true")
|
|
||||||
|
|
||||||
; (defpoll volume :interval "1s"
|
|
||||||
; "scripts/getvol")
|
|
||||||
|
|
||||||
(defpoll time :interval "10s"
|
|
||||||
"date '+%H:%M %b %d, %Y'")
|
|
||||||
|
|
||||||
(defpoll active_workspace :interval "10ms"
|
|
||||||
"hyprctl monitors -j | jq '.[]|.activeWorkspace.id'")
|
|
||||||
|
|
||||||
(defwindow bar
|
|
||||||
:monitor 0
|
|
||||||
:windowtype "dock"
|
|
||||||
:geometry (geometry :x "0%"
|
|
||||||
:y "0%"
|
|
||||||
:width "100%"
|
|
||||||
:height "10px"
|
|
||||||
:anchor "top center")
|
|
||||||
:reserve (struts :side "top" :distance "4%")
|
|
||||||
:exclusive true
|
|
||||||
(bar))
|
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
printf "%.0f\n" $(free -m | grep Mem | awk '{print ($3/$2)*100}')
|
|
|
@ -1,2 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
amixer -D pulse sget Master | grep 'Left:' | awk -F'[][]' '{ print $2 }' | tr -d '%' | head -1
|
|
126
user/firefox.nix
126
user/firefox.nix
|
@ -7,79 +7,12 @@
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
inherit (config.my) desktop browser;
|
inherit (config.my) desktop browser;
|
||||||
bugfixedFirefox = pkgs.firefox-devedition-unwrapped // {
|
|
||||||
requireSigning = false;
|
|
||||||
allowAddonSideload = true;
|
|
||||||
};
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
config = {
|
config = {
|
||||||
programs.firefox = {
|
programs.firefox = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.wrapFirefox bugfixedFirefox {
|
package = pkgs.firefox-devedition;
|
||||||
nixExtensions = [
|
|
||||||
(pkgs.fetchFirefoxAddon {
|
|
||||||
name = "darkreader";
|
|
||||||
url = "https://addons.mozilla.org/firefox/downloads/file/4205543/darkreader-4.9.73.xpi";
|
|
||||||
hash = "sha256-fDmf8yVhiGu4Da0Mr6+PYpeSsLcf8e/PEmZ+BaKzjxo=";
|
|
||||||
})
|
|
||||||
(pkgs.fetchFirefoxAddon {
|
|
||||||
name = "sponsorblock";
|
|
||||||
url = "https://addons.mozilla.org/firefox/downloads/file/4202411/sponsorblock-5.4.29.xpi";
|
|
||||||
hash = "sha256-7Xqc8cyQNylMe5/dgDOx1f2QDVmz3JshDlTueu6AcSg=";
|
|
||||||
})
|
|
||||||
(pkgs.fetchFirefoxAddon {
|
|
||||||
name = "tree-style-tab";
|
|
||||||
url = "https://addons.mozilla.org/firefox/downloads/file/4197314/tree_style_tab-3.9.19.xpi";
|
|
||||||
hash = "sha256-u2f0elVPj5N/QXa+5hRJResPJAYwuT9z0s/0nwmFtVo=";
|
|
||||||
})
|
|
||||||
(pkgs.fetchFirefoxAddon {
|
|
||||||
name = "ublock-origin";
|
|
||||||
url = "https://addons.mozilla.org/firefox/downloads/file/4290466/ublock_origin-1.58.0.xpi";
|
|
||||||
hash = "sha256-RwxWmUpxdNshV4rc5ZixWKXcCXDIfFz+iJrGMr0wheo=";
|
|
||||||
})
|
|
||||||
(pkgs.fetchFirefoxAddon {
|
|
||||||
name = "user_agent_string_switcher";
|
|
||||||
url = "https://addons.mozilla.org/firefox/downloads/file/4098688/user_agent_string_switcher-0.5.0.xpi";
|
|
||||||
hash = "sha256-ncjaPIxG1PBNEv14nGNQH6ai9QL4WbKGk5oJDbY+rjM=";
|
|
||||||
})
|
|
||||||
|
|
||||||
(pkgs.fetchFirefoxAddon {
|
|
||||||
name = "i-still-dont-care-about-cookies";
|
|
||||||
url = "https://github.com/OhMyGuus/I-Still-Dont-Care-About-Cookies/releases/download/v1.1.4/istilldontcareaboutcookies-1.1.4.xpi";
|
|
||||||
hash = "sha256-yt6yRiLTuaK4K/QwgkL9gCVGsSa7ndFOHqZvKqIGZ5U=";
|
|
||||||
})
|
|
||||||
|
|
||||||
(pkgs.fetchFirefoxAddon {
|
|
||||||
name = "vimium_ff";
|
|
||||||
url = "https://addons.mozilla.org/firefox/downloads/file/4191523/vimium_ff-2.0.6.xpi";
|
|
||||||
hash = "sha256-lKLX6IWWtliRdH1Ig33rVEB4DVfbeuMw0dfUPV/mSSI=";
|
|
||||||
})
|
|
||||||
(pkgs.fetchFirefoxAddon {
|
|
||||||
name = "invidious_redirect";
|
|
||||||
url = "https://addons.mozilla.org/firefox/downloads/file/4292924/invidious_redirect_2-1.16.xpi";
|
|
||||||
hash = "sha256-ApCc+MNmW9Wd/5seV6npePQVEaszT/rhD9EB7HGiUb8=";
|
|
||||||
})
|
|
||||||
|
|
||||||
(pkgs.fetchFirefoxAddon {
|
|
||||||
name = "substitoot";
|
|
||||||
url = "https://addons.mozilla.org/firefox/downloads/file/4236602/substitoot-0.7.2.0.xpi";
|
|
||||||
hash = "sha256-1auSqEjkebwRSbmAVUsYwy77dl7TQCOnqgozpoVnqgI=";
|
|
||||||
})
|
|
||||||
|
|
||||||
# Locale
|
|
||||||
(pkgs.fetchFirefoxAddon {
|
|
||||||
name = "firefox_br";
|
|
||||||
url = "https://addons.mozilla.org/firefox/downloads/file/4144369/firefox_br-115.0.20230726.201356.xpi";
|
|
||||||
hash = "sha256-8zkqfdW0lX0b62+gAJeq4FFlQ06nXGFAexpH+wg2Cr0=";
|
|
||||||
})
|
|
||||||
(pkgs.fetchFirefoxAddon {
|
|
||||||
name = "corretor";
|
|
||||||
url = "https://addons.mozilla.org/firefox/downloads/file/1176165/corretor-65.2018.12.8.xpi";
|
|
||||||
hash = "sha256-/rFQtJHdgemMkGAd+KWuWxVA/BwSIkn6sk0XZE0LrGk=";
|
|
||||||
})
|
|
||||||
];
|
|
||||||
};
|
|
||||||
profiles = {
|
profiles = {
|
||||||
dev-edition-default = {
|
dev-edition-default = {
|
||||||
isDefault = true;
|
isDefault = true;
|
||||||
|
@ -123,49 +56,48 @@ in
|
||||||
if desktop == "sway" then
|
if desktop == "sway" then
|
||||||
''
|
''
|
||||||
#titlebar { display: none !important; }
|
#titlebar { display: none !important; }
|
||||||
#TabsToolbar { display: none !important; }
|
|
||||||
#sidebar-header { display: none !important; }
|
#sidebar-header { display: none !important; }
|
||||||
''
|
''
|
||||||
else
|
else
|
||||||
''
|
''
|
||||||
/* Element | chrome://browser/content/browser.xhtml */
|
/* Hide tabs and other items */
|
||||||
|
|
||||||
#navigator-toolbox {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: 1fr 50px;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Element | chrome://browser/content/browser.xhtml */
|
|
||||||
|
|
||||||
#nav-bar {
|
|
||||||
flex: 1;
|
|
||||||
width: 100%;
|
|
||||||
grid-column: 1 / 3;
|
|
||||||
grid-row: 1;
|
|
||||||
z-index: 0;
|
|
||||||
padding-right: 29px !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Element | chrome://browser/content/browser.xhtml */
|
|
||||||
|
|
||||||
.toolbar-items {
|
.toolbar-items {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Element | chrome://browser/content/browser.xhtml */
|
/* Make the url bar occupy the entire size of the container */
|
||||||
|
#nav-bar {
|
||||||
#TabsToolbar {
|
z-index: 1;
|
||||||
max-width: 50px;
|
padding-right: 29px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Element | chrome://browser/content/browser.xhtml */
|
/* shrink the tab bar to a small size, since it's only the window close button basically */
|
||||||
|
|
||||||
#titlebar {
|
#titlebar {
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
top: 10px;
|
||||||
max-width: 50px;
|
max-width: 50px;
|
||||||
grid-area: 1 / 2;
|
|
||||||
z-index: 10;
|
z-index: 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Add a nice border to the top of the window */
|
||||||
|
#nav-bar {
|
||||||
|
border-top-left-radius: 10px;
|
||||||
|
border-top-right-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Make the private browser indicator look nice, over the close-window button */
|
||||||
|
#private-browsing-indicator-with-label {
|
||||||
|
position: absolute;
|
||||||
|
top: 4px;
|
||||||
|
left: 15px;
|
||||||
|
z-index: 20;
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#private-browsing-indicator-with-label > label {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -18,17 +18,9 @@ in
|
||||||
set -U fish_features stderr-nocaret qmark-noglob regex-easyesc ampersand-nobg-in-token
|
set -U fish_features stderr-nocaret qmark-noglob regex-easyesc ampersand-nobg-in-token
|
||||||
|
|
||||||
set_color red
|
set_color red
|
||||||
if not test -d "$PASSWORD_STORE_DIR"
|
|
||||||
echo "Password Store not yet setup"
|
|
||||||
end
|
|
||||||
if not test -f "$HOME/.ssh/id_rsa"
|
if not test -f "$HOME/.ssh/id_rsa"
|
||||||
echo "SSH keys not yet setup"
|
echo "SSH keys not yet setup"
|
||||||
end
|
end
|
||||||
if command -qs rustup &> /dev/null
|
|
||||||
if not command -qs rustc; or not rustc --version &> /dev/null
|
|
||||||
rustup default stable &>/dev/null &
|
|
||||||
end
|
|
||||||
end
|
|
||||||
set_color normal
|
set_color normal
|
||||||
|
|
||||||
bind \cy 'commandline | wl-copy -n'
|
bind \cy 'commandline | wl-copy -n'
|
||||||
|
@ -36,21 +28,16 @@ in
|
||||||
shellAliases = {
|
shellAliases = {
|
||||||
rm = "trash";
|
rm = "trash";
|
||||||
tree = "eza -T";
|
tree = "eza -T";
|
||||||
|
kill_yourself = "shutdown now";
|
||||||
};
|
};
|
||||||
shellAbbrs = {
|
shellAbbrs = {
|
||||||
off = "shutdown now";
|
off = "shutdown now";
|
||||||
v =
|
|
||||||
{
|
|
||||||
"helix" = "hx";
|
|
||||||
"kakoune" = "kak";
|
|
||||||
}
|
|
||||||
.${editor};
|
|
||||||
ns = "nix develop --command $SHELL";
|
ns = "nix develop --command $SHELL";
|
||||||
wcf = "wl-copy-file";
|
wcf = "wl-copy-file";
|
||||||
c = "cargo";
|
c = "cargo";
|
||||||
# system
|
# system
|
||||||
sv = "sudo systemct";
|
sv = "sudo systemct";
|
||||||
suv = "systemct --user";
|
suv = "sudo systemct --user";
|
||||||
# docker abbrs
|
# docker abbrs
|
||||||
d = "docker";
|
d = "docker";
|
||||||
dc = "docker-compose";
|
dc = "docker-compose";
|
||||||
|
|
|
@ -51,7 +51,6 @@ end
|
||||||
function _fish_prompt_git_unpushed_branches
|
function _fish_prompt_git_unpushed_branches
|
||||||
timeout 5s git log \
|
timeout 5s git log \
|
||||||
--branches \
|
--branches \
|
||||||
--decorate-refs-exclude=refs/tags \
|
|
||||||
--simplify-by-decoration \
|
--simplify-by-decoration \
|
||||||
--not \
|
--not \
|
||||||
--remotes \
|
--remotes \
|
||||||
|
@ -104,29 +103,29 @@ function fish_git_prompt
|
||||||
_fish_prompt_warn "init"
|
_fish_prompt_warn "init"
|
||||||
end
|
end
|
||||||
|
|
||||||
# if we have at least one commit
|
git rev-parse HEAD -- &>/dev/null
|
||||||
if git rev-parse HEAD -- &>/dev/null
|
or return
|
||||||
# print a "↑" if ahead of origin
|
|
||||||
test 0 -ne (git log --oneline "$git_remote_branch"..HEAD -- | wc -l)
|
|
||||||
and set -f _git_sync_ahead '↑'
|
|
||||||
|
|
||||||
# print a "↓" if behind of origin
|
# print a "↑" if ahead of origin
|
||||||
test 0 -lt (git log --oneline HEAD.."$git_remote_branch" -- | wc -l)
|
test 0 -ne (git log --oneline "$git_remote_branch"..HEAD -- | wc -l)
|
||||||
and set -l _git_sync_behind '↓'
|
and set -f _git_sync_ahead '↑'
|
||||||
|
|
||||||
if set -q _git_sync_ahead _git_sync_behind
|
# print a "↓" if behind of origin
|
||||||
_fish_prompt_normal '⇅'
|
test 0 -lt (git log --oneline HEAD.."$git_remote_branch" -- | wc -l)
|
||||||
else if set -q _git_sync_ahead
|
and set -l _git_sync_behind '↓'
|
||||||
_fish_prompt_normal '↑'
|
|
||||||
else if set -q _git_sync_behind
|
|
||||||
_fish_prompt_normal '↓'
|
|
||||||
end
|
|
||||||
|
|
||||||
if test -n "$git_log_unpushed"
|
if set -q _git_sync_ahead _git_sync_behind
|
||||||
and not string match -qr "$git_branch" "$git_log_unpushed"
|
_fish_prompt_normal '⇅'
|
||||||
_fish_prompt_normal '↻'
|
else if set -q _git_sync_ahead
|
||||||
_fish_prompt_warn $git_log_unpushed[1]
|
_fish_prompt_normal '↑'
|
||||||
end
|
else if set -q _git_sync_behind
|
||||||
|
_fish_prompt_normal '↓'
|
||||||
|
end
|
||||||
|
|
||||||
|
if test -n "$git_log_unpushed"
|
||||||
|
and not string match -qr "$git_branch" "$git_log_unpushed"
|
||||||
|
_fish_prompt_normal '↻'
|
||||||
|
_fish_prompt_warn $git_log_unpushed[1]
|
||||||
end
|
end
|
||||||
|
|
||||||
############################################################
|
############################################################
|
||||||
|
|
10
user/git.nix
10
user/git.nix
|
@ -28,21 +28,11 @@ in
|
||||||
autoSquash = true;
|
autoSquash = true;
|
||||||
autoStash = true;
|
autoStash = true;
|
||||||
};
|
};
|
||||||
pager = {
|
|
||||||
log = "${pkgs._diffr}/bin/_diffr | ${pkgs.kak-pager}/bin/kak-pager";
|
|
||||||
show = "${pkgs._diffr}/bin/_diffr | ${pkgs.kak-pager}/bin/kak-pager";
|
|
||||||
diff = "${pkgs._diffr}/bin/_diffr | ${pkgs.kak-pager}/bin/kak-pager";
|
|
||||||
};
|
|
||||||
alias = {
|
alias = {
|
||||||
graph = "log --graph --oneline --branches";
|
graph = "log --graph --oneline --branches";
|
||||||
root = "rev-parse --show-toplevel";
|
root = "rev-parse --show-toplevel";
|
||||||
clean-deleted-remotes = "!" + (lib.getExe pkgs.git_clean_remote_deleted);
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
git_clean_remote_deleted
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,7 @@ lib.mkIf (config.my.desktop == "gnome") {
|
||||||
home.pointerCursor = {
|
home.pointerCursor = {
|
||||||
name = "Adwaita";
|
name = "Adwaita";
|
||||||
size = 24;
|
size = 24;
|
||||||
package = pkgs.adwaita-icon-theme;
|
package = pkgs.gnome.adwaita-icon-theme;
|
||||||
gtk.enable = true;
|
gtk.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -40,9 +40,11 @@ lib.mkIf (config.my.desktop == "gnome") {
|
||||||
libsForQt5.qtstyleplugin-kvantum
|
libsForQt5.qtstyleplugin-kvantum
|
||||||
qt6Packages.qt6ct
|
qt6Packages.qt6ct
|
||||||
qt6Packages.qtstyleplugin-kvantum
|
qt6Packages.qtstyleplugin-kvantum
|
||||||
|
|
||||||
|
draw-on-your-screen2
|
||||||
];
|
];
|
||||||
|
|
||||||
services.gpg-agent.pinentryPackage = pkgs.pinentry-gnome;
|
services.gpg-agent.pinentryPackage = pkgs.pinentry-gnome3;
|
||||||
|
|
||||||
xdg.defaultApplications = {
|
xdg.defaultApplications = {
|
||||||
enable = lib.mkForce false;
|
enable = lib.mkForce false;
|
||||||
|
|
47
user/gpg.nix
47
user/gpg.nix
|
@ -1,47 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
config = {
|
|
||||||
services.gpg-agent = {
|
|
||||||
enable = true;
|
|
||||||
defaultCacheTtl = 604800;
|
|
||||||
maxCacheTtl = 604800;
|
|
||||||
extraConfig = ''
|
|
||||||
allow-preset-passphrase
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
systemd.user.services = {
|
|
||||||
gpg_unlock = {
|
|
||||||
Unit = {
|
|
||||||
Description = "Unlock gpg keyring";
|
|
||||||
PartOf = [ "graphical-session.target" ];
|
|
||||||
After = [ "graphical-session.target" ];
|
|
||||||
};
|
|
||||||
Service = {
|
|
||||||
ExecStart = "${pkgs._gpg-unlock}/bin/_gpg-unlock";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
systemd.user.timers = {
|
|
||||||
gpg_unlock = {
|
|
||||||
Unit = {
|
|
||||||
Description = "Unlock gpg keyring";
|
|
||||||
PartOf = [ "graphical-session.target" ];
|
|
||||||
After = [ "graphical-session.target" ];
|
|
||||||
};
|
|
||||||
Timer = {
|
|
||||||
OnBootSec = "0";
|
|
||||||
OnUnitActiveSec = "300";
|
|
||||||
Unit = "gpg_unlock.service";
|
|
||||||
};
|
|
||||||
Install = {
|
|
||||||
WantedBy = [ "sway-session.target" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -56,6 +56,8 @@ in
|
||||||
# goto mode
|
# goto mode
|
||||||
g.n = "goto_line_start";
|
g.n = "goto_line_start";
|
||||||
g.o = "goto_line_end";
|
g.o = "goto_line_end";
|
||||||
|
# Formatting
|
||||||
|
"space".m = ":format";
|
||||||
};
|
};
|
||||||
keys.select = {
|
keys.select = {
|
||||||
# basic movement
|
# basic movement
|
||||||
|
@ -68,6 +70,7 @@ in
|
||||||
L = "extend_search_prev";
|
L = "extend_search_prev";
|
||||||
# edits
|
# edits
|
||||||
s = "insert_mode";
|
s = "insert_mode";
|
||||||
|
S = "insert_at_line_start";
|
||||||
# open newline
|
# open newline
|
||||||
h = "open_below";
|
h = "open_below";
|
||||||
H = "open_above";
|
H = "open_above";
|
||||||
|
@ -87,7 +90,7 @@ in
|
||||||
{
|
{
|
||||||
name = "nix";
|
name = "nix";
|
||||||
auto-format = true;
|
auto-format = true;
|
||||||
formatter.command = "nixpkgs-fmt";
|
formatter.command = "nixfmt";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "rust";
|
name = "rust";
|
||||||
|
|
|
@ -8,36 +8,21 @@
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./waybar
|
|
||||||
./helix.nix
|
./helix.nix
|
||||||
./kakoune
|
|
||||||
./vscode
|
./vscode
|
||||||
./fish
|
./fish
|
||||||
./firefox.nix
|
./firefox.nix
|
||||||
./alacritty.nix
|
|
||||||
./git.nix
|
./git.nix
|
||||||
./ssh.nix
|
./ssh.nix
|
||||||
./gpg.nix
|
|
||||||
./rofi.nix
|
|
||||||
./mpv.nix
|
|
||||||
./mangohud.nix
|
./mangohud.nix
|
||||||
./pipewire.nix
|
./pipewire.nix
|
||||||
./mimeapps.nix
|
./mimeapps.nix
|
||||||
./desktop-entries.nix
|
./desktop-entries.nix
|
||||||
./chat.nix
|
./chat.nix
|
||||||
./syncthing.nix
|
./syncthing.nix
|
||||||
./bmenu.nix
|
|
||||||
./fzf.nix
|
./fzf.nix
|
||||||
./ranger
|
|
||||||
./lf
|
|
||||||
./pass.nix
|
|
||||||
./pqiv.nix
|
|
||||||
./zathura.nix
|
|
||||||
./man.nix
|
./man.nix
|
||||||
./mpd.nix
|
|
||||||
./sway
|
|
||||||
./gnome.nix
|
./gnome.nix
|
||||||
./thunar.nix
|
|
||||||
./xdg-dirs.nix
|
./xdg-dirs.nix
|
||||||
inputs.nix-index-database.hmModules.nix-index
|
inputs.nix-index-database.hmModules.nix-index
|
||||||
../settings
|
../settings
|
||||||
|
@ -54,9 +39,8 @@
|
||||||
# Let Home Manager install and manage itself.
|
# Let Home Manager install and manage itself.
|
||||||
programs.home-manager.enable = true;
|
programs.home-manager.enable = true;
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
terminal
|
# home-manager
|
||||||
|
|
||||||
pulse_sink
|
|
||||||
pulseaudio
|
pulseaudio
|
||||||
|
|
||||||
## CLI
|
## CLI
|
||||||
|
@ -69,28 +53,22 @@
|
||||||
p7zip
|
p7zip
|
||||||
tealdeer
|
tealdeer
|
||||||
micro
|
micro
|
||||||
_diffr
|
|
||||||
br # bulk rename
|
|
||||||
|
|
||||||
comma
|
comma
|
||||||
|
|
||||||
# System monitors
|
# System monitors
|
||||||
(btop.override { rocmSupport = true; })
|
(btop.override { cudaSupport = true; })
|
||||||
amdgpu_top
|
amdgpu_top
|
||||||
inxi
|
inxi
|
||||||
dmidecode
|
dmidecode
|
||||||
|
ncdu
|
||||||
|
|
||||||
## text manipulation
|
## text manipulation
|
||||||
sd
|
sd
|
||||||
ripgrep
|
ripgrep
|
||||||
translate-shell
|
translate-shell
|
||||||
lipsum
|
|
||||||
python3Packages.python-slugify
|
|
||||||
par
|
par
|
||||||
|
|
||||||
mate.engrampa
|
|
||||||
# gnome.nautilus
|
|
||||||
|
|
||||||
## games
|
## games
|
||||||
# lutris-unwrapped
|
# lutris-unwrapped
|
||||||
# steam # It's enabled in the system config
|
# steam # It's enabled in the system config
|
||||||
|
@ -108,6 +86,7 @@
|
||||||
## Network
|
## Network
|
||||||
speedtest-cli
|
speedtest-cli
|
||||||
nmap
|
nmap
|
||||||
|
httpie
|
||||||
miniupnpc
|
miniupnpc
|
||||||
deluge
|
deluge
|
||||||
nicotine-plus
|
nicotine-plus
|
||||||
|
@ -119,6 +98,7 @@
|
||||||
# rustup
|
# rustup
|
||||||
|
|
||||||
docker-compose
|
docker-compose
|
||||||
|
gnumake
|
||||||
mariadb
|
mariadb
|
||||||
|
|
||||||
nodePackages.intelephense
|
nodePackages.intelephense
|
||||||
|
@ -128,7 +108,6 @@
|
||||||
clang-tools # c/c++ lsp server
|
clang-tools # c/c++ lsp server
|
||||||
rust-analyzer # rust analyzer
|
rust-analyzer # rust analyzer
|
||||||
|
|
||||||
unstable.blade-formatter
|
|
||||||
nixfmt-rfc-style
|
nixfmt-rfc-style
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue