modules: add modules for socket activation
This commit is contained in:
parent
f1e8c87acd
commit
4456244f2d
247
flake.lock
247
flake.lock
|
@ -17,13 +17,50 @@
|
||||||
"url": "https://git.nani.wtf/h7x4/dotfiles"
|
"url": "https://git.nani.wtf/h7x4/dotfiles"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils": {
|
"flake-compat": {
|
||||||
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1659877975,
|
"lastModified": 1673956053,
|
||||||
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
|
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681202837,
|
||||||
|
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
|
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils_2": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681202837,
|
||||||
|
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -49,20 +86,19 @@
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
]
|
||||||
"utils": "utils"
|
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1677284824,
|
"lastModified": 1687871164,
|
||||||
"narHash": "sha256-I3gDxmGjyXdtOR5S8sIeCO8pT+5OR69f/g5EVoQUdsY=",
|
"narHash": "sha256-bBFlPthuYX322xOlpJvkjUBz0C+MOBjZdDOOJJ+G2jU=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "29280978234b73423f4eb708cbb999295f76b42a",
|
"rev": "07c347bb50994691d7b0095f45ebd8838cf6bc38",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"ref": "release-22.11",
|
"ref": "release-23.05",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
@ -72,11 +108,14 @@
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs-unstable"
|
"nixpkgs-unstable"
|
||||||
],
|
],
|
||||||
"utils": "utils_2"
|
"utils": "utils"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1669760368,
|
"lastModified": 1677801246,
|
||||||
"narHash": "sha256-RrFktfI837C7MEiR5PFibQXS2TXzkXcnk9FQgTm9bh4=",
|
"narHash": "sha256-/TeSHBkg4gGBsrOjnPxV0YnCIfpYeaMNPcfuj9HeR48=",
|
||||||
|
"ref": "refs/heads/zellij-kdl-configuration-generator",
|
||||||
|
"rev": "35ccc428a2b95182a3ca96824d838fd24a738641",
|
||||||
|
"revCount": 2378,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "file:///home/h7x4/git/home-manager"
|
"url": "file:///home/h7x4/git/home-manager"
|
||||||
},
|
},
|
||||||
|
@ -90,11 +129,11 @@
|
||||||
"nixpkgs-lib": "nixpkgs-lib"
|
"nixpkgs-lib": "nixpkgs-lib"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1676674799,
|
"lastModified": 1689214560,
|
||||||
"narHash": "sha256-NaZWOgNrco5OT0J5VrWg02SCkKz8RV1sxRjh0/MWMEc=",
|
"narHash": "sha256-2vXE3S68YeWhxRm7SdUD9Ac0xwDl9MHEGaGP8MdZa9c=",
|
||||||
"owner": "dali99",
|
"owner": "dali99",
|
||||||
"repo": "nixos-matrix-modules",
|
"repo": "nixos-matrix-modules",
|
||||||
"rev": "362496f4aacb680406db3fad36f98d38e8285b30",
|
"rev": "c158a35ea298ce3ea7cd446e9992154ea4bc6381",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -140,15 +179,18 @@
|
||||||
},
|
},
|
||||||
"minecraft": {
|
"minecraft": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat",
|
||||||
"flake-utils": "flake-utils",
|
"flake-utils": "flake-utils",
|
||||||
"nixpkgs": "nixpkgs_2"
|
"nixpkgs": [
|
||||||
|
"nixpkgs-unstable"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1677376635,
|
"lastModified": 1690076623,
|
||||||
"narHash": "sha256-ESBC0dvaCpbhUs3DvWxC0JMF6BoKo6xPCaqICvOyPNg=",
|
"narHash": "sha256-k1AE76m7N9JVKCz0rjGPNez15rSVsDYS0l6XxfEAH88=",
|
||||||
"owner": "infinidoge",
|
"owner": "infinidoge",
|
||||||
"repo": "nix-minecraft",
|
"repo": "nix-minecraft",
|
||||||
"rev": "fa5b93f66b355d6b549d0d19733030f2eb09209e",
|
"rev": "8706036acb4955f9d30f789dea1c42549944ce2e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -210,13 +252,29 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-unstable": {
|
"nixpkgs-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1677342105,
|
"lastModified": 1689473667,
|
||||||
"narHash": "sha256-kv1fpkfCJGb0M+LZaCHFUuIS9kRIwyVgupHu86Y28nc=",
|
"narHash": "sha256-41ePf1ylHMTogSPAiufqvBbBos+gtB6zjQlYFSEKFMM=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "b1f87ca164a9684404c8829b851c3586c4d9f089",
|
"rev": "13231eccfa1da771afa5c0807fdd73e05a1ec4e6",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "release-23.05",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-unstable": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1690031011,
|
||||||
|
"narHash": "sha256-kzK0P4Smt7CL53YCdZCBbt9uBFFhE0iNvCki20etAf4=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "12303c652b881435065a98729eb7278313041e49",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -227,68 +285,69 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1666198336,
|
"lastModified": 1689956312,
|
||||||
"narHash": "sha256-VTrWD8Bb48h2pi57P1++LuvZIgum3gSLiRzZ/8q3rg0=",
|
"narHash": "sha256-NV9yamMhE5jgz+ZSM2IgXeYqOvmGIbIIJ+AFIhfD7Ek=",
|
||||||
"owner": "nixos",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "db25c4da285c5989b39e4ce13dea651a88b7a9d4",
|
"rev": "6da4bc6cb07cba1b8e53d139cbf1d2fb8061d967",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"id": "nixpkgs",
|
||||||
"ref": "nixos-unstable",
|
"ref": "nixos-23.05",
|
||||||
"repo": "nixpkgs",
|
"type": "indirect"
|
||||||
"type": "github"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
"nixpkgs_3": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1677341534,
|
"lastModified": 1689413807,
|
||||||
"narHash": "sha256-zqaJuOTnKzg5AubC4rzzJ/IS5kU5n4U7vxosv1Fv8Ug=",
|
"narHash": "sha256-exuzOvOhGAEKWQKwDuZAL4N8a1I837hH5eocaTcIbLc=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "7076110064c09f0b3942f609f2134c1358ef2e50",
|
"rev": "46ed466081b9cad1125b11f11a2af5cc40b942c7",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"id": "nixpkgs",
|
"owner": "NixOS",
|
||||||
"ref": "nixos-22.11",
|
"ref": "nixpkgs-unstable",
|
||||||
"type": "indirect"
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_4": {
|
"nixpkgs_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1670193339,
|
"lastModified": 1682134069,
|
||||||
"narHash": "sha256-oHTAhX4p6+uxcabq0rKL4EyKWPbDLGKec88ocPIU/2Y=",
|
"narHash": "sha256-TnI/ZXSmRxQDt2sjRYK/8j8iha4B4zP2cnQCZZ3vp7k=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "e169cf5b3b1e6cc4a25ff15087c2621605f83409",
|
"rev": "fd901ef4bf93499374c5af385b2943f5801c0833",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"id": "nixpkgs",
|
"id": "nixpkgs",
|
||||||
"ref": "nixos-22.11",
|
|
||||||
"type": "indirect"
|
"type": "indirect"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_5": {
|
"nixpkgs_5": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1667254466,
|
"lastModified": 1678426640,
|
||||||
"narHash": "sha256-YrMQzDVOo+uz5gg1REj2q/uVhJE3WcpkqGiMzh3Da3o=",
|
"narHash": "sha256-3Q4KN0XAXQT7YE3A8n3LzLtRNUCo0U++W3gl+5NhKHs=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "1b4722674c315de0e191d0d79790b4eac51570a1",
|
"rev": "824f886682fc893e6dbf27114e5001ebf2770ea1",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"id": "nixpkgs",
|
"id": "nixpkgs",
|
||||||
"ref": "nixos-22.05",
|
"ref": "nixos-22.11",
|
||||||
"type": "indirect"
|
"type": "indirect"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"osuchan": {
|
"osuchan": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_4"
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1672838459,
|
"lastModified": 1672838459,
|
||||||
|
@ -314,10 +373,11 @@
|
||||||
"maunium-stickerpicker": "maunium-stickerpicker",
|
"maunium-stickerpicker": "maunium-stickerpicker",
|
||||||
"minecraft": "minecraft",
|
"minecraft": "minecraft",
|
||||||
"nix-attr-search": "nix-attr-search",
|
"nix-attr-search": "nix-attr-search",
|
||||||
"nixpkgs": "nixpkgs_3",
|
"nixpkgs": "nixpkgs_2",
|
||||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||||
"osuchan": "osuchan",
|
"osuchan": "osuchan",
|
||||||
"secrets": "secrets",
|
"secrets": "secrets",
|
||||||
|
"sops-nix": "sops-nix",
|
||||||
"vscode-server": "vscode-server",
|
"vscode-server": "vscode-server",
|
||||||
"website": "website"
|
"website": "website"
|
||||||
}
|
}
|
||||||
|
@ -329,8 +389,8 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1677374425,
|
"lastModified": 1683506783,
|
||||||
"narHash": "sha256-rcXsPpdbcm/9ULPhldGW9FbroC9y+Vt/HRMGBuJ5lmY=",
|
"narHash": "sha256-TEJGASqT3Ro1d3t+gKEc9NFOBqb0feVR2HqeZ8o3DGs=",
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "file:///home/h7x4/git/nix-secrets"
|
"url": "file:///home/h7x4/git/nix-secrets"
|
||||||
},
|
},
|
||||||
|
@ -339,6 +399,55 @@
|
||||||
"url": "file:///home/h7x4/git/nix-secrets"
|
"url": "file:///home/h7x4/git/nix-secrets"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"sops-nix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs_3",
|
||||||
|
"nixpkgs-stable": "nixpkgs-stable"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1689534977,
|
||||||
|
"narHash": "sha256-EB4hasmjKgetTR0My2bS5AwELZFIQ4zANLqHKi7aVXg=",
|
||||||
|
"owner": "Mic92",
|
||||||
|
"repo": "sops-nix",
|
||||||
|
"rev": "bd695cc4d0a5e1bead703cc1bec5fa3094820a81",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "Mic92",
|
||||||
|
"repo": "sops-nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"utils": {
|
"utils": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1667395993,
|
"lastModified": 1667395993,
|
||||||
|
@ -354,33 +463,21 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"utils_2": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1667395993,
|
|
||||||
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"vscode-server": {
|
"vscode-server": {
|
||||||
"flake": false,
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils_2",
|
||||||
|
"nixpkgs": "nixpkgs_4"
|
||||||
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1676501444,
|
"lastModified": 1684517665,
|
||||||
"narHash": "sha256-H+uQetkzd5GIga56HmCDwl5eihdQgeN2jVdNrkXzDyo=",
|
"narHash": "sha256-SaAr66uCQ8CF75jIr23FZjk1+9Kfwm5sQnwV25206Gs=",
|
||||||
"owner": "msteen",
|
"owner": "nix-community",
|
||||||
"repo": "nixos-vscode-server",
|
"repo": "nixos-vscode-server",
|
||||||
"rev": "57f1716bc625d2892579294cc207956679e3d94c",
|
"rev": "1e1358493df6529d4c7bc4cc3066f76fd16d4ae6",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "msteen",
|
"owner": "nix-community",
|
||||||
"repo": "nixos-vscode-server",
|
"repo": "nixos-vscode-server",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
@ -390,11 +487,11 @@
|
||||||
"nixpkgs": "nixpkgs_5"
|
"nixpkgs": "nixpkgs_5"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1667672395,
|
"lastModified": 1678656410,
|
||||||
"narHash": "sha256-YM6GmD6jJejuAV9/t8p8++IbEXs6ooy0SvSDmNpSZ58=",
|
"narHash": "sha256-VfFki6R7FGX8n/TX5n5+S6RxiFpxaZkgzPVHMlGzpQ4=",
|
||||||
"ref": "main",
|
"ref": "main",
|
||||||
"rev": "669ded6d45c2932dcacbe97b385ca01d093229af",
|
"rev": "44697feb499a85536d69841e6832e18a94ea769b",
|
||||||
"revCount": 73,
|
"revCount": 75,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://git.nani.wtf/h7x4/nani.wtf"
|
"url": "https://git.nani.wtf/h7x4/nani.wtf"
|
||||||
},
|
},
|
||||||
|
|
15
flake.nix
15
flake.nix
|
@ -104,7 +104,18 @@
|
||||||
in [
|
in [
|
||||||
(self: super: { kanidm = nonrecursive-unstable-pkgs.kanidm; })
|
(self: super: { kanidm = nonrecursive-unstable-pkgs.kanidm; })
|
||||||
(self: super: { pgadmin4 = nonrecursive-unstable-pkgs.pgadmin4; })
|
(self: super: { pgadmin4 = nonrecursive-unstable-pkgs.pgadmin4; })
|
||||||
|
(self: super: { pcloud = unstable-pkgs.callPackage ./package-overrides/pcloud.nix {}; })
|
||||||
osuchan.overlays.default
|
osuchan.overlays.default
|
||||||
|
(self: super: {
|
||||||
|
mpv-unwrapped = super.mpv-unwrapped.override {
|
||||||
|
ffmpeg_5 = super.ffmpeg_5-full;
|
||||||
|
};
|
||||||
|
})
|
||||||
|
# (self: super: {
|
||||||
|
# systemd = super.systemd.overrideAttrs (final: prev: {
|
||||||
|
# mesonFlags = prev.mesonFlags ++ [ "-Dsystemd-socket-proxyd=true" ];
|
||||||
|
# });
|
||||||
|
# })
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -115,6 +126,10 @@
|
||||||
|
|
||||||
inherit pkgs;
|
inherit pkgs;
|
||||||
|
|
||||||
|
packages.${system} = {
|
||||||
|
inherit (pkgs) kanidm pcloud;
|
||||||
|
};
|
||||||
|
|
||||||
devShells.${system}.default = pkgs.mkShell {
|
devShells.${system}.default = pkgs.mkShell {
|
||||||
packages = with pkgs; [ sops ];
|
packages = with pkgs; [ sops ];
|
||||||
};
|
};
|
||||||
|
|
|
@ -80,7 +80,7 @@ let
|
||||||
|
|
||||||
in {
|
in {
|
||||||
|
|
||||||
xdg.dataFile."applications/mimeapps.list".force = true;
|
xdg.configFile."mimeapps.list".force = true;
|
||||||
xdg.mimeApps = {
|
xdg.mimeApps = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# associations.added = {};
|
# associations.added = {};
|
||||||
|
|
|
@ -47,6 +47,7 @@ in {
|
||||||
./services/polybar.nix
|
./services/polybar.nix
|
||||||
./services/stalonetray.nix
|
./services/stalonetray.nix
|
||||||
./services/sxhkd.nix
|
./services/sxhkd.nix
|
||||||
|
./services/copyq.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
home = {
|
home = {
|
||||||
|
@ -121,7 +122,7 @@ in {
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
gnome-keyring.enable = mkIf graphics true;
|
gnome-keyring.enable = mkIf graphics true;
|
||||||
dropbox.enable = true;
|
# dropbox.enable = true;
|
||||||
network-manager-applet.enable = mkIf graphics true;
|
network-manager-applet.enable = mkIf graphics true;
|
||||||
# redshift.enable = true;
|
# redshift.enable = true;
|
||||||
};
|
};
|
||||||
|
|
|
@ -61,6 +61,7 @@ in {
|
||||||
nix-output-monitor
|
nix-output-monitor
|
||||||
nix-tree
|
nix-tree
|
||||||
nix-zsh-completions
|
nix-zsh-completions
|
||||||
|
nixpkgs-review
|
||||||
# nixops
|
# nixops
|
||||||
nmap
|
nmap
|
||||||
ouch
|
ouch
|
||||||
|
@ -120,11 +121,9 @@ in {
|
||||||
birdtray
|
birdtray
|
||||||
calibre
|
calibre
|
||||||
cool-retro-term
|
cool-retro-term
|
||||||
copyq
|
|
||||||
darktable
|
darktable
|
||||||
discord
|
discord
|
||||||
element-desktop
|
element-desktop
|
||||||
fcitx
|
|
||||||
geogebra
|
geogebra
|
||||||
gimp
|
gimp
|
||||||
gnome.gnome-font-viewer
|
gnome.gnome-font-viewer
|
||||||
|
@ -156,7 +155,7 @@ in {
|
||||||
shellcheck
|
shellcheck
|
||||||
slack
|
slack
|
||||||
sublime3
|
sublime3
|
||||||
swiPrologWithGui
|
# swiPrologWithGui
|
||||||
sxiv
|
sxiv
|
||||||
tagainijisho
|
tagainijisho
|
||||||
teams
|
teams
|
||||||
|
@ -178,7 +177,7 @@ in {
|
||||||
xmonad-log
|
xmonad-log
|
||||||
|
|
||||||
# xsnow # Wait until christmas
|
# xsnow # Wait until christmas
|
||||||
yubioath-desktop
|
yubioath-flutter
|
||||||
yuzu-mainline
|
yuzu-mainline
|
||||||
zeal
|
zeal
|
||||||
zoom-us
|
zoom-us
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -3,7 +3,7 @@
|
||||||
let mapPrefixToSet = prefix: set:
|
let mapPrefixToSet = prefix: set:
|
||||||
with lib; attrsets.mapAttrs' (k: v: attrsets.nameValuePair ("${prefix}.${k}") v) set;
|
with lib; attrsets.mapAttrs' (k: v: attrsets.nameValuePair ("${prefix}.${k}") v) set;
|
||||||
|
|
||||||
vs-liveshare = pkgs.callPackage ./vscode-extensions/vsliveshare.nix {};
|
# vs-liveshare = pkgs.callPackage ./vscode-extensions/vsliveshare.nix {};
|
||||||
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
@ -274,7 +274,7 @@ in
|
||||||
# ms-vsliveshare.vsliveshare
|
# ms-vsliveshare.vsliveshare
|
||||||
bbenoist.nix
|
bbenoist.nix
|
||||||
christian-kohler.path-intellisense
|
christian-kohler.path-intellisense
|
||||||
coenraads.bracket-pair-colorizer-2
|
# coenraads.bracket-pair-colorizer-2
|
||||||
haskell.haskell
|
haskell.haskell
|
||||||
justusadam.language-haskell
|
justusadam.language-haskell
|
||||||
justusadam.language-haskell
|
justusadam.language-haskell
|
||||||
|
@ -289,7 +289,7 @@ in
|
||||||
redhat.vscode-yaml
|
redhat.vscode-yaml
|
||||||
shardulm94.trailing-spaces
|
shardulm94.trailing-spaces
|
||||||
usernamehw.errorlens
|
usernamehw.errorlens
|
||||||
vs-liveshare
|
# vs-liveshare
|
||||||
vscodevim.vim
|
vscodevim.vim
|
||||||
] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
|
] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
|
||||||
{
|
{
|
||||||
|
@ -328,12 +328,12 @@ in
|
||||||
version = "0.1.4";
|
version = "0.1.4";
|
||||||
sha256 = "02b04756kfk640hri1xw0p6kwjxwp8d2hpmca0iysfivfcmm1bqn";
|
sha256 = "02b04756kfk640hri1xw0p6kwjxwp8d2hpmca0iysfivfcmm1bqn";
|
||||||
}
|
}
|
||||||
{
|
# {
|
||||||
name = "indent-rainbow";
|
# name = "indent-rainbow";
|
||||||
publisher = "oderwat";
|
# publisher = "oderwat";
|
||||||
version = "8.2.2";
|
# version = "8.2.2";
|
||||||
sha256 = "1xxljwh66f21fzmhw8icrmxxmfww1s67kf5ja65a8qb1x1rhjjgf";
|
# sha256 = "1xxljwh66f21fzmhw8icrmxxmfww1s67kf5ja65a8qb1x1rhjjgf";
|
||||||
}
|
# }
|
||||||
{
|
{
|
||||||
name = "vscodeintellicode";
|
name = "vscodeintellicode";
|
||||||
publisher = "VisualStudioExptTeam";
|
publisher = "VisualStudioExptTeam";
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
services.copyq.enable = true;
|
||||||
|
}
|
|
@ -133,6 +133,8 @@ in rec {
|
||||||
"Nix Stuff" = {
|
"Nix Stuff" = {
|
||||||
nxr = "sudo nixos-rebuild switch";
|
nxr = "sudo nixos-rebuild switch";
|
||||||
|
|
||||||
|
nix-check-syntax = "nix-instantiate --parse-only";
|
||||||
|
|
||||||
nxr-hm = "sudo nixos-rebuild switch --flake ~/nix#home-manager-tester";
|
nxr-hm = "sudo nixos-rebuild switch --flake ~/nix#home-manager-tester";
|
||||||
nxr-ks = "sudo nixos-rebuild switch --flake ~/nix#kasei";
|
nxr-ks = "sudo nixos-rebuild switch --flake ~/nix#kasei";
|
||||||
|
|
||||||
|
@ -228,7 +230,7 @@ in rec {
|
||||||
# the "technically correct definition" of an alias
|
# the "technically correct definition" of an alias
|
||||||
|
|
||||||
"Actual Aliases" = {
|
"Actual Aliases" = {
|
||||||
dp = "${dropbox-cli}/bin/dropbox";
|
# dp = "${dropbox-cli}/bin/dropbox";
|
||||||
|
|
||||||
# Having 'watch' with a space after as an alias, enables it to expand other aliases
|
# Having 'watch' with a space after as an alias, enables it to expand other aliases
|
||||||
watch = "${procps}/bin/watch ";
|
watch = "${procps}/bin/watch ";
|
||||||
|
|
|
@ -36,7 +36,7 @@ in {
|
||||||
"big-paralell"
|
"big-paralell"
|
||||||
];
|
];
|
||||||
mandatoryFeatures = [];
|
mandatoryFeatures = [];
|
||||||
sshUser = "nix-builder";
|
sshUser = "nix-ssh";
|
||||||
sshKey = secrets.keys.ssh.nixBuilders.tsuki.private;
|
sshKey = secrets.keys.ssh.nixBuilders.tsuki.private;
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
|
@ -94,14 +94,28 @@ in {
|
||||||
i18n = {
|
i18n = {
|
||||||
defaultLocale = "en_US.UTF-8";
|
defaultLocale = "en_US.UTF-8";
|
||||||
inputMethod = lib.mkIf (!machineVars.headless) {
|
inputMethod = lib.mkIf (!machineVars.headless) {
|
||||||
|
# enabled = "fcitx";
|
||||||
|
# engines = with pkgs.fcitx-engines; [ mozc ];
|
||||||
enabled = "fcitx5";
|
enabled = "fcitx5";
|
||||||
fcitx5.addons = with pkgs; [
|
fcitx5.addons = with pkgs; [
|
||||||
fcitx5-mozc
|
fcitx5-mozc
|
||||||
fcitx5-gtk
|
# fcitx5-gtk
|
||||||
|
# fcitx5-chinese-addons
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
systemd.user.services."fcitx5" = lib.mkIf (config.i18n.inputMethod.enabled == "fcitx5") {
|
||||||
|
description = "Fcitx5 IME";
|
||||||
|
wantedBy = [ "graphical.target" ];
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "simple";
|
||||||
|
ExecStart = "${config.i18n.inputMethod.package}/bin/fcitx5";
|
||||||
|
ExecReload = "/bin/kill -HUP $MAINPID";
|
||||||
|
Restart="on-failure";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
variables = {
|
variables = {
|
||||||
EDITOR = "nvim";
|
EDITOR = "nvim";
|
||||||
|
@ -226,10 +240,10 @@ in {
|
||||||
|
|
||||||
resolved.enable = true;
|
resolved.enable = true;
|
||||||
|
|
||||||
openssh.settings = {
|
openssh= {
|
||||||
PasswordAuthentication = false;
|
passwordAuthentication = false;
|
||||||
KbdInteractiveAuthentication = false;
|
kbdInteractiveAuthentication = false;
|
||||||
PermitRootLogin = "no";
|
permitRootLogin = "no";
|
||||||
};
|
};
|
||||||
|
|
||||||
udev.packages = with pkgs; [
|
udev.packages = with pkgs; [
|
||||||
|
@ -328,8 +342,8 @@ in {
|
||||||
clang
|
clang
|
||||||
dart
|
dart
|
||||||
dotnet-sdk
|
dotnet-sdk
|
||||||
dotnet-sdk_3
|
# dotnet-sdk_3
|
||||||
dotnet-sdk_5
|
# dotnet-sdk_5
|
||||||
dotnetPackages.Nuget
|
dotnetPackages.Nuget
|
||||||
elm2nix
|
elm2nix
|
||||||
elmPackages.elm
|
elmPackages.elm
|
||||||
|
@ -337,7 +351,7 @@ in {
|
||||||
gcc
|
gcc
|
||||||
ghc
|
ghc
|
||||||
ghcid
|
ghcid
|
||||||
haskellPackages.Cabal_3_6_3_0
|
# haskellPackages.Cabal_3_6_3_0
|
||||||
maven
|
maven
|
||||||
nixfmt
|
nixfmt
|
||||||
nixpkgs-fmt
|
nixpkgs-fmt
|
||||||
|
|
|
@ -37,29 +37,43 @@
|
||||||
hostName = "kasei";
|
hostName = "kasei";
|
||||||
networkmanager.enable = true;
|
networkmanager.enable = true;
|
||||||
interfaces.enp6s0.useDHCP = true;
|
interfaces.enp6s0.useDHCP = true;
|
||||||
firewall.enable = true;
|
firewall = {
|
||||||
|
enable = true;
|
||||||
|
allowedTCPPorts = [ 7860 ];
|
||||||
|
allowedUDPPorts = [ config.services.tailscale.port ];
|
||||||
|
checkReversePath = "loose";
|
||||||
|
trustedInterfaces = [ "tailscale0" ];
|
||||||
|
};
|
||||||
hostId = "f0660cef";
|
hostId = "f0660cef";
|
||||||
};
|
};
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
openssh.enable = true;
|
openssh = {
|
||||||
|
enable = true;
|
||||||
|
settings.X11Forwarding = true;
|
||||||
|
};
|
||||||
xserver.videoDrivers = ["nvidia"];
|
xserver.videoDrivers = ["nvidia"];
|
||||||
|
tailscale.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
# TODO: remove when merged: https://github.com/NixOS/nixpkgs/pull/167388
|
# TODO: remove when merged: https://github.com/NixOS/nixpkgs/pull/167388
|
||||||
systemd.services.logid = {
|
systemd = {
|
||||||
description = "Logitech Configuration Daemon";
|
services = {
|
||||||
startLimitIntervalSec = 0;
|
logid = {
|
||||||
wants = [ "multi-user.target" ];
|
description = "Logitech Configuration Daemon";
|
||||||
after = [ "multi-user.target" ];
|
startLimitIntervalSec = 0;
|
||||||
wantedBy = [ "graphical-session.target" ];
|
wants = [ "multi-user.target" ];
|
||||||
|
after = [ "multi-user.target" ];
|
||||||
serviceConfig = {
|
wantedBy = [ "graphical-session.target" ];
|
||||||
Type = "simple";
|
|
||||||
ExecStart = "${pkgs.logiops}/bin/logid";
|
serviceConfig = {
|
||||||
User = "root";
|
Type = "simple";
|
||||||
ExecReload = "/bin/kill -HUP $MAINPID";
|
ExecStart = "${pkgs.logiops}/bin/logid";
|
||||||
Restart="on-failure";
|
User = "root";
|
||||||
|
ExecReload = "/bin/kill -HUP $MAINPID";
|
||||||
|
Restart="on-failure";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -71,9 +85,14 @@
|
||||||
boot = {
|
boot = {
|
||||||
initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" "sr_mod" ];
|
initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" "sr_mod" ];
|
||||||
initrd.kernelModules = [ ];
|
initrd.kernelModules = [ ];
|
||||||
|
|
||||||
|
# kernelPackages = pkgs.linuxKernel.packages.linux_zen.zfs;
|
||||||
|
kernelPackages = config.boot.zfs.package.latestCompatibleLinuxPackages;
|
||||||
kernelModules = [ "kvm-amd" ];
|
kernelModules = [ "kvm-amd" ];
|
||||||
blacklistedKernelModules = ["nouveau"];
|
blacklistedKernelModules = [ "nouveau" ];
|
||||||
kernelParams = ["nomodeset"];
|
kernelParams = [ "nomodeset" ];
|
||||||
|
supportedFilesystems = [ "zfs" ];
|
||||||
|
|
||||||
loader = {
|
loader = {
|
||||||
efi.canTouchEfiVariables = false;
|
efi.canTouchEfiVariables = false;
|
||||||
grub = {
|
grub = {
|
||||||
|
@ -118,5 +137,3 @@
|
||||||
logitech.wireless.enable = true;
|
logitech.wireless.enable = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,49 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
|
||||||
|
stdenvNoCC,
|
||||||
|
fetchFromGitHub
|
||||||
|
}:
|
||||||
|
stdenvNoCC.mkDerivation rec {
|
||||||
|
pname = "fcitx5-material-color";
|
||||||
|
version = "0.2.1";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "hosxy";
|
||||||
|
repo = "Fcitx5-Material-Color";
|
||||||
|
rev = "${version}";
|
||||||
|
sha256 = "i9JHIJ+cHLTBZUNzj9Ujl3LIdkCllTWpO1Ta4OT1LTc=";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = [ "out" "doc" ];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
|
install -Dm644 -t $out/usr/share/fcitx5/themes/fcitx5-material-color radio.png arrow.png
|
||||||
|
|
||||||
|
find $src -type f -name 'theme*.conf' \
|
||||||
|
-exec install -Dm644 -t $out/usr/share/fcitx5/themes/fcitx5-material-color {} +
|
||||||
|
|
||||||
|
find $src/screenshot -type f \
|
||||||
|
-exec install -Dm644 -t $doc/usr/share/doc/fcitx5/themes/fcitx5-material-color {} +
|
||||||
|
|
||||||
|
install -Dm644 -t $doc/usr/share/doc/fcitx5/themes/fcitx5-material-color \
|
||||||
|
LICENSE \
|
||||||
|
README.md
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "";
|
||||||
|
longDescription = ''
|
||||||
|
A fcitx5 skin with colors from Material Design.
|
||||||
|
Designed to mimick the interface of the Windows 10 IME.
|
||||||
|
'';
|
||||||
|
homepage = "https://github.com/hosxy/Fcitx5-Material-Color";
|
||||||
|
license = licenses.asl20;
|
||||||
|
maintainers = [ maintainers.h7x4 ];
|
||||||
|
platforms = platforms.all;
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,139 @@
|
||||||
|
{ config, pkgs, lib, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkOption types mdDoc;
|
||||||
|
cfg = lib.filterAttrs (_: value: value.enable) config.local.socketActivation;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.local.socketActivation = mkOption {
|
||||||
|
type = types.attrsOf (types.submodule ({ name, ... }: {
|
||||||
|
options = {
|
||||||
|
enable = lib.mkEnableOption "socket activation for <name>";
|
||||||
|
|
||||||
|
service = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = name;
|
||||||
|
defaultText = "<name>";
|
||||||
|
example = "myservice";
|
||||||
|
description = mdDoc "Systemd service name";
|
||||||
|
};
|
||||||
|
|
||||||
|
privateNamespace = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = true;
|
||||||
|
example = false;
|
||||||
|
description = mdDoc ''
|
||||||
|
Whether to isolate the network of the original service.
|
||||||
|
|
||||||
|
This is recommended, but might be impractical if the original
|
||||||
|
service also uses networking for its own operation.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
originalSocketAddress = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
example = "localhost:8080";
|
||||||
|
description = mdDoc ''
|
||||||
|
Socket that the original service is listening to.
|
||||||
|
|
||||||
|
This could be a TCP or UNIX socket.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
newSocketAddress = mkOption {
|
||||||
|
type = with types; either str port;
|
||||||
|
example = "localhost:8080";
|
||||||
|
description = mdDoc ''
|
||||||
|
Addres of the new systemd socket.
|
||||||
|
|
||||||
|
This could be a TCP or UNIX socket.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
connectionsMax = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
default = 256;
|
||||||
|
example = 1024;
|
||||||
|
description = mdDoc ''
|
||||||
|
Sets the maximum number of simultaneous connections.
|
||||||
|
If the limit of concurrent connections is reached further connections will be refused.
|
||||||
|
|
||||||
|
See <https://www.freedesktop.org/software/systemd/man/systemd-socket-proxyd.html#--connections-max=>
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
exitIdleTime = mkOption {
|
||||||
|
type = types.nullOr types.str;
|
||||||
|
default = "5m";
|
||||||
|
example = "1h";
|
||||||
|
description = mdDoc ''
|
||||||
|
Amount of inactivity time, before systemd shuts down the service.
|
||||||
|
If this is set to `null`, the service will never stop.
|
||||||
|
|
||||||
|
See <https://www.freedesktop.org/software/systemd/man/systemd-socket-proxyd.html#--exit-idle-time=>
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}));
|
||||||
|
description = mdDoc "Forcefully socket activated systemd services";
|
||||||
|
default = { };
|
||||||
|
};
|
||||||
|
|
||||||
|
config = {
|
||||||
|
assertions = lib.mapAttrsToList (name: value: {
|
||||||
|
# NOTE: This assertion is missing a lot of invalid cases.
|
||||||
|
# The original socket address could've been "localhost:1234" and now only 1234,
|
||||||
|
# while still meaning the same thing.
|
||||||
|
# Also, if the originalSocketAddress and newSocketAddress is the same UNIX socket path
|
||||||
|
# it doesn't matter whether they're in different namespaces AFAIK, they'll still clash.
|
||||||
|
assertion = !value.privateNamespace -> (value.originalSocketAddress != value.newSocketAddress);
|
||||||
|
message = ''
|
||||||
|
The new proxied socket address of "${name}" clashes with its original socket address.
|
||||||
|
Either enable `privateNamespace` to isolate the original service' network, or use a separate
|
||||||
|
socket address.
|
||||||
|
'';
|
||||||
|
}) cfg;
|
||||||
|
|
||||||
|
systemd = lib.mkMerge ((lib.flip lib.mapAttrsToList) cfg (name: value: let
|
||||||
|
originalService = config.systemd.services.${value.service};
|
||||||
|
in {
|
||||||
|
sockets."${name}-proxy" = {
|
||||||
|
wantedBy = [ "sockets.target" ];
|
||||||
|
socketConfig = {
|
||||||
|
ListenStream = value.newSocketAddress;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services."${name}-proxy" = rec {
|
||||||
|
requires = [
|
||||||
|
"${name}.service"
|
||||||
|
"${name}-proxy.socket"
|
||||||
|
];
|
||||||
|
after = requires;
|
||||||
|
|
||||||
|
unitConfig = lib.mkIf value.privateNamespace {
|
||||||
|
JoinsNamespaceOf = "${value.service}.service";
|
||||||
|
};
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
ExecStart = let
|
||||||
|
args = lib.cli.toGNUCommandLineShell { } {
|
||||||
|
exit-idle-time = if value.exitIdleTime != null then value.exitIdleTime else "infinity";
|
||||||
|
connections-max = value.connectionsMax;
|
||||||
|
};
|
||||||
|
in ''${pkgs.systemd}/lib/systemd/systemd-socket-proxyd ${args} "${cfg.${name}.originalSocketAddress}"'';
|
||||||
|
PrivateNetwork = value.privateNamespace;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.${name} = {
|
||||||
|
unitConfig = {
|
||||||
|
StopWhenUnneeded = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
serviceConfig = lib.mkIf value.privateNamespace {
|
||||||
|
PrivateNetwork = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}));
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,132 @@
|
||||||
|
# Even though pCloud Drive is redistributed as a plug-n-play AppImage, it
|
||||||
|
# requires a little bit more love because of the way Nix launches those types
|
||||||
|
# of applications.
|
||||||
|
#
|
||||||
|
# What Nix does, simplifying a bit, is that it extracts an AppImage and starts
|
||||||
|
# it via buildFHSEnv - this is totally fine for majority of apps, but makes
|
||||||
|
# it by-design *impossible* to launch SUID wrappers [^1]; in case of pCloud,
|
||||||
|
# it's fusermount.
|
||||||
|
# (so pCloud starts, but silently fails to mount the FUSE drive.)
|
||||||
|
#
|
||||||
|
# To overcome this issue, we're manually extracting the AppImage and then treat
|
||||||
|
# it as if it was a regular, good-ol' application requiring some standard path
|
||||||
|
# fixes.
|
||||||
|
#
|
||||||
|
# ^1 https://github.com/NixOS/nixpkgs/issues/69338
|
||||||
|
|
||||||
|
{
|
||||||
|
# Build dependencies
|
||||||
|
appimageTools
|
||||||
|
, autoPatchelfHook
|
||||||
|
, fetchzip
|
||||||
|
, lib
|
||||||
|
, stdenv
|
||||||
|
|
||||||
|
# Runtime dependencies;
|
||||||
|
# A few additional ones (e.g. Node) are already shipped together with the
|
||||||
|
# AppImage, so we don't have to duplicate them here.
|
||||||
|
, alsa-lib
|
||||||
|
, dbus-glib
|
||||||
|
, fuse
|
||||||
|
, gsettings-desktop-schemas
|
||||||
|
, gtk3
|
||||||
|
, libdbusmenu-gtk2
|
||||||
|
, libXdamage
|
||||||
|
, libX11
|
||||||
|
, libappindicator
|
||||||
|
, libindicator
|
||||||
|
, libnotify
|
||||||
|
, nss
|
||||||
|
, udev
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
pname = "pcloud";
|
||||||
|
version = "1.12.0";
|
||||||
|
code = "XZyc9wVZAbFzyV8ElP71D5v170CvEmVtmrB7";
|
||||||
|
# Archive link's codes: https://www.pcloud.com/release-notes/linux.html
|
||||||
|
src = fetchzip {
|
||||||
|
url = "https://api.pcloud.com/getpubzip?code=${code}&filename=${pname}-${version}.zip";
|
||||||
|
hash = "sha256-QzBlpF+qtNdSZFv3gU0mQhpVyPTWdGH3c+UHKKGfvKc=";
|
||||||
|
};
|
||||||
|
|
||||||
|
appimageContents = appimageTools.extractType2 {
|
||||||
|
name = "${pname}-${version}";
|
||||||
|
src = "${src}/pcloud";
|
||||||
|
};
|
||||||
|
|
||||||
|
in
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
inherit pname version;
|
||||||
|
|
||||||
|
src = appimageContents;
|
||||||
|
|
||||||
|
dontConfigure = true;
|
||||||
|
dontBuild = true;
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
autoPatchelfHook
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
alsa-lib
|
||||||
|
dbus-glib
|
||||||
|
fuse
|
||||||
|
gtk3
|
||||||
|
libX11
|
||||||
|
libXdamage
|
||||||
|
libappindicator
|
||||||
|
libdbusmenu-gtk2
|
||||||
|
libindicator
|
||||||
|
libnotify
|
||||||
|
nss
|
||||||
|
udev
|
||||||
|
];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir "$out"
|
||||||
|
cp -ar . "$out/app"
|
||||||
|
cd "$out"
|
||||||
|
|
||||||
|
# Remove the AppImage runner, since users are not supposed to use it; the
|
||||||
|
# actual entry point is the `pcloud` binary
|
||||||
|
rm app/AppRun
|
||||||
|
|
||||||
|
# Adjust directory structure, so that the `.desktop` etc. files are
|
||||||
|
# properly detected
|
||||||
|
mkdir bin
|
||||||
|
mv app/usr/share .
|
||||||
|
# mv app/usr/lib .
|
||||||
|
|
||||||
|
# Adjust the `.desktop` file
|
||||||
|
mkdir share/applications
|
||||||
|
|
||||||
|
substitute \
|
||||||
|
app/pcloud.desktop \
|
||||||
|
share/applications/pcloud.desktop \
|
||||||
|
--replace 'Name=pcloud' 'Name=pCloud' \
|
||||||
|
--replace 'Exec=AppRun' 'Exec=${pname}'
|
||||||
|
|
||||||
|
# Build the main executable
|
||||||
|
cat > bin/pcloud <<EOF
|
||||||
|
#! $SHELL -e
|
||||||
|
|
||||||
|
# This is required for the file picker dialog - otherwise pcloud just
|
||||||
|
# crashes
|
||||||
|
export XDG_DATA_DIRS="${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS"
|
||||||
|
|
||||||
|
exec "$out/app/pcloud"
|
||||||
|
EOF
|
||||||
|
|
||||||
|
chmod +x bin/pcloud
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Secure and simple to use cloud storage for your files; pCloud Drive, Electron Edition";
|
||||||
|
homepage = "https://www.pcloud.com/";
|
||||||
|
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
|
||||||
|
license = licenses.unfree;
|
||||||
|
maintainers = with maintainers; [ patryk27 ];
|
||||||
|
platforms = [ "x86_64-linux" ];
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in New Issue