Compare commits
132 Commits
364945f5f6
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 98c27ce238 | |||
| 86ce0ed9e6 | |||
| 91910ec46e | |||
| d2426b4291 | |||
| 7c1113cd09 | |||
| 4b6290c3c7 | |||
| 650d566f8d | |||
| 45e93b353c | |||
| dd43d48900 | |||
| 5e17268044 | |||
| 6699d5488a | |||
| e429bdb946 | |||
| 5d868ad1f8 | |||
| 0a36b0acb5 | |||
| dffafa8973 | |||
| d0bd1ca8fa | |||
| 1346cb93af | |||
| 1e24a7d6bc | |||
| b58d5eb12f | |||
| a193b02ce0 | |||
| c252c831b5 | |||
| 30bb872ed9 | |||
| b716c8a288 | |||
| 1de2a362d7 | |||
| d5262b0a7f | |||
| 111b999b0a | |||
| f5ccc92e4e | |||
| dc03ca2b72 | |||
| 81ed9c5b20 | |||
| 53ed01e019 | |||
| 6931e1dde0 | |||
| 7b463d06ff | |||
| 6f0028d75e | |||
| 1f4af9c3ba | |||
| 524f2bdc9d | |||
| 3ad54e380d | |||
| 06e334c973 | |||
| 13576dd70e | |||
| faa16e68bb | |||
| d2bfda8ab2 | |||
| 7816818f0c | |||
| ff05ad7e21 | |||
| 62af5ec3c5 | |||
| 16dc290cfa | |||
| 52b5079e30 | |||
| 5f2172f2a5 | |||
| 8a459476ac | |||
| 885fb6feae | |||
| 5de5e206d2 | |||
| 406a144bd5 | |||
| 79de594c6c | |||
| 8f646f9161 | |||
| d3a8d6de4c | |||
| 4f848d384c | |||
| a27748f63b | |||
| 4ffded8c0b | |||
| 65c9e0babc | |||
| df1043ee38 | |||
| fe60c609e6 | |||
| 5df4e2c43d | |||
| f6ab3c0b60 | |||
| ea5a54e7b3 | |||
| d8126257f5 | |||
| eb8670c04f | |||
| 136c3a2340 | |||
| 695b96ecfe | |||
| 4c82f65024 | |||
| 218ef66c4e | |||
| 22cbe83779 | |||
| b0edd2e270 | |||
| d60892df98 | |||
| 1d630ebc57 | |||
| 0e806bab3a | |||
| a23ed5c7bb | |||
| ef61d0d30b | |||
| 06bd99cf68 | |||
| 70ec18666d | |||
| 32ab8d5ab2 | |||
| 55dcc4e3dc | |||
| 230335431c | |||
| b8d71e5127 | |||
| 0b01d1b6f7 | |||
| 1925169852 | |||
| ffaf192563 | |||
| 648da7e05a | |||
| 1361348bf1 | |||
| 59f061711a | |||
| 30e3d53918 | |||
| b81e9537c0 | |||
| b63b2e0d9c | |||
| a34bf2d319 | |||
| 5be8612163 | |||
| 4ccbed71a8 | |||
| 961278b2fe | |||
| ef8764f5be | |||
| 03a8ad070f | |||
| 976ee57078 | |||
| e3265f95ad | |||
| 72b7d257dc | |||
| 866535045f | |||
| 95a96882b0 | |||
| f981ff5bf6 | |||
| 2fc002db23 | |||
| 13fcaa6622 | |||
| 64490404ed | |||
| 5074740992 | |||
| d852bcba8e | |||
| d8c7f5ff14 | |||
| 4552edb5f0 | |||
| c32dea4c09 | |||
| 32c395c33a | |||
| c5f3a6e389 | |||
| b881c964c1 | |||
| fbb525b7f6 | |||
| dea5300fb6 | |||
| 2fc770f6ff | |||
| 50a61cad90 | |||
| 06984c42a0 | |||
| b8d905ba8f | |||
| fb4815a7dd | |||
| 1fa05e9822 | |||
| 91298bbfe5 | |||
| c0b061a79d | |||
| e80232bb39 | |||
| 3bc1c21b4c | |||
| 80d73a8aad | |||
| 4cfcb71961 | |||
| 8814296c53 | |||
| ed1f4f4fc6 | |||
| 9b8e0c4fd7 | |||
| 5f0a413b90 | |||
| 57d3450d0d |
682
flake.lock
generated
682
flake.lock
generated
@@ -2,7 +2,7 @@
|
|||||||
"nodes": {
|
"nodes": {
|
||||||
"agenix": {
|
"agenix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_3"
|
"nixpkgs": "nixpkgs_4"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1640802000,
|
"lastModified": 1640802000,
|
||||||
@@ -19,12 +19,17 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"emacs": {
|
"emacs": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": "nixpkgs",
|
||||||
|
"nixpkgs-stable": "nixpkgs-stable"
|
||||||
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1641205295,
|
"lastModified": 1693879203,
|
||||||
"narHash": "sha256-DG1JHIBWfLu9wLXcyRyHeQCmbWjtHNKMWSEjJQrYfAU=",
|
"narHash": "sha256-0CGMa3MxeG3YsVetUtxg6eZumQIe8FJ+WHVfR2ko9zM=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "emacs-overlay",
|
"repo": "emacs-overlay",
|
||||||
"rev": "150c09f3e3029b4d2f0ceecee2bf3d5148404767",
|
"rev": "3adaef3b1bebdc244a03ee19f705f5a3190a33d9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -33,13 +38,37 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils": {
|
"flake-helper": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"ostylk-home",
|
||||||
|
"pkg-unstable"
|
||||||
|
]
|
||||||
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1638122382,
|
"lastModified": 1649622552,
|
||||||
"narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=",
|
"narHash": "sha256-KT5CPoqkB9HZqw/pqynczRzsH/PQTImfaY5Oyyy871I=",
|
||||||
|
"ref": "refs/heads/master",
|
||||||
|
"rev": "3d7c14e55cb8374de6fcd40fcc889aa377131ac2",
|
||||||
|
"revCount": 6,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://destiny.ostylk.de/gitea/NixDistro/FlakeHelper.git"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://destiny.ostylk.de/gitea/NixDistro/FlakeHelper.git"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1692799911,
|
||||||
|
"narHash": "sha256-3eihraek4qL744EvQXsK1Ha6C3CR7nnT8X2qWap4RNk=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "74f7e4319258e287b0f9cb95426c9853b282730b",
|
"rev": "f9e7cf818399d17d347f847525c5a5a8032e4e44",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -49,6 +78,24 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils_2": {
|
"flake-utils_2": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1692799911,
|
||||||
|
"narHash": "sha256-3eihraek4qL744EvQXsK1Ha6C3CR7nnT8X2qWap4RNk=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "f9e7cf818399d17d347f847525c5a5a8032e4e44",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils_3": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1638122382,
|
"lastModified": 1638122382,
|
||||||
"narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=",
|
"narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=",
|
||||||
@@ -63,16 +110,76 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"flake-utils_4": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1644229661,
|
||||||
|
"narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils_5": {
|
||||||
|
"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"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils_6": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1659877975,
|
||||||
|
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils_7": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1644229661,
|
||||||
|
"narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1641121012,
|
"lastModified": 1693859358,
|
||||||
"narHash": "sha256-svaOMxNMQgFHjcxdmLojOxTxfqSENtnO+S3kb+npIwY=",
|
"narHash": "sha256-r3Pak/ao3p8weTzR+Ry3qQrfRsmSOwWW5sAe73mrYKs=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "8e7a10602d1eb1d242c9d3f9b822203d5751a8c6",
|
"rev": "886ea1d213efd1082f419d066e89ef37635dc970",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -84,19 +191,68 @@
|
|||||||
},
|
},
|
||||||
"home-manager_2": {
|
"home-manager_2": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_4"
|
"nixpkgs": [
|
||||||
|
"ostylk",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1638281721,
|
"lastModified": 1643933536,
|
||||||
"narHash": "sha256-d3vAVFG6zov9NwjSuYntBiD+I5KjJLwX09c7uAzbONI=",
|
"narHash": "sha256-yRmsWAG4DnLxLIUtlaZsl0kH7rN5xSoyNRlf0YZrcH4=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "7329ffc6e911106494183557fc249180d5422929",
|
"rev": "2860d7e3bb350f18f7477858f3513f9798896831",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"ref": "release-21.05",
|
"ref": "release-21.11",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"home-stable": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"ostylk-home",
|
||||||
|
"pkg-stable"
|
||||||
|
],
|
||||||
|
"utils": "utils_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1679067101,
|
||||||
|
"narHash": "sha256-tMI1inGT9u4KWQml0w30dhWqQPlth1e9K/68sfDkEQA=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"rev": "9154cd519a8942728038819682d6b3ff33f321bb",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"ref": "release-22.11",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"home-unstable": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"ostylk-home",
|
||||||
|
"pkg-unstable"
|
||||||
|
],
|
||||||
|
"utils": "utils_3"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1680597706,
|
||||||
|
"narHash": "sha256-ZqJ3T+BxzjPH9TnmeUwS4Uu9ZQPeBXAFC9sUWlharT4=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"rev": "ec06f419af79207b33d797064dfb3fc9dbe1df4a",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"ref": "master",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
@@ -116,6 +272,56 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"impermanence_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1668668915,
|
||||||
|
"narHash": "sha256-QjY4ZZbs9shwO4LaLpvlU2bO9J1juYhO9NtV3nrbnYQ=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "impermanence",
|
||||||
|
"rev": "5df9108b346f8a42021bf99e50de89c9caa251c3",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"ref": "master",
|
||||||
|
"repo": "impermanence",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"libwacom-surface": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1665772749,
|
||||||
|
"narHash": "sha256-UddKdTgEyz43ymr8O/CjT6aTnMtd1Q8OEHj49TGzN5k=",
|
||||||
|
"owner": "linux-surface",
|
||||||
|
"repo": "libwacom-surface",
|
||||||
|
"rev": "0f068fcaa16a6e0450a3324e50632cfdc6a4cf83",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "linux-surface",
|
||||||
|
"ref": "master",
|
||||||
|
"repo": "libwacom-surface",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"linux-surface": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1672934175,
|
||||||
|
"narHash": "sha256-HTIuRBZk0prhUPd2KnsXGo+ZyBsMwERN7P8WJH1RG3M=",
|
||||||
|
"owner": "linux-surface",
|
||||||
|
"repo": "linux-surface",
|
||||||
|
"rev": "487e64047ca047dde9a062909a87410e7bb86845",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "linux-surface",
|
||||||
|
"ref": "master",
|
||||||
|
"repo": "linux-surface",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"naersk": {
|
"naersk": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_6"
|
"nixpkgs": "nixpkgs_6"
|
||||||
@@ -134,13 +340,58 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"naersk_2": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"ostylk-home",
|
||||||
|
"rnix-lsp",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1655042882,
|
||||||
|
"narHash": "sha256-9BX8Fuez5YJlN7cdPO63InoyBy7dm3VlJkkmTt6fS1A=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "naersk",
|
||||||
|
"rev": "cddffb5aa211f50c4b8750adbec0bbbdfb26bb9f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "naersk",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixgl": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils_6",
|
||||||
|
"nixpkgs": [
|
||||||
|
"ostylk-home",
|
||||||
|
"pkg-unstable"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1661367362,
|
||||||
|
"narHash": "sha256-Qc8MXcV+YCPREu8kk6oggk23ZBKLqeQRAIsLbHEviPE=",
|
||||||
|
"owner": "guibou",
|
||||||
|
"repo": "nixGL",
|
||||||
|
"rev": "7165ffbccbd2cf4379b6cd6d2edd1620a427e5ae",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "guibou",
|
||||||
|
"ref": "main",
|
||||||
|
"repo": "nixGL",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1640686209,
|
"lastModified": 1693718952,
|
||||||
"narHash": "sha256-6glXUlKRDhEhNuYx6r3fXU6KH2/Vq9mJZjB9oUpwrmc=",
|
"narHash": "sha256-+nGdJlgTk0MPN7NygopipmyylVuAVi7OItIwTlwtGnw=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "46df95ca81e7e4cf3458cdb4b7d1714b5fce9da5",
|
"rev": "793de77d9f83418b428e8ba70d1e42c6507d0d35",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -168,24 +419,43 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1638698569,
|
"lastModified": 1693663421,
|
||||||
"narHash": "sha256-Ld3UN9fP9X00Jppd0gxUQ+EEt0pMiVHyDzn5AS0HGsc=",
|
"narHash": "sha256-ImMIlWE/idjcZAfxKK8sQA7A1Gi/O58u5/CJA+mxvl8=",
|
||||||
"path": "/nix/store/nkrpxpkz1cx5k0acfgzpy7b15219ds40-source",
|
"owner": "NixOS",
|
||||||
"rev": "af6071db609bdf86f5d36f0bc4a4ac0fe8e92c35",
|
"repo": "nixpkgs",
|
||||||
"type": "path"
|
"rev": "e56990880811a451abd32515698c712788be5720",
|
||||||
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"id": "nixpkgs",
|
"owner": "NixOS",
|
||||||
"type": "indirect"
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-stable": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1693771906,
|
||||||
|
"narHash": "sha256-32EnPCaVjOiEERZ+o/2Ir7JH9pkfwJZJ27SKHNvt4yk=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "da5adce0ffaff10f6d0fee72a02a5ed9d01b52fc",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-23.05",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-unstable": {
|
"nixpkgs-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1640540585,
|
"lastModified": 1649408932,
|
||||||
"narHash": "sha256-cCmknKFjWgam9jq+58wSd0Z4REia8mjBP65kXcL3ki8=",
|
"narHash": "sha256-JhTW1OtS5fACcRXLqcTTQyYO5vLkO+bceCqeRms13SY=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "ac169ec6371f0d835542db654a65e0f2feb07838",
|
"rev": "42948b300670223ca8286aaf916bc381f66a5313",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -197,21 +467,37 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1641210259,
|
"lastModified": 1693565476,
|
||||||
"narHash": "sha256-O7oWcTw9WY/gbZPPqDpNYOAeT4bOK+1rtYC9ZaevTT0=",
|
"narHash": "sha256-ya00zHt7YbPo3ve/wNZ/6nts61xt7wK/APa6aZAfey0=",
|
||||||
"owner": "nixos",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "18c84ea816348e2a098390101b92d1e39a9dbd45",
|
"rev": "aa8aa7e2ea35ce655297e8322dc82bf77a31d04b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"owner": "NixOS",
|
||||||
"ref": "master",
|
"ref": "nixos-unstable",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
"nixpkgs_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1693663421,
|
||||||
|
"narHash": "sha256-ImMIlWE/idjcZAfxKK8sQA7A1Gi/O58u5/CJA+mxvl8=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "e56990880811a451abd32515698c712788be5720",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1618628710,
|
"lastModified": 1618628710,
|
||||||
"narHash": "sha256-9xIoU+BrCpjs5nfWcd/GlU7XCVdnNKJPffoNTxgGfhs=",
|
"narHash": "sha256-9xIoU+BrCpjs5nfWcd/GlU7XCVdnNKJPffoNTxgGfhs=",
|
||||||
@@ -224,41 +510,28 @@
|
|||||||
"type": "indirect"
|
"type": "indirect"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_4": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1639347265,
|
|
||||||
"narHash": "sha256-q5feWoC64+h6T6J89o2HJJ8DOnB/4vwMODBlZIgeIlA=",
|
|
||||||
"path": "/nix/store/swl04xiyn1a153n5lbaak903fysp6p0f-source",
|
|
||||||
"rev": "b0bf5f888d377dd2f36d90340df6dc9f035aaada",
|
|
||||||
"type": "path"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"id": "nixpkgs",
|
|
||||||
"type": "indirect"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_5": {
|
"nixpkgs_5": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1640653651,
|
"lastModified": 1649490789,
|
||||||
"narHash": "sha256-fByFYXYoE/6TqwKGbT7XBCOAlSsFzOXm4ZsRLoO70m8=",
|
"narHash": "sha256-YrhVxwoofZSx/wLZ4GYET//8vS+uqWX572zvdmP/Etg=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "7bca80140fc7732c7357b26002db3d87b3ba4c61",
|
"rev": "c86185d20d708013caf97a6adaa8dc6d72313c75",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"ref": "nixos-21.05",
|
"ref": "nixos-21.11",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_6": {
|
"nixpkgs_6": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1639347265,
|
"lastModified": 1640233012,
|
||||||
"narHash": "sha256-q5feWoC64+h6T6J89o2HJJ8DOnB/4vwMODBlZIgeIlA=",
|
"narHash": "sha256-DNKMmWZ/RLoh5IVJLAa5HYOy4IW28mBBYDMgMxzzom8=",
|
||||||
"path": "/nix/store/swl04xiyn1a153n5lbaak903fysp6p0f-source",
|
"path": "/nix/store/gf00nqfl948lq9b8sw2xz3fpirwq5amw-source",
|
||||||
"rev": "b0bf5f888d377dd2f36d90340df6dc9f035aaada",
|
"rev": "611f29bedadfb2aa4c9c26c4af65f05dd35f2f3f",
|
||||||
"type": "path"
|
"type": "path"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -268,27 +541,59 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_7": {
|
"nixpkgs_7": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1641734288,
|
"lastModified": 1645373091,
|
||||||
"narHash": "sha256-/7YwWbvkjinc4uu5aUQMRw3xAthhOVH/esm4tCXPzIQ=",
|
"narHash": "sha256-eRbiakFKdxtjrqOtErp4BgOJlLN5VEBymldfxy+ZKzI=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "d0ae0897999e7ba4615e02ca1770df6065099daf",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable-small",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_8": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1656753965,
|
||||||
|
"narHash": "sha256-BCrB3l0qpJokOnIVc3g2lHiGhnjUi0MoXiw6t1o8H1E=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "df123677560db3b0db7c19d71981b11091fbeaf6",
|
"rev": "0ea7a8f1b939d74e5df8af9a8f7342097cdf69eb",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"ref": "nixos-21.05",
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_9": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1645373091,
|
||||||
|
"narHash": "sha256-eRbiakFKdxtjrqOtErp4BgOJlLN5VEBymldfxy+ZKzI=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "d0ae0897999e7ba4615e02ca1770df6065099daf",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable-small",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nur": {
|
"nur": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1641198127,
|
"lastModified": 1693907142,
|
||||||
"narHash": "sha256-V5beyGlEIPoA5tGRHR8HKgUNOfq2Pk/pMRJsTDe5aH0=",
|
"narHash": "sha256-U3yzshaxSUAC6Hy5xGmlX1TySHoWjH++Y2cC9ujEmZc=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nur",
|
"repo": "nur",
|
||||||
"rev": "f3540de5479a029dbf289232611800e3a83c6913",
|
"rev": "283964d2452632c9b0ccc8eff08d242a073b022f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -300,32 +605,113 @@
|
|||||||
"ostylk": {
|
"ostylk": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"agenix": "agenix",
|
"agenix": "agenix",
|
||||||
"flake-utils": "flake-utils_2",
|
"flake-utils": "flake-utils_3",
|
||||||
"home-manager": "home-manager_2",
|
"home-manager": "home-manager_2",
|
||||||
"impermanence": "impermanence",
|
"impermanence": "impermanence",
|
||||||
"nixos-hardware": "nixos-hardware_2",
|
"nixos-hardware": "nixos-hardware_2",
|
||||||
"nixpkgs": "nixpkgs_5",
|
"nixpkgs": "nixpkgs_5",
|
||||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||||
"rnix-lsp": "rnix-lsp"
|
"rnix-lsp": "rnix-lsp",
|
||||||
|
"tablet-mode": "tablet-mode"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1641167986,
|
"lastModified": 1649593958,
|
||||||
"narHash": "sha256-3rsvxh53szG4Bsi+Z9soKUeQ0mkPIIXRKLcd7ixhGH8=",
|
"narHash": "sha256-bxslOpHYGXEDZ91plgMjGls5g8++YtSuuDKhIuStUA0=",
|
||||||
"ref": "master",
|
"ref": "refs/heads/master",
|
||||||
"rev": "f433548e1182c66e5fe403b80dc213a09c630455",
|
"rev": "04e73c894cf20c4ac1bf6116546c1dab53d6d4e9",
|
||||||
"revCount": 155,
|
"revCount": 171,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://dev.ostylk.de/NixDistro/Config"
|
"url": "https://destiny.ostylk.de/gitea/NixDistro/Config.git"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://dev.ostylk.de/NixDistro/Config"
|
"url": "https://destiny.ostylk.de/gitea/NixDistro/Config.git"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ostylk-home": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-helper": "flake-helper",
|
||||||
|
"flake-utils": "flake-utils_5",
|
||||||
|
"home-stable": "home-stable",
|
||||||
|
"home-unstable": "home-unstable",
|
||||||
|
"impermanence": "impermanence_2",
|
||||||
|
"libwacom-surface": "libwacom-surface",
|
||||||
|
"linux-surface": "linux-surface",
|
||||||
|
"nixgl": "nixgl",
|
||||||
|
"pkg-compile": "pkg-compile",
|
||||||
|
"pkg-stable": "pkg-stable",
|
||||||
|
"pkg-unstable": "pkg-unstable",
|
||||||
|
"rnix-lsp": "rnix-lsp_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1683784900,
|
||||||
|
"narHash": "sha256-h+n0rS4nBFBqlMd1ktn+8UypNP3gQ91e+i/e1zHhbTg=",
|
||||||
|
"ref": "refs/heads/master",
|
||||||
|
"rev": "3a0f186fca0a88e0a2fd002eabedb418cf9a6f6a",
|
||||||
|
"revCount": 124,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://destiny.ostylk.de/gitea/NixDistro/Home.git"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://destiny.ostylk.de/gitea/NixDistro/Home.git"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pkg-compile": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1672791794,
|
||||||
|
"narHash": "sha256-mqGPpGmwap0Wfsf3o2b6qHJW1w2kk/I6cGCGIU+3t6o=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "9813adc7f7c0edd738c6bdd8431439688bb0cb3d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pkg-stable": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1679139072,
|
||||||
|
"narHash": "sha256-Gtw2Yj8DfETie3u7iHv1y5Wt+plGRmp6nTQ0EEfaPho=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "08ef7dc8334521605a5c8b7086cc248e74ee338b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-22.11",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pkg-unstable": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1680487167,
|
||||||
|
"narHash": "sha256-9FNIqrxDZgSliGGN2XJJSvcDYmQbgOANaZA4UWnTdg4=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "53dad94e874c9586e71decf82d972dfb640ef044",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rnix-lsp": {
|
"rnix-lsp": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"naersk": "naersk",
|
"naersk": "naersk",
|
||||||
"nixpkgs": "nixpkgs_7",
|
"nixpkgs": [
|
||||||
|
"ostylk",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
"utils": "utils"
|
"utils": "utils"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
@@ -343,25 +729,48 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"rnix-lsp_2": {
|
||||||
|
"inputs": {
|
||||||
|
"naersk": "naersk_2",
|
||||||
|
"nixpkgs": "nixpkgs_8",
|
||||||
|
"utils": "utils_4"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1669555118,
|
||||||
|
"narHash": "sha256-F0s0m62S5bHNVWNHLZD6SeHiLrsDx98VQbRjDyIu+qQ=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "rnix-lsp",
|
||||||
|
"rev": "95d40673fe43642e2e1144341e86d0036abd95d9",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"ref": "master",
|
||||||
|
"repo": "rnix-lsp",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"emacs": "emacs",
|
"emacs": "emacs",
|
||||||
"flake-utils": "flake-utils",
|
"flake-utils": "flake-utils_2",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"nixos-hardware": "nixos-hardware",
|
"nixos-hardware": "nixos-hardware",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"nixpkgs": "nixpkgs_3",
|
||||||
"nur": "nur",
|
"nur": "nur",
|
||||||
"ostylk": "ostylk",
|
"ostylk": "ostylk",
|
||||||
"stable": "stable"
|
"ostylk-home": "ostylk-home",
|
||||||
|
"stable": "stable",
|
||||||
|
"tablet-mode": "tablet-mode_2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"stable": {
|
"stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1640929225,
|
"lastModified": 1659914493,
|
||||||
"narHash": "sha256-JcnGLghuMWCApRr1Rer5EnIGhQUdAfyAVpdZNH2LL2A=",
|
"narHash": "sha256-lkA5X3VNMKirvA+SUzvEhfA7XquWLci+CGi505YFAIs=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "932ec35ff8ac0fef5667ad2b0db4a009440255a9",
|
"rev": "022caabb5f2265ad4006c1fa5b1ebe69fb0c3faf",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -371,6 +780,74 @@
|
|||||||
"type": "github"
|
"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"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tablet-mode": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils_4",
|
||||||
|
"nixpkgs": "nixpkgs_7"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1645816436,
|
||||||
|
"narHash": "sha256-lK69qpgDWE92aQgvG502bU+pGMaHI+y7O3A/AgsUfxI=",
|
||||||
|
"ref": "master",
|
||||||
|
"rev": "eeafcf0d0cc3713727697f6a2badc5eea706c81c",
|
||||||
|
"revCount": 19,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://destiny.ostylk.de/gitea/NixDistro/tablet-mode.git"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://destiny.ostylk.de/gitea/NixDistro/tablet-mode.git"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tablet-mode_2": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils_7",
|
||||||
|
"nixpkgs": "nixpkgs_9"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1645816436,
|
||||||
|
"narHash": "sha256-lK69qpgDWE92aQgvG502bU+pGMaHI+y7O3A/AgsUfxI=",
|
||||||
|
"ref": "refs/heads/master",
|
||||||
|
"rev": "eeafcf0d0cc3713727697f6a2badc5eea706c81c",
|
||||||
|
"revCount": 19,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://destiny.ostylk.de/gitea/NixDistro/tablet-mode.git"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://destiny.ostylk.de/gitea/NixDistro/tablet-mode.git"
|
||||||
|
}
|
||||||
|
},
|
||||||
"utils": {
|
"utils": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1629481132,
|
"lastModified": 1629481132,
|
||||||
@@ -385,6 +862,51 @@
|
|||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"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"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"utils_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1678901627,
|
||||||
|
"narHash": "sha256-U02riOqrKKzwjsxc/400XnElV+UtPUQWpANPlyazjH0=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "93a2b84fc4b70d9e089d029deacc3583435c2ed6",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"utils_4": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1656928814,
|
||||||
|
"narHash": "sha256-RIFfgBuKz6Hp89yRr7+NR5tzIAbn52h8vT6vXkYjZoM=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "7e2a3b3dfd9af950a856d66b0a7d01e3c18aa249",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
|||||||
14
flake.nix
14
flake.nix
@@ -4,12 +4,14 @@
|
|||||||
inputs = {
|
inputs = {
|
||||||
home-manager.url = "github:nix-community/home-manager/master";
|
home-manager.url = "github:nix-community/home-manager/master";
|
||||||
flake-utils.url = "github:numtide/flake-utils";
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/master";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
stable.url = "github:nixos/nixpkgs/nixos-21.05";
|
stable.url = "github:nixos/nixpkgs/nixos-21.05";
|
||||||
emacs.url = "github:nix-community/emacs-overlay";
|
emacs.url = "github:nix-community/emacs-overlay";
|
||||||
nur.url = "github:nix-community/nur";
|
nur.url = "github:nix-community/nur";
|
||||||
ostylk.url = "git+https://dev.ostylk.de/NixDistro/Config";
|
ostylk.url = "git+https://destiny.ostylk.de/gitea/NixDistro/Config.git";
|
||||||
|
ostylk-home.url = "git+https://destiny.ostylk.de/gitea/NixDistro/Home.git";
|
||||||
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
||||||
|
tablet-mode.url = "git+https://destiny.ostylk.de/gitea/NixDistro/tablet-mode.git";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = {
|
outputs = {
|
||||||
@@ -17,6 +19,7 @@
|
|||||||
, nixpkgs
|
, nixpkgs
|
||||||
, home-manager
|
, home-manager
|
||||||
, flake-utils
|
, flake-utils
|
||||||
|
, ostylk-home
|
||||||
, ...
|
, ...
|
||||||
}@inputs: let
|
}@inputs: let
|
||||||
inherit (import ./lib/flake.nix {
|
inherit (import ./lib/flake.nix {
|
||||||
@@ -25,7 +28,7 @@
|
|||||||
}) eachDefaultLinuxSystem;
|
}) eachDefaultLinuxSystem;
|
||||||
mkSystem = import ./lib/mkSystem.nix {
|
mkSystem = import ./lib/mkSystem.nix {
|
||||||
inherit inputs;
|
inherit inputs;
|
||||||
inherit (inputs) nur emacs;
|
inherit (inputs) nur emacs tablet-mode;
|
||||||
inherit (nixpkgs) lib config;
|
inherit (nixpkgs) lib config;
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
@@ -50,11 +53,12 @@
|
|||||||
|
|
||||||
overlays = [
|
overlays = [
|
||||||
self.overlay
|
self.overlay
|
||||||
|
|
||||||
|
(import ./overlays/sandbox.nix)
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
# key-mapper only runs on linux
|
inherit (pkgs) wayqt dfl-ipc dfl-applications dfl-utils qtgreet xwaylandvideobridge obs-cli rgb_keyboard prismlauncher-wrapped anime4k;
|
||||||
inherit (pkgs) key-mapper;
|
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
{
|
{
|
||||||
imports = with inputs.nixos-hardware.nixosModules; [
|
imports = with inputs.nixos-hardware.nixosModules; [
|
||||||
common-cpu-intel common-pc-ssd microsoft-surface
|
common-cpu-intel common-pc-ssd #microsoft-surface
|
||||||
];
|
];
|
||||||
|
|
||||||
fileSystems = {
|
fileSystems = {
|
||||||
@@ -23,6 +23,10 @@
|
|||||||
|
|
||||||
programs.phosh.enable = true;
|
programs.phosh.enable = true;
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
rnote
|
||||||
|
];
|
||||||
|
|
||||||
ptw = {
|
ptw = {
|
||||||
programs = {
|
programs = {
|
||||||
mpv.enable = true;
|
mpv.enable = true;
|
||||||
@@ -36,6 +40,7 @@
|
|||||||
# TODO: Nextcloud client
|
# TODO: Nextcloud client
|
||||||
};
|
};
|
||||||
services = {
|
services = {
|
||||||
|
gdm.enable = true;
|
||||||
gnome.enable = true;
|
gnome.enable = true;
|
||||||
};
|
};
|
||||||
system = {
|
system = {
|
||||||
@@ -54,6 +59,7 @@
|
|||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
kernelParams = [ "mem_sleep_default=deep" "kernel.nmi_watchdog=0" "vm.dirty_writeback_centisecs=1500" ];
|
kernelParams = [ "mem_sleep_default=deep" "kernel.nmi_watchdog=0" "vm.dirty_writeback_centisecs=1500" ];
|
||||||
|
kernelPackages = with pkgs; linuxPackagesFor (ostylk-home.packages.x86_64-linux.surface-kernel.override { kernel = kernel_5_16; });
|
||||||
extraModprobeConfig = ''
|
extraModprobeConfig = ''
|
||||||
options i915 enable_fbc=1 enable_rc6=1 modeset=1
|
options i915 enable_fbc=1 enable_rc6=1 modeset=1
|
||||||
options snd_hda_intel power_save=1
|
options snd_hda_intel power_save=1
|
||||||
|
|||||||
215
hosts/miku.nix
215
hosts/miku.nix
@@ -16,39 +16,42 @@
|
|||||||
};
|
};
|
||||||
"/mnt/Storage" = {
|
"/mnt/Storage" = {
|
||||||
device = "/dev/disk/by-label/storage";
|
device = "/dev/disk/by-label/storage";
|
||||||
fsType = "ext4";
|
fsType = "btrfs";
|
||||||
|
options = [
|
||||||
|
"noatime"
|
||||||
|
"nodev"
|
||||||
|
"nosuid"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
gajim-mainwindow
|
gajim
|
||||||
virt-manager qemu scream
|
virt-manager qemu scream
|
||||||
replaysorcery # Custom package
|
#replaysorcery # Custom package
|
||||||
#evdev-proxy # Custom package
|
#vfio-isolate # Custom Package
|
||||||
vfio-isolate # Custom Package
|
|
||||||
steam-wrapped discord-wrapped # Custom package
|
|
||||||
mumble
|
mumble
|
||||||
piper
|
piper trackma # Custom package
|
||||||
trackma # Custom package
|
|
||||||
anime-dl # Custom package
|
anime-dl # Custom package
|
||||||
thunderbird
|
thunderbird
|
||||||
#multimc-wrapped # Custom package
|
anki
|
||||||
#nwg-launchers
|
gimp
|
||||||
gnome-podcasts
|
xwaylandvideobridge
|
||||||
cantata
|
#psst
|
||||||
newsflash
|
|
||||||
sublime-music-no-test
|
#lapce
|
||||||
];
|
];
|
||||||
|
|
||||||
ptw = {
|
ptw = {
|
||||||
programs = {
|
programs = {
|
||||||
|
#bluray.enable = true;
|
||||||
mpv = {
|
mpv = {
|
||||||
primaryScreen = "C27F398";
|
primaryScreen = "DP-1";
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
#sway.enable = true;
|
sway.enable = false;
|
||||||
alacritty.enable = true;
|
alacritty.enable = true;
|
||||||
emacs.enable = true;
|
#emacs.enable = true;
|
||||||
firefox.enable = true;
|
firefox.enable = true;
|
||||||
git.enable = true;
|
git.enable = true;
|
||||||
#gnome-terminal.enable = true;
|
#gnome-terminal.enable = true;
|
||||||
@@ -57,50 +60,32 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
output = "DP-2";
|
output = "DP-2";
|
||||||
};
|
};
|
||||||
xournalpp.enable = true;
|
neovim.enable = true;
|
||||||
|
#xournalpp.enable = true;
|
||||||
zsh.enable = true;
|
zsh.enable = true;
|
||||||
|
direnv.enable = true;
|
||||||
office.enable = true;
|
office.enable = true;
|
||||||
#plasma.enable = true;
|
plasma = {
|
||||||
|
enable = true;
|
||||||
|
/*sddm = {
|
||||||
|
backgroundImage = pkgs.fetchurl {
|
||||||
|
url = "https://cdn.donmai.us/original/d3/1b/__manjuu_prinz_eugen_roon_bismarck_friedrich_der_grosse_and_3_more_azur_lane_drawn_by_zaphn__d31bf4ac564d60f8787818842c369e7f.jpg";
|
||||||
|
sha256 = "sha256-likoJuEaGzGH0RqjPsBE9o5ATwgnOo97PREh3oZBax8=";
|
||||||
|
};
|
||||||
|
};*/
|
||||||
|
};
|
||||||
|
gaming.enable = true;
|
||||||
|
obs.enable = true;
|
||||||
|
android.enable = true;
|
||||||
};
|
};
|
||||||
services = {
|
services = {
|
||||||
|
yubikey.enable = true;
|
||||||
gamemode.enable = true;
|
gamemode.enable = true;
|
||||||
gnome.enable = true;
|
gnome.enable = false;
|
||||||
kanshi = let
|
logiops.enable = true;
|
||||||
horizontal = "Samsung Electric Company C27F398 H4ZR101145";
|
gdm = {
|
||||||
vertical = "Goldstar Company Ltd IPS235 305NDPHKN600";
|
enable = false;
|
||||||
|
|
||||||
helpers = import ../lib/helpers/kanshi.nix;
|
|
||||||
mkProfile = helpers.mkProfile;
|
|
||||||
wallpaperScript = helpers.mkWallpaperScript {
|
|
||||||
inherit pkgs config;
|
|
||||||
};
|
};
|
||||||
in {
|
|
||||||
enable = true;
|
|
||||||
profiles = {
|
|
||||||
homeMultihead = mkProfile {
|
|
||||||
outputs = [
|
|
||||||
{
|
|
||||||
criteria = vertical;
|
|
||||||
status = "enable";
|
|
||||||
mode = "1920x1080";
|
|
||||||
transform = "90";
|
|
||||||
position = "-1080,0";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
criteria = horizontal;
|
|
||||||
status = "enable";
|
|
||||||
mode = "1920x1080";
|
|
||||||
position = "0,0";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
name = "homeMultihead";
|
|
||||||
script = wallpaperScript;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
#swaync.enable = true;
|
|
||||||
key-mapper.enable = true;
|
|
||||||
};
|
};
|
||||||
system = {
|
system = {
|
||||||
i18n.enable = true;
|
i18n.enable = true;
|
||||||
@@ -111,62 +96,88 @@
|
|||||||
};
|
};
|
||||||
virtualisation = {
|
virtualisation = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
gaming.enable = false;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
programs = {
|
programs = {
|
||||||
adb.enable = true;
|
adb.enable = true;
|
||||||
gnupg.agent.pinentryFlavor = "qt";
|
gnupg.agent.pinentryFlavor = "qt";
|
||||||
|
evolution.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
virtualisation = {
|
virtualisation = {
|
||||||
podman = {
|
docker = {
|
||||||
enable = true;
|
enable = true;
|
||||||
dockerCompat = true;
|
storageDriver = "btrfs";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
boot = {
|
boot = let
|
||||||
|
kernel = pkgs.linuxPackages_xanmod_latest;
|
||||||
|
in {
|
||||||
extraModprobeConfig = ''
|
extraModprobeConfig = ''
|
||||||
options kvm_amd nested=1
|
options kvm_amd nested=1
|
||||||
options vfio-pci ids=1002:67df,1002:aaf0
|
|
||||||
options amdgpu dpm=0
|
|
||||||
'';
|
'';
|
||||||
initrd = {
|
initrd = {
|
||||||
availableKernelModules = [ "xhci_pci" "ahci" "usbhid" "sd_mod" "amdgpu" ]; #"vendor-reset" ];
|
availableKernelModules = [
|
||||||
|
"xhci_pci"
|
||||||
|
"ahci"
|
||||||
|
"usbhid"
|
||||||
|
"sd_mod"
|
||||||
|
"amdgpu"
|
||||||
|
"vendor-reset"
|
||||||
|
"winesync"
|
||||||
|
];
|
||||||
kernelModules = [
|
kernelModules = [
|
||||||
"amdgpu" # GPU (duh)
|
"amdgpu" # GPU (duh)
|
||||||
"kvm-amd" "vfio_virqfd" "vfio_pci" "vfio_iommu_type1" "vfio" # Virt
|
"kvm-amd" /*"vfio_virqfd"*/ "vfio_pci" "vfio_iommu_type1" "vfio" # Virt
|
||||||
"uinput" # key-mapper
|
"uinput" # key-mapper
|
||||||
#"vendor-reset"
|
"vendor-reset"
|
||||||
|
"winesync"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
kernelParams = [
|
kernelParams = [
|
||||||
"amd_iommu=on"
|
"amd_iommu=on"
|
||||||
"iommu=pt"
|
"iommu=on"
|
||||||
"sysrq_always_enabled=1"
|
"sysrq_always_enabled=1"
|
||||||
"kvm.ignore_msrs=1"
|
"kvm.ignore_msrs=1"
|
||||||
"kvm.report_ignored_msrs=N"
|
"kvm.report_ignored_msrs=N"
|
||||||
"fbcon=rotate:3"
|
"fbcon=rotate:3"
|
||||||
"quiet"
|
"quiet"
|
||||||
"nopti"
|
|
||||||
"nospectre_v2"
|
|
||||||
"nospec"
|
|
||||||
"clocksource=tsc"
|
"clocksource=tsc"
|
||||||
"tsc=reliable"
|
"tsc=reliable"
|
||||||
|
"pci=noaer"
|
||||||
|
# Disable mitigations
|
||||||
|
"mitigations=off"
|
||||||
|
"rhgb"
|
||||||
|
# Enable ZSwap
|
||||||
|
#"zswap.enabled=1"
|
||||||
|
# Enable Apparmor
|
||||||
|
"lsm=landlock,lockdown,yama,integrity,apparmor,bpf"
|
||||||
|
# Prevent sequential probing
|
||||||
|
"libahci.ignore_sss=1"
|
||||||
|
# Make the system less ready to swap
|
||||||
|
"sysctl.vm.swappiness=0"
|
||||||
];
|
];
|
||||||
|
kernel.sysctl = {
|
||||||
|
# League of Legends under Linux
|
||||||
|
"abi.vsyscall32" = 0;
|
||||||
|
# Fedora 39
|
||||||
|
"vm.max_map_count" = 2147483642;
|
||||||
|
};
|
||||||
|
|
||||||
extraModulePackages = [ pkgs.linuxPackages_zen.vendor-reset ];
|
extraModulePackages = [ kernel.vendor-reset ];
|
||||||
|
kernelPackages = kernel;
|
||||||
|
|
||||||
#extraModulePackages = [ pkgs.linuxPackages.vendor-reset ];
|
binfmt = {
|
||||||
# NOTE: A regression appears to have happend between 5.10 and 5.12
|
emulatedSystems = [ "aarch64-linux" ];
|
||||||
# which leads to the RX590 to have the fence fallback timer on
|
registrations.aarch64-linux.fixBinary = true;
|
||||||
# sdma0 time out (whatever this means). Maybe bisect?
|
};
|
||||||
kernelPackages = pkgs.linuxPackages_zen;
|
|
||||||
};
|
};
|
||||||
services = {
|
services = {
|
||||||
ratbagd.enable = true;
|
ratbagd.enable = true;
|
||||||
flatpak.enable = true;
|
flatpak.enable = true;
|
||||||
etesync-dav.enable = true;
|
#etesync-dav.enable = true;
|
||||||
connman.extraConfig = ''
|
connman.extraConfig = ''
|
||||||
WriteResolvConf=false
|
WriteResolvConf=false
|
||||||
'';
|
'';
|
||||||
@@ -174,24 +185,60 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
layout = "de";
|
layout = "de";
|
||||||
libinput.enable = true;
|
libinput.enable = true;
|
||||||
displayManager.gdm = {
|
|
||||||
wayland = true;
|
|
||||||
enable = true;
|
|
||||||
};
|
};
|
||||||
|
earlyoom.enable = lib.mkForce false;
|
||||||
|
|
||||||
|
udev.extraRules = ''
|
||||||
|
ACTION=="add", SUBSYSTEM=="usb", DRIVERS=="usb", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c52b", ATTR{power/wakeup}="disabled", ATTR{driver/1-7/power/wakeup}="disabled"
|
||||||
|
'';
|
||||||
|
|
||||||
|
hardware = {
|
||||||
|
openrgb = {
|
||||||
|
enable = true;
|
||||||
|
motherboard = "amd";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
system76-scheduler = {
|
||||||
|
enable = false;
|
||||||
|
useStockConfig = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
programs = {
|
||||||
|
cdemu = {
|
||||||
|
enable = true;
|
||||||
|
gui = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
hardware = {
|
||||||
|
opentabletdriver.enable = true;
|
||||||
|
openrazer = {
|
||||||
|
enable = true;
|
||||||
|
devicesOffOnScreensaver = true;
|
||||||
|
users = [ "alexander" ];
|
||||||
|
};
|
||||||
|
bluetooth = {
|
||||||
|
enable = true;
|
||||||
|
powerOnBoot = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# TODO: Move into modules
|
# TODO: Move into modules
|
||||||
systemd.user.services = {
|
/*
|
||||||
scream = {
|
systemd = {
|
||||||
description = "Audio receiver for the Scream virtual network sound card";
|
services = {
|
||||||
#wantedBy = [ "default.target" ];
|
enable-vendor-reset = {
|
||||||
|
wantedBy = [ "default.target" ];
|
||||||
|
script = ''
|
||||||
|
echo "device_specific" > /sys/bus/pci/devices/0000:01:00.0/reset_method
|
||||||
|
'';
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "simple";
|
Type = "simple";
|
||||||
ExecStart = "${pkgs.scream}/bin/scream -i virbr0 -o pulse";
|
|
||||||
Restart = "always";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
user.services = {
|
||||||
replaysorcery-kms = {
|
replaysorcery-kms = {
|
||||||
description = "An open-source, instant-replay solution for Linux; KMS service";
|
description = "An open-source, instant-replay solution for Linux; KMS service";
|
||||||
#wantedBy = [ "default.target" ];
|
#wantedBy = [ "default.target" ];
|
||||||
@@ -212,4 +259,6 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,10 +19,11 @@
|
|||||||
boot = {
|
boot = {
|
||||||
initrd = {
|
initrd = {
|
||||||
availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" "sdhci_pci"
|
availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" "sdhci_pci"
|
||||||
|
"aesni-intel"
|
||||||
# NOTE: See https://github.com/NixOS/nixos-hardware/blob/master/common/pc/laptop/acpi_call.nix
|
# NOTE: See https://github.com/NixOS/nixos-hardware/blob/master/common/pc/laptop/acpi_call.nix
|
||||||
#"acpi_call" ];
|
#"acpi_call" ];
|
||||||
];
|
];
|
||||||
kernelModules = [ "dm-snapshot" ];
|
kernelModules = [ "dm-snapshot" "aesni-intel" ];
|
||||||
luks.devices = {
|
luks.devices = {
|
||||||
cryptroot = {
|
cryptroot = {
|
||||||
device = "/dev/disk/by-uuid/e1011c40-e1a9-4ce6-b89f-f14b046639c1";
|
device = "/dev/disk/by-uuid/e1011c40-e1a9-4ce6-b89f-f14b046639c1";
|
||||||
@@ -35,12 +36,14 @@
|
|||||||
extraModulePackages = [ ];
|
extraModulePackages = [ ];
|
||||||
# NOTE: See https://github.com/NixOS/nixos-hardware/blob/master/lenovo/thinkpad/e495/default.nix#L12
|
# NOTE: See https://github.com/NixOS/nixos-hardware/blob/master/lenovo/thinkpad/e495/default.nix#L12
|
||||||
kernelParams = [ "acpi_backlight=native" ];
|
kernelParams = [ "acpi_backlight=native" ];
|
||||||
|
|
||||||
|
binfmt.emulatedSystems = ["aarch64-linux"];
|
||||||
};
|
};
|
||||||
|
|
||||||
ptw = {
|
ptw = {
|
||||||
programs = {
|
programs = {
|
||||||
alacritty.enable = true;
|
alacritty.enable = true;
|
||||||
sway.enable = true;
|
sway.enable = false;
|
||||||
emacs.enable = true;
|
emacs.enable = true;
|
||||||
firefox.enable = true;
|
firefox.enable = true;
|
||||||
tmux.enable = true;
|
tmux.enable = true;
|
||||||
@@ -51,9 +54,13 @@
|
|||||||
zsh.enable = true;
|
zsh.enable = true;
|
||||||
git.enable = true;
|
git.enable = true;
|
||||||
office.enable = true;
|
office.enable = true;
|
||||||
|
plasma.enable = true;
|
||||||
|
direnv.enable = true;
|
||||||
};
|
};
|
||||||
services = {
|
services = {
|
||||||
gnome.enable = true;
|
yubikey.enable = true;
|
||||||
|
cups.enable = true;
|
||||||
|
gnome.enable = false;
|
||||||
kanshi = let
|
kanshi = let
|
||||||
horizontal = "Samsung Electric Company C27F398 H4ZR101145";
|
horizontal = "Samsung Electric Company C27F398 H4ZR101145";
|
||||||
|
|
||||||
@@ -116,19 +123,33 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
layout = "de";
|
layout = "de";
|
||||||
libinput.enable = true;
|
libinput.enable = true;
|
||||||
displayManager.gdm = {
|
|
||||||
enable = true;
|
|
||||||
wayland = true;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
virtualisation = {
|
||||||
|
podman = {
|
||||||
|
enable = true;
|
||||||
|
dockerCompat = true;
|
||||||
|
dockerSocket.enable = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
ansible
|
ansible
|
||||||
gnumake
|
gnumake
|
||||||
|
wireguard-tools
|
||||||
|
|
||||||
|
(pkgs.callPackage ./wrapper.nix {
|
||||||
|
inherit (pkgs) retroarch;
|
||||||
|
cores = with pkgs.libretro; [
|
||||||
|
mgba mupen64plus melonds desmume dolphin
|
||||||
|
];
|
||||||
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
gnupg.agent.pinentryFlavor = "qt";
|
gnupg.agent = {
|
||||||
|
pinentryFlavor = "qt";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
37
hosts/wrapper.nix
Normal file
37
hosts/wrapper.nix
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
{ stdenv, lib, makeWrapper, retroarch, cores ? [ ] }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
pname = "retroarch";
|
||||||
|
version = lib.getVersion retroarch;
|
||||||
|
|
||||||
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
|
|
||||||
|
buildCommand = ''
|
||||||
|
mkdir -p $out/lib
|
||||||
|
for coreDir in $cores
|
||||||
|
do
|
||||||
|
ln -s $coreDir/* $out/lib/.
|
||||||
|
done
|
||||||
|
|
||||||
|
ln -s -t $out ${retroarch}/share
|
||||||
|
|
||||||
|
if [ -d ${retroarch}/Applications ]; then
|
||||||
|
ln -s -t $out ${retroarch}/Applications
|
||||||
|
fi
|
||||||
|
|
||||||
|
makeWrapper ${retroarch}/bin/retroarch $out/bin/retroarch \
|
||||||
|
--suffix-each LD_LIBRARY_PATH ':' "$cores" \
|
||||||
|
--add-flags "-L $out/lib/" \
|
||||||
|
'';
|
||||||
|
|
||||||
|
cores = map (x: x + x.libretroCore) cores;
|
||||||
|
preferLocalBuild = true;
|
||||||
|
|
||||||
|
meta = with retroarch.meta; {
|
||||||
|
inherit changelog description homepage license maintainers platforms;
|
||||||
|
longDescription =
|
||||||
|
"RetroArch is the reference frontend for the libretro API. The following cores are included: "
|
||||||
|
+ lib.concatStringsSep ", " (map (x: "${x.name}") cores)
|
||||||
|
+ ".";
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -8,14 +8,14 @@ let
|
|||||||
in {
|
in {
|
||||||
time.timeZone = "Europe/Berlin";
|
time.timeZone = "Europe/Berlin";
|
||||||
ostylk.nftables = {
|
ostylk.nftables = {
|
||||||
enable = true;
|
enable = false;
|
||||||
|
|
||||||
tables.firewall = {
|
tables.firewall = {
|
||||||
family = "inet";
|
family = "inet";
|
||||||
chains = {
|
chains = {
|
||||||
non-libvirt.extraConfig = let
|
non-libvirt.extraConfig = let
|
||||||
deviceIPString = lib.concatStringsSep "," (with network; [
|
deviceIPString = lib.concatStringsSep "," (with network; [
|
||||||
miku nishimiya tamaki mashu # ayame
|
miku nishimiya tamaki mashu taihou # ayame
|
||||||
]);
|
]);
|
||||||
in ''
|
in ''
|
||||||
# Accept traffic from my devices
|
# Accept traffic from my devices
|
||||||
@@ -33,7 +33,14 @@ in {
|
|||||||
};
|
};
|
||||||
networking = {
|
networking = {
|
||||||
useDHCP = false; # Done by the network manager
|
useDHCP = false; # Done by the network manager
|
||||||
networkmanager.enable = true;
|
networkmanager = {
|
||||||
|
enable = true;
|
||||||
|
plugins = with pkgs; [
|
||||||
|
networkmanager-vpnc
|
||||||
|
networkmanager-openvpn
|
||||||
|
networkmanager-openconnect
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
#interfaces.*.useDHCP = false;
|
#interfaces.*.useDHCP = false;
|
||||||
|
|
||||||
@@ -44,6 +51,7 @@ in {
|
|||||||
#"${network.ayame}" = [ "ayame.local" ];
|
#"${network.ayame}" = [ "ayame.local" ];
|
||||||
"${network.tamaki}" = [ "tamaki.local" ];
|
"${network.tamaki}" = [ "tamaki.local" ];
|
||||||
"${network.mashu}" = [ "mashu.local" ];
|
"${network.mashu}" = [ "mashu.local" ];
|
||||||
|
"${network.taihou}" = [ "taihou.local" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -74,6 +82,9 @@ in {
|
|||||||
git-crypt
|
git-crypt
|
||||||
gnupg
|
gnupg
|
||||||
python3
|
python3
|
||||||
|
unzip
|
||||||
|
file
|
||||||
|
ripgrep
|
||||||
|
|
||||||
# General utilities
|
# General utilities
|
||||||
bandwhich bottom latencytop
|
bandwhich bottom latencytop
|
||||||
@@ -97,16 +108,20 @@ in {
|
|||||||
nerdfonts
|
nerdfonts
|
||||||
];
|
];
|
||||||
|
|
||||||
|
# For home-manager
|
||||||
|
programs.dconf.enable = true;
|
||||||
|
|
||||||
# We don't tolerate non-free software, except for Steam and Linux firmware
|
# We don't tolerate non-free software, except for Steam and Linux firmware
|
||||||
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
|
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
|
||||||
"firmwareLinuxNonfree" "microcodeAmd" "microcodeIntel"
|
"firmwareLinuxNonfree" "microcodeAmd" "microcodeIntel"
|
||||||
"steam" "steam-original" "steam-runtime"
|
"steam" "steam-original" "steam-runtime" "steam-run"
|
||||||
"discord" "minecraft"
|
"discord" "discord-canary"
|
||||||
|
"minecraft"
|
||||||
|
"spotify" "spotify-unwrapped"
|
||||||
];
|
];
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
# TODO: Is this correct? Maybe run once
|
timesyncd.enable = true;
|
||||||
timesyncd.enable = false;
|
|
||||||
|
|
||||||
# Everyone needs sound
|
# Everyone needs sound
|
||||||
pipewire = {
|
pipewire = {
|
||||||
@@ -212,7 +227,7 @@ in {
|
|||||||
upower.enable = true;
|
upower.enable = true;
|
||||||
|
|
||||||
# What generated entropy?
|
# What generated entropy?
|
||||||
haveged.enable = true;
|
#haveged.enable = true;
|
||||||
|
|
||||||
printing.enable = lib.mkDefault false;
|
printing.enable = lib.mkDefault false;
|
||||||
avahi.enable = false;
|
avahi.enable = false;
|
||||||
@@ -229,7 +244,10 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
# Don't wait for a network connection
|
# Don't wait for a network connection
|
||||||
systemd.services.NetworkManager-wait-online.enable = false;
|
systemd = {
|
||||||
|
services.NetworkManager-wait-online.enable = false;
|
||||||
|
coredump.enable = false;
|
||||||
|
};
|
||||||
|
|
||||||
security.sudo.extraConfig = ''
|
security.sudo.extraConfig = ''
|
||||||
Defaults env_keep += "NIXOS_CONFIG"
|
Defaults env_keep += "NIXOS_CONFIG"
|
||||||
@@ -261,10 +279,20 @@ in {
|
|||||||
registry = {
|
registry = {
|
||||||
nixpkgs.flake = inputs.nixpkgs;
|
nixpkgs.flake = inputs.nixpkgs;
|
||||||
};
|
};
|
||||||
|
settings = {
|
||||||
|
substituters = [
|
||||||
|
"https://cache.nixos.org/" # Official binary substitute
|
||||||
|
"https://nix-community.cachix.org/" # For emacsGccPgtk
|
||||||
|
];
|
||||||
|
trusted-public-keys = [
|
||||||
|
"hydra.nixos.org-1:CNHJZBh9K4tP3EKF6FkkgeVYsS3ohTl+oS0Qa8bezVs=" # Official binary substitute
|
||||||
|
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" # nix-community
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
cleanTmpDir = true;
|
tmp.cleanOnBoot = true;
|
||||||
loader = {
|
loader = {
|
||||||
systemd-boot.enable = true;
|
systemd-boot.enable = true;
|
||||||
efi.canTouchEfiVariables = true;
|
efi.canTouchEfiVariables = true;
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ Idea: Make miku.nix, mashu.nix, ... have the following structure
|
|||||||
{
|
{
|
||||||
hostConfigFile
|
hostConfigFile
|
||||||
, architecture ? "x86_64-linux"
|
, architecture ? "x86_64-linux"
|
||||||
|
, bluray ? false
|
||||||
}: let
|
}: let
|
||||||
pkgs = inputs.nixpkgs;
|
pkgs = inputs.nixpkgs;
|
||||||
config = pkgs.lib;
|
config = pkgs.lib;
|
||||||
@@ -37,18 +38,27 @@ in inputs.nixpkgs.lib.nixosSystem {
|
|||||||
# Overlays
|
# Overlays
|
||||||
(util.mkOverlayFromInput "stable" inputs.stable)
|
(util.mkOverlayFromInput "stable" inputs.stable)
|
||||||
(util.mkOverlayFromInput "unstable" inputs.nixpkgs)
|
(util.mkOverlayFromInput "unstable" inputs.nixpkgs)
|
||||||
|
|
||||||
|
|
||||||
{
|
{
|
||||||
nixpkgs.overlays = [
|
nixpkgs.overlays = [
|
||||||
nur.overlay
|
nur.overlay
|
||||||
emacs.overlay
|
emacs.overlay
|
||||||
(import ../packages)
|
(import ../packages)
|
||||||
(import ../overlays/simple.nix)
|
(import ../overlays/simple.nix)
|
||||||
|
(import ../overlays/phosh.nix)
|
||||||
|
]
|
||||||
|
++ lib.optional bluray (import ../overlays/bluray.nix)
|
||||||
|
++ [
|
||||||
|
# Always keep sandbox.nix as the last overlay
|
||||||
|
(import ../overlays/sandbox.nix)
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
# My module system
|
# My module system
|
||||||
(import ../modules)
|
(import ../modules)
|
||||||
inputs.ostylk.nixosModules.nftables
|
inputs.ostylk.nixosModules.nftables
|
||||||
|
inputs.tablet-mode.nixosModule
|
||||||
|
|
||||||
# Actual config
|
# Actual config
|
||||||
(import ./baseSystem.nix)
|
(import ./baseSystem.nix)
|
||||||
|
|||||||
@@ -2,8 +2,9 @@ rec {
|
|||||||
network-base = "192.168.178";
|
network-base = "192.168.178";
|
||||||
|
|
||||||
# A collection of IP addresses for various uses
|
# A collection of IP addresses for various uses
|
||||||
miku = "${network-base}.38";
|
miku = "${network-base}.60";
|
||||||
nishimiya = "${network-base}.59";
|
nishimiya = "${network-base}.59";
|
||||||
tamaki = "${network-base}.27";
|
tamaki = "${network-base}.27";
|
||||||
mashu = "${network-base}.54";
|
mashu = "${network-base}.54";
|
||||||
|
taihou = "${network-base}.21";
|
||||||
}
|
}
|
||||||
|
|||||||
BIN
lib/ports.nix
BIN
lib/ports.nix
Binary file not shown.
196
lib/sandbox.nix
Normal file
196
lib/sandbox.nix
Normal file
@@ -0,0 +1,196 @@
|
|||||||
|
{
|
||||||
|
stdenv, lib
|
||||||
|
, runCommandLocal, writeShellScriptBin, makeDesktopItem
|
||||||
|
, bubblewrap, coreutils, glibc, pkgsi686Linux
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
name # Name of the sandboxed package, e.g. "package-wrapped"
|
||||||
|
, launchScriptName # Name of the script that will be placed in $out/bin
|
||||||
|
, binary # The binary to execute inside the sandbox
|
||||||
|
, extraArgs ? [] # Extra arguments to add to the argv
|
||||||
|
, desktopFileAttributes ? {} # Arguments to apply to the desktop file
|
||||||
|
, preDesktopFilePhase ? "" # Code to run during the install phase before building the desktop file
|
||||||
|
, enableDesktopFile ? false # Whether to build a desktop file
|
||||||
|
, copyIntoSandbox ? {} # Source -> destination relative to $out
|
||||||
|
, unshareUser ? true
|
||||||
|
, unshareIpc ? true
|
||||||
|
, unsharePid ? true
|
||||||
|
, unshareNet ? false
|
||||||
|
, unshareUts ? true
|
||||||
|
, unshareCgroup ? true
|
||||||
|
, dieWithParent ? true # Should bubblewrap exit when the parents exits
|
||||||
|
, mountInHome ? [] # Files, directories to mount inside the sandbox
|
||||||
|
, chdirTo ? "\"$(pwd)\"" # What should be the CWD when entering the sandbox
|
||||||
|
, additionalBlacklist ? [] # Root directories that should not be mounted
|
||||||
|
, additionalMounts ? [] # Files, directories outside the home directory to mount inside the sandbox
|
||||||
|
, extraEnv ? {} # Extra environment variables to set inside the sandbox
|
||||||
|
, enableAlsa ? true # Mount ALSA files from /etc/
|
||||||
|
, enableSudo ? true # Mount sudo files from /etc/
|
||||||
|
, enableShells ? true # Mount shell related files from /etc/
|
||||||
|
, enableNix ? true # Mount nix related files from /etc/
|
||||||
|
, enableOsInfo ? true # Mount /etc/{machine-id,os-release}
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
mountHome = mountInHome == [];
|
||||||
|
|
||||||
|
etcBindFlags = let
|
||||||
|
files = [
|
||||||
|
# Users, Groups, NSS
|
||||||
|
"passwd"
|
||||||
|
"group"
|
||||||
|
"shadow"
|
||||||
|
"hosts"
|
||||||
|
"resolv.conf"
|
||||||
|
"nsswitch.conf"
|
||||||
|
# User profiles
|
||||||
|
"profiles"
|
||||||
|
# Time
|
||||||
|
"localtime"
|
||||||
|
"zoneinfo"
|
||||||
|
# PAM
|
||||||
|
"pam.d"
|
||||||
|
# Fonts
|
||||||
|
"fonts"
|
||||||
|
]
|
||||||
|
++ (lib.optionals enableNix [ "static" "nix" ])
|
||||||
|
++ (lib.optionals enableShells [ "bashrc" "zshenv" "zshrc" "zinputrc" "zprofile" ])
|
||||||
|
++ (lib.optionals enableSudo [ "login.defs" "sudoers" "sudoers.d" ])
|
||||||
|
++ (lib.optionals enableAlsa [ "alsa" "asound.conf" ])
|
||||||
|
++ (lib.optionals enableOsInfo [ "machine-id" "os-release" ])
|
||||||
|
# Only add SSL stuff when we have networking enabled
|
||||||
|
++ (lib.optionals (!unshareNet) [ "ssl/certs" "pki" ]);
|
||||||
|
in builtins.concatStringsSep "\n " (map (file: "--ro-bind-try /etc/${file} /etc/${file}") files);
|
||||||
|
|
||||||
|
# Create this on the fly instead of linking from /nix
|
||||||
|
# The container might have to modify it and re-run ldconfig if there are
|
||||||
|
# issues running some binary with LD_LIBRARY_PATH
|
||||||
|
createLdConfCache = ''
|
||||||
|
cat > /etc/ld.so.conf <<EOF
|
||||||
|
/lib
|
||||||
|
/lib/x86_64-linux-gnu
|
||||||
|
/lib64
|
||||||
|
/usr/lib
|
||||||
|
/usr/lib/x86_64-linux-gnu
|
||||||
|
/usr/lib64
|
||||||
|
/lib/i386-linux-gnu
|
||||||
|
/lib32
|
||||||
|
/usr/lib/i386-linux-gnu
|
||||||
|
/usr/lib32
|
||||||
|
EOF
|
||||||
|
ldconfig &> /dev/null
|
||||||
|
'';
|
||||||
|
sandboxInitScriptName = "${name}-wrapped-init.sh";
|
||||||
|
sandboxInitScript = writeShellScriptBin sandboxInitScriptName ''
|
||||||
|
source /etc/profile
|
||||||
|
${createLdConfCache}
|
||||||
|
exec ${binary} "$@"
|
||||||
|
'';
|
||||||
|
|
||||||
|
|
||||||
|
sandboxScriptName = "${name}-wrapped.sh";
|
||||||
|
sandboxScript = let
|
||||||
|
extraEnvString = lib.foldl (acc: val: acc + val + "\n") "" (lib.mapAttrsToList (name: value: "--setenv ${name} \"${value}\"") extraEnv);
|
||||||
|
stringify = x: "\"${x}\"";
|
||||||
|
safeAdditionalMounts = map stringify additionalMounts;
|
||||||
|
safeMountInHome = map stringify mountInHome;
|
||||||
|
in writeShellScriptBin sandboxScriptName ''
|
||||||
|
blacklist=(/nix /dev /proc /etc ${lib.optionalString (!mountHome) "/home"} ${builtins.toString additionalBlacklist})
|
||||||
|
ro_mounts=()
|
||||||
|
symlinks=()
|
||||||
|
|
||||||
|
declare -a auto_mounts
|
||||||
|
# loop through all directories in the root
|
||||||
|
for dir in /*; do
|
||||||
|
# if it is a directory and it is not in the blacklist
|
||||||
|
if [[ -d "$dir" ]] && [[ ! "''${blacklist[@]}" =~ "$dir" ]]; then
|
||||||
|
# add it to the mount list
|
||||||
|
auto_mounts+=(--bind "$dir" "$dir")
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ "${lib.optionalString (!mountHome) "1"}" = "1" ]]; then
|
||||||
|
for entry in ${builtins.toString safeMountInHome}; do
|
||||||
|
auto_mounts+=(--bind "/home/$USER/$entry" "/home/$USER/$entry")
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! -z "${builtins.toString additionalMounts}" ]]; then
|
||||||
|
for entry in ${builtins.toString safeAdditionalMounts}; do
|
||||||
|
auto_mounts+=(--bind "$entry" "$entry")
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
cmd=(
|
||||||
|
${bubblewrap}/bin/bwrap
|
||||||
|
--dev-bind /dev /dev
|
||||||
|
--proc /proc
|
||||||
|
--chdir ${chdirTo}
|
||||||
|
${lib.optionalString unshareUser "--unshare-user"}
|
||||||
|
${lib.optionalString unshareIpc "--unshare-ipc"}
|
||||||
|
${lib.optionalString unsharePid "--unshare-pid"}
|
||||||
|
${lib.optionalString unshareNet "--unshare-net"}
|
||||||
|
${lib.optionalString unshareUts "--unshare-uts"}
|
||||||
|
${lib.optionalString unshareCgroup "--unshare-cgroup"}
|
||||||
|
${lib.optionalString dieWithParent "--die-with-parent"}
|
||||||
|
--ro-bind /nix /nix
|
||||||
|
# Our glibc will look for the cache in its own path in `/nix/store`.
|
||||||
|
# As such, we need a cache to exist there, because pressure-vessel
|
||||||
|
# depends on the existence of an ld cache. However, adding one
|
||||||
|
# globally proved to be a bad idea (see #100655), the solution we
|
||||||
|
# settled on being mounting one via bwrap.
|
||||||
|
# Also, the cache needs to go to both 32 and 64 bit glibcs, for games
|
||||||
|
# of both architectures to work.
|
||||||
|
--tmpfs ${glibc}/etc \
|
||||||
|
--symlink /etc/ld.so.conf ${glibc}/etc/ld.so.conf \
|
||||||
|
--symlink /etc/ld.so.cache ${glibc}/etc/ld.so.cache \
|
||||||
|
--ro-bind ${glibc}/etc/rpc ${glibc}/etc/rpc \
|
||||||
|
--remount-ro ${glibc}/etc \
|
||||||
|
--tmpfs ${pkgsi686Linux.glibc}/etc \
|
||||||
|
--symlink /etc/ld.so.conf ${pkgsi686Linux.glibc}/etc/ld.so.conf \
|
||||||
|
--symlink /etc/ld.so.cache ${pkgsi686Linux.glibc}/etc/ld.so.cache \
|
||||||
|
--ro-bind ${pkgsi686Linux.glibc}/etc/rpc ${pkgsi686Linux.glibc}/etc/rpc \
|
||||||
|
--remount-ro ${pkgsi686Linux.glibc}/etc \
|
||||||
|
${etcBindFlags}
|
||||||
|
"''${ro_mounts[@]}"
|
||||||
|
"''${symlinks[@]}"
|
||||||
|
"''${auto_mounts[@]}"
|
||||||
|
${extraEnvString}
|
||||||
|
${sandboxInitScript}/bin/${sandboxInitScriptName}
|
||||||
|
)
|
||||||
|
exec "''${cmd[@]}" $@
|
||||||
|
'';
|
||||||
|
in stdenv.mkDerivation {
|
||||||
|
pname = name;
|
||||||
|
version = "1.0.0";
|
||||||
|
|
||||||
|
unpackPhase = ":";
|
||||||
|
dontBuild = true;
|
||||||
|
|
||||||
|
installPhase = let
|
||||||
|
desktopFilePhase = let
|
||||||
|
desktopFile = makeDesktopItem (desktopFileAttributes // {
|
||||||
|
exec = "${sandboxScript}/bin/${sandboxScriptName}";
|
||||||
|
});
|
||||||
|
in ''
|
||||||
|
cp -r ${desktopFile}/share/applications $out/share
|
||||||
|
'';
|
||||||
|
copyIntoSandboxPhase = let
|
||||||
|
attrs = builtins.attrNames copyIntoSandbox;
|
||||||
|
cps = map (x: "cp -Lr ${x} $out/${copyIntoSandbox."${x}"}\n") attrs;
|
||||||
|
in lib.concatStrings cps;
|
||||||
|
in ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
ln -s ${sandboxScript}/bin/${sandboxScriptName} $out/bin/${launchScriptName}
|
||||||
|
|
||||||
|
|
||||||
|
# Generate the desktop file, if enabled
|
||||||
|
${lib.optionalString enableDesktopFile "mkdir -p $out/share"}
|
||||||
|
${lib.optionalString enableDesktopFile preDesktopFilePhase}
|
||||||
|
${lib.optionalString enableDesktopFile desktopFilePhase}
|
||||||
|
|
||||||
|
# Copy extra files if they are specified
|
||||||
|
${lib.optionalString (copyIntoSandbox != {}) copyIntoSandboxPhase}
|
||||||
|
'';
|
||||||
|
}
|
||||||
@@ -3,15 +3,17 @@
|
|||||||
# Hardware modules
|
# Hardware modules
|
||||||
./hardware/mobile.nix
|
./hardware/mobile.nix
|
||||||
./hardware/surface-pro6.nix
|
./hardware/surface-pro6.nix
|
||||||
./hardware/wifi.nix
|
|
||||||
|
|
||||||
# Programs
|
# Programs
|
||||||
./programs/alacritty
|
./programs/alacritty
|
||||||
./programs/emacs
|
./programs/emacs
|
||||||
./programs/firefox
|
./programs/firefox
|
||||||
./programs/gnome
|
./programs/gnome
|
||||||
|
./programs/gdm
|
||||||
|
./programs/sddm
|
||||||
./programs/gnome-terminal
|
./programs/gnome-terminal
|
||||||
./programs/mpv
|
./programs/mpv
|
||||||
|
./programs/neovim
|
||||||
./programs/git
|
./programs/git
|
||||||
./programs/sway
|
./programs/sway
|
||||||
./programs/swaync
|
./programs/swaync
|
||||||
@@ -19,14 +21,22 @@
|
|||||||
./programs/waybar
|
./programs/waybar
|
||||||
./programs/zsh
|
./programs/zsh
|
||||||
./programs/xournalpp
|
./programs/xournalpp
|
||||||
./programs/plasma
|
|
||||||
./programs/office
|
./programs/office
|
||||||
|
./programs/gaming
|
||||||
|
./programs/bluray
|
||||||
|
./programs/direnv
|
||||||
|
./programs/obs
|
||||||
|
./programs/android
|
||||||
|
|
||||||
# Services
|
# Services
|
||||||
./services/kanshi
|
./services/kanshi
|
||||||
./services/key-mapper
|
./services/input-remapper
|
||||||
./services/gamemode
|
./services/gamemode
|
||||||
./services/i18n
|
./services/i18n
|
||||||
|
./services/greetd
|
||||||
|
./services/cups
|
||||||
|
./services/logiops
|
||||||
|
./services/yubikey
|
||||||
|
|
||||||
# User
|
# User
|
||||||
#./users/default.nix
|
#./users/default.nix
|
||||||
@@ -41,7 +51,14 @@
|
|||||||
./virtualisation/default.nix
|
./virtualisation/default.nix
|
||||||
./virtualisation/gaming.nix
|
./virtualisation/gaming.nix
|
||||||
|
|
||||||
|
# Security
|
||||||
|
./security/apparmor.nix
|
||||||
|
|
||||||
# Pure options
|
# Pure options
|
||||||
./base.nix
|
./base.nix
|
||||||
|
|
||||||
|
# Desktop
|
||||||
|
./desktop/phosh.nix
|
||||||
|
./desktop/plasma.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
29
modules/desktop/phosh.nix
Normal file
29
modules/desktop/phosh.nix
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.ptw.desktop.phosh;
|
||||||
|
in {
|
||||||
|
options.ptw.desktop.phosh = {
|
||||||
|
enable = lib.mkEnableOption "Enable Phosh";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
assertions = [
|
||||||
|
{
|
||||||
|
assertion = config.ptw.services.gdm.enable == false;
|
||||||
|
message = "Phosh conflicts GDM";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
assertion = config.services.xserver.displayManager.sddm.enable == false;
|
||||||
|
message = "Phosh conflicts SDDM";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
services.xserver.desktopManager.phosh = {
|
||||||
|
user = config.ptw.system.singleUser;
|
||||||
|
group = "users";
|
||||||
|
#package = pkgs.phosh;
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
158
modules/desktop/plasma.nix
Normal file
158
modules/desktop/plasma.nix
Normal file
@@ -0,0 +1,158 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.ptw.programs.plasma;
|
||||||
|
in {
|
||||||
|
options.ptw.programs.plasma = {
|
||||||
|
enable = lib.mkEnableOption "Enable KDE Plasma";
|
||||||
|
mobile = {
|
||||||
|
enable = lib.mkEnableOption "Enable Plasma Mobile";
|
||||||
|
};
|
||||||
|
wayland = {
|
||||||
|
enable = lib.mkOption {
|
||||||
|
default = true;
|
||||||
|
description = "Ignore NixOS 'recommendations' and use the Wayland session by default";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
/*sddm = {
|
||||||
|
backgroundImage = lib.mkOption {
|
||||||
|
default = "${pkgs.sddm-sugar-dark}/usr/share/sddm/themes/sugar-dark/Background.jpg";
|
||||||
|
description = "The background image to use with sddm-sugar-dark";
|
||||||
|
};
|
||||||
|
screenWidth = lib.mkOption {
|
||||||
|
default = 1920;
|
||||||
|
description = "Width of the screen";
|
||||||
|
};
|
||||||
|
screenHeight = lib.mkOption {
|
||||||
|
default = 1080;
|
||||||
|
description = "Width of the screen";
|
||||||
|
};
|
||||||
|
};*/
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
security.pam.services = {
|
||||||
|
login.enableKwallet = true;
|
||||||
|
greetd.enableKwallet = true;
|
||||||
|
};
|
||||||
|
services.xserver = {
|
||||||
|
desktopManager.plasma5 = {
|
||||||
|
enable = true;
|
||||||
|
runUsingSystemd = true;
|
||||||
|
mobile.enable = cfg.mobile.enable;
|
||||||
|
|
||||||
|
kdeglobals = lib.mkIf cfg.mobile.enable {
|
||||||
|
KDE = {
|
||||||
|
StartDragDist = "10";
|
||||||
|
LookAndFeelPackage = "org.kde.plasma.phone";
|
||||||
|
};
|
||||||
|
|
||||||
|
Icons = {
|
||||||
|
Theme = "breeze";
|
||||||
|
};
|
||||||
|
|
||||||
|
General = {
|
||||||
|
ColorScheme = "breeze";
|
||||||
|
Name = "breeze";
|
||||||
|
XftHintStyle = "none";
|
||||||
|
XftSubPixel = "none";
|
||||||
|
shadeSortColumn = "true";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
kwinrc = lib.mkIf cfg.mobile.enable {
|
||||||
|
Plugins = {
|
||||||
|
"org.kde.phone.multitaskingEnabled" = "false";
|
||||||
|
"kwin4_effect_eyeonscreenEnabled" = "false";
|
||||||
|
"kwin4_effect_windowapertureEnabled" = "false";
|
||||||
|
blurEnabled = "false";
|
||||||
|
contrastEnabled = "false";
|
||||||
|
};
|
||||||
|
|
||||||
|
Windows = {
|
||||||
|
Placement = "Maximizing";
|
||||||
|
};
|
||||||
|
|
||||||
|
TabBox = {
|
||||||
|
TouchBorderActive = "9";
|
||||||
|
TouchBorderAlternativeActive = "9";
|
||||||
|
BorderActivate = "9";
|
||||||
|
};
|
||||||
|
|
||||||
|
"Effect-PresentWindows" = {
|
||||||
|
BorderActivateAll = "9";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org.kde.kdecoration2" = {
|
||||||
|
NoPlugin = "true";
|
||||||
|
};
|
||||||
|
|
||||||
|
TouchEdges = {
|
||||||
|
Left = "None";
|
||||||
|
Right = "None";
|
||||||
|
};
|
||||||
|
|
||||||
|
Wayland = {
|
||||||
|
InputMethod = "${pkgs.maliit-keyboard}/usr/share/applications/com.github.maliit.keyboard.desktop";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# See https://github.com/NixOS/nixpkgs/commit/a506f9c79700255c215dddb53455d5e2bed6c1af
|
||||||
|
displayManager = {
|
||||||
|
sddm = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
defaultSession = lib.mkIf cfg.wayland.enable "plasmawayland";
|
||||||
|
#sessionPackages = lib.mkIf cfg.mobile.enable [ pkgs.libsForQt5.plasma5.plasma-mobile ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg.portal = {
|
||||||
|
enable = true;
|
||||||
|
extraPortals = with pkgs; [ xdg-desktop-portal-kde xdg-desktop-portal-gtk ];
|
||||||
|
};
|
||||||
|
|
||||||
|
environment = {
|
||||||
|
systemPackages = let
|
||||||
|
plasmaMobilePackages = with pkgs.libsForQt5; with plasma5; with kdeApplications; with kdeFrameworks; [
|
||||||
|
plasma-mobile
|
||||||
|
plasma-nano
|
||||||
|
pkgs.maliit-framework
|
||||||
|
pkgs.maliit-keyboard
|
||||||
|
];
|
||||||
|
kdePackages = with pkgs.libsForQt5; [
|
||||||
|
okular
|
||||||
|
kdeconnect-kde
|
||||||
|
breeze-gtk
|
||||||
|
#bismuth
|
||||||
|
gwenview
|
||||||
|
yakuake
|
||||||
|
|
||||||
|
kdeplasma-addons
|
||||||
|
plasma-nm
|
||||||
|
] ++ lib.optionals cfg.mobile.enable plasmaMobilePackages;
|
||||||
|
packages = with pkgs; [
|
||||||
|
kde-rounded-corners
|
||||||
|
index-fm
|
||||||
|
rsibreak
|
||||||
|
kalendar
|
||||||
|
kate
|
||||||
|
okular
|
||||||
|
ark
|
||||||
|
kcalc
|
||||||
|
|
||||||
|
# Some Gnome software
|
||||||
|
gnome.totem
|
||||||
|
];
|
||||||
|
in kdePackages ++ packages;
|
||||||
|
sessionVariables = let
|
||||||
|
askPass = "${pkgs.libsForQt5.ksshaskpass}/bin/ksshaskpass";
|
||||||
|
in {
|
||||||
|
SSH_ASKPASS = askPass;
|
||||||
|
SSH_ASKPASS_REQUIRE = "prefer";
|
||||||
|
GIT_ASKPASS = askPass;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -47,6 +47,9 @@ in {
|
|||||||
sha256 = "1xj70n9agy41906jgm4yjmsx58i7pzsizpvv3rkzq78k95qjfmc9";
|
sha256 = "1xj70n9agy41906jgm4yjmsx58i7pzsizpvv3rkzq78k95qjfmc9";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# from dev.ostylk.de/NixDistro/tablet-mode.git
|
||||||
|
tablet-mode.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
|
|||||||
Binary file not shown.
@@ -10,7 +10,7 @@ in {
|
|||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
boot.binfmt.emulatedSystems = [ "i686-linux" "aarch64-linux" ]; # For remote building
|
boot.binfmt.emulatedSystems = [ "i686-linux" "aarch64-linux" ]; # For remote building
|
||||||
environment.systemPackages = with pkgs; [ openssh ];
|
environment.systemPackages = with pkgs; [ openssh ];
|
||||||
nix.trustedUsers = [ "builder" ];
|
nix.settings.trusted-users = [ "builder" ];
|
||||||
|
|
||||||
# TODO: Specify a firewall rule to only allow this from my other NixOS machines
|
# TODO: Specify a firewall rule to only allow this from my other NixOS machines
|
||||||
users = {
|
users = {
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ in {
|
|||||||
dynamic_title = true;
|
dynamic_title = true;
|
||||||
decorations = "full";
|
decorations = "full";
|
||||||
startup_mode = "Windowed";
|
startup_mode = "Windowed";
|
||||||
|
#opacity = 0.7;
|
||||||
};
|
};
|
||||||
|
|
||||||
scrolling = {
|
scrolling = {
|
||||||
@@ -47,7 +48,6 @@ in {
|
|||||||
x = 0;
|
x = 0;
|
||||||
y = 0;
|
y = 0;
|
||||||
};
|
};
|
||||||
use_thin_strokes = true;
|
|
||||||
};
|
};
|
||||||
debug = {
|
debug = {
|
||||||
render_timer = false;
|
render_timer = false;
|
||||||
@@ -83,7 +83,6 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
background_opacity = 0.7;
|
|
||||||
mouse_bindings = [ {
|
mouse_bindings = [ {
|
||||||
mouse = "Middle";
|
mouse = "Middle";
|
||||||
action = "PasteSelection";
|
action = "PasteSelection";
|
||||||
@@ -111,7 +110,6 @@ in {
|
|||||||
|
|
||||||
live_config_reload = true;
|
live_config_reload = true;
|
||||||
enable_experimental_conpty_backend = false;
|
enable_experimental_conpty_backend = false;
|
||||||
alt_send_esc = true;
|
|
||||||
|
|
||||||
key_bindings = [
|
key_bindings = [
|
||||||
{
|
{
|
||||||
|
|||||||
15
modules/programs/android/default.nix
Normal file
15
modules/programs/android/default.nix
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
{ pkgs, lib, config, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.ptw.programs.android;
|
||||||
|
in {
|
||||||
|
options.ptw.programs.android = {
|
||||||
|
enable = lib.mkEnableOption "Enable Android development options";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
environment.variables = {
|
||||||
|
"ANDROID_HOME" = "/home/alexander/Development/Android/Sdk";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
15
modules/programs/bluray/default.nix
Normal file
15
modules/programs/bluray/default.nix
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
{ pkgs, config, lib, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.ptw.programs.bluray;
|
||||||
|
in {
|
||||||
|
options.ptw.programs.bluray = {
|
||||||
|
enable = lib.mkEnableOption "Enable bluray playback and decoding. Will rebuild a lot of packages";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
nixpkgs.config.overlays = [
|
||||||
|
(import ../../../overlays/bluray.nix)
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
19
modules/programs/direnv/default.nix
Normal file
19
modules/programs/direnv/default.nix
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.ptw.programs.direnv;
|
||||||
|
in {
|
||||||
|
options.ptw.programs.direnv = {
|
||||||
|
enable = lib.mkEnableOption "Enable direnv";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
home-manager.users."${config.ptw.system.singleUser}".programs.direnv = {
|
||||||
|
enable = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
nix-direnv = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -9,17 +9,19 @@ let
|
|||||||
rev = "e89a63a62e071180c9cdd9067679fadc3f7bf796";
|
rev = "e89a63a62e071180c9cdd9067679fadc3f7bf796";
|
||||||
sha256 = "0gxlz9b7fvbjkqxsyb4l75g7jsxyms0i1vpnb6y499hl115akcaz";
|
sha256 = "0gxlz9b7fvbjkqxsyb4l75g7jsxyms0i1vpnb6y499hl115akcaz";
|
||||||
};
|
};
|
||||||
|
|
||||||
in {
|
in {
|
||||||
options.ptw.programs.emacs = {
|
options.ptw.programs.emacs = {
|
||||||
enable = lib.mkEnableOption "Configure emacs";
|
enable = lib.mkEnableOption "Configure emacs";
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
environment.systemPackages = with pkgs; [ emacsPgtkGcc ];
|
environment.systemPackages = with pkgs; [ emacs28NativeComp ];
|
||||||
services.emacs.package = pkgs.emacsPgtkGcc;
|
services.emacs.package = pkgs.emacs28NativeComp;
|
||||||
|
|
||||||
home-manager.users."${config.ptw.system.singleUser}" = {
|
home-manager.users."${config.ptw.system.singleUser}" = {
|
||||||
home.file = {
|
home.file = {
|
||||||
|
#".emacs".text = builtins.replaceStrings [ "%%DARTLANG_ANALYSIS_SERVER_PATH%%" "" ] (builtins.readFile ./dotemacs);
|
||||||
".emacs".source = ./dotemacs;
|
".emacs".source = ./dotemacs;
|
||||||
".emacs.d/mu4e.el".source = ./mu4e.el;
|
".emacs.d/mu4e.el".source = ./mu4e.el;
|
||||||
".emacs.d/themes/weyland-yutani-theme.el".source = "${weyland-yutani}/weyland-yutani-theme.el";
|
".emacs.d/themes/weyland-yutani-theme.el".source = "${weyland-yutani}/weyland-yutani-theme.el";
|
||||||
|
|||||||
@@ -9,6 +9,9 @@
|
|||||||
(setq fast-but-imprecise-scrolling t)
|
(setq fast-but-imprecise-scrolling t)
|
||||||
(setq make-backup-files nil) (setq create-lockfiles nil)
|
(setq make-backup-files nil) (setq create-lockfiles nil)
|
||||||
|
|
||||||
|
; Disable the bell sounds
|
||||||
|
(setq ring-bell-function 'ignore)
|
||||||
|
|
||||||
;; A trick for faster startup is to just disable GC for the init phase
|
;; A trick for faster startup is to just disable GC for the init phase
|
||||||
;;; See: https://github.com/nilcons/emacs-use-package-fast#a-trick-less-gc-during-startup
|
;;; See: https://github.com/nilcons/emacs-use-package-fast#a-trick-less-gc-during-startup
|
||||||
(setq gc-cons-threshold 64000000)
|
(setq gc-cons-threshold 64000000)
|
||||||
@@ -89,6 +92,7 @@
|
|||||||
(smartparens-global-mode t))
|
(smartparens-global-mode t))
|
||||||
(use-package undo-tree
|
(use-package undo-tree
|
||||||
:config
|
:config
|
||||||
|
(setq undo-tree-auto-save-history nil)
|
||||||
(global-undo-tree-mode))
|
(global-undo-tree-mode))
|
||||||
|
|
||||||
(setq-default indent-tab-mode t)
|
(setq-default indent-tab-mode t)
|
||||||
@@ -212,6 +216,13 @@
|
|||||||
lsp-signature-auto-activate nil
|
lsp-signature-auto-activate nil
|
||||||
company-minimum-prefix-length 1
|
company-minimum-prefix-length 1
|
||||||
read-process-output-max (* 1024 1024))
|
read-process-output-max (* 1024 1024))
|
||||||
|
(use-package lsp-mode
|
||||||
|
:init
|
||||||
|
(setq lsp-keymap-prefix "C-c l")
|
||||||
|
:hook (
|
||||||
|
(dart-mode . lsp)
|
||||||
|
)
|
||||||
|
:commands lsp)
|
||||||
|
|
||||||
;; Debugging
|
;; Debugging
|
||||||
;(use-package explain-pause-mode
|
;(use-package explain-pause-mode
|
||||||
|
|||||||
@@ -24,17 +24,18 @@ in {
|
|||||||
|
|
||||||
home-manager.users."${config.ptw.system.singleUser}".programs.firefox = {
|
home-manager.users."${config.ptw.system.singleUser}".programs.firefox = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
profiles.default = {
|
||||||
|
id = 0; # NOTE: This is important
|
||||||
|
isDefault = true;
|
||||||
|
name = "Default Profile";
|
||||||
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
|
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
|
||||||
https-everywhere
|
#https-everywhere
|
||||||
ublock-origin
|
ublock-origin
|
||||||
umatrix
|
umatrix
|
||||||
decentraleyes
|
decentraleyes
|
||||||
privacy-redirect
|
privacy-redirect
|
||||||
];
|
];
|
||||||
profiles.default = {
|
|
||||||
id = 0; # NOTE: This is important
|
|
||||||
isDefault = true;
|
|
||||||
name = "Default Profile";
|
|
||||||
settings = {
|
settings = {
|
||||||
"browser.search.suggest.enabled" = false;
|
"browser.search.suggest.enabled" = false;
|
||||||
"browser.tabs.drawInTitlebar" = true;
|
"browser.tabs.drawInTitlebar" = true;
|
||||||
|
|||||||
59
modules/programs/gaming/default.nix
Normal file
59
modules/programs/gaming/default.nix
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.ptw.programs.gaming;
|
||||||
|
in {
|
||||||
|
options.ptw.programs.gaming = {
|
||||||
|
enable = lib.mkEnableOption "Configure gaming options";
|
||||||
|
};
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
# General wine
|
||||||
|
wineWowPackages.staging winetricks
|
||||||
|
protontricks
|
||||||
|
|
||||||
|
# Lutris for League
|
||||||
|
lutris-free-wrapped
|
||||||
|
# prismlauncher-wrapped
|
||||||
|
|
||||||
|
# retroarch for retro games
|
||||||
|
(pkgs.callPackage ./wrapper.nix {
|
||||||
|
inherit (pkgs) retroarch;
|
||||||
|
cores = with pkgs.libretro; [
|
||||||
|
mgba mupen64plus melonds desmume dolphin pcsx2
|
||||||
|
];
|
||||||
|
})
|
||||||
|
|
||||||
|
#steam-wrapped # Custom package
|
||||||
|
|
||||||
|
# Gameplay clip recording
|
||||||
|
(pkgs.wrapOBS {
|
||||||
|
plugins = with pkgs.obs-studio-plugins; [
|
||||||
|
obs-vaapi obs-vkcapture obs-pipewire-audio-capture
|
||||||
|
];
|
||||||
|
})
|
||||||
|
obs-cli
|
||||||
|
|
||||||
|
# Gameplay clip editing
|
||||||
|
kdenlive
|
||||||
|
|
||||||
|
# Performance
|
||||||
|
corectrl
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.gamescope = {
|
||||||
|
enable = true;
|
||||||
|
capSysNice = true;
|
||||||
|
args = ["--rt"];
|
||||||
|
};
|
||||||
|
|
||||||
|
# security.wrappers.gamescope = {
|
||||||
|
# owner = "alexander";
|
||||||
|
# group = "alexander";
|
||||||
|
# source = "${pkgs.gamescope}/bin/gamescope";
|
||||||
|
# capabilities = "CAP_SYS_NICE=eip";
|
||||||
|
# };
|
||||||
|
|
||||||
|
hardware.steam-hardware.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
37
modules/programs/gaming/wrapper.nix
Normal file
37
modules/programs/gaming/wrapper.nix
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
{ stdenv, lib, makeWrapper, retroarch, cores ? [ ] }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
pname = "retroarch";
|
||||||
|
version = lib.getVersion retroarch;
|
||||||
|
|
||||||
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
|
|
||||||
|
buildCommand = ''
|
||||||
|
mkdir -p $out/lib
|
||||||
|
for coreDir in $cores
|
||||||
|
do
|
||||||
|
ln -s $coreDir/* $out/lib/.
|
||||||
|
done
|
||||||
|
|
||||||
|
ln -s -t $out ${retroarch}/share
|
||||||
|
|
||||||
|
if [ -d ${retroarch}/Applications ]; then
|
||||||
|
ln -s -t $out ${retroarch}/Applications
|
||||||
|
fi
|
||||||
|
|
||||||
|
makeWrapper ${retroarch}/bin/retroarch $out/bin/retroarch \
|
||||||
|
--suffix-each LD_LIBRARY_PATH ':' "$cores" \
|
||||||
|
--add-flags "-L $out/lib/" \
|
||||||
|
'';
|
||||||
|
|
||||||
|
cores = map (x: x + x.libretroCore) cores;
|
||||||
|
preferLocalBuild = true;
|
||||||
|
|
||||||
|
meta = with retroarch.meta; {
|
||||||
|
inherit changelog description homepage license maintainers platforms;
|
||||||
|
longDescription =
|
||||||
|
"RetroArch is the reference frontend for the libretro API. The following cores are included: "
|
||||||
|
+ lib.concatStringsSep ", " (map (x: "${x.name}") cores)
|
||||||
|
+ ".";
|
||||||
|
};
|
||||||
|
}
|
||||||
22
modules/programs/gdm/default.nix
Normal file
22
modules/programs/gdm/default.nix
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{ pkgs, config, lib, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.ptw.services.gdm;
|
||||||
|
in {
|
||||||
|
options.ptw.services.gdm = {
|
||||||
|
enable = lib.mkEnableOption "Enable GDM as a display manager";
|
||||||
|
monitors = lib.mkOption {
|
||||||
|
description = "The file to use as a monitors.xml";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
services.xserver.displayManager.gdm = {
|
||||||
|
wayland = true;
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
# TODO: Use monitors.xml
|
||||||
|
# job
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -12,6 +12,9 @@ in {
|
|||||||
enable = true;
|
enable = true;
|
||||||
userEmail = "papatutuwawa@polynom.me";
|
userEmail = "papatutuwawa@polynom.me";
|
||||||
userName = "Alexander \"PapaTutuWawa\"";
|
userName = "Alexander \"PapaTutuWawa\"";
|
||||||
|
|
||||||
|
# The key on my Yubikey
|
||||||
|
signing.key = "B688F70D0EC87D5A8A9D3D7A56C749835F3CE824";
|
||||||
extraConfig = {
|
extraConfig = {
|
||||||
init = {
|
init = {
|
||||||
defaultBranch = "master";
|
defaultBranch = "master";
|
||||||
|
|||||||
@@ -10,12 +10,16 @@ in {
|
|||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
environment = {
|
environment = {
|
||||||
systemPackages = with pkgs; [
|
systemPackages = with pkgs; [
|
||||||
|
# Themes
|
||||||
arc-theme
|
arc-theme
|
||||||
|
libsForQt5.qtstyleplugin-kvantum
|
||||||
|
|
||||||
|
# Gnome Shell Extensions
|
||||||
gnomeExtensions.appindicator
|
gnomeExtensions.appindicator
|
||||||
gnomeExtensions.caffeine
|
gnomeExtensions.caffeine
|
||||||
gnomeExtensions.gnome-40-ui-improvements
|
gnomeExtensions.gnome-40-ui-improvements
|
||||||
gnomeExtensions.notification-timeout # Custom package
|
gnomeExtensions.notification-timeout
|
||||||
gnomeExtensions.windowisready-remover # Custom package
|
gnomeExtensions.window-is-ready-remover
|
||||||
gnomeExtensions.application-volume-mixer
|
gnomeExtensions.application-volume-mixer
|
||||||
gnomeExtensions.tiling-assistant
|
gnomeExtensions.tiling-assistant
|
||||||
gnomeExtensions.tilingnome
|
gnomeExtensions.tilingnome
|
||||||
@@ -23,16 +27,24 @@ in {
|
|||||||
gnomeExtensions.gsconnect
|
gnomeExtensions.gsconnect
|
||||||
gnomeExtensions.blur-my-shell
|
gnomeExtensions.blur-my-shell
|
||||||
gnomeExtensions.forge
|
gnomeExtensions.forge
|
||||||
|
gnomeExtensions.dash-to-dock
|
||||||
|
gnomeExtensions.sound-output-device-chooser
|
||||||
|
|
||||||
|
# Programs
|
||||||
gnome.eog
|
gnome.eog
|
||||||
gnome.nautilus
|
gnome.nautilus
|
||||||
gnome.evince
|
gnome.evince
|
||||||
unstable.gnome.gnome-shell
|
|
||||||
gnome.gnome-terminal
|
gnome.gnome-terminal
|
||||||
|
gnome-console
|
||||||
pinentry-gnome
|
pinentry-gnome
|
||||||
|
mousai
|
||||||
|
gnome.geary
|
||||||
|
gnome.gnome-calendar
|
||||||
|
gnome.gedit
|
||||||
|
|
||||||
|
# For config
|
||||||
dconf # For home-manager
|
dconf # For home-manager
|
||||||
libsForQt5.qtstyleplugin-kvantum
|
|
||||||
];
|
];
|
||||||
gnome.excludePackages = pkgs.gnome.optionalPackages;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
@@ -65,27 +77,29 @@ in {
|
|||||||
libinput.enable = true;
|
libinput.enable = true;
|
||||||
|
|
||||||
desktopManager.gnome.enable = true;
|
desktopManager.gnome.enable = true;
|
||||||
displayManager.gdm = {
|
|
||||||
enable = true;
|
|
||||||
wayland = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
xdg.portal = {
|
xdg.portal = {
|
||||||
enable = true;
|
enable = true;
|
||||||
#extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
#extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
||||||
gtkUsePortal = true;
|
#gtkUsePortal = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
qt5 = {
|
||||||
|
style = "adwaita-dark";
|
||||||
|
platformTheme = "gnome";
|
||||||
|
enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
home-manager.users."${config.ptw.system.singleUser}" = {
|
home-manager.users."${config.ptw.system.singleUser}" = {
|
||||||
xdg.configFile = {
|
#xdg.configFile = {
|
||||||
# Make QT apps use a dark theme
|
# # Make QT apps use a dark theme
|
||||||
"Kvantum/kvantum.kvconfig".text = ''
|
# "Kvantum/kvantum.kvconfig".text = ''
|
||||||
[General]
|
# [General]
|
||||||
theme=KvArcDark
|
# theme=KvArcDark
|
||||||
'';
|
# '';
|
||||||
};
|
#};
|
||||||
|
|
||||||
dconf.settings = {
|
dconf.settings = {
|
||||||
# The packages come in from modules/programs/gnome
|
# The packages come in from modules/programs/gnome
|
||||||
@@ -112,6 +126,7 @@ in {
|
|||||||
"windowIsReady_Remover@nunofarruca@gmail.com"
|
"windowIsReady_Remover@nunofarruca@gmail.com"
|
||||||
"blur-my-shell@aunetx"
|
"blur-my-shell@aunetx"
|
||||||
"gsconnect@andyholmes.github.io"
|
"gsconnect@andyholmes.github.io"
|
||||||
|
"trayIconsReloaded@selfmade.pl"
|
||||||
] ++ (lib.optional isMiku "tiling-assistant@leleat-on-github")
|
] ++ (lib.optional isMiku "tiling-assistant@leleat-on-github")
|
||||||
++ (lib.optional (isNishimiya || isMiku) "tilingnome@rliang.github.com");
|
++ (lib.optional (isNishimiya || isMiku) "tilingnome@rliang.github.com");
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,12 +1,14 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
makeMpvProfile = { shader, additional ? {} }: {
|
#mkAnime4kShader = shader: "${pkgs.anime4k}/usr/share/shaders/${shader}";
|
||||||
glsl-shaders = "${pkgs.anime4k}/usr/share/shaders/${shader}";
|
mkDefaultShader = shader: "${pkgs.mpv-shader-pack}/usr/share/shaders/${shader}";
|
||||||
|
makeMpvProfile = { shader ? null, gpuContext ? "waylandvk", additional ? {} }: {
|
||||||
|
glsl-shaders = lib.mkIf (shader != null) shader;
|
||||||
scale = "ewa_lanczossharp";
|
scale = "ewa_lanczossharp";
|
||||||
cscale = "ewa_lanczossharp";
|
cscale = "ewa_lanczossharp";
|
||||||
gpu-context = "wayland";
|
gpu-context = gpuContext;
|
||||||
gpu-api = "opengl";
|
gpu-api = "vulkan";
|
||||||
hwdec = "vaapi";
|
hwdec = "vaapi";
|
||||||
vo = "gpu";
|
vo = "gpu";
|
||||||
video-sync = "display-resample";
|
video-sync = "display-resample";
|
||||||
@@ -15,8 +17,7 @@ let
|
|||||||
} // additional // (if config.ptw.programs.mpv != "" then {
|
} // additional // (if config.ptw.programs.mpv != "" then {
|
||||||
# Make mpv pop up on the primary screen
|
# Make mpv pop up on the primary screen
|
||||||
screen-name = config.ptw.programs.mpv.primaryScreen;
|
screen-name = config.ptw.programs.mpv.primaryScreen;
|
||||||
fs-screen-name = config.ptw.programs.mpv.primaryScreen;
|
fs-screen-name = config.ptw.programs.mpv.primaryScreen;} else {});
|
||||||
} else {});
|
|
||||||
cfg = config.ptw.programs.mpv;
|
cfg = config.ptw.programs.mpv;
|
||||||
in {
|
in {
|
||||||
options.ptw.programs.mpv = {
|
options.ptw.programs.mpv = {
|
||||||
@@ -40,13 +41,19 @@ in {
|
|||||||
defaultProfiles = [ "anime" ];
|
defaultProfiles = [ "anime" ];
|
||||||
profiles = {
|
profiles = {
|
||||||
anime = (makeMpvProfile {
|
anime = (makeMpvProfile {
|
||||||
shader = "Anime4K_Upscale_Denoise_CNN_x2_VL.glsl";
|
#shader = mkAnime4kShader "Anime4K_Upscale_Denoise_CNN_x2_VL.glsl";
|
||||||
additional = {
|
additional = {
|
||||||
fullscreen = "";
|
fullscreen = "";
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
"anime-denoise" = (makeMpvProfile {
|
anime-denoise = (makeMpvProfile {
|
||||||
shader = "Anime4K_Upscale_Denoise_CNN_x2_VL.glsl";
|
#shader = mkAnime4kShader "Anime4K_Upscale_Denoise_CNN_x2_VL.glsl";
|
||||||
|
});
|
||||||
|
non-anime = (makeMpvProfile {
|
||||||
|
shader = mkDefaultShader "FSRCNNX_x2_8-0-4-1.glsl";
|
||||||
|
});
|
||||||
|
non-anime-strong = (makeMpvProfile {
|
||||||
|
shader = mkDefaultShader "FSRCNNX_x2_16-0-4-1.glsl";
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
28
modules/programs/neovim/default.nix
Normal file
28
modules/programs/neovim/default.nix
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.ptw.programs.neovim;
|
||||||
|
in {
|
||||||
|
options.ptw.programs.neovim = {
|
||||||
|
enable = lib.mkEnableOption "Enable and configure neovim using HomeManager";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
home-manager.users."${config.ptw.system.singleUser}" = {
|
||||||
|
programs.neovim = {
|
||||||
|
enable = true;
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
# For telescope-nvim
|
||||||
|
fd
|
||||||
|
lazygit
|
||||||
|
fish
|
||||||
|
tree-sitter gcc
|
||||||
|
nodejs_20
|
||||||
|
|
||||||
|
# Clipboard
|
||||||
|
wl-clipboard
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
27
modules/programs/obs/default.nix
Normal file
27
modules/programs/obs/default.nix
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.ptw.programs.obs;
|
||||||
|
in {
|
||||||
|
options.ptw.programs.obs = {
|
||||||
|
enable = lib.mkEnableOption "Configure OBS Studio";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
home-manager.users.${config.ptw.system.singleUser}.programs.obs-studio = {
|
||||||
|
enable = true;
|
||||||
|
plugins = with pkgs.obs-studio-plugins; [
|
||||||
|
wlrobs obs-vkcapture
|
||||||
|
|
||||||
|
(obs-pipewire-audio-capture.overrideAttrs (old: {
|
||||||
|
source = pkgs.fetchFromGitHub {
|
||||||
|
owner = "dimtpap";
|
||||||
|
repo = "obs-pipewire-audio-capture";
|
||||||
|
rev = "dd0cfa9581481c862cddd725e23423cd975265d9";
|
||||||
|
sha256 = "1kwdlvpvvx6fgnbn3scx5yg8vgxqy0blrbdxnwqdizzwm2m412ls";
|
||||||
|
};
|
||||||
|
}))
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -7,7 +7,9 @@ in {
|
|||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
libreoffice texlive.combined.scheme-basic
|
/*libreoffice*/
|
||||||
|
texlive.combined.scheme-basic
|
||||||
|
thunderbird
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,36 +0,0 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.ptw.programs.plasma;
|
|
||||||
in {
|
|
||||||
options.ptw.programs.plasma = {
|
|
||||||
enable = lib.mkEnableOption "Enable KDE Plasma";
|
|
||||||
mobile = lib.mkEnableOption "Enable Plasma Mobile";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
services.xserver.desktopManager.plasma5 = {
|
|
||||||
enable = true;
|
|
||||||
runUsingSystemd = true;
|
|
||||||
supportDDC = true;
|
|
||||||
mobile.enable = cfg.mobile;
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.portal = {
|
|
||||||
enable = true;
|
|
||||||
extraPortals = [ pkgs.xdg-desktop-portal-kde ];
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
yakuake
|
|
||||||
libsForQt5.okular
|
|
||||||
libsForQt5.kdeconnect-kde
|
|
||||||
libsForQt5.breeze-gtk
|
|
||||||
libsForQt5.bismuth
|
|
||||||
index-fm
|
|
||||||
#kasts-git
|
|
||||||
rsibreak
|
|
||||||
kalendar
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
26
modules/programs/sddm/default.nix
Normal file
26
modules/programs/sddm/default.nix
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
{ pkgs, config, lib, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.ptw.services.sddm;
|
||||||
|
in {
|
||||||
|
options.ptw.services.sddm = {
|
||||||
|
enable = lib.mkEnableOption "Enable SDDM as a display manager";
|
||||||
|
monitors = lib.mkOption {
|
||||||
|
description = "The file to use as a monitors.xml";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
assertions = [
|
||||||
|
{
|
||||||
|
assertion = config.ptw.services.gdm.enable == false;
|
||||||
|
message = "Having two display managers is a bad idea";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
services.xserver.displayManager.sddm = {
|
||||||
|
enable = true;
|
||||||
|
autoNumlock = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -35,6 +35,10 @@ let
|
|||||||
in {
|
in {
|
||||||
options.ptw.programs.sway = {
|
options.ptw.programs.sway = {
|
||||||
enable = lib.mkEnableOption "Configure sway using HomeManager";
|
enable = lib.mkEnableOption "Configure sway using HomeManager";
|
||||||
|
extraSessionCommands = lib.mkOption {
|
||||||
|
description = "Commands to be run before sway is started. See programs.sway.extraSessionCommands";
|
||||||
|
default = "";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
@@ -48,7 +52,7 @@ in {
|
|||||||
qt5.style = "adwaita-dark";
|
qt5.style = "adwaita-dark";
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
systemPackages = with pkgs; [ adwaita-qt ];
|
systemPackages = with pkgs; [ adwaita-qt wdisplays ];
|
||||||
sessionVariables = {
|
sessionVariables = {
|
||||||
# sway
|
# sway
|
||||||
#"_JAVA_AWT_NONREPARENTING" = 1;
|
#"_JAVA_AWT_NONREPARENTING" = 1;
|
||||||
@@ -61,10 +65,14 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.sway.enable = true;
|
programs.sway = {
|
||||||
|
enable = true;
|
||||||
|
extraSessionCommands = cfg.extraSessionCommands;
|
||||||
|
};
|
||||||
home-manager.users."${config.ptw.system.singleUser}" = {
|
home-manager.users."${config.ptw.system.singleUser}" = {
|
||||||
wayland.windowManager.sway = {
|
wayland.windowManager.sway = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
extraSessionCommands = cfg.extraSessionCommands;
|
||||||
config = {
|
config = {
|
||||||
bars = [ ];
|
bars = [ ];
|
||||||
startup = [
|
startup = [
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ in {
|
|||||||
programs.waybar = {
|
programs.waybar = {
|
||||||
enable = true;
|
enable = true;
|
||||||
style = builtins.readFile ./style.css;
|
style = builtins.readFile ./style.css;
|
||||||
|
/*
|
||||||
settings = [
|
settings = [
|
||||||
{
|
{
|
||||||
output = [ "${cfg.output}" ];
|
output = [ "${cfg.output}" ];
|
||||||
@@ -62,6 +63,7 @@ in {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
*/
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ in {
|
|||||||
history.ignoreSpace = true;
|
history.ignoreSpace = true;
|
||||||
shellAliases = let
|
shellAliases = let
|
||||||
home = "/home/${config.ptw.system.singleUser}/Development/Personal/nixos-config";
|
home = "/home/${config.ptw.system.singleUser}/Development/Personal/nixos-config";
|
||||||
nixosSwitch = "nixos-rebuild --flake .#${config.ptw.system.hostName} switch";
|
nixosSwitch = "nixos-rebuild --flake .#${config.ptw.system.hostName} switch --use-remote-sudo";
|
||||||
in {
|
in {
|
||||||
ls = "ls --color=always";
|
ls = "ls --color=always";
|
||||||
".." = "cd ..";
|
".." = "cd ..";
|
||||||
@@ -36,8 +36,8 @@ in {
|
|||||||
gds = "git diff --staged";
|
gds = "git diff --staged";
|
||||||
c = "clear";
|
c = "clear";
|
||||||
suspend = "systemctl suspend";
|
suspend = "systemctl suspend";
|
||||||
nixos-rebuild-switch = "pushd; cd ${home}; sudo ${nixosSwitch}; popd";
|
nixos-rebuild-switch = "pushd; cd ${home}; ${nixosSwitch}; popd";
|
||||||
nixos-rebuild-switch-fast = "pushd; cd ${home}; sudo ${nixosSwitch} --fast; popd";
|
nixos-rebuild-switch-fast = "pushd; cd ${home}; ${nixosSwitch} --fast; popd";
|
||||||
|
|
||||||
waifu2x = "flatpak run com.github.nihui.waifu2x-ncnn-vulkan";
|
waifu2x = "flatpak run com.github.nihui.waifu2x-ncnn-vulkan";
|
||||||
};
|
};
|
||||||
@@ -47,8 +47,14 @@ in {
|
|||||||
bindkey "\e[3~" delete-char
|
bindkey "\e[3~" delete-char
|
||||||
'';
|
'';
|
||||||
history.share = true;
|
history.share = true;
|
||||||
|
initExtraFirst = let
|
||||||
|
enableDirenv = lib.optionalString
|
||||||
|
config.ptw.programs.direnv.enable
|
||||||
|
"eval \"$(${pkgs.direnv}/bin/direnv hook zsh)\"";
|
||||||
|
in ''
|
||||||
|
${enableDirenv}
|
||||||
|
|
||||||
# TODO: Maybe move this somewhere else
|
# TODO: Maybe move this somewhere else
|
||||||
initExtraFirst = ''
|
|
||||||
wcurl() {
|
wcurl() {
|
||||||
[[ -z "$1" ]] && echo "Error: No URL specified" && exit 1
|
[[ -z "$1" ]] && echo "Error: No URL specified" && exit 1
|
||||||
|
|
||||||
@@ -95,15 +101,17 @@ in {
|
|||||||
sha256 = "1y8wkmhgkkyfz91y1f8crh6cg912n87gmcchc8xhnwji11n1mqrq";
|
sha256 = "1y8wkmhgkkyfz91y1f8crh6cg912n87gmcchc8xhnwji11n1mqrq";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
{
|
{
|
||||||
name = "zsh-syntax-highlighting";
|
name = "zsh-syntax-highlighting";
|
||||||
src = pkgs.fetchFromGitHub {
|
src = pkgs.fetchFromGitHub {
|
||||||
owner = "zsh-users";
|
owner = "zsh-users";
|
||||||
repo = "zsh-syntax-highlighting";
|
repo = "zsh-syntax-highlighting";
|
||||||
rev = "6e0e950154a4c6983d9e077ed052298ad9126144";
|
rev = "c5ce0014677a0f69a10b676b6038ad127f40c6b1";
|
||||||
sha256 = "09bkg1a7qs6kvnq17jnw5cbcjhz9sk259mv0d5mklqaifd0hms4v";
|
sha256 = "sha256-UqeK+xFcKMwdM62syL2xkV8jwkf/NWfubxOTtczWEwA=";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
24
modules/security/apparmor.nix
Normal file
24
modules/security/apparmor.nix
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.ptw.security.apparmor;
|
||||||
|
in {
|
||||||
|
options.ptw.security.apparmor = {
|
||||||
|
enable = lib.mkEnableOption "Enable AppArmor";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
apparmor-bin-utils
|
||||||
|
];
|
||||||
|
|
||||||
|
services.dbus.apparmor = "enabled";
|
||||||
|
security.apparmor = {
|
||||||
|
enable = true;
|
||||||
|
enableCache = true;
|
||||||
|
includes = {
|
||||||
|
profiles = "${pkgs.apparmor-profiles}/etc/apparmor.d";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
27
modules/services/cups/default.nix
Normal file
27
modules/services/cups/default.nix
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
{ lib, config, pkgs, ...}:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.ptw.services.cups;
|
||||||
|
in {
|
||||||
|
options.ptw.services.cups = {
|
||||||
|
enable = lib.mkEnableOption "Enable Cups";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
environment.systemPackages = with pkgs; [ gnome.simple-scan ];
|
||||||
|
|
||||||
|
services.printing = {
|
||||||
|
enable = true;
|
||||||
|
drivers = with pkgs; [ hplip ];
|
||||||
|
};
|
||||||
|
|
||||||
|
services.avahi = {
|
||||||
|
enable = lib.mkForce true;
|
||||||
|
nssmdns = true;
|
||||||
|
};
|
||||||
|
hardware.sane = {
|
||||||
|
enable = true;
|
||||||
|
extraBackends = with pkgs; [ sane-airscan hplip ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
{ config, lib, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
cfg = config.ptw.services.gamemode;
|
cfg = config.ptw.services.gamemode;
|
||||||
@@ -7,7 +7,15 @@ in {
|
|||||||
enable = lib.mkEnableOption "Enable and configure gamemode";
|
enable = lib.mkEnableOption "Enable and configure gamemode";
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = let
|
||||||
|
keyboardBrightnessScript = pkgs.writeShellScript "keyboard-brightness.sh" ''
|
||||||
|
${pkgs.rgb_keyboard}/bin/rgb_keyboard -l ripple -b "$1"
|
||||||
|
'';
|
||||||
|
in lib.mkIf cfg.enable {
|
||||||
|
security.sudo.extraConfig = ''
|
||||||
|
${config.ptw.system.singleUser} ALL = (ALL) NOPASSWD: ${keyboardBrightnessScript}
|
||||||
|
'';
|
||||||
|
|
||||||
programs.gamemode = {
|
programs.gamemode = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableRenice = true;
|
enableRenice = true;
|
||||||
@@ -23,6 +31,35 @@ in {
|
|||||||
ioprio = 0;
|
ioprio = 0;
|
||||||
inhibit_screensaver = 1;
|
inhibit_screensaver = 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
gpu = {
|
||||||
|
amd_performance_level = "high";
|
||||||
|
};
|
||||||
|
|
||||||
|
custom = let
|
||||||
|
switchScript = groupName: "${pkgs.dbus}/bin/dbus-send --print-reply --dest=org.fcitx.Fcitx5 /controller org.fcitx.Fcitx.Controller1.SwitchInputMethodGroup string:'${groupName}'";
|
||||||
|
pauseFcitx = switchScript "Group 2";
|
||||||
|
resumeFcitx = switchScript "Group 1";
|
||||||
|
|
||||||
|
# The scripts
|
||||||
|
start = pkgs.writeShellScript "gamemode-start.sh" ''
|
||||||
|
# Disable Fcitx's IME
|
||||||
|
${pauseFcitx}
|
||||||
|
|
||||||
|
# Turn on the keyboard lights
|
||||||
|
${config.security.wrapperDir}/sudo ${keyboardBrightnessScript} 1
|
||||||
|
'';
|
||||||
|
end = pkgs.writeShellScript "gamemode-end.sh" ''
|
||||||
|
# Resume Fcitx's IME
|
||||||
|
${resumeFcitx}
|
||||||
|
|
||||||
|
# Turn off the keyboard lights
|
||||||
|
${config.security.wrapperDir}/sudo ${keyboardBrightnessScript} 0
|
||||||
|
'';
|
||||||
|
in {
|
||||||
|
start = "${start}";
|
||||||
|
end = "${end}";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
53
modules/services/greetd/default.nix
Normal file
53
modules/services/greetd/default.nix
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
{ lib, config, pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.ptw.services.greetd;
|
||||||
|
in {
|
||||||
|
options.ptw.services.greetd = {
|
||||||
|
enable = lib.mkEnableOption "Enable greetd with gtkgreet";
|
||||||
|
swayExtra = lib.mkOption {
|
||||||
|
description = "Extra options to include in the sway config";
|
||||||
|
default = "";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
users.users.greeter = {
|
||||||
|
isSystemUser = lib.mkForce false;
|
||||||
|
isNormalUser = true;
|
||||||
|
createHome = true;
|
||||||
|
uid = 992;
|
||||||
|
};
|
||||||
|
|
||||||
|
services = {
|
||||||
|
greetd = {
|
||||||
|
enable = true;
|
||||||
|
restart = true;
|
||||||
|
settings = {
|
||||||
|
default_session = let
|
||||||
|
swayConfig = pkgs.writeText "login-sway-config" ''
|
||||||
|
exec ${pkgs.greetd.gtkgreet}/bin/gtkgreet -l; ${pkgs.sway}/bin/swaymsg exit;
|
||||||
|
|
||||||
|
bindsym Mod4+shift+e exec swaynag \
|
||||||
|
-t warning \
|
||||||
|
-m 'What do you want to do?' \
|
||||||
|
-b 'Poweroff' 'systemctl poweroff' \
|
||||||
|
-b 'Reboot' 'systemctl reboot'
|
||||||
|
|
||||||
|
input "*" {
|
||||||
|
xkb_layout de
|
||||||
|
}
|
||||||
|
|
||||||
|
${cfg.swayExtra}
|
||||||
|
|
||||||
|
include /etc/sway/config.d/*
|
||||||
|
'';
|
||||||
|
in {
|
||||||
|
command = "${pkgs.sway}/bin/sway --config ${swayConfig}";
|
||||||
|
user = "greeter";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -10,8 +10,8 @@ in {
|
|||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
# TODO: mozc cannot be configured for some reason
|
# TODO: mozc cannot be configured for some reason
|
||||||
i18n.inputMethod = {
|
i18n.inputMethod = {
|
||||||
enabled = "fcitx";
|
enabled = "fcitx5";
|
||||||
fcitx.engines = with pkgs.fcitx-engines; [ mozc ];
|
fcitx5.addons = with pkgs; [ fcitx5-mozc ];
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [ fcitx5-configtool fcitx5-gtk ];
|
environment.systemPackages = with pkgs; [ fcitx5-configtool fcitx5-gtk ];
|
||||||
|
|||||||
29
modules/services/input-remapper/default.nix
Normal file
29
modules/services/input-remapper/default.nix
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.ptw.services.input-remapper;
|
||||||
|
in {
|
||||||
|
options.ptw.services.input-remapper = {
|
||||||
|
enable = lib.mkEnableOption "Enable the input-remapper service and install it";
|
||||||
|
postStartCommand = lib.mkOption {
|
||||||
|
default = "";
|
||||||
|
description = "Command to be executed after the input-remapper service has been started";
|
||||||
|
# type = ;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
# TODO: Assert that uinput is in kernelModules
|
||||||
|
#services.udev = {
|
||||||
|
# packages = with pkgs; [ input-remapper ];
|
||||||
|
# extraRules = ''
|
||||||
|
# KERNEL=="uinput", GROUP="input", MODE="0660"
|
||||||
|
# '';
|
||||||
|
#};
|
||||||
|
services.input-remapper = {
|
||||||
|
enable = true;
|
||||||
|
enableUdevRules = true;
|
||||||
|
serviceWantedBy = [ "default.target" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.ptw.services.key-mapper;
|
|
||||||
in {
|
|
||||||
options.ptw.services.key-mapper = {
|
|
||||||
enable = lib.mkEnableOption "Enable the key-mapper service and install it";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
# TODO: Assert that uinput is in kernelModules
|
|
||||||
services.udev = {
|
|
||||||
packages = with pkgs; [ key-mapper ];
|
|
||||||
extraRules = ''
|
|
||||||
KERNEL=="uinput", GROUP="input", MODE="0660"
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.systemPackages = [
|
|
||||||
pkgs.key-mapper # Custom package
|
|
||||||
];
|
|
||||||
|
|
||||||
systemd.user.services.key-mapper = {
|
|
||||||
description = "A tool to change the mapping of your input device buttons";
|
|
||||||
wantedBy = [ "default.target" ];
|
|
||||||
serviceConfig = {
|
|
||||||
Type = "simple";
|
|
||||||
ExecStart = "${pkgs.key-mapper}/bin/key-mapper-service";
|
|
||||||
Restart = "always";
|
|
||||||
# NOTE: The Tartarus may not be connected, so don't fail if we cannot set the preset
|
|
||||||
ExecPostStart = "${pkgs.key-mapper}/bin/key-mapper --command start --preset NOOP --device \"Razer Razer Tartarus V2\"; exit 0";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
48
modules/services/logiops/default.nix
Normal file
48
modules/services/logiops/default.nix
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
{ lib, pkgs, config, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.ptw.services.logiops;
|
||||||
|
in {
|
||||||
|
options.ptw.services.logiops = {
|
||||||
|
enable = lib.mkEnableOption "Enable logiops";
|
||||||
|
renice = lib.mkOption {
|
||||||
|
description = "Set the nice value of the process";
|
||||||
|
default = true;
|
||||||
|
};
|
||||||
|
reniceValue = lib.mkOption {
|
||||||
|
description = "Set the nice value of the process";
|
||||||
|
default = -19;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf true {
|
||||||
|
systemd.services.logiops = {
|
||||||
|
description = "An unofficial userspace driver for HID++ Logitech devices";
|
||||||
|
wantedBy = [ "default.target" ];
|
||||||
|
serviceConfig = let
|
||||||
|
logiopsConfig = pkgs.writeText "logiops.cfg" ''
|
||||||
|
devices: (
|
||||||
|
{
|
||||||
|
name: "Wireless Mouse MX Master 3";
|
||||||
|
hiresscroll: {
|
||||||
|
hires: true;
|
||||||
|
target: false;
|
||||||
|
};
|
||||||
|
smartshift: {
|
||||||
|
on: true;
|
||||||
|
threshold: 30;
|
||||||
|
default_threshold: 30;
|
||||||
|
};
|
||||||
|
dpi: 800;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
'';
|
||||||
|
in {
|
||||||
|
Type = "simple";
|
||||||
|
ExecStart = let
|
||||||
|
renice = lib.optionalString cfg.renice "${pkgs.coreutils-full}/bin/nice -n ${builtins.toString cfg.reniceValue}";
|
||||||
|
in "${renice} ${pkgs.logiops}/bin/logid -c ${logiopsConfig}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
31
modules/services/yubikey/default.nix
Normal file
31
modules/services/yubikey/default.nix
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
{ lib, config, pkgs, ...}:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.ptw.services.yubikey;
|
||||||
|
in {
|
||||||
|
options.ptw.services.yubikey = {
|
||||||
|
enable = lib.mkEnableOption "Enable everything for using a YubiKey";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
services = {
|
||||||
|
# Unprivileged access to the YubiKey
|
||||||
|
udev.packages = [ pkgs.yubikey-personalization ];
|
||||||
|
|
||||||
|
# Allow using the YubiKey as a smart card
|
||||||
|
pcscd.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
# Management
|
||||||
|
yubikey-manager-qt yubikey-manager yubico-piv-tool
|
||||||
|
];
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
gnupg.agent = {
|
||||||
|
enable = true;
|
||||||
|
enableSSHSupport = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -4,13 +4,14 @@
|
|||||||
config = lib.mkIf (config.ptw.system.singleUser == "alexander") {
|
config = lib.mkIf (config.ptw.system.singleUser == "alexander") {
|
||||||
users.users.alexander = {
|
users.users.alexander = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
extraGroups = [ "wheel" "audio" "video" "kvm" "input" "libvirtd" ];
|
extraGroups = [ "wheel" "audio" "video" "kvm" "input" "libvirtd" "scanner" "lp" "alexander" "cdrom" ];
|
||||||
hashedPassword = "$5$i4aZuQ/WXP.rFOc$lCzDqbrVsqBQt5954O.3bFPknD0jn27MmqzmE4DIAEC";
|
hashedPassword = "$y$j9T$xhnK648hF0yzDnRy0rTT/.$HbDKvNetiGeY3Xjt6/YPIzoxSmdQ0SzhXengOT1Ga01";
|
||||||
shell = pkgs.zsh;
|
shell = pkgs.zsh;
|
||||||
useDefaultShell = false;
|
useDefaultShell = false;
|
||||||
uid = 1000;
|
uid = 1000;
|
||||||
isSystemUser = false;
|
isSystemUser = false;
|
||||||
};
|
};
|
||||||
|
users.groups.alexander = {};
|
||||||
|
|
||||||
# Activate gpg
|
# Activate gpg
|
||||||
programs.gnupg.agent.enable = true;
|
programs.gnupg.agent.enable = true;
|
||||||
@@ -18,19 +19,19 @@
|
|||||||
# No need to use users."${system.singleUser}" as we already know it
|
# No need to use users."${system.singleUser}" as we already know it
|
||||||
home-manager.users.alexander = {
|
home-manager.users.alexander = {
|
||||||
programs.home-manager.enable = true;
|
programs.home-manager.enable = true;
|
||||||
|
home.stateVersion = "22.11";
|
||||||
|
|
||||||
programs.ssh = {
|
programs.ssh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
extraConfig = ''
|
||||||
|
IdentitiesOnly yes
|
||||||
|
'';
|
||||||
|
includes = [
|
||||||
|
"config.d/*"
|
||||||
|
];
|
||||||
matchBlocks = let
|
matchBlocks = let
|
||||||
sshPort = (import ../../lib/ports.nix).sshPort;
|
sshPort = 1847;
|
||||||
in {
|
in {
|
||||||
ayame = {
|
|
||||||
port = sshPort;
|
|
||||||
hostname = "78.46.184.48";
|
|
||||||
user = "alexander";
|
|
||||||
identityFile = "~/.ssh/polynom.me_ayame";
|
|
||||||
identitiesOnly = true;
|
|
||||||
};
|
|
||||||
"git.polynom.me" = {
|
"git.polynom.me" = {
|
||||||
port = 2222;
|
port = 2222;
|
||||||
user = "gitea";
|
user = "gitea";
|
||||||
@@ -42,11 +43,15 @@
|
|||||||
hostname = "github.com";
|
hostname = "github.com";
|
||||||
identityFile = "~/.ssh/github_polynomdivision";
|
identityFile = "~/.ssh/github_polynomdivision";
|
||||||
};
|
};
|
||||||
"minecraft" = {
|
"codeberg.org" = {
|
||||||
port = sshPort;
|
user = "git";
|
||||||
user = "alexander";
|
hostname = "codeberg.org";
|
||||||
hostname = "49.12.33.24";
|
identityFile = "~/.ssh/codeberg_papatutuwawa";
|
||||||
identityFile = "~/.ssh/polynom.me";
|
};
|
||||||
|
"collaborating.tuhh.de" = {
|
||||||
|
user = "git";
|
||||||
|
hostname = "collaborating.tuhh.de";
|
||||||
|
identityFile = "~/.ssh/gitlab_tuhh";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -54,7 +59,7 @@
|
|||||||
# TODO: Maybe move this somewhere else
|
# TODO: Maybe move this somewhere else
|
||||||
services.gpg-agent = {
|
services.gpg-agent = {
|
||||||
enable = true;
|
enable = true;
|
||||||
pinentryFlavor = "gnome3";
|
pinentryFlavor = "qt";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
environment.systemPackages = with pkgs; [ virglrenderer unstable.qemu ];
|
environment.systemPackages = with pkgs; [ virglrenderer unstable.qemu virt-manager ];
|
||||||
services.spice-vdagentd.enable = true;
|
services.spice-vdagentd.enable = true;
|
||||||
|
|
||||||
virtualisation.libvirtd = {
|
virtualisation.libvirtd = {
|
||||||
@@ -23,11 +23,9 @@ in {
|
|||||||
"/dev/random", "/dev/urandom",
|
"/dev/random", "/dev/urandom",
|
||||||
"/dev/ptmx", "/dev/kvm", "/dev/kqemu",
|
"/dev/ptmx", "/dev/kvm", "/dev/kqemu",
|
||||||
"/dev/rtc","/dev/hpet",
|
"/dev/rtc","/dev/hpet",
|
||||||
"/dev/input/by-id/usb-Logitech_USB_Receiver-if02-event-mouse",
|
|
||||||
"/dev/input/by-id/usb-Razer_Razer_Tartarus_V2-event-kbd",
|
|
||||||
"/dev/input/by-id/virtual-event-EvdevProxyMouse",
|
"/dev/input/by-id/virtual-event-EvdevProxyMouse",
|
||||||
"/dev/input/by-id/virtual-event-EvdevProxyTartarus",
|
"/dev/input/by-id/virtual-event-EvdevProxyKeyboard",
|
||||||
"/dev/input/by-id/usb-Razer_Razer_BlackWidow_Ultimate-event-kbd"
|
"/dev/input/by-id/usb-Logitech_USB_Receiver-if02-event-mouse"
|
||||||
]
|
]
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ in {
|
|||||||
USBIDClass = {vendor=0x046d, model=0xc07c, class="Mouse"}
|
USBIDClass = {vendor=0x046d, model=0xc07c, class="Mouse"}
|
||||||
[[device]]
|
[[device]]
|
||||||
[device.Simple]
|
[device.Simple]
|
||||||
name = "EvdevProxyTartarus"
|
name = "EvdevProxyKeyboard"
|
||||||
vendor = 0x1337
|
vendor = 0x1337
|
||||||
model = 0x1338
|
model = 0x1338
|
||||||
class = "Keyboard"
|
class = "Keyboard"
|
||||||
@@ -32,46 +32,43 @@ in {
|
|||||||
# the mapped version of the Tartarus evdev node.
|
# the mapped version of the Tartarus evdev node.
|
||||||
# (Useful for qemu)
|
# (Useful for qemu)
|
||||||
[[device.Simple.selector]]
|
[[device.Simple.selector]]
|
||||||
EVDEVClass = {phys="\"key-mapper\""}
|
EVDEVClass = {phys="\"input-remapper\""}
|
||||||
|
[[device.Simple.selector]]
|
||||||
|
USBIDClass = {vendor=0x1532, model=0x011a, class="Keyboard"}
|
||||||
'';
|
'';
|
||||||
"libvirt/hooks/qemu".source = let
|
# "libvirt/hooks/qemu".source = let
|
||||||
vfio-isolate-state = "/tmp/vfio-isolate-state";
|
# vfio-isolate-state = "/tmp/vfio-isolate-state";
|
||||||
in pkgs.writeScript "qemu" ''
|
# in pkgs.writeScript "qemu" ''
|
||||||
#!${pkgs.stdenv.shell}
|
# #!${pkgs.stdenv.shell}
|
||||||
guest=$1
|
# guest=$1
|
||||||
action=$2
|
# action=$2
|
||||||
phase=$3
|
# phase=$3
|
||||||
extra=$4
|
# extra=$4
|
||||||
|
|
||||||
if [[ "$guest" = "win10" ]]; then
|
# echo "called with $1 $2 $3 $4" > /dev/stderr
|
||||||
case "$action" in
|
# if [[ "$guest" = "win10-gaming" ]]; then
|
||||||
prepare)
|
# case "$action" in
|
||||||
# Only do this while in preparation
|
# prepare)
|
||||||
[[ ! "$phase" = "prepare" ]] && exit 0
|
# # Only do this while in preparation
|
||||||
|
# [[ ! "$phase" = "prepare" ]] && exit 0
|
||||||
|
|
||||||
sudo -u alexander systemctl --user start evdev-proxy.service
|
# GUEST_CORES="C1-3,5-7"
|
||||||
sudo -u alexander systemctl --user start scream.service
|
# ${pkgs.vfio-isolate}/bin/vfio-isolate \
|
||||||
sleep 2
|
# -u ${vfio-isolate-state} \
|
||||||
|
# cpu-governor performance "$GUEST_CORES" \
|
||||||
${pkgs.vfio-isolate}/bin/vfio-isolate \
|
# cpuset-create --cpus "$GUEST_CORES" /guest.slice \
|
||||||
-u ${vfio-isolate-state} \
|
# cpuset-create --cpus C0,4 /host.slice \
|
||||||
cpu-governor performance "$GUEST_CORES" \
|
# move-tasks / /host.slice \
|
||||||
cpuset-create --cpus "$GUEST_CORES" /guest.slice \
|
# irq-affinity mask "$GUEST_CORES"
|
||||||
cpuset-create --cpus C0,4 /host.slice \
|
# ;;
|
||||||
move-tasks / /host.slice \
|
# stopped)
|
||||||
irq-affinity mask "$GUEST_CORES"
|
# # Only run when the VM is fully stopped
|
||||||
;;
|
# [[ ! "$phase" = "end" ]] && exit 0
|
||||||
stopped)
|
# ${pkgs.vfio-isolate}/bin/vfio-isolate \
|
||||||
# Only run when the VM is fully stopped
|
# restore ${vfio-isolate-state}
|
||||||
[[ ! "$phase" = "end" ]] && exit 0
|
# esac
|
||||||
sudo -u alexander systemctl --user stop evdev-proxy.service
|
# fi
|
||||||
sudo -u alexander systemctl --user stop scream.service
|
# '';
|
||||||
|
|
||||||
${pkgs.vfio-isolate}/bin/vfio-isolate \
|
|
||||||
restore ${vfio-isolate-state}
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# NOTE: Workaround for libvirt's SYSCONFDIR being set to /var/lib
|
# NOTE: Workaround for libvirt's SYSCONFDIR being set to /var/lib
|
||||||
@@ -80,19 +77,22 @@ in {
|
|||||||
ln -Tfs /etc/libvirt/hooks /var/lib/libvirt/hooks
|
ln -Tfs /etc/libvirt/hooks /var/lib/libvirt/hooks
|
||||||
'';
|
'';
|
||||||
|
|
||||||
#services.udev.packages = with pkgs; [ evdev-proxy ];
|
services.udev.packages = with pkgs; [ evdev-proxy ];
|
||||||
|
|
||||||
systemd = {
|
systemd = {
|
||||||
services.libvirtd.path = with pkgs; [ vfio-isolate systemd bash ];
|
services = {
|
||||||
#user.services.evdev-proxy = {
|
libvirtd.path = with pkgs; [ /*vfio-isolate*/ systemd bash ];
|
||||||
# description = "Creates virtual device to proxy evdev devices events";
|
};
|
||||||
# #wantedBy = [ "default.target" ];
|
|
||||||
# serviceConfig = {
|
user.services.evdev-proxy = {
|
||||||
# Type = "simple";
|
description = "Creates virtual device to proxy evdev devices events";
|
||||||
# ExecStart = "${pkgs.evdev-proxy}/bin/evdev-proxy";
|
wantedBy = [ "default.target" ];
|
||||||
# Restart = "always";
|
serviceConfig = {
|
||||||
# };
|
Type = "simple";
|
||||||
#};
|
ExecStart = "${pkgs.evdev-proxy}/bin/evdev-proxy";
|
||||||
|
Restart = "always";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
29
overlays/bluray.nix
Normal file
29
overlays/bluray.nix
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
final: prev:
|
||||||
|
|
||||||
|
let
|
||||||
|
overrideWithAACS = pkgName: prev."${pkgName}".overrideAttrs (old: {
|
||||||
|
buildInputs = with prev; old.buildInputs ++ [ libaacs ];
|
||||||
|
});
|
||||||
|
in {
|
||||||
|
libbluray = prev.libbluray.override {
|
||||||
|
withAACS = true;
|
||||||
|
withBDplus = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
mpvUnwrapped = prev.mpvUnwrapped.overrideAttrs (old: {
|
||||||
|
buildInputs = with prev; old.buildInputs ++ [ libaacs ];
|
||||||
|
});
|
||||||
|
|
||||||
|
vlc = prev.vlc.overrideAttrs (old: {
|
||||||
|
buildInputs = with prev; old.buildInputs ++ [ libaacs ];
|
||||||
|
});
|
||||||
|
|
||||||
|
handbrake = prev.handbrake.overrideAttrs (old: {
|
||||||
|
buildInputs = with prev; old.buildInputs ++ [ libaacs ];
|
||||||
|
});
|
||||||
|
|
||||||
|
/*
|
||||||
|
mpvUnwrapped = overrideWithAACS "mpvUnwrapped";
|
||||||
|
handbrake = overrideWithAACS "handbrake";
|
||||||
|
*/
|
||||||
|
}
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
{ pkgs }:
|
{ pkgs, inputs }:
|
||||||
|
|
||||||
{
|
{
|
||||||
simple = import ./simple.nix;
|
simple = import ./simple.nix;
|
||||||
surface = import ./surface.nix pkgs;
|
#surface = import ./surface.nix pkgs;
|
||||||
|
sandbox = import ./sandbox.nix;
|
||||||
}
|
}
|
||||||
|
|||||||
46
overlays/phosh.nix
Normal file
46
overlays/phosh.nix
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
final: prev:
|
||||||
|
|
||||||
|
rec {
|
||||||
|
phoc = prev.phoc.overrideAttrs (old: rec {
|
||||||
|
version = "0.20.0";
|
||||||
|
|
||||||
|
src = prev.fetchFromGitLab {
|
||||||
|
domain = "gitlab.gnome.org";
|
||||||
|
group = "World";
|
||||||
|
owner = "Phosh";
|
||||||
|
repo = "phoc";
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "1mm47n5x7kjgrpxbvb0d0yvpxgzyg90mmmafb6fxhsqklf2dhryy";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = (map
|
||||||
|
(x: if (prev.lib.getName x) == "wlroots"
|
||||||
|
then prev.wlroots_0_15
|
||||||
|
else x
|
||||||
|
) old.buildInputs);
|
||||||
|
});
|
||||||
|
|
||||||
|
phosh = prev.phosh.overrideAttrs (old: rec {
|
||||||
|
version = "0.20.0_beta2";
|
||||||
|
src = prev.fetchFromGitLab {
|
||||||
|
domain = "gitlab.gnome.org";
|
||||||
|
group = "World";
|
||||||
|
owner = "Phosh";
|
||||||
|
repo = "phosh";
|
||||||
|
rev = "v${version}";
|
||||||
|
fetchSubmodules = true; # including gvc and libcall-ui which are designated as subprojects
|
||||||
|
sha256 = "sha256-UzOv6ztxYYE4CIzCYKSRfpZzE7oSEKenVX+umkEmFRw=";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = (map
|
||||||
|
(x: if (prev.lib.getName x) == "phoc"
|
||||||
|
then phoc
|
||||||
|
else x
|
||||||
|
) old.buildInputs);
|
||||||
|
|
||||||
|
postFixup = ''
|
||||||
|
mkdir -p $out/share/wayland-sessions
|
||||||
|
ln -s $out/share/applications/sm.puri.Phosh.desktop $out/share/wayland-sessions/
|
||||||
|
'';
|
||||||
|
});
|
||||||
|
}
|
||||||
140
overlays/sandbox.nix
Normal file
140
overlays/sandbox.nix
Normal file
@@ -0,0 +1,140 @@
|
|||||||
|
final: prev:
|
||||||
|
|
||||||
|
let
|
||||||
|
wrapInSandbox = prev.callPackage ../lib/sandbox.nix {};
|
||||||
|
in {
|
||||||
|
discord-app-wrapped = wrapInSandbox {
|
||||||
|
name = "discord-app-wrapped";
|
||||||
|
launchScriptName = "discord-app";
|
||||||
|
binary = "${prev.discord-app}/bin/discord-app";
|
||||||
|
mountInHome = [ ".local/share/discord-app" ];
|
||||||
|
additionalBlacklist = [ "/mnt" ];
|
||||||
|
chdirTo = "/home/$USER";
|
||||||
|
|
||||||
|
preDesktopFilePhase = ''
|
||||||
|
mkdir -p $out/share/icons
|
||||||
|
cp -L ${prev.discord}/share/pixmaps/discord.png $out/share/icons/discord.png
|
||||||
|
'';
|
||||||
|
desktopFileAttributes = {
|
||||||
|
name = "discord-app-wrapped";
|
||||||
|
#exec = "discord";
|
||||||
|
icon = "discord";
|
||||||
|
desktopName = "Discord-App (wrapped)";
|
||||||
|
genericName = "Instant Messenger";
|
||||||
|
#categories = [ "Network" "InstantMessaging" ];
|
||||||
|
};
|
||||||
|
enableDesktopFile = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
prismlauncher-wrapped = wrapInSandbox {
|
||||||
|
name = "prismlauncher";
|
||||||
|
binary = let
|
||||||
|
script = prev.writeShellScript "prismlauncher-zink.sh" ''
|
||||||
|
export MESA_LOADER_DRIVER_OVERRIDE=zink
|
||||||
|
${prev.prismlauncher}/bin/prismlauncher
|
||||||
|
'';
|
||||||
|
in "${prev.prismlauncher}/bin/prismlauncher";
|
||||||
|
launchScriptName = "prismlauncher-wrapped";
|
||||||
|
mountInHome = [".local/share/PrismLauncher"];
|
||||||
|
additionalMounts = [
|
||||||
|
"/etc/profile"
|
||||||
|
];
|
||||||
|
additionalBlacklist = [ "/mnt" ];
|
||||||
|
chdirTo = "/home/$USER";
|
||||||
|
};
|
||||||
|
|
||||||
|
steam-wrapped = wrapInSandbox {
|
||||||
|
name = "steam-wrapped";
|
||||||
|
binary = "${prev.steam}/bin/steam";
|
||||||
|
launchScriptName = "steam";
|
||||||
|
mountInHome = [
|
||||||
|
".steam"
|
||||||
|
".local/share/Steam"
|
||||||
|
"Downloads/Skyrim Mods"
|
||||||
|
];
|
||||||
|
additionalBlacklist = [ "/mnt" ];
|
||||||
|
additionalMounts = [ "/mnt/Storage/Games/SteamLibrary" ];
|
||||||
|
chdirTo = "/home/$USER";
|
||||||
|
|
||||||
|
preDesktopFilePhase = ''
|
||||||
|
cp -Lr ${prev.steam}/share/icons $out/share/icons
|
||||||
|
'';
|
||||||
|
desktopFileAttributes = {
|
||||||
|
name = "steam-wrapped";
|
||||||
|
icon = "steam";
|
||||||
|
desktopName = "Steam (wrapped)";
|
||||||
|
};
|
||||||
|
enableDesktopFile = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
spotify-wrapped = wrapInSandbox {
|
||||||
|
name = "spotify-wrapped";
|
||||||
|
launchScriptName = "spotify";
|
||||||
|
binary = "${prev.spotify}/bin/spotify";
|
||||||
|
additionalBlacklist = [ "/mnt" ];
|
||||||
|
mountInHome = [ ".config/spotify" ];
|
||||||
|
chdirTo = "/home/$USER";
|
||||||
|
|
||||||
|
preDesktopFilePhase = ''
|
||||||
|
cp -Lr ${prev.spotify}/share/icons $out/share/icons
|
||||||
|
'';
|
||||||
|
desktopFileAttributes = {
|
||||||
|
name = "spotify-wrapped";
|
||||||
|
icon = "spotify-client";
|
||||||
|
desktopName = "Spotify (wrapped)";
|
||||||
|
};
|
||||||
|
enableDesktopFile = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
lutris-free-wrapped = wrapInSandbox {
|
||||||
|
name = "lutris-free-wrapped";
|
||||||
|
launchScriptName = "lutris";
|
||||||
|
binary = "${prev.lutris-free}/bin/lutris";
|
||||||
|
additionalBlacklist = [ "/mnt" ];
|
||||||
|
additionalMounts = [
|
||||||
|
"/mnt/Storage/Games/LeagueOfLegends"
|
||||||
|
"/mnt/Storage/Games/Origin"
|
||||||
|
"/mnt/Storage/Games/SteamLibrary"
|
||||||
|
"/mnt/Storage/Games/Uplay"
|
||||||
|
"/mnt/tmp"
|
||||||
|
];
|
||||||
|
mountInHome = [ ".local/share/lutris" ".config/lutris" "Games" ];
|
||||||
|
chdirTo = "/home/$USER";
|
||||||
|
|
||||||
|
preDesktopFilePhase = ''
|
||||||
|
mkdir -p $out/share/
|
||||||
|
cp -Lr ${prev.lutris-free}/share/icons $out/share/icons/
|
||||||
|
'';
|
||||||
|
desktopFileAttributes = {
|
||||||
|
name = "lutris-wrapped";
|
||||||
|
icon = "lutris";
|
||||||
|
desktopName = "Lutris (wrapped)";
|
||||||
|
};
|
||||||
|
enableDesktopFile = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
discord-wrapped = let
|
||||||
|
discordPkg = prev.discord;
|
||||||
|
in wrapInSandbox {
|
||||||
|
name = "discord-wrapped";
|
||||||
|
launchScriptName = "discord";
|
||||||
|
binary = "${discordPkg}/bin/discord";
|
||||||
|
mountInHome = [ ".config/discord" ".config/BetterDiscord" ];
|
||||||
|
additionalBlacklist = [ "/mnt" ];
|
||||||
|
chdirTo = "/home/$USER";
|
||||||
|
|
||||||
|
preDesktopFilePhase = ''
|
||||||
|
mkdir -p $out/share/icons
|
||||||
|
cp -L ${discordPkg}/share/pixmaps/discord.png $out/share/icons/discord.png
|
||||||
|
'';
|
||||||
|
desktopFileAttributes = {
|
||||||
|
name = "discord-wrapped";
|
||||||
|
#exec = "discord";
|
||||||
|
icon = "discord";
|
||||||
|
desktopName = "Discord (wrapped)";
|
||||||
|
genericName = "Instant Messenger";
|
||||||
|
#categories = [ "Network" "InstantMessaging" ];
|
||||||
|
};
|
||||||
|
enableDesktopFile = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,24 +1,12 @@
|
|||||||
final: prev:
|
final: prev: {
|
||||||
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
mpv = prev.wrapMpv mpv {
|
|
||||||
# Prevent the need for prefixing mpv with DRI_PRIME=1
|
|
||||||
extraMakeWrapperArgs = [
|
|
||||||
"--set" "DRI_PRIME" "1"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
*/
|
|
||||||
|
|
||||||
gajim = prev.gajim.overrideAttrs (old: {
|
|
||||||
# Enable notification sounds
|
|
||||||
propagatedBuildInputs = old.propagatedBuildInputs ++ [ prev.gsound ];
|
|
||||||
});
|
|
||||||
|
|
||||||
animedl = prev.animedl.overrideAttrs (old: {
|
animedl = prev.animedl.overrideAttrs (old: {
|
||||||
extraPkgs = pkgs: with final; [ mpv ];
|
extraPkgs = pkgs: with final; [ mpv ];
|
||||||
});
|
});
|
||||||
|
|
||||||
|
lutris-free = prev.lutris-free.override {
|
||||||
|
extraPkgs = ps: with ps; [ openssl ];
|
||||||
|
};
|
||||||
|
|
||||||
retroarch = prev.retroarch.override (old: {
|
retroarch = prev.retroarch.override (old: {
|
||||||
cores = with prev.libretro; [
|
cores = with prev.libretro; [
|
||||||
desmume
|
desmume
|
||||||
@@ -50,21 +38,42 @@ final: prev:
|
|||||||
cargoPatches = [ ../patches/myxer/0000-1.2.1-set-gio-version.patch ];
|
cargoPatches = [ ../patches/myxer/0000-1.2.1-set-gio-version.patch ];
|
||||||
});
|
});
|
||||||
|
|
||||||
phosh = prev.phosh.overrideAttrs (old: {
|
xournalpp-git = prev.xournalpp.overrideAttrs (old: {
|
||||||
src = prev.fetchFromGitLab {
|
version = "1.1.1";
|
||||||
domain = "gitlab.gnome.org";
|
src = prev.fetchFromGitHub {
|
||||||
group = "World";
|
owner = "bhennion";
|
||||||
owner = "Phosh";
|
repo = "xournalpp";
|
||||||
repo = "phosh";
|
rev = "5d1545b0c4303e45b4ddf4ef8a1565eba822a9af";
|
||||||
rev = "v0.14.1";
|
sha256 = "1d17lvydlny9pvaxa9xy53wxs7i6d563lp5r9g3r1xpgnb7zli8v";
|
||||||
fetchSubmodules = true;
|
|
||||||
sha256 = "sha256-FILSNVBYpWSPXeDb1Vc4jZ7zJMg0Gj6EY5yoc81gUr0=";
|
|
||||||
};
|
};
|
||||||
patches = [
|
});
|
||||||
(builtins.fetchurl {
|
|
||||||
url = "https://gitlab.gnome.org/World/Phosh/phosh/-/merge_requests/923.patch";
|
discord = prev.discord.overrideAttrs (old: rec {
|
||||||
sha256 = "0fad4x8hzpaf7aq6acfz90njjjrvyc9ipndxmh4kqnm03n7300x0";
|
version = "0.0.18";
|
||||||
})
|
src = prev.fetchurl {
|
||||||
|
url = "https://dl.discordapp.net/apps/linux/${version}/discord-${version}.tar.gz";
|
||||||
|
sha256 = "sha256-BBc4n6Q3xuBE13JS3gz/6EcwdOWW57NLp2saOlwOgMI=";
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
tor-browser-bundle-bin = prev.tor-browser-bundle-bin.override {
|
||||||
|
useHardenedMalloc = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
discord-app = prev.discord-app.override { chromium = prev.ungoogled-chromium; };
|
||||||
|
|
||||||
|
# Work around https://github.com/NixOS/nixpkgs/issues/216294
|
||||||
|
# pkgsi686Linux = prev.pkgsi686Linux.extend (pfinal: pprev: {
|
||||||
|
# directx-shader-compiler = pprev.directx-shader-compiler.override {stdenv = pfinal.gcc11Stdenv;};
|
||||||
|
# });
|
||||||
|
|
||||||
|
gajim = prev.gajim.overrideAttrs (old: {
|
||||||
|
propagatedBuildInputs = old.propagatedBuildInputs ++ [
|
||||||
|
# Make the tray icon work
|
||||||
|
prev.libappindicator-gtk3
|
||||||
|
|
||||||
|
# Play sounds
|
||||||
|
prev.gsound
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,91 +0,0 @@
|
|||||||
{ fetchFromGitLab
|
|
||||||
, lib
|
|
||||||
, python3Packages
|
|
||||||
, gobject-introspection
|
|
||||||
, gtk3
|
|
||||||
, pango
|
|
||||||
, wrapGAppsHook
|
|
||||||
, xvfb-run
|
|
||||||
, chromecastSupport ? false
|
|
||||||
, serverSupport ? false
|
|
||||||
, keyringSupport ? true
|
|
||||||
, notifySupport ? true, libnotify
|
|
||||||
, networkSupport ? true, networkmanager
|
|
||||||
}:
|
|
||||||
|
|
||||||
python3Packages.buildPythonApplication rec {
|
|
||||||
pname = "sublime-music";
|
|
||||||
version = "0.11.16";
|
|
||||||
format = "pyproject";
|
|
||||||
|
|
||||||
src = fetchFromGitLab {
|
|
||||||
owner = "sublime-music";
|
|
||||||
repo = pname;
|
|
||||||
rev = "v${version}";
|
|
||||||
sha256 = "0n06x7l4i9nqbc74yhrjgg10zffdb75jz43mbxd03hr5057fdglz";
|
|
||||||
};
|
|
||||||
|
|
||||||
nativeBuildInputs = [
|
|
||||||
gobject-introspection
|
|
||||||
python3Packages.poetry-core
|
|
||||||
wrapGAppsHook
|
|
||||||
];
|
|
||||||
|
|
||||||
buildInputs = [
|
|
||||||
gtk3
|
|
||||||
pango
|
|
||||||
]
|
|
||||||
++ lib.optional notifySupport libnotify
|
|
||||||
++ lib.optional networkSupport networkmanager
|
|
||||||
;
|
|
||||||
|
|
||||||
propagatedBuildInputs = with python3Packages; [
|
|
||||||
bleach
|
|
||||||
dataclasses-json
|
|
||||||
deepdiff
|
|
||||||
fuzzywuzzy
|
|
||||||
mpv
|
|
||||||
peewee
|
|
||||||
pygobject3
|
|
||||||
python-Levenshtein
|
|
||||||
python-dateutil
|
|
||||||
requests
|
|
||||||
semver
|
|
||||||
]
|
|
||||||
++ lib.optional chromecastSupport PyChromecast
|
|
||||||
++ lib.optional keyringSupport keyring
|
|
||||||
++ lib.optional serverSupport bottle
|
|
||||||
;
|
|
||||||
|
|
||||||
# hook for gobject-introspection doesn't like strictDeps
|
|
||||||
# https://github.com/NixOS/nixpkgs/issues/56943
|
|
||||||
strictDeps = false;
|
|
||||||
|
|
||||||
# Use the test suite provided by the upstream project.
|
|
||||||
doCheck = false;
|
|
||||||
checkInputs = with python3Packages; [
|
|
||||||
pytest
|
|
||||||
pytest-cov
|
|
||||||
];
|
|
||||||
checkPhase = "${xvfb-run}/bin/xvfb-run pytest";
|
|
||||||
|
|
||||||
# Also run the python import check for sanity
|
|
||||||
#pythonImportsCheck = [ "sublime_music" ];
|
|
||||||
|
|
||||||
postInstall = ''
|
|
||||||
install -Dm444 sublime-music.desktop -t $out/share/applications
|
|
||||||
install -Dm444 sublime-music.metainfo.xml -t $out/share/metainfo
|
|
||||||
|
|
||||||
for size in 16 22 32 48 64 72 96 128 192 512 1024; do
|
|
||||||
install -Dm444 logo/rendered/"$size".png \
|
|
||||||
$out/share/icons/hicolor/"$size"x"$size"/apps/sublime-music.png
|
|
||||||
done
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = with lib; {
|
|
||||||
description = "GTK3 Subsonic/Airsonic client";
|
|
||||||
homepage = "https://sublimemusic.app/";
|
|
||||||
license = licenses.gpl3Plus;
|
|
||||||
maintainers = with maintainers; [ albakham sumnerevans ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
31
packages/applications/desktop/qtgreet/default.nix
Normal file
31
packages/applications/desktop/qtgreet/default.nix
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
stdenv
|
||||||
|
, lib, fetchFromGitLab
|
||||||
|
, meson, ninja, pkg-config
|
||||||
|
, qtbase, wrapQtAppsHook
|
||||||
|
, wlroots_0_16, wayland, pixman
|
||||||
|
, dfl-applications, dfl-utils, dfl-ipc, wayqt
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
pname = "qtgreet";
|
||||||
|
version = "20230117";
|
||||||
|
|
||||||
|
src = fetchFromGitLab {
|
||||||
|
owner = "marcusbritanicus";
|
||||||
|
repo = "QtGreet";
|
||||||
|
rev = "666603c38bbc408fd56126f3c8508009edf8dc44";
|
||||||
|
sha256 = "0gigmlg4a0ddzhfnkhbrh67m23g6vhzayfv4gbvqjmkky91qnz93";
|
||||||
|
};
|
||||||
|
|
||||||
|
mesonFlags = [
|
||||||
|
"-Dnodynpath=true"
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
qtbase meson ninja pkg-config
|
||||||
|
wlroots_0_16 wayland pixman
|
||||||
|
wayqt dfl-applications dfl-ipc dfl-utils
|
||||||
|
];
|
||||||
|
nativeBuildInputs = [ wrapQtAppsHook ];
|
||||||
|
}
|
||||||
30
packages/applications/desktop/rgb_keyboard/default.nix
Normal file
30
packages/applications/desktop/rgb_keyboard/default.nix
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
stdenv
|
||||||
|
, fetchFromGitHub
|
||||||
|
, gcc, gnumake
|
||||||
|
, libusb
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "rgb_keyboard";
|
||||||
|
version = "20230430";
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "PapaTutuWawa";
|
||||||
|
repo = "rgb_keyboard";
|
||||||
|
rev = "5bbdafea77ef3c3eb47081494f3b58abcd5c4e27";
|
||||||
|
sha256 = "0m5hvlhqncy1qn5v6gpsz9qd2p4cvcjjnma08vb4b2ybq4kfv7qw";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
libusb
|
||||||
|
];
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
${gnumake}/bin/make build
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin/
|
||||||
|
cp rgb_keyboard $out/bin/
|
||||||
|
'';
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
{
|
||||||
|
stdenv
|
||||||
|
, lib, fetchFromGitLab
|
||||||
|
, cmake, extra-cmake-modules, pkg-config
|
||||||
|
, qtbase, qtx11extras, wrapQtAppsHook
|
||||||
|
, kpipewire, plasma-framework
|
||||||
|
, xorg
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "xwaylandvideobridge";
|
||||||
|
version = "5.27.3";
|
||||||
|
|
||||||
|
src = fetchFromGitLab {
|
||||||
|
owner = "davidedmundson";
|
||||||
|
repo = "xwaylandvideobridge";
|
||||||
|
rev = "b9e0c53570f55f4e8289f72ba78f3945e27e1a1a";
|
||||||
|
domain = "invent.kde.org";
|
||||||
|
sha256 = "1ypg2c26r5fy9lr8shif5vqcp06yf7mqqj2ps5g00s7s3ykryxdn";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ qtbase qtx11extras plasma-framework xorg.xcbproto kpipewire cmake pkg-config ];
|
||||||
|
nativeBuildInputs = [ wrapQtAppsHook extra-cmake-modules ];
|
||||||
|
}
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
{
|
||||||
|
stdenv
|
||||||
|
, makeDesktopItem, writeScript, fetchurl
|
||||||
|
, chromium
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
script = writeScript "run-discord-app.sh" ''
|
||||||
|
${chromium}/bin/chromium \
|
||||||
|
--class="Discord-App" \
|
||||||
|
--app="https://discord.com/channels/@me" \
|
||||||
|
--user-data-dir=$HOME/.local/share/discord-app
|
||||||
|
'';
|
||||||
|
desktopItem = makeDesktopItem {
|
||||||
|
name = "discord-app";
|
||||||
|
desktopName = "Discord App";
|
||||||
|
genericName = "All-in-one cross-platform voice and text chat for gamers";
|
||||||
|
exec = "${script}";
|
||||||
|
icon = "discord";
|
||||||
|
type = "Application";
|
||||||
|
categories = [ "Network" "InstantMessaging" ];
|
||||||
|
startupWMClass = "Discord-App";
|
||||||
|
};
|
||||||
|
iconSvg = fetchurl {
|
||||||
|
url = "https://discord.com/assets/3437c10597c1526c3dbd98c737c2bcae.svg";
|
||||||
|
sha256 = "0w18j5pvqnaimnsx9flqm8n5yb7lnkc5jsvf1c9sk5a3jplq2j61";
|
||||||
|
};
|
||||||
|
in stdenv.mkDerivation {
|
||||||
|
pname = "discord-app";
|
||||||
|
version = "1.0.0";
|
||||||
|
|
||||||
|
buildInputs = [ chromium ];
|
||||||
|
|
||||||
|
phases = "installPhase";
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
# Install the icon
|
||||||
|
mkdir -p $out/share/pixmaps
|
||||||
|
cp ${iconSvg} $out/share/pixmaps/discord.svg
|
||||||
|
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp ${script} $out/bin/discord-app
|
||||||
|
cp -r ${desktopItem}/share/* $out/share
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
|
||||||
@@ -1,16 +1,17 @@
|
|||||||
{
|
{
|
||||||
lib, stdenv, pkgs
|
lib, stdenv, pkgs
|
||||||
, extraStartupArgs ? ""
|
, extraStartupArgs ? ""
|
||||||
|
, upstreamElectron ? pkgs.electron
|
||||||
}:
|
}:
|
||||||
|
|
||||||
pkgs.unstable.discord.overrideAttrs (old: let
|
pkgs.discord.overrideAttrs (old: let
|
||||||
asar = pkgs.nodePackages.asar;
|
asar = pkgs.nodePackages.asar;
|
||||||
gtk3 = pkgs.gtk3;
|
gtk3 = pkgs.gtk3;
|
||||||
binaryName = "Discord";
|
binaryName = "Discord";
|
||||||
system-electron = "$out/opt/${binaryName}/system-electron.sh";
|
system-electron = "$out/opt/${binaryName}/system-electron.sh";
|
||||||
in rec {
|
in rec {
|
||||||
version = "0.0.16";
|
version = "0.0.17";
|
||||||
nativeBuildInputs = with pkgs.unstable; old.nativeBuildInputs ++ [ electron asar ];
|
nativeBuildInputs = with pkgs.unstable; old.nativeBuildInputs ++ [ upstreamElectron asar ];
|
||||||
buildPhase = ''
|
buildPhase = ''
|
||||||
${asar}/bin/asar e resources/app.asar resources/app
|
${asar}/bin/asar e resources/app.asar resources/app
|
||||||
rm resources/app.asar
|
rm resources/app.asar
|
||||||
|
|||||||
@@ -1,82 +0,0 @@
|
|||||||
{ lib, fetchurl, gettext, wrapGAppsHook
|
|
||||||
|
|
||||||
# Native dependencies
|
|
||||||
, python3, gtk3, gobject-introspection, gnome
|
|
||||||
, glib-networking, gsound, nbxmpp, gtksourceview4
|
|
||||||
|
|
||||||
# Test dependencies
|
|
||||||
, xvfb-run, dbus
|
|
||||||
|
|
||||||
# Optional dependencies
|
|
||||||
, enableE2E ? true
|
|
||||||
, enableSecrets ? true, libsecret
|
|
||||||
, enableRST ? true, docutils
|
|
||||||
, enableSpelling ? true, gspell
|
|
||||||
, enableUPnP ? true, gupnp-igd
|
|
||||||
, enableOmemoPluginDependencies ? true
|
|
||||||
, enableAppIndicator ? true, libappindicator-gtk3
|
|
||||||
, extraPythonPackages ? ps: []
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
commit = "b3449635ac737d7c87640d0cdae93f1423571b97";
|
|
||||||
in python3.pkgs.buildPythonApplication rec {
|
|
||||||
pname = "gajim";
|
|
||||||
version = "1.4.0";
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url = "https://dev.gajim.org/gajim/gajim/-/archive/${commit}/gajim-${commit}.tar.gz";
|
|
||||||
sha256 = "sha256-9FTuZKhd0lC1r3nEQlqzBBQ5gyp3H/rpwUpN6+eDAL8=";
|
|
||||||
};
|
|
||||||
|
|
||||||
buildInputs = [
|
|
||||||
gobject-introspection gtk3 gnome.adwaita-icon-theme
|
|
||||||
glib-networking
|
|
||||||
] ++ lib.optional enableSecrets libsecret
|
|
||||||
++ lib.optional enableSpelling gspell
|
|
||||||
++ lib.optional enableUPnP gupnp-igd
|
|
||||||
++ lib.optional enableAppIndicator libappindicator-gtk3;
|
|
||||||
|
|
||||||
nativeBuildInputs = [
|
|
||||||
gettext wrapGAppsHook
|
|
||||||
];
|
|
||||||
|
|
||||||
dontWrapGApps = true;
|
|
||||||
|
|
||||||
preFixup = ''
|
|
||||||
makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
|
|
||||||
'';
|
|
||||||
|
|
||||||
propagatedBuildInputs = with python3.pkgs; [
|
|
||||||
nbxmpp pygobject3 dbus-python pillow css-parser precis-i18n keyring setuptools gsound
|
|
||||||
gst-python gtksourceview4
|
|
||||||
] ++ lib.optionals enableE2E [ pycrypto python-gnupg ]
|
|
||||||
++ lib.optional enableRST docutils
|
|
||||||
++ lib.optionals enableOmemoPluginDependencies [ python-axolotl qrcode ]
|
|
||||||
++ extraPythonPackages python3.pkgs;
|
|
||||||
|
|
||||||
checkInputs = [ xvfb-run dbus.daemon ];
|
|
||||||
|
|
||||||
checkPhase = ''
|
|
||||||
# https://dev.gajim.org/gajim/gajim/-/issues/10478
|
|
||||||
rm test/lib/gajim_mocks.py test/unit/test_gui_interface.py
|
|
||||||
|
|
||||||
xvfb-run dbus-run-session \
|
|
||||||
--config-file=${dbus.daemon}/share/dbus-1/session.conf \
|
|
||||||
${python3.interpreter} setup.py test
|
|
||||||
'';
|
|
||||||
doCheck = false;
|
|
||||||
|
|
||||||
# necessary for wrapGAppsHook
|
|
||||||
strictDeps = false;
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
homepage = "http://gajim.org/";
|
|
||||||
description = "Jabber client written in PyGTK";
|
|
||||||
license = lib.licenses.gpl3Plus;
|
|
||||||
maintainers = with lib.maintainers; [ raskin abbradar ];
|
|
||||||
downloadPage = "http://gajim.org/downloads.php";
|
|
||||||
updateWalker = true;
|
|
||||||
platforms = lib.platforms.linux;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
27
packages/applications/wayfire/firedecor/default.nix
Normal file
27
packages/applications/wayfire/firedecor/default.nix
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
lib, stdenv
|
||||||
|
, fetchFromGitHub
|
||||||
|
, wayfire, wf-config, librsvg, boost, wlroots, pango, wayland, libxkbcommon, systemd, libinput
|
||||||
|
, meson, pkg-config, cmake, ninja
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
pname = "firedecor";
|
||||||
|
version = "20220519";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "AhoyISki";
|
||||||
|
repo = "Firedecor";
|
||||||
|
rev = "0170c4df209f0226295a9e2aa3cae782d9861908";
|
||||||
|
sha256 = "0a8vc4l3az14l8piwzqgfqsdv16kakcvcznvw6q1dgb2sf97zdlv";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ meson pkg-config cmake ninja ];
|
||||||
|
|
||||||
|
buildInputs = [ wayfire librsvg boost wf-config wlroots pango wayland libxkbcommon systemd libinput ];
|
||||||
|
|
||||||
|
patchPhase = ''
|
||||||
|
sed -e "s|wayfire.get_variable(pkgconfig: 'plugindir')|'$out/usr/lib/wayfire'|" --in-place src/meson.build
|
||||||
|
sed -e "s|wayfire.get_variable(pkgconfig: 'metadatadir')|'$out/usr/lib/wayfire'|" --in-place metadata/meson.build
|
||||||
|
'';
|
||||||
|
}
|
||||||
@@ -6,19 +6,59 @@ let
|
|||||||
discord-system-electron = prev.callPackage ./applications/networking/instant-messengers/discord {
|
discord-system-electron = prev.callPackage ./applications/networking/instant-messengers/discord {
|
||||||
# Wayland
|
# Wayland
|
||||||
# NOTE: electron under Wayland has no window titlebars
|
# NOTE: electron under Wayland has no window titlebars
|
||||||
|
upstreamElectron = prev.electron_16;
|
||||||
extraStartupArgs = "--enable-features=UseOzonePlatform --ozone-platform=wayland";
|
extraStartupArgs = "--enable-features=UseOzonePlatform --ozone-platform=wayland";
|
||||||
#extraStartupArgs = "--enable-features=UseOzonePlatform --ozone-platform=wayland --enable-features=WebRTCPipeWireCapturer";
|
#extraStartupArgs = "--enable-features=UseOzonePlatform --ozone-platform=wayland --enable-features=WebRTCPipeWireCapturer";
|
||||||
};
|
};
|
||||||
wrapInSandbox = prev.callPackage ./sandbox.nix {};
|
wf-config_0_8 = prev.wf-config.overrideAttrs (old: {
|
||||||
|
version = "0.8-git";
|
||||||
|
src = prev.fetchFromGitHub {
|
||||||
|
owner = "wayfirewm";
|
||||||
|
repo = "wf-config";
|
||||||
|
rev = "e42a3870fb194842a505ad5a9671be1aebda0b0b";
|
||||||
|
sha256 = "0n6i3hizbqixxjh33950ya8avwqil5k94jbgff1pimcbh9ahpgrr";
|
||||||
|
};
|
||||||
|
});
|
||||||
|
wayfire-master = (prev.wayfireApplications-unwrapped.wayfire.overrideAttrs (old: {
|
||||||
|
version = "0.8.0-20220526";
|
||||||
|
src = prev.fetchgit {
|
||||||
|
url = "https://github.com/WayfireWM/wayfire.git";
|
||||||
|
rev = "5dbf0d0fd8ec46cf112f05fb63057f5b6d06b10d";
|
||||||
|
sha256 = "sha256-ZeaNSlDHoiLnRlHKk14meDbrizIz+nm3iYl90vvo2Ps=";
|
||||||
|
fetchSubmodules = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = (map
|
||||||
|
# Override wlroots with wlroots_0_15
|
||||||
|
(x: if (prev.lib.getName x) == "wlroots"
|
||||||
|
then prev.wlroots_0_15
|
||||||
|
else x
|
||||||
|
) old.buildInputs) ++ [ prev.pango prev.libevdev prev.nlohmann_json ];
|
||||||
|
})).override {
|
||||||
|
wf-config = wf-config_0_8;
|
||||||
|
};
|
||||||
|
|
||||||
|
dfl-ipc = prev.libsForQt5.callPackage development/cpp/dfl-ipc {};
|
||||||
|
wayqt = prev.libsForQt5.callPackage development/cpp/wayqt {};
|
||||||
|
dfl-utils = prev.libsForQt5.callPackage development/cpp/dfl-utils {};
|
||||||
|
dfl-applications = prev.libsForQt5.callPackage development/cpp/dfl-app {
|
||||||
|
inherit dfl-ipc;
|
||||||
|
};
|
||||||
|
|
||||||
|
kpipewire = prev.libsForQt5.kpipewire.overrideAttrs (old: {
|
||||||
|
src = prev.fetchFromGitLab {
|
||||||
|
owner = "plasma";
|
||||||
|
repo = "kpipewire";
|
||||||
|
rev = "ed99b94be40bd8c5b7b2a2f17d0622f11b2ab7fb";
|
||||||
|
domain = "invent.kde.org";
|
||||||
|
sha256 = "sha256-KhmhlH7gaFGrvPaB3voQ57CKutnw5DlLOz7gy/3Mzms=";
|
||||||
|
};
|
||||||
|
});
|
||||||
in {
|
in {
|
||||||
key-mapper = prev.callPackage ./tools/games/key-mapper {};
|
inherit discord-system-electron dfl-ipc dfl-applications dfl-utils wayqt;
|
||||||
|
|
||||||
vfio-isolate = prev.callPackage ./tools/virtualisation/vfio-isolate {};
|
vfio-isolate = prev.callPackage ./tools/virtualisation/vfio-isolate {};
|
||||||
mopidy-funkwhale = prev.callPackage ./applications/audio/mopidy/funkwhale.nix {};
|
mopidy-funkwhale = prev.callPackage ./applications/audio/mopidy/funkwhale.nix {};
|
||||||
# Not as clean as I hoped, but it works
|
|
||||||
gnomeExtensions = prev.gnomeExtensions // {
|
|
||||||
notification-timeout = prev.callPackage ./desktop/gnome/extensions/notification-timeout {};
|
|
||||||
windowisready-remover = prev.callPackage ./desktop/gnome/extensions/windowisready-remover {};
|
|
||||||
};
|
|
||||||
python3Packages = prev.python3Packages // {
|
python3Packages = prev.python3Packages // {
|
||||||
pySmartDL = pySmartDL;
|
pySmartDL = pySmartDL;
|
||||||
cfscrape = cfscrape;
|
cfscrape = cfscrape;
|
||||||
@@ -26,125 +66,59 @@ key-mapper = prev.callPackage ./tools/games/key-mapper {};
|
|||||||
|
|
||||||
replaysorcery = prev.callPackage ./tools/games/replaysorcery {};
|
replaysorcery = prev.callPackage ./tools/games/replaysorcery {};
|
||||||
evdev-proxy = prev.callPackage ./tools/virtualisation/evdev-proxy {};
|
evdev-proxy = prev.callPackage ./tools/virtualisation/evdev-proxy {};
|
||||||
|
virtiofsd = prev.callPackage ./tools/virtualisation/virtiofsd {};
|
||||||
anime4k = prev.callPackage ./misc/video/anime4k {};
|
anime4k = prev.callPackage ./misc/video/anime4k {};
|
||||||
|
mpv-shader-pack = prev.callPackage ./misc/video/mpv-shader-pack {};
|
||||||
anime-dl = prev.callPackage ./tools/video/animedl {
|
anime-dl = prev.callPackage ./tools/video/animedl {
|
||||||
pySmartDL = pySmartDL;
|
pySmartDL = pySmartDL;
|
||||||
cfscrape = cfscrape;
|
cfscrape = cfscrape;
|
||||||
};
|
};
|
||||||
discord-wrapped = wrapInSandbox {
|
animdl = prev.callPackage ./misc/video/animdl {};
|
||||||
name = "discord";
|
|
||||||
package = prev.discord;
|
|
||||||
#package = discord-system-electron;
|
|
||||||
binaryName = "discord";
|
|
||||||
mountInHome = [ ".config/discord" ".config/BetterDiscord" ];
|
|
||||||
additionalBlacklist = [ "/mnt" ];
|
|
||||||
chdirTo = "/home/$USER";
|
|
||||||
|
|
||||||
version = "1.0.1";
|
|
||||||
copyIntoSandbox = [ "share/pixmaps" ];
|
|
||||||
desktopFileArgs = {
|
|
||||||
name = "Discord (wrapped)";
|
|
||||||
#exec = "discord";
|
|
||||||
icon = "discord";
|
|
||||||
desktopName = "Discord (wrapped)";
|
|
||||||
genericName = "Instant Messenger";
|
|
||||||
categories = "Network;InstantMessaging;";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
sddm-sugar-dark = prev.callPackage ./sddm-sugar-dark {};
|
|
||||||
|
|
||||||
surface-control = prev.callPackage ./tools/system/surface-control {};
|
surface-control = prev.callPackage ./tools/system/surface-control {};
|
||||||
|
|
||||||
trackma = prev.callPackage ./tools/video/trackma {};
|
trackma = prev.callPackage ./tools/video/trackma {};
|
||||||
|
|
||||||
multimc-wrapped = wrapInSandbox {
|
|
||||||
name = "multimc";
|
|
||||||
package = prev.multimc.override {
|
|
||||||
jdk = prev.jdk11;
|
|
||||||
jdk8 = prev.jdk11;
|
|
||||||
};
|
|
||||||
binaryName = "multimc";
|
|
||||||
mountInHome = [ ".local/share/multimc" ];
|
|
||||||
additionalBlacklist = [ "/mnt" ];
|
|
||||||
chdirTo = "/home/$USER";
|
|
||||||
#extraEnv = {
|
|
||||||
# DRI_PRIME = "1";
|
|
||||||
#};
|
|
||||||
};
|
|
||||||
|
|
||||||
minecraft-wrapped = wrapInSandbox {
|
|
||||||
name = "minecraft-launcher";
|
|
||||||
package = prev.minecraft;
|
|
||||||
binaryName = "minecraft-launcher";
|
|
||||||
mountInHome = [ ".local/share/minecraft" ".minecraft" ];
|
|
||||||
additionalBlacklist = [ "/mnt" ];
|
|
||||||
chdirTo = "/home/$USER";
|
|
||||||
};
|
|
||||||
|
|
||||||
steam-wrapped = wrapInSandbox {
|
|
||||||
name = "steam";
|
|
||||||
package = prev.steam;
|
|
||||||
binaryName = "steam";
|
|
||||||
mountInHome = [ ".steam" ".local/share/Steam" ];
|
|
||||||
additionalBlacklist = [ "/mnt" ];
|
|
||||||
additionalMounts = [ "/mnt/Storage/Games/SteamLibrary" ];
|
|
||||||
chdirTo = "/home/$USER";
|
|
||||||
extraEnv = {
|
|
||||||
DRI_PRIME = "1";
|
|
||||||
};
|
|
||||||
|
|
||||||
copyIntoSandbox = [ "/share" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
android-studio-wrapped = wrapInSandbox {
|
|
||||||
name = "android-studio";
|
|
||||||
package = prev.android-studio;
|
|
||||||
binaryName = "android-studio";
|
|
||||||
additionalBlacklist = [ "/mnt" ];
|
|
||||||
mountInHome = [ "Development/Personal/Android" ".android" ];
|
|
||||||
chdirTo = "/home/$USER";
|
|
||||||
};
|
|
||||||
|
|
||||||
xournalpp-git = prev.xournalpp.overrideAttrs (old: {
|
|
||||||
version = "1.1.1";
|
|
||||||
src = prev.fetchFromGitHub {
|
|
||||||
owner = "bhennion";
|
|
||||||
repo = "xournalpp";
|
|
||||||
rev = "5d1545b0c4303e45b4ddf4ef8a1565eba822a9af";
|
|
||||||
sha256 = "1d17lvydlny9pvaxa9xy53wxs7i6d563lp5r9g3r1xpgnb7zli8v";
|
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
||||||
gajim-mainwindow = prev.callPackage ./applications/networking/instant-messengers/gajim {
|
|
||||||
nbxmpp = prev.python3Packages.nbxmpp.overrideAttrs (old: {
|
|
||||||
src = prev.fetchFromGitLab {
|
|
||||||
domain = "dev.gajim.org";
|
|
||||||
owner = "gajim";
|
|
||||||
repo = "python-nbxmpp";
|
|
||||||
rev = "22aaefb2b36eb46a5306092496c2be680b167f61";
|
|
||||||
sha256 = "sha256-7emxKdeDuQE6OkK+umw2p1drf94yZp+P00tdEfeI81M=";
|
|
||||||
};
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
swaync = prev.callPackage ./tools/desktop/swaync {};
|
swaync = prev.callPackage ./tools/desktop/swaync {};
|
||||||
|
|
||||||
# TODO: Remove once NixOS has version 0.11.16 in their repos
|
|
||||||
sublime-music-no-test = prev.callPackage ./applications/audio/sublime-music {};
|
|
||||||
|
|
||||||
# TODO: Remove once upstream has a new version tagged
|
|
||||||
kasts-git = prev.libsForQt5.kasts.overrideAttrs (old: {
|
|
||||||
src = let
|
|
||||||
commit = "b39be0118ef6ff587b433af185c584f3d5bcec30";
|
|
||||||
in builtins.fetchTarball {
|
|
||||||
url = "https://invent.kde.org/plasma-mobile/kasts/-/archive/${commit}/kasts-${commit}.tar.gz";
|
|
||||||
sha256 = "06myymbwj89357cpg7phha1x8q84mlhcy4f44pdkqmg7lkd5a6df";
|
|
||||||
};
|
|
||||||
|
|
||||||
buildInputs = old.buildInputs ++ [ prev.taglib prev.libsForQt5.qtkeychain ];
|
|
||||||
});
|
|
||||||
|
|
||||||
sound-gambit = prev.callPackage tools/audio/sound-gambit {};
|
sound-gambit = prev.callPackage tools/audio/sound-gambit {};
|
||||||
ebu-norm = prev.callPackage tools/audio/ebu-norm {};
|
ebu-norm = prev.callPackage tools/audio/ebu-norm {};
|
||||||
|
|
||||||
|
payload-dumper = prev.callPackage tools/system/payload-dumper {};
|
||||||
|
|
||||||
|
psst = prev.callPackage tools/audio/psst {};
|
||||||
|
|
||||||
|
wlrootsqt = prev.libsForQt5.callPackage ./wlrootsqt.nix {};
|
||||||
|
|
||||||
|
#spice-gtk = prev.callPackage temp/spice-gtk/default.nix {};
|
||||||
|
|
||||||
|
discord-app = prev.callPackage applications/networking/instant-messengers/discord-app {
|
||||||
|
chromium = prev.ungoogled-chromium;
|
||||||
|
};
|
||||||
|
|
||||||
|
zoom-vm = prev.callPackage scripts/zoom-vm {};
|
||||||
|
|
||||||
|
razer-cli = prev.callPackage tools/hardware/razer-cli {};
|
||||||
|
|
||||||
|
wayfire-firedecor = prev.callPackage applications/wayfire/firedecor {
|
||||||
|
wayfire = wayfire-master;
|
||||||
|
};
|
||||||
|
|
||||||
|
sddm-sugar-dark = prev.callPackage themes/sddm/sugar-dark {};
|
||||||
|
|
||||||
|
custom-apparmor-utils = prev.callPackage temp/apparmor-utils.nix {};
|
||||||
|
|
||||||
|
qtgreet = prev.libsForQt5.callPackage applications/desktop/qtgreet {
|
||||||
|
inherit dfl-applications dfl-utils dfl-ipc wayqt;
|
||||||
|
};
|
||||||
|
|
||||||
|
kpipewire = prev.libsForQt5.callPackage development/cpp/libkpipewire {};
|
||||||
|
xwaylandvideobridge = prev.libsForQt5.callPackage applications/desktop/xwaylandvideobridge {
|
||||||
|
inherit kpipewire;
|
||||||
|
};
|
||||||
|
|
||||||
|
#obs-websocket = prev.libsForQt5.callPackage obs/obs-websocket {};
|
||||||
|
obs-cli = prev.callPackage obs/obs-cli {};
|
||||||
|
|
||||||
|
rgb_keyboard = prev.callPackage ./applications/desktop/rgb_keyboard/default.nix {};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,31 +0,0 @@
|
|||||||
{ stdenv
|
|
||||||
, lib
|
|
||||||
, fetchFromGitHub }:
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
pname = "gnome-shell-extension-notification-timeout";
|
|
||||||
version = "unstable-2021-07-25";
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "vchlum";
|
|
||||||
repo = "notification-timeout";
|
|
||||||
rev = "1f8c2a433383f974bd49869db5ae7a6d7a82d302";
|
|
||||||
sha256 = "1ndr8gn52qggq45lbdc5miz62is8im34nzmzsghcnarrm73naq59";
|
|
||||||
};
|
|
||||||
|
|
||||||
uuid = "notification-timeout@chlumskyvaclav.gmail.com";
|
|
||||||
|
|
||||||
dontBuild = true;
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/share/gnome-shell/extensions/${uuid}
|
|
||||||
cp -r metadata.json extension.js prefs.js schemas/ $out/share/gnome-shell/extensions/${uuid}
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = with lib; {
|
|
||||||
description = "Gnome Shell extension for configuring notification timeout. ";
|
|
||||||
homepage = "https://github.com/vchlum/notification-timeout";
|
|
||||||
license = licenses.mit;
|
|
||||||
maintainers = [ ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
{ stdenv
|
|
||||||
, lib
|
|
||||||
, fetchFromGitHub }:
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
pname = "WindowIsReady-Remover";
|
|
||||||
version = "1.12";
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "nunofarruca";
|
|
||||||
repo = "WindowIsReady_Remover";
|
|
||||||
rev = version;
|
|
||||||
sha256 = "0yivd8q2mkb2c40n1pndwrsv9bi2lnm3r06wk04vhjc6f8x7qj52";
|
|
||||||
};
|
|
||||||
|
|
||||||
uuid = "windowIsReady_Remover@nunofarruca@gmail.com";
|
|
||||||
|
|
||||||
dontBuild = true;
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/share/gnome-shell/extensions/${uuid}
|
|
||||||
cp -r ${uuid}/* $out/share/gnome-shell/extensions/${uuid}
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = with lib; {
|
|
||||||
description = "Removes window is ready Notification";
|
|
||||||
homepage = "https://github.com/nunofarruca/WindowIsReady_Remover";
|
|
||||||
# NOTE: Wrong
|
|
||||||
license = licenses.unlicense;
|
|
||||||
maintainers = [ ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
22
packages/development/cpp/dfl-app/default.nix
Normal file
22
packages/development/cpp/dfl-app/default.nix
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
stdenv
|
||||||
|
, lib, fetchFromGitLab
|
||||||
|
, meson, ninja, pkg-config
|
||||||
|
, qtbase, wrapQtAppsHook
|
||||||
|
, dfl-ipc
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
pname = "dfl-applications";
|
||||||
|
version = "20221012";
|
||||||
|
|
||||||
|
src = fetchFromGitLab {
|
||||||
|
owner = "desktop-frameworks";
|
||||||
|
repo = "Applications";
|
||||||
|
rev = "08b6740379d596f40562b37b509705f5c8af0c42";
|
||||||
|
sha256 = "1jiymrg6236572yk6rnbl183fisl4kqr5c2zji910n93zv7lqqiv";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ qtbase meson ninja pkg-config dfl-ipc ];
|
||||||
|
nativeBuildInputs = [ wrapQtAppsHook ];
|
||||||
|
}
|
||||||
21
packages/development/cpp/dfl-ipc/default.nix
Normal file
21
packages/development/cpp/dfl-ipc/default.nix
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
stdenv
|
||||||
|
, lib, fetchFromGitLab
|
||||||
|
, meson, ninja, pkg-config
|
||||||
|
, qtbase, wrapQtAppsHook
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
pname = "dfl-ipc";
|
||||||
|
version = "20221012";
|
||||||
|
|
||||||
|
src = fetchFromGitLab {
|
||||||
|
owner = "desktop-frameworks";
|
||||||
|
repo = "IPC";
|
||||||
|
rev = "7370f8da2601a57d85d0989339f6e2fe700f9813";
|
||||||
|
sha256 = "1iv1kc9i75q56h0zi4fncf0hdf11wjzvjkik14n9nxgbz89w7cyh";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ qtbase meson ninja pkg-config ];
|
||||||
|
nativeBuildInputs = [ wrapQtAppsHook ];
|
||||||
|
}
|
||||||
21
packages/development/cpp/dfl-utils/default.nix
Normal file
21
packages/development/cpp/dfl-utils/default.nix
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
stdenv
|
||||||
|
, lib, fetchFromGitLab
|
||||||
|
, meson, ninja, pkg-config
|
||||||
|
, qtbase, wrapQtAppsHook
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
pname = "dfl-utils";
|
||||||
|
version = "20221026";
|
||||||
|
|
||||||
|
src = fetchFromGitLab {
|
||||||
|
owner = "desktop-frameworks";
|
||||||
|
repo = "Utils";
|
||||||
|
rev = "603f95cae18998e9ff8b205c3801699056549505";
|
||||||
|
sha256 = "0wbiaw6d2n13cpnpnk7089c9jqbwxn0dp9qz4n9cp0ic3z5w0gq4";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ qtbase meson ninja pkg-config ];
|
||||||
|
nativeBuildInputs = [ wrapQtAppsHook ];
|
||||||
|
}
|
||||||
21
packages/development/cpp/libkpipewire/default.nix
Normal file
21
packages/development/cpp/libkpipewire/default.nix
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
stdenv
|
||||||
|
, lib, fetchFromGitLab
|
||||||
|
, cmake, pkg-config
|
||||||
|
, qtbase, wrapQtAppsHook
|
||||||
|
, kwayland, ki18n, kcoreaddons
|
||||||
|
, pipewire, libepoxy, ffmpeg
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "xwaylandvideobridge";
|
||||||
|
version = "5.27.3";
|
||||||
|
|
||||||
|
src = builtins.fetchurl {
|
||||||
|
url = "https://download.kde.org/stable/plasma/${version}/${pname}-${version}.tar.xz";
|
||||||
|
sha256 = "sha256:0b95jjkfpkvc2ld3x6p7nw6kn6fkqba9q7x95ywvgag2b00jdb56";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ qtbase kwayland ki18n kcoreaddons pipewire libepoxy ffmpeg cmake pkg-config ];
|
||||||
|
nativeBuildInputs = [ wrapQtAppsHook ];
|
||||||
|
}
|
||||||
22
packages/development/cpp/wayqt/default.nix
Normal file
22
packages/development/cpp/wayqt/default.nix
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
stdenv
|
||||||
|
, lib, fetchFromGitLab
|
||||||
|
, meson, ninja, pkg-config
|
||||||
|
, qtbase, wrapQtAppsHook
|
||||||
|
, wayland, wlroots_0_16
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
pname = "wayqt";
|
||||||
|
version = "20230112";
|
||||||
|
|
||||||
|
src = fetchFromGitLab {
|
||||||
|
owner = "desktop-frameworks";
|
||||||
|
repo = "wayqt";
|
||||||
|
rev = "8604391059da1acd5c5b67f44742af10919bb525";
|
||||||
|
sha256 = "0smbvmgii7f6lsylwg06d7lf83nyiggz8iz7aw3dhf5b8xdhgbaw";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ qtbase wayland wlroots_0_16 meson ninja pkg-config ];
|
||||||
|
nativeBuildInputs = [ wrapQtAppsHook ];
|
||||||
|
}
|
||||||
31
packages/development/python/keyrings.gopass/default.nix
Normal file
31
packages/development/python/keyrings.gopass/default.nix
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
pkgs
|
||||||
|
, lib
|
||||||
|
, python3Packages
|
||||||
|
, fetchFromGitea
|
||||||
|
}:
|
||||||
|
|
||||||
|
python3Packages.buildPythonPackage rec {
|
||||||
|
pname = "keyrings.gopass";
|
||||||
|
version = "1.0.0";
|
||||||
|
|
||||||
|
src = fetchFromGitea {
|
||||||
|
domain = "git.polynom.me";
|
||||||
|
owner = "PapaTutuWawa";
|
||||||
|
repo = pname;
|
||||||
|
rev = "9c3cd59e7f5ce0a742b238ff0c4761db28344713";
|
||||||
|
sha256 = "1dg3a6zx3cm9vwsqgkmc604n3fqb760nsmnrfwyfv7y5bmh5822x";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = with python3Packages; [ setuptools setuptools-scm ];
|
||||||
|
|
||||||
|
doCheck = false;
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
homepage = "https://git.polynom.me/PapaTutuWawa/keyrings.gopass";
|
||||||
|
description = "A python-keyring plugin for gopass";
|
||||||
|
license = licenses.gpl3;
|
||||||
|
maintainers = [];
|
||||||
|
platforms = platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
||||||
19
packages/misc/video/animdl/default.nix
Normal file
19
packages/misc/video/animdl/default.nix
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{ fetchFromGitHub, python, lib, poetry2nix }:
|
||||||
|
|
||||||
|
poetry2nix.mkPoetryApplication rec {
|
||||||
|
inherit python;
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "justfoolingaround";
|
||||||
|
repo = "animdl";
|
||||||
|
rev = "9167e03ecb60c21ae1ead90d1472cd7157e1d8b7";
|
||||||
|
sha256 = "1v33kxlxc38awdpxqsb6bfdw0sc45dibg0b4c0qld0pddlppm0qh";
|
||||||
|
};
|
||||||
|
projectDir = src;
|
||||||
|
|
||||||
|
doCheck = false;
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
inherit (python.meta) platforms;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -16,10 +16,10 @@ stdenv.mkDerivation rec {
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "A High-Quality Real Time Upscaler for Anime Video ";
|
description = "A High-Quality Real Time Upscaler for Anime Video";
|
||||||
homepage = "A High-Quality Real Time Upscaler for Anime Video ";
|
homepage = "https://bloc97.github.io/Anime4K/";
|
||||||
license = licenses.mit;
|
license = licenses.mit;
|
||||||
maintainers = [ ];
|
maintainers = [ ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.all;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
25
packages/misc/video/mpv-prescalers/default.nix
Normal file
25
packages/misc/video/mpv-prescalers/default.nix
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
{ stdenv, lib, fetchFromGitHub }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "mpv-prescalers";
|
||||||
|
version = "20211110";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "bjin";
|
||||||
|
repo = "mpv-prescalers";
|
||||||
|
rev = "cc02ed95c1fe05b72bc21d41257c4c085e6e409b";
|
||||||
|
sha256 = "1gc1ka9i7xzxq58175q5svhvp8vr27hy477r4z4nkhp9q1cqj19d";
|
||||||
|
};
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
find . -type f -iname '*.hook' -exec install -Dm 644 {} -t $out/usr/share/shaders/ \;
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "prescalers for mpv, as user shaders";
|
||||||
|
homepage = "https://github.com/bjin/mpv-prescalers";
|
||||||
|
license = licenses.gpl3;
|
||||||
|
maintainers = [ ];
|
||||||
|
platforms = platforms.all;
|
||||||
|
};
|
||||||
|
}
|
||||||
30
packages/misc/video/mpv-shader-pack/default.nix
Normal file
30
packages/misc/video/mpv-shader-pack/default.nix
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
{ stdenv, lib, fetchFromGitHub }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "mpv-shader-pack";
|
||||||
|
version = "2.0.0";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "iwalton3";
|
||||||
|
repo = "default-shader-pack";
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "10383h2qq35whj3v1vs34yyqiflxjf1vlv2p4l6jrmljwpjpcj4k";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
# Packaged by the anime4k package
|
||||||
|
rm shaders/Anime4K_*.glsl
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
find ./shaders -type f -exec install -Dm 644 {} -t $out/usr/share/shaders/ \;
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Preconfigured set of MPV shaders and configurations for MPV Shim media clients.";
|
||||||
|
homepage = "https://github.com/iwalton3/default-shader-pack";
|
||||||
|
license = licenses.gpl3;
|
||||||
|
maintainers = [ ];
|
||||||
|
platforms = platforms.all;
|
||||||
|
};
|
||||||
|
}
|
||||||
27
packages/obs/obs-cli/default.nix
Normal file
27
packages/obs/obs-cli/default.nix
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
{ lib
|
||||||
|
, buildGoModule
|
||||||
|
, fetchFromGitHub
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildGoModule rec {
|
||||||
|
pname = "obs-cli";
|
||||||
|
version = "0.5.0";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "muesli";
|
||||||
|
repo = "obs-cli";
|
||||||
|
rev = "v${version}";
|
||||||
|
hash = "sha256-4tjS+PWyP/T0zs4IGE6VQ5c+3tuqxlBwfpPBVEcim6c=";
|
||||||
|
};
|
||||||
|
|
||||||
|
vendorHash = "sha256-RGpkqX97zalZv4aDfihJBKO1l2O8tcxn0I1SPL1WIg8=";
|
||||||
|
|
||||||
|
ldflags = [ "-s" "-w" ];
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "OBS-cli is a command-line remote control for OBS";
|
||||||
|
homepage = "https://github.com/muesli/obs-cli";
|
||||||
|
license = licenses.mit;
|
||||||
|
maintainers = with maintainers; [ ];
|
||||||
|
};
|
||||||
|
}
|
||||||
39
packages/obs/obs-websocket/default.nix
Normal file
39
packages/obs/obs-websocket/default.nix
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
{ lib
|
||||||
|
, stdenv
|
||||||
|
, fetchFromGitHub
|
||||||
|
, cmake, ninja, pkg-config
|
||||||
|
, qtbase, wrapQtAppsHook
|
||||||
|
, nlohmann_json, asio, websocketpp
|
||||||
|
, obs-studio
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "obs-websocket";
|
||||||
|
version = "4.9.1-compat";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "obsproject";
|
||||||
|
repo = pname;
|
||||||
|
rev = "${version}";
|
||||||
|
sha256 = "14xhk6d7j2q5swfj0b7jdgmswjdkqjnj3q11qs5vbh93hk30jyvh";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ cmake ninja pkg-config wrapQtAppsHook ];
|
||||||
|
buildInputs = [ obs-studio qtbase nlohmann_json asio websocketpp ];
|
||||||
|
|
||||||
|
cmakeFlags = [
|
||||||
|
"-DLIBOBS_INCLUDE_DIR=${obs-studio.src}/libobs"
|
||||||
|
"-Wno-dev"
|
||||||
|
];
|
||||||
|
|
||||||
|
preConfigure = ''
|
||||||
|
cp ${obs-studio.src}/cmake/external/ObsPluginHelpers.cmake cmake/FindLibObs.cmake
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Remote-control of OBS Studio through WebSocket";
|
||||||
|
homepage = "https://github.com/obsproject/obs-websocket";
|
||||||
|
license = licenses.gpl2;
|
||||||
|
platforms = [ "x86_64-linux" "i686-linux" ];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,184 +0,0 @@
|
|||||||
{
|
|
||||||
stdenv, lib
|
|
||||||
, runCommandLocal, writeShellScriptBin, makeDesktopItem
|
|
||||||
, bubblewrap, coreutils, glibc, pkgsi686Linux
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
|
||||||
name
|
|
||||||
, package
|
|
||||||
, binaryName
|
|
||||||
, version ? "1.0.0"
|
|
||||||
, desktopFileArgs ? null
|
|
||||||
, copyIntoSandbox ? null
|
|
||||||
, unshareUser ? true
|
|
||||||
, unshareIpc ? true
|
|
||||||
, unsharePid ? true
|
|
||||||
, unshareNet ? false
|
|
||||||
, unshareUts ? true
|
|
||||||
, unshareCgroup ? true
|
|
||||||
, dieWithParent ? true
|
|
||||||
, mountInHome ? []
|
|
||||||
, chdirTo ? "\"$(pwd)\""
|
|
||||||
, additionalBlacklist ? []
|
|
||||||
, additionalMounts ? []
|
|
||||||
, extraEnv ? {}
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
etcBindFlags = let
|
|
||||||
files = [
|
|
||||||
# NixOS Compatibility
|
|
||||||
"static"
|
|
||||||
"nix" # mainly for nixUnstable users, but also for access to nix/netrc
|
|
||||||
# Shells
|
|
||||||
"bashrc"
|
|
||||||
"zshenv"
|
|
||||||
"zshrc"
|
|
||||||
"zinputrc"
|
|
||||||
"zprofile"
|
|
||||||
# Users, Groups, NSS
|
|
||||||
"passwd"
|
|
||||||
"group"
|
|
||||||
"shadow"
|
|
||||||
"hosts"
|
|
||||||
"resolv.conf"
|
|
||||||
"nsswitch.conf"
|
|
||||||
# User profiles
|
|
||||||
"profiles"
|
|
||||||
# Sudo & Su
|
|
||||||
"login.defs"
|
|
||||||
"sudoers"
|
|
||||||
"sudoers.d"
|
|
||||||
# Time
|
|
||||||
"localtime"
|
|
||||||
"zoneinfo"
|
|
||||||
# Other Core Stuff
|
|
||||||
"machine-id"
|
|
||||||
"os-release"
|
|
||||||
# PAM
|
|
||||||
"pam.d"
|
|
||||||
# Fonts
|
|
||||||
"fonts"
|
|
||||||
# ALSA
|
|
||||||
"alsa"
|
|
||||||
"asound.conf"
|
|
||||||
# SSL
|
|
||||||
"ssl/certs"
|
|
||||||
"pki"
|
|
||||||
];
|
|
||||||
in builtins.concatStringsSep "\n "
|
|
||||||
(map (file: "--ro-bind-try /etc/${file} /etc/${file}") files);
|
|
||||||
|
|
||||||
# Create this on the fly instead of linking from /nix
|
|
||||||
# The container might have to modify it and re-run ldconfig if there are
|
|
||||||
# issues running some binary with LD_LIBRARY_PATH
|
|
||||||
createLdConfCache = ''
|
|
||||||
cat > /etc/ld.so.conf <<EOF
|
|
||||||
/lib
|
|
||||||
/lib/x86_64-linux-gnu
|
|
||||||
/lib64
|
|
||||||
/usr/lib
|
|
||||||
/usr/lib/x86_64-linux-gnu
|
|
||||||
/usr/lib64
|
|
||||||
/lib/i386-linux-gnu
|
|
||||||
/lib32
|
|
||||||
/usr/lib/i386-linux-gnu
|
|
||||||
/usr/lib32
|
|
||||||
EOF
|
|
||||||
ldconfig &> /dev/null
|
|
||||||
'';
|
|
||||||
init = run: writeShellScriptBin "${binaryName}-init" ''
|
|
||||||
source /etc/profile
|
|
||||||
${createLdConfCache}
|
|
||||||
exec ${run} "$@"
|
|
||||||
'';
|
|
||||||
extraEnvString = lib.foldl (acc: val: acc + val + "\n") "" (lib.mapAttrsToList (name: value: "--setenv ${name} \"${value}\"") extraEnv);
|
|
||||||
mountHome = mountInHome == [];
|
|
||||||
initStr = init "${package}/bin/${binaryName}";
|
|
||||||
bwrapCmd = { initArgs ? "" }: ''
|
|
||||||
blacklist=(/nix /dev /proc /etc ${lib.optionalString (!mountHome) "/home"} ${builtins.toString additionalBlacklist})
|
|
||||||
ro_mounts=()
|
|
||||||
symlinks=()
|
|
||||||
|
|
||||||
declare -a auto_mounts
|
|
||||||
# loop through all directories in the root
|
|
||||||
for dir in /*; do
|
|
||||||
# if it is a directory and it is not in the blacklist
|
|
||||||
if [[ -d "$dir" ]] && [[ ! "''${blacklist[@]}" =~ "$dir" ]]; then
|
|
||||||
# add it to the mount list
|
|
||||||
auto_mounts+=(--bind "$dir" "$dir")
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
if [[ "${lib.optionalString (!mountHome) "1"}" = "1" ]]; then
|
|
||||||
for entry in ${builtins.toString mountInHome}; do
|
|
||||||
auto_mounts+=(--bind "/home/$USER/$entry" "/home/$USER/$entry")
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ ! -z "${builtins.toString additionalMounts}" ]]; then
|
|
||||||
for entry in ${builtins.toString additionalMounts}; do
|
|
||||||
auto_mounts+=(--bind "$entry" "$entry")
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
cmd=(
|
|
||||||
${bubblewrap}/bin/bwrap
|
|
||||||
--dev-bind /dev /dev
|
|
||||||
--proc /proc
|
|
||||||
--chdir ${chdirTo}
|
|
||||||
${lib.optionalString unshareUser "--unshare-user"}
|
|
||||||
${lib.optionalString unshareIpc "--unshare-ipc"}
|
|
||||||
${lib.optionalString unsharePid "--unshare-pid"}
|
|
||||||
${lib.optionalString unshareNet "--unshare-net"}
|
|
||||||
${lib.optionalString unshareUts "--unshare-uts"}
|
|
||||||
${lib.optionalString unshareCgroup "--unshare-cgroup"}
|
|
||||||
${lib.optionalString dieWithParent "--die-with-parent"}
|
|
||||||
--ro-bind /nix /nix
|
|
||||||
# Our glibc will look for the cache in its own path in `/nix/store`.
|
|
||||||
# As such, we need a cache to exist there, because pressure-vessel
|
|
||||||
# depends on the existence of an ld cache. However, adding one
|
|
||||||
# globally proved to be a bad idea (see #100655), the solution we
|
|
||||||
# settled on being mounting one via bwrap.
|
|
||||||
# Also, the cache needs to go to both 32 and 64 bit glibcs, for games
|
|
||||||
# of both architectures to work.
|
|
||||||
--tmpfs ${glibc}/etc \
|
|
||||||
--symlink /etc/ld.so.conf ${glibc}/etc/ld.so.conf \
|
|
||||||
--symlink /etc/ld.so.cache ${glibc}/etc/ld.so.cache \
|
|
||||||
--ro-bind ${glibc}/etc/rpc ${glibc}/etc/rpc \
|
|
||||||
--remount-ro ${glibc}/etc \
|
|
||||||
--tmpfs ${pkgsi686Linux.glibc}/etc \
|
|
||||||
--symlink /etc/ld.so.conf ${pkgsi686Linux.glibc}/etc/ld.so.conf \
|
|
||||||
--symlink /etc/ld.so.cache ${pkgsi686Linux.glibc}/etc/ld.so.cache \
|
|
||||||
--ro-bind ${pkgsi686Linux.glibc}/etc/rpc ${pkgsi686Linux.glibc}/etc/rpc \
|
|
||||||
--remount-ro ${pkgsi686Linux.glibc}/etc \
|
|
||||||
${etcBindFlags}
|
|
||||||
"''${ro_mounts[@]}"
|
|
||||||
"''${symlinks[@]}"
|
|
||||||
"''${auto_mounts[@]}"
|
|
||||||
${extraEnvString}
|
|
||||||
${initStr}/bin/${name}-init ${initArgs}
|
|
||||||
)
|
|
||||||
exec "''${cmd[@]}"
|
|
||||||
'';
|
|
||||||
bin = writeShellScriptBin name (bwrapCmd { initArgs = ''"$@"''; });
|
|
||||||
desktopItem = makeDesktopItem (desktopFileArgs // {
|
|
||||||
exec = "${bin}/bin/${name}";
|
|
||||||
});
|
|
||||||
copyIntoSandboxString = lib.concatStrings (map (x: "cp -Lr ${package}/${x} $out/${x}\n") copyIntoSandbox);
|
|
||||||
in stdenv.mkDerivation {
|
|
||||||
pname = "${name}-sandboxed";
|
|
||||||
version = version;
|
|
||||||
|
|
||||||
unpackPhase = ":";
|
|
||||||
dontBuild = true;
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/bin
|
|
||||||
ln -s ${bin}/bin/${name} $out/bin/${name}
|
|
||||||
'' + lib.strings.optionalString (!(builtins.isNull desktopFileArgs)) ''
|
|
||||||
mkdir -p $out/share/
|
|
||||||
cp -r ${desktopItem}/share/applications $out/share
|
|
||||||
'' + lib.strings.optionalString (!(builtins.isNull copyIntoSandbox)) copyIntoSandboxString;
|
|
||||||
}
|
|
||||||
46
packages/scripts/zoom-vm/default.nix
Normal file
46
packages/scripts/zoom-vm/default.nix
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
{
|
||||||
|
stdenv, lib
|
||||||
|
, makeDesktopItem, writeShellScriptBin
|
||||||
|
, virt-manager, libvirt, notify-desktop
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
zoomVmScript = writeShellScriptBin "start-zoom-vm.sh" ''
|
||||||
|
${notify-desktop}/bin/notify-desktop "Zoom VM" "Starting VM..."
|
||||||
|
output=$(/run/wrappers/bin/pkexec virsh start zoom 2>&1)
|
||||||
|
if [[ ! "$?" = "0" ]]; then
|
||||||
|
${notify-desktop}/bin/notify-desktop -u critical "Zoom VM" "$output"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
${virt-manager}/bin/virt-manager --connect qemu:///system --show-domain-console zoom
|
||||||
|
'';
|
||||||
|
zoomIcon = builtins.fetchurl {
|
||||||
|
url = "https://dl.flathub.org/repo/appstream/x86_64/icons/128x128/us.zoom.Zoom.png";
|
||||||
|
sha256 = "0d94vhjna2196s4wnq0vkga345ad5lpb7b5qp6cymwf1hnpg9lyh";
|
||||||
|
};
|
||||||
|
in stdenv.mkDerivation rec {
|
||||||
|
pname = "zoom-vm";
|
||||||
|
version = "1.0.0";
|
||||||
|
|
||||||
|
unpackPhase = ":";
|
||||||
|
dontBuild = true;
|
||||||
|
|
||||||
|
desktopItem = makeDesktopItem {
|
||||||
|
name = "zoom-vm";
|
||||||
|
desktopName = "Zoom (VM)";
|
||||||
|
exec = "start-zoom-vm";
|
||||||
|
icon = "us.zoom.Zoom";
|
||||||
|
};
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
# Install the script
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp ${zoomVmScript}/bin/start-zoom-vm.sh $out/bin/start-zoom-vm
|
||||||
|
|
||||||
|
# Install the desktop file
|
||||||
|
mkdir -p $out/share/icons
|
||||||
|
cp ${zoomIcon} $out/share/icons/us.zoom.Zoom.png
|
||||||
|
cp -r ${desktopItem}/share/applications $out/share
|
||||||
|
'';
|
||||||
|
}
|
||||||
101
packages/temp/apparmor-utils.nix
Normal file
101
packages/temp/apparmor-utils.nix
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
{
|
||||||
|
fetchFromGitLab
|
||||||
|
, stdenv, lib
|
||||||
|
, makeWrapper, writeShellScript
|
||||||
|
, which, bash, libapparmor, apparmor-parser, libnotify, perl, gawk, python3
|
||||||
|
, coreutils, gnused, gnugrep
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
apparmor-version = "3.0.4";
|
||||||
|
apparmor-sources = fetchFromGitLab {
|
||||||
|
owner = "apparmor";
|
||||||
|
repo = "apparmor";
|
||||||
|
rev = "v${apparmor-version}";
|
||||||
|
sha256 = "1a217j28rgfq4lsmpn0wv1xgmdr9ba8iysv9i6q477kj6z77zrb9";
|
||||||
|
};
|
||||||
|
apparmor-meta = component: with lib; {
|
||||||
|
homepage = "https://apparmor.net/";
|
||||||
|
description = "A mandatory access control system - ${component}";
|
||||||
|
license = licenses.gpl2;
|
||||||
|
maintainers = with maintainers; [ joachifm julm thoughtpolice ];
|
||||||
|
platforms = platforms.linux;
|
||||||
|
};
|
||||||
|
aa-teardown = writeShellScript "aa-teardown" ''
|
||||||
|
PATH="${lib.makeBinPath [coreutils gnused gnugrep]}:$PATH"
|
||||||
|
. ${apparmor-parser}/lib/apparmor/rc.apparmor.functions
|
||||||
|
remove_profiles
|
||||||
|
'';
|
||||||
|
|
||||||
|
setupPython = python3.withPackages (ps: with ps; [ setuptools ]);
|
||||||
|
prePatchCommon = ''
|
||||||
|
chmod a+x ./common/list_capabilities.sh ./common/list_af_names.sh
|
||||||
|
patchShebangs ./common/list_capabilities.sh ./common/list_af_names.sh
|
||||||
|
substituteInPlace ./common/Make.rules \
|
||||||
|
--replace "/usr/bin/pod2man" "${perl}/bin/pod2man" \
|
||||||
|
--replace "/usr/bin/pod2html" "${perl}/bin/pod2html" \
|
||||||
|
--replace "/usr/share/man" "share/man"
|
||||||
|
substituteInPlace ./utils/Makefile \
|
||||||
|
--replace "/usr/include/linux/capability.h" "${stdenv.cc.libc.linuxHeaders}/include/linux/capability.h"
|
||||||
|
|
||||||
|
sed --in-place ./utils/Makefile -e 's|''${PYTHON}|${setupPython}/bin/python|g'
|
||||||
|
|
||||||
|
cat ./utils/Makefile
|
||||||
|
'';
|
||||||
|
in stdenv.mkDerivation {
|
||||||
|
pname = "apparmor-utils";
|
||||||
|
version = apparmor-version;
|
||||||
|
|
||||||
|
src = apparmor-sources;
|
||||||
|
|
||||||
|
strictDeps = true;
|
||||||
|
|
||||||
|
nativeBuildInputs = [ makeWrapper which python3 ];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
bash
|
||||||
|
perl
|
||||||
|
python3
|
||||||
|
libapparmor
|
||||||
|
libapparmor.python
|
||||||
|
];
|
||||||
|
|
||||||
|
prePatch = prePatchCommon +
|
||||||
|
# Do not build vim file
|
||||||
|
''
|
||||||
|
sed -i ./utils/Makefile -e "/\<vim\>/d"
|
||||||
|
'' + ''
|
||||||
|
for file in utils/apparmor/easyprof.py utils/apparmor/aa.py utils/logprof.conf; do
|
||||||
|
substituteInPlace $file --replace "/sbin/apparmor_parser" "${apparmor-parser}/bin/apparmor_parser"
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
postPatch = "cd ./utils";
|
||||||
|
makeFlags = [ "LANGS=" ];
|
||||||
|
installFlags = [ "DESTDIR=$(out)" "BINDIR=$(out)/bin" "VIM_INSTALL_PATH=$(out)/share" "PYPREFIX=" ];
|
||||||
|
|
||||||
|
preInstall = ''
|
||||||
|
ls -l
|
||||||
|
'';
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
sed -i $out/bin/aa-unconfined -e "/my_env\['PATH'\]/d"
|
||||||
|
for prog in aa-audit aa-autodep aa-cleanprof aa-complain aa-disable aa-enforce aa-genprof aa-logprof aa-mergeprof aa-unconfined ; do
|
||||||
|
wrapProgram $out/bin/$prog --prefix PYTHONPATH : "$out/${python3.sitePackages}:$PYTHONPATH"
|
||||||
|
done
|
||||||
|
|
||||||
|
substituteInPlace $out/bin/aa-notify \
|
||||||
|
--replace /usr/bin/notify-send ${libnotify}/bin/notify-send \
|
||||||
|
--replace /usr/bin/perl "${perl}/bin/perl -I ${libapparmor}/${perl.libPrefix}"
|
||||||
|
|
||||||
|
substituteInPlace $out/bin/aa-remove-unknown \
|
||||||
|
--replace "/lib/apparmor/rc.apparmor.functions" "${apparmor-parser}/lib/apparmor/rc.apparmor.functions"
|
||||||
|
wrapProgram $out/bin/aa-remove-unknown \
|
||||||
|
--prefix PATH : ${lib.makeBinPath [ gawk ]}
|
||||||
|
|
||||||
|
ln -s ${aa-teardown} $out/bin/aa-teardown
|
||||||
|
'';
|
||||||
|
|
||||||
|
doCheck = false;
|
||||||
|
|
||||||
|
meta = apparmor-meta "user-land utilities";
|
||||||
|
}
|
||||||
143
packages/temp/spice-gtk/default.nix
Normal file
143
packages/temp/spice-gtk/default.nix
Normal file
@@ -0,0 +1,143 @@
|
|||||||
|
{ lib, stdenv
|
||||||
|
, fetchurl
|
||||||
|
, acl
|
||||||
|
, cyrus_sasl
|
||||||
|
, docbook_xsl
|
||||||
|
, libepoxy
|
||||||
|
, gettext
|
||||||
|
, gobject-introspection
|
||||||
|
, gst_all_1
|
||||||
|
, gtk-doc
|
||||||
|
, gtk3
|
||||||
|
, hwdata
|
||||||
|
, json-glib
|
||||||
|
, libcacard
|
||||||
|
, libcap_ng
|
||||||
|
, libdrm
|
||||||
|
, libjpeg_turbo
|
||||||
|
, libopus
|
||||||
|
, libsoup
|
||||||
|
, libusb1
|
||||||
|
, lz4
|
||||||
|
, meson
|
||||||
|
, ninja
|
||||||
|
, openssl
|
||||||
|
, perl
|
||||||
|
, phodav
|
||||||
|
, pixman
|
||||||
|
, pkg-config
|
||||||
|
, polkit
|
||||||
|
, python3
|
||||||
|
, spice-protocol
|
||||||
|
, usbredir
|
||||||
|
, vala
|
||||||
|
, wayland-protocols
|
||||||
|
, zlib
|
||||||
|
, withPolkit ? true
|
||||||
|
}:
|
||||||
|
|
||||||
|
# If this package is built with polkit support (withPolkit=true),
|
||||||
|
# usb redirection reqires spice-client-glib-usb-acl-helper to run setuid root.
|
||||||
|
# The helper confirms via polkit that the user has an active session,
|
||||||
|
# then adds a device acl entry for that user.
|
||||||
|
# Example NixOS config to create a setuid wrapper for the helper:
|
||||||
|
# security.wrappers.spice-client-glib-usb-acl-helper.source =
|
||||||
|
# "${pkgs.spice-gtk}/bin/spice-client-glib-usb-acl-helper";
|
||||||
|
# On non-NixOS installations, make a setuid copy of the helper
|
||||||
|
# outside the store and adjust PATH to find the setuid version.
|
||||||
|
|
||||||
|
# If this package is built without polkit support (withPolkit=false),
|
||||||
|
# usb redirection requires read-write access to usb devices.
|
||||||
|
# This can be granted by adding users to a custom group like "usb"
|
||||||
|
# and using a udev rule to put all usb devices in that group.
|
||||||
|
# Example NixOS config:
|
||||||
|
# users.groups.usb = {};
|
||||||
|
# users.users.dummy.extraGroups = [ "usb" ];
|
||||||
|
# services.udev.extraRules = ''
|
||||||
|
# KERNEL=="*", SUBSYSTEMS=="usb", MODE="0664", GROUP="usb"
|
||||||
|
# '';
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "spice-gtk";
|
||||||
|
version = "0.40";
|
||||||
|
|
||||||
|
outputs = [ "out" "dev" "devdoc" "man" ];
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://www.spice-space.org/download/gtk/${pname}-${version}.tar.xz";
|
||||||
|
sha256 = "sha256-I/X/f6gLdWR85zzaXq+LMi80Mtu7f286g5Y0YYrbztM=";
|
||||||
|
};
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
# get rid of absolute path to helper in store so we can use a setuid wrapper
|
||||||
|
substituteInPlace src/usb-acl-helper.c \
|
||||||
|
--replace 'ACL_HELPER_PATH"/' '"'
|
||||||
|
# don't try to setcap/suid in a nix builder
|
||||||
|
substituteInPlace src/meson.build \
|
||||||
|
--replace "meson.add_install_script('../build-aux/setcap-or-suid'," \
|
||||||
|
"# meson.add_install_script('../build-aux/setcap-or-suid',"
|
||||||
|
'';
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
docbook_xsl
|
||||||
|
gettext
|
||||||
|
gobject-introspection
|
||||||
|
gtk-doc
|
||||||
|
libsoup
|
||||||
|
meson
|
||||||
|
ninja
|
||||||
|
perl
|
||||||
|
pkg-config
|
||||||
|
python3
|
||||||
|
python3.pkgs.pyparsing
|
||||||
|
python3.pkgs.six
|
||||||
|
vala
|
||||||
|
];
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
cyrus_sasl
|
||||||
|
libepoxy
|
||||||
|
gtk3
|
||||||
|
json-glib
|
||||||
|
libcacard
|
||||||
|
libcap_ng
|
||||||
|
libdrm
|
||||||
|
libjpeg_turbo
|
||||||
|
libopus
|
||||||
|
libusb1
|
||||||
|
lz4
|
||||||
|
openssl
|
||||||
|
phodav
|
||||||
|
pixman
|
||||||
|
spice-protocol
|
||||||
|
usbredir
|
||||||
|
wayland-protocols
|
||||||
|
zlib
|
||||||
|
] ++ lib.optionals withPolkit [ polkit acl ] ;
|
||||||
|
|
||||||
|
PKG_CONFIG_POLKIT_GOBJECT_1_POLICYDIR = "${placeholder "out"}/share/polkit-1/actions";
|
||||||
|
|
||||||
|
mesonFlags = [
|
||||||
|
"-Dusb-acl-helper-dir=${placeholder "out"}/bin"
|
||||||
|
"-Dusb-ids-path=${hwdata}/share/hwdata/usb.ids"
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "GTK 3 SPICE widget";
|
||||||
|
longDescription = ''
|
||||||
|
spice-gtk is a GTK 3 SPICE widget. It features glib-based
|
||||||
|
objects for SPICE protocol parsing and a gtk widget for embedding
|
||||||
|
the SPICE display into other applications such as virt-manager.
|
||||||
|
Python bindings are available too.
|
||||||
|
'';
|
||||||
|
|
||||||
|
homepage = "https://www.spice-space.org/";
|
||||||
|
license = licenses.lgpl21;
|
||||||
|
maintainers = [ maintainers.xeji ];
|
||||||
|
platforms = platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
||||||
32
packages/themes/sddm/sugar-dark/default.nix
Normal file
32
packages/themes/sddm/sugar-dark/default.nix
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
fetchFromGitHub
|
||||||
|
, stdenv, formats
|
||||||
|
, config ? {}
|
||||||
|
}:
|
||||||
|
|
||||||
|
# This package works a bit differently as the config needs to be inside the package.
|
||||||
|
# Override with config set to the settings you want. See
|
||||||
|
# https://github.com/MarianArlt/sddm-sugar-dark/blob/master/theme.conf
|
||||||
|
let
|
||||||
|
iniFmt = formats.ini {};
|
||||||
|
configFile = iniFmt.generate "theme.conf" config;
|
||||||
|
in stdenv.mkDerivation rec {
|
||||||
|
pname = "sddm-sugar-dark";
|
||||||
|
version = "1.2";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "MarianArlt";
|
||||||
|
repo = "sddm-sugar-dark";
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "0gx0am7vq1ywaw2rm1p015x90b75ccqxnb1sz3wy8yjl27v82yhb";
|
||||||
|
};
|
||||||
|
|
||||||
|
dontBuild = true;
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/usr/share/sddm/themes/sugar-dark
|
||||||
|
|
||||||
|
cp -r metadata.desktop Main.qml Background.jpg Components Assets $out/usr/share/sddm/themes/sugar-dark
|
||||||
|
ln -s ${configFile} $out/usr/share/sddm/themes/sugar-dark/theme.conf
|
||||||
|
'';
|
||||||
|
}
|
||||||
42
packages/tools/audio/psst/default.nix
Normal file
42
packages/tools/audio/psst/default.nix
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
{ lib
|
||||||
|
, rustPlatform
|
||||||
|
, fetchFromGitHub
|
||||||
|
, pkg-config
|
||||||
|
, cairo
|
||||||
|
, openssl
|
||||||
|
, alsa-lib
|
||||||
|
, dbus
|
||||||
|
, gtk3
|
||||||
|
}:
|
||||||
|
|
||||||
|
rustPlatform.buildRustPackage rec {
|
||||||
|
pname = "psst";
|
||||||
|
version = "1.2.1";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "jpochyla";
|
||||||
|
repo = "psst";
|
||||||
|
rev = "8f142a3232a706537c8477bff43d2e52309f6b78";
|
||||||
|
sha256 = "00pdijd70rq98lrrfgh6pzqa6w3pp49lmpzaviw7nrgfl7l6j3v0";
|
||||||
|
};
|
||||||
|
|
||||||
|
cargoSha256 = "sha256-/nbYi7n58D8V3qa9rStg7JfGh4sAhTxC2niFFW5Ta34=";
|
||||||
|
|
||||||
|
nativeBuildInputs = [ pkg-config ];
|
||||||
|
|
||||||
|
buildInputs = [ cairo openssl gtk3 alsa-lib dbus ];
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
# Install the desktop file
|
||||||
|
mkdir -p $out/share
|
||||||
|
cp .pkg/psst.desktop $out/share/
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "A modern Volume Mixer for PulseAudio";
|
||||||
|
homepage = "https://github.com/Aurailus/Myxer";
|
||||||
|
license = licenses.gpl3Only;
|
||||||
|
maintainers = with maintainers; [ erin ];
|
||||||
|
platforms = platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
diff --git a/setup.py b/setup.py
|
|
||||||
index 99d298e..74a7948 100644
|
|
||||||
--- a/setup.py
|
|
||||||
+++ b/setup.py
|
|
||||||
@@ -107,6 +107,12 @@ setup(
|
|
||||||
('/usr/bin/', ['bin/key-mapper-control']),
|
|
||||||
('/usr/bin/', ['bin/key-mapper-helper']),
|
|
||||||
],
|
|
||||||
+ scripts=[
|
|
||||||
+ 'bin/key-mapper-gtk',
|
|
||||||
+ 'bin/key-mapper-service',
|
|
||||||
+ 'bin/key-mapper-control',
|
|
||||||
+ 'bin/key-mapper-helper'
|
|
||||||
+ ],
|
|
||||||
install_requires=[
|
|
||||||
'setuptools',
|
|
||||||
'evdev',
|
|
||||||
@@ -1,74 +0,0 @@
|
|||||||
{
|
|
||||||
pkgs, lib
|
|
||||||
, python3Packages, python3
|
|
||||||
, gtk3, gobject-introspection, git, gnome
|
|
||||||
, wrapGAppsHook
|
|
||||||
, makeDesktopItem
|
|
||||||
, fetchFromGitHub
|
|
||||||
}:
|
|
||||||
|
|
||||||
python3Packages.buildPythonApplication rec {
|
|
||||||
pname = "key-mapper";
|
|
||||||
version = "1.2.1";
|
|
||||||
|
|
||||||
buildInputs = [ gobject-introspection gtk3 gnome.adwaita-icon-theme ];
|
|
||||||
|
|
||||||
nativeBuildInputs = [ wrapGAppsHook ];
|
|
||||||
|
|
||||||
propagatedBuildInputs = with python3.pkgs; [ setuptools pydbus evdev pygobject3 ];
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "sezanzeb";
|
|
||||||
repo = "key-mapper";
|
|
||||||
rev = version;
|
|
||||||
sha256 = "07dgp4vays1w4chhd22vlp9bxc49lcgzkvmjqgbr00m3781yjsf7";
|
|
||||||
};
|
|
||||||
|
|
||||||
doCheck = false;
|
|
||||||
strictDeps = false;
|
|
||||||
|
|
||||||
patches = [
|
|
||||||
./add-scripts.patch
|
|
||||||
./hack-data-dir.patch
|
|
||||||
];
|
|
||||||
|
|
||||||
# Fix keymapper not finding its data files
|
|
||||||
preBuild = ''
|
|
||||||
sed -e "s|@@NIXOS_OUT_PATH@@|$out/usr/share/key-mapper|" --in-place keymapper/data.py
|
|
||||||
'';
|
|
||||||
|
|
||||||
# Required as we otherwise don't get the dbus policy installed
|
|
||||||
# correctly
|
|
||||||
preInstall = ''
|
|
||||||
# see https://github.com/pypa/setuptools/issues/130
|
|
||||||
${python3}/bin/${python3.executable} setup.py install_data --install-dir=$out --root=$out
|
|
||||||
'';
|
|
||||||
|
|
||||||
postInstall = ''
|
|
||||||
# Install the udev rules
|
|
||||||
mkdir -p $out/lib/udev/rules.d
|
|
||||||
cp data/key-mapper.rules $out/lib/udev/rules.d/key-mapper.rules
|
|
||||||
sed --in-place -e "s|/bin/key-mapper-control|$out/bin/key-mapper-control|" $out/lib/udev/rules.d/key-mapper.rules
|
|
||||||
|
|
||||||
# Install the desktop file
|
|
||||||
mkdir -p $out/share/icons/hicolor/scalable/apps/
|
|
||||||
cp -r ${desktopItem}/share/applications $out/share/
|
|
||||||
cp $out/usr/share/key-mapper/key-mapper.svg $out/share/icons/hicolor/scalable/apps/key-mapper.svg
|
|
||||||
'';
|
|
||||||
|
|
||||||
desktopItem = makeDesktopItem {
|
|
||||||
name = "key-mapper";
|
|
||||||
exec = "key-mapper-gtk";
|
|
||||||
icon = "key-mapper";
|
|
||||||
desktopName = "key-mapper";
|
|
||||||
genericName = "key-mapper";
|
|
||||||
};
|
|
||||||
|
|
||||||
meta = with lib; {
|
|
||||||
homepage = "https://github.com/sezanzeb/key-mapper";
|
|
||||||
description = "A tool to change the mapping of your input device buttons";
|
|
||||||
license = licenses.gpl3;
|
|
||||||
maintainers = [ ];
|
|
||||||
platforms = lib.platforms.linux;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
diff --git a/keymapper/data.py b/keymapper/data.py
|
|
||||||
index 6f3e428..8eded95 100644
|
|
||||||
--- a/keymapper/data.py
|
|
||||||
+++ b/keymapper/data.py
|
|
||||||
@@ -68,6 +68,7 @@ def get_data_path(filename=""):
|
|
||||||
"/usr/share/key-mapper",
|
|
||||||
"/usr/local/share/key-mapper",
|
|
||||||
os.path.join(site.USER_BASE, "share/key-mapper"),
|
|
||||||
+ "@@NIXOS_OUT_PATH@@",
|
|
||||||
]
|
|
||||||
|
|
||||||
if data is None:
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
{ stdenv, lib,
|
{ stdenv, lib,
|
||||||
pkgconfig, cmake, ffmpeg, libdrm, libpulseaudio, xorg, libnotify,
|
pkg-config, cmake, ffmpeg, libdrm, libpulseaudio, xorg, libnotify,
|
||||||
fetchgit }:
|
fetchgit }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
|
|||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
pkgconfig cmake
|
pkg-config cmake
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
|
|||||||
62
packages/tools/games/sunshine/default.nix
Normal file
62
packages/tools/games/sunshine/default.nix
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
{ stdenv, lib,
|
||||||
|
pkgconfig, cmake, ffmpeg, libdrm, libpulseaudio, xorg,
|
||||||
|
libcap, wayland, libopus, boost, openssl, libevdev, mesa,
|
||||||
|
fetchgit
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "sunehine";
|
||||||
|
version = "0.10.1";
|
||||||
|
|
||||||
|
src = fetchgit {
|
||||||
|
url = "https://github.com/loki-47-6F-64/sunshine.git";
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "1aw8bis5v7rb3ixl378gqm34rx3sja7pp5g6kjd9b0yvl1bgxai6";
|
||||||
|
deepClone = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
pkgconfig cmake
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
wayland # Wayland
|
||||||
|
libdrm libcap # KMS
|
||||||
|
xorg.libxcb xorg.libX11 xorg.libXtst xorg.libXrandr xorg.libXfixes libevdev # X11
|
||||||
|
libopus libpulseaudio boost ffmpeg openssl # Common
|
||||||
|
];
|
||||||
|
|
||||||
|
propagatedBuildInputs = [ mesa ];
|
||||||
|
|
||||||
|
cmakeFlags = [
|
||||||
|
"-DSUNSHINE_ENABLE_X11=off"
|
||||||
|
"-DSUNSHINE_ENABLE_CUDA=off"
|
||||||
|
"-DCMAKE_BUILD_TYPE=Release"
|
||||||
|
];
|
||||||
|
NIX_CFLAGS_COMPILE = "-Wformat";
|
||||||
|
|
||||||
|
patches = [ ./fuck.patch ];
|
||||||
|
|
||||||
|
preConfigure = ''
|
||||||
|
# Fix hardcoded path to libevdev
|
||||||
|
sed \
|
||||||
|
-e "s|/usr/include/libevdev-1.0|${libevdev}/include/libevdev-1.0|" \
|
||||||
|
-e "s|@@SUNSHINE_ASSETS_DIR@@|$out/share/sunshine|" \
|
||||||
|
--in-place CMakeLists.txt
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
mkdir -p $out/share/sunshine/
|
||||||
|
cp -r ../assets $out/share/sunshine/assets
|
||||||
|
mv sunshine $out/bin/sunshine
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Host for Moonlight Streaming Client ";
|
||||||
|
homepage = "https://github.com/loki-47-6F-64/sunshine";
|
||||||
|
license = licenses.gpl3;
|
||||||
|
maintainers = [ ];
|
||||||
|
platforms = platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
||||||
15
packages/tools/games/sunshine/fuck.patch
Normal file
15
packages/tools/games/sunshine/fuck.patch
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index 45d4bf7..bd8c638 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -241,9 +241,7 @@ else()
|
||||||
|
list(APPEND SUNSHINE_COMPILE_OPTIONS -O3)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
-if(NOT SUNSHINE_ASSETS_DIR)
|
||||||
|
- set(SUNSHINE_ASSETS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/assets")
|
||||||
|
-endif()
|
||||||
|
+set(SUNSHINE_ASSETS_DIR "@@SUNSHINE_ASSETS_DIR@@/assets")
|
||||||
|
|
||||||
|
if(NOT SUNSHINE_CONFIG_DIR)
|
||||||
|
set(SUNSHINE_CONFIG_DIR "${SUNSHINE_ASSETS_DIR}")
|
||||||
22
packages/tools/hardware/razer-cli/default.nix
Normal file
22
packages/tools/hardware/razer-cli/default.nix
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
fetchFromGitHub,
|
||||||
|
python3, xorg
|
||||||
|
}:
|
||||||
|
|
||||||
|
python3.pkgs.buildPythonPackage rec {
|
||||||
|
pname = "razer-cli";
|
||||||
|
version = "2.1.0";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "LoLei";
|
||||||
|
repo = "razer-cli";
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "0vcyssswsw7gzk2xlpvcqc9fgvwxzyivsqmw5r9b391dv3wpr1y7";
|
||||||
|
};
|
||||||
|
|
||||||
|
doCheck = false;
|
||||||
|
|
||||||
|
buildInputs = [ xorg.xrdb ];
|
||||||
|
propagatedBuildInputs = with python3.pkgs; [ setuptools openrazer ];
|
||||||
|
}
|
||||||
31
packages/tools/system/payload-dumper/default.nix
Normal file
31
packages/tools/system/payload-dumper/default.nix
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
lib
|
||||||
|
, fetchFromGitHub
|
||||||
|
, buildGoModule
|
||||||
|
, xz
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildGoModule rec {
|
||||||
|
pname = "payload-dumper";
|
||||||
|
version = "1.2.0";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "ssut";
|
||||||
|
repo = "payload-dumper-go";
|
||||||
|
rev = version;
|
||||||
|
sha256 = "1airc6pcv9m06g35jfxvwh5pr1cxhwndny22b0liwvp4hrc99chc";
|
||||||
|
};
|
||||||
|
|
||||||
|
vendorSha256 = "sha256-CqIZFMDN/kK9bT7b/32yQ9NJAQnkI8gZUMKa6MJCaec=";
|
||||||
|
|
||||||
|
#nativeBuildInputs = [ pkg-config ];
|
||||||
|
buildInputs = [ xz ];
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "an android OTA payload dumper written in Go";
|
||||||
|
homepage = "https://github.com/ssut/payload-dumper-go";
|
||||||
|
license = licenses.asl20;
|
||||||
|
maintainers = [];
|
||||||
|
platforms = platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
||||||
708
packages/tools/virtualisation/evdev-proxy/Cargo.lock
generated
Normal file
708
packages/tools/virtualisation/evdev-proxy/Cargo.lock
generated
Normal file
@@ -0,0 +1,708 @@
|
|||||||
|
# This file is automatically @generated by Cargo.
|
||||||
|
# It is not intended for manual editing.
|
||||||
|
[[package]]
|
||||||
|
name = "aho-corasick"
|
||||||
|
version = "0.7.15"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5"
|
||||||
|
dependencies = [
|
||||||
|
"memchr",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "arrayvec"
|
||||||
|
version = "0.5.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "atty"
|
||||||
|
version = "0.2.14"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
|
||||||
|
dependencies = [
|
||||||
|
"hermit-abi",
|
||||||
|
"libc",
|
||||||
|
"winapi",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "autocfg"
|
||||||
|
version = "1.0.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "bitflags"
|
||||||
|
version = "1.2.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "cc"
|
||||||
|
version = "1.0.65"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "95752358c8f7552394baf48cd82695b345628ad3f170d607de3ca03b8dacca15"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "cfg-if"
|
||||||
|
version = "0.1.10"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "cfg-if"
|
||||||
|
version = "1.0.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "clap"
|
||||||
|
version = "3.0.0-beta.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "4bd1061998a501ee7d4b6d449020df3266ca3124b941ec56cf2005c3779ca142"
|
||||||
|
dependencies = [
|
||||||
|
"atty",
|
||||||
|
"bitflags",
|
||||||
|
"clap_derive",
|
||||||
|
"indexmap",
|
||||||
|
"lazy_static",
|
||||||
|
"os_str_bytes",
|
||||||
|
"strsim",
|
||||||
|
"termcolor",
|
||||||
|
"textwrap",
|
||||||
|
"unicode-width",
|
||||||
|
"vec_map",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "clap_derive"
|
||||||
|
version = "3.0.0-beta.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "370f715b81112975b1b69db93e0b56ea4cd4e5002ac43b2da8474106a54096a1"
|
||||||
|
dependencies = [
|
||||||
|
"heck",
|
||||||
|
"proc-macro-error",
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"syn",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "config"
|
||||||
|
version = "0.10.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "19b076e143e1d9538dde65da30f8481c2a6c44040edb8e02b9bf1351edb92ce3"
|
||||||
|
dependencies = [
|
||||||
|
"lazy_static",
|
||||||
|
"nom",
|
||||||
|
"rust-ini",
|
||||||
|
"serde 1.0.117",
|
||||||
|
"serde-hjson",
|
||||||
|
"serde_json",
|
||||||
|
"toml",
|
||||||
|
"yaml-rust",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "const_fn"
|
||||||
|
version = "0.4.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "c478836e029dcef17fb47c89023448c64f781a046e0300e257ad8225ae59afab"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "crossbeam"
|
||||||
|
version = "0.8.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "fd01a6eb3daaafa260f6fc94c3a6c36390abc2080e38e3e34ced87393fb77d80"
|
||||||
|
dependencies = [
|
||||||
|
"cfg-if 1.0.0",
|
||||||
|
"crossbeam-channel",
|
||||||
|
"crossbeam-deque",
|
||||||
|
"crossbeam-epoch",
|
||||||
|
"crossbeam-queue",
|
||||||
|
"crossbeam-utils",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "crossbeam-channel"
|
||||||
|
version = "0.5.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "dca26ee1f8d361640700bde38b2c37d8c22b3ce2d360e1fc1c74ea4b0aa7d775"
|
||||||
|
dependencies = [
|
||||||
|
"cfg-if 1.0.0",
|
||||||
|
"crossbeam-utils",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "crossbeam-deque"
|
||||||
|
version = "0.8.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9"
|
||||||
|
dependencies = [
|
||||||
|
"cfg-if 1.0.0",
|
||||||
|
"crossbeam-epoch",
|
||||||
|
"crossbeam-utils",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "crossbeam-epoch"
|
||||||
|
version = "0.9.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "a1aaa739f95311c2c7887a76863f500026092fb1dce0161dab577e559ef3569d"
|
||||||
|
dependencies = [
|
||||||
|
"cfg-if 1.0.0",
|
||||||
|
"const_fn",
|
||||||
|
"crossbeam-utils",
|
||||||
|
"lazy_static",
|
||||||
|
"memoffset",
|
||||||
|
"scopeguard",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "crossbeam-queue"
|
||||||
|
version = "0.3.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "0f6cb3c7f5b8e51bc3ebb73a2327ad4abdbd119dc13223f14f961d2f38486756"
|
||||||
|
dependencies = [
|
||||||
|
"cfg-if 1.0.0",
|
||||||
|
"crossbeam-utils",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "crossbeam-utils"
|
||||||
|
version = "0.8.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "02d96d1e189ef58269ebe5b97953da3274d83a93af647c2ddd6f9dab28cedb8d"
|
||||||
|
dependencies = [
|
||||||
|
"autocfg",
|
||||||
|
"cfg-if 1.0.0",
|
||||||
|
"lazy_static",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "env_logger"
|
||||||
|
version = "0.7.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36"
|
||||||
|
dependencies = [
|
||||||
|
"atty",
|
||||||
|
"humantime",
|
||||||
|
"log",
|
||||||
|
"regex",
|
||||||
|
"termcolor",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "evdev-proxy"
|
||||||
|
version = "0.1.1"
|
||||||
|
dependencies = [
|
||||||
|
"clap",
|
||||||
|
"config",
|
||||||
|
"crossbeam",
|
||||||
|
"input-linux",
|
||||||
|
"log",
|
||||||
|
"nix 0.19.0",
|
||||||
|
"pretty_env_logger",
|
||||||
|
"serde 1.0.117",
|
||||||
|
"serde_derive",
|
||||||
|
"udev",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "hashbrown"
|
||||||
|
version = "0.9.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "heck"
|
||||||
|
version = "0.3.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205"
|
||||||
|
dependencies = [
|
||||||
|
"unicode-segmentation",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "hermit-abi"
|
||||||
|
version = "0.1.17"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "5aca5565f760fb5b220e499d72710ed156fdb74e631659e99377d9ebfbd13ae8"
|
||||||
|
dependencies = [
|
||||||
|
"libc",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "humantime"
|
||||||
|
version = "1.3.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
|
||||||
|
dependencies = [
|
||||||
|
"quick-error",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "indexmap"
|
||||||
|
version = "1.6.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "55e2e4c765aa53a0424761bf9f41aa7a6ac1efa87238f59560640e27fca028f2"
|
||||||
|
dependencies = [
|
||||||
|
"autocfg",
|
||||||
|
"hashbrown",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "input-linux"
|
||||||
|
version = "0.3.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "e95c5622138ee0952c4779a7359c5d0e72befb2b5b708ccc9973e402be11535c"
|
||||||
|
dependencies = [
|
||||||
|
"input-linux-sys",
|
||||||
|
"nix 0.18.0",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "input-linux-sys"
|
||||||
|
version = "0.5.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "1be85879585a8f9f29bdbeb26974eee317817ec0f937352d3f66e0e4ff719278"
|
||||||
|
dependencies = [
|
||||||
|
"libc",
|
||||||
|
"nix 0.18.0",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "itoa"
|
||||||
|
version = "0.4.6"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "lazy_static"
|
||||||
|
version = "1.4.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "lexical-core"
|
||||||
|
version = "0.7.6"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "db65c6da02e61f55dae90a0ae427b2a5f6b3e8db09f58d10efab23af92592616"
|
||||||
|
dependencies = [
|
||||||
|
"arrayvec",
|
||||||
|
"bitflags",
|
||||||
|
"cfg-if 0.1.10",
|
||||||
|
"ryu",
|
||||||
|
"static_assertions",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "libc"
|
||||||
|
version = "0.2.79"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "2448f6066e80e3bfc792e9c98bf705b4b0fc6e8ef5b43e5889aff0eaa9c58743"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "libudev-sys"
|
||||||
|
version = "0.1.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "3c8469b4a23b962c1396b9b451dda50ef5b283e8dd309d69033475fa9b334324"
|
||||||
|
dependencies = [
|
||||||
|
"libc",
|
||||||
|
"pkg-config",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "linked-hash-map"
|
||||||
|
version = "0.3.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "6d262045c5b87c0861b3f004610afd0e2c851e2908d08b6c870cbb9d5f494ecd"
|
||||||
|
dependencies = [
|
||||||
|
"serde 0.8.23",
|
||||||
|
"serde_test",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "linked-hash-map"
|
||||||
|
version = "0.5.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "8dd5a6d5999d9907cda8ed67bbd137d3af8085216c2ac62de5be860bd41f304a"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "log"
|
||||||
|
version = "0.4.11"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b"
|
||||||
|
dependencies = [
|
||||||
|
"cfg-if 0.1.10",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "memchr"
|
||||||
|
version = "2.3.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "memoffset"
|
||||||
|
version = "0.6.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "157b4208e3059a8f9e78d559edc658e13df41410cb3ae03979c83130067fdd87"
|
||||||
|
dependencies = [
|
||||||
|
"autocfg",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "nix"
|
||||||
|
version = "0.18.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "83450fe6a6142ddd95fb064b746083fc4ef1705fe81f64a64e1d4b39f54a1055"
|
||||||
|
dependencies = [
|
||||||
|
"bitflags",
|
||||||
|
"cc",
|
||||||
|
"cfg-if 0.1.10",
|
||||||
|
"libc",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "nix"
|
||||||
|
version = "0.19.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "85db2feff6bf70ebc3a4793191517d5f0331100a2f10f9bf93b5e5214f32b7b7"
|
||||||
|
dependencies = [
|
||||||
|
"bitflags",
|
||||||
|
"cc",
|
||||||
|
"cfg-if 0.1.10",
|
||||||
|
"libc",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "nom"
|
||||||
|
version = "5.1.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af"
|
||||||
|
dependencies = [
|
||||||
|
"lexical-core",
|
||||||
|
"memchr",
|
||||||
|
"version_check",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "num-traits"
|
||||||
|
version = "0.1.43"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31"
|
||||||
|
dependencies = [
|
||||||
|
"num-traits 0.2.14",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "num-traits"
|
||||||
|
version = "0.2.14"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
|
||||||
|
dependencies = [
|
||||||
|
"autocfg",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "os_str_bytes"
|
||||||
|
version = "2.4.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "afb2e1c3ee07430c2cf76151675e583e0f19985fa6efae47d6848a3e2c824f85"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "pkg-config"
|
||||||
|
version = "0.3.19"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "pretty_env_logger"
|
||||||
|
version = "0.4.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "926d36b9553851b8b0005f1275891b392ee4d2d833852c417ed025477350fb9d"
|
||||||
|
dependencies = [
|
||||||
|
"env_logger",
|
||||||
|
"log",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "proc-macro-error"
|
||||||
|
version = "1.0.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro-error-attr",
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"syn",
|
||||||
|
"version_check",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "proc-macro-error-attr"
|
||||||
|
version = "1.0.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"version_check",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "proc-macro2"
|
||||||
|
version = "1.0.24"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71"
|
||||||
|
dependencies = [
|
||||||
|
"unicode-xid",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "quick-error"
|
||||||
|
version = "1.2.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "quote"
|
||||||
|
version = "1.0.7"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro2",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "regex"
|
||||||
|
version = "1.4.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "38cf2c13ed4745de91a5eb834e11c00bcc3709e773173b2ce4c56c9fbde04b9c"
|
||||||
|
dependencies = [
|
||||||
|
"aho-corasick",
|
||||||
|
"memchr",
|
||||||
|
"regex-syntax",
|
||||||
|
"thread_local",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "regex-syntax"
|
||||||
|
version = "0.6.21"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "3b181ba2dcf07aaccad5448e8ead58db5b742cf85dfe035e2227f137a539a189"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rust-ini"
|
||||||
|
version = "0.13.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "3e52c148ef37f8c375d49d5a73aa70713125b7f19095948a923f80afdeb22ec2"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "ryu"
|
||||||
|
version = "1.0.5"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "scopeguard"
|
||||||
|
version = "1.1.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "serde"
|
||||||
|
version = "0.8.23"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "9dad3f759919b92c3068c696c15c3d17238234498bbdcc80f2c469606f948ac8"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "serde"
|
||||||
|
version = "1.0.117"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "b88fa983de7720629c9387e9f517353ed404164b1e482c970a90c1a4aaf7dc1a"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "serde-hjson"
|
||||||
|
version = "0.9.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "6a3a4e0ea8a88553209f6cc6cfe8724ecad22e1acf372793c27d995290fe74f8"
|
||||||
|
dependencies = [
|
||||||
|
"lazy_static",
|
||||||
|
"linked-hash-map 0.3.0",
|
||||||
|
"num-traits 0.1.43",
|
||||||
|
"regex",
|
||||||
|
"serde 0.8.23",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "serde_derive"
|
||||||
|
version = "1.0.117"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "cbd1ae72adb44aab48f325a02444a5fc079349a8d804c1fc922aed3f7454c74e"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"syn",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "serde_json"
|
||||||
|
version = "1.0.59"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "dcac07dbffa1c65e7f816ab9eba78eb142c6d44410f4eeba1e26e4f5dfa56b95"
|
||||||
|
dependencies = [
|
||||||
|
"itoa",
|
||||||
|
"ryu",
|
||||||
|
"serde 1.0.117",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "serde_test"
|
||||||
|
version = "0.8.23"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "110b3dbdf8607ec493c22d5d947753282f3bae73c0f56d322af1e8c78e4c23d5"
|
||||||
|
dependencies = [
|
||||||
|
"serde 0.8.23",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "static_assertions"
|
||||||
|
version = "1.1.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "strsim"
|
||||||
|
version = "0.10.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "syn"
|
||||||
|
version = "1.0.52"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "6c1e438504729046a5cfae47f97c30d6d083c7d91d94603efdae3477fc070d4c"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"unicode-xid",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "termcolor"
|
||||||
|
version = "1.1.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4"
|
||||||
|
dependencies = [
|
||||||
|
"winapi-util",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "textwrap"
|
||||||
|
version = "0.12.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "203008d98caf094106cfaba70acfed15e18ed3ddb7d94e49baec153a2b462789"
|
||||||
|
dependencies = [
|
||||||
|
"unicode-width",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "thread_local"
|
||||||
|
version = "1.0.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
|
||||||
|
dependencies = [
|
||||||
|
"lazy_static",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "toml"
|
||||||
|
version = "0.5.7"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "75cf45bb0bef80604d001caaec0d09da99611b3c0fd39d3080468875cdb65645"
|
||||||
|
dependencies = [
|
||||||
|
"serde 1.0.117",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "udev"
|
||||||
|
version = "0.5.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "048df778e99eea028c08cca7853b9b521df6948b59bb29ab8bb737c057f58e6d"
|
||||||
|
dependencies = [
|
||||||
|
"libc",
|
||||||
|
"libudev-sys",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "unicode-segmentation"
|
||||||
|
version = "1.7.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "bb0d2e7be6ae3a5fa87eed5fb451aff96f2573d2694942e40543ae0bbe19c796"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "unicode-width"
|
||||||
|
version = "0.1.8"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "unicode-xid"
|
||||||
|
version = "0.2.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "vec_map"
|
||||||
|
version = "0.8.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "version_check"
|
||||||
|
version = "0.9.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "winapi"
|
||||||
|
version = "0.3.9"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
|
||||||
|
dependencies = [
|
||||||
|
"winapi-i686-pc-windows-gnu",
|
||||||
|
"winapi-x86_64-pc-windows-gnu",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "winapi-i686-pc-windows-gnu"
|
||||||
|
version = "0.4.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "winapi-util"
|
||||||
|
version = "0.1.5"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
|
||||||
|
dependencies = [
|
||||||
|
"winapi",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "winapi-x86_64-pc-windows-gnu"
|
||||||
|
version = "0.4.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "yaml-rust"
|
||||||
|
version = "0.4.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "39f0c922f1a334134dc2f7a8b67dc5d25f0735263feec974345ff706bcf20b0d"
|
||||||
|
dependencies = [
|
||||||
|
"linked-hash-map 0.5.3",
|
||||||
|
]
|
||||||
@@ -1,20 +1,26 @@
|
|||||||
{ lib, rustPlatform,
|
{
|
||||||
pkgconfig, udev }:
|
lib
|
||||||
|
, rustPlatform
|
||||||
|
, pkg-config, udev
|
||||||
|
, fetchFromGitHub
|
||||||
|
}:
|
||||||
|
|
||||||
rustPlatform.buildRustPackage {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "evdev-proxy";
|
pname = "evdev-proxy";
|
||||||
version = "0.1.1";
|
version = "0.1.1";
|
||||||
|
|
||||||
src = builtins.fetchGit {
|
src = fetchFromGitHub {
|
||||||
url = "https://github.com/redrampage/evdev-proxy.git";
|
owner = "PapaTutuWawa";
|
||||||
ref = "a21092a7b52144c3bb2b630704c990cee24cb745";
|
repo = "evdev-proxy";
|
||||||
|
rev = "32414604d776d488baa064fe355e297070406c4a";
|
||||||
|
sha256 = "sha256-wIl01UZ35P5T+lApGyqOFSLQeqBsgK/F4CCPGnCTQA4=";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoSha256 = "18y3pjkiwqpwkwrn5dbkn4rdj86c96h6i2b9ih73jajlw1xli1qy";
|
cargoSha256 = "sha256-iM6q3TGS5XjbZGvQ85AmsMVjQW/JNS/T132kQHzDCE8=";
|
||||||
|
|
||||||
patches = [ ./add-evdev-selector.patch ];
|
patches = [ ./add-evdev-selector.patch ];
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig ];
|
nativeBuildInputs = [ pkg-config ];
|
||||||
|
|
||||||
buildInputs = [ udev ];
|
buildInputs = [ udev ];
|
||||||
|
|
||||||
|
|||||||
32
packages/tools/virtualisation/virtiofsd/default.nix
Normal file
32
packages/tools/virtualisation/virtiofsd/default.nix
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
lib
|
||||||
|
, rustPlatform
|
||||||
|
, pkgconfig, libcap_ng, libseccomp
|
||||||
|
, fetchFromGitLab
|
||||||
|
}:
|
||||||
|
|
||||||
|
rustPlatform.buildRustPackage rec {
|
||||||
|
pname = "virtiofsd";
|
||||||
|
version = "1.1.0";
|
||||||
|
|
||||||
|
src = fetchFromGitLab {
|
||||||
|
owner = "virtio-fs";
|
||||||
|
repo = "virtiofsd";
|
||||||
|
rev = "a31ad19efc302836a364fd6d79bda63160404b01";
|
||||||
|
sha256 = "12nxm40sjx2jzl1j2czzanmk9b922dvfh64ndvgf5z4g4cviv33x";
|
||||||
|
};
|
||||||
|
|
||||||
|
cargoSha256 = "sha256-uRPmZE/xc0yeurBZ4rnrZua5d4lbPwStMUacFgbquuk=";
|
||||||
|
|
||||||
|
nativeBuildInputs = [ pkgconfig ];
|
||||||
|
|
||||||
|
buildInputs = [ libcap_ng libseccomp ];
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "vhost-user virtio-fs device backend written in Rust";
|
||||||
|
homepage = "https://gitlab.com/virtio-fs/virtiofsd";
|
||||||
|
license = licenses.bsd3;
|
||||||
|
maintainers = [];
|
||||||
|
platforms = platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
||||||
BIN
secrets/default.nix
Normal file
BIN
secrets/default.nix
Normal file
Binary file not shown.
Reference in New Issue
Block a user