Compare commits

..

No commits in common. "main" and "refactor" have entirely different histories.

65 changed files with 473 additions and 1302 deletions

2
.gitattributes vendored
View file

@ -1,2 +0,0 @@
flake.lock binary
*.gpg binary

View file

@ -1,28 +0,0 @@
keys:
- &lelgenio-gpg 0FECE8316E74BA6F44EFC21A2F8F21CE8721456B
- &lelgenio-ssh age1zrgu7w8059xydagm60phnffghvfe9h2ca58cx8qwagqpyfuvs9fqw79c8h
- &monolith-ssh age1ecyynwv93lfu7crjjp8l47defv07quzfzaktwurpep7jc9eha5pscg7lrw
- &phantom-ssh age1m4mqcd2kmuhfr8a22rvh02c68jkakhdfmuqgtusuv0czk4jvna7sz79p3y
creation_rules:
- path_regex: secrets/[^/]+\.(yaml|json|env|ini|gpg)$
key_groups:
- pgp:
- *lelgenio-gpg
age:
- *lelgenio-ssh
- *monolith-ssh
- path_regex: secrets/monolith/[^/]+\.(yaml|json|env|ini|gpg)$
key_groups:
- pgp:
- *lelgenio-gpg
age:
- *lelgenio-ssh
- *monolith-ssh
- path_regex: secrets/phantom/[^/]+\.(yaml|json|env|ini|gpg)$
key_groups:
- pgp:
- *lelgenio-gpg
age:
- *lelgenio-ssh
- *phantom-ssh

242
flake.lock generated
View file

@ -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": 1740485968,
"narHash": "sha256-7lrVrE0jSvZHrxEzvnfHFE/Wkk9DDqb+mYCodI5uuB8=", "narHash": "sha256-WK+PZHbfDjLyveXAxpnrfagiFgZWaTJglewBWniTn2Y=",
"owner": "nix-community", "owner": "nix-community",
"repo": "disko", "repo": "disko",
"rev": "545aba02960caa78a31bd9a8709a0ad4b6320a5c", "rev": "19c1140419c4f1cdf88ad4c1cfb6605597628940",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -243,11 +227,11 @@
"nixpkgs": "nixpkgs_3" "nixpkgs": "nixpkgs_3"
}, },
"locked": { "locked": {
"lastModified": 1749410315, "lastModified": 1739502527,
"narHash": "sha256-5H8MuMMSq1WnQcvb1FiDNkKP+uyeZ8HX5GRTMfEOyLI=", "narHash": "sha256-KMLNOCWmqdDeAZV5O1ccRmVqRutDcy4IONJin3lzd0Q=",
"owner": "lelgenio", "owner": "lelgenio",
"repo": "dzgui-nix", "repo": "dzgui-nix",
"rev": "49adbb1edfb3c25b0cd8256d35673394386065e7", "rev": "06fcea9445b5a005b40469a69f57f2147398bc94",
"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": 1739757849,
"narHash": "sha256-oV695RvbAE4+R9pcsT9shmp6zE/+IZe6evHWX63f2Qg=", "narHash": "sha256-Gs076ot1YuAAsYVcyidLKUMIc4ooOaRGO0PqTY7sBzA=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "fc3add429f21450359369af74c2375cb34a2d204", "rev": "9d3d080aec2a35e05a15cedd281c2384767c2cfe",
"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": 1740281615,
"narHash": "sha256-YL71IEf2OugH3gmAsxQox6BJI0KOcHKtW2QqT/+s2SA=", "narHash": "sha256-dZWcbAQ1sF8oVv+zjSKkPVY0ebwENQEkz5vc6muXbKY=",
"owner": "Mic92", "owner": "Mic92",
"repo": "nix-index-database", "repo": "nix-index-database",
"rev": "b7fcd4e26d67fca48e77de9b0d0f954b18ae9562", "rev": "465792533d03e6bb9dc849d58ab9d5e31fac9023",
"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": 1740437053,
"narHash": "sha256-BW3ktviEhfCN/z3+kEyzpDKAI8qFTwO7+S0NVA0C90o=", "narHash": "sha256-exPTta4qI1ka9sk+jPcLogGffJ1OVXnAsTRqpeAXeNw=",
"owner": "simple-nixos-mailserver", "owner": "simple-nixos-mailserver",
"repo": "nixos-mailserver", "repo": "nixos-mailserver",
"rev": "53007af63fade28853408370c4c600a63dd97f41", "rev": "c8ec4d5e432f5df4838eacd39c11828d23ce66ec",
"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": 1740367490,
"narHash": "sha256-Q/I2xJn/j1wpkGhWkQnm20nShYnG7TI99foDBpXm1SY=", "narHash": "sha256-WGaHVAjcrv+Cun7zPlI41SerRtfknGQap281+AakSAw=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "5b09dc45f24cf32316283e62aec81ffee3c3e376", "rev": "0196c0175e9191c474c26ab5548db27ef5d34b05",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -714,26 +612,26 @@
}, },
"nixpkgs_5": { "nixpkgs_5": {
"locked": { "locked": {
"lastModified": 1754292888, "lastModified": 1740339700,
"narHash": "sha256-1ziydHSiDuSnaiPzCQh1mRFBsM2d2yRX9I+5OPGEmIE=", "narHash": "sha256-cbrw7EgQhcdFnu6iS3vane53bEagZQy/xyIkDWpCgVE=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "ce01daebf8489ba97bd1609d185ea276efdeb121", "rev": "04ef94c4c1582fd485bbfdb8c4a8ba250e359195",
"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,23 +709,19 @@
"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",
"sops-nix": "sops-nix",
"tlauncher": "tlauncher", "tlauncher": "tlauncher",
"tomater": "tomater", "tomater": "tomater",
"treefmt-nix": "treefmt-nix", "treefmt-nix": "treefmt-nix",
@ -881,26 +775,6 @@
"type": "github" "type": "github"
} }
}, },
"sops-nix": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1754328224,
"narHash": "sha256-glPK8DF329/dXtosV7YSzRlF4n35WDjaVwdOMEoEXHA=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "49021900e69812ba7ddb9e40f9170218a7eca9f4",
"type": "github"
},
"original": {
"owner": "Mic92",
"repo": "sops-nix",
"type": "github"
}
},
"systems": { "systems": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1681028828,
@ -1020,11 +894,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 +922,11 @@
"nixpkgs": "nixpkgs_6" "nixpkgs": "nixpkgs_6"
}, },
"locked": { "locked": {
"lastModified": 1754061284, "lastModified": 1739829690,
"narHash": "sha256-ONcNxdSiPyJ9qavMPJYAXDNBzYobHRxw0WbT38lKbwU=", "narHash": "sha256-mL1szCeIsjh6Khn3nH2cYtwO5YXG6gBiTw1A30iGeDU=",
"owner": "numtide", "owner": "numtide",
"repo": "treefmt-nix", "repo": "treefmt-nix",
"rev": "58bd4da459f0a39e506847109a2a5cfceb837796", "rev": "3d0579f5cc93436052d94b73925b48973a104204",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1063,11 +937,11 @@
}, },
"vpsadminos": { "vpsadminos": {
"locked": { "locked": {
"lastModified": 1754243274, "lastModified": 1740082937,
"narHash": "sha256-gVTM1eIYzHx/Z/2WVhhf3Eov3JuARF5fuIrWjvc73wo=", "narHash": "sha256-HcTWGIzG2leM0gZabg9lkY7iLwvAe49lqXEzez/Rp/s=",
"owner": "vpsfreecz", "owner": "vpsfreecz",
"repo": "vpsadminos", "repo": "vpsadminos",
"rev": "483e04c5556e7a42a0dcd176caab7ad450244515", "rev": "521427c69173bc443de940ba88d4f58d5fa8d8e2",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1102,11 +976,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": {

117
flake.nix
View file

@ -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";
@ -29,25 +26,15 @@
inputs.home-manager.follows = "home-manager"; inputs.home-manager.follows = "home-manager";
}; };
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
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 +51,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,41 +91,39 @@
specialArgs = { specialArgs = {
inherit inputs; inherit inputs;
}; };
common_modules = [ common_modules =
{ nixpkgs.pkgs = pkgs; } [
./system/configuration.nix { nixpkgs.pkgs = pkgs; }
./system/secrets.nix ./system/configuration.nix
./system/sops.nix ./system/secrets.nix
./system/greetd.nix ./system/greetd.nix
{ login-manager.greetd.enable = desktop == "sway"; } { login-manager.greetd.enable = desktop == "sway"; }
inputs.agenix.nixosModules.default inputs.agenix.nixosModules.default
inputs.sops-nix.nixosModules.default inputs.home-manager.nixosModules.home-manager
inputs.home-manager.nixosModules.home-manager inputs.disko.nixosModules.disko
inputs.disko.nixosModules.disko (
( { config, ... }:
{ config, ... }: {
{ home-manager.useGlobalPkgs = true;
home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true;
home-manager.useUserPackages = true; home-manager.users.lelgenio = {
home-manager.users.lelgenio = { my = config.my;
my = config.my; imports = [
imports = [ ./user/home.nix
./user/home.nix ];
inputs.sops-nix.homeManagerModules.sops };
]; home-manager.backupFileExtension = "bkp";
}; # Optionally, use home-manager.extraSpecialArgs to pass
home-manager.backupFileExtension = "bkp"; # arguments to home.nix
# Optionally, use home-manager.extraSpecialArgs to pass home-manager.extraSpecialArgs = {
# arguments to home.nix inherit inputs;
home-manager.extraSpecialArgs = { };
inherit inputs; }
}; )
} ]
) ++ lib.optional (desktop == "gnome") ./system/gnome.nix
] ++ lib.optional (desktop == "kde") ./system/kde.nix;
++ lib.optional (desktop == "gnome") ./system/gnome.nix
++ lib.optional (desktop == "kde") ./system/kde.nix;
in in
{ {
checks."${system}" = { checks."${system}" = {
@ -160,28 +141,26 @@
./system/monolith-gitlab-runner.nix ./system/monolith-gitlab-runner.nix
./system/monolith-forgejo-runner.nix ./system/monolith-forgejo-runner.nix
./system/nix-serve.nix ./system/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
] ./system/rainbow-gitlab-runner.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 ++ [
++ [ {
{ packages.media-packages.enable = lib.mkOverride 0 false;
packages.media-packages.enable = lib.mkOverride 0 false; services.flatpak.enable = lib.mkOverride 0 false;
services.flatpak.enable = lib.mkOverride 0 false; }
} ];
];
}; };
phantom = lib.nixosSystem { phantom = lib.nixosSystem {
inherit system specialArgs; inherit system specialArgs;

View file

@ -19,8 +19,6 @@ in
{ {
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
my.nix-ld.enable = true;
boot.initrd.availableKernelModules = [ boot.initrd.availableKernelModules = [
"xhci_pci" "xhci_pci"
"ahci" "ahci"

View file

@ -14,11 +14,12 @@ in
boot.initrd.kernelModules = [ "amdgpu" ]; boot.initrd.kernelModules = [ "amdgpu" ];
boot.kernelParams = [ boot.kernelParams = [
"video=DP-1:1920x1080@144" "video=DP-1:1920x1080@144"
"amdgpu.ppfeaturemask=0xfffd7fff" # enable undervolting
]; ];
systemd.services.amd-fan-control = { systemd.services.amd-fan-control = {
script = '' script = ''
${lib.getExe pkgs.amd-fan-control} /sys/class/drm/card1/device 60 90 0 80 ${lib.getExe pkgs.amd-fan-control} /sys/class/drm/card1/device 60 85
''; '';
serviceConfig = { serviceConfig = {
Restart = "always"; Restart = "always";
@ -27,13 +28,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; [

View file

@ -42,7 +42,6 @@ in
}; };
my.gaming.enable = true; my.gaming.enable = true;
my.nix-ld.enable = true;
boot.extraModulePackages = with config.boot.kernelPackages; [ zenpower ]; boot.extraModulePackages = with config.boot.kernelPackages; [ zenpower ];
@ -94,8 +93,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 +101,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 +109,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 +117,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 +143,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 = {

View file

@ -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;
@ -23,12 +23,11 @@
systemd.services.factorio-backup-save = { systemd.services.factorio-backup-save = {
description = "Backup factorio saves"; description = "Backup factorio saves";
script = '' script = ''
FILENAME="space-age-$(date --iso=seconds | tr ':' '_').zip"
${lib.getExe pkgs.rsync} \ ${lib.getExe pkgs.rsync} \
-av \ -av \
--chown=lelgenio \ --chown=lelgenio \
/var/lib/factorio/saves/default.zip \ /var/lib/factorio/saves/default.zip \
~lelgenio/Documentos/GameSaves/factorio_saves/$FILENAME ~lelgenio/Documentos/GameSaves/factorio_saves/space-age-$(date --iso=seconds).zip
''; '';
serviceConfig.Type = "oneshot"; serviceConfig.Type = "oneshot";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];

View file

@ -2,16 +2,12 @@
config, config,
pkgs, pkgs,
inputs, inputs,
lib,
... ...
}: }:
{ {
imports = [ imports = [
inputs.vpsadminos.nixosConfigurations.container inputs.vpsadminos.nixosConfigurations.container
inputs.agenix.nixosModules.default inputs.agenix.nixosModules.default
inputs.sops-nix.nixosModules.default
../../system/sops.nix
../../system/nix.nix ../../system/nix.nix
./hardware-config.nix ./hardware-config.nix
./mastodon.nix ./mastodon.nix
@ -53,7 +49,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;
@ -61,15 +57,6 @@
identityPaths = [ "/root/.ssh/id_rsa" ]; identityPaths = [ "/root/.ssh/id_rsa" ];
}; };
sops = {
secrets.hello = { };
defaultSopsFile = lib.mkForce ../../secrets/phantom/default.yaml;
};
environment.etc."teste-sops" = {
text = config.sops.secrets.hello.path;
};
virtualisation.docker = { virtualisation.docker = {
enable = true; enable = true;
daemon.settings = { daemon.settings = {

View file

@ -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" ];
''; '';
}; };
} }

View file

@ -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;
};
} }

View file

@ -5,7 +5,7 @@
options = [ "nofail" ]; options = [ "nofail" ];
}; };
fileSystems."/var/lib/mastodon" = { fileSystems."/var/lib/mastodon" = {
device = "172.16.131.19:/nas/5749/mastodon"; device = "172.16.130.7:/nas/5749/mastodon";
fsType = "nfs"; fsType = "nfs";
options = [ "nofail" ]; options = [ "nofail" ];
}; };

View file

@ -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;
}; };
}; };

View file

@ -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;

View file

@ -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 ];
};
}

View file

@ -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;
}; };
} }

View file

@ -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.28";
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-6pk3tq3HoY4XpOHmSZLsOJQHSXs25oKAuxT83UyITdM=";
}; };
}) })

11
scripts/_sway_idle_toggle Executable file
View 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

View file

@ -2,144 +2,60 @@
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" fi
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 )) TEMP_INPUT="$HWMON/temp2_input"
}
clamp() { if ! [ -f $TEMP_INPUT ]; then
VALUE="$1" bail "Invalid TEMP_INPUT"
fi
MIN="$2" TEMP_MIN="$2"
MAX="$3" TEMP_MAX="$3"
VALUE=$VALUE if [ -z "$TEMP_MIN" ];then
if [ "$VALUE" -gt $MAX ]; then bail "No minimum temperature provided"
VALUE=$MAX fi
elif [ "$VALUE" -lt $MIN ]; then
VALUE=$MIN
fi
echo $VALUE if [ -z "$TEMP_MAX" ];then
} bail "No maximum temperature provided"
fi
cleanup() { PWM_MIN=0
echo "Setting controll to auto" >&2 PWM_MAX=255
if test -f "$HWMON/pwm1_enable"; then
echo 2 > "$HWMON/pwm1_enable"
fi
}
trap cleanup EXIT INT
usage() { echo "Running..." >&2
echo "Usage: $0 <device> <min-temp> <max-temp> <min-fan> <max-fan>" >&2 while true; do
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_MIN="$2"
TEMP_MAX="$3"
PWM_MIN_PCT="$4"
PWM_MAX_PCT="$5"
}
validate_variables() {
if ! [ -d "$HWMON" ]; then
bail "Invalid drm-device: '$HWMON' is not a directory"
fi
if ! [ -f "$TEMP_INPUT" ]; then
bail "Error: Could not find hotspot temperature at '$TEMP_INPUT'"
fi
if [ -z "$TEMP_MIN" -o -z "$TEMP_MAX" -o -z "$PWM_MIN_PCT" -o -z "$PWM_MAX_PCT" ];then
usage
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
if test -n "$AMDGPU_FAN_CRONTROL_DEBUG"; then
echo "TEMP_MIN=$TEMP_MIN°C" >&2
echo "TEMP_MAX=$TEMP_MAX°C" >&2
echo "FAN_MIN=$PWM_MIN_PCT% (PWM=$PWM_MIN)" >&2
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"
PREV_PWM=0
}
main_loop() {
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 echo 1 > "$HWMON/pwm1_enable"
echo "$NEXT_PWM" > "$HWMON/pwm1" echo "$PWM" > "$HWMON/pwm1"
# Wait for next iteratino
PREV_PWM="$NEXT_PWM"
sleep .1s sleep .1s
} done
main() {
parse_cli "$@"
validate_variables
setup
while true; do
main_loop
done
}
main "$@"

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -1,49 +0,0 @@
forgejo-runners:
git.lelgenio.com-default: ENC[AES256_GCM,data:sEfpBZvgQUkyXPWY4RI0RPJWUbsYK/RGqiYJ5wDSVY9a0EYenyt96QYq6815evq2iQ==,iv:rSWnCOdhfKH4TM9R0/IParYd9laYhWxR+iUhgkVvqfc=,tag:mBcSH/oGDMBgBScvCdn3Zg==,type:str]
gitlab-runners:
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]
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]
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-ssh-nix-cache-pub: ENC[AES256_GCM,data:F+QHv9wwgyQYobKwyG13tS2OKCZuBPKLe7RLkhxsqYmVEtkCnli9jG+unMp7MC5L0i3puNqfoXP2IC6g4ESHq1yE0ksUpUCHzps4oMZBQK9b5JcqXQs+c//hskTQ/sFmTfGPpdnQ7wAifnQf5Mx2E4RwiRznMgJGQ3RDDjg9xfWUyvw6PlslZH65aGrq3P/iURvj,iv:u34+rXKLcZjBlVJmdbf60I82Fb621lUjOBmR4CTJWGk=,tag:ToPtBIz3bgzAUKc6hh4Oxg==,type:str]
sops:
age:
- recipient: age1zrgu7w8059xydagm60phnffghvfe9h2ca58cx8qwagqpyfuvs9fqw79c8h
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBlaFFtOHRBNjZqOXJOV1Bk
SXRhZTdNWklKaTZST2JhU3VFLzBGSWY0QlMwCldwS1hhMDEyZDAxWUlRRXZtTWts
Ti9IOUR2OFdGYkJ4cFRsV0lkbWJvb1EKLS0tIEJUS1ZCZ1M4ZUs5cDhiam5JaEk1
U1VjNFprNHZWeDhwU3owRXh0MlBFYkUKHPgxz9/w3+JEtOljfyWBPSshfFlVWVys
f15yxlAeWIZVEGqoau7DegVdZiYYIJR2dFBXV1RkKbAwLrbUxAQidg==
-----END AGE ENCRYPTED FILE-----
- recipient: age1ecyynwv93lfu7crjjp8l47defv07quzfzaktwurpep7jc9eha5pscg7lrw
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5OWk0cTJ4d25Qd0hrdkFD
a2Fzd1lrMDREclkvRmxUSjFpYXZvRGs2Rm13Cm5aRVZDWE5ZUVR1K2hkZkdKWjYw
K3lKNndBNGFveGVGVWplaHA0MVlYUG8KLS0tIFlVeXhCTGJGUm1HK2RCSFg1RnI3
aFVxcDFhaGdYekRWRVFIWnRsZndtZFkKgsvxOFHOcO306Z9FkucA1fDOpZA8N1/h
jYmIgcKTFgWoSCvux67lK30jFsYp7sm5z6WxxDYsGcoQ/+pxoUX2jQ==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2025-07-16T15:17:16Z"
mac: ENC[AES256_GCM,data:UKIJFzABE0vr7vSYL85iZdTvd0y3dN/MaBUoKf6OpcDtRphM8/yY5J0Xq6XM5f28WFN1GlSKUekQz+DkA6aR6aCI2SICVOJpFb/eXKQ3Y7Td+PGcBr07hFOGCSu2vAzgYB1ZnajfI659FcWmdOoJSYgHUz3G7iRTHHCRVcoaVVk=,iv:jmKwn9bkqvPa0dGge4FFW2uT4Oa1LlFpFMUlnqUgkAA=,tag:CL+0+frQMt2TmgYv9yZeuw==,type:str]
pgp:
- created_at: "2025-03-07T22:49:16Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hQEMAzy6JxafzLr5AQgAjwQqdeESOfrOuCjfjALdoy3AnNYC+slusdlra58CoRu6
YFDAivwPHJBRiuVy43Lo7SWnKXMKvLOry589GBY3JGjNV5U1cPWBhMlTubYZmZWl
iel8Bvw4IF5JksMIvLFdDgexLN7wETzzZP9S8750BCgpSrncrw1k/dUedhv5HUjo
N10x6BPjPSmgolA8uxsISHLAUrKcQoeaWvcZFU1ofKywq08HgIySphy6z3Gmv3Qs
86saZp1rFm5+qHkrDRgL6Oe3Xx30jVkzn9MHPWzZCDPCEvYGJgXX34NGzbX+/nd3
JB9XkT2YTFi4BLhdHY3EE7e9//PJc5G9RVDZyAF1e9JeAXH2yR5blXbogoy+VMnS
Yn74Uvs+fnYFTDOiuequro5i0uAyxtrCx8fdfwjuh+9SC5p3N2cBv2eT7zLQwQHi
czHlwxmpi/dMB/u83fR4FzuCUt98VXiezIC4yGn25g==
=Yqqx
-----END PGP MESSAGE-----
fp: 0FECE8316E74BA6F44EFC21A2F8F21CE8721456B
unencrypted_suffix: _unencrypted
version: 3.10.2

View file

@ -1,54 +0,0 @@
hello: ENC[AES256_GCM,data:UJAAdOL7wzQ1LduTyW+XK2NtXyw/u/Yz28Bmd7OoBe41FVLKwVfvdI1nAwYuNQ==,iv:7kPT2HF5T498bUJ9hUlz5Ez/jn1g7YIUVbJOTW/CHhQ=,tag:KJhJPg8AStyW4roEbEUJ2g==,type:str]
example_key: ENC[AES256_GCM,data:DcLN+C1BQ6WZg5fRiA==,iv:JC3GTWn4a4RekAHdOQB3YV5+eGa4cUK1JjyTPe8eNHY=,tag:W9CV4rsgHuXyqpWpUxlIQg==,type:str]
#ENC[AES256_GCM,data:RjdYJNz6qGfbsU/AiBeLlQ==,iv:LjRzSjBXp44cGSqUUfRDNLC9cW4Vd7lfsqDWINt31VA=,tag:NzVm1h9CVKE2XXt300aR/g==,type:comment]
example_array:
- ENC[AES256_GCM,data:K9j/t8MDibYO8Frhu1M=,iv:YnrxRnJJwTH6DJC6Bv/d1NUnX2ZPFwsjoji7L1Z+d7s=,tag:Dm7xCUlnjKdXHCuk8lwY8w==,type:str]
- ENC[AES256_GCM,data:0g6ACJzEHBtukwQYYTY=,iv:xLBJWfOYkX7Y28N01CX2+d5QOr9VGAhInH6pa1hNSGE=,tag:tCkCigo4yhi6YKVMe3Z3lQ==,type:str]
example_number: ENC[AES256_GCM,data:R+/m/QVBH9/3DA==,iv:FumBUj97ICrRQmyh5fg8Gu9Lba9oITD1pdsr1I/PCf0=,tag:hguw1gpPI3w64fG1WLnJqA==,type:float]
example_booleans:
- ENC[AES256_GCM,data:VvI5ag==,iv:koMzyWcua75sK19vuk65oywCD61lMyH3xUwue8LTqy4=,tag:2ym1M0FTwevLm7wefTUWAw==,type:bool]
- ENC[AES256_GCM,data:lFEC/S8=,iv:cJWbnmseP/AqJzyORM+VI5y7rK8axVeh7EXoLP7mT/Q=,tag:BaS5HyecokdLCq+LzQxGkg==,type:bool]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age:
- recipient: age1zrgu7w8059xydagm60phnffghvfe9h2ca58cx8qwagqpyfuvs9fqw79c8h
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpSXhsMHQvb0NyUXRkRDE3
TjVjb2orQktDMGs4U2JUS3hWdmtMdnhuYnhBCi9VU1RVblZPaW14VGxMcjM0N20z
R1pOdUJZc1ZGcjBsTnNaZGhleVR6L1kKLS0tIE5vQkFhVXd0R3ZQSzZkNmVqN1Vj
NERXdlJhVHF0NWpNT29CNlRid2NYMVUKxg7kbP6dOZDUz0uxdC45DZCAa6GQTQ1x
nIb7lvPW4xFIb0bOZuvc7cAbHjf4So+8zvA0MM4mkTmIDpnwGD5Clg==
-----END AGE ENCRYPTED FILE-----
- recipient: age1m4mqcd2kmuhfr8a22rvh02c68jkakhdfmuqgtusuv0czk4jvna7sz79p3y
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBrcTJGVmZUenNwYVNjRFlU
VXNBeDdpVFVtSTN5TG9VN0Q1WjRFbjlHd0Z3CjFsU1BsNkZ1a1ZkY2lva3lBUWZ3
YUpqeEo0Tys1bDk0TEpwQTJ2U29kbjgKLS0tIFJDYWpNemY4NXZ0MkM0YWNldDBE
RU1HSUhldHpzeURaUWQvcjBCQ3pMY2cKYL87Njs4e68zu5AXKNF/hxiB3HduS8wz
o0kmGI58DZx17+Cdipw0ab9a9wiu9C9Fn+LaiCcdM/ESXtS79RzdbQ==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2025-03-05T22:27:18Z"
mac: ENC[AES256_GCM,data:WSopSnWZ+uOllywd7difaZtJcfxkL7eIf9Kr3GajZKO0+rP6pEHIS+5AbXZy6oKRlCLUPecY/WXFvk3//akpvvXHbf6Jp4fQ/YSuTcYKRQupbDBpOXSlc33QyRl6oEyiMOjxMxa2N2tmq8dmA0NbF9wSDMa5a4eNDoiL5T/sUZ8=,iv:QqbVRApzFF6q24rk8KfKuthj656nEczD9Si4INj+N9A=,tag:tMRNYo+u/jIQ6iX3KqKJdA==,type:str]
pgp:
- created_at: "2025-03-07T22:49:19Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hQEMAzy6JxafzLr5AQf/Zw+EB0lFpbul4KmHL3ndbhQCHzhkMgG6vEyj7EpjHQxE
nwf9kRrTcRh9YdrgR+5PFRnFJ8+L+gZhk+V/GaEPcEUyskOX/YGTSp1u6pXKGEem
TGojrIx0WwcmeCZUn+qCehbC7ZU64NDDmb7VeWnRkMbboU6UVooHUub88VsbnYw2
XXtXh4G8isrbyAKzUyypnJnEVbKlVqPOL67BYczjyBqMYc1JVLmBy6nP+sv6q/yo
QyDzlunmZtu52dwAL0L6wJF+novLr4W9cso4K5UVv2sp5M8gucuiY2obiB3vNfgO
q9GZTlMWnyDGflM1w+tzpZ/Ke+sM4dSy3cXpZd+MFNJeAaBJ1owjolb4tPUXlt+W
cJ+SFLWxzH8MsPb+Hfxrt8PPCcv67uch/k50PLYs/V/EM59+mgEJe5LY4rMbUSFw
REGL3LA6Cnkl2bUeHlfG7XlztHd/ehmZM2RPKof+Qw==
=htZl
-----END PGP MESSAGE-----
fp: 0FECE8316E74BA6F44EFC21A2F8F21CE8721456B
unencrypted_suffix: _unencrypted
version: 3.9.4-unstable

View file

@ -2,6 +2,9 @@ let
main_ssh_public_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCxR/w+38b2lX90yNBqhq3mUmkn1WGu6GAPhN1tVp2ZjYRJNV/+5gWCnTtOWYtDx35HmK/spQ2Qy8X9ttkzORa24fysNx1Iqn/TiXhD7eIJjbGPnrOpIKTkW5/uB3SD/P5NBSa06//BaqJU4sBlG79hoXRpod052hQtdpTVDiMCIV+iboWPKqopmJJfWdBtVnHXs9rep0htPRExxGslImFk7Z6xjcaHyCpIQZPlOGf+sGsmUU7jRqzvZFV8ucIdbnAlMHrU4pepNFhuraESyZVTa/bi9sw0iozXp5Q5+5thMebEslmT1Z771kI4sieDy+O4r8c0Sx2/VY1UAzcpq1faggc3YB01MTh+tiEC6xdMvZLrQGL1NBWjHleMyL53GU5ERluC0vXJF3Hv3BGGBDfXWbrEm5n06DHr2apRVJGC0LwiQ7Woud1X4V4X1pKSusxCVMjT2lmcOwV6YhKhB2sowJc1OdMx4+tL0UWE+YKSZgBHfolwk6ml0F4EO9nnUHc= lelgenio@i15"; main_ssh_public_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCxR/w+38b2lX90yNBqhq3mUmkn1WGu6GAPhN1tVp2ZjYRJNV/+5gWCnTtOWYtDx35HmK/spQ2Qy8X9ttkzORa24fysNx1Iqn/TiXhD7eIJjbGPnrOpIKTkW5/uB3SD/P5NBSa06//BaqJU4sBlG79hoXRpod052hQtdpTVDiMCIV+iboWPKqopmJJfWdBtVnHXs9rep0htPRExxGslImFk7Z6xjcaHyCpIQZPlOGf+sGsmUU7jRqzvZFV8ucIdbnAlMHrU4pepNFhuraESyZVTa/bi9sw0iozXp5Q5+5thMebEslmT1Z771kI4sieDy+O4r8c0Sx2/VY1UAzcpq1faggc3YB01MTh+tiEC6xdMvZLrQGL1NBWjHleMyL53GU5ERluC0vXJF3Hv3BGGBDfXWbrEm5n06DHr2apRVJGC0LwiQ7Woud1X4V4X1pKSusxCVMjT2lmcOwV6YhKhB2sowJc1OdMx4+tL0UWE+YKSZgBHfolwk6ml0F4EO9nnUHc= lelgenio@i15";
in in
{ {
"rainbow-gitlab-runner-thoreb-itinerario-registrationConfigFile.age".publicKeys = [
main_ssh_public_key
];
"monolith-gitlab-runner-thoreb-itinerario-registrationConfigFile.age".publicKeys = [ "monolith-gitlab-runner-thoreb-itinerario-registrationConfigFile.age".publicKeys = [
main_ssh_public_key main_ssh_public_key
]; ];

View file

@ -1,55 +0,0 @@
hello: ENC[AES256_GCM,data:ADXdQUkrnh9lDrsHyInYsPBo21u/mIAH47KhGQsxuz5OshT6CoK+89CILEi9tQ==,iv:b/rnM77z69+pVO3kxQZxI2YzTCRiBwwO5fhcwCB2/CI=,tag:A0FOXIfgIkJawV3QhlJPWQ==,type:str]
example_key: ENC[AES256_GCM,data:gXXl6hhdYNLC1Grmyw==,iv:miSL7Wdewd5zs4A86/r8OW6gK+PGZJ+gaqZRHHxvZos=,tag:Ty+IaoXdMSEThNPRjwhqTA==,type:str]
#ENC[AES256_GCM,data:FLhydTaiOqLRFk+ZrgGx9Q==,iv:TqhX2ylJKFQjdOpmwCER1+gRe4iR+I0hkVkNnYH4ESo=,tag:1BSk9TKqTma4MVUMswwmog==,type:comment]
example_array:
- ENC[AES256_GCM,data:1sIEL3xGDAygUKoodBA=,iv:1DumVv8vDvhT/K0jXM1vHdrFTE7dIxqqjS8CIpWdnc8=,tag:WSs+3a816zVOaGCTElxgFQ==,type:str]
- ENC[AES256_GCM,data:tFi1czQnVgX/nlWrJrs=,iv:isH65ldilVe3EjsKNP/dOKgtWZtHQPw364fPHBI+LEw=,tag:Ka5ywriFptKg3+lIHPEIyA==,type:str]
example_number: ENC[AES256_GCM,data:sxSM8a9oAp+u6g==,iv:KRLfIxZuBsnK+QE4mqm3pyhJmE7Fsd4ykJA++KrOnEQ=,tag:F5EkVUzw06ulr5jZvlTJdg==,type:float]
example_booleans:
- ENC[AES256_GCM,data:PDts2Q==,iv:qtfKg5gmUw2aERJe3gfT15Pk7mWocXwKdJhAzSic1o0=,tag:gn1sWsgt9ihYF8bHAkAQwQ==,type:bool]
- ENC[AES256_GCM,data:o9as7T0=,iv:YXyTB2X9PmTsOd37+BAp2xnT/+Yzyajcn5y1GE1O5rE=,tag:hyXA43jpyAbgH2hg1ivloQ==,type:bool]
sops:
shamir_threshold: 1
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age:
- recipient: age1zrgu7w8059xydagm60phnffghvfe9h2ca58cx8qwagqpyfuvs9fqw79c8h
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvUURIQmZvSVp3aXlFT0RR
VHVBR0drN2JyV1hNUk5sakxGRXl6SEJuOUUwClQ1Q1lRZTR5R3Z4dlZyb29OaTNW
UVcwV3h6UlhtZkg2aFhrUUtIT0tQRmsKLS0tIDlnckhHWXRKcmRwTGUzdHZxWEVh
a3ZSWk0wNm1raXdMYXdKY1hDd2dZWUEK+IFU/9vsHu70XbSJ7sKqFncrZO3NAH8/
X/XF1VUmIuDfQZYJsDa4HaXe52xvDWTw3/4frG9HutEI2NcvvRpxlw==
-----END AGE ENCRYPTED FILE-----
- recipient: age1ecyynwv93lfu7crjjp8l47defv07quzfzaktwurpep7jc9eha5pscg7lrw
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBNRGxFWXJVcDZOdzVxaFJG
LzdhN3JKaFhPOVBlblRPNWpDdERPaWhDNkM0CmcvUGxNQ09tNTJndWZTdjFia2pl
RnNWQ0ZKSFhEN0FNbVZlKzlFUlh5QTgKLS0tIFkwc1pJajlyOGNHSTdaM3FQZWFK
NUJpRDlLNXlGOTNBbVRTU0ZMVkhqdUUK1koXmGDGTKoNx1wp4c9EknY9LQ5a7dQP
Zx6OzvtpsxL6KGjH7BeNNcm2zOR4YqnklLq09UsPHElz2upJQzECAQ==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2025-03-07T22:49:01Z"
mac: ENC[AES256_GCM,data:yma+7wtzVjCzlLOVpqiicjQ9YN1ttzoh8CpcAtjdtVl6gu7/3FXUKYyAWJd+1NUUpK7vN435gOq9/nsig0FRrn0Hgq0+cjFUGS6+6+SPmL97eFvti89gCOeIFhPvBnJQYJLiyVkUcBek4xW+vnt6UgrTy+sD9AT3KHdBlfu3pzY=,iv:ioswFO5KDAL3Bv7MI8V0aWXXxZZIz1M1PyMUbIMnCRI=,tag:5fUBtqz9J2qvY4fUT2ueoQ==,type:str]
pgp:
- created_at: "2025-03-07T22:49:20Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hQEMAzy6JxafzLr5AQf/Xok7aBMNT6W3LV2Ekx/ccxEZaZ0aVNKHE9aFTz5kBSpu
cXVohu5mEgeXr++HbrsCI821/gfchQ1yzVSLJsSrmZdJ586c3a7pWx2Eo4pcngmy
vb5UWtTBNogABnLz4iTjVQYLjZeNcNhkzW6s3m9PiaX3AvJP9irPcmwIyYpzd9pt
hngnBsdTis52fmvZ6+wOuMyTZU0Iksknom1De8xqgR5ZuO0Vitt19RGbpVhx96AC
t1CUkb5WMFTdpbCFORa/ta9Z7UcKxXTAPsfPkPVG9DnHQ1jSmsJWPDQZxoIJLHuH
SVV+qfRGndOo9fjExCInX6I5wBlrHrdpGtL7VLczV9JeAXYlMJwH63eOyi8hxxtr
KfTJEIALC25uFhoK8bmr30yVZe7thUPMXfht+R5dlHne7+FcBb4k7YLpeN/M40me
CSKk+9YaG7gQIdrfvEXlHSPCPppcKev6ZUspHewhmQ==
=IMON
-----END PGP MESSAGE-----
fp: 0FECE8316E74BA6F44EFC21A2F8F21CE8721456B
unencrypted_suffix: _unencrypted
version: 3.9.4

View file

@ -1,7 +1,7 @@
# Edit this configuration file to define what should be installed on # Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page # your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help). # and in the NixOS manual (accessible by running nixos-help).
{ pkgs, config, ... }: { pkgs, ... }:
{ {
imports = [ imports = [
./android.nix ./android.nix
@ -17,7 +17,6 @@
./locale.nix ./locale.nix
./users.nix ./users.nix
./containers.nix ./containers.nix
./nix-ld.nix
./network.nix ./network.nix
../settings ../settings
]; ];

View file

@ -9,7 +9,6 @@
config = lib.mkIf config.my.containers.enable { config = lib.mkIf config.my.containers.enable {
services.flatpak.enable = true; services.flatpak.enable = true;
programs.appimage.enable = true;
virtualisation.docker = { virtualisation.docker = {
enable = true; enable = true;
@ -33,18 +32,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;

View file

@ -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
]; ];
} }

View file

@ -59,7 +59,5 @@
}; };
}; };
}; };
programs.corectrl.enable = true;
}; };
} }

View file

@ -1,89 +1,51 @@
{ pkgs, lib, ... }: { pkgs, lib, ... }:
let {
installNixScript = mkNixRunner =
{ authenticationTokenConfigFile: with lib; rec {
authenticationTokenConfigFile,
nixCacheSshPrivateKeyPath ? null,
nixCacheSshPublicKeyPath ? null,
...
}:
pkgs.writeScriptBin "install-nix" ''
mkdir -p -m 0755 /nix/var/log/nix/drvs
mkdir -p -m 0755 /nix/var/nix/gcroots
mkdir -p -m 0755 /nix/var/nix/profiles
mkdir -p -m 0755 /nix/var/nix/temproots
mkdir -p -m 0755 /nix/var/nix/userpool
mkdir -p -m 1777 /nix/var/nix/gcroots/per-user
mkdir -p -m 1777 /nix/var/nix/profiles/per-user
mkdir -p -m 0755 /nix/var/nix/profiles/per-user/root
mkdir -p -m 0700 "$HOME/.nix-defexpr"
. ${pkgs.nix}/etc/profile.d/nix.sh
${pkgs.nix}/bin/nix-env -i ${
lib.concatStringsSep " " (
with pkgs;
[
nix
cacert
git
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: # File should contain at least these two variables:
# `CI_SERVER_URL` # `CI_SERVER_URL`
# `REGISTRATION_TOKEN` # `REGISTRATION_TOKEN`
inherit authenticationTokenConfigFile; # 2 inherit authenticationTokenConfigFile; # 2
dockerImage = "alpine:3.18.2"; dockerImage = "alpine:3.18.2";
dockerPullPolicy = "if-not-present"; dockerAllowedImages = [ dockerImage ];
dockerVolumes = [ dockerVolumes = [
"/etc/nix/nix.conf:/etc/nix/nix.conf:ro" "/etc/nix/nix.conf:/etc/nix/nix.conf:ro"
"/nix/store:/nix/store:ro" "/nix/store:/nix/store:ro"
"/nix/var/nix/db:/nix/var/nix/db:ro" "/nix/var/nix/db:/nix/var/nix/db:ro"
"/nix/var/nix/daemon-socket:/nix/var/nix/daemon-socket: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; dockerDisableCache = true;
preBuildScript = "\". ${lib.getExe (installNixScript args)}\""; preBuildScript = pkgs.writeScript "setup-container" ''
mkdir -p -m 0755 /nix/var/log/nix/drvs
mkdir -p -m 0755 /nix/var/nix/gcroots
mkdir -p -m 0755 /nix/var/nix/profiles
mkdir -p -m 0755 /nix/var/nix/temproots
mkdir -p -m 0755 /nix/var/nix/userpool
mkdir -p -m 1777 /nix/var/nix/gcroots/per-user
mkdir -p -m 1777 /nix/var/nix/profiles/per-user
mkdir -p -m 0755 /nix/var/nix/profiles/per-user/root
mkdir -p -m 0700 "$HOME/.nix-defexpr"
. ${pkgs.nix}/etc/profile.d/nix.sh
${pkgs.nix}/bin/nix-env -i ${
concatStringsSep " " (
with pkgs;
[
nix
cacert
git
openssh
]
)
}
'';
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;
};
} }

View file

@ -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"
}

View file

@ -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 = {

View file

@ -1,59 +1,24 @@
{ {
config, config,
pkgs, pkgs,
lib,
... ...
}: }:
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.age.secrets.gitlab-runner-thoreb-telemetria-registrationConfigFile.path;
thoreb-itinerario-nix = mkNixRunner config.sops.secrets."gitlab-runners/thoreb-itinerario-nix".path; thoreb-itinerario-nix = mkNixRunner config.age.secrets.monolith-gitlab-runner-thoreb-itinerario-registrationConfigFile.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 = {
# File should contain at least these two variables:
# `CI_SERVER_URL`
# `CI_SERVER_TOKEN`
authenticationTokenConfigFile = config.sops.secrets."gitlab-runners/docker-images-token".path;
dockerImage = "debian:stable";
dockerPullPolicy = "if-not-present";
};
}; };
}; };
systemd.services.gitlab-runner.serviceConfig.Nice = 10; systemd.services.gitlab-runner.serviceConfig.Nice = 10;
sops.secrets = {
"gitlab-runners/thoreb-telemetria-nix" = {
sopsFile = ../secrets/monolith/default.yaml;
};
"gitlab-runners/thoreb-itinerario-nix" = {
sopsFile = ../secrets/monolith/default.yaml;
};
"gitlab-runners/docker-images-token" = {
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;
};
};
} }

View file

@ -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 = {

View file

@ -1,21 +0,0 @@
{
pkgs,
lib,
config,
...
}:
{
options.my.nix-ld.enable = lib.mkEnableOption { };
config = lib.mkIf (config.my.nix-ld.enable) {
programs.nix-ld = {
enable = true;
libraries =
with pkgs;
# run appimages + linux games natively
[ fuse ]
++ (appimageTools.defaultFhsEnvArgs.multiPkgs pkgs)
++ (appimageTools.defaultFhsEnvArgs.targetPkgs pkgs);
};
};
}

View file

@ -0,0 +1,22 @@
{
config,
pkgs,
lib,
...
}:
let
inherit (pkgs.callPackage ./gitlab-runner.nix { }) mkNixRunner;
in
{
boot.kernel.sysctl."net.ipv4.ip_forward" = true;
virtualisation.docker.enable = true;
services.gitlab-runner = {
enable = true;
settings.concurrent = 6;
services = {
thoreb-telemetria-nix = mkNixRunner config.age.secrets.gitlab-runner-thoreb-telemetria-registrationConfigFile.path;
thoreb-itinerario-nix = mkNixRunner config.age.secrets.rainbow-gitlab-runner-thoreb-itinerario-registrationConfigFile.path;
};
};
systemd.services.gitlab-runner.serviceConfig.Nice = 10;
}

View file

@ -1,4 +1,4 @@
{ pkgs, config, ... }: { pkgs, ... }:
{ {
age = { age = {
identityPaths = [ "/root/.ssh/id_rsa" ]; identityPaths = [ "/root/.ssh/id_rsa" ];
@ -6,6 +6,7 @@
secrets.monolith-gitlab-runner-thoreb-itinerario-registrationConfigFile.file = ../secrets/monolith-gitlab-runner-thoreb-itinerario-registrationConfigFile.age; secrets.monolith-gitlab-runner-thoreb-itinerario-registrationConfigFile.file = ../secrets/monolith-gitlab-runner-thoreb-itinerario-registrationConfigFile.age;
secrets.gitlab-runner-thoreb-telemetria-registrationConfigFile.file = ../secrets/gitlab-runner-thoreb-telemetria-registrationConfigFile.age; secrets.gitlab-runner-thoreb-telemetria-registrationConfigFile.file = ../secrets/gitlab-runner-thoreb-telemetria-registrationConfigFile.age;
secrets.monolith-forgejo-runner-token.file = ../secrets/monolith-forgejo-runner-token.age; secrets.monolith-forgejo-runner-token.file = ../secrets/monolith-forgejo-runner-token.age;
secrets.rainbow-gitlab-runner-thoreb-itinerario-registrationConfigFile.file = ../secrets/rainbow-gitlab-runner-thoreb-itinerario-registrationConfigFile.age;
secrets.monolith-nix-serve-privkey.file = ../secrets/monolith-nix-serve-privkey.age; secrets.monolith-nix-serve-privkey.file = ../secrets/monolith-nix-serve-privkey.age;
secrets.phantom-forgejo-mailer-password.file = ../secrets/phantom-forgejo-mailer-password.age; secrets.phantom-forgejo-mailer-password.file = ../secrets/phantom-forgejo-mailer-password.age;
}; };

View file

@ -1,15 +0,0 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
sops
gnupg
];
sops = {
defaultSopsFile = ../secrets/test.yaml;
age.sshKeyPaths = [
"/etc/ssh/ssh_host_ed25519_key"
"/home/lelgenio/.ssh/id_ed25519"
];
};
}

View file

@ -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;

View file

@ -1,7 +1,6 @@
{ lib, ... }: { lib, ... }:
{ {
options.my = { options.my = {
nix-ld.enable = lib.mkEnableOption { };
android.enable = lib.mkEnableOption { }; android.enable = lib.mkEnableOption { };
media-packages.enable = lib.mkEnableOption { }; media-packages.enable = lib.mkEnableOption { };
containers.enable = lib.mkEnableOption { }; containers.enable = lib.mkEnableOption { };

View file

@ -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,65 @@ 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; }
#sidebar-header { display: none !important; }
''
else
''
/* Element | chrome://browser/content/browser.xhtml */
#tabbrowser-tabbox { #navigator-toolbox {
outline-width: 0 !important; display: grid;
} grid-template-columns: 1fr 50px;
''; overflow: hidden;
}
/* Element | chrome://browser/content/browser.xhtml */
#nav-bar {
flex: 1;
width: 100%;
grid-column: 1 / 3;
grid-row: 1;
z-index: 0;
padding-right: 29px !important;
}
/* Element | chrome://browser/content/browser.xhtml */
.toolbar-items {
display: none;
}
/* Element | chrome://browser/content/browser.xhtml */
#TabsToolbar {
max-width: 50px;
}
/* Element | chrome://browser/content/browser.xhtml */
#titlebar {
max-width: 50px;
grid-area: 1 / 2;
z-index: 10;
}
'';
}; };
}; };
}; };
wayland.windowManager.sway = { wayland.windowManager.sway = {
extraConfig = '' extraConfig = ''
exec firefox-devedition exec firefox
''; '';
}; };
home.sessionVariables = {
MOZ_ENABLE_WAYLAND = "1";
MOZ_DISABLE_RDD_SANDBOX = "1";
};
}; };
} }

View file

@ -18,42 +18,15 @@ in
email = mail.personal.user; email = mail.personal.user;
}; };
init.defaultBranch = "main"; init.defaultBranch = "main";
core = { commit.verbose = true;
fsmonitor = true; push.autoSetupRemote = true;
untrackedCache = true;
};
commit = {
verbose = true;
};
fetch = {
prune = true;
pruneTags = true;
all = true;
};
push = {
autoSetupRemote = true;
default = "simple";
followTags = true;
};
pull.rebase = true; pull.rebase = true;
tag.sort = "version:refname"; merge.conflictStyle = "diff3";
merge.conflictStyle = "zdiff3"; rerere.enabled = true;
rerere = {
enabled = true;
autoupdate = true;
};
branch.sort = "-committerdate";
diff = {
algorithm = "histogram";
colorMoved = "plain";
mnemonicPrefix = true;
renames = true;
};
rebase = { rebase = {
abbreviateCommands = true; abbreviateCommands = true;
autoSquash = true; autoSquash = true;
autoStash = true; autoStash = true;
updateRefs = true;
}; };
pager = { pager = {
log = "${pkgs._diffr}/bin/_diffr | ${pkgs.kak-pager}/bin/kak-pager"; log = "${pkgs._diffr}/bin/_diffr | ${pkgs.kak-pager}/bin/kak-pager";

View file

@ -35,7 +35,6 @@ lib.mkIf (config.my.desktop == "gnome") {
amberol amberol
pitivi pitivi
keepassxc keepassxc
menulibre
libsForQt5.qt5ct libsForQt5.qt5ct
libsForQt5.qtstyleplugin-kvantum libsForQt5.qtstyleplugin-kvantum
@ -43,7 +42,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 = pkgs.pinentry-gnome;
xdg.defaultApplications = { xdg.defaultApplications = {
enable = lib.mkForce false; enable = lib.mkForce false;

View file

@ -1,28 +0,0 @@
{ pkgs, lib, ... }:
{
programs.home-manager.enable = true;
systemd.user.services.home-manager-expire = {
Unit = {
Description = "Remove old home-manager generations";
};
Service = {
Type = "oneshot";
ExecStart = pkgs.writeShellScript "home-manager-expire" ''
${lib.getExe pkgs.home-manager} expire-generations 7d
'';
};
};
systemd.user.timers.home-manager-expire = {
Unit = {
Description = "Remove old home-manager generations";
};
Timer = {
OnCalendar = "daily";
Unit = "home-manager-expire.service";
};
Install = {
WantedBy = [ "timers.target" ];
};
};
}

View file

@ -9,7 +9,6 @@
{ {
imports = [ imports = [
./dummy.nix ./dummy.nix
./home-manager.nix
./waybar ./waybar
./helix.nix ./helix.nix
./kakoune ./kakoune
@ -24,7 +23,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,17 +35,15 @@
./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
]; ];
my = import ./variables.nix // { my = import ./variables.nix // {
@ -61,6 +57,8 @@
home.username = "lelgenio"; home.username = "lelgenio";
home.homeDirectory = "/home/lelgenio"; home.homeDirectory = "/home/lelgenio";
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
home.packages = with pkgs; [ home.packages = with pkgs; [
terminal terminal
@ -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";
@ -173,6 +169,30 @@
exec nicotine exec nicotine
''; '';
systemd.user.services.rm-target = {
Unit = {
Description = "Remove directories named 'target'";
};
Service = {
Type = "oneshot";
ExecStart = pkgs.writeShellScript "rm-target" ''
sudo ${pkgs.fd}/bin/fd -td -u '^\.?target$' "$HOME" -x rm -vrf --
'';
};
};
systemd.user.timers.rm-target = {
Unit = {
Description = "Remove directories named 'target'";
};
Timer = {
OnCalendar = "weekly";
Unit = "rm-target.service";
};
Install = {
WantedBy = [ "timers.target" ];
};
};
# This value determines the Home Manager release that your # This value determines the Home Manager release that your
# configuration is compatible with. This helps avoid breakage # configuration is compatible with. This helps avoid breakage
# when a new Home Manager release introduces backwards # when a new Home Manager release introduces backwards

View file

@ -82,9 +82,6 @@ in
rev = "1cc6baeb14b773916eb9209469aa77b3cfa67a0a"; rev = "1cc6baeb14b773916eb9209469aa77b3cfa67a0a";
sha256 = "sha256-3PLxG9UtT0MMSibvTviXQIgTH3rApZ3WSbNCEH3c7HE="; sha256 = "sha256-3PLxG9UtT0MMSibvTviXQIgTH3rApZ3WSbNCEH3c7HE=";
}; };
buildInputs = with pkgs; [
python3Minimal
];
}) })
]; ];
extraConfig = extraConfig =

View file

@ -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 %{

View file

@ -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";
};
}

View file

@ -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;

View file

@ -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

View file

@ -1,26 +0,0 @@
{ pkgs, lib, ... }:
{
systemd.user.services.rm-target = {
Unit = {
Description = "Remove directories named 'target'";
};
Service = {
Type = "oneshot";
ExecStart = pkgs.writeShellScript "rm-target" ''
sudo ${pkgs.fd}/bin/fd -td -u '^\.?target$' "$HOME" -x rm -vrf --
'';
};
};
systemd.user.timers.rm-target = {
Unit = {
Description = "Remove directories named 'target'";
};
Timer = {
OnCalendar = "weekly";
Unit = "rm-target.service";
};
Install = {
WantedBy = [ "timers.target" ];
};
};
}

View file

@ -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",
]

View file

@ -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
];
};
}

View file

@ -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;
@ -116,20 +113,22 @@ in
for_window [title=.*] inhibit_idle fullscreen for_window [title=.*] inhibit_idle fullscreen
exec swaymsg workspace 2 exec swaymsg workspace 2
exec_always systemctl --user restart waybar.service exec_always systemctl --user restart waybar.service
exec corectrl --minimize-systray
''; '';
}; };
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 +153,6 @@ in
wl-clipboard wl-clipboard
wtype wtype
wl-crosshair wl-crosshair
caffeinated
grim grim
satty satty

View file

@ -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;
};
};
};
}

View file

@ -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;
padding = "5";
margin = "15";
layer = "overlay";
settings = { font = "${font.interface} ${toString font.size.small}";
border-size = 2; textColor = color.txt;
padding = "5";
margin = "15";
layer = "overlay";
font = "${font.interface} ${toString font.size.small}"; backgroundColor = color.bg;
text-color = color.txt; borderColor = accent.color;
progressColor = "over ${accent.color}88";
background-color = color.bg; defaultTimeout = 10000;
border-color = accent.color;
progress-color = "over ${accent.color}88";
default-timeout = 10000; extraConfig = ''
[app-name=volumesh]
"app-name=volumesh" = { default-timeout=5000
"default-timeout" = "5000"; group-by=app-name
"group-by" = "app-name"; format=<b>%s</b>\n%b
"format" = "<b>%s</b>\\n%b"; '';
};
};
# # {{@@ header() @@}} # # {{@@ header() @@}}
# # text # # text

View file

@ -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";

View file

@ -9,7 +9,7 @@ in
options.my.swaylock.enable = lib.mkEnableOption { }; options.my.swaylock.enable = lib.mkEnableOption { };
config.programs.swaylock.settings = lib.mkIf cfg.enable { config.programs.swaylock.settings = lib.mkIf cfg.enable {
image = theme.backgroundPath; image = toString theme.background;
font = font.interface; font = font.interface;
font-size = font.size.medium; font-size = font.size.medium;
indicator-thickness = 20; indicator-thickness = 20;

View file

@ -21,32 +21,33 @@ lib.mkIf (desktop == "sway") {
package = pkgs.bibata-cursors; package = pkgs.bibata-cursors;
gtk.enable = true; gtk.enable = true;
}; };
gtk = { gtk =
enable = true;
font = {
name = font.interface;
size = font.size.small;
};
theme = {
name = gtk_theme;
package = pkgs.orchis_theme_compact;
};
iconTheme = {
name = icon_theme;
package = pkgs.papirus_red;
};
}
// (
let
shared.extraConfig = {
gtk-decoration-layout = "menu:";
};
in
{ {
gtk4 = shared; enable = true;
gtk3 = shared; font = {
name = font.interface;
size = font.size.small;
};
theme = {
name = gtk_theme;
package = pkgs.orchis_theme_compact;
};
iconTheme = {
name = icon_theme;
package = pkgs.papirus_red;
};
} }
); // (
let
shared.extraConfig = {
gtk-decoration-layout = "menu:";
};
in
{
gtk4 = shared;
gtk3 = shared;
}
);
xdg.configFile."gtk-3.0/settings.ini".force = true; xdg.configFile."gtk-3.0/settings.ini".force = true;
xdg.configFile."gtk-4.0/settings.ini".force = true; xdg.configFile."gtk-4.0/settings.ini".force = true;
@ -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
]; ];
} }

View file

@ -28,7 +28,6 @@ let
cursor_theme = "Bibata-Modern-Classic"; cursor_theme = "Bibata-Modern-Classic";
background = ./backgrounds/nixos-dark-pattern.png; background = ./backgrounds/nixos-dark-pattern.png;
backgroundPath = "~/.local/share/backgrounds/nixos-dark-pattern.png";
opacity = 95; opacity = 95;
opacityHex = "ee"; opacityHex = "ee";
color = { color = {
@ -60,7 +59,6 @@ let
cursor_theme = "Bibata-Modern-Classic"; cursor_theme = "Bibata-Modern-Classic";
background = ./backgrounds/nixos-light-pattern.png; background = ./backgrounds/nixos-light-pattern.png;
backgroundPath = "~/.local/share/backgrounds/nixos-light-pattern.png";
opacity = 95; opacity = 95;
opacityHex = "ee"; opacityHex = "ee";
color = { color = {
@ -116,6 +114,6 @@ rec {
dmenu = "bmenu"; dmenu = "bmenu";
desktop = "sway"; desktop = "sway";
browser = "firefox-devedition"; browser = "firefox";
editor = "kakoune"; editor = "kakoune";
} }

View file

@ -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

View file

@ -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,19 +234,23 @@ in
}; };
} }
]; ];
style = pkgs.replaceVars ./style.css { style = builtins.readFile (
accent_color = accent.color; pkgs.substituteAll {
src = ./style.css;
color_bg = color.bg; accent_color = accent.color;
color_bg_dark = color.bg_dark;
color_bg_light = color.bg_light;
color_txt = color.txt;
font_interface = font.interface; color_bg = color.bg;
color_bg_dark = color.bg_dark;
color_bg_light = color.bg_light;
color_txt = color.txt;
font_size_big = "${toString font.size.big}px"; font_interface = font.interface;
font_size_medium = "${toString font.size.medium}px";
}; font_size_big = "${toString font.size.big}px";
font_size_medium = "${toString font.size.medium}px";
}
);
}; };
home.packages = with pkgs; [ waybar ]; home.packages = with pkgs; [ waybar ];
}; };

View file

@ -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";
};
} }