Merge branch 'zenix/master' into alpine/master

This commit is contained in:
Tristan 2025-01-18 00:25:15 +00:00
commit 2c406b36d3
38 changed files with 843 additions and 360 deletions

View file

@ -1,2 +1,3 @@
lib/words.txt lib/words.txt
lib/emotes.txt
flake.lock flake.lock

374
flake.lock generated
View file

@ -5,11 +5,11 @@
"fromYaml": "fromYaml" "fromYaml": "fromYaml"
}, },
"locked": { "locked": {
"lastModified": 1708890466, "lastModified": 1732200724,
"narHash": "sha256-LlrC09LoPi8OPYOGPXegD72v+//VapgAqhbOFS3i8sc=", "narHash": "sha256-+R1BH5wHhfnycySb7Sy5KbYEaTJZWm1h+LW1OtyhiTs=",
"owner": "SenchoPens", "owner": "SenchoPens",
"repo": "base16.nix", "repo": "base16.nix",
"rev": "665b3c6748534eb766c777298721cece9453fdae", "rev": "153d52373b0fb2d343592871009a286ec8837aec",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -53,11 +53,11 @@
"base16-vim": { "base16-vim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1716150083, "lastModified": 1731949548,
"narHash": "sha256-ZMhnNmw34ogE5rJZrjRv5MtG3WaqKd60ds2VXvT6hEc=", "narHash": "sha256-XIDexXM66sSh5j/x70e054BnUsviibUShW7XhbDGhYo=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "base16-vim", "repo": "base16-vim",
"rev": "6e955d704d046b0dc3e5c2d68a2a6eeffd2b5d3d", "rev": "61165b1632409bd55e530f3dbdd4477f011cadc6",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -74,11 +74,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1722113426, "lastModified": 1728330715,
"narHash": "sha256-Yo/3loq572A8Su6aY5GP56knpuKYRvM2a1meP9oJZCw=", "narHash": "sha256-xRJ2nPOXb//u1jaBnDP56M7v5ldavjbtR6lfGqSvcKg=",
"owner": "numtide", "owner": "numtide",
"repo": "devshell", "repo": "devshell",
"rev": "67cce7359e4cd3c45296fb4aaf6a19e2a9c757ae", "rev": "dd6b80932022cea34a019e2bb32f6fa9e494dfef",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -120,11 +120,11 @@
"flake-compat_3": { "flake-compat_3": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1673956053, "lastModified": 1696426674,
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra", "owner": "edolstra",
"repo": "flake-compat", "repo": "flake-compat",
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -141,11 +141,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1726153070, "lastModified": 1733312601,
"narHash": "sha256-HO4zgY0ekfwO5bX0QH/3kJ/h4KvUDFZg8YpkNwIbg1U=", "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "bcef6817a8b2aa20a5a6dbb19b43e63c5bf8619a", "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -159,11 +159,11 @@
"systems": "systems" "systems": "systems"
}, },
"locked": { "locked": {
"lastModified": 1726560853, "lastModified": 1731533236,
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -180,11 +180,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1710146030, "lastModified": 1731533236,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -196,11 +196,11 @@
"fromYaml": { "fromYaml": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1689549921, "lastModified": 1731966426,
"narHash": "sha256-iX0pk/uB019TdBGlaJEWvBCfydT6sRq+eDcGPifVsCM=", "narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=",
"owner": "SenchoPens", "owner": "SenchoPens",
"repo": "fromYaml", "repo": "fromYaml",
"rev": "11fbbbfb32e3289d3c631e0134a23854e7865c84", "rev": "106af9e2f715e2d828df706c386a685698f3223b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -226,11 +226,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1726745158, "lastModified": 1734425854,
"narHash": "sha256-D5AegvGoEjt4rkKedmxlSEmC+nNLMBPWFxvmYnVLhjk=", "narHash": "sha256-nzE5UbJ41aPEKf8R2ZFYtLkqPmF7EIUbNEdHMBLg0Ig=",
"owner": "cachix", "owner": "cachix",
"repo": "git-hooks.nix", "repo": "git-hooks.nix",
"rev": "4e743a6920eab45e8ba0fbe49dc459f1423a4b74", "rev": "0ddd26d0925f618c3a5d85a4fa5eb1e23a09491d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -264,32 +264,50 @@
"gnome-shell": { "gnome-shell": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1713702291, "lastModified": 1732369855,
"narHash": "sha256-zYP1ehjtcV8fo+c+JFfkAqktZ384Y+y779fzmR9lQAU=", "narHash": "sha256-JhUWbcYPjHO3Xs3x9/Z9RuqXbcp5yhPluGjwsdE2GMg=",
"owner": "GNOME", "owner": "GNOME",
"repo": "gnome-shell", "repo": "gnome-shell",
"rev": "0d0aadf013f78a7f7f1dc984d0d812971864b934", "rev": "dadd58f630eeea41d645ee225a63f719390829dc",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "GNOME", "owner": "GNOME",
"ref": "46.1", "ref": "47.2",
"repo": "gnome-shell", "repo": "gnome-shell",
"type": "github" "type": "github"
} }
}, },
"hm-cosmic": {
"inputs": {
"home-manager": "home-manager",
"home-manager-cosmic": "home-manager-cosmic"
},
"locked": {
"lastModified": 1733104727,
"narHash": "sha256-2a4w7OxuncH/qh+eBou65v+Ow7ZH8CobfFId3ckSQdo=",
"owner": "tristanbeedell",
"repo": "hm-cosmic",
"rev": "8c7ae2855827101eff7e52dd320599a487c78936",
"type": "github"
},
"original": {
"owner": "tristanbeedell",
"ref": "master",
"repo": "hm-cosmic",
"type": "github"
}
},
"home-manager": { "home-manager": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": "nixpkgs"
"nixpkgs"
]
}, },
"locked": { "locked": {
"lastModified": 1727346017, "lastModified": 1733085484,
"narHash": "sha256-z7OCFXXxIseJhEHiCkkUOkYxD9jtLU8Kf5Q9WC0SjJ8=", "narHash": "sha256-dVmNuUajnU18oHzBQWZm1BQtANCHaqNuxTHZQ+GN0r8=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "c124568e1054a62c20fbe036155cc99237633327", "rev": "c1fee8d4a60b89cae12b288ba9dbc608ff298163",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -301,14 +319,14 @@
}, },
"home-manager-cosmic": { "home-manager-cosmic": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs_2"
}, },
"locked": { "locked": {
"lastModified": 1728250817, "lastModified": 1733103810,
"narHash": "sha256-OVHpUlNxHpQUe2Waav/MR+Z7fm6ft/w8SxWlvXv+AdU=", "narHash": "sha256-S1jGheeLQJPaY80+iFu7Iv4Az3BHmVlv8PxngnK8Aog=",
"owner": "tristanbeedell", "owner": "tristanbeedell",
"repo": "home-manager", "repo": "home-manager",
"rev": "ce770a3e442b2105852a6f5f79f3645b4c64505c", "rev": "efa4d272f6c2b14d4a3b67b0b1e4b38ae46e5588",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -319,6 +337,27 @@
} }
}, },
"home-manager_2": { "home-manager_2": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1734808199,
"narHash": "sha256-MxlUcLjE8xLbrI1SJ2B2jftlg4wdutEILa3fgqwA98I=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "f342df3ad938f205a913973b832f52c12546aac6",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "master",
"repo": "home-manager",
"type": "github"
}
},
"home-manager_3": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"nixvim", "nixvim",
@ -326,11 +365,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1726985855, "lastModified": 1734622215,
"narHash": "sha256-NJPGK030Y3qETpWBhj9oobDQRbXdXOPxtu+YgGvZ84o=", "narHash": "sha256-OOfI0XhSJGHblfdNDhfnn8QnZxng63rWk9eeJ2tCbiI=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "04213d1ce4221f5d9b40bcee30706ce9a91d148d", "rev": "1395379a7a36e40f2a76e7b9936cc52950baa1be",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -339,7 +378,7 @@
"type": "github" "type": "github"
} }
}, },
"home-manager_3": { "home-manager_4": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"stylix", "stylix",
@ -347,11 +386,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1724435763, "lastModified": 1733085484,
"narHash": "sha256-UNky3lJNGQtUEXT2OY8gMxejakSWPTfWKvpFkpFlAfM=", "narHash": "sha256-dVmNuUajnU18oHzBQWZm1BQtANCHaqNuxTHZQ+GN0r8=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "c2cd2a52e02f1dfa1c88f95abeb89298d46023be", "rev": "c1fee8d4a60b89cae12b288ba9dbc608ff298163",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -360,6 +399,52 @@
"type": "github" "type": "github"
} }
}, },
"ixx": {
"inputs": {
"flake-utils": [
"nixvim",
"nuschtosSearch",
"flake-utils"
],
"nixpkgs": [
"nixvim",
"nuschtosSearch",
"nixpkgs"
]
},
"locked": {
"lastModified": 1729958008,
"narHash": "sha256-EiOq8jF4Z/zQe0QYVc3+qSKxRK//CFHMB84aYrYGwEs=",
"owner": "NuschtOS",
"repo": "ixx",
"rev": "9fd01aad037f345350eab2cd45e1946cc66da4eb",
"type": "github"
},
"original": {
"owner": "NuschtOS",
"ref": "v0.0.6",
"repo": "ixx",
"type": "github"
}
},
"musnix": {
"inputs": {
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1734127708,
"narHash": "sha256-fXDr93nc3zUDCGS5qhrXAtwBJfiI40jIdoMncLAzbUY=",
"owner": "musnix",
"repo": "musnix",
"rev": "0a2bbd1e2ec78ef268698eb682f39015c1f3ca1d",
"type": "github"
},
"original": {
"owner": "musnix",
"repo": "musnix",
"type": "github"
}
},
"nix-darwin": { "nix-darwin": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -368,11 +453,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1727003835, "lastModified": 1733570843,
"narHash": "sha256-Cfllbt/ADfO8oxbT984MhPHR6FJBaglsr1SxtDGbpec=", "narHash": "sha256-sQJAxY1TYWD1UyibN/FnN97paTFuwBw3Vp3DNCyKsMk=",
"owner": "lnl7", "owner": "lnl7",
"repo": "nix-darwin", "repo": "nix-darwin",
"rev": "bd7d1e3912d40f799c5c0f7e5820ec950f1e0b3d", "rev": "a35b08d09efda83625bef267eb24347b446c80b8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -384,18 +469,16 @@
"nixos-cosmic": { "nixos-cosmic": {
"inputs": { "inputs": {
"flake-compat": "flake-compat", "flake-compat": "flake-compat",
"nixpkgs": [ "nixpkgs": "nixpkgs_4",
"nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable", "nixpkgs-stable": "nixpkgs-stable",
"rust-overlay": "rust-overlay" "rust-overlay": "rust-overlay"
}, },
"locked": { "locked": {
"lastModified": 1727314564, "lastModified": 1734745015,
"narHash": "sha256-UE98O6EQYUiDp7rypkBfJG0XSz0c5FxkslyP+7Gskt8=", "narHash": "sha256-HGl0yR/qfGTO99NfiB5bqTe2nPKmD57opzB/TwhJSW0=",
"owner": "lilyinstarlight", "owner": "lilyinstarlight",
"repo": "nixos-cosmic", "repo": "nixos-cosmic",
"rev": "f2aa34f521da1d6335301fc1b58dde8ed779d632", "rev": "1c922245aec471610533c7a225bf9c20e7002ff2",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -406,11 +489,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1722185531, "lastModified": 1732837521,
"narHash": "sha256-veKR07psFoJjINLC8RK4DiLniGGMgF3QMlS4tb74S6k=", "narHash": "sha256-jNRNr49UiuIwaarqijgdTR2qLPifxsVhlJrKzQ8XUIE=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "52ec9ac3b12395ad677e8b62106f0b98c1f8569d", "rev": "970e93b9f82e2a0f3675757eb0bfc73297cc6370",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -422,58 +505,90 @@
}, },
"nixpkgs-stable": { "nixpkgs-stable": {
"locked": { "locked": {
"lastModified": 1727129439, "lastModified": 1734600368,
"narHash": "sha256-nPyrcFm6FSk7CxzVW4x2hu62aLDghNcv9dX6DF3dXw8=", "narHash": "sha256-nbG9TijTMcfr+au7ZVbKpAhMJzzE2nQBYmRvSdXUD8g=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "babc25a577c3310cce57c72d5bed70f4c3c3843a", "rev": "b47fd6fa00c6afca88b8ee46cfdb00e104f50bca",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"ref": "nixos-24.05", "ref": "nixos-24.11",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"nixpkgs-stable_2": { "nixpkgs-stable_2": {
"locked": { "locked": {
"lastModified": 1725762081, "lastModified": 1734529975,
"narHash": "sha256-vNv+aJUW5/YurRy1ocfvs4q/48yVESwlC/yHzjkZSP8=", "narHash": "sha256-ze3IJksru9dN0keqUxY0WNf8xrwfs8Ty/z9v/keyBbg=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "dc454045f5b5d814e5862a6d057e7bb5c29edc05", "rev": "72d11d40b9878a67c38f003c240c2d2e1811e72a",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "release-24.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1727122398,
"narHash": "sha256-o8VBeCWHBxGd4kVMceIayf5GApqTavJbTa44Xcg5Rrk=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "30439d93eb8b19861ccbe3e581abf97bdc91b093",
"type": "github" "type": "github"
}, },
"original": { "original": {
"id": "nixpkgs", "id": "nixpkgs",
"ref": "nixos-unstable", "ref": "nixos-24.05",
"type": "indirect" "type": "indirect"
} }
}, },
"nixpkgs_2": {
"locked": {
"lastModified": 1729256560,
"narHash": "sha256-/uilDXvCIEs3C9l73JTACm4quuHUsIHcns1c+cHUJwA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "4c2fcb090b1f3e5b47eaa7bd33913b574a11e0a0",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1725534445, "lastModified": 1733392399,
"narHash": "sha256-Yd0FK9SkWy+ZPuNqUgmVPXokxDgMJoGuNpMEtkfcf84=", "narHash": "sha256-kEsTJTUQfQFIJOcLYFt/RvNxIK653ZkTBIs4DG+cBns=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "9bb1e7571aadf31ddb4af77fc64b2d59580f9a39", "rev": "d0797a04b81caeae77bcff10a9dde78bc17f5661",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1734424634,
"narHash": "sha256-cHar1vqHOOyC7f1+tVycPoWTfKIaqkoe1Q6TnKzuti4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "d3c42f187194c26d9f0309a8ecc469d6c878ce33",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1731763621,
"narHash": "sha256-ddcX4lQL0X05AYkrkV2LMFgGdRvgap7Ho8kgon3iWZk=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "c69a9bffbecde46b4b939465422ddc59493d3e4d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -483,13 +598,13 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_4": { "nixpkgs_6": {
"locked": { "locked": {
"lastModified": 1725194671, "lastModified": 1732238832,
"narHash": "sha256-tLGCFEFTB5TaOKkpfw3iYT9dnk4awTP/q4w+ROpMfuw=", "narHash": "sha256-sQxuJm8rHY20xq6Ah+GwIUkF95tWjGRd1X8xF+Pkk38=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "b833ff01a0d694b910daca6e2ff4a3f26dee478c", "rev": "8edf06bea5bcbee082df1b7369ff973b91618b8d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -505,7 +620,7 @@
"flake-compat": "flake-compat_2", "flake-compat": "flake-compat_2",
"flake-parts": "flake-parts", "flake-parts": "flake-parts",
"git-hooks": "git-hooks", "git-hooks": "git-hooks",
"home-manager": "home-manager_2", "home-manager": "home-manager_3",
"nix-darwin": "nix-darwin", "nix-darwin": "nix-darwin",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
@ -514,11 +629,11 @@
"treefmt-nix": "treefmt-nix" "treefmt-nix": "treefmt-nix"
}, },
"locked": { "locked": {
"lastModified": 1727328717, "lastModified": 1734798432,
"narHash": "sha256-tGEVv5mFs38m6+60fNKlZn/6ucoOotfwn9FikXiYSlk=", "narHash": "sha256-JVU+WjrRZUJnUKQ/iXP9O8eQ0L3YkqV1DpFMS4kLZog=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixvim", "repo": "nixvim",
"rev": "2ab8751b8be55accb78ca0ca58f1f4ff387001d7", "rev": "6a4b4221c4ebf1140f73f8df769e97f1828d90fa",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -530,17 +645,18 @@
"nuschtosSearch": { "nuschtosSearch": {
"inputs": { "inputs": {
"flake-utils": "flake-utils", "flake-utils": "flake-utils",
"ixx": "ixx",
"nixpkgs": [ "nixpkgs": [
"nixvim", "nixvim",
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1726995581, "lastModified": 1733773348,
"narHash": "sha256-lgsE/CTkZk9OIiFGEIrxXZQ7Feiv41dqlN7pEfTdgew=", "narHash": "sha256-Y47y+LesOCkJaLvj+dI/Oa6FAKj/T9sKVKDXLNsViPw=",
"owner": "NuschtOS", "owner": "NuschtOS",
"repo": "search", "repo": "search",
"rev": "3b7dd61b365ca45380707453758a45f2e9977be3", "rev": "3051be7f403bff1d1d380e4612f0c70675b44fc9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -551,10 +667,15 @@
}, },
"root": { "root": {
"inputs": { "inputs": {
"home-manager": "home-manager", "hm-cosmic": "hm-cosmic",
"home-manager-cosmic": "home-manager-cosmic", "home-manager": "home-manager_2",
"musnix": "musnix",
"nixos-cosmic": "nixos-cosmic", "nixos-cosmic": "nixos-cosmic",
"nixpkgs": "nixpkgs_2", "nixpkgs": [
"nixos-cosmic",
"nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable_2",
"nixvim": "nixvim", "nixvim": "nixvim",
"sops-nix": "sops-nix", "sops-nix": "sops-nix",
"stylix": "stylix" "stylix": "stylix"
@ -568,11 +689,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1727231386, "lastModified": 1734661750,
"narHash": "sha256-XLloPtQHKk/Tdt8t8zIb+JhmunlH3YB9Jz8RTlQ3N/4=", "narHash": "sha256-BI58NBdimxu1lnpOrG9XxBz7Cwqy+qIf99zunWofX5w=",
"owner": "oxalica", "owner": "oxalica",
"repo": "rust-overlay", "repo": "rust-overlay",
"rev": "b5f76c3b09a8194889f5328a480fbea1a9115518", "rev": "7d3d910d5fd575e6e8c5600d83d54e5c47273bfe",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -583,15 +704,14 @@
}, },
"sops-nix": { "sops-nix": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_3", "nixpkgs": "nixpkgs_5"
"nixpkgs-stable": "nixpkgs-stable_2"
}, },
"locked": { "locked": {
"lastModified": 1726524647, "lastModified": 1734546875,
"narHash": "sha256-qis6BtOOBBEAfUl7FMHqqTwRLB61OL5OFzIsOmRz2J4=", "narHash": "sha256-6OvJbqQ6qPpNw3CA+W8Myo5aaLhIJY/nNFDk3zMXLfM=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "e2d404a7ea599a013189aa42947f66cede0645c8", "rev": "ed091321f4dd88afc28b5b4456e0a15bd8374b4d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -609,19 +729,19 @@
"flake-compat": "flake-compat_3", "flake-compat": "flake-compat_3",
"flake-utils": "flake-utils_2", "flake-utils": "flake-utils_2",
"gnome-shell": "gnome-shell", "gnome-shell": "gnome-shell",
"home-manager": "home-manager_3", "home-manager": "home-manager_4",
"nixpkgs": "nixpkgs_4", "nixpkgs": "nixpkgs_6",
"systems": "systems_2", "systems": "systems_2",
"tinted-foot": "tinted-foot", "tinted-foot": "tinted-foot",
"tinted-kitty": "tinted-kitty", "tinted-kitty": "tinted-kitty",
"tinted-tmux": "tinted-tmux" "tinted-tmux": "tinted-tmux"
}, },
"locked": { "locked": {
"lastModified": 1727355527, "lastModified": 1734531336,
"narHash": "sha256-qFSPHeImI00fBzGTA94D66HMD+fJDkuz04WHp2Sg8eA=", "narHash": "sha256-BWwJTAiWmZudUdUbyets7e3zQfjvZYtkU51blBnUBjw=",
"owner": "danth", "owner": "danth",
"repo": "stylix", "repo": "stylix",
"rev": "993fcabd83d1e0ee5ea038b87041593cc73c1ebe", "rev": "a2d66f25478103ac9b4adc6d6713794f7005221e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -663,43 +783,45 @@
"tinted-foot": { "tinted-foot": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1696725948, "lastModified": 1726913040,
"narHash": "sha256-65bz2bUL/yzZ1c8/GQASnoiGwaF8DczlxJtzik1c0AU=", "narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "tinted-foot", "repo": "tinted-foot",
"rev": "eedbcfa30de0a4baa03e99f5e3ceb5535c2755ce", "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "tinted-foot", "repo": "tinted-foot",
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
"type": "github" "type": "github"
} }
}, },
"tinted-kitty": { "tinted-kitty": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1665001328, "lastModified": 1716423189,
"narHash": "sha256-aRaizTYPpuWEcvoYE9U+YRX+Wsc8+iG0guQJbvxEdJY=", "narHash": "sha256-2xF3sH7UIwegn+2gKzMpFi3pk5DlIlM18+vj17Uf82U=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "tinted-kitty", "repo": "tinted-kitty",
"rev": "06bb401fa9a0ffb84365905ffbb959ae5bf40805", "rev": "eb39e141db14baef052893285df9f266df041ff8",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "tinted-kitty", "repo": "tinted-kitty",
"rev": "eb39e141db14baef052893285df9f266df041ff8",
"type": "github" "type": "github"
} }
}, },
"tinted-tmux": { "tinted-tmux": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1696725902, "lastModified": 1729501581,
"narHash": "sha256-wDPg5elZPcQpu7Df0lI5O8Jv4A3T6jUQIVg63KDU+3Q=", "narHash": "sha256-1ohEFMC23elnl39kxWnjzH1l2DFWWx4DhFNNYDTYt54=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "tinted-tmux", "repo": "tinted-tmux",
"rev": "c02050bebb60dbb20cb433cd4d8ce668ecc11ba7", "rev": "f0e7f7974a6441033eb0a172a0342e96722b4f14",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -716,11 +838,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1726734507, "lastModified": 1734704479,
"narHash": "sha256-VUH5O5AcOSxb0uL/m34dDkxFKP6WLQ6y4I1B4+N3L2w=", "narHash": "sha256-MMi74+WckoyEWBRcg/oaGRvXC9BVVxDZNRMpL+72wBI=",
"owner": "numtide", "owner": "numtide",
"repo": "treefmt-nix", "repo": "treefmt-nix",
"rev": "ee41a466c2255a3abe6bc50fc6be927cdee57a9f", "rev": "65712f5af67234dad91a5a4baee986a8b62dbf8f",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -1,17 +1,20 @@
{ {
description = "A flake using my config"; description = "A flake using my config";
inputs = { inputs = {
nixpkgs.url = "nixpkgs/nixos-unstable"; # nixpkgs.url = "nixpkgs/nixos-unstable";
musnix.url = "github:musnix/musnix";
nixpkgs.follows = "nixos-cosmic/nixpkgs";
nixpkgs-stable.url = "nixpkgs/nixos-24.05";
home-manager = { home-manager = {
url = "github:nix-community/home-manager/master"; url = "github:nix-community/home-manager/master";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
home-manager-cosmic.url = "github:tristanbeedell/home-manager/cosmic"; hm-cosmic.url = "github:tristanbeedell/hm-cosmic/master";
stylix.url = "github:danth/stylix"; stylix.url = "github:danth/stylix";
sops-nix.url = "github:Mic92/sops-nix"; sops-nix.url = "github:Mic92/sops-nix";
nixos-cosmic = { nixos-cosmic = {
url = "github:lilyinstarlight/nixos-cosmic"; url = "github:lilyinstarlight/nixos-cosmic";
inputs.nixpkgs.follows = "nixpkgs"; # inputs.nixpkgs.follows = "nixpkgs";
}; };
nixvim = { nixvim = {
url = "github:nix-community/nixvim"; url = "github:nix-community/nixvim";
@ -36,9 +39,12 @@
./nixos/programs/cosmic.nix ./nixos/programs/cosmic.nix
./nixos/programs/gamer.nix ./nixos/programs/gamer.nix
./nixos/programs/personal.nix ./nixos/programs/personal.nix
./nixos/services/musnix.nix
./nixos/workstation.nix ./nixos/workstation.nix
./nixos/programs/hyprland.nix
]; ];
home-modules = [ home-modules = [
./home/programs/mpd.nix
./home/programs/graphical.nix ./home/programs/graphical.nix
./home/programs/gamer.nix ./home/programs/gamer.nix
./home/programs/personal/. ./home/programs/personal/.
@ -48,13 +54,14 @@
FCS-Tristan-Nixbook = mkConf { FCS-Tristan-Nixbook = mkConf {
nixos-modules = [ nixos-modules = [
./hardware/fcs-tristan-nixbook.nix ./hardware/fcs-tristan-nixbook.nix
# (auto-login "Hyprland")
# ./nixos/programs/hyprland.nix
./nixos/workstation.nix ./nixos/workstation.nix
./nixos/modules/work.nix ./nixos/modules/work.nix
./nixos/programs/cosmic.nix ./nixos/programs/cosmic.nix
./nixos/programs/libvertd.nix
./nixos/programs/hyprland.nix
]; ];
home-modules = [ home-modules = [
./home/programs/mpd.nix
./home/programs/work.nix ./home/programs/work.nix
./home/programs/graphical.nix ./home/programs/graphical.nix
]; ];

View file

@ -62,7 +62,6 @@ in {
"minfreespace=50G" "minfreespace=50G"
"fsname=mergerfs" "fsname=mergerfs"
"category.create=mfs" "category.create=mfs"
"cache.files=auto-all"
"dropcacheonclose=true" "dropcacheonclose=true"
]; ];
}; };

View file

@ -6,7 +6,6 @@
... ...
}: let }: let
user = config.user; user = config.user;
decrypt = import ../lib/decrypt.nix;
in { in {
imports = [ imports = [
(modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/installer/scan/not-detected.nix")
@ -24,7 +23,7 @@ in {
}; };
boot.initrd.luks.devices."usbkey" = { boot.initrd.luks.devices."usbkey" = {
device = "/dev/disk/by-id/usb-Generic_Flash_Disk_BCC97785-0:0"; device = "/dev/disk/by-label/usbkey1";
}; };
boot.initrd.luks.devices."cryptroot" = { boot.initrd.luks.devices."cryptroot" = {
@ -32,7 +31,7 @@ in {
keyFileSize = 4096; keyFileSize = 4096;
preOpenCommands = '' preOpenCommands = ''
mkdir -m 0755 -p /key mkdir -m 0755 -p /key
mount -n -t vfat -o ro /dev/mapper/usbkey /key mount -n -o ro /dev/mapper/usbkey /key
''; '';
keyFile = "/key/keyfile"; keyFile = "/key/keyfile";
preLVM = false; preLVM = false;

View file

@ -6,7 +6,6 @@
... ...
}: let }: let
user = config.user; user = config.user;
decrypt = import ../lib/decrypt.nix;
in { in {
imports = [ imports = [
(modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/installer/scan/not-detected.nix")
@ -20,7 +19,7 @@ in {
boot.extraModulePackages = []; boot.extraModulePackages = [];
fileSystems."/" = { fileSystems."/" = {
device = "/dev/disk/by-uuid/2dad5ed6-44cc-4d9d-9392-32afaa7b3909"; device = "/dev/mapper/cryptroot";
fsType = "btrfs"; fsType = "btrfs";
options = ["subvol=@" "compress=zstd" "autodefrag"]; options = ["subvol=@" "compress=zstd" "autodefrag"];
}; };
@ -32,30 +31,38 @@ in {
options = ["noatime"]; options = ["noatime"];
}; };
boot.initrd.postDeviceCommands = pkgs.lib.mkBefore (decrypt { boot.initrd.luks.devices."usbkey" = {
keydevice = "/dev/disk/by-id/usb-Generic_Flash_Disk_BCC97785-0:0"; device = "/dev/disk/by-label/usbkey1";
keypartname = "usbkey"; };
});
boot.initrd.luks.devices."cryptroot" = { boot.initrd.luks.devices."cryptroot" = {
device = "/dev/disk/by-uuid/cc0617df-8cbf-4618-abbc-df64c96de151"; device = "/dev/disk/by-uuid/cc0617df-8cbf-4618-abbc-df64c96de151";
keyFileSize = 4096; keyFileSize = 4096;
preOpenCommands = ''
mkdir -m 0755 -p /key
mount -n -o ro /dev/mapper/usbkey /key
'';
keyFile = "/key/keyfile"; keyFile = "/key/keyfile";
preLVM = false; preLVM = false;
}; };
fileSystems."/home" = { fileSystems."/home" = {
device = "/dev/disk/by-uuid/2dad5ed6-44cc-4d9d-9392-32afaa7b3909"; device = "/dev/mapper/cryptroot";
fsType = "btrfs"; fsType = "btrfs";
options = ["subvol=@home" "compress=zstd" "autodefrag"]; options = ["subvol=@home" "compress=zstd" "autodefrag"];
}; };
fileSystems."/boot" = { fileSystems."/boot" = {
device = "/dev/disk/by-uuid/FE7E-0DE3"; device = "/dev/disk/by-label/boot";
fsType = "vfat"; fsType = "vfat";
}; };
swapDevices = [{device = "/dev/disk/by-uuid/da57b489-ab77-4830-b710-9f96cf43d053";}]; boot.plymouth.enable = true;
boot.initrd.verbose = false;
boot.consoleLogLevel = 1;
boot.kernelParams = ["quiet" "udev.log_level=3"];
swapDevices = [{device = "/dev/disk/by-label/swap";}];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's # (the default) this is the recommended approach. When using systemd-networkd it's
@ -64,7 +71,7 @@ in {
networking.useDHCP = lib.mkDefault true; networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp5s0.useDHCP = lib.mkDefault true; # networking.interfaces.enp5s0.useDHCP = lib.mkDefault true;
networking.networkmanager.insertNameservers = ["1.1.1.1" "1.0.0.1"]; networking.networkmanager.appendNameservers = ["1.1.1.1" "1.0.0.1"];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;

View file

@ -37,9 +37,7 @@
yt-dlp yt-dlp
fastfetch fastfetch
tree tree
ansible
ytfzf ytfzf
lazygit
]; ];
programs.zoxide.enable = true; programs.zoxide.enable = true;

View file

@ -1,23 +1,30 @@
{ {
pkgs, pkgs,
config, config,
lib,
... ...
}: let }: let
inherit (config.lib.cosmic) Actions; inherit (config.lib.cosmic) Actions mapBinds;
SpawnTerminal = name: pkg:
Actions.Spawn (pkgs.writeShellScriptBin name "${lib.getExe pkgs.alacritty} -e ${lib.getExe pkg}");
in { in {
programs.cosmic = { programs.cosmic = {
enable = true; enable = true;
input.asDefaults = true; input.asDefaults = true;
input.binds = { input.binds = mapBinds {
# Navigation # Navigation
Super. "h" = Actions.Focus "Left"; Super. "h" = Actions.Focus "Left";
Super. "l" = Actions.Focus "Right"; Super. "l" = Actions.Focus "Right";
Super. "j" = Actions.Focus "Down"; Super. "j" = Actions.Focus "Down";
Super. "k" = Actions.Focus "Up"; Super. "k" = Actions.Focus "Up";
Super. "u" = Actions.Focus "Out";
Super. "i" = Actions.Focus "In";
Super.Shift. "h" = Actions.Move "Left"; Super.Shift. "h" = Actions.Move "Left";
Super.Shift. "l" = Actions.Move "Right"; Super.Shift. "l" = Actions.Move "Right";
Super.Shift. "j" = Actions.Move "Down"; Super.Shift. "j" = Actions.Move "Down";
Super.Shift. "k" = Actions.Move "Up"; Super.Shift. "k" = Actions.Move "Up";
Super.Shift. "Right" = Actions.MoveToNextWorkspace;
Super.Shift. "Left" = Actions.MoveToPreviousWorkspace;
Super. "1" = Actions.Workspace 1; Super. "1" = Actions.Workspace 1;
Super. "2" = Actions.Workspace 2; Super. "2" = Actions.Workspace 2;
Super. "3" = Actions.Workspace 3; Super. "3" = Actions.Workspace 3;
@ -37,13 +44,21 @@ in {
# System # System
Super. "d" = Actions.Spawn config.programs.menu.drunCommand; Super. "d" = Actions.Spawn config.programs.menu.drunCommand;
Super. "Return" = Actions.Spawn pkgs.alacritty; Super. "Return" = Actions.Spawn pkgs.alacritty;
Super. "e" = SpawnTerminal "aerc" config.programs.aerc.package;
Super. "o" = Actions.System "HomeFolder"; Super. "o" = Actions.System "HomeFolder";
Super.Shift. "s" = Actions.System "Screenshot"; Super.Shift. "s" = Actions.System "Screenshot";
"XF86AudioRaiseVolume" = Actions.System "VolumeRaise";
"XF86AudioLowerVolume" = Actions.System "VolumeLower";
"XF86AudioPlay" = Actions.System "PlayPause";
"XF86AudioNext" = Actions.System "PlayNext";
"XF86AudioPrev" = Actions.System "PlayPrev";
"XF86MonBrightnessUp" = Actions.System "BrightnessUp";
"XF86MonBrightnessDown" = Actions.System "BrightnessDown";
}; };
background = { background = {
displays = { displays = {
all = { all = {
source = ../../../images/nier2.jpg; source = lib.mkDefault config.stylix.image;
}; };
}; };
}; };
@ -53,13 +68,16 @@ in {
start = [ start = [
"com.system76.CosmicAppletWorkspaces" "com.system76.CosmicAppletWorkspaces"
]; ];
center = []; center = [
"com.system76.CosmicAppletMinimize"
];
end = [ end = [
"com.system76.CosmicAppletTime" "com.system76.CosmicAppletTime"
"com.system76.CosmicAppletTiling" "com.system76.CosmicAppletTiling"
"com.system76.CosmicAppletAudio" "com.system76.CosmicAppletAudio"
"com.system76.CosmicAppletNetwork"
"com.system76.CosmicAppletNotifications" "com.system76.CosmicAppletNotifications"
"com.system76.CosmicAppletMinimize" "com.system76.CosmicAppletStatusArea"
"com.system76.CosmicAppletPower" "com.system76.CosmicAppletPower"
]; ];
}; };
@ -69,13 +87,15 @@ in {
}; };
}; };
}; };
settings = { comp.settings = {
"com.system76.CosmicComp".options = { autotile = true;
autotile = true; active_hint = true;
active_hint = true; focus_follows_cursor = true;
focus_follows_cursor = true; focus_follows_cursor_delay = 0;
focus_follows_cursor_delay = 0; cursor_follows_focus = true;
cursor_follows_focus = true; descale_xwayland = true;
workspaces = {
workspace_layout = "Horizontal";
}; };
}; };
}; };

View file

@ -23,7 +23,7 @@ in {
xdg.portal = { xdg.portal = {
enable = true; enable = true;
configPackages = [pkgs.hyprland]; configPackages = [pkgs.hyprland];
extraPortals = [pkgs.xdg-desktop-portal-gtk]; extraPortals = [pkgs.xdg-desktop-portal-gtk pkgs.xdg-desktop-portal-wlr];
}; };
services.hypridle = { services.hypridle = {
@ -52,7 +52,7 @@ in {
programs.hyprlock = { programs.hyprlock = {
enable = true; enable = true;
settings = { settings = lib.mkForce {
# https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/ # https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/
general = { general = {
hide_cursor = true; hide_cursor = true;
@ -88,8 +88,9 @@ in {
enable = true; enable = true;
systemd = { systemd = {
enable = true; enable = true;
variables = ["--all"]; # variables = ["--all"];
}; };
xwayland.enable = true;
settings = { settings = {
input = { input = {
touchpad = { touchpad = {
@ -105,7 +106,6 @@ in {
}; };
decoration = { decoration = {
rounding = 0; rounding = 0;
drop_shadow = false;
}; };
bezier = [ bezier = [
"overshot, 0.05, 0.9, 0.1, 1.1" "overshot, 0.05, 0.9, 0.1, 1.1"
@ -277,5 +277,10 @@ in {
enable = true; enable = true;
}; };
programs.waybar.settings.mainBar.modules-left = ["hyprland/workspaces" "hyprland/window"]; programs.waybar = {
settings.mainBar.modules-left = ["hyprland/workspaces" "hyprland/window"];
systemd.target = "hyprland-session.target";
};
systemd.user.services.hypridle.Install.WantedBy = lib.mkForce ["hyprland-session.target"];
} }

View file

@ -1,77 +0,0 @@
{
lib,
pkgs,
config,
...
}:
with lib; let
cfg = config.roles.mpd;
terminal = config.programs.terminal;
termcmd = "${terminal}/bin/${terminal.pname}";
in {
options.roles.mpd = {
enable = mkEnableOption "setup mpd client";
host = mkOption {default = "192.168.1.2";};
};
config = mkIf cfg.enable {
programs.ncmpcpp = {
enable = true;
settings.mpd_host = cfg.host;
bindings = [
{
key = "j";
command = "scroll_down";
}
{
key = "k";
command = "scroll_up";
}
{
key = "l";
command = "next_column";
}
{
key = "h";
command = "previous_column";
}
{
key = "J";
command = ["select_item" "scroll_down"];
}
{
key = "K";
command = ["select_item" "scroll_up"];
}
];
};
services.mpd-mpris = {
enable = true;
mpd.host = cfg.host;
};
programs.waybar.settings.mainBar.mpd.server = cfg.host;
programs.scripts = [
{
name = "ncmpcpp";
text = ''
${termcmd} -e ${pkgs.ncmpcpp}/bin/ncmpcpp
'';
hotkeys = [{key = "M";}];
install = false;
}
];
systemd.user.services = {
snapclient = {
Unit = {
Description = "Snapclient";
};
Service = {
ExecStart = "${pkgs.snapcast}/bin/snapclient -h ${cfg.host}";
};
Install = {
WantedBy = ["graphical-session.target"];
};
};
};
};
}

View file

@ -12,15 +12,10 @@
gamescope gamescope
gamemode gamemode
mangohud mangohud
BeatSaberModManager # BeatSaberModManager - out of date: https://github.com/NixOS/nixpkgs/pull/339370
protontricks protontricks
protonup-qt protonup-qt
oversteer oversteer
xboxdrv xboxdrv
# VR
# monado -- build is borked /:
openxr-loader
opencomposite
]; ];
} }

View file

@ -1,10 +1,21 @@
{pkgs, ...}: { {
pkgs,
lib,
config,
...
}: {
programs.git = { programs.git = {
enable = true; enable = true;
extraConfig = {
rerere.enabled = true;
rebase.updateRefs = true;
};
aliases = { aliases = {
ui = "!lazygit";
graph = "log --oneline --all --graph"; graph = "log --oneline --all --graph";
amend = "commit --amend --no-edit"; amend = "commit --amend --no-edit";
sdiff = "diff --staged"; sdiff = "diff --staged";
fpush = "push --force-with-lease";
t = "tag --annotate"; t = "tag --annotate";
bclone = "!sh ${pkgs.writeShellScriptBin "bare-clone" '' bclone = "!sh ${pkgs.writeShellScriptBin "bare-clone" ''
url=$1 url=$1
@ -33,8 +44,12 @@
git fetch origin $opts git fetch origin $opts
''}/bin/bare-clone"; ''}/bin/bare-clone";
}; };
delta = { difftastic = {
enable = true; enable = true;
}; };
}; };
programs.lazygit = {
enable = true;
};
} }

View file

@ -9,7 +9,7 @@
# system # system
selectdefaultapplication selectdefaultapplication
easyeffects easyeffects
pavucontrol pwvucontrol
helvum helvum
# tools # tools
@ -18,21 +18,31 @@
gimp gimp
libreoffice libreoffice
dbeaver-bin dbeaver-bin
drawio zed-editor
# entertainment # entertainment
libsForQt5.kasts libsForQt5.kasts
shortwave shortwave
freetube
youtube-music
# other # other
element-desktop-wayland element-desktop-wayland
(makeDesktopItem {
name = "element-desktop-wayland";
desktopName = "Element";
exec = "${element-desktop-wayland}/bin/element-desktop";
})
brave brave
bitwarden bitwarden
]; ];
programs.obs-studio = { programs.obs-studio = {
enable = true; enable = true;
plugins = [pkgs.obs-studio-plugins.wlrobs]; plugins = [
pkgs.obs-studio-plugins.wlrobs
pkgs.obs-studio-plugins.obs-pipewire-audio-capture
];
}; };
xdg.mimeApps.defaultApplications = { xdg.mimeApps.defaultApplications = {

70
home/programs/mpd.nix Normal file
View file

@ -0,0 +1,70 @@
{
lib,
pkgs,
config,
...
}:
let
terminal = config.programs.terminal;
termcmd = "${terminal}/bin/${terminal.pname}";
host = "alpine";
in {
programs.ncmpcpp = {
enable = true;
settings.mpd_host = host;
bindings = [
{
key = "j";
command = "scroll_down";
}
{
key = "k";
command = "scroll_up";
}
{
key = "l";
command = "next_column";
}
{
key = "h";
command = "previous_column";
}
{
key = "J";
command = ["select_item" "scroll_down"];
}
{
key = "K";
command = ["select_item" "scroll_up"];
}
];
};
services.mpd-mpris = {
enable = true;
mpd.host = host;
};
programs.waybar.settings.mainBar.mpd.server = host;
programs.scripts = [
{
name = "ncmpcpp";
text = ''
${termcmd} -e ${pkgs.ncmpcpp}/bin/ncmpcpp
'';
hotkeys = [{key = "M";}];
install = false;
}
];
systemd.user.services = {
snapclient = {
Unit = {
Description = "Snapclient";
};
Service = {
ExecStart = "${pkgs.snapcast}/bin/snapclient -h ${host}";
};
Install = {
WantedBy = ["graphical-session.target"];
};
};
};
}

View file

@ -1,6 +1,9 @@
{pkgs, ...}: { {pkgs, ...}: {
programs.mpv = { programs.mpv = {
enable = true; enable = true;
config = {
keep-open = true;
};
bindings = { bindings = {
l = "seek 5"; l = "seek 5";
h = "seek -5"; h = "seek -5";

View file

@ -3,12 +3,12 @@
pkgs, pkgs,
lib, lib,
... ...
}: { } @ input: {
programs.nixvim = programs.nixvim =
{ {
enable = true; enable = true;
} }
// (import ../../../lib/nixvim.nix {inherit pkgs;}); // (import ../../../lib/nixvim.nix input);
programs.vscode = { programs.vscode = {
extensions = [pkgs.vscode-extensions.asvetliakov.vscode-neovim]; extensions = [pkgs.vscode-extensions.asvetliakov.vscode-neovim];

View file

@ -1,7 +1,4 @@
{pkgs, ...}: { {pkgs, ...}: {
imports = [
# ./kodi.nix
];
roles.email = { roles.email = {
enable = true; enable = true;
email = "tristan@tristans.cloud"; email = "tristan@tristans.cloud";
@ -15,9 +12,6 @@
services.nextcloud-client.enable = true; services.nextcloud-client.enable = true;
programs.nixvim.plugins = { programs.nixvim.plugins = {
lsp = {
servers.gdscript.enable = true;
};
godot.enable = true; godot.enable = true;
dap = { dap = {
enable = true; enable = true;
@ -38,9 +32,7 @@
home.packages = with pkgs; [ home.packages = with pkgs; [
godot_4 godot_4
ardour
blender blender
musescore
monero-gui monero-gui
transmission-remote-gtk transmission-remote-gtk
krita krita

View file

@ -274,11 +274,13 @@ in {
text = '' text = ''
res=$(echo "lock res=$(echo "lock
sleep sleep
hibernate" | ${my-deps.menu}) hibernate
logout" | ${my-deps.menu})
case $res in case $res in
lock) ${my-deps.lock};; lock) ${my-deps.lock};;
sleep) systemctl suspend;; sleep) systemctl suspend;;
hibernate) systemctl hibernate;; hibernate) systemctl hibernate;;
logout) hyprctl dispatch exit;;
esac esac
''; '';
hotkeys = [ hotkeys = [

View file

@ -15,10 +15,17 @@ in {
email = "tristan.beedell@cryoserver.com"; email = "tristan.beedell@cryoserver.com";
terminal = false; terminal = false;
}; };
programs.git.extraConfig = {
"includeIf \"gitdir:~/Documents/personal/\"" = {
path = "~/Documents/personal/.gitconfig";
};
};
home.packages = [ home.packages = [
pkgs.drawio
pkgs.thunderbird pkgs.thunderbird
pkgs.remmina pkgs.remmina
pkgs.postman
(import ../../lib/mkapp.nix "slack" { (import ../../lib/mkapp.nix "slack" {
inherit pkgs browser; inherit pkgs browser;
desktopName = "Slack"; desktopName = "Slack";
@ -30,17 +37,19 @@ in {
desktopName = "Microsoft Teams"; desktopName = "Microsoft Teams";
}) })
pkgs.devcontainer pkgs.devcontainer
(pkgs.writeShellScriptBin "devcontainer-open" (let (pkgs.writeShellScriptBin "devcontainer-open" (
jq = "${pkgs.jq}/bin/jq"; let
devcontainer = "${pkgs.devcontainer}/bin/devcontainer"; jq = "${pkgs.jq}/bin/jq";
in '' devcontainer = "${pkgs.devcontainer}/bin/devcontainer";
res=$(${devcontainer} up --workspace-folder .) in ''
outcome=$(echo $res | ${jq} -r '.outcome') res=$(${devcontainer} up --workspace-folder .)
[[ $outcome = "success" ]] || exit 1 outcome=$(echo $res | ${jq} -r '.outcome')
containerId=$(echo $res | ${jq} -r '.containerId') [[ $outcome = "success" ]] || exit 1
remoteWorkspaceFolder=$(echo $res | ${jq} -r '.remoteWorkspaceFolder') containerId=$(echo $res | ${jq} -r '.containerId')
docker exec -it --workdir=$remoteWorkspaceFolder $containerId bash remoteWorkspaceFolder=$(echo $res | ${jq} -r '.remoteWorkspaceFolder')
'')) docker exec -it --workdir=$remoteWorkspaceFolder $containerId bash
''
))
]; ];
home.sessionVariables = { home.sessionVariables = {

View file

@ -1,30 +1,34 @@
{ {
pkgs, pkgs,
# config, config,
... ...
}: { }: {
home.packages = with pkgs; [
openxr-loader
opencomposite
];
services.monado.enable = true;
systemd.user.services.monado.environment = {
STEAMVR_LH_ENABLE = "true";
XRT_COMPOSITOR_SCALE_PERCENTAGE = "200";
};
home.file.".config/openxr/1/openxr_monado.json" = { home.file.".config/openxr/1/openxr_monado.json" = {
source = "${pkgs.monado}/share/openxr/1/openxr_monado.json"; source = "${pkgs.monado}/share/openxr/1/openxr_monado.json";
}; };
# home.file.".config/openvr/openvrpaths.vrpath" = { home.file.".config/openvr/openvrpaths.vrpath" = {
# text = '' text = builtins.toJSON {
# { "config" = [
# "config" : "${config.home.homeDirectory}/.local/share/Steam/config"
# [ ];
# "${config.home.homeDirectory}/.local/share/Steam/config" "external_drivers" = null;
# ], "jsonid" = "vrpathreg";
# "external_drivers" : null, "log" = [
# "jsonid" : "vrpathreg", "${config.home.homeDirectory}/.local/share/Steam/logs"
# "log" : ];
# [ "runtime" = [
# "${config.home.homeDirectory}/.local/share/Steam/logs" "${pkgs.opencomposite}/lib/opencomposite"
# ], ];
# "runtime" : "version" = 1;
# [ };
# "${pkgs.opencomposite}/lib/opencomposite" };
# ],
# "version" : 1
# }
# '';
# };
} }

View file

@ -2,6 +2,7 @@
config, config,
pkgs, pkgs,
lib, lib,
stable-pkgs,
... ...
}: { }: {
imports = [ imports = [
@ -27,6 +28,8 @@
wl-clipboard wl-clipboard
playerctl playerctl
quickemu quickemu
devenv
stable-pkgs.logseq
]; ];
services.udiskie = { services.udiskie = {
@ -36,6 +39,7 @@
programs.rbw.settings.pinentry = pkgs.pinentry-gnome3; programs.rbw.settings.pinentry = pkgs.pinentry-gnome3;
# https://docs.pipewire.org/page_module_raop_discover.html
xdg.configFile."pipewire/pipewire.conf.d/raop-discover.conf".text = '' xdg.configFile."pipewire/pipewire.conf.d/raop-discover.conf".text = ''
context.modules = [ context.modules = [
{ {
@ -44,6 +48,30 @@
} }
] ]
''; '';
xdg.configFile."pipewire/pipewire.conf.d/raop-sink.conf".text = ''
context.modules = [
{ name = libpipewire-module-raop-sink
args = {
# Set the remote address to tunnel to
raop.ip = "127.0.0.1"
raop.port = 8190
raop.name = "my-raop-device"
raop.hostname = "My Service"
#raop.transport = "udp"
raop.encryption.type = "RSA"
#raop.audio.codec = "PCM"
#raop.password = "****"
#audio.format = "S16"
#audio.rate = 44100
#audio.channels = 2
#audio.position = [ FL FR ]
stream.props = {
# extra sink properties
}
}
}
]
'';
services.gnome-keyring.enable = true; services.gnome-keyring.enable = true;
} }

View file

@ -9,9 +9,15 @@
home-modules ? [], home-modules ? [],
}: let }: let
inherit (inputs) home-manager nixpkgs sops-nix nixvim; inherit (inputs) home-manager nixpkgs sops-nix nixvim;
stable-pkgs = import inputs.nixpkgs-stable {
inherit system;
config.permittedInsecurePackages = [
"electron-27.3.11"
];
};
in in
nixpkgs.lib.nixosSystem { nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs;}; specialArgs = {inherit inputs stable-pkgs user userFullname;};
inherit system; inherit system;
@ -24,6 +30,8 @@ in
home-manager = { home-manager = {
useGlobalPkgs = true; useGlobalPkgs = true;
useUserPackages = true; useUserPackages = true;
backupFileExtension = "bak";
extraSpecialArgs = {inherit stable-pkgs;};
users.${user}.imports = users.${user}.imports =
home-modules home-modules
++ [ ++ [

View file

@ -1,4 +1,19 @@
{pkgs, ...}: { {
pkgs,
lib,
...
}: let
lua = cmd: {__raw = cmd;};
luaFunc = cmd:
lua ''
function ()
${cmd}
end'';
in {
colorschemes.base16 = {
enable = true;
colorscheme = "gruvbox-dark-hard";
};
globals = { globals = {
mapleader = " "; mapleader = " ";
}; };
@ -10,10 +25,10 @@
expandtab = true; expandtab = true;
smartindent = true; smartindent = true;
scrolloff = 4; scrolloff = 4;
smoothscroll = true;
undofile = true; undofile = true;
undodir.__raw = ''vim.fn.expand("$HOME/.local/share/nvim/undo")''; undodir = lua ''vim.fn.expand("$HOME/.local/share/nvim/undo")'';
list = true; list = true;
listchars = builtins.concatStringsSep "," [ listchars = builtins.concatStringsSep "," [
"tab: >" "tab: >"
@ -22,8 +37,13 @@
"extends:>" "extends:>"
"precedes:<" "precedes:<"
]; ];
foldlevel = 2;
}; };
extraPlugins = [(pkgs.vimPlugins.actions-preview-nvim)]; extraPlugins = [
(pkgs.vimPlugins.actions-preview-nvim)
(pkgs.vimPlugins.vimwiki)
];
extraConfigLua = '' extraConfigLua = ''
require("actions-preview").setup { require("actions-preview").setup {
highlight_command = { highlight_command = {
@ -66,6 +86,14 @@
key = "<C-S-Tab>"; key = "<C-S-Tab>";
action = "<CMD>tabprev<CR>"; action = "<CMD>tabprev<CR>";
} }
{
key = "<leader>bn";
action = "<CMD>bnext<CR>";
}
{
key = "<leader>bp";
action = "<CMD>bprevious<CR>";
}
{ {
key = "gl"; key = "gl";
action = "g$"; action = "g$";
@ -153,6 +181,68 @@
action = ""; action = "";
options.desc = "Harpoon"; options.desc = "Harpoon";
} }
{
key = "<F5>";
action = luaFunc "require('dap').continue()";
options.desc = "DAP continue";
}
{
key = "<leader>dc";
action = luaFunc "require('dap').continue()";
options.desc = "DAP continue";
}
{
key = "<leader>db";
action = luaFunc "require('dap').toggle_breakpoint()";
options.desc = "DAP toggle breakpoint";
}
{
key = "<leader>dn";
action = luaFunc "require('dap').step_over()";
options.desc = "DAP step over";
}
{
key = "<leader>di";
action = luaFunc "require('dap').step_into()";
options.desc = "DAP step into";
}
{
key = "<leader>do";
action = luaFunc "require('dap').step_out()";
options.desc = "DAP step out";
}
{
key = "<leader>du";
action = luaFunc "require('dapui').toggle()";
options.desc = "DAP UI Toggle";
}
];
autoCmd = [
{
event = "BufWritePre";
pattern = "*.go";
# https://github.com/golang/tools/blob/master/gopls/doc/vim.md#imports-and-formatting
callback = luaFunc ''
local params = vim.lsp.util.make_range_params()
params.context = {only = {"source.organizeImports"}}
-- buf_request_sync defaults to a 1000ms timeout. Depending on your
-- machine and codebase, you may want longer. Add an additional
-- argument after params if you find that you have to write the file
-- twice for changes to be saved.
-- E.g., vim.lsp.buf_request_sync(0, "textDocument/codeAction", params, 3000)
local result = vim.lsp.buf_request_sync(0, "textDocument/codeAction", params)
for cid, res in pairs(result or {}) do
for _, r in pairs(res.result or {}) do
if r.edit then
local enc = (vim.lsp.get_client_by_id(cid) or {}).offset_encoding or "utf-16"
vim.lsp.util.apply_workspace_edit(r.edit, enc)
end
end
end
vim.lsp.buf.format({async = false})
'';
}
]; ];
plugins = { plugins = {
@ -186,9 +276,19 @@
lsp = { lsp = {
enable = true; enable = true;
servers = { servers = {
ts-ls.enable = true; ts_ls.enable = true;
nil-ls.enable = true; nixd = {
enable = true;
settings = {
nixpkgs.expr = ''import <nixpkgs> {}'';
options.zenix.expr = ''(builtins.getFlake "git+https://git.tristans.cloud/tristan/nix").nixosConfigurations.zenix.options'';
options.alpine.expr = ''(builtins.getFlake "git+https://git.tristans.cloud/tristan/nix").nixosConfigurations.alpine.options'';
formatting.command = [(lib.getExe pkgs.alejandra)];
};
};
yamlls.enable = true;
gopls.enable = true; gopls.enable = true;
ansiblels.enable = true;
}; };
keymaps = { keymaps = {
lspBuf = { lspBuf = {
@ -200,6 +300,17 @@
}; };
}; };
dap = {
enable = true;
extensions.dap-go = {
enable = true;
# tests.verbose = true; # ???
};
extensions.dap-ui = {
enable = true;
};
};
cmp = { cmp = {
enable = true; enable = true;
settings = { settings = {
@ -272,8 +383,28 @@
}; };
}; };
oil.enable = true; oil = {
enable = true;
settings = {
keymaps = {
"<C-r>" = "actions.refresh";
"zh" = "actions.toggle_hidden";
};
view_options.show_hidden = true;
};
};
ts-autotag.enable = true; ts-autotag.enable = true;
guess-indent.enable = true; guess-indent.enable = true;
codesnap = {
enable = true;
settings = {
has_line_number = true;
mac_window_bar = false;
save_path = "~/Pictures/Screenshots/";
watermark = "";
bg_padding = 5;
};
};
}; };
} }

View file

@ -11,7 +11,7 @@ in {
nix = { nix = {
settings = { settings = {
experimental-features = ["nix-command" "flakes"]; experimental-features = ["nix-command" "flakes" "pipe-operators"];
}; };
settings.trusted-users = ["root" user]; settings.trusted-users = ["root" user];
@ -42,12 +42,6 @@ in {
} }
]; ];
}; };
networking.hosts = {
"100.65.29.110" = ["zenix"];
"100.106.241.122" = ["alpine" "tristans.cloud"];
"100.71.130.111" = ["fcs-tristan-nixbook"];
"100.69.60.83" = ["google-pixel-8"];
};
time.timeZone = lib.mkDefault "Europe/London"; time.timeZone = lib.mkDefault "Europe/London";
@ -56,7 +50,10 @@ in {
useXkbConfig = true; useXkbConfig = true;
}; };
services.avahi.enable = true; services.avahi = {
enable = true;
nssmdns4 = true;
};
i18n.defaultLocale = lib.mkDefault "en_GB.UTF-8"; i18n.defaultLocale = lib.mkDefault "en_GB.UTF-8";
@ -93,6 +90,11 @@ in {
unzip unzip
fzf fzf
sops sops
lsof
nix-tree
nix-index
nh
jq
]; ];
boot.kernel.sysctl = { boot.kernel.sysctl = {

87
nixos/modules/podman.nix Normal file
View file

@ -0,0 +1,87 @@
{
lib,
pkgs,
config,
...
}: let
inherit (lib) mkOption types;
mkRunCommand = name: {
image,
command ? "",
environment ? {},
ports ? [],
volumes ? [],
envFile ? null,
...
}: ''
${pkgs.podman}/bin/podman run \
${toString (builtins.attrValues (builtins.mapAttrs (name: value: "-e ${name}='${value}'") environment))} \
${toString (builtins.map (mapping: "-p ${mapping}") ports)} \
${toString (builtins.map (mapping: "-v ${mapping}") volumes)} \
${
if builtins.isNull envFile
then ""
else "--env-file ${toString envFile}"
} \
--detach --replace \
--name ${name} \
${image} ${command}
'';
opts = {
config,
name,
...
}: {
options = {
image = mkOption {
type = types.str;
};
command = mkOption {
type = types.str;
default = "";
};
environment = mkOption {
type = types.attrsOf types.str;
default = {};
};
ports = mkOption {
type = types.listOf types.str;
default = [];
};
volumes = mkOption {
type = types.listOf types.str;
default = [];
};
envFile = mkOption {
type = types.nullOr types.path;
default = null;
};
};
};
mkService = name: config: {
enable = true;
wants = ["network-online.target"];
after = ["network-online.target"];
wantedBy = ["default.target"];
unitConfig = {
RequiresMountsFor = "/run/containers/storage";
};
serviceConfig = {
Environment = "PODMAN_SYSTEMD_UNIT=%n";
Restart = "on-failure";
TimeoutStopSec = 70;
ExecStart = mkRunCommand name config;
ExecStop = "${pkgs.podman}/bin/podman stop -t 10 ${name}";
ExecStopPost = "${pkgs.podman}/bin/podman stop -t 10 ${name}";
Type = "forking";
};
};
in {
options.podman = mkOption {
type = types.attrsOf (types.submodule opts);
default = {};
};
config = {
systemd.services = lib.mapAttrs mkService config.podman;
};
}

View file

@ -11,10 +11,13 @@ in {
# nonfree vscode required for dev containers # nonfree vscode required for dev containers
"vscode" "vscode"
"steam-run" "steam-run"
"postman"
"drawio" # the creator had a hissyfit over a negative review: https://github.com/jgraph/drawio/discussions/4623
]; ];
nixpkgs.config.permittedInsecurePackages = [ nixpkgs.config.permittedInsecurePackages = [
"openssl-1.1.1w" # required for mongodb "openssl-1.1.1w" # required for mongodb
"electron-27.3.11"
]; ];
networking = { networking = {

View file

@ -14,7 +14,7 @@
services.displayManager.cosmic-greeter.enable = true; services.displayManager.cosmic-greeter.enable = true;
services.system76-scheduler.enable = true; services.system76-scheduler.enable = true;
home-manager.users.${config.user}.imports = [ home-manager.users.${config.user}.imports = [
(import "${inputs.home-manager-cosmic}/modules/programs/cosmic/.") (inputs.hm-cosmic.homeManagerModules.cosmic)
../../home/desktop/cosmic/. ../../home/desktop/cosmic/.
]; ];
} }

View file

@ -6,23 +6,23 @@
nixpkgs.config.allowUnfreePredicate = pkg: nixpkgs.config.allowUnfreePredicate = pkg:
builtins.elem (lib.getName pkg) [ builtins.elem (lib.getName pkg) [
"steam" "steam"
"steam-unwrapped"
"steam-run" "steam-run"
"steam-original" "steam-original"
"osu-lazer" "osu-lazer"
]; ];
programs.steam = { programs.steam = {
enable = true; enable = true;
extest.enable = true;
extraCompatPackages = with pkgs; [
proton-ge-bin
];
remotePlay.openFirewall = true; remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true; dedicatedServer.openFirewall = true;
gamescopeSession = {
enable = true;
args = ["-r" "144" "-O" "DP-1" "--rt"];
};
};
programs.gamescope = {
enable = true;
capSysNice = true;
}; };
programs.gamemode.enable = true; programs.gamemode.enable = true;
services.monado.enable = true;
systemd.user.services.monado.environment = {
STEAMVR_LH_ENABLE = "true";
XRT_COMPOSITOR_SCALE_PERCENTAGE = "200";
};
} }

14
nixos/programs/kodi.nix Normal file
View file

@ -0,0 +1,14 @@
{pkgs, ...}: {
services.xserver.desktopManager.kodi = {
enable = true;
package =
pkgs.kodi.withPackages
(exts:
with exts; [
jellyfin
steam-launcher
joystick
youtube
]);
};
}

View file

@ -0,0 +1,13 @@
{config, ...}: let
user = config.user;
in {
users.users.${user}.extraGroups = ["libvirtd" "kvm"];
virtualisation.libvirtd = {
enable = true;
nss = {
enable = true;
enableGuest = true;
};
};
programs.virt-manager.enable = true;
}

View file

@ -1,4 +1,4 @@
{ {pkgs, ...}: {
hardware.pulseaudio.enable = false; hardware.pulseaudio.enable = false;
security.rtkit.enable = true; security.rtkit.enable = true;
services.pipewire = { services.pipewire = {

View file

@ -2,6 +2,12 @@
inherit (config) sops; inherit (config) sops;
inherit (sops) templates placeholder; inherit (sops) templates placeholder;
in { in {
nixpkgs.config.permittedInsecurePackages = [
"aspnetcore-runtime-6.0.36"
"aspnetcore-runtime-wrapped-6.0.36"
"dotnet-sdk-6.0.428"
"dotnet-sdk-wrapped-6.0.428"
];
users.groups.media = {}; users.groups.media = {};
services.jackett = { services.jackett = {
enable = true; enable = true;
@ -37,20 +43,21 @@ in {
ports = ["9091:9091"]; ports = ["9091:9091"];
volumes = [ volumes = [
"/mnt/storage/downloads:/data" "/mnt/storage/downloads:/data"
"transmission-config:/config" "/home/tristan/pods/transmission/config:/config"
"/mnt/storage/media/unsorted:/data/completed" "/mnt/storage/media/unsorted:/data/completed"
]; ];
environmentFiles = [ templates."transmission/env".path ]; environmentFiles = [ templates."transmission/env".path ];
environment = { environment = {
PUID = "1000"; PUID = "1000";
GUID = "1000"; GUID = "1000";
SUBNET = "100.0.0.0/8"; LOCAL_NETWORK = "100.0.0.0/8";
};
privileged = true;
capabilities = {
"NET_ADMIN" = true;
"NET_RAW" = true;
"MKNOD" = true;
}; };
extraOptions = builtins.map (cap: "--cap-add=${cap}") [
"NET_ADMIN"
"NET_RAW"
"MKNOD"
];
}; };
sops.secrets = { sops.secrets = {
"transmission/auth/OPENVPN_PROVIDER" = {}; "transmission/auth/OPENVPN_PROVIDER" = {};

View file

@ -1,12 +1,14 @@
{config, ...}: { {config, ...}:
nixpkgs.config.permittedInsecurePackages = [ {
"olm-3.2.16" # TODO: totally borked for some reason. DB migration?
];
services.mautrix-whatsapp = { services.mautrix-whatsapp = {
enable = true; enable = true;
registerToSynapse = true; registerToSynapse = true;
settings = { settings = {
appservice.database = {
type = "sqlite3";
uri = "/var/lib/mautrix-whatsapp/mautrix-whatsapp.db";
};
homeserver = { homeserver = {
address = "http://localhost:8008"; address = "http://localhost:8008";
domain = "tristans.cloud"; domain = "tristans.cloud";

24
nixos/services/musnix.nix Normal file
View file

@ -0,0 +1,24 @@
{ inputs, user, pkgs, lib, ... }: {
imports = [inputs.musnix.nixosModules.musnix];
users.users.${user}.extraGroups = ["audio"];
musnix = {
enable = true;
rtcqs.enable = true;
kernel.realtime = true;
};
environment.systemPackages = with pkgs; [
ardour
musescore
muse
helm
calf
qjackctl
sfizz
tap-plugins
x42-plugins
x42-gmsynth
carla
drumgizmo
distrho-ports
];
}

View file

@ -81,17 +81,13 @@ in {
maps maps
previewgenerator previewgenerator
deck deck
news
; ;
oidc_login = pkgs.fetchNextcloudApp { oidc_login = pkgs.fetchNextcloudApp {
sha256 = "sha256-DrbaKENMz2QJfbDKCMrNGEZYpUEvtcsiqw9WnveaPZA="; sha256 = "sha256-DrbaKENMz2QJfbDKCMrNGEZYpUEvtcsiqw9WnveaPZA=";
url = "https://github.com/pulsejet/nextcloud-oidc-login/releases/download/v3.2.0/oidc_login.tar.gz"; url = "https://github.com/pulsejet/nextcloud-oidc-login/releases/download/v3.2.0/oidc_login.tar.gz";
license = "agpl3Only"; license = "agpl3Only";
}; };
news = pkgs.fetchNextcloudApp {
sha256 = "sha256-jH1F/IZItlZEpsfgXhRojiYD6ZEVhsuRvz8Qs0Z3UFI=";
url = "https://github.com/nextcloud/news/releases/download/25.0.0-alpha9/news.tar.gz";
license = "agpl3Only";
};
}; };
maxUploadSize = "5G"; maxUploadSize = "5G";
}; };

View file

@ -86,12 +86,6 @@ in {
}; };
}; };
services.matrix-sliding-sync = {
enable = true;
environmentFile = templates."synapse/sliding_sync_env".path;
settings.SYNCV3_SERVER = "https://${domain}";
};
services.nginx.virtualHosts = { services.nginx.virtualHosts = {
${domain} = { ${domain} = {
locations."= /.well-known/matrix/server".extraConfig = mkWellKnown { locations."= /.well-known/matrix/server".extraConfig = mkWellKnown {
@ -99,7 +93,6 @@ in {
}; };
locations."= /.well-known/matrix/client".extraConfig = mkWellKnown { locations."= /.well-known/matrix/client".extraConfig = mkWellKnown {
"m.homeserver".base_url = "https://${fqdn}"; "m.homeserver".base_url = "https://${fqdn}";
"org.matrix.msc3575.proxy"."url" = "https://${fqdn}";
}; };
locations."= /.well-known/matrix/support".extraConfig = mkWellKnown { locations."= /.well-known/matrix/support".extraConfig = mkWellKnown {
admins = [ admins = [
@ -112,14 +105,12 @@ in {
}; };
locations."/_matrix".proxyPass = "http://localhost:${toString port}"; locations."/_matrix".proxyPass = "http://localhost:${toString port}";
locations."/_synapse/client".proxyPass = "http://localhost:${toString port}"; locations."/_synapse/client".proxyPass = "http://localhost:${toString port}";
locations."/_matrix/client/unstable/org.matrix.msc3575/sync".proxyPass = "http://${toString matrix-sliding-sync.settings.SYNCV3_BINDADDR}";
}; };
${fqdn} = { ${fqdn} = {
enableACME = true; enableACME = true;
forceSSL = true; forceSSL = true;
locations."/_matrix".proxyPass = "http://localhost:${toString port}"; locations."/_matrix".proxyPass = "http://localhost:${toString port}";
locations."/_synapse/client".proxyPass = "http://localhost:${toString port}"; locations."/_synapse/client".proxyPass = "http://localhost:${toString port}";
locations."/_matrix/client/unstable/org.matrix.msc3575/sync".proxyPass = "http://${toString matrix-sliding-sync.settings.SYNCV3_BINDADDR}";
}; };
}; };
} }

View file

@ -13,15 +13,10 @@
hardware.opentabletdriver.enable = true; hardware.opentabletdriver.enable = true;
programs.nm-applet.enable = true;
services.printing.enable = true;
services.dbus = { services.dbus = {
enable = true; enable = true;
packages = [pkgs.gcr]; packages = [pkgs.gcr];
}; };
programs.light.enable = true;
programs.dconf.enable = true; programs.dconf.enable = true;
hardware.bluetooth.enable = true; hardware.bluetooth.enable = true;
@ -53,11 +48,12 @@
}; };
targets = { targets = {
gtk.enable = false; # fails to switch with cosmic overriding it (grr) gtk.enable = false; # fails to switch with cosmic overriding it (grr)
gnome.enable = false;
grub = { grub = {
useImage = true; useImage = true;
}; };
nixvim = { nixvim = {
transparentBackground.main = true; enable = false;
}; };
}; };
}; };
@ -69,7 +65,7 @@
]; ];
fonts.packages = with pkgs; [ fonts.packages = with pkgs; [
nerdfonts nerd-fonts.symbols-only
interalia interalia
]; ];

View file

@ -28,7 +28,7 @@ mail:
ssl: ENC[AES256_GCM,data:swCVBQ==,iv:Us4kZfQ2wIx/qJXDaPDuUNvGU2F+U8EtV21SPbTebe8=,tag:Zuc0y6aTyjQBe4ZV7zy3NA==,type:str] ssl: ENC[AES256_GCM,data:swCVBQ==,iv:Us4kZfQ2wIx/qJXDaPDuUNvGU2F+U8EtV21SPbTebe8=,tag:Zuc0y6aTyjQBe4ZV7zy3NA==,type:str]
transmission: transmission:
auth: auth:
OPENVPN_PROVIDER: ENC[AES256_GCM,data:uk/rxQ==,iv:WycsUcM9qRW6ExylDK9kCD2PKT9XMijLBJXkYKUmhDI=,tag:AiBA+UVlKfMhpyV3MB9ZBA==,type:str] OPENVPN_PROVIDER: ENC[AES256_GCM,data:cgYUsQ==,iv:KXddHlOwqbn97SmLkdRIDrqiAAihfXNpG64uD80UnKI=,tag:s6tkiawsfOOXV3ZMltL4MQ==,type:str]
OPENVPN_CONFIG: ENC[AES256_GCM,data:mHMLA2Rqte+aEGstKCan3fNPEqwb,iv:wvLx3rWNcDVek6bmXBu+39AlnXpviNNwCItLAWWVDzY=,tag:1ArWMperFmOFSCdehWibNg==,type:str] OPENVPN_CONFIG: ENC[AES256_GCM,data:mHMLA2Rqte+aEGstKCan3fNPEqwb,iv:wvLx3rWNcDVek6bmXBu+39AlnXpviNNwCItLAWWVDzY=,tag:1ArWMperFmOFSCdehWibNg==,type:str]
OPENVPN_USERNAME: ENC[AES256_GCM,data:RQ+hGLE6YEgN/aaa2TLpkg==,iv:oG794WxGe0t1ZI0PyC45ZgCPA0Ar2m/dSVDdMYBKJvY=,tag:CGnEu8ds0s4aH4ImCrNWNQ==,type:str] OPENVPN_USERNAME: ENC[AES256_GCM,data:RQ+hGLE6YEgN/aaa2TLpkg==,iv:oG794WxGe0t1ZI0PyC45ZgCPA0Ar2m/dSVDdMYBKJvY=,tag:CGnEu8ds0s4aH4ImCrNWNQ==,type:str]
OPENVPN_PASSWORD: ENC[AES256_GCM,data:Jw==,iv:uGAaXFWfpSaeqY7yC9cR9iqblH3E3hudnrnIlOvdRCg=,tag:P1XJ2SBY82z9YZP9J/n5SA==,type:str] OPENVPN_PASSWORD: ENC[AES256_GCM,data:Jw==,iv:uGAaXFWfpSaeqY7yC9cR9iqblH3E3hudnrnIlOvdRCg=,tag:P1XJ2SBY82z9YZP9J/n5SA==,type:str]
@ -48,8 +48,8 @@ sops:
S3ZwcHhkdEEvY0pINDloand5S0NycHcKEpIt5EeIKhLQK7f74sWVN/x5gzh/Jq7x S3ZwcHhkdEEvY0pINDloand5S0NycHcKEpIt5EeIKhLQK7f74sWVN/x5gzh/Jq7x
UUN5QtysRbWVGnWRxdNB8LIMjDJY9jRojycdQfSNebaz5ZLjEp8dZQ== UUN5QtysRbWVGnWRxdNB8LIMjDJY9jRojycdQfSNebaz5ZLjEp8dZQ==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2025-01-17T23:54:41Z" lastmodified: "2025-01-18T02:00:29Z"
mac: ENC[AES256_GCM,data:kX07sYwKyAu2ElYoBIuaVVryIGIUowxS4ZMxIoX9/aDQY9+yVrmaWzj1kmQNyTqoSBZyetDGQzNV3mMjgCpIQ2XjJdCB5lH4M5DOV63A3pwDwDeHSzzTrURY6xubeswl8o+2k+gxD0/oLLB9j+YZxb9F1oKQt2cK1dzOYPdtUL8=,iv:ftaeEg78WejtZM6J8BiahmsSbQub/5Kz/oLVU3nJhtA=,tag:eobu6KIZwltpC43qXpTVaQ==,type:str] mac: ENC[AES256_GCM,data:x3J0tRfNynM2qlB4YUUAUMYI/94opN1kJ1j0kOyeZ1GZHx+EA4dQZif4nPQOERo+5xRt8C4YXVDZEnCjD1TpQE6LYik0n0iY+84sY5fSr2SYiXzq2P72Tk7BzBklI9/zjndeJLJbydTJDMzOCvdEWIfHYZsHODnKXBO9pYwjAqU=,iv:z+QD93t72S2w0CqMV5sQk9oK9LMnQAxyaiExmqEcSp0=,tag:dbtyHUQ+n2EQvHEkQa7zrw==,type:str]
pgp: [] pgp: []
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted
version: 3.9.0 version: 3.9.2