Compare commits
8 commits
main
...
gnome-the-
Author | SHA1 | Date | |
---|---|---|---|
a899d5b159 | |||
e649117615 | |||
fd3c642a10 | |||
dc6f25fd23 | |||
ccc5a10793 | |||
5e3260a57e | |||
07b509750b | |||
c361efb1eb |
56 changed files with 535 additions and 921 deletions
2
.gitattributes
vendored
2
.gitattributes
vendored
|
@ -1,2 +0,0 @@
|
||||||
flake.lock binary
|
|
||||||
*.gpg binary
|
|
|
@ -5,21 +5,21 @@ keys:
|
||||||
- &phantom-ssh age1m4mqcd2kmuhfr8a22rvh02c68jkakhdfmuqgtusuv0czk4jvna7sz79p3y
|
- &phantom-ssh age1m4mqcd2kmuhfr8a22rvh02c68jkakhdfmuqgtusuv0czk4jvna7sz79p3y
|
||||||
|
|
||||||
creation_rules:
|
creation_rules:
|
||||||
- path_regex: secrets/[^/]+\.(yaml|json|env|ini|gpg)$
|
- path_regex: secrets/[^/]+\.(yaml|json|env|ini)$
|
||||||
key_groups:
|
key_groups:
|
||||||
- pgp:
|
- pgp:
|
||||||
- *lelgenio-gpg
|
- *lelgenio-gpg
|
||||||
age:
|
age:
|
||||||
- *lelgenio-ssh
|
- *lelgenio-ssh
|
||||||
- *monolith-ssh
|
- *monolith-ssh
|
||||||
- path_regex: secrets/monolith/[^/]+\.(yaml|json|env|ini|gpg)$
|
- path_regex: secrets/monolith/[^/]+\.(yaml|json|env|ini)$
|
||||||
key_groups:
|
key_groups:
|
||||||
- pgp:
|
- pgp:
|
||||||
- *lelgenio-gpg
|
- *lelgenio-gpg
|
||||||
age:
|
age:
|
||||||
- *lelgenio-ssh
|
- *lelgenio-ssh
|
||||||
- *monolith-ssh
|
- *monolith-ssh
|
||||||
- path_regex: secrets/phantom/[^/]+\.(yaml|json|env|ini|gpg)$
|
- path_regex: secrets/phantom/[^/]+\.(yaml|json|env|ini)$
|
||||||
key_groups:
|
key_groups:
|
||||||
- pgp:
|
- pgp:
|
||||||
- *lelgenio-gpg
|
- *lelgenio-gpg
|
||||||
|
|
227
flake.lock
generated
227
flake.lock
generated
|
@ -28,11 +28,11 @@
|
||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754433428,
|
"lastModified": 1736955230,
|
||||||
"narHash": "sha256-NA/FT2hVhKDftbHSwVnoRTFhes62+7dxZbxj5Gxvghs=",
|
"narHash": "sha256-uenf8fv2eG5bKM8C/UvFaiJMZ4IpUFaQxk9OH5t/1gA=",
|
||||||
"owner": "ryantm",
|
"owner": "ryantm",
|
||||||
"repo": "agenix",
|
"repo": "agenix",
|
||||||
"rev": "9edb1787864c4f59ae5074ad498b6272b3ec308d",
|
"rev": "e600439ec4c273cf11e06fe4d9d906fb98fa097c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -73,22 +73,6 @@
|
||||||
"url": "https://git.lelgenio.com/lelgenio/catboy-spinner"
|
"url": "https://git.lelgenio.com/lelgenio/catboy-spinner"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"contador-da-viagem": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1742610036,
|
|
||||||
"narHash": "sha256-sY1iheemazmIVJAnoFtut6cN7HX/C5OMDY54UrmCoqE=",
|
|
||||||
"ref": "refs/heads/main",
|
|
||||||
"rev": "efe5ac4a16de7f78824ac89dc987ef635afa5267",
|
|
||||||
"revCount": 4,
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://git.lelgenio.com/lelgenio/contador-da-viagem"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://git.lelgenio.com/lelgenio/contador-da-viagem"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"crane": {
|
"crane": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat",
|
"flake-compat": "flake-compat",
|
||||||
|
@ -163,11 +147,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1744478979,
|
"lastModified": 1700795494,
|
||||||
"narHash": "sha256-dyN+teG9G82G+m+PX/aSAagkC+vUv0SgUw3XkPhQodQ=",
|
"narHash": "sha256-gzGLZSiOhf155FW7262kdHo2YDeugp3VuIFb4/GGng0=",
|
||||||
"owner": "lnl7",
|
"owner": "lnl7",
|
||||||
"repo": "nix-darwin",
|
"repo": "nix-darwin",
|
||||||
"rev": "43975d782b418ebf4969e9ccba82466728c2851b",
|
"rev": "4b9b83d5a92e8c1fbfd8eb27eda375908c11ec4d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -225,11 +209,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1753140376,
|
"lastModified": 1741786315,
|
||||||
"narHash": "sha256-7lrVrE0jSvZHrxEzvnfHFE/Wkk9DDqb+mYCodI5uuB8=",
|
"narHash": "sha256-VT65AE2syHVj6v/DGB496bqBnu1PXrrzwlw07/Zpllc=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "disko",
|
"repo": "disko",
|
||||||
"rev": "545aba02960caa78a31bd9a8709a0ad4b6320a5c",
|
"rev": "0d8c6ad4a43906d14abd5c60e0ffe7b587b213de",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -243,11 +227,11 @@
|
||||||
"nixpkgs": "nixpkgs_3"
|
"nixpkgs": "nixpkgs_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749410315,
|
"lastModified": 1742179690,
|
||||||
"narHash": "sha256-5H8MuMMSq1WnQcvb1FiDNkKP+uyeZ8HX5GRTMfEOyLI=",
|
"narHash": "sha256-s/q3OWRe5m7kwDcAs1BhJEj6aHc5bsBxRnLP7DM77xE=",
|
||||||
"owner": "lelgenio",
|
"owner": "lelgenio",
|
||||||
"repo": "dzgui-nix",
|
"repo": "dzgui-nix",
|
||||||
"rev": "49adbb1edfb3c25b0cd8256d35673394386065e7",
|
"rev": "a6d68720c932ac26d549b24f17c776bd2aeb73b4",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -297,11 +281,11 @@
|
||||||
"flake-compat_2": {
|
"flake-compat_2": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747046372,
|
"lastModified": 1696426674,
|
||||||
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||||
"owner": "edolstra",
|
"owner": "edolstra",
|
||||||
"repo": "flake-compat",
|
"repo": "flake-compat",
|
||||||
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -433,54 +417,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"git-hooks": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-compat": [
|
|
||||||
"nixos-mailserver",
|
|
||||||
"flake-compat"
|
|
||||||
],
|
|
||||||
"gitignore": "gitignore",
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixos-mailserver",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1742649964,
|
|
||||||
"narHash": "sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco=",
|
|
||||||
"owner": "cachix",
|
|
||||||
"repo": "git-hooks.nix",
|
|
||||||
"rev": "dcf5072734cb576d2b0c59b2ac44f5050b5eac82",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "cachix",
|
|
||||||
"repo": "git-hooks.nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"gitignore": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixos-mailserver",
|
|
||||||
"git-hooks",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1709087332,
|
|
||||||
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "gitignore.nix",
|
|
||||||
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "gitignore.nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"hello-fonts": {
|
"hello-fonts": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
|
@ -504,40 +440,20 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1753592768,
|
"lastModified": 1742234739,
|
||||||
"narHash": "sha256-oV695RvbAE4+R9pcsT9shmp6zE/+IZe6evHWX63f2Qg=",
|
"narHash": "sha256-zFL6zsf/5OztR1NSNQF33dvS1fL/BzVUjabZq4qrtY4=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "fc3add429f21450359369af74c2375cb34a2d204",
|
"rev": "f6af7280a3390e65c2ad8fd059cdc303426cbd59",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"ref": "release-25.05",
|
"ref": "release-24.11",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"lsfg-vk-flake": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1753938292,
|
|
||||||
"narHash": "sha256-akeUWgvIIi163s/femzvTOuqqOiOB/8US5ioHsNqhYY=",
|
|
||||||
"owner": "pabloaul",
|
|
||||||
"repo": "lsfg-vk-flake",
|
|
||||||
"rev": "081cd66b1369188777ea146a759d35e99ea6b031",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "pabloaul",
|
|
||||||
"repo": "lsfg-vk-flake",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"made-you-look": {
|
"made-you-look": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"crane": "crane_2",
|
"crane": "crane_2",
|
||||||
|
@ -565,11 +481,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754195341,
|
"lastModified": 1742174123,
|
||||||
"narHash": "sha256-YL71IEf2OugH3gmAsxQox6BJI0KOcHKtW2QqT/+s2SA=",
|
"narHash": "sha256-pDNzMoR6m1ZSJToZQ6XDTLVSdzIzmFl1b8Pc3f7iV6Y=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "nix-index-database",
|
"repo": "nix-index-database",
|
||||||
"rev": "b7fcd4e26d67fca48e77de9b0d0f954b18ae9562",
|
"rev": "2cfb4e1ca32f59dd2811d7a6dd5d4d1225f0955c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -582,23 +498,22 @@
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"blobs": "blobs",
|
"blobs": "blobs",
|
||||||
"flake-compat": "flake-compat_2",
|
"flake-compat": "flake-compat_2",
|
||||||
"git-hooks": "git-hooks",
|
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"nixpkgs-25_05": "nixpkgs-25_05"
|
"nixpkgs-24_11": "nixpkgs-24_11"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747965231,
|
"lastModified": 1742413977,
|
||||||
"narHash": "sha256-BW3ktviEhfCN/z3+kEyzpDKAI8qFTwO7+S0NVA0C90o=",
|
"narHash": "sha256-NkhM9GVu3HL+MiXtGD0TjuPCQ4GFVJPBZ8KyI2cFDGU=",
|
||||||
"owner": "simple-nixos-mailserver",
|
"owner": "simple-nixos-mailserver",
|
||||||
"repo": "nixos-mailserver",
|
"repo": "nixos-mailserver",
|
||||||
"rev": "53007af63fade28853408370c4c600a63dd97f41",
|
"rev": "b4fbffe79c00f19be94b86b4144ff67541613659",
|
||||||
"type": "gitlab"
|
"type": "gitlab"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "simple-nixos-mailserver",
|
"owner": "simple-nixos-mailserver",
|
||||||
"ref": "nixos-25.05",
|
"ref": "master",
|
||||||
"repo": "nixos-mailserver",
|
"repo": "nixos-mailserver",
|
||||||
"type": "gitlab"
|
"type": "gitlab"
|
||||||
}
|
}
|
||||||
|
@ -619,45 +534,28 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-25_05": {
|
"nixpkgs-24_11": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747610100,
|
"lastModified": 1734083684,
|
||||||
"narHash": "sha256-rpR5ZPMkWzcnCcYYo3lScqfuzEw5Uyfh+R0EKZfroAc=",
|
"narHash": "sha256-5fNndbndxSx5d+C/D0p/VF32xDiJCJzyOqorOYW4JEo=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "ca49c4304acf0973078db0a9d200fd2bae75676d",
|
"rev": "314e12ba369ccdb9b352a4db26ff419f7c49fa84",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"id": "nixpkgs",
|
||||||
"ref": "nixos-25.05",
|
"ref": "nixos-24.11",
|
||||||
"repo": "nixpkgs",
|
"type": "indirect"
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs-pre-broken-waybar": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1750069205,
|
|
||||||
"narHash": "sha256-ALOBI3nTUFOX0A2bpFZqtsEZfH82icS9r9L/y3XA+2s=",
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "1c1c9b3f5ec0421eaa0f22746295466ee6a8d48f",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "1c1c9b3f5ec0421eaa0f22746295466ee6a8d48f",
|
|
||||||
"type": "github"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-unstable": {
|
"nixpkgs-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754214453,
|
"lastModified": 1742422364,
|
||||||
"narHash": "sha256-Q/I2xJn/j1wpkGhWkQnm20nShYnG7TI99foDBpXm1SY=",
|
"narHash": "sha256-mNqIplmEohk5jRkqYqG19GA8MbQ/D4gQSK0Mu4LvfRQ=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "5b09dc45f24cf32316283e62aec81ffee3c3e376",
|
"rev": "a84ebe20c6bc2ecbcfb000a50776219f48d134cc",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -714,26 +612,26 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_5": {
|
"nixpkgs_5": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754292888,
|
"lastModified": 1742388435,
|
||||||
"narHash": "sha256-1ziydHSiDuSnaiPzCQh1mRFBsM2d2yRX9I+5OPGEmIE=",
|
"narHash": "sha256-GheQGRNYAhHsvPxWVOhAmg9lZKkis22UPbEHlmZMthg=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "ce01daebf8489ba97bd1609d185ea276efdeb121",
|
"rev": "b75693fb46bfaf09e662d09ec076c5a162efa9f6",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"id": "nixpkgs",
|
"id": "nixpkgs",
|
||||||
"ref": "nixos-25.05",
|
"ref": "nixos-24.11",
|
||||||
"type": "indirect"
|
"type": "indirect"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_6": {
|
"nixpkgs_6": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747958103,
|
"lastModified": 1735554305,
|
||||||
"narHash": "sha256-qmmFCrfBwSHoWw7cVK4Aj+fns+c54EBP8cGqp/yK410=",
|
"narHash": "sha256-zExSA1i/b+1NMRhGGLtNfFGXgLtgo+dcuzHzaWA6w3Q=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "fe51d34885f7b5e3e7b59572796e1bcb427eccb1",
|
"rev": "0e82ab234249d8eee3e8c91437802b32c74bb3fd",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -794,11 +692,11 @@
|
||||||
"ranger-icons": {
|
"ranger-icons": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749128401,
|
"lastModified": 1736375293,
|
||||||
"narHash": "sha256-qvWqKVS4C5OO6bgETBlVDwcv4eamGlCUltjsBU3gAbA=",
|
"narHash": "sha256-ck53eG+mGIQ706sUnEHbJ6vY1/LYnRcpq94JXzwnGTQ=",
|
||||||
"owner": "alexanderjeurissen",
|
"owner": "alexanderjeurissen",
|
||||||
"repo": "ranger_devicons",
|
"repo": "ranger_devicons",
|
||||||
"rev": "1bcaff0366a9d345313dc5af14002cfdcddabb82",
|
"rev": "f227f212e14996fbb366f945ec3ecaf5dc5f44b0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -811,19 +709,16 @@
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"agenix": "agenix",
|
"agenix": "agenix",
|
||||||
"catboy-spinner": "catboy-spinner",
|
"catboy-spinner": "catboy-spinner",
|
||||||
"contador-da-viagem": "contador-da-viagem",
|
|
||||||
"demoji": "demoji",
|
"demoji": "demoji",
|
||||||
"dhist": "dhist",
|
"dhist": "dhist",
|
||||||
"disko": "disko",
|
"disko": "disko",
|
||||||
"dzgui-nix": "dzgui-nix",
|
"dzgui-nix": "dzgui-nix",
|
||||||
"hello-fonts": "hello-fonts",
|
"hello-fonts": "hello-fonts",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"lsfg-vk-flake": "lsfg-vk-flake",
|
|
||||||
"made-you-look": "made-you-look",
|
"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_5",
|
||||||
"nixpkgs-pre-broken-waybar": "nixpkgs-pre-broken-waybar",
|
|
||||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||||
"plymouth-themes": "plymouth-themes",
|
"plymouth-themes": "plymouth-themes",
|
||||||
"ranger-icons": "ranger-icons",
|
"ranger-icons": "ranger-icons",
|
||||||
|
@ -888,11 +783,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754328224,
|
"lastModified": 1742406979,
|
||||||
"narHash": "sha256-glPK8DF329/dXtosV7YSzRlF4n35WDjaVwdOMEoEXHA=",
|
"narHash": "sha256-r0aq70/3bmfjTP+JZs4+XV5SgmCtk1BLU4CQPWGtA7o=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "sops-nix",
|
"repo": "sops-nix",
|
||||||
"rev": "49021900e69812ba7ddb9e40f9170218a7eca9f4",
|
"rev": "1770be8ad89e41f1ed5a60ce628dd10877cb3609",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -1020,11 +915,11 @@
|
||||||
"rev": "6a68f2cda0aa2fbb399a4c43b445e8c1a2df0634",
|
"rev": "6a68f2cda0aa2fbb399a4c43b445e8c1a2df0634",
|
||||||
"revCount": 4,
|
"revCount": 4,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://git.lelgenio.com/lelgenio/tlauncher-nix"
|
"url": "https://git.lelgenio.xyz/lelgenio/tlauncher-nix"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://git.lelgenio.com/lelgenio/tlauncher-nix"
|
"url": "https://git.lelgenio.xyz/lelgenio/tlauncher-nix"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tomater": {
|
"tomater": {
|
||||||
|
@ -1048,11 +943,11 @@
|
||||||
"nixpkgs": "nixpkgs_6"
|
"nixpkgs": "nixpkgs_6"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754061284,
|
"lastModified": 1742370146,
|
||||||
"narHash": "sha256-ONcNxdSiPyJ9qavMPJYAXDNBzYobHRxw0WbT38lKbwU=",
|
"narHash": "sha256-XRE8hL4vKIQyVMDXykFh4ceo3KSpuJF3ts8GKwh5bIU=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "treefmt-nix",
|
"repo": "treefmt-nix",
|
||||||
"rev": "58bd4da459f0a39e506847109a2a5cfceb837796",
|
"rev": "adc195eef5da3606891cedf80c0d9ce2d3190808",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -1063,11 +958,11 @@
|
||||||
},
|
},
|
||||||
"vpsadminos": {
|
"vpsadminos": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754243274,
|
"lastModified": 1742222981,
|
||||||
"narHash": "sha256-gVTM1eIYzHx/Z/2WVhhf3Eov3JuARF5fuIrWjvc73wo=",
|
"narHash": "sha256-EDhfWimpzUnpH5h/FQ3oYw/Kaq4Cx1E5nRofDQyI3aE=",
|
||||||
"owner": "vpsfreecz",
|
"owner": "vpsfreecz",
|
||||||
"repo": "vpsadminos",
|
"repo": "vpsadminos",
|
||||||
"rev": "483e04c5556e7a42a0dcd176caab7ad450244515",
|
"rev": "14da38b9a49bf156e06f20ed02533a0549e6d487",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -1102,11 +997,11 @@
|
||||||
"nixpkgs": "nixpkgs_8"
|
"nixpkgs": "nixpkgs_8"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1752343846,
|
"lastModified": 1715216838,
|
||||||
"narHash": "sha256-tm2iycSAzbomHfOqmpQ21ozmS84OXfKIu/ZJant0Vfk=",
|
"narHash": "sha256-q5key9BWJjJQqECrhflso9ZTzULBeScvromo0S4fjqE=",
|
||||||
"owner": "lelgenio",
|
"owner": "lelgenio",
|
||||||
"repo": "wl-crosshair",
|
"repo": "wl-crosshair",
|
||||||
"rev": "940acb43e753cfbe0afd0478370778e1bf2d3d55",
|
"rev": "39b716cf410a1b45006f50f32f8d63de5c43aedb",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
36
flake.nix
36
flake.nix
|
@ -1,13 +1,10 @@
|
||||||
{
|
{
|
||||||
description = "My system config";
|
description = "My system config";
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "nixpkgs/nixos-25.05";
|
nixpkgs.url = "nixpkgs/nixos-24.11";
|
||||||
nixpkgs-unstable.url = "nixpkgs/nixos-unstable";
|
nixpkgs-unstable.url = "nixpkgs/nixos-unstable";
|
||||||
|
|
||||||
# TODO: remove after waybar >0.13.0
|
home-manager.url = "github:nix-community/home-manager/release-24.11";
|
||||||
nixpkgs-pre-broken-waybar.url = "github:nixos/nixpkgs/1c1c9b3f5ec0421eaa0f22746295466ee6a8d48f";
|
|
||||||
|
|
||||||
home-manager.url = "github:nix-community/home-manager/release-25.05";
|
|
||||||
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
vpsadminos.url = "github:vpsfreecz/vpsadminos";
|
vpsadminos.url = "github:vpsfreecz/vpsadminos";
|
||||||
|
@ -35,19 +32,14 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
nixos-mailserver = {
|
nixos-mailserver = {
|
||||||
url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-25.05";
|
url = "gitlab:simple-nixos-mailserver/nixos-mailserver/master";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
dzgui-nix.url = "github:lelgenio/dzgui-nix";
|
dzgui-nix.url = "github:lelgenio/dzgui-nix";
|
||||||
|
|
||||||
tlauncher = {
|
tlauncher = {
|
||||||
url = "git+https://git.lelgenio.com/lelgenio/tlauncher-nix";
|
url = "git+https://git.lelgenio.xyz/lelgenio/tlauncher-nix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
|
|
||||||
lsfg-vk-flake = {
|
|
||||||
url = "github:pabloaul/lsfg-vk-flake";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -64,10 +56,6 @@
|
||||||
wl-crosshair.url = "github:lelgenio/wl-crosshair";
|
wl-crosshair.url = "github:lelgenio/wl-crosshair";
|
||||||
warthunder-leak-counter.url = "git+https://git.lelgenio.com/lelgenio/warthunder-leak-counter";
|
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";
|
made-you-look.url = "git+https://git.lelgenio.com/lelgenio/made-you-look";
|
||||||
contador-da-viagem = {
|
|
||||||
url = "git+https://git.lelgenio.com/lelgenio/contador-da-viagem";
|
|
||||||
flake = false;
|
|
||||||
};
|
|
||||||
catboy-spinner = {
|
catboy-spinner = {
|
||||||
url = "git+https://git.lelgenio.com/lelgenio/catboy-spinner";
|
url = "git+https://git.lelgenio.com/lelgenio/catboy-spinner";
|
||||||
flake = false;
|
flake = false;
|
||||||
|
@ -108,7 +96,8 @@
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
inherit inputs;
|
inherit inputs;
|
||||||
};
|
};
|
||||||
common_modules = [
|
common_modules =
|
||||||
|
[
|
||||||
{ nixpkgs.pkgs = pkgs; }
|
{ nixpkgs.pkgs = pkgs; }
|
||||||
./system/configuration.nix
|
./system/configuration.nix
|
||||||
./system/secrets.nix
|
./system/secrets.nix
|
||||||
|
@ -129,7 +118,6 @@
|
||||||
my = config.my;
|
my = config.my;
|
||||||
imports = [
|
imports = [
|
||||||
./user/home.nix
|
./user/home.nix
|
||||||
inputs.sops-nix.homeManagerModules.sops
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
home-manager.backupFileExtension = "bkp";
|
home-manager.backupFileExtension = "bkp";
|
||||||
|
@ -158,23 +146,21 @@
|
||||||
modules = [
|
modules = [
|
||||||
./hosts/monolith
|
./hosts/monolith
|
||||||
./system/monolith-gitlab-runner.nix
|
./system/monolith-gitlab-runner.nix
|
||||||
|
./system/monolith-bitbucket-runner.nix
|
||||||
./system/monolith-forgejo-runner.nix
|
./system/monolith-forgejo-runner.nix
|
||||||
./system/nix-serve.nix
|
./system/nix-serve.nix
|
||||||
]
|
] ++ common_modules;
|
||||||
++ common_modules;
|
|
||||||
};
|
};
|
||||||
double-rainbow = lib.nixosSystem {
|
double-rainbow = lib.nixosSystem {
|
||||||
inherit system specialArgs;
|
inherit system specialArgs;
|
||||||
modules = [
|
modules = [
|
||||||
./hosts/double-rainbow.nix
|
./hosts/double-rainbow.nix
|
||||||
]
|
] ++ common_modules;
|
||||||
++ common_modules;
|
|
||||||
};
|
};
|
||||||
pixie = lib.nixosSystem {
|
pixie = lib.nixosSystem {
|
||||||
inherit system specialArgs;
|
inherit system specialArgs;
|
||||||
modules = [
|
modules =
|
||||||
./hosts/pixie.nix
|
[ ./hosts/pixie.nix ]
|
||||||
]
|
|
||||||
++ common_modules
|
++ common_modules
|
||||||
++ [
|
++ [
|
||||||
{
|
{
|
||||||
|
|
|
@ -27,13 +27,6 @@ in
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
hardware.amdgpu = {
|
|
||||||
overdrive = {
|
|
||||||
enable = true;
|
|
||||||
ppfeaturemask = "0xffffffff";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware.graphics.enable32Bit = true;
|
hardware.graphics.enable32Bit = true;
|
||||||
|
|
||||||
hardware.graphics.extraPackages = with pkgs; [
|
hardware.graphics.extraPackages = with pkgs; [
|
||||||
|
|
|
@ -94,8 +94,7 @@ in
|
||||||
options = [
|
options = [
|
||||||
"subvol=@games"
|
"subvol=@games"
|
||||||
"nofail"
|
"nofail"
|
||||||
]
|
] ++ btrfs_options;
|
||||||
++ btrfs_options;
|
|
||||||
};
|
};
|
||||||
fileSystems."/home/lelgenio/Downloads/Torrents" = {
|
fileSystems."/home/lelgenio/Downloads/Torrents" = {
|
||||||
device = "/dev/disk/by-label/BTRFS_DATA";
|
device = "/dev/disk/by-label/BTRFS_DATA";
|
||||||
|
@ -103,8 +102,7 @@ in
|
||||||
options = [
|
options = [
|
||||||
"subvol=@torrents"
|
"subvol=@torrents"
|
||||||
"nofail"
|
"nofail"
|
||||||
]
|
] ++ btrfs_options;
|
||||||
++ btrfs_options;
|
|
||||||
};
|
};
|
||||||
fileSystems."/home/lelgenio/Música" = {
|
fileSystems."/home/lelgenio/Música" = {
|
||||||
device = "/dev/disk/by-label/BTRFS_DATA";
|
device = "/dev/disk/by-label/BTRFS_DATA";
|
||||||
|
@ -112,8 +110,7 @@ in
|
||||||
options = [
|
options = [
|
||||||
"subvol=@music"
|
"subvol=@music"
|
||||||
"nofail"
|
"nofail"
|
||||||
]
|
] ++ btrfs_options;
|
||||||
++ btrfs_options;
|
|
||||||
};
|
};
|
||||||
fileSystems."/home/lelgenio/.local/mount/data" = {
|
fileSystems."/home/lelgenio/.local/mount/data" = {
|
||||||
device = "/dev/disk/by-label/BTRFS_DATA";
|
device = "/dev/disk/by-label/BTRFS_DATA";
|
||||||
|
@ -121,8 +118,7 @@ in
|
||||||
options = [
|
options = [
|
||||||
"subvol=@data"
|
"subvol=@data"
|
||||||
"nofail"
|
"nofail"
|
||||||
]
|
] ++ btrfs_options;
|
||||||
++ btrfs_options;
|
|
||||||
};
|
};
|
||||||
fileSystems."/home/lelgenio/.local/mount/old" = {
|
fileSystems."/home/lelgenio/.local/mount/old" = {
|
||||||
device = "/dev/disk/by-label/BTRFS_ROOT";
|
device = "/dev/disk/by-label/BTRFS_ROOT";
|
||||||
|
@ -148,7 +144,7 @@ in
|
||||||
ACTION=="add" SUBSYSTEM=="usb" ATTR{idVendor}=="046d" ATTR{idProduct}=="c547" ATTR{power/wakeup}="disabled"
|
ACTION=="add" SUBSYSTEM=="usb" ATTR{idVendor}=="046d" ATTR{idProduct}=="c547" ATTR{power/wakeup}="disabled"
|
||||||
# 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}="kyber"
|
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"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
boot.tmp = {
|
boot.tmp = {
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
{
|
{
|
||||||
services.factorio = {
|
services.factorio = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.my-factorio-headless;
|
package = pkgs.factorio-headless; # I override this in ./pkgs
|
||||||
public = true;
|
public = true;
|
||||||
lan = true;
|
lan = true;
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
|
|
|
@ -53,7 +53,7 @@
|
||||||
# Set your time zone.
|
# Set your time zone.
|
||||||
time.timeZone = "America/Sao_Paulo";
|
time.timeZone = "America/Sao_Paulo";
|
||||||
# Select internationalisation properties.
|
# Select internationalisation properties.
|
||||||
i18n.defaultLocale = "pt_BR.UTF-8";
|
i18n.defaultLocale = "pt_BR.utf8";
|
||||||
|
|
||||||
boot.kernel.sysctl."fs.inotify.max_user_watches" = 1048576;
|
boot.kernel.sysctl."fs.inotify.max_user_watches" = 1048576;
|
||||||
|
|
||||||
|
|
|
@ -36,8 +36,6 @@
|
||||||
hashedPassword = "$2b$05$DcA9xMdvHqqQMZw2.zybI.vfKsQAJtaQ/JB.t9AHu6psstWq97m2C";
|
hashedPassword = "$2b$05$DcA9xMdvHqqQMZw2.zybI.vfKsQAJtaQ/JB.t9AHu6psstWq97m2C";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
enableManageSieve = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Prefer ipv4 and use main ipv6 to avoid reverse DNS issues
|
# Prefer ipv4 and use main ipv6 to avoid reverse DNS issues
|
||||||
|
@ -54,7 +52,7 @@
|
||||||
$config['smtp_host'] = "tls://${config.mailserver.fqdn}:587";
|
$config['smtp_host'] = "tls://${config.mailserver.fqdn}:587";
|
||||||
$config['smtp_user'] = "%u";
|
$config['smtp_user'] = "%u";
|
||||||
$config['smtp_pass'] = "%p";
|
$config['smtp_pass'] = "%p";
|
||||||
$config['plugins'] = [ "carddav", "archive", "managesieve" ];
|
$config['plugins'] = [ "carddav", "archive" ];
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,9 +43,4 @@
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
root = inputs.hello-fonts;
|
root = inputs.hello-fonts;
|
||||||
};
|
};
|
||||||
services.nginx.virtualHosts."contador-da-viagem.lelgenio.com" = {
|
|
||||||
enableACME = true;
|
|
||||||
forceSSL = true;
|
|
||||||
root = inputs.contador-da-viagem;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
inputs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
|
@ -10,7 +11,6 @@
|
||||||
hostName = "cloud.lelgenio.com";
|
hostName = "cloud.lelgenio.com";
|
||||||
https = true;
|
https = true;
|
||||||
config = {
|
config = {
|
||||||
dbtype = "sqlite"; # TODO: move to single postgres db
|
|
||||||
adminpassFile = config.age.secrets.phantom-nextcloud.path;
|
adminpassFile = config.age.secrets.phantom-nextcloud.path;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -28,6 +28,14 @@ rec {
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
nerdfonts_fira_hack = (
|
||||||
|
final.nerdfonts.override {
|
||||||
|
fonts = [
|
||||||
|
"FiraCode"
|
||||||
|
"Hack"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -35,8 +43,6 @@ rec {
|
||||||
final: prev:
|
final: prev:
|
||||||
packages
|
packages
|
||||||
// {
|
// {
|
||||||
lsfg-vk = inputs.lsfg-vk-flake.packages.${prev.system}.lsfg-vk;
|
|
||||||
lsfg-vk-ui = inputs.lsfg-vk-flake.packages.${prev.system}.lsfg-vk-ui;
|
|
||||||
dhist = inputs.dhist.packages.${prev.system}.dhist;
|
dhist = inputs.dhist.packages.${prev.system}.dhist;
|
||||||
demoji = inputs.demoji.packages.${prev.system}.default;
|
demoji = inputs.demoji.packages.${prev.system}.default;
|
||||||
tlauncher = inputs.tlauncher.packages.${prev.system}.tlauncher;
|
tlauncher = inputs.tlauncher.packages.${prev.system}.tlauncher;
|
||||||
|
@ -46,10 +52,6 @@ rec {
|
||||||
|
|
||||||
patches = (
|
patches = (
|
||||||
final: prev: {
|
final: prev: {
|
||||||
waybar =
|
|
||||||
assert prev.waybar.version == "0.13.0";
|
|
||||||
inputs.nixpkgs-pre-broken-waybar.legacyPackages.${prev.system}.waybar;
|
|
||||||
|
|
||||||
mySway = prev.sway.override {
|
mySway = prev.sway.override {
|
||||||
withBaseWrapper = true;
|
withBaseWrapper = true;
|
||||||
withGtkWrapper = true;
|
withGtkWrapper = true;
|
||||||
|
|
|
@ -1,51 +0,0 @@
|
||||||
{
|
|
||||||
stdenv,
|
|
||||||
lib,
|
|
||||||
fetchFromGitHub,
|
|
||||||
|
|
||||||
pkgconf,
|
|
||||||
pkg-config,
|
|
||||||
wayland-scanner,
|
|
||||||
|
|
||||||
systemd,
|
|
||||||
libbsd,
|
|
||||||
wayland,
|
|
||||||
wayland-protocols,
|
|
||||||
}:
|
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
|
||||||
pname = "caffeinated";
|
|
||||||
version = "2022-12-08";
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "electrickite";
|
|
||||||
repo = "caffeinated";
|
|
||||||
rev = "5a8eff054bdce225a19cf3ab785dc1bbc9bd3265";
|
|
||||||
hash = "sha256-X1w/YWljcwb5ZH8Nt92CDhPU/yqBLH3lBS7yVJUeyzY=";
|
|
||||||
};
|
|
||||||
|
|
||||||
nativeBuildInputs = [
|
|
||||||
pkgconf
|
|
||||||
pkg-config
|
|
||||||
wayland-scanner
|
|
||||||
];
|
|
||||||
|
|
||||||
buildInputs = [
|
|
||||||
systemd
|
|
||||||
libbsd
|
|
||||||
wayland
|
|
||||||
wayland-protocols
|
|
||||||
];
|
|
||||||
|
|
||||||
makeFlags = [ "WAYLAND=1" ];
|
|
||||||
|
|
||||||
installFlags = [ "PREFIX=$(out)" ];
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
description = "Utility to prevent the system from entering an idle state";
|
|
||||||
homepage = "https://github.com/electrickite/caffeinated";
|
|
||||||
license = lib.licenses.mit;
|
|
||||||
platforms = lib.platforms.linux;
|
|
||||||
maintainers = with lib.maintainers; [ lelgenio ];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -3,13 +3,12 @@
|
||||||
|
|
||||||
{ pkgs, inputs }:
|
{ pkgs, inputs }:
|
||||||
rec {
|
rec {
|
||||||
caffeinated = pkgs.callPackage ./caffeinated { };
|
|
||||||
cargo-checkmate = pkgs.callPackage ./cargo-checkmate.nix { };
|
cargo-checkmate = pkgs.callPackage ./cargo-checkmate.nix { };
|
||||||
lipsum = pkgs.callPackage ./lipsum.nix { };
|
lipsum = pkgs.callPackage ./lipsum.nix { };
|
||||||
emmet-cli = pkgs.callPackage ./emmet-cli.nix { };
|
emmet-cli = pkgs.callPackage ./emmet-cli.nix { };
|
||||||
material-wifi-icons = pkgs.callPackage ./material-wifi-icons.nix { };
|
material-wifi-icons = pkgs.callPackage ./material-wifi-icons.nix { };
|
||||||
gnome-pass-search-provider = pkgs.callPackage ./gnome-pass-search-provider.nix { };
|
gnome-pass-search-provider = pkgs.callPackage ./gnome-pass-search-provider.nix { };
|
||||||
my-factorio-headless = pkgs.callPackage ./factorio-headless {
|
factorio-headless = pkgs.callPackage ./factorio-headless {
|
||||||
inherit (pkgs.unstable) factorio-headless;
|
inherit (pkgs.unstable) factorio-headless;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
{ factorio-headless, pkgs }:
|
{ factorio-headless, pkgs }:
|
||||||
|
|
||||||
factorio-headless.overrideAttrs (_: rec {
|
factorio-headless.overrideAttrs (_: rec {
|
||||||
version = "2.0.60";
|
version = "2.0.39";
|
||||||
src = pkgs.fetchurl {
|
src = pkgs.fetchurl {
|
||||||
name = "factorio_headless_x64-${version}.tar.xz";
|
name = "factorio_headless_x64-${version}.tar.xz";
|
||||||
url = "https://www.factorio.com/get-download/${version}/headless/linux64";
|
url = "https://www.factorio.com/get-download/${version}/headless/linux64";
|
||||||
hash = "sha256-abW+GoZ/2ZUk+ZFN/ukAoaw4bPTnTEpjdowF3E0rKws=";
|
hash = "sha256-D4o9DkN5e1/02LhdfDNLCVo/B9mqf4Cx6H+Uk5qT3zQ=";
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
|
11
scripts/_sway_idle_toggle
Executable file
11
scripts/_sway_idle_toggle
Executable file
|
@ -0,0 +1,11 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
swayidlectl() {
|
||||||
|
systemctl --user $1 swayidle.service
|
||||||
|
}
|
||||||
|
|
||||||
|
if swayidlectl status > /dev/null; then
|
||||||
|
swayidlectl stop
|
||||||
|
else
|
||||||
|
swayidlectl start
|
||||||
|
fi
|
|
@ -2,144 +2,85 @@
|
||||||
|
|
||||||
set -e
|
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() {
|
bail() {
|
||||||
echo "Error: $@" >&2
|
echo "Error: $@" >&2
|
||||||
echo "Exiting..." >&2
|
echo "Exiting..." >&2
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
map_range() {
|
if ! [ -d "$HWMON" ]; then
|
||||||
VALUE="$1"
|
bail "Invalid HWMON"
|
||||||
MIN_INPUT="$2"
|
|
||||||
MAX_INPUT="$3"
|
|
||||||
INPUT_RANGE=$(( $MAX_INPUT - $MIN_INPUT ))
|
|
||||||
MIN_OUTPUT="$4"
|
|
||||||
MAX_OUTPUT="$5"
|
|
||||||
OUTPUT_RANGE=$(( $MAX_OUTPUT - $MIN_OUTPUT ))
|
|
||||||
|
|
||||||
echo $(( ($VALUE - $MIN_INPUT) * $OUTPUT_RANGE / $INPUT_RANGE + $MIN_OUTPUT ))
|
|
||||||
}
|
|
||||||
|
|
||||||
clamp() {
|
|
||||||
VALUE="$1"
|
|
||||||
|
|
||||||
MIN="$2"
|
|
||||||
MAX="$3"
|
|
||||||
|
|
||||||
VALUE=$VALUE
|
|
||||||
if [ "$VALUE" -gt $MAX ]; then
|
|
||||||
VALUE=$MAX
|
|
||||||
elif [ "$VALUE" -lt $MIN ]; then
|
|
||||||
VALUE=$MIN
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo $VALUE
|
|
||||||
}
|
|
||||||
|
|
||||||
cleanup() {
|
|
||||||
echo "Setting controll to auto" >&2
|
|
||||||
if test -f "$HWMON/pwm1_enable"; then
|
|
||||||
echo 2 > "$HWMON/pwm1_enable"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
trap cleanup EXIT INT
|
|
||||||
|
|
||||||
usage() {
|
|
||||||
echo "Usage: $0 <device> <min-temp> <max-temp> <min-fan> <max-fan>" >&2
|
|
||||||
echo "Example: $0 /sys/class/drm/card1/device 60 100 10 80" >&2
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
parse_cli() {
|
|
||||||
if test -n "$AMDGPU_FAN_CRONTROL_DEBUG"; then
|
|
||||||
echo parse_cli "$@" >&2
|
|
||||||
fi
|
|
||||||
|
|
||||||
DEVICE="$1" # eg: /sys/class/drm/card1/device
|
|
||||||
HWMON=$(echo "$DEVICE"/hwmon/hwmon*)
|
|
||||||
TEMP_INPUT="$HWMON/temp2_input"
|
TEMP_INPUT="$HWMON/temp2_input"
|
||||||
|
|
||||||
|
if ! [ -f $TEMP_INPUT ]; then
|
||||||
|
bail "Invalid TEMP_INPUT"
|
||||||
|
fi
|
||||||
|
|
||||||
TEMP_MIN="$2"
|
TEMP_MIN="$2"
|
||||||
TEMP_MAX="$3"
|
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_PCT="$4"
|
PWM_MIN_PCT="$4"
|
||||||
PWM_MAX_PCT="$5"
|
PWM_MAX_PCT="$5"
|
||||||
}
|
|
||||||
|
|
||||||
validate_variables() {
|
if [ -z "$PWM_MIN_PCT" ];then
|
||||||
if ! [ -d "$HWMON" ]; then
|
bail "No minimum fan speed % not provided"
|
||||||
bail "Invalid drm-device: '$HWMON' is not a directory"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! [ -f "$TEMP_INPUT" ]; then
|
if [ -z "$PWM_MAX_PCT" ];then
|
||||||
bail "Error: Could not find hotspot temperature at '$TEMP_INPUT'"
|
bail "No maximum fan speed % not provided"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -z "$TEMP_MIN" -o -z "$TEMP_MAX" -o -z "$PWM_MIN_PCT" -o -z "$PWM_MAX_PCT" ];then
|
PWM_MIN="$(( $PWM_MIN_PCT * 255 / 100))"
|
||||||
usage
|
PWM_MAX="$(( $PWM_MAX_PCT * 255 / 100))"
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
setup() {
|
|
||||||
PWM_MIN=$(map_range $PWM_MIN_PCT 0 100 0 255)
|
|
||||||
PWM_MAX=$(map_range $PWM_MAX_PCT 0 100 0 255)
|
|
||||||
|
|
||||||
echo "Running..." >&2
|
echo "Running..." >&2
|
||||||
|
|
||||||
if test -n "$AMDGPU_FAN_CRONTROL_DEBUG"; then
|
echo "TEMP_MIN=$TEMP_MIN°C"
|
||||||
echo "TEMP_MIN=$TEMP_MIN°C" >&2
|
echo "TEMP_MAX=$TEMP_MAX°C"
|
||||||
echo "TEMP_MAX=$TEMP_MAX°C" >&2
|
echo "FAN_MIN=$PWM_MIN_PCT%"
|
||||||
echo "FAN_MIN=$PWM_MIN_PCT% (PWM=$PWM_MIN)" >&2
|
echo "FAN_MAX=$PWM_MAX_PCT%"
|
||||||
echo "FAN_MAX=$PWM_MAX_PCT% (PWM=$PWM_MAX)" >&2
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Set fan control mode to manual, this will be reverted in the cleanup trap
|
|
||||||
echo 1 > "$HWMON/pwm1_enable"
|
echo 1 > "$HWMON/pwm1_enable"
|
||||||
|
|
||||||
PREV_PWM=0
|
PREV=0
|
||||||
}
|
|
||||||
|
|
||||||
main_loop() {
|
while true; do
|
||||||
TEMPERATURE_RAW=$(cat "$TEMP_INPUT")
|
TEMPERATURE_RAW=$(cat "$TEMP_INPUT")
|
||||||
TEMPERATURE="$(( $TEMPERATURE_RAW / 1000 ))" # 60_000 = 60°C
|
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) ))
|
||||||
|
|
||||||
# Calculate the fan speed we would want to reach given infinite time
|
if [ "$PWM" -gt $PWM_MAX ]; then
|
||||||
TARGET_PWM=$(map_range $TEMPERATURE $TEMP_MIN $TEMP_MAX $PWM_MIN $PWM_MAX)
|
PWM=$PWM_MAX
|
||||||
|
elif [ "$PWM" -lt $PWM_MIN ]; then
|
||||||
# Calculate an appropriate amount to "walk" in the direction of target fan speed
|
PWM=$PWM_MIN
|
||||||
DIFFERENCE=$(( $TARGET_PWM - $PREV_PWM ))
|
|
||||||
ADJUSTMENT=$(( $DIFFERENCE * 20 / 100 ))
|
|
||||||
|
|
||||||
NEXT_PWM=$(( $PREV_PWM + $ADJUSTMENT ))
|
|
||||||
|
|
||||||
NEXT_PWM=$(clamp $NEXT_PWM $PWM_MIN $PWM_MAX)
|
|
||||||
NEXT_PWM_PCT=$(map_range $NEXT_PWM 0 255 0 100 )
|
|
||||||
|
|
||||||
if test -n "$AMDGPU_FAN_CRONTROL_DEBUG"; then
|
|
||||||
for var in \
|
|
||||||
"Temperature=$TEMPERATURE°C" \
|
|
||||||
"Fan speed=$NEXT_PWM_PCT%" \
|
|
||||||
; do
|
|
||||||
echo -en "$var\t"
|
|
||||||
done
|
|
||||||
echo
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Apply the new fan speed
|
AVG="$(( ($PWM * 20 + $PREV * 80) / 100 ))"
|
||||||
echo "$NEXT_PWM" > "$HWMON/pwm1"
|
|
||||||
|
|
||||||
# Wait for next iteratino
|
echo "$AVG"
|
||||||
PREV_PWM="$NEXT_PWM"
|
|
||||||
|
echo "$AVG" > "$HWMON/pwm1"
|
||||||
|
PREV="$AVG"
|
||||||
sleep .1s
|
sleep .1s
|
||||||
}
|
|
||||||
|
|
||||||
main() {
|
|
||||||
parse_cli "$@"
|
|
||||||
validate_variables
|
|
||||||
setup
|
|
||||||
while true; do
|
|
||||||
main_loop
|
|
||||||
done
|
done
|
||||||
}
|
|
||||||
|
|
||||||
main "$@"
|
|
||||||
|
|
|
@ -8,10 +8,13 @@
|
||||||
if test "$argv[1]" = "run"
|
if test "$argv[1]" = "run"
|
||||||
test -n "$argv[2]" && set t "$argv[2]" || set t "terminal"
|
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 \
|
exec j4-dmenu-desktop \
|
||||||
--dmenu="bmenu start -p Iniciar:" \
|
--dmenu="bmenu start -p Iniciar:" \
|
||||||
--term "$t" \
|
--term "$t" \
|
||||||
--i3-ipc \
|
--wrapper="$wrapper" \
|
||||||
--no-generic
|
--no-generic
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -44,6 +44,7 @@
|
||||||
];
|
];
|
||||||
_diffr = [ diffr ];
|
_diffr = [ diffr ];
|
||||||
_thunar-terminal = [ terminal ];
|
_thunar-terminal = [ terminal ];
|
||||||
|
_sway_idle_toggle = [ swayidle ];
|
||||||
kak-pager = [
|
kak-pager = [
|
||||||
fish
|
fish
|
||||||
_diffr
|
_diffr
|
||||||
|
@ -73,7 +74,6 @@
|
||||||
];
|
];
|
||||||
wpass = [
|
wpass = [
|
||||||
wdmenu
|
wdmenu
|
||||||
ripgrep
|
|
||||||
fd
|
fd
|
||||||
myPass
|
myPass
|
||||||
sd
|
sd
|
||||||
|
|
|
@ -29,8 +29,8 @@ main() {
|
||||||
|
|
||||||
test -n "$entry" || exit 0
|
test -n "$entry" || exit 0
|
||||||
|
|
||||||
username=`pass show "$entry" 2>/dev/null | rg -m1 '(login|user|email): (.*)' -r '$2'` || true
|
username=`pass show "$entry" 2>/dev/null | perl -ne 'print $2 if /^(login|user|email): (.*)/'`
|
||||||
password=`pass show "$entry" 2>/dev/null | head -n 1` || true
|
password=`pass show "$entry" 2>/dev/null | head -n 1`
|
||||||
otp=`pass otp "$entry" 2>/dev/null` || true
|
otp=`pass otp "$entry" 2>/dev/null` || true
|
||||||
|
|
||||||
action="$(print_actions_for_entry | wdmenu -p Action)"
|
action="$(print_actions_for_entry | wdmenu -p Action)"
|
||||||
|
@ -50,10 +50,8 @@ main() {
|
||||||
}
|
}
|
||||||
|
|
||||||
autotype(){
|
autotype(){
|
||||||
if test -n "$username"; then
|
|
||||||
env wtype -s 100 "$username"
|
env wtype -s 100 "$username"
|
||||||
env wtype -s 100 -k tab
|
env wtype -s 100 -k tab
|
||||||
fi
|
|
||||||
env wtype -s 100 "$password"
|
env wtype -s 100 "$password"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -4,10 +4,16 @@ gitlab-runners:
|
||||||
thoreb-telemetria-nix: ENC[AES256_GCM,data:zrZvG4be08ulpo7itbrprKK5csCMLvzZjrszfMw1XiJP0FyRTUd9nHgHpbAzbjj2KyT7kKngoZAyengvaTEhkT9sUi1pdGnvajAH8BDDOD0g4LJIHFl4,iv:3bSsTzU7gHx+MchuPg9kmb5xEDugmGPje8Jw74NpRJI=,tag:zffRr77lWbyLt7o/mywb5A==,type:str]
|
thoreb-telemetria-nix: ENC[AES256_GCM,data:zrZvG4be08ulpo7itbrprKK5csCMLvzZjrszfMw1XiJP0FyRTUd9nHgHpbAzbjj2KyT7kKngoZAyengvaTEhkT9sUi1pdGnvajAH8BDDOD0g4LJIHFl4,iv:3bSsTzU7gHx+MchuPg9kmb5xEDugmGPje8Jw74NpRJI=,tag:zffRr77lWbyLt7o/mywb5A==,type:str]
|
||||||
thoreb-itinerario-nix: ENC[AES256_GCM,data:UdAAD0V895sFoEYR56sCG2LlpZugJ0K/nwkTygzWOnbTSmBRAcIQ8qVFPZGw+K+XMSLiCyio6Jp7k8AYP0K1VYm+6aEP3OkqR9FCLQTJgXo=,iv:UGUby50BYkn13OzItk6zZmxc5+SnbZZa4bebQHIow2A=,tag:LjDg3deWwdH2T71EtPo6jA==,type:str]
|
thoreb-itinerario-nix: ENC[AES256_GCM,data:UdAAD0V895sFoEYR56sCG2LlpZugJ0K/nwkTygzWOnbTSmBRAcIQ8qVFPZGw+K+XMSLiCyio6Jp7k8AYP0K1VYm+6aEP3OkqR9FCLQTJgXo=,iv:UGUby50BYkn13OzItk6zZmxc5+SnbZZa4bebQHIow2A=,tag:LjDg3deWwdH2T71EtPo6jA==,type:str]
|
||||||
docker-images-token: ENC[AES256_GCM,data:GGB/KSkjdAyhFKEspAh91ItbqEDf7K/LZSGSn+Jp7SxRfXpDzHIiMD8XJ9PTkGLeQGN4ug1i2nTYPS7d/P5OALWDU+1NPiV9nPdG0w7GERfu4g==,iv:6roabdOKX9xFMf0hWlECd73+943R+hFLos0e2dOpzns=,tag:LrASFc4DtN7aQ+3oOW/p/w==,type:str]
|
docker-images-token: ENC[AES256_GCM,data:GGB/KSkjdAyhFKEspAh91ItbqEDf7K/LZSGSn+Jp7SxRfXpDzHIiMD8XJ9PTkGLeQGN4ug1i2nTYPS7d/P5OALWDU+1NPiV9nPdG0w7GERfu4g==,iv:6roabdOKX9xFMf0hWlECd73+943R+hFLos0e2dOpzns=,tag:LrASFc4DtN7aQ+3oOW/p/w==,type:str]
|
||||||
wopus-gitlab-nix: ENC[AES256_GCM,data:asE7J0d58x9VfQFWc07f5T4s5NZ+/VqMQo66EX93J0LbJ4iI5YjvrrIE4pSI1e4Nz/SRQhltaJ0DfSH0+qgjD4wnAONPRi3UlFbSdGWS2bwwRtWe+Nci2krrUFxV2i/ZVE3CwCkNe4mqtII=,iv:gKrD/LhzI+jnDnX6CdxoHfjpiRdrsuRYJF9rTc8SffM=,tag:TczDGSU3gdKmERjBJ7tP/A==,type:str]
|
bitbucket-runners:
|
||||||
wopus-ssh-nix-cache-pk: ENC[AES256_GCM,data:MtYDK6P7nwBzr6p+lRX/dkosBfeDUAj/slf/a5SgVXNIbQlkEk7gvfW5iL+C2HgMwowqWx4F+3q2W+kGweqEYzEYAoZ9pR08a7Jci3Szyy49hkamxJXF+Qwhb5VQKxDppESne7DARCF0iYeUjgeXxCYyuWlGpisnkN3HCWrIYCqbk0LS+yqgkNhDxtxMaThGYztfPnLMEV/P5vuge9sRKu3Xi3iX2uDKtx4FTBsX30Lmd8kngOVnP/GaEHDa5ECO+/yW6ZRg3fIaqJ4RV+Vz79ovFUuZV/VE8eY3JOdK5tKIBWb31YUOjP7ccBes7mMhFLO3ceNeh+a6KAJbQ4pCojJwf/cLz663FKr5f/uWDicOBbL64l3+zV5zvSDzFls0ImXMNL6Fe3SaKP7ZcC5rVrRD8P+UN/OSFmbN5LM7uYY8nNsLxTH7MYsRHgTBUmTsFEhLGJIUjtf6J3/NWIlxjBq1MmpgxN0bD6gwVAxDPP489v918tsZtKdG8SJhLUPE4LWKsU7LHpgUBroKlbGE,iv:1jnF2TTlyTR59xM8Bgaz6bubDOwFexHBJipNVa0VPXY=,tag:VsDb6C6wYa9p4Yey3iG4eA==,type:str]
|
wopus-runner-1: ENC[AES256_GCM,data:gtH0T5n8qMYpvSv5ciN8+ScGlFDf9xE0FTxNP97vT/qsOCcaItTE+5P+DFcWw46onLED+1c+u0sArFbEsT3f8lyco9b+0l99uOQAxLZQzAXYH8zGye1UnwUtytkci2PHu5c8kTpIWHXyZ1IOYNGWkermeab57ANzOkM1LbkHyAjS6VTh0I60LfAOdHOw5FDFL8d1d9oWxLloOe9USLPqHjC023EpCUT2YuyHoPCTpBu8Kb/2HfV0wkAKaB3dvVrKwXCj+bfP6+bjQ3uMzVO/7jxPmnSGBfvyZ+Hlg5goJ6bSAqQWmnPPnQ96FgQfe8su5ML9qNIp9/7eNiL6Rv6Vhxe0hHbE5wsZ/58grcg/LrugeWJvUJ9THhwcTwO8Pkvwlq0XM9seUY2NV+LCK3bLQ4IWDjWkU1IHg6+nihTcvl1iD6UIGMgqGoB/v05WVzHb+GcE2fFuSuhVHfa5RMyboELOJoFrqZiXGhY=,iv:ZakLafxYQCDd1Zw8T83Xfj+YwAQKna9LC6ognJqtifA=,tag:bwBObfdMIvJfRrOG04NtxA==,type:str]
|
||||||
wopus-ssh-nix-cache-pub: ENC[AES256_GCM,data:F+QHv9wwgyQYobKwyG13tS2OKCZuBPKLe7RLkhxsqYmVEtkCnli9jG+unMp7MC5L0i3puNqfoXP2IC6g4ESHq1yE0ksUpUCHzps4oMZBQK9b5JcqXQs+c//hskTQ/sFmTfGPpdnQ7wAifnQf5Mx2E4RwiRznMgJGQ3RDDjg9xfWUyvw6PlslZH65aGrq3P/iURvj,iv:u34+rXKLcZjBlVJmdbf60I82Fb621lUjOBmR4CTJWGk=,tag:ToPtBIz3bgzAUKc6hh4Oxg==,type:str]
|
wopus-runner-2: ENC[AES256_GCM,data:gg8merZMFbf396hdJY7zmKQndT3GzB7NeGZAs3C0au8Zd7OFAg9vcQcFcxNA3kZGJZqmFTR/ycWJwhYr9fhlfFuPhDynVvgJAqoYtvC2MUDiOMD/d3DlfwFjQ6cOGTrvFuY1kkgSFb4OFdrVC1eiTDrGygFmYnYcqTKn/t5Ttqi+cHZNzFzVzdVLvaLCYxltM5g45zn+fXYxYwCfqyb32/M1XTnnwIGiataGxEX5oWhVV4zqeLO4ZIYPSby5AVvIMJ/zqvqaeVVY52GLDcTKrj3thbZxMQLWN3/lOA0uYhi3L/WM8Gx+JMEIbSICcuT7QXu4w4PA+opcx9GnsMCK2/egzS+cNPJ4vGZCdVD/jh6A9zVEJAgXdsHXNXFHmMPt7DcgrCQiub62og4kBY4G/Rcg4UN7sb3v3qyBpGbCGHGRjCFc+wdHpom0yDOG2cwcqfN49pC2R7Ag2BisFQ/5A+DPmKnvGG3kt9s=,iv:5g5XiDecYqi4JNRkZubgPJECBQdZ6rBeojgFe6Etebk=,tag:HRy5bFSbfxKTb5e13lGtgg==,type:str]
|
||||||
|
wopus-runner-3: ENC[AES256_GCM,data:f9pLYR8t51HtPpLyXysIVaDAhxDrmktJH93E7rb7imtKwK7hRhR8usnvHTcknLfD7BMvStAIYefdGt19u7PrQu6vqc19bEcNbnK5OH4KBP6+X47oMgBYtbIGXH+t3dSDt22fSIoppTwdX7/Kf4vqesfN8K7EunETvFR86oyyKdy15mvXr0XUO4us4HZjnIOBEnOm1P/V8hk5JcCpRuo+8ZYmBe5gzq5pTnqnYlPE1EovM7eDMg72J7ev07h50qvySrAqmNiqDcXfTPQ2TzuHx3XxAYqFybf1L6P9OnLB6RDAlpoFJ0h8dSg2tzC2+amYsBP0UIBK/ZhWvvAjpX+MZrTASjenh/tefDcNdbsXDOr7A4i/261z4rC0r+97INglCN1N/SZg51iBHiRAVV1zibDLfioR5+eBIykWAtjILMoYU+zOcr0E8K0I9jQGMtpnYmvHJqV0DVcdfZpJptrPUUy+lQ/iZVcPpLs=,iv:grzvVsfpUzywjNE4jvTxXKG3TYajrvSsQgfOgtafvIo=,tag:K1B6crN0ckLk0EYBtGHDkw==,type:str]
|
||||||
|
wopus-runner-4: ENC[AES256_GCM,data:D1Zq0BtPuACnutAbUcj3gYSMLuIZcMuqc/1mEFmitEG0tBFMWhkabS+8lXcp8sb1DM0LTDMEwgMB9FVyFb670MKQNEncqQtaNJtY1BxS3SolovDAM/I+i6YGvd4X8jX99d+7ZNR6xGBWJ/dW8rz4QnIM8Eh3FDOqaFa/ltfyPKP9IZ2uZi67C/n8Q/OSdgMQkt+QxhgJfSghE1iruPwxyGlqv+E4SZNI/fQQMjX0Lh7z02ms58yyMtjO71YbukV/JXFRsdJrqY2wfH/6NlZbsKideoSxluBRVqmbW6KQd7dUT819KbOSu9CFdgThtVCU8qiv3jbAbn8D5xRy4AAOEfSqRLXJoj7otCqr47R/8+0BdS3aztFBjL3lDmprMWZ4+LD55fvczfpxUF9ox1mhcjIvCvZJJL06XsST1XRXa7i2fr4/a/XhCmQgIzar5IYxSC9OjuHp6jLsTaY3ZUgid5W1L1n8uWSmA98=,iv:O9caRG//brERiIhuMrsFdTz6TnPY0rdQnvHEu0P42yM=,tag:hrmwLX/CRhZfammJ2nfTPw==,type:str]
|
||||||
sops:
|
sops:
|
||||||
|
kms: []
|
||||||
|
gcp_kms: []
|
||||||
|
azure_kv: []
|
||||||
|
hc_vault: []
|
||||||
age:
|
age:
|
||||||
- recipient: age1zrgu7w8059xydagm60phnffghvfe9h2ca58cx8qwagqpyfuvs9fqw79c8h
|
- recipient: age1zrgu7w8059xydagm60phnffghvfe9h2ca58cx8qwagqpyfuvs9fqw79c8h
|
||||||
enc: |
|
enc: |
|
||||||
|
@ -27,8 +33,8 @@ sops:
|
||||||
aFVxcDFhaGdYekRWRVFIWnRsZndtZFkKgsvxOFHOcO306Z9FkucA1fDOpZA8N1/h
|
aFVxcDFhaGdYekRWRVFIWnRsZndtZFkKgsvxOFHOcO306Z9FkucA1fDOpZA8N1/h
|
||||||
jYmIgcKTFgWoSCvux67lK30jFsYp7sm5z6WxxDYsGcoQ/+pxoUX2jQ==
|
jYmIgcKTFgWoSCvux67lK30jFsYp7sm5z6WxxDYsGcoQ/+pxoUX2jQ==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
lastmodified: "2025-07-16T15:17:16Z"
|
lastmodified: "2025-03-07T21:28:04Z"
|
||||||
mac: ENC[AES256_GCM,data:UKIJFzABE0vr7vSYL85iZdTvd0y3dN/MaBUoKf6OpcDtRphM8/yY5J0Xq6XM5f28WFN1GlSKUekQz+DkA6aR6aCI2SICVOJpFb/eXKQ3Y7Td+PGcBr07hFOGCSu2vAzgYB1ZnajfI659FcWmdOoJSYgHUz3G7iRTHHCRVcoaVVk=,iv:jmKwn9bkqvPa0dGge4FFW2uT4Oa1LlFpFMUlnqUgkAA=,tag:CL+0+frQMt2TmgYv9yZeuw==,type:str]
|
mac: ENC[AES256_GCM,data:4lOafZQ6PP38CByulzA/J86sw+TpQhj40s1lTRXqUtpt72yH8nQK8dXpw0dNYvDBtDpKRvNTHZubzalEua6n2lCQL7rsZ2+fo6FJ4ht2Kb70dddDcWEyrfyZQ2FaKC5L/QjqM0SbIfPszNvyQ8wIaOoMfNJBis5QOjRSGDAcJm8=,iv:LLT0oJW+3KNe1nKphCK0c5FPIuh8GfnDrvNDCFhP4NM=,tag:rPbVY7L1qxNc3aCfv77FAg==,type:str]
|
||||||
pgp:
|
pgp:
|
||||||
- created_at: "2025-03-07T22:49:16Z"
|
- created_at: "2025-03-07T22:49:16Z"
|
||||||
enc: |-
|
enc: |-
|
||||||
|
@ -46,4 +52,4 @@ sops:
|
||||||
-----END PGP MESSAGE-----
|
-----END PGP MESSAGE-----
|
||||||
fp: 0FECE8316E74BA6F44EFC21A2F8F21CE8721456B
|
fp: 0FECE8316E74BA6F44EFC21A2F8F21CE8721456B
|
||||||
unencrypted_suffix: _unencrypted
|
unencrypted_suffix: _unencrypted
|
||||||
version: 3.10.2
|
version: 3.9.4-unstable
|
||||||
|
|
|
@ -33,18 +33,6 @@
|
||||||
|
|
||||||
networking.firewall.extraCommands = lib.getExe pkgs._docker-block-external-connections;
|
networking.firewall.extraCommands = lib.getExe pkgs._docker-block-external-connections;
|
||||||
|
|
||||||
# Docker punches holes in your firewall
|
|
||||||
systemd.services.docker-update-firewall = {
|
|
||||||
script = lib.getExe pkgs._docker-block-external-connections;
|
|
||||||
};
|
|
||||||
systemd.timers.docker-update-firewall = {
|
|
||||||
timerConfig = {
|
|
||||||
OnCalendar = "minutely";
|
|
||||||
Unit = "docker-update-firewall.service";
|
|
||||||
};
|
|
||||||
wantedBy = [ "multi-user.target" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.extra-container.enable = true;
|
programs.extra-container.enable = true;
|
||||||
|
|
||||||
programs.firejail.enable = true;
|
programs.firejail.enable = true;
|
||||||
|
|
|
@ -5,7 +5,6 @@
|
||||||
noto-fonts
|
noto-fonts
|
||||||
noto-fonts-cjk-sans
|
noto-fonts-cjk-sans
|
||||||
noto-fonts-emoji
|
noto-fonts-emoji
|
||||||
nerd-fonts.fira-code
|
nerdfonts_fira_hack
|
||||||
nerd-fonts.hack
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,6 +60,12 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.corectrl.enable = true;
|
programs.corectrl = {
|
||||||
|
enable = true;
|
||||||
|
gpuOverclock = {
|
||||||
|
enable = true;
|
||||||
|
ppfeaturemask = "0xffffffff";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,13 +1,21 @@
|
||||||
{ pkgs, lib, ... }:
|
{ pkgs, lib, ... }:
|
||||||
let
|
|
||||||
installNixScript =
|
|
||||||
{
|
{
|
||||||
authenticationTokenConfigFile,
|
mkNixRunner =
|
||||||
nixCacheSshPrivateKeyPath ? null,
|
authenticationTokenConfigFile: with lib; rec {
|
||||||
nixCacheSshPublicKeyPath ? null,
|
# File should contain at least these two variables:
|
||||||
...
|
# `CI_SERVER_URL`
|
||||||
}:
|
# `REGISTRATION_TOKEN`
|
||||||
pkgs.writeScriptBin "install-nix" ''
|
inherit authenticationTokenConfigFile; # 2
|
||||||
|
dockerImage = "alpine:3.18.2";
|
||||||
|
dockerAllowedImages = [ dockerImage ];
|
||||||
|
dockerVolumes = [
|
||||||
|
"/etc/nix/nix.conf:/etc/nix/nix.conf:ro"
|
||||||
|
"/nix/store:/nix/store:ro"
|
||||||
|
"/nix/var/nix/db:/nix/var/nix/db:ro"
|
||||||
|
"/nix/var/nix/daemon-socket:/nix/var/nix/daemon-socket:ro"
|
||||||
|
];
|
||||||
|
dockerDisableCache = true;
|
||||||
|
preBuildScript = pkgs.writeScript "setup-container" ''
|
||||||
mkdir -p -m 0755 /nix/var/log/nix/drvs
|
mkdir -p -m 0755 /nix/var/log/nix/drvs
|
||||||
mkdir -p -m 0755 /nix/var/nix/gcroots
|
mkdir -p -m 0755 /nix/var/nix/gcroots
|
||||||
mkdir -p -m 0755 /nix/var/nix/profiles
|
mkdir -p -m 0755 /nix/var/nix/profiles
|
||||||
|
@ -21,69 +29,23 @@ let
|
||||||
. ${pkgs.nix}/etc/profile.d/nix.sh
|
. ${pkgs.nix}/etc/profile.d/nix.sh
|
||||||
|
|
||||||
${pkgs.nix}/bin/nix-env -i ${
|
${pkgs.nix}/bin/nix-env -i ${
|
||||||
lib.concatStringsSep " " (
|
concatStringsSep " " (
|
||||||
with pkgs;
|
with pkgs;
|
||||||
[
|
[
|
||||||
nix
|
nix
|
||||||
cacert
|
cacert
|
||||||
git
|
git
|
||||||
openssh
|
openssh
|
||||||
docker
|
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
${lib.optionalString (nixCacheSshPrivateKeyPath != null && nixCacheSshPublicKeyPath != null) ''
|
|
||||||
NIX_CACHE_SSH_PRIVATE_KEY_PATH="${nixCacheSshPrivateKeyPath}"
|
|
||||||
NIX_CACHE_SSH_PUBLIC_KEY_PATH="${nixCacheSshPublicKeyPath}"
|
|
||||||
. ${./gitlab-runner/nix-cache-start}
|
|
||||||
''}
|
|
||||||
'';
|
'';
|
||||||
in
|
|
||||||
rec {
|
|
||||||
mkNixRunnerFull =
|
|
||||||
{
|
|
||||||
authenticationTokenConfigFile,
|
|
||||||
nixCacheSshPrivateKeyPath ? null,
|
|
||||||
nixCacheSshPublicKeyPath ? null,
|
|
||||||
...
|
|
||||||
}@args:
|
|
||||||
{
|
|
||||||
# File should contain at least these two variables:
|
|
||||||
# `CI_SERVER_URL`
|
|
||||||
# `REGISTRATION_TOKEN`
|
|
||||||
inherit authenticationTokenConfigFile; # 2
|
|
||||||
dockerImage = "alpine:3.18.2";
|
|
||||||
dockerPullPolicy = "if-not-present";
|
|
||||||
dockerVolumes = [
|
|
||||||
"/etc/nix/nix.conf:/etc/nix/nix.conf:ro"
|
|
||||||
"/nix/store:/nix/store:ro"
|
|
||||||
"/nix/var/nix/db:/nix/var/nix/db:ro"
|
|
||||||
"/nix/var/nix/daemon-socket:/nix/var/nix/daemon-socket:ro"
|
|
||||||
"/tmp:/tmp"
|
|
||||||
"/var/run/docker.sock:/var/run/docker.sock"
|
|
||||||
"/var/lib/docker/containers:/var/lib/docker/containers"
|
|
||||||
"/cache"
|
|
||||||
]
|
|
||||||
++ lib.optionals (nixCacheSshPrivateKeyPath != null) [
|
|
||||||
"${nixCacheSshPrivateKeyPath}:${nixCacheSshPrivateKeyPath}"
|
|
||||||
]
|
|
||||||
++ lib.optionals (nixCacheSshPublicKeyPath != null) [
|
|
||||||
"${nixCacheSshPublicKeyPath}:${nixCacheSshPublicKeyPath}"
|
|
||||||
];
|
|
||||||
# dockerDisableCache = true;
|
|
||||||
preBuildScript = "\". ${lib.getExe (installNixScript args)}\"";
|
|
||||||
environmentVariables = {
|
environmentVariables = {
|
||||||
ENV = "/etc/profile";
|
ENV = "/etc/profile";
|
||||||
USER = "root";
|
USER = "root";
|
||||||
NIX_REMOTE = "daemon";
|
NIX_REMOTE = "daemon";
|
||||||
|
PATH = "/nix/var/nix/profiles/default/bin:/nix/var/nix/profiles/default/sbin:/bin:/sbin:/usr/bin:/usr/sbin";
|
||||||
NIX_SSL_CERT_FILE = "/nix/var/nix/profiles/default/etc/ssl/certs/ca-bundle.crt";
|
NIX_SSL_CERT_FILE = "/nix/var/nix/profiles/default/etc/ssl/certs/ca-bundle.crt";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
mkNixRunner =
|
|
||||||
authenticationTokenConfigFile:
|
|
||||||
mkNixRunnerFull {
|
|
||||||
inherit authenticationTokenConfigFile;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,49 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo "nix-cache: Setting up ssh key and host" >&2
|
|
||||||
STORE_HOST_PUB_KEY="$(cat "$NIX_CACHE_SSH_PUBLIC_KEY_PATH" | base64 | tr -d '\n')"
|
|
||||||
STORE_URL="ssh://nix-ssh@nix-cache.wopus.dev?trusted=true&compress=true&ssh-key=$NIX_CACHE_SSH_PRIVATE_KEY_PATH&base64-ssh-public-host-key=$STORE_HOST_PUB_KEY"
|
|
||||||
echo STORE_URL="$STORE_URL" >&2
|
|
||||||
|
|
||||||
NIX_EXTRA_CONFIG_FILE=$(mktemp)
|
|
||||||
cat > "$NIX_EXTRA_CONFIG_FILE" <<EOF
|
|
||||||
extra-substituters = $STORE_URL
|
|
||||||
EOF
|
|
||||||
|
|
||||||
echo "nix-cache: Adding remote cache as substituter" >&2
|
|
||||||
export NIX_USER_CONF_FILES="$NIX_EXTRA_CONFIG_FILE:$NIX_USER_CONF_FILES"
|
|
||||||
|
|
||||||
echo "nix-cache: Setting up nix hook" >&2
|
|
||||||
nix() {
|
|
||||||
echo "nix-cache: executing nix hook" >&2
|
|
||||||
command nix "$@"
|
|
||||||
local STATUS="$?"
|
|
||||||
|
|
||||||
local BUILD=no
|
|
||||||
if test "$STATUS" = "0"; then
|
|
||||||
for arg in "$@"; do
|
|
||||||
echo "nix-cache: evaluating arg '$arg'" >&2
|
|
||||||
case "$arg" in
|
|
||||||
build)
|
|
||||||
echo "nix-cache: enablig upload" >&2
|
|
||||||
BUILD=yes
|
|
||||||
;;
|
|
||||||
-*)
|
|
||||||
echo "nix-cache: ignoring argument '$arg'" >&2
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
if test "$BUILD" = yes; then
|
|
||||||
echo "nix-cache: Sending path $arg" >&2
|
|
||||||
command nix copy --to "$STORE_URL" "$arg" || true
|
|
||||||
else
|
|
||||||
echo "nix-cache: not building, ignoring argument '$arg'" >&2
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
else
|
|
||||||
echo "nix-cache: nix exited with code '$STATUS', ignoring" >&2
|
|
||||||
fi
|
|
||||||
|
|
||||||
return "$STATUS"
|
|
||||||
}
|
|
|
@ -2,7 +2,7 @@
|
||||||
{
|
{
|
||||||
time.timeZone = "America/Sao_Paulo";
|
time.timeZone = "America/Sao_Paulo";
|
||||||
environment.variables.TZ = config.time.timeZone;
|
environment.variables.TZ = config.time.timeZone;
|
||||||
i18n.defaultLocale = "pt_BR.UTF-8";
|
i18n.defaultLocale = "pt_BR.utf8";
|
||||||
|
|
||||||
# Configure keymap in X11
|
# Configure keymap in X11
|
||||||
services.xserver.xkb = {
|
services.xserver.xkb = {
|
||||||
|
|
50
system/monolith-bitbucket-runner.nix
Normal file
50
system/monolith-bitbucket-runner.nix
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
mkRunner = secret: {
|
||||||
|
image = "docker-public.packages.atlassian.com/sox/atlassian/bitbucket-pipelines-runner:latest";
|
||||||
|
volumes = [
|
||||||
|
"/tmp:/tmp"
|
||||||
|
"/var/run/docker.sock:/var/run/docker.sock"
|
||||||
|
"/var/lib/docker/containers:/var/lib/docker/containers:ro"
|
||||||
|
];
|
||||||
|
environmentFiles = [ secret ];
|
||||||
|
};
|
||||||
|
|
||||||
|
secretConf = {
|
||||||
|
sopsFile = ../secrets/monolith/default.yaml;
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
virtualisation.docker = {
|
||||||
|
enable = true;
|
||||||
|
daemon.settings = {
|
||||||
|
# needed by bitbucket runner ???
|
||||||
|
log-driver = "json-file";
|
||||||
|
log-opts = {
|
||||||
|
max-size = "10m";
|
||||||
|
max-file = "3";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
virtualisation.oci-containers.backend = "docker";
|
||||||
|
|
||||||
|
virtualisation.oci-containers.containers = {
|
||||||
|
bitbucket-runner-1 = mkRunner config.sops.secrets."bitbucket-runners/wopus-runner-1".path;
|
||||||
|
bitbucket-runner-2 = mkRunner config.sops.secrets."bitbucket-runners/wopus-runner-2".path;
|
||||||
|
bitbucket-runner-3 = mkRunner config.sops.secrets."bitbucket-runners/wopus-runner-3".path;
|
||||||
|
bitbucket-runner-4 = mkRunner config.sops.secrets."bitbucket-runners/wopus-runner-4".path;
|
||||||
|
};
|
||||||
|
|
||||||
|
sops.secrets = {
|
||||||
|
"bitbucket-runners/wopus-runner-1" = secretConf;
|
||||||
|
"bitbucket-runners/wopus-runner-2" = secretConf;
|
||||||
|
"bitbucket-runners/wopus-runner-3" = secretConf;
|
||||||
|
"bitbucket-runners/wopus-runner-4" = secretConf;
|
||||||
|
};
|
||||||
|
}
|
|
@ -4,33 +4,26 @@
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
inherit (pkgs.callPackage ./gitlab-runner.nix { }) mkNixRunner mkNixRunnerFull;
|
inherit (pkgs.callPackage ./gitlab-runner.nix { }) mkNixRunner;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
boot.kernel.sysctl."net.ipv4.ip_forward" = true;
|
boot.kernel.sysctl."net.ipv4.ip_forward" = true;
|
||||||
virtualisation.docker.enable = true;
|
virtualisation.docker.enable = true;
|
||||||
services.gitlab-runner = {
|
services.gitlab-runner = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings.concurrent = 4;
|
settings.concurrent = 12;
|
||||||
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
|
||||||
thoreb-telemetria-nix = mkNixRunner config.sops.secrets."gitlab-runners/thoreb-telemetria-nix".path;
|
thoreb-telemetria-nix = mkNixRunner config.sops.secrets."gitlab-runners/thoreb-telemetria-nix".path;
|
||||||
thoreb-itinerario-nix = mkNixRunner config.sops.secrets."gitlab-runners/thoreb-itinerario-nix".path;
|
thoreb-itinerario-nix = mkNixRunner config.sops.secrets."gitlab-runners/thoreb-itinerario-nix".path;
|
||||||
|
|
||||||
wopus-gitlab-nix = mkNixRunnerFull {
|
|
||||||
authenticationTokenConfigFile = config.sops.secrets."gitlab-runners/wopus-gitlab-nix".path;
|
|
||||||
nixCacheSshPrivateKeyPath = config.sops.secrets."gitlab-runners/wopus-ssh-nix-cache-pk".path;
|
|
||||||
nixCacheSshPublicKeyPath = config.sops.secrets."gitlab-runners/wopus-ssh-nix-cache-pub".path;
|
|
||||||
};
|
|
||||||
|
|
||||||
default = {
|
default = {
|
||||||
# File should contain at least these two variables:
|
# File should contain at least these two variables:
|
||||||
# `CI_SERVER_URL`
|
# `CI_SERVER_URL`
|
||||||
# `CI_SERVER_TOKEN`
|
# `CI_SERVER_TOKEN`
|
||||||
authenticationTokenConfigFile = config.sops.secrets."gitlab-runners/docker-images-token".path;
|
authenticationTokenConfigFile = config.sops.secrets."gitlab-runners/docker-images-token".path;
|
||||||
dockerImage = "debian:stable";
|
dockerImage = "debian:stable";
|
||||||
dockerPullPolicy = "if-not-present";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -46,14 +39,5 @@ in
|
||||||
"gitlab-runners/docker-images-token" = {
|
"gitlab-runners/docker-images-token" = {
|
||||||
sopsFile = ../secrets/monolith/default.yaml;
|
sopsFile = ../secrets/monolith/default.yaml;
|
||||||
};
|
};
|
||||||
"gitlab-runners/wopus-gitlab-nix" = {
|
|
||||||
sopsFile = ../secrets/monolith/default.yaml;
|
|
||||||
};
|
|
||||||
"gitlab-runners/wopus-ssh-nix-cache-pk" = {
|
|
||||||
sopsFile = ../secrets/monolith/default.yaml;
|
|
||||||
};
|
|
||||||
"gitlab-runners/wopus-ssh-nix-cache-pub" = {
|
|
||||||
sopsFile = ../secrets/monolith/default.yaml;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,8 +26,6 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services.fail2ban.enable = true;
|
|
||||||
|
|
||||||
# Workaround for nm-wait-online hanging??
|
# Workaround for nm-wait-online hanging??
|
||||||
# Ref: https://github.com/NixOS/nixpkgs/issues/180175
|
# Ref: https://github.com/NixOS/nixpkgs/issues/180175
|
||||||
systemd.services.NetworkManager-wait-online = {
|
systemd.services.NetworkManager-wait-online = {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
services.pulseaudio.enable = false;
|
hardware.pulseaudio.enable = false;
|
||||||
services.pipewire = {
|
services.pipewire = {
|
||||||
enable = true;
|
enable = true;
|
||||||
wireplumber.enable = true;
|
wireplumber.enable = true;
|
||||||
|
|
15
user/cursor/cursor.desktop
Normal file
15
user/cursor/cursor.desktop
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Name=Cursor
|
||||||
|
Exec=/home/lelgenio/.local/bin/cursor --enable-features=UseOzonePlatform --ozone-platform-hint=wayland %F
|
||||||
|
Path=/home/lelgenio/.local/bin
|
||||||
|
Icon=/home/lelgenio/.icons/cursor.png
|
||||||
|
Type=Application
|
||||||
|
Categories=Utility;Development;
|
||||||
|
StartupWMClass=Cursor
|
||||||
|
X-AppImage-Version=latest
|
||||||
|
Comment=Cursor is an AI-first coding environment.
|
||||||
|
MimeType=x-scheme-handler/cursor;
|
||||||
|
|
||||||
|
|
||||||
|
[Desktop Action new-empty-window]
|
||||||
|
Exec=/home/lelgenio/.local/bin/cursor --enable-features=UseOzonePlatformc --ozone-platform-hint --new-window %F
|
20
user/cursor/default.nix
Normal file
20
user/cursor/default.nix
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
options.cursor = {
|
||||||
|
enable = lib.mkEnableOption { };
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf config.cursor.enable {
|
||||||
|
home.file = {
|
||||||
|
"${config.home.homeDirectory}/.local/share/applications/cursor.desktop".source = ./cursor.desktop;
|
||||||
|
"${config.home.homeDirectory}/.config/Cusor/User/keybindings.json".source =
|
||||||
|
config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/projects/nixos-config/user/cursor/keybindings.json";
|
||||||
|
"${config.home.homeDirectory}/.config/Cursor/User/settings.json".source =
|
||||||
|
config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/projects/nixos-config/user/cursor/settings.json";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
1
user/cursor/keybindings.json
Normal file
1
user/cursor/keybindings.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[]
|
34
user/cursor/settings.json
Normal file
34
user/cursor/settings.json
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
{
|
||||||
|
"terminal.integrated.sendKeybindingsToShell": true,
|
||||||
|
"window.titleBarStyle": "custom",
|
||||||
|
"workbench.preferredDarkColorTheme": "GitHub Dark",
|
||||||
|
"workbench.preferredLightColorTheme": "GitHub Light",
|
||||||
|
"window.autoDetectColorScheme": true,
|
||||||
|
"workbench.colorTheme": "GitHub Dark",
|
||||||
|
"git.autofetch": true,
|
||||||
|
"git.confirmSync": false,
|
||||||
|
"editor.suggest.snippetsPreventQuickSuggestions": false,
|
||||||
|
"update.mode": "none",
|
||||||
|
"intelephense.files.exclude": [
|
||||||
|
"**/.git/**",
|
||||||
|
"**/.svn/**",
|
||||||
|
"**/.hg/**",
|
||||||
|
"**/CVS/**",
|
||||||
|
"**/.DS_Store/**",
|
||||||
|
"**/node_modules/**",
|
||||||
|
"**/bower_components/**",
|
||||||
|
"**/vendor/**/{Tests,tests}/**",
|
||||||
|
"**/.history/**",
|
||||||
|
"**/vendor/**/vendor/**",
|
||||||
|
"**/.direnv/**"
|
||||||
|
],
|
||||||
|
"intelephense.format.braces": "k&r",
|
||||||
|
"window.commandCenter": 1,
|
||||||
|
"files.exclude": {
|
||||||
|
"**/.deps": true,
|
||||||
|
"**/.direnv": true
|
||||||
|
},
|
||||||
|
"diffEditor.renderSideBySide": false,
|
||||||
|
"laravel-pint.enable": true,
|
||||||
|
"editor.formatOnSave": true
|
||||||
|
}
|
|
@ -1,11 +1,12 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
lib,
|
||||||
|
font,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
inherit (config.my.theme) color;
|
inherit (config.my) desktop browser;
|
||||||
|
|
||||||
bugfixedFirefox = pkgs.firefox-devedition-unwrapped // {
|
bugfixedFirefox = pkgs.firefox-devedition-unwrapped // {
|
||||||
requireSigning = false;
|
requireSigning = false;
|
||||||
allowAddonSideload = true;
|
allowAddonSideload = true;
|
||||||
|
@ -27,15 +28,15 @@ in
|
||||||
url = "https://addons.mozilla.org/firefox/downloads/file/4202411/sponsorblock-5.4.29.xpi";
|
url = "https://addons.mozilla.org/firefox/downloads/file/4202411/sponsorblock-5.4.29.xpi";
|
||||||
hash = "sha256-7Xqc8cyQNylMe5/dgDOx1f2QDVmz3JshDlTueu6AcSg=";
|
hash = "sha256-7Xqc8cyQNylMe5/dgDOx1f2QDVmz3JshDlTueu6AcSg=";
|
||||||
})
|
})
|
||||||
# (pkgs.fetchFirefoxAddon {
|
(pkgs.fetchFirefoxAddon {
|
||||||
# name = "tree-style-tab";
|
name = "tree-style-tab";
|
||||||
# url = "https://addons.mozilla.org/firefox/downloads/file/4197314/tree_style_tab-3.9.19.xpi";
|
url = "https://addons.mozilla.org/firefox/downloads/file/4197314/tree_style_tab-3.9.19.xpi";
|
||||||
# hash = "sha256-u2f0elVPj5N/QXa+5hRJResPJAYwuT9z0s/0nwmFtVo=";
|
hash = "sha256-u2f0elVPj5N/QXa+5hRJResPJAYwuT9z0s/0nwmFtVo=";
|
||||||
# })
|
})
|
||||||
(pkgs.fetchFirefoxAddon {
|
(pkgs.fetchFirefoxAddon {
|
||||||
name = "ublock-origin";
|
name = "ublock-origin";
|
||||||
url = "https://addons.mozilla.org/firefox/downloads/file/4492375/ublock_origin-1.64.0.xpi";
|
url = "https://addons.mozilla.org/firefox/downloads/file/4290466/ublock_origin-1.58.0.xpi";
|
||||||
hash = "sha256-ueHIaL0awd78q/LgF3bRqQ7/ujSwf+aiE1DUXwIuDp8=";
|
hash = "sha256-RwxWmUpxdNshV4rc5ZixWKXcCXDIfFz+iJrGMr0wheo=";
|
||||||
})
|
})
|
||||||
(pkgs.fetchFirefoxAddon {
|
(pkgs.fetchFirefoxAddon {
|
||||||
name = "user_agent_string_switcher";
|
name = "user_agent_string_switcher";
|
||||||
|
@ -55,20 +56,10 @@ in
|
||||||
hash = "sha256-lKLX6IWWtliRdH1Ig33rVEB4DVfbeuMw0dfUPV/mSSI=";
|
hash = "sha256-lKLX6IWWtliRdH1Ig33rVEB4DVfbeuMw0dfUPV/mSSI=";
|
||||||
})
|
})
|
||||||
(pkgs.fetchFirefoxAddon {
|
(pkgs.fetchFirefoxAddon {
|
||||||
name = "unhook";
|
name = "invidious_redirect";
|
||||||
url = "https://addons.mozilla.org/firefox/downloads/file/4263531/youtube_recommended_videos-1.6.7.xpi";
|
url = "https://addons.mozilla.org/firefox/downloads/file/4292924/invidious_redirect_2-1.16.xpi";
|
||||||
hash = "sha256-u21ouN9IyOzkTkFSeDz+QBp9psJ1F2Nmsvqp6nh0DRU=";
|
hash = "sha256-ApCc+MNmW9Wd/5seV6npePQVEaszT/rhD9EB7HGiUb8=";
|
||||||
})
|
})
|
||||||
(pkgs.fetchFirefoxAddon {
|
|
||||||
name = "youtube_no_translation";
|
|
||||||
url = "https://addons.mozilla.org/firefox/downloads/file/4529979/youtube_no_translation-2.7.1.xpi";
|
|
||||||
hash = "sha256-HOLeSWt0phsR/l3FcCRUUFCurU2zyBuZBlynlxPbGqs=";
|
|
||||||
})
|
|
||||||
# (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 {
|
(pkgs.fetchFirefoxAddon {
|
||||||
name = "substitoot";
|
name = "substitoot";
|
||||||
|
@ -93,14 +84,13 @@ in
|
||||||
dev-edition-default = {
|
dev-edition-default = {
|
||||||
isDefault = true;
|
isDefault = true;
|
||||||
search.force = true;
|
search.force = true;
|
||||||
search.default = "ddg";
|
search.default = "DuckDuckGo";
|
||||||
settings = {
|
settings = {
|
||||||
"devtools.theme" = "auto";
|
"devtools.theme" = "auto";
|
||||||
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
|
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
|
||||||
|
"browser.tabs.inTitlebar" = if desktop == "sway" then 0 else 1;
|
||||||
"sidebar.position_start" = false; # Move sidebar to the right
|
"sidebar.position_start" = false; # Move sidebar to the right
|
||||||
|
|
||||||
"browser.tabs.groups.enabled" = true;
|
|
||||||
|
|
||||||
# enable media RDD to allow gpu acceleration
|
# enable media RDD to allow gpu acceleration
|
||||||
"media.rdd-ffmpeg.enabled" = true;
|
"media.rdd-ffmpeg.enabled" = true;
|
||||||
"media.rdd-ffvpx.enabled" = true;
|
"media.rdd-ffvpx.enabled" = true;
|
||||||
|
@ -117,6 +107,8 @@ in
|
||||||
"media.ffmpeg.vaapi.enabled" = true;
|
"media.ffmpeg.vaapi.enabled" = true;
|
||||||
"media.ffvpx.enabled" = true;
|
"media.ffvpx.enabled" = true;
|
||||||
|
|
||||||
|
"gfx.webrender.all" = true;
|
||||||
|
|
||||||
# Enable installing non signed extensions
|
# Enable installing non signed extensions
|
||||||
"extensions.langpacks.signatures.required" = false;
|
"extensions.langpacks.signatures.required" = false;
|
||||||
"xpinstall.signatures.required" = false;
|
"xpinstall.signatures.required" = false;
|
||||||
|
@ -127,22 +119,26 @@ in
|
||||||
"devtools.chrome.enabled" = true;
|
"devtools.chrome.enabled" = true;
|
||||||
"devtools.debugger.remote-enabled" = true;
|
"devtools.debugger.remote-enabled" = true;
|
||||||
};
|
};
|
||||||
userChrome = ''
|
userChrome =
|
||||||
#sidebar-main {
|
if desktop == "sway" then
|
||||||
background-color: ${color.bg};
|
''
|
||||||
}
|
#titlebar { display: none !important; }
|
||||||
|
#TabsToolbar { display: none !important; }
|
||||||
#tabbrowser-tabbox {
|
#sidebar-header { display: none !important; }
|
||||||
outline-width: 0 !important;
|
''
|
||||||
}
|
else
|
||||||
'';
|
"";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
wayland.windowManager.sway = {
|
wayland.windowManager.sway = {
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
exec firefox-devedition
|
exec firefox
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
home.sessionVariables = {
|
||||||
|
MOZ_ENABLE_WAYLAND = "1";
|
||||||
|
MOZ_DISABLE_RDD_SANDBOX = "1";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,6 +16,7 @@ in
|
||||||
user = {
|
user = {
|
||||||
name = username;
|
name = username;
|
||||||
email = mail.personal.user;
|
email = mail.personal.user;
|
||||||
|
signingkey = "2F8F21CE8721456B";
|
||||||
};
|
};
|
||||||
init.defaultBranch = "main";
|
init.defaultBranch = "main";
|
||||||
core = {
|
core = {
|
||||||
|
@ -24,6 +25,7 @@ in
|
||||||
};
|
};
|
||||||
commit = {
|
commit = {
|
||||||
verbose = true;
|
verbose = true;
|
||||||
|
gpgsign = true;
|
||||||
};
|
};
|
||||||
fetch = {
|
fetch = {
|
||||||
prune = true;
|
prune = true;
|
||||||
|
|
|
@ -43,7 +43,7 @@ lib.mkIf (config.my.desktop == "gnome") {
|
||||||
qt6Packages.qtstyleplugin-kvantum
|
qt6Packages.qtstyleplugin-kvantum
|
||||||
];
|
];
|
||||||
|
|
||||||
services.gpg-agent.pinentry.package = pkgs.pinentry-gnome;
|
services.gpg-agent.pinentryPackage = lib.mkForce pkgs.pinentry-gnome3;
|
||||||
|
|
||||||
xdg.defaultApplications = {
|
xdg.defaultApplications = {
|
||||||
enable = lib.mkForce false;
|
enable = lib.mkForce false;
|
||||||
|
|
|
@ -24,7 +24,6 @@
|
||||||
./mpv.nix
|
./mpv.nix
|
||||||
./mangohud.nix
|
./mangohud.nix
|
||||||
./gaming.nix
|
./gaming.nix
|
||||||
./lsfg-vk
|
|
||||||
./pipewire.nix
|
./pipewire.nix
|
||||||
./mimeapps.nix
|
./mimeapps.nix
|
||||||
./desktop-entries.nix
|
./desktop-entries.nix
|
||||||
|
@ -37,14 +36,13 @@
|
||||||
./pass.nix
|
./pass.nix
|
||||||
./pqiv.nix
|
./pqiv.nix
|
||||||
./zathura.nix
|
./zathura.nix
|
||||||
./satty
|
|
||||||
./man.nix
|
./man.nix
|
||||||
./mpd.nix
|
./mpd.nix
|
||||||
./sway
|
./sway
|
||||||
./gnome.nix
|
./gnome.nix
|
||||||
./thunar.nix
|
./thunar.nix
|
||||||
./xdg-dirs.nix
|
./xdg-dirs.nix
|
||||||
inputs.nix-index-database.homeModules.nix-index
|
inputs.nix-index-database.hmModules.nix-index
|
||||||
../settings
|
../settings
|
||||||
./powerplay-led-idle.nix
|
./powerplay-led-idle.nix
|
||||||
./rm-target.nix
|
./rm-target.nix
|
||||||
|
@ -149,14 +147,12 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
sops.age.keyFile = config.home.homeDirectory + "/.ssh/id_ed25519";
|
|
||||||
|
|
||||||
xdg.defaultApplications = {
|
xdg.defaultApplications = {
|
||||||
enable = true;
|
enable = true;
|
||||||
text-editor = lib.mkDefault "kak.desktop";
|
text-editor = lib.mkDefault "kak.desktop";
|
||||||
image-viewer = lib.mkDefault "pqiv.desktop";
|
image-viewer = lib.mkDefault "pqiv.desktop";
|
||||||
video-player = lib.mkDefault "mpv.desktop";
|
video-player = lib.mkDefault "mpv.desktop";
|
||||||
web-browser = lib.mkDefault "firefox-devedition.desktop";
|
web-browser = lib.mkDefault "firefox.desktop";
|
||||||
document-viewer = lib.mkDefault "org.pwmt.zathura.desktop";
|
document-viewer = lib.mkDefault "org.pwmt.zathura.desktop";
|
||||||
file-manager = lib.mkDefault "thunar.desktop";
|
file-manager = lib.mkDefault "thunar.desktop";
|
||||||
archive-manager = "engrampa.desktop";
|
archive-manager = "engrampa.desktop";
|
||||||
|
|
|
@ -82,9 +82,6 @@ in
|
||||||
rev = "1cc6baeb14b773916eb9209469aa77b3cfa67a0a";
|
rev = "1cc6baeb14b773916eb9209469aa77b3cfa67a0a";
|
||||||
sha256 = "sha256-3PLxG9UtT0MMSibvTviXQIgTH3rApZ3WSbNCEH3c7HE=";
|
sha256 = "sha256-3PLxG9UtT0MMSibvTviXQIgTH3rApZ3WSbNCEH3c7HE=";
|
||||||
};
|
};
|
||||||
buildInputs = with pkgs; [
|
|
||||||
python3Minimal
|
|
||||||
];
|
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
extraConfig =
|
extraConfig =
|
||||||
|
|
|
@ -15,16 +15,8 @@ hook global WinSetOption filetype=nix %{
|
||||||
set buffer formatcmd 'nixfmt'
|
set buffer formatcmd 'nixfmt'
|
||||||
}
|
}
|
||||||
|
|
||||||
hook global BufCreate .*\.json %{
|
|
||||||
set buffer formatcmd "prettier --stdin-filepath=%val{buffile}"
|
|
||||||
}
|
|
||||||
|
|
||||||
hook global BufCreate .*\.ya?ml %{
|
|
||||||
set buffer formatcmd "prettier --stdin-filepath=%val{buffile}"
|
|
||||||
}
|
|
||||||
|
|
||||||
hook global BufCreate .*\.html %{
|
hook global BufCreate .*\.html %{
|
||||||
set buffer formatcmd "prettier --stdin-filepath=%val{buffile}"
|
set buffer formatcmd 'prettier --parser html'
|
||||||
}
|
}
|
||||||
|
|
||||||
hook global BufCreate .*\.component\.html %{
|
hook global BufCreate .*\.component\.html %{
|
||||||
|
@ -43,23 +35,11 @@ hook global BufCreate .*\.php %{
|
||||||
}
|
}
|
||||||
|
|
||||||
hook global BufCreate .*\.js %{
|
hook global BufCreate .*\.js %{
|
||||||
set buffer formatcmd "prettier --stdin-filepath=%val{buffile}"
|
set buffer formatcmd 'prettier --parser babel'
|
||||||
}
|
|
||||||
|
|
||||||
hook global BufCreate .*\.jsx %{
|
|
||||||
set buffer formatcmd "prettier --stdin-filepath=%val{buffile}"
|
|
||||||
}
|
|
||||||
|
|
||||||
hook global BufCreate .*\.ts %{
|
|
||||||
set buffer formatcmd "prettier --stdin-filepath=%val{buffile}"
|
|
||||||
}
|
|
||||||
|
|
||||||
hook global BufCreate .*\.tsx %{
|
|
||||||
set buffer formatcmd "prettier --stdin-filepath=%val{buffile}"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
hook global BufCreate .*\.scss %{
|
hook global BufCreate .*\.scss %{
|
||||||
set buffer formatcmd "prettier --stdin-filepath=%val{buffile}"
|
set buffer formatcmd 'prettier --parser scss'
|
||||||
}
|
}
|
||||||
|
|
||||||
hook global BufCreate .*\.vue %{
|
hook global BufCreate .*\.vue %{
|
||||||
|
|
|
@ -1,40 +0,0 @@
|
||||||
{ pkgs, config, ... }:
|
|
||||||
let
|
|
||||||
LosslessDllPath = config.home.homeDirectory + "/.local/lib/Lossless.dll";
|
|
||||||
in
|
|
||||||
{
|
|
||||||
home.file = {
|
|
||||||
".local/share/vulkan/implicit_layer.d/VkLayer_LS_frame_generation.json".source =
|
|
||||||
"${pkgs.lsfg-vk}/share/vulkan/implicit_layer.d/VkLayer_LS_frame_generation.json";
|
|
||||||
".local/lib/liblsfg-vk.so".source = "${pkgs.lsfg-vk}/lib/liblsfg-vk.so";
|
|
||||||
};
|
|
||||||
|
|
||||||
home.sessionVariables = {
|
|
||||||
# ENABLE_LSFG = 1; # Don't enable session wide, to avoid bugs
|
|
||||||
LSFG_DLL_PATH = LosslessDllPath;
|
|
||||||
};
|
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
lsfg-vk
|
|
||||||
lsfg-vk-ui
|
|
||||||
];
|
|
||||||
|
|
||||||
# Put the dll in a reachable location for steam games
|
|
||||||
# Secrets normally are a symlink to /run/user/1000/secrets.d/
|
|
||||||
# Every time sops-nix.service runs, we copy the dll
|
|
||||||
systemd.user.services.copy-lsfg-dll = {
|
|
||||||
Service = {
|
|
||||||
ExecStart = pkgs.writeShellScript "copy-lsfg-dll" ''
|
|
||||||
cp -fv "${config.sops.secrets."lsfg.dll".path}" "${LosslessDllPath}"
|
|
||||||
'';
|
|
||||||
Type = "oneshot";
|
|
||||||
};
|
|
||||||
Unit.After = [ "sops-nix.service" ];
|
|
||||||
Install.WantedBy = [ "sops-nix.service" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
sops.secrets."lsfg.dll" = {
|
|
||||||
sopsFile = ../../secrets/lsfg.dll.gpg;
|
|
||||||
format = "binary";
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -17,9 +17,6 @@ in
|
||||||
toggle_preset = "Control_R+F9";
|
toggle_preset = "Control_R+F9";
|
||||||
fps_metrics = "Control_R+F8";
|
fps_metrics = "Control_R+F8";
|
||||||
|
|
||||||
media_player = false;
|
|
||||||
battery = false;
|
|
||||||
|
|
||||||
# legacy_layout = "false";
|
# legacy_layout = "false";
|
||||||
# gpu_stats = true;
|
# gpu_stats = true;
|
||||||
# gpu_temp = true;
|
# gpu_temp = true;
|
||||||
|
|
|
@ -27,10 +27,10 @@ set confirm_on_delete multiple
|
||||||
# Use non-default path for file preview script?
|
# Use non-default path for file preview script?
|
||||||
# ranger ships with scope.sh, a script that calls external programs (see
|
# ranger ships with scope.sh, a script that calls external programs (see
|
||||||
# README.md for dependencies) to preview images, archives, etc.
|
# README.md for dependencies) to preview images, archives, etc.
|
||||||
# set preview_script ~/.config/ranger/scope.sh
|
set preview_script ~/.config/ranger/scope.sh
|
||||||
|
|
||||||
# Use the external preview script or display simple plain text or image previews?
|
# Use the external preview script or display simple plain text or image previews?
|
||||||
# set use_preview_script true
|
set use_preview_script true
|
||||||
|
|
||||||
# Automatically count files in the directory, even before entering them?
|
# Automatically count files in the directory, even before entering them?
|
||||||
set automatically_count_files true
|
set automatically_count_files true
|
||||||
|
@ -40,7 +40,7 @@ set automatically_count_files true
|
||||||
set open_all_images true
|
set open_all_images true
|
||||||
|
|
||||||
# Be aware of version control systems and display information.
|
# Be aware of version control systems and display information.
|
||||||
set vcs_aware false
|
set vcs_aware true
|
||||||
|
|
||||||
# State of the four backends git, hg, bzr, svn. The possible states are
|
# State of the four backends git, hg, bzr, svn. The possible states are
|
||||||
# disabled, local (only show local info), enabled (show local and remote
|
# disabled, local (only show local info), enabled (show local and remote
|
||||||
|
|
|
@ -1,63 +0,0 @@
|
||||||
[general]
|
|
||||||
# Start Satty in fullscreen mode
|
|
||||||
fullscreen = true
|
|
||||||
# Exit directly after copy/save action
|
|
||||||
early-exit = true
|
|
||||||
# Draw corners of rectangles round if the value is greater than 0 (0 disables rounded corners)
|
|
||||||
corner-roundness = 12
|
|
||||||
# Select the tool on startup [possible values: pointer, crop, line, arrow, rectangle, text, marker, blur, brush]
|
|
||||||
initial-tool = "brush"
|
|
||||||
# Configure the command to be called on copy, for example `wl-copy`
|
|
||||||
copy-command = "wl-copy"
|
|
||||||
# Increase or decrease the size of the annotations
|
|
||||||
# annotation-size-factor = 2
|
|
||||||
# Filename to use for saving action. Omit to disable saving to file. Might contain format specifiers: https://docs.rs/chrono/latest/chrono/format/strftime/index.html
|
|
||||||
# output-filename = "/tmp/test-%Y-%m-%d_%H:%M:%S.png"
|
|
||||||
# After copying the screenshot, save it to a file as well
|
|
||||||
# save-after-copy = false
|
|
||||||
# Hide toolbars by default
|
|
||||||
# default-hide-toolbars = false
|
|
||||||
# Experimental: whether window focus shows/hides toolbars. This does not affect initial state of toolbars, see default-hide-toolbars.
|
|
||||||
# focus-toggles-toolbars = false
|
|
||||||
# The primary highlighter to use, the other is accessible by holding CTRL at the start of a highlight [possible values: block, freehand]
|
|
||||||
primary-highlighter = "block"
|
|
||||||
# Disable notifications
|
|
||||||
disable-notifications = true
|
|
||||||
# Actions to trigger on right click (order is important)
|
|
||||||
# [possible values: save-to-clipboard, save-to-file, exit]
|
|
||||||
# actions-on-right-click = []
|
|
||||||
# Actions to trigger on Enter key (order is important)
|
|
||||||
# [possible values: save-to-clipboard, save-to-file, exit]
|
|
||||||
# actions-on-enter = ["save-to-clipboard"]
|
|
||||||
# Actions to trigger on Escape key (order is important)
|
|
||||||
# [possible values: save-to-clipboard, save-to-file, exit]
|
|
||||||
# actions-on-escape = ["exit"]
|
|
||||||
# Action to perform when the Enter key is pressed [possible values: save-to-clipboard, save-to-file]
|
|
||||||
# Deprecated: use actions-on-enter instead
|
|
||||||
action-on-enter = "save-to-clipboard"
|
|
||||||
# Right click to copy
|
|
||||||
# Deprecated: use actions-on-right-click instead
|
|
||||||
# right-click-copy = false
|
|
||||||
# request no window decoration. Please note that the compositor has the final say in this. At this point. requires xdg-decoration-unstable-v1.
|
|
||||||
# no-window-decoration = true
|
|
||||||
# experimental feature: adjust history size for brush input smooting (0: disabled, default: 0, try e.g. 5 or 10)
|
|
||||||
# brush-smooth-history-size = 10
|
|
||||||
|
|
||||||
# Font to use for text annotations
|
|
||||||
[font]
|
|
||||||
family = "Roboto"
|
|
||||||
style = "Bold"
|
|
||||||
|
|
||||||
# Custom colours for the colour palette
|
|
||||||
[color-palette]
|
|
||||||
# These will be shown in the toolbar for quick selection
|
|
||||||
palette = [
|
|
||||||
"#ff0000",
|
|
||||||
"#00ffff",
|
|
||||||
"#a52a2a",
|
|
||||||
"#dc143c",
|
|
||||||
"#ff1493",
|
|
||||||
"#ffd700",
|
|
||||||
"#008000",
|
|
||||||
]
|
|
||||||
|
|
|
@ -1,22 +0,0 @@
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.my.satty;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.my.satty.enable = lib.mkEnableOption { };
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
xdg.configFile."satty/config.toml" = {
|
|
||||||
source = ./config.toml;
|
|
||||||
};
|
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
satty
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -20,7 +20,6 @@ in
|
||||||
./swayidle.nix
|
./swayidle.nix
|
||||||
./swaylock.nix
|
./swaylock.nix
|
||||||
./theme.nix
|
./theme.nix
|
||||||
./gammastep.nix
|
|
||||||
];
|
];
|
||||||
|
|
||||||
options.my.sway.enable = lib.mkEnableOption { };
|
options.my.sway.enable = lib.mkEnableOption { };
|
||||||
|
@ -32,9 +31,7 @@ in
|
||||||
my.swaylock.enable = true;
|
my.swaylock.enable = true;
|
||||||
my.mpd.enable = true;
|
my.mpd.enable = true;
|
||||||
my.zathura.enable = true;
|
my.zathura.enable = true;
|
||||||
my.satty.enable = true;
|
|
||||||
my.waybar.enable = true;
|
my.waybar.enable = true;
|
||||||
my.gammastep.enable = true;
|
|
||||||
|
|
||||||
wayland.windowManager.sway = {
|
wayland.windowManager.sway = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -118,18 +115,19 @@ in
|
||||||
exec_always systemctl --user restart waybar.service
|
exec_always systemctl --user restart waybar.service
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
services.gammastep = {
|
||||||
|
enable = true;
|
||||||
|
provider = "geoclue2";
|
||||||
|
};
|
||||||
|
|
||||||
services.kdeconnect = {
|
services.kdeconnect = {
|
||||||
enable = true;
|
enable = true;
|
||||||
indicator = true;
|
indicator = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
services.gpg-agent.pinentry.package = pkgs.pinentry-all;
|
services.gpg-agent.pinentryPackage = pkgs.pinentry-all;
|
||||||
|
|
||||||
xdg.configFile."OpenTabletDriver/settings.json" = {
|
xdg.configFile."OpenTabletDriver/settings.json".source = ./open-tablet-driver.json;
|
||||||
force = true;
|
|
||||||
source = ./open-tablet-driver.json;
|
|
||||||
};
|
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
mySway
|
mySway
|
||||||
|
@ -154,7 +152,6 @@ in
|
||||||
wl-clipboard
|
wl-clipboard
|
||||||
wtype
|
wtype
|
||||||
wl-crosshair
|
wl-crosshair
|
||||||
caffeinated
|
|
||||||
|
|
||||||
grim
|
grim
|
||||||
satty
|
satty
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
let
|
|
||||||
cfg = config.my.gammastep;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.my.gammastep.enable = lib.mkEnableOption { };
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
services.gammastep = {
|
|
||||||
enable = true;
|
|
||||||
dawnTime = "6:00-7:45";
|
|
||||||
duskTime = "18:35-20:15";
|
|
||||||
temperature = {
|
|
||||||
day = 6500;
|
|
||||||
night = 4500;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -20,28 +20,26 @@ in
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
services.mako = {
|
services.mako = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
borderSize = 2;
|
||||||
settings = {
|
|
||||||
border-size = 2;
|
|
||||||
padding = "5";
|
padding = "5";
|
||||||
margin = "15";
|
margin = "15";
|
||||||
layer = "overlay";
|
layer = "overlay";
|
||||||
|
|
||||||
font = "${font.interface} ${toString font.size.small}";
|
font = "${font.interface} ${toString font.size.small}";
|
||||||
text-color = color.txt;
|
textColor = color.txt;
|
||||||
|
|
||||||
background-color = color.bg;
|
backgroundColor = color.bg;
|
||||||
border-color = accent.color;
|
borderColor = accent.color;
|
||||||
progress-color = "over ${accent.color}88";
|
progressColor = "over ${accent.color}88";
|
||||||
|
|
||||||
default-timeout = 10000;
|
defaultTimeout = 10000;
|
||||||
|
|
||||||
"app-name=volumesh" = {
|
extraConfig = ''
|
||||||
"default-timeout" = "5000";
|
[app-name=volumesh]
|
||||||
"group-by" = "app-name";
|
default-timeout=5000
|
||||||
"format" = "<b>%s</b>\\n%b";
|
group-by=app-name
|
||||||
};
|
format=<b>%s</b>\n%b
|
||||||
};
|
'';
|
||||||
|
|
||||||
# # {{@@ header() @@}}
|
# # {{@@ header() @@}}
|
||||||
# # text
|
# # text
|
||||||
|
|
|
@ -19,7 +19,7 @@ let
|
||||||
'';
|
'';
|
||||||
_suspend = pkgs.writeShellScriptBin "_suspend" ''
|
_suspend = pkgs.writeShellScriptBin "_suspend" ''
|
||||||
${pkgs.sway}/bin/swaymsg mode default
|
${pkgs.sway}/bin/swaymsg mode default
|
||||||
pkill caffeinated || true
|
systemctl --user start swayidle.service
|
||||||
systemctl suspend
|
systemctl suspend
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
@ -143,7 +143,7 @@ let
|
||||||
|
|
||||||
system_binds = {
|
system_binds = {
|
||||||
"--locked Ctrl+${mod}+z" = "exec ${_suspend}/bin/_suspend";
|
"--locked Ctrl+${mod}+z" = "exec ${_suspend}/bin/_suspend";
|
||||||
"${mod}+Alt+c" = "exec pkill caffeinated || exec caffeinated";
|
"${mod}+Alt+c" = "exec ${pkgs._sway_idle_toggle}/bin/_sway_idle_toggle";
|
||||||
};
|
};
|
||||||
|
|
||||||
screenshot_binds = {
|
screenshot_binds = {
|
||||||
|
@ -172,7 +172,7 @@ let
|
||||||
"${mod}+Return" = "exec ${terminal}";
|
"${mod}+Return" = "exec ${terminal}";
|
||||||
"${mod}+Ctrl+Return" = "exec thunar";
|
"${mod}+Ctrl+Return" = "exec thunar";
|
||||||
"${mod}+Shift+s" = ''
|
"${mod}+Shift+s" = ''
|
||||||
exec grim - | satty --filename - --output-filename "$(xdg-user-dir PICTURES)"/Screenshots/satty-$(date '+%Y%m%d-%H:%M:%S').png
|
exec grim - | satty --filename - --fullscreen --output-filename "$(xdg-user-dir PICTURES)"/Screenshots/satty-$(date '+%Y%m%d-%H:%M:%S').png
|
||||||
'';
|
'';
|
||||||
"${mod}+Ctrl+v" = "exec wl-paste | tesseract -l por - - | wl-copy";
|
"${mod}+Ctrl+v" = "exec wl-paste | tesseract -l por - - | wl-copy";
|
||||||
"${mod}+k" = "exec showkeys";
|
"${mod}+k" = "exec showkeys";
|
||||||
|
|
|
@ -21,7 +21,8 @@ lib.mkIf (desktop == "sway") {
|
||||||
package = pkgs.bibata-cursors;
|
package = pkgs.bibata-cursors;
|
||||||
gtk.enable = true;
|
gtk.enable = true;
|
||||||
};
|
};
|
||||||
gtk = {
|
gtk =
|
||||||
|
{
|
||||||
enable = true;
|
enable = true;
|
||||||
font = {
|
font = {
|
||||||
name = font.interface;
|
name = font.interface;
|
||||||
|
@ -54,7 +55,7 @@ lib.mkIf (desktop == "sway") {
|
||||||
qt = {
|
qt = {
|
||||||
enable = true;
|
enable = true;
|
||||||
platformTheme.name = "gtk3";
|
platformTheme.name = "gtk3";
|
||||||
style.name = "kvantum";
|
style.name = "qt5ct";
|
||||||
};
|
};
|
||||||
|
|
||||||
dconf.settings = {
|
dconf.settings = {
|
||||||
|
@ -69,6 +70,28 @@ lib.mkIf (desktop == "sway") {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# fonts.fontconfig.enable = true;
|
||||||
|
xdg.configFile = {
|
||||||
|
"qt5ct/qt5ct.conf".text = ''
|
||||||
|
[Appearance]
|
||||||
|
# color_scheme_path=/nix/store/f07mk0vrm47jxw3y5v99hxncy0w4vcyq-qt5ct-1.5/share/qt5ct/colors/darker.conf
|
||||||
|
custom_palette=false
|
||||||
|
icon_theme=${icon_theme}
|
||||||
|
standard_dialogs=default
|
||||||
|
style=kvantum-dark
|
||||||
|
|
||||||
|
# [Fonts]
|
||||||
|
# fixed=@Variant(\0\0\0@\0\0\0\x1c\0H\0\x61\0\x63\0k\0 \0N\0\x65\0r\0\x64\0 \0\x46\0o\0n\0t@(\0\0\0\0\0\0\xff\xff\xff\xff\x5\x1\0\x32\x10)
|
||||||
|
# general=@Variant(\0\0\0@\0\0\0\x1e\0L\0i\0\x62\0\x65\0r\0\x61\0t\0i\0o\0n\0 \0S\0\x61\0n\0s@(\0\0\0\0\0\0\xff\xff\xff\xff\x5\x1\0\x32\x10)
|
||||||
|
'';
|
||||||
|
"kdedefaults/kdeglobals".text = ''
|
||||||
|
[General]
|
||||||
|
ColorScheme=BreezeDark
|
||||||
|
|
||||||
|
[Icons]
|
||||||
|
Theme=${icon_theme}
|
||||||
|
'';
|
||||||
|
};
|
||||||
services.xsettingsd = {
|
services.xsettingsd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
@ -82,6 +105,11 @@ lib.mkIf (desktop == "sway") {
|
||||||
};
|
};
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
|
libsForQt5.qt5ct
|
||||||
|
libsForQt5.qtstyleplugin-kvantum
|
||||||
|
qt6Packages.qt6ct
|
||||||
|
qt6Packages.qtstyleplugin-kvantum
|
||||||
|
|
||||||
pkgs.bibata-cursors
|
pkgs.bibata-cursors
|
||||||
pkgs.orchis_theme_compact
|
pkgs.orchis_theme_compact
|
||||||
pkgs.papirus_red
|
pkgs.papirus_red
|
||||||
|
@ -91,6 +119,7 @@ lib.mkIf (desktop == "sway") {
|
||||||
hack-font
|
hack-font
|
||||||
font-awesome_5
|
font-awesome_5
|
||||||
fira-code
|
fira-code
|
||||||
|
nerdfonts_fira_hack
|
||||||
material-wifi-icons
|
material-wifi-icons
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -115,7 +115,7 @@ rec {
|
||||||
};
|
};
|
||||||
|
|
||||||
dmenu = "bmenu";
|
dmenu = "bmenu";
|
||||||
desktop = "sway";
|
desktop = "gnome";
|
||||||
browser = "firefox-devedition";
|
browser = "firefox";
|
||||||
editor = "kakoune";
|
editor = "kakoune";
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
programs.vscode = {
|
programs.vscode = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.vscodium;
|
package = pkgs.vscodium;
|
||||||
profiles.default.extensions = with pkgs.vscode-extensions; [
|
extensions = with pkgs.vscode-extensions; [
|
||||||
jnoortheen.nix-ide
|
jnoortheen.nix-ide
|
||||||
github.github-vscode-theme
|
github.github-vscode-theme
|
||||||
rust-lang.rust-analyzer
|
rust-lang.rust-analyzer
|
||||||
|
|
|
@ -3,10 +3,12 @@
|
||||||
osConfig,
|
osConfig,
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
|
font,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
inherit (config.my)
|
inherit (config.my)
|
||||||
|
key
|
||||||
theme
|
theme
|
||||||
accent
|
accent
|
||||||
font
|
font
|
||||||
|
@ -168,8 +170,8 @@ in
|
||||||
};
|
};
|
||||||
"custom/caffeine" = {
|
"custom/caffeine" = {
|
||||||
format = "{}";
|
format = "{}";
|
||||||
exec = "pgrep caffeinated > /dev/null && echo '' || echo '' ";
|
exec = "systemctl --user status swayidle > /dev/null && echo || echo ";
|
||||||
on-click = "pkill caffeinated || exec caffeinated";
|
on-click = "${pkgs._sway_idle_toggle}/bin/_sway_idle_toggle";
|
||||||
interval = 1;
|
interval = 1;
|
||||||
tooltip = false;
|
tooltip = false;
|
||||||
};
|
};
|
||||||
|
@ -232,7 +234,10 @@ in
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
style = pkgs.replaceVars ./style.css {
|
style = builtins.readFile (
|
||||||
|
pkgs.substituteAll {
|
||||||
|
src = ./style.css;
|
||||||
|
|
||||||
accent_color = accent.color;
|
accent_color = accent.color;
|
||||||
|
|
||||||
color_bg = color.bg;
|
color_bg = color.bg;
|
||||||
|
@ -244,7 +249,8 @@ in
|
||||||
|
|
||||||
font_size_big = "${toString font.size.big}px";
|
font_size_big = "${toString font.size.big}px";
|
||||||
font_size_medium = "${toString font.size.medium}px";
|
font_size_medium = "${toString font.size.medium}px";
|
||||||
};
|
}
|
||||||
|
);
|
||||||
};
|
};
|
||||||
home.packages = with pkgs; [ waybar ];
|
home.packages = with pkgs; [ waybar ];
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
inputs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
|
@ -21,4 +24,9 @@ in
|
||||||
videos = "${HOME}/Vídeos";
|
videos = "${HOME}/Vídeos";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
home.sessionVariables = {
|
||||||
|
CARGO_HOME = "${config.xdg.dataHome}/cargo";
|
||||||
|
RUSTUP_HOME = "${config.xdg.dataHome}/rustup";
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue