This commit is contained in:
Daniel Bulant 2026-08-05 09:16:31 +02:00
parent 3c0afc8a99
commit f94ba1a7fa
No known key found for this signature in database
14 changed files with 14107 additions and 185 deletions

View file

@ -2,7 +2,7 @@ export def main [--abbreviate-java-class-paths (-j)] {
let input = (^lsof +c 0xFFFF -i -n -P)
let header = ($input | lines
| take 1
| each { str downcase | str replace ' name$' ' name state' })
| each { str lowercase | str replace ' name$' ' name state' })
let body = ($input | lines
| skip 1
| each { str replace '([^)])$' '$1 (NONE)' | str replace ' \((.+)\)$' ' $1' })

View file

@ -26,7 +26,7 @@ def --wrapped _omp_get_prompt [
# We have to do this because the initial value of `$env.CMD_DURATION_MS` is always `0823`, which is an official setting.
# See https://github.com/nushell/nushell/discussions/6402#discussioncomment-3466687.
if $env.CMD_DURATION_MS != '0823' {
$execution_time = $env.CMD_DURATION_MS
$execution_time = ($env.CMD_DURATION_MS | into int)
$no_status = false
}

View file

@ -15,11 +15,11 @@
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1783159615,
"narHash": "sha256-1RJv/P0V6HsSNnokBzXQeIZmTO3qXJDuASko7TgBmPU=",
"lastModified": 1785468701,
"narHash": "sha256-nw9ho7BM/qct4YG0lSpaeIyCXQKOqOr6A2ezfwocb3U=",
"owner": "mrshmllow",
"repo": "affinity-nix",
"rev": "eb5fb72efc11e77e34404a206d978ca8aa131b71",
"rev": "14fd628af2ce1fd56391cbf75ef48494f051e506",
"type": "github"
},
"original": {
@ -65,6 +65,29 @@
"type": "github"
}
},
"bun2nix": {
"inputs": {
"flake-parts": "flake-parts_2",
"nixpkgs": [
"nixpkgs"
],
"systems": "systems",
"treefmt-nix": "treefmt-nix_2"
},
"locked": {
"lastModified": 1784665499,
"narHash": "sha256-9BMxlTxCCDAeoNLtb1a/st7udtTIJep+wpUzquA29VU=",
"owner": "nix-community",
"repo": "bun2nix",
"rev": "0f2a1f0b6f42cebe3b149bf62d38754c5e0e9729",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "bun2nix",
"type": "github"
}
},
"codexbar": {
"inputs": {
"flake-utils": "flake-utils",
@ -73,11 +96,11 @@
]
},
"locked": {
"lastModified": 1783406237,
"narHash": "sha256-NdHbLFLLuJR2GNUr9+N9euj4DkhS40UBDl62vx2m5yQ=",
"lastModified": 1785821954,
"narHash": "sha256-1/UN9/XRIRcvsct8mEqv8017CNn+xTKMi4ENzQNSFYA=",
"owner": "0xferrous",
"repo": "CodexBar-flake",
"rev": "066f84c8995fb335764fe5eae34d487c015d000b",
"rev": "e4d6b3b3875ab1e7f75c70d9030a7d80e3b1b9a7",
"type": "github"
},
"original": {
@ -95,11 +118,11 @@
"stable": "stable"
},
"locked": {
"lastModified": 1783265280,
"narHash": "sha256-n+TVzNkFtsW+ghl7JeFJYwIbXaZ2tn/WgjVMXwlzybI=",
"lastModified": 1785582945,
"narHash": "sha256-PI+qji1xkJm3PV7l7/PKJDumFz0fbA4etXE614jRnls=",
"owner": "zhaofengli",
"repo": "colmena",
"rev": "e4250e61da7e007e19e8e17d8675b88ad27d6c06",
"rev": "84d419ad080477ed2f31fbf3866551393df647a7",
"type": "github"
},
"original": {
@ -114,11 +137,11 @@
"nixpkgs": "nixpkgs_5"
},
"locked": {
"lastModified": 1783367160,
"narHash": "sha256-/uassJ8ZX8eTU2SNasM+BRcEfmHQyDyA6Ayia0srwKE=",
"lastModified": 1785796596,
"narHash": "sha256-Zd38vtS+SEDAq+792iPS8nGUyeVAIDH6gndXhKoXsv4=",
"owner": "9001",
"repo": "copyparty",
"rev": "a523ba231f0971a59a31b5afb3e8596d2469e4df",
"rev": "ef75220faf25f2eb040f84f2ea02bc09c0c946b2",
"type": "github"
},
"original": {
@ -145,11 +168,11 @@
},
"crane": {
"locked": {
"lastModified": 1781825982,
"narHash": "sha256-SlXKwIRIhrOSAcTjCB3ftPLzJWZStQIPS7J1FlZPnKk=",
"lastModified": 1785284101,
"narHash": "sha256-ghcXEpYEM4a7pbEkoqbn8c0ptJJqgGzuFiG3T6W5g4I=",
"owner": "ipetkov",
"repo": "crane",
"rev": "469fd08d0bcf6926321fa973c6777fbc87785dd7",
"rev": "756d6d07c3818ea95d1e2cdac63fa7d02fe3e61b",
"type": "github"
},
"original": {
@ -160,11 +183,11 @@
},
"crane_2": {
"locked": {
"lastModified": 1780532242,
"narHash": "sha256-D+BsdpxmtUwtqGoY0IXPhHgTlmqgcZKCEo1oMyn7ep0=",
"lastModified": 1785782307,
"narHash": "sha256-MPaRdVkf6zZP5fCPxYCi8Dr4pZzgmXzg8T9nVEbp3Mw=",
"owner": "ipetkov",
"repo": "crane",
"rev": "59a82a1222dd3b2080b5cc52a1a2e8d5f1b77f37",
"rev": "2c71e194474d13de031d729b729c968ddbe3507f",
"type": "github"
},
"original": {
@ -174,6 +197,21 @@
}
},
"crane_3": {
"locked": {
"lastModified": 1783203018,
"narHash": "sha256-G6R9IT/xwFuu+CYBWDUAok6AdC4ERC4ZfPPFtEpxnZE=",
"owner": "ipetkov",
"repo": "crane",
"rev": "80db5bdc391be8a1794f6d8a2d56e3a84ebcede2",
"type": "github"
},
"original": {
"owner": "ipetkov",
"repo": "crane",
"type": "github"
}
},
"crane_4": {
"locked": {
"lastModified": 1769737823,
"narHash": "sha256-DrBaNpZ+sJ4stXm+0nBX7zqZT9t9P22zbk6m5YhQxS4=",
@ -195,11 +233,11 @@
]
},
"locked": {
"lastModified": 1782736090,
"narHash": "sha256-TnoKATODjWk4e1w3VhRYLWGMdXMJzDyvQF8mtD6WRGA=",
"lastModified": 1784433272,
"narHash": "sha256-5Gz3pC/rcn8LLwzLZZhrpPMqY+PDdUzoFtXV3uWoitg=",
"owner": "AvengeMedia",
"repo": "danksearch",
"rev": "1269b4688cc94cbd271e1cbbf19a6e7caa2293de",
"rev": "4b4905e2ef3454230fb648d2139f3139b742b0eb",
"type": "github"
},
"original": {
@ -217,12 +255,12 @@
"nixpkgs": "nixpkgs_7"
},
"locked": {
"lastModified": 1781815324,
"narHash": "sha256-5pDiPOe2tLKDOH59TkzP3MNiCCCbGxw3giDyRrSdP4E=",
"rev": "fdef7e382e042b1fe418f65770c3acda5933b155",
"revCount": 422,
"lastModified": 1785432255,
"narHash": "sha256-IrqJV+9NcFevwyBBqEkxkbqhX3rtJI7sSzHz5wDVaLo=",
"rev": "782adcaacdc5b72dcae7093ff07e7f0be1271a76",
"revCount": 430,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/determinate/3.21.2/019edc7b-7758-7223-a52e-d8a340361a73/source.tar.gz"
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/determinate/3.21.9/019fb411-e801-74a0-8c53-b41643853e87/source.tar.gz"
},
"original": {
"type": "tarball",
@ -232,37 +270,37 @@
"determinate-nixd-aarch64-darwin": {
"flake": false,
"locked": {
"narHash": "sha256-pQ7YeoB96bBl3iJGRdUWjdOFwahPUMwNN1yl9fwJufY=",
"narHash": "sha256-EOdnfemxahb/n6vo/7qAentrZ7zguj9Lxg3c4dGZ73c=",
"type": "file",
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.21.2/macOS"
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.21.9/macOS"
},
"original": {
"type": "file",
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.21.2/macOS"
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.21.9/macOS"
}
},
"determinate-nixd-aarch64-linux": {
"flake": false,
"locked": {
"narHash": "sha256-t6Tc358tx16GFely1je18dmrfB8Wv1FkV6nRnU7ITYY=",
"narHash": "sha256-BzjpknBhy8yI3i/WFi+8rvbI8MC6VUkty47TSDBc/yE=",
"type": "file",
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.21.2/aarch64-linux"
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.21.9/aarch64-linux"
},
"original": {
"type": "file",
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.21.2/aarch64-linux"
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.21.9/aarch64-linux"
}
},
"determinate-nixd-x86_64-linux": {
"flake": false,
"locked": {
"narHash": "sha256-M5e/05UlhljIuqS2ZMozD3OJ2MTTYol9SxQwqrzJdkk=",
"narHash": "sha256-k9OeW3/AAHm/kYAXqi5WKTMNNtQ4o9kTeBlHrXonGBA=",
"type": "file",
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.21.2/x86_64-linux"
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.21.9/x86_64-linux"
},
"original": {
"type": "file",
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.21.2/x86_64-linux"
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.21.9/x86_64-linux"
}
},
"dmm": {
@ -337,11 +375,11 @@
"rust-analyzer-src": "rust-analyzer-src"
},
"locked": {
"lastModified": 1782900513,
"narHash": "sha256-GHrsl1+ysDFgmDQtQSqWS7TiYD2Q58VlwLvnf1+crJM=",
"lastModified": 1785314864,
"narHash": "sha256-imz9J5iMNersDeQ1ymenFg35N6C2R3MCaGg2i0XCIrE=",
"owner": "nix-community",
"repo": "fenix",
"rev": "16810aa8f4ad89ca480b1513774e8b6f485fe368",
"rev": "594418b2c9ea0731bee6988236ef5bfd97e81dca",
"type": "github"
},
"original": {
@ -478,6 +516,27 @@
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": [
"bun2nix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1782949081,
"narHash": "sha256-vp6Y/Grm98ESt6ceOkWiHWyZRDV3J1RID4w+6NWK9yA=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "17c9d6cdfc60c64f4ee8d306f9bc0b4ccb51481e",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_3": {
"inputs": {
"nixpkgs-lib": [
"determinate",
@ -498,16 +557,16 @@
"url": "https://flakehub.com/f/hercules-ci/flake-parts/0.1"
}
},
"flake-parts_3": {
"flake-parts_4": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib_2"
},
"locked": {
"lastModified": 1782949081,
"narHash": "sha256-vp6Y/Grm98ESt6ceOkWiHWyZRDV3J1RID4w+6NWK9yA=",
"lastModified": 1785627969,
"narHash": "sha256-4dtXQk/NMePegK/nWp5NSeuZKLATItOq61lpEvmXqGw=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "17c9d6cdfc60c64f4ee8d306f9bc0b4ccb51481e",
"rev": "427bf4bd9435fdf21321c8cc628c24efc14c0f7a",
"type": "github"
},
"original": {
@ -516,7 +575,7 @@
"type": "github"
}
},
"flake-parts_4": {
"flake-parts_5": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib_3"
},
@ -534,7 +593,7 @@
"type": "github"
}
},
"flake-parts_5": {
"flake-parts_6": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib_4"
},
@ -552,7 +611,7 @@
"type": "github"
}
},
"flake-parts_6": {
"flake-parts_7": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib_5"
},
@ -572,7 +631,7 @@
},
"flake-utils": {
"inputs": {
"systems": "systems"
"systems": "systems_2"
},
"locked": {
"lastModified": 1731533236,
@ -590,7 +649,7 @@
},
"flake-utils_2": {
"inputs": {
"systems": "systems_2"
"systems": "systems_3"
},
"locked": {
"lastModified": 1731533236,
@ -623,7 +682,7 @@
},
"flake-utils_4": {
"inputs": {
"systems": "systems_3"
"systems": "systems_4"
},
"locked": {
"lastModified": 1731533236,
@ -641,7 +700,7 @@
},
"framewalk": {
"inputs": {
"flake-parts": "flake-parts_5",
"flake-parts": "flake-parts_6",
"nixpkgs": [
"reenv",
"nixpkgs"
@ -684,11 +743,11 @@
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1782908218,
"narHash": "sha256-wLMOrPgVyeF3XmP+qfYcLqnVdTxikdcSvbIY7rA9jTA=",
"lastModified": 1784288435,
"narHash": "sha256-ReRHaLgr/uVqdD8afFSn+myXIfpHeOhP0yYe0TJqAA8=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "9f7e99119ece7705299595299f3b031f39356de1",
"rev": "43b3c1ab9d40fb1dbb008f451988a91e375825e9",
"type": "github"
},
"original": {
@ -735,11 +794,11 @@
]
},
"locked": {
"lastModified": 1783008725,
"narHash": "sha256-jGiy6+sxjNWXSjp25uoJuNfyH9zBK1PEDY0lVoL4ibQ=",
"lastModified": 1784288435,
"narHash": "sha256-ReRHaLgr/uVqdD8afFSn+myXIfpHeOhP0yYe0TJqAA8=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "bca82caa46d5ec0f5d422c61fb1e30bc51313cbe",
"rev": "43b3c1ab9d40fb1dbb008f451988a91e375825e9",
"type": "github"
},
"original": {
@ -776,14 +835,15 @@
"nixpkgs": [
"nixpkgs"
],
"nixpkgs-darwin": "nixpkgs-darwin",
"utils": "utils"
},
"locked": {
"lastModified": 1783223803,
"narHash": "sha256-tm6T+BmxX03IV5m5YLR9RixTATCs/FXbJMjZa4kzsA8=",
"lastModified": 1785641213,
"narHash": "sha256-V9HKF0TynM6AI1sTuClNFIyr0wIwC82zNQymJs7Ldlk=",
"owner": "schembriaiden",
"repo": "helium-browser-nix-flake",
"rev": "a4d5eb6e4b8a44d84fd66fe6771c49b51369bf51",
"rev": "141470984a71fb22f1266fca6773d2a4d0991468",
"type": "github"
},
"original": {
@ -799,11 +859,11 @@
]
},
"locked": {
"lastModified": 1783525612,
"narHash": "sha256-OEFYdbtG6Qy04KGteknnrx15Uo2XXkYVuUvBvFNEn+Q=",
"lastModified": 1785531816,
"narHash": "sha256-vkMnV0JIyw+g/NmcfoajlGaAO+9a0ezia+FZohQJrik=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "1aac8895fea6fcabc6a0184c63a80fb2f99fd208",
"rev": "bf9ce9fec78f95f374e8dd3b503863a3ec128ebe",
"type": "github"
},
"original": {
@ -820,11 +880,11 @@
]
},
"locked": {
"lastModified": 1782839684,
"narHash": "sha256-vzs4SBgPsK4aNzlJR2PpFwtARazXMOxZonQnDz0YHxk=",
"lastModified": 1785531816,
"narHash": "sha256-vkMnV0JIyw+g/NmcfoajlGaAO+9a0ezia+FZohQJrik=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "2a37d71bbe69e1522ddabf03a4cea0374958bdbe",
"rev": "bf9ce9fec78f95f374e8dd3b503863a3ec128ebe",
"type": "github"
},
"original": {
@ -928,7 +988,7 @@
"hyprwire": "hyprwire",
"nixpkgs": "nixpkgs_10",
"pre-commit-hooks": "pre-commit-hooks",
"systems": "systems_5",
"systems": "systems_6",
"xdph": "xdph"
},
"locked": {
@ -1011,11 +1071,11 @@
]
},
"locked": {
"lastModified": 1783451362,
"narHash": "sha256-tQIMYvE8XWk1kO25euWAYdyxJPT+Mishl/drVG0Hb1c=",
"lastModified": 1785846949,
"narHash": "sha256-CEasxwTiWCJHR7+zYzsBFRz/td7BZJ3w8oXRRsY3/eI=",
"owner": "hyprwm",
"repo": "hyprland-plugins",
"rev": "15569344314eeedb4b8f4f4ef6144a9f5bde045e",
"rev": "95768dbac04ceb8c4a45fc257f96dc551bd0d71b",
"type": "github"
},
"original": {
@ -1261,11 +1321,11 @@
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
},
"locked": {
"lastModified": 1783510829,
"narHash": "sha256-VtZC3AiKp3w6oCTRlEaraI9Fi2T8CmdDuhzGf3lNG9M=",
"lastModified": 1785857305,
"narHash": "sha256-25q05zpF1sqOCxPPUG9DPPGd+EDW7SiAOWCzBWRS7r0=",
"owner": "sodiboo",
"repo": "niri-flake",
"rev": "ba8fc95733e53354e82dd1a821d8391dcd56e4bc",
"rev": "9ee3e13b60643448228353097880521658b2fe0e",
"type": "github"
},
"original": {
@ -1294,11 +1354,11 @@
"niri-unstable": {
"flake": false,
"locked": {
"lastModified": 1783506058,
"narHash": "sha256-LyuNO/1BM7GphVyt4C4Qj2OkdHZvM/9Hxs7mQ5ExjYc=",
"lastModified": 1785701241,
"narHash": "sha256-ircVOzPWRircI39ac/tqJajr5OoJxEVrDlBb05TULEk=",
"owner": "YaLTeR",
"repo": "niri",
"rev": "ef5b7379dc444d33b01a7faec2bd6592d3188357",
"rev": "feb3e43f1475e0865bb89cbd1e898b34d1d2ccf6",
"type": "github"
},
"original": {
@ -1309,19 +1369,19 @@
},
"nix": {
"inputs": {
"flake-parts": "flake-parts_2",
"flake-parts": "flake-parts_3",
"git-hooks-nix": "git-hooks-nix",
"nixpkgs": "nixpkgs_6",
"nixpkgs-23-11": "nixpkgs-23-11",
"nixpkgs-regression": "nixpkgs-regression"
},
"locked": {
"lastModified": 1780939209,
"narHash": "sha256-/JuW5C6sWuC836Y9b7hga3ZvhRiY4k4Zs73RRg5KVWM=",
"rev": "952beffe9c45ed245d30209d4f17cf1d26654a2a",
"revCount": 26044,
"lastModified": 1785428605,
"narHash": "sha256-wfaiSRLM1wDb4MV+NEzbyheK9Y03/oe56NR2I84UF7E=",
"rev": "0ff46631f69584c9f76792cae595ea253bd482c3",
"revCount": 26288,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/nix-src/3.21.1/019ea860-2acd-7680-ae61-10f9574b2694/source.tar.gz"
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/nix-src/3.21.9/019fb409-4d6e-7243-8a88-23ceee2520e9/source.tar.gz"
},
"original": {
"type": "tarball",
@ -1331,16 +1391,16 @@
"nix-gaming": {
"inputs": {
"flake-compat": "flake-compat_7",
"flake-parts": "flake-parts_3",
"flake-parts": "flake-parts_4",
"git-hooks": "git-hooks_2",
"nixpkgs": "nixpkgs_11"
},
"locked": {
"lastModified": 1783480870,
"narHash": "sha256-HLCRJSJauuAJxKu1cZapg2R6Q0Nt7V9qliXjIkBWoBU=",
"lastModified": 1785812511,
"narHash": "sha256-Uy9HdSGApgNS+7JzGx4yM+CqUYNnyC6f09UpwgkeIRk=",
"owner": "fufexan",
"repo": "nix-gaming",
"rev": "e142752ebb9074642ef6fe0c6599a2ee6f3c420c",
"rev": "fbfc89e7670a207bef540a6248838855fe43dfe5",
"type": "github"
},
"original": {
@ -1377,11 +1437,11 @@
]
},
"locked": {
"lastModified": 1783414108,
"narHash": "sha256-RY8e+gR2/DhXsYDxGDL6Hhe9+POD9u4+llwxMBqMQDs=",
"lastModified": 1785650611,
"narHash": "sha256-q4kR7g+pCcz6NASvoVPYu+CWWUurX03wogtBqGmR4h0=",
"owner": "nix-community",
"repo": "nix-index-database",
"rev": "96d6de10eb281b98f5cfcd1841394c03da5df77c",
"rev": "dbc756c9d7287de19b3e0e38c928c47510d42c3e",
"type": "github"
},
"original": {
@ -1410,11 +1470,11 @@
"nixpkgs": "nixpkgs_12"
},
"locked": {
"lastModified": 1783370751,
"narHash": "sha256-E+3MIMvKuo9k+K+qLQ9YXzsBzkgHuyVLnsEbN2DFfuc=",
"lastModified": 1785232496,
"narHash": "sha256-65EQYIRRpTdpH8lUiB6Mvo5uBkG60aBIzAJuALfx+O0=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "662bd6e312d2c8b212e32cb377abaee190749320",
"rev": "2e790b0a6be8ec2b76174ac0931b8ff11919ec98",
"type": "github"
},
"original": {
@ -1425,11 +1485,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1770073757,
"narHash": "sha256-Vy+G+F+3E/Tl+GMNgiHl9Pah2DgShmIUBJXmbiQPHbI=",
"lastModified": 1782918843,
"narHash": "sha256-ETYnV9U7Sr+A45dohzZdfCZKOss4qrTkO+wgNZNvEc0=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "47472570b1e607482890801aeaf29bfb749884f6",
"rev": "e8273b29fe1390ec8d4603f2477357555291432e",
"type": "github"
},
"original": {
@ -1455,6 +1515,22 @@
"type": "github"
}
},
"nixpkgs-darwin": {
"locked": {
"lastModified": 1785067121,
"narHash": "sha256-rdJdWxAcg5fnntU4DjPivPdVEN4F+VJavw+UWpEMeUI=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "329c3d2af6d1b618705150ea39f72c15eb4e613e",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-26.05-darwin",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1782614948,
@ -1472,11 +1548,11 @@
},
"nixpkgs-lib_2": {
"locked": {
"lastModified": 1782614948,
"narHash": "sha256-ePjCwr1sNm9NYUqywL7QfK3JnlS015msC+eBu2zKlp8=",
"lastModified": 1785031560,
"narHash": "sha256-OmshNvn2vupOFpYinLUu+1Dnpu4n7Q5N3ggGVNHpkUI=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "db3f255737b94216eb71cce308e2912cf6bc2d7c",
"rev": "0e79af5e3d4dcfcd676ab5ba3f95d2e3352e078c",
"type": "github"
},
"original": {
@ -1580,11 +1656,11 @@
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1783224372,
"narHash": "sha256-8i/87eeoqiGE4yOTjwSA3Eh/ziJRQEmd/unYU+K27sk=",
"lastModified": 1785828668,
"narHash": "sha256-8fsyqeO+mJqvIzeO4xIpgJe/f7MTbbVTEC6RT6WSXNs=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "d407951447dcd00442e97087bf374aad70c04cea",
"rev": "e72e4f299401a3689d4b3d5fc6496b11db7064eb",
"type": "github"
},
"original": {
@ -1628,11 +1704,11 @@
},
"nixpkgs_11": {
"locked": {
"lastModified": 1782978903,
"narHash": "sha256-bG1LAS3YehMzp4RSXw99o3yMEO/Ktb0Tx29RCtEU0Tk=",
"lastModified": 1785542685,
"narHash": "sha256-sjfvXMbG5pCFgpvw2OZAFcZiTvrppCWvnB6cuGrSY08=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "d33369954a67ae3322177dc9a3d564092912120c",
"rev": "f8e81fc7eb063db454f563cdd596fb96a5ad1497",
"type": "github"
},
"original": {
@ -1657,11 +1733,11 @@
},
"nixpkgs_13": {
"locked": {
"lastModified": 1783224372,
"narHash": "sha256-8i/87eeoqiGE4yOTjwSA3Eh/ziJRQEmd/unYU+K27sk=",
"lastModified": 1785828668,
"narHash": "sha256-8fsyqeO+mJqvIzeO4xIpgJe/f7MTbbVTEC6RT6WSXNs=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "d407951447dcd00442e97087bf374aad70c04cea",
"rev": "e72e4f299401a3689d4b3d5fc6496b11db7064eb",
"type": "github"
},
"original": {
@ -1673,11 +1749,11 @@
},
"nixpkgs_14": {
"locked": {
"lastModified": 1781074563,
"narHash": "sha256-d34lhgOet4IqYMnCxbIvwFBMOyTV6PT4TyNEOP0/ZhU=",
"rev": "9ae611a455b90cf061d8f332b977e387bda8e1ca",
"lastModified": 1783776592,
"narHash": "sha256-+GVwKnbbSmf4cWMJyRzvw8H5yFknmkLoPD5v6snqPzo=",
"rev": "e7a3ca8092b61ff85b6a45bf863ea2b2d6a661b3",
"type": "tarball",
"url": "https://releases.nixos.org/nixos/unstable/nixos-26.11pre1014179.9ae611a455b9/nixexprs.tar.xz"
"url": "https://releases.nixos.org/nixos/unstable/nixos-26.11pre1032869.e7a3ca8092b6/nixexprs.tar.xz"
},
"original": {
"type": "tarball",
@ -1702,11 +1778,11 @@
},
"nixpkgs_16": {
"locked": {
"lastModified": 1782723713,
"narHash": "sha256-oPXCU/SSUokcGaJREHibG1CBX3+s/W7orDWQOZDsEeQ=",
"lastModified": 1785454630,
"narHash": "sha256-LQy14TZp77TwbQf40gg1V3jo8FwJG0jGDkAH+zRHqg8=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "b5aa0fbd538984f6e3d201be0005b4463d8b09f8",
"rev": "1559d3daa3ecc813a650b79375ea61b6741b8746",
"type": "github"
},
"original": {
@ -1718,11 +1794,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1782723713,
"narHash": "sha256-oPXCU/SSUokcGaJREHibG1CBX3+s/W7orDWQOZDsEeQ=",
"lastModified": 1785318670,
"narHash": "sha256-dN6Ou5x/+23FZLEpYP3IffO+NyJFzUlGumt1uu3MMaY=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "b5aa0fbd538984f6e3d201be0005b4463d8b09f8",
"rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5",
"type": "github"
},
"original": {
@ -1750,11 +1826,11 @@
},
"nixpkgs_4": {
"locked": {
"lastModified": 1782723713,
"narHash": "sha256-oPXCU/SSUokcGaJREHibG1CBX3+s/W7orDWQOZDsEeQ=",
"lastModified": 1783224372,
"narHash": "sha256-8i/87eeoqiGE4yOTjwSA3Eh/ziJRQEmd/unYU+K27sk=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "b5aa0fbd538984f6e3d201be0005b4463d8b09f8",
"rev": "d407951447dcd00442e97087bf374aad70c04cea",
"type": "github"
},
"original": {
@ -1781,12 +1857,12 @@
},
"nixpkgs_6": {
"locked": {
"lastModified": 1773222311,
"narHash": "sha256-BHoB/XpbqoZkVYZCfXJXfkR+GXFqwb/4zbWnOr2cRcU=",
"rev": "0590cd39f728e129122770c029970378a79d076a",
"revCount": 909248,
"lastModified": 1782767157,
"narHash": "sha256-db/8NgfehQlPNt8rMY0J1gvwzTaURU/foM7y/AQimIM=",
"rev": "1d4e0f865d68258aada31e68e6d79c8c463f3b34",
"revCount": 914302,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2511.909248%2Brev-0590cd39f728e129122770c029970378a79d076a/019ce32b-8ace-7339-b129-cceaa8dd10c6/source.tar.gz"
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2511.914302%2Brev-1d4e0f865d68258aada31e68e6d79c8c463f3b34/019f1c78-b5ab-7af2-8516-c0d5406b0646/source.tar.gz"
},
"original": {
"type": "tarball",
@ -1795,12 +1871,12 @@
},
"nixpkgs_7": {
"locked": {
"lastModified": 1780930886,
"narHash": "sha256-rppURzHviaQN131F+nLiLdGfcb0uCd9gGP0E5+iw9MI=",
"rev": "8c3cede7ddc26bd659d2d383b5610efbd2c7a16e",
"revCount": 1012902,
"lastModified": 1784497964,
"narHash": "sha256-vlHUuqAcbcH2RKmHbPiuQzbv1pnzzavXnI62RD0bqCU=",
"rev": "241313f4e8e508cb9b13278c2b0fa25b9ca27163",
"revCount": 1037713,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/nixpkgs-weekly/0.1.1012902%2Brev-8c3cede7ddc26bd659d2d383b5610efbd2c7a16e/019eab22-bd1e-7e40-b919-277db893c789/source.tar.gz"
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/nixpkgs-weekly/0.1.1037713%2Brev-241313f4e8e508cb9b13278c2b0fa25b9ca27163/019fa760-2880-7491-9ad9-7ba4669f6a84/source.tar.gz"
},
"original": {
"type": "tarball",
@ -1841,11 +1917,11 @@
"on-linux": {
"flake": false,
"locked": {
"lastModified": 1772699425,
"narHash": "sha256-xhqkN2I5r+Ty2k8HEsLg5e8Eaazb0Qyioqjs87BQOnY=",
"lastModified": 1783797218,
"narHash": "sha256-oNQ6gvcibxa7OKPSeAtd+I7BsVLrJbEr7l8DqvZu3pU=",
"owner": "seapear",
"repo": "AffinityOnLinux",
"rev": "a0c4421946709c24c3f371fcbf15a45b814f188c",
"rev": "794bb88175f9d43b23f1e023cf0f0bc534639e21",
"type": "github"
},
"original": {
@ -1861,11 +1937,11 @@
]
},
"locked": {
"lastModified": 1783511967,
"narHash": "sha256-ZgC7vAbpzuxUaVIICjjlg3AuMsr6dtnUYcIY9AX6w2s=",
"lastModified": 1785851168,
"narHash": "sha256-Agm2pxLFfwaKRXa7nIkJ8ENTOxAd0tUH+Vj4Vpomypw=",
"owner": "getpaseo",
"repo": "paseo",
"rev": "6ca1f4dac53ec28ed16c8d3a4fc33a8fb29c017a",
"rev": "dac255cb99597159b0970d9ad8aa4c29760607be",
"type": "github"
},
"original": {
@ -1995,7 +2071,7 @@
},
"reenv": {
"inputs": {
"flake-parts": "flake-parts_4",
"flake-parts": "flake-parts_5",
"framewalk": "framewalk",
"ghidra-mcp": "ghidra-mcp",
"mcp-servers-nix": "mcp-servers-nix",
@ -2022,9 +2098,11 @@
"root": {
"inputs": {
"affinity-nix": "affinity-nix",
"bun2nix": "bun2nix",
"codexbar": "codexbar",
"colmena": "colmena",
"copyparty": "copyparty",
"crane": "crane_2",
"danksearch": "danksearch",
"determinate": "determinate",
"dmm": "dmm",
@ -2044,22 +2122,23 @@
"paseo": "paseo",
"reenv": "reenv",
"rusic": "rusic",
"spacedrive-src": "spacedrive-src",
"zed": "zed",
"zen-browser": "zen-browser"
}
},
"rusic": {
"inputs": {
"crane": "crane_2",
"crane": "crane_3",
"nixpkgs": "nixpkgs_14",
"rust-overlay": "rust-overlay_3"
},
"locked": {
"lastModified": 1783426443,
"narHash": "sha256-cjZuFPvYL2olk3MBf1rNKL68qMjtpFk51vEsyA5sZjg=",
"lastModified": 1785855311,
"narHash": "sha256-sqfI4v3J6GAMTQaB+UhnLlwpfBKFJq2JUl7fZMt1yxE=",
"owner": "temidaradev",
"repo": "rusic",
"rev": "be54cef9cabe1897634231dfdf291397f681233f",
"rev": "354ac3d04ee65aeec2a7bb38a2fe2a5406848143",
"type": "github"
},
"original": {
@ -2071,11 +2150,11 @@
"rust-analyzer-src": {
"flake": false,
"locked": {
"lastModified": 1782864348,
"narHash": "sha256-NVYhLbaefeIUftPlo3kS6qr0xd8eFJRodEiaHrvFKR4=",
"lastModified": 1785261141,
"narHash": "sha256-sA+DHPejWD68mLA7gtTiHGd5T41F6W+NKf0g+ibFCW4=",
"owner": "rust-lang",
"repo": "rust-analyzer",
"rev": "0d381ca097a8e0375a19387874d952c0a230ac4f",
"rev": "bec66814323579659ffd77c909b3d963af118ece",
"type": "github"
},
"original": {
@ -2136,11 +2215,11 @@
]
},
"locked": {
"lastModified": 1781580018,
"narHash": "sha256-BlTedbM77FmesD2ZqR73vhFy+y77UrhefV7IYw1pDsk=",
"lastModified": 1783921439,
"narHash": "sha256-DsSIQSRMrLOz40LrGZ03sp2RlJ9sz3wKpd8XPTOzXnw=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "8bceba21a1ebea535c27c4dc723a0d5a4db9e386",
"rev": "e013376c32a8fcf07ddb6ec71739552bc118b7bd",
"type": "github"
},
"original": {
@ -2170,13 +2249,29 @@
"type": "github"
}
},
"spacedrive-src": {
"flake": false,
"locked": {
"lastModified": 1785285083,
"narHash": "sha256-fS6Z7FMiplaZqjT1wUvsZ/laVsfT7GcIIJQ+/tkxKWU=",
"owner": "spacedriveapp",
"repo": "spacedrive",
"rev": "6dfeccf2113039e35f2ce735f945e70dc3e4ea45",
"type": "github"
},
"original": {
"owner": "spacedriveapp",
"repo": "spacedrive",
"type": "github"
}
},
"stable": {
"locked": {
"lastModified": 1783021296,
"narHash": "sha256-WYOmcI0zSkkU4VpR7xda8o0AWNC9xuqkEM7n4tKjJY8=",
"lastModified": 1783625654,
"narHash": "sha256-pI1244/PJfTyKhlAr2QYQC55vR6UQdnGA0rJUgtO2IQ=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "d3474199ff806484bfccd1fdef7afc27fb8d74b5",
"rev": "a0230bd8d5cbd13893b2263918d396a2c7dd0407",
"type": "github"
},
"original": {
@ -2188,16 +2283,16 @@
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"lastModified": 1776166891,
"narHash": "sha256-bI8yrEGjrohR5hkQox7UrxDH7XqrYMwI8SL/LrJ1+S8=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"repo": "triplet",
"rev": "6de7bc09397911ce03636afbcf6118745ab2cda0",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"repo": "triplet",
"type": "github"
}
},
@ -2247,6 +2342,21 @@
}
},
"systems_5": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_6": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
@ -2266,11 +2376,32 @@
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1780220602,
"narHash": "sha256-eynAfOmbmxJnkp7YewvCEbShNnnYJ9gLLqkzsYtBPeM=",
"lastModified": 1785360170,
"narHash": "sha256-XE1lKgQ3eIO3E7zWryqcRsax+mYXod/5RHBn4YaR9YE=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "db947814a175b7ca6ded66e21383d938df01c227",
"rev": "d1187f8bc71fb8aab02395869ec3f5c1920f75c0",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"treefmt-nix_2": {
"inputs": {
"nixpkgs": [
"bun2nix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1784369104,
"narHash": "sha256-47cxbcZODibHv3rELFQ9vZly0vUNkND/atn/U7HLeb0=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "df3c0640565d04a0261253cdd89fce78ec50168a",
"type": "github"
},
"original": {
@ -2281,7 +2412,7 @@
},
"utils": {
"inputs": {
"systems": "systems_4"
"systems": "systems_5"
},
"locked": {
"lastModified": 1731533236,
@ -2391,11 +2522,11 @@
"xwayland-satellite-unstable": {
"flake": false,
"locked": {
"lastModified": 1781226823,
"narHash": "sha256-28696iIw8uE0ZUyFTtzhEM8xMh85clCYypMxkvUi+sc=",
"lastModified": 1784679892,
"narHash": "sha256-Mb7jpqnrcYCfNSItIkkHpuR3YxWFxPuIBfcwNKlRBkk=",
"owner": "Supreeeme",
"repo": "xwayland-satellite",
"rev": "8575d0ef55d70f9b4c46b6bffb3accf912217e1e",
"rev": "8d135d3b2854b30fd01ea6cd6c27e523dd50a839",
"type": "github"
},
"original": {
@ -2406,17 +2537,17 @@
},
"zed": {
"inputs": {
"crane": "crane_3",
"flake-parts": "flake-parts_6",
"crane": "crane_4",
"flake-parts": "flake-parts_7",
"nixpkgs": "nixpkgs_15",
"rust-overlay": "rust-overlay_4"
},
"locked": {
"lastModified": 1783776978,
"narHash": "sha256-LHkUmvtaw+rGb5yb6AStY/WObRC29bOLLsP2sjFsR/4=",
"lastModified": 1785858789,
"narHash": "sha256-QV6eScrqGuMkV0PT7cg+VeiwuhZg5DTk6IzxxOpCWts=",
"owner": "zed-industries",
"repo": "zed",
"rev": "65e1c5af258d4c80036467d583691f3f9ded0897",
"rev": "4601ead4164ae56828bfd7d4566f918d4b337aaa",
"type": "github"
},
"original": {
@ -2431,11 +2562,11 @@
"nixpkgs": "nixpkgs_16"
},
"locked": {
"lastModified": 1783489920,
"narHash": "sha256-sZediA0pfMCXm6nA6fvO1vEsWvybEvP5GCnaAPDcTq0=",
"lastModified": 1785830592,
"narHash": "sha256-4lqvnaiXkjbMCYUkgDqkkPaD40ln0r0bCIz5pGu17EU=",
"owner": "0xc000022070",
"repo": "zen-browser-flake",
"rev": "3671c6eceee35fd06fd1f60b71eed968cc9d7449",
"rev": "3eb64fada36de0780703158ef9b1063ba697c24a",
"type": "github"
},
"original": {

View file

@ -4,6 +4,15 @@
url = "github:getpaseo/paseo";
inputs.nixpkgs.follows = "nixpkgs";
};
bun2nix = {
url = "github:nix-community/bun2nix";
inputs.nixpkgs.follows = "nixpkgs";
};
crane.url = "github:ipetkov/crane";
spacedrive-src = {
url = "github:spacedriveapp/spacedrive";
flake = false;
};
dmm = {
url = "github:deadlock-mod-manager/deadlock-mod-manager/v1.0.0";
inputs.nixpkgs.follows = "nixpkgs";
@ -84,6 +93,9 @@
hypr-kdeconnect-fix,
paseo,
reenv,
bun2nix,
crane,
spacedrive-src,
...
}@attrs:
{
@ -110,6 +122,83 @@
home-manager.useUserPackages = true;
home-manager.users.dan = import ./servers/ui-mode/home.nix;
home-manager.backupFileExtension = "backup";
nixpkgs.overlays = [
bun2nix.overlays.default
(_: prev: {
# Hyprland 0.56.1 requires glaze >= 7 and < 8, while this
# nixpkgs revision provides glaze 8.0.0.
hyprland = prev.hyprland.override {
glaze = prev.glaze.overrideAttrs (_: {
version = "7.8.3";
src = prev.fetchFromGitHub {
owner = "stephenberry";
repo = "glaze";
tag = "v7.8.3";
hash = "sha256-WqtaZ3AVDs1oIfAVQuU63eg+0753LoYfv/pRyG9OMnM=";
};
});
};
# ethnum 1.5.2 assumes TryFromIntError is zero-sized, which is
# no longer true with Rust 1.97. Apply its upstream safe fix to
# SpacetimeDB's writable Cargo vendor tree.
spacetimedb = prev.spacetimedb.overrideAttrs (old: {
postPatch = (old.postPatch or "") + ''
substituteInPlace "$cargoDepsCopy/source-registry-0/ethnum-1.5.2/src/error.rs" \
--replace-fail 'pub const fn tfie() -> TryFromIntError {' 'pub fn tfie() -> TryFromIntError {' \
--replace-fail 'unsafe { mem::transmute(()) }' 'u8::try_from(-1i8).unwrap_err()'
'';
});
# pyfilesystem2 still uses pkg_resources at runtime, which was
# removed from setuptools 82. Keep setuptools 80 build-only for
# the upstream tests, but migrate the installed package to the
# standard-library entry-point API so Python environments don't
# contain two conflicting setuptools versions.
pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [
(_: pythonPrev: {
fs = pythonPrev.fs.overridePythonAttrs (old: {
nativeCheckInputs = (old.nativeCheckInputs or [ ]) ++ [
pythonPrev.setuptools_80
];
postInstall = (old.postInstall or "") + ''
fsPath="$out/${pythonPrev.python.sitePackages}/fs"
substituteInPlace "$fsPath/__init__.py" "$fsPath/opener/__init__.py" \
--replace-fail '__import__("pkg_resources").declare_namespace(__name__) # type: ignore' ""
substituteInPlace "$fsPath/opener/registry.py" \
--replace-fail 'import pkg_resources' 'from importlib import metadata' \
--replace-fail 'pkg_resources.iter_entry_points("fs.opener")' 'metadata.entry_points(group="fs.opener")' \
--replace-fail 'pkg_resources.iter_entry_points("fs.opener", protocol)' 'iter(metadata.entry_points(group="fs.opener", name=protocol))'
'';
meta = old.meta // {
broken = false;
};
});
})
];
})
(final: _: {
spacedrive-master =
let
sources = import ./pkgs/spacedrive/nix/sources.nix {
inherit (final) lib;
root = spacedrive-src;
};
packages = import ./pkgs/spacedrive/nix {
pkgs = final;
craneLib = crane.mkLib final;
upstreamRoot = spacedrive-src;
inherit (sources)
frontendSrc
daemonRustSrc
desktopRustSrc
cliRustSrc
;
};
in
packages.spacedrive;
})
];
networking.hostName = "fern";
imports = [ ./servers/fern/hardware-configuration.nix ];
}

4932
pkgs/spacedrive/bun.lock Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,35 @@
diff --git a/apps/tauri/src-tauri/src/main.rs b/apps/tauri/src-tauri/src/main.rs
index 7c2a17f..0d22a25 100644
--- a/apps/tauri/src-tauri/src/main.rs
+++ b/apps/tauri/src-tauri/src/main.rs
@@ -17,6 +17,6 @@ use tauri::menu::MenuItem;
use tauri::Emitter;
use tauri::{AppHandle, Manager};
-use tauri_plugin_global_shortcut::ShortcutState;
+use tauri_plugin_global_shortcut::{GlobalShortcutExt, ShortcutState};
use tokio::sync::oneshot;
use tokio::sync::RwLock;
use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt};
@@ -1928,8 +1928,6 @@ fn main() {
.plugin(tauri_plugin_updater::Builder::new().build())
.plugin(
tauri_plugin_global_shortcut::Builder::new()
- .with_shortcut("Alt+Space")
- .expect("failed to register Alt+Space global shortcut")
.with_handler(|app, _shortcut, event| {
if event.state() == ShortcutState::Pressed {
if let Err(error) = windows::toggle_voice_overlay_internal(app.clone()) {
@@ -1987,6 +1985,13 @@ fn main() {
keybinds::get_registered_keybinds
])
.setup(|app| {
+ if let Err(error) = app.global_shortcut().register("Alt+Space") {
+ tracing::warn!(
+ ?error,
+ "Alt+Space is already registered; voice overlay shortcut is disabled"
+ );
+ }
+
// Setup native menu
if let Err(e) = setup_menu(app.handle()) {
tracing::warn!("Failed to setup menu: {}", e);

8249
pkgs/spacedrive/nix/bun.nix Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,341 @@
{
pkgs,
craneLib,
upstreamRoot,
frontendSrc,
daemonRustSrc,
desktopRustSrc,
cliRustSrc,
}:
let
inherit (pkgs) lib stdenv;
targetTriple = stdenv.hostPlatform.config;
pdfiumVersion = "6666";
archiveToolPackages = with pkgs; [
unzip
gnutar
gzip
bzip2
xz
p7zip
];
daemonRuntimePath = lib.makeBinPath ([ pkgs.ffmpeg_7.bin ] ++ archiveToolPackages);
gstreamerPackages = with pkgs.gst_all_1; [
gstreamer
gst-plugins-base
gst-plugins-good
gst-plugins-bad
gst-plugins-ugly
gst-libav
];
gstreamerPluginPath = lib.makeSearchPathOutput "lib" "lib/gstreamer-1.0" gstreamerPackages;
tauriCargoToml = builtins.fromTOML (
builtins.readFile "${upstreamRoot}/apps/tauri/src-tauri/Cargo.toml"
);
version = tauriCargoToml.package.version;
pdfiumUrl =
if stdenv.hostPlatform.isx86_64 then
"https://github.com/bblanchon/pdfium-binaries/releases/download/chromium%2F${pdfiumVersion}/pdfium-linux-x64.tgz"
else if stdenv.hostPlatform.isAarch64 then
"https://github.com/bblanchon/pdfium-binaries/releases/download/chromium%2F${pdfiumVersion}/pdfium-linux-arm64.tgz"
else
throw "Unsupported platform for pdfium: ${stdenv.hostPlatform.system}";
pdfiumHash =
if stdenv.hostPlatform.isx86_64 then
"sha256-stUhbZ1ZfqxqpV1eFTEMd+F0xXVP2YE3sqPh6J7yd7I="
else if stdenv.hostPlatform.isAarch64 then
"sha256-cydMLWhrN5C6WxUw6HLpl/51S05QBG/+SudvO/6MNZM="
else
throw "Unsupported platform for pdfium: ${stdenv.hostPlatform.system}";
pdfium = stdenv.mkDerivation {
pname = "pdfium";
version = pdfiumVersion;
src = pkgs.fetchurl {
url = pdfiumUrl;
hash = pdfiumHash;
};
sourceRoot = ".";
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p $out/lib $out/include
cp lib/libpdfium.so $out/lib/
cp -r include/. $out/include/
runHook postInstall
'';
};
bunNix = pkgs.runCommandLocal "spacedrive-bun.nix" { } ''
substitute ${./bun.nix} $out --replace-fail __ROOT__ ${frontendSrc}
'';
frontend = stdenv.mkDerivation {
pname = "spacedrive-frontend";
inherit version;
src = frontendSrc;
nativeBuildInputs = [ pkgs.bun2nix.hook ];
bunDeps = pkgs.bun2nix.fetchBunDeps {
bunNix = bunNix;
};
dontRunLifecycleScripts = true;
dontConfigure = true;
postPatch = ''
cp ${../bun.lock} bun.lock
'';
buildPhase = ''
runHook preBuild
bun run --filter @sd/tauri build
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out
cp -r apps/tauri/dist/. $out/
runHook postInstall
'';
};
commonNativeBuildInputs = with pkgs; [
cmake
pkg-config
protobuf
];
commonBuildInputs = with pkgs; [
openssl
];
daemonBuildInputs = commonBuildInputs ++ [
pkgs.ffmpeg_7
];
daemonNativeBuildInputs = commonNativeBuildInputs ++ [
pkgs.clang
pkgs.llvmPackages.libclang
];
desktopBuildInputs = commonBuildInputs ++ [
pkgs.dbus
pkgs.glib
pkgs.glib-networking
pkgs.gst_all_1.gstreamer
pkgs.gst_all_1.gst-libav
pkgs.gst_all_1.gst-plugins-bad
pkgs.gst_all_1.gst-plugins-base
pkgs.gst_all_1.gst-plugins-good
pkgs.gst_all_1.gst-plugins-ugly
pkgs.gtk3
pkgs.libayatana-appindicator
pkgs.libsoup_3
pkgs.webkitgtk_4_1
];
commonArgs = {
inherit version;
strictDeps = true;
doCheck = false;
CARGO_PROFILE_RELEASE_CODEGEN_UNITS = "256";
CARGO_PROFILE_RELEASE_LTO = "off";
nativeBuildInputs = commonNativeBuildInputs;
buildInputs = commonBuildInputs;
};
rust197PostPatch = ''
substituteInPlace crates/task-system/src/system.rs \
--replace-fail '.fetch_update(' '.try_update('
'';
daemonCargoArtifacts = craneLib.buildDepsOnly (
commonArgs
// {
pname = "spacedrive-cargo-artifacts";
src = daemonRustSrc;
cargoExtraArgs = "--package sd-core --bin sd-daemon --features ffmpeg";
buildInputs = daemonBuildInputs;
nativeBuildInputs = daemonNativeBuildInputs;
LIBCLANG_PATH = "${pkgs.llvmPackages.libclang.lib}/lib";
BINDGEN_EXTRA_CLANG_ARGS = "-I${pkgs.ffmpeg_7.dev}/include";
FFMPEG_DIR = "${pkgs.ffmpeg_7.dev}";
}
);
cliCargoArtifacts = craneLib.buildDepsOnly (
commonArgs
// {
pname = "sd-cli-cargo-artifacts";
src = cliRustSrc;
cargoExtraArgs = "--package sd-cli --bin sd-cli";
}
);
desktopCargoArtifacts = craneLib.buildDepsOnly (
commonArgs
// {
pname = "spacedrive-desktop-cargo-artifacts";
src = desktopRustSrc;
cargoExtraArgs = "--package spacedrive --bin Spacedrive";
buildInputs = desktopBuildInputs;
}
);
sd-daemon = craneLib.buildPackage (
commonArgs
// {
pname = "sd-daemon";
src = daemonRustSrc;
cargoArtifacts = daemonCargoArtifacts;
cargoExtraArgs = "--package sd-core --bin sd-daemon --features ffmpeg";
postPatch = rust197PostPatch;
buildInputs = daemonBuildInputs;
nativeBuildInputs = daemonNativeBuildInputs ++ [ pkgs.makeWrapper ];
LIBCLANG_PATH = "${pkgs.llvmPackages.libclang.lib}/lib";
BINDGEN_EXTRA_CLANG_ARGS = "-I${pkgs.ffmpeg_7.dev}/include";
FFMPEG_DIR = "${pkgs.ffmpeg_7.dev}";
postFixup = ''
wrapProgram $out/bin/sd-daemon \
--prefix PATH : ${daemonRuntimePath} \
--set PDFIUM_LIB_PATH ${pdfium}/lib/libpdfium.so
'';
}
);
sd-cli = craneLib.buildPackage (
commonArgs
// {
pname = "sd-cli";
src = cliRustSrc;
cargoArtifacts = cliCargoArtifacts;
cargoExtraArgs = "--package sd-cli --bin sd-cli";
postPatch = rust197PostPatch;
}
);
desktopItem = pkgs.makeDesktopItem {
name = "spacedrive";
desktopName = "Spacedrive";
exec = "spacedrive";
icon = "spacedrive";
categories = [
"FileManager"
"Utility"
];
terminal = false;
};
spacedrive-desktop = craneLib.buildPackage (
commonArgs
// {
pname = "spacedrive-desktop";
src = desktopRustSrc;
cargoArtifacts = desktopCargoArtifacts;
cargoExtraArgs = "--package spacedrive --bin Spacedrive";
patches = [ ../graceful-global-shortcut.patch ];
postPatch = rust197PostPatch;
nativeBuildInputs = commonNativeBuildInputs ++ [
pkgs.wrapGAppsHook4
];
buildInputs = desktopBuildInputs;
preBuild = ''
mkdir -p apps/tauri/dist
cp -r ${frontend}/. apps/tauri/dist/
mkdir -p target/release
cp ${sd-daemon}/bin/sd-daemon target/release/sd-daemon
cp ${sd-daemon}/bin/sd-daemon target/release/sd-daemon-${targetTriple}
chmod +x target/release/sd-daemon target/release/sd-daemon-${targetTriple}
'';
postInstall = ''
mkdir -p $out/share/icons/hicolor/128x128/apps
cp apps/tauri/src-tauri/icons/128x128.png $out/share/icons/hicolor/128x128/apps/spacedrive.png
'';
postFixup = ''
wrapProgram $out/bin/Spacedrive \
--set GST_PLUGIN_SYSTEM_PATH_1_0 ${gstreamerPluginPath} \
--set SPACEDRIVE_DAEMON_PATH ${sd-daemon}/bin/sd-daemon
'';
meta = with lib; {
description = "Spacedrive desktop application";
homepage = "https://github.com/spacedriveapp/spacedrive";
license = licenses.agpl3Only;
mainProgram = "Spacedrive";
platforms = platforms.linux;
};
}
);
spacedrive = pkgs.symlinkJoin {
name = "spacedrive";
paths = [
spacedrive-desktop
sd-daemon
desktopItem
];
buildInputs = [ pkgs.makeWrapper ];
postBuild = ''
ln -s Spacedrive $out/bin/spacedrive
'';
meta = spacedrive-desktop.meta // {
mainProgram = "spacedrive";
};
};
ui-test = pkgs.rustPlatform.buildRustPackage {
pname = "ui-test";
version = "0.1.0";
src = ../tools/ui-test;
cargoLock.lockFile = ../tools/ui-test/Cargo.lock;
meta = with lib; {
description = "Spacedrive UI test scaffold and scenario runner";
homepage = "https://github.com/spacedriveapp/spacedrive";
license = licenses.agpl3Only;
mainProgram = "ui-test";
platforms = platforms.linux;
};
};
test-ui-full = pkgs.writeShellApplication {
name = "test-ui-full";
runtimeInputs = with pkgs; [
chromium
chromedriver
curl
jq
python3
python3Packages.selenium
];
text = ''
export TEST_UI_FULL_PY=${../tools/ui-test/test_ui_full.py}
export CHROME_BIN=${pkgs.chromium}/bin/chromium
export CHROMEDRIVER_BIN=${pkgs.chromedriver}/bin/chromedriver
exec ${pkgs.bash}/bin/bash ${../tools/ui-test/test-ui-full.sh} "$@"
'';
};
in
{
inherit
frontend
sd-cli
sd-daemon
spacedrive-desktop
spacedrive
;
}

View file

@ -0,0 +1,64 @@
{ lib, root }:
let
cleaned = lib.cleanSource root;
commonCargoFiles = [
"^\\.cargo(/.*)?$"
"^Cargo\\.lock$"
"^Cargo\\.toml$"
"^rust-toolchain\\.toml$"
"^apps$"
"^apps/mobile$"
"^apps/mobile/modules$"
"^apps/mobile/modules/sd-mobile-core$"
"^apps/mobile/modules/sd-mobile-core/core$"
"^apps/mobile/modules/sd-mobile-core/core/Cargo\\.toml$"
"^apps/mobile/modules/sd-mobile-core/core/src(/.*)?$"
];
in
{
frontendSrc = lib.sources.sourceByRegex cleaned [
"^package\\.json$"
"^tsconfig\\.json$"
"^bunfig\\.toml$"
"^apps(/.*)?$"
"^packages(/.*)?$"
"^scripts(/.*)?$"
"^\\.github/actions(/.*)?$"
];
daemonRustSrc = lib.sources.sourceByRegex cleaned (
commonCargoFiles
++ [
"^apps/cli(/.*)?$"
"^apps/server(/.*)?$"
"^apps/tauri(/.*)?$"
"^core(/.*)?$"
"^crates(/.*)?$"
"^xtask(/.*)?$"
]
);
desktopRustSrc = lib.sources.sourceByRegex cleaned (
commonCargoFiles
++ [
"^apps/cli(/.*)?$"
"^apps/server(/.*)?$"
"^apps/tauri(/.*)?$"
"^core(/.*)?$"
"^crates(/.*)?$"
"^xtask(/.*)?$"
]
);
cliRustSrc = lib.sources.sourceByRegex cleaned (
commonCargoFiles
++ [
"^apps/cli(/.*)?$"
"^apps/server(/.*)?$"
"^apps/tauri(/.*)?$"
"^core(/.*)?$"
"^crates(/.*)?$"
"^xtask(/.*)?$"
]
);
}

View file

@ -23,6 +23,8 @@ let
# ntfy = 3003;
forgejo = 8300;
snaps = 8400;
matrix = 6167;
livekit = 7880;
};
internalPorts = {
prometheus-node = 9000;
@ -32,7 +34,10 @@ let
prometheus-prowlarr = 9103;
prometheus-llama-swap = 9409;
prometheus = 9090;
livekit-jwt = 8080;
};
matrixServerName = "matrix.badapple.cz";
livekitKeyFile = "/etc/secrets/livekit.keys";
in
{
deployment = {
@ -88,6 +93,36 @@ in
enable = true;
};
matrix-tuwunel = {
enable = true;
settings.global = {
server_name = matrixServerName;
port = [ ports.matrix ];
allow_registration = false;
};
};
livekit = {
enable = true;
keyFile = livekitKeyFile;
openFirewall = true;
settings = {
port = ports.livekit;
room.auto_create = false;
rtc = {
tcp_port = 7881;
use_external_ip = true;
};
};
};
lk-jwt-service = {
enable = true;
keyFile = livekitKeyFile;
livekitUrl = "wss://${matrixServerName}/livekit/sfu";
port = internalPorts.livekit-jwt;
};
sonarr = {
enable = true;
settings.server.port = ports.sonarr;
@ -300,6 +335,38 @@ in
}) (builtins.attrNames ports)
)
// {
"${matrixServerName}" = {
extraConfig = ''
@matrixClientWellKnown path /.well-known/matrix/client
handle @matrixClientWellKnown {
header Access-Control-Allow-Origin "*"
header Content-Type application/json
respond `{\"m.homeserver\":{\"base_url\":\"https://${matrixServerName}\"},\"org.matrix.msc4143.rtc_foci\":[{\"type\":\"livekit\",\"livekit_service_url\":\"https://${matrixServerName}/livekit/jwt\"}]}` 200
}
@matrixServerWellKnown path /.well-known/matrix/server
handle @matrixServerWellKnown {
header Access-Control-Allow-Origin "*"
header Content-Type application/json
respond `{\"m.server\":\"${matrixServerName}:443\"}` 200
}
@jwtService path /livekit/jwt/sfu/get /livekit/jwt/healthz
handle @jwtService {
uri strip_prefix /livekit/jwt
reverse_proxy http://localhost:${toString internalPorts.livekit-jwt}
}
@livekit path /livekit/sfu*
handle @livekit {
reverse_proxy http://localhost:${toString ports.livekit}
}
handle {
reverse_proxy http://localhost:${toString ports.matrix}
}
'';
};
"translations.danbulant.cloud:80, translations.rpi1.danbulant.cloud:80" = {
extraConfig = ''
reverse_proxy http://localhost:${toString ports.tolgee}
@ -319,6 +386,10 @@ in
group = "caddy";
};
};
systemd.services.lk-jwt-service.environment.LIVEKIT_FULL_ACCESS_HOMESERVERS = matrixServerName;
# LiveKit's TCP ICE fallback is separate from its HTTP/WebSocket port.
networking.firewall.allowedTCPPorts = [ 7881 ];
# systemd.services.syncthing.environment.STNODEFAULTFOLDER = "true";
virtualisation = {

View file

@ -21,7 +21,7 @@
fileSystems."/media/large" =
{ device = "/dev/disk/by-uuid/30f7482a-34d9-408b-8ccc-318788ff6b8d";
fsType = "btrfs";
options = [ "subvol=@" ];
# options = [ "subvol=@" ];
};
fileSystems."/boot" =

View file

@ -197,7 +197,7 @@
"https://nix-gaming.cachix.org"
"https://colmena.cachix.org"
"https://install.determinate.systems"
"https://cache.garnix.io"
# "https://cache.garnix.io"
"https://rusic.cachix.org"
"https://cuda-maintainers.cachix.org"
"https://cache.nixos-cuda.org"
@ -208,7 +208,7 @@
"nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"cache.flakehub.com-3:hJuILl5sVK4iKm86JzgdXW12Y2Hwd5G07qKtHTOcDCM="
"cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g="
# "cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g="
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
"rusic.cachix.org-1:WXMpGpamblLUiJtcoxBxGGGGwIcWxGPJBUxarLiqWmw="
"cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E="
@ -450,8 +450,11 @@
allowUnfree = true;
cudaSupport = true;
android_sdk.accept_license = true;
problems.handlers.fs.broken = "warn";
};
documentation.man.enable = false;
hardware.graphics = {
enable = true;
# Steam support
@ -460,7 +463,7 @@
hardware.enableRedistributableFirmware = true;
hardware.enableAllFirmware = true;
services.cpupower-gui.enable = true;
#services.cpupower-gui.enable = true;
services.upower.enable = true;
services.power-profiles-daemon.enable = false;
services.tlp = {

View file

@ -52,6 +52,17 @@ let
});
deadlockModManager = dmm.packages.${pkgs.system}.nightly.overrideAttrs (oldAttrs: {
pnpmDeps = pkgs.fetchPnpmDeps {
inherit (oldAttrs)
pname
version
src
;
pnpm = pkgs.pnpm_11;
fetcherVersion = 4;
sourceRoot = "source";
hash = "sha256-ZxlP6zOwY9Fxa4BCqnUoCmci3lviHn7H3HU5SnmdrSU=";
};
postPatch = (oldAttrs.postPatch or "") + ''
substituteInPlace apps/desktop/src-tauri/Cargo.toml \
--replace 'tauri-wry = ["tauri/wry"]' 'tauri-wry = ["tauri/wry"]
@ -121,6 +132,8 @@ in
stateVersion = "25.11";
packages = with pkgs; [
spacedrive-master
eden
gh
inkscape
osuLazerBinNvidia
@ -280,7 +293,7 @@ in
swaybg
activitywatchFixed
networkmanagerapplet
kubectl
#kubectl
duf
dust
#jetbrains.webstorm
@ -434,14 +447,8 @@ in
};
gtk = {
enable = true;
theme = {
package = pkgs.orchis-theme;
name = "Orchis";
};
gtk4.theme = config.gtk.theme;
};
programs.man.enable = false;
services.lorri.enable = true;
wayland.windowManager.hyprland = {
# enable = true;

View file

@ -1 +1 @@
nixos-rebuild boot --option extra-substituters "https://cache.nixos.org https://nix-community.cachix.org https://hyprland.cachix.org https://nix-gaming.cachix.org https://colmena.cachix.org https://install.determinate.systems https://cache.garnix.io https://rusic.cachix.org" --option extra-trusted-public-keys "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc= nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs= cache.flakehub.com-3:hJuILl5sVK4iKm86JzgdXW12Y2Hwd5G07qKtHTOcDCM= cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g= cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= rusic.cachix.org-1:WXMpGpamblLUiJtcoxBxGGGGwIcWxGPJBUxarLiqWmw=" --flake ".#fern"
nixos-rebuild boot --option extra-substituters "https://cache.nixos.org https://nix-community.cachix.org https://hyprland.cachix.org https://nix-gaming.cachix.org https://colmena.cachix.org https://install.determinate.systems https://cache.garnix.io https://rusic.cachix.org" --option extra-trusted-public-keys "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc= nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs= cache.flakehub.com-3:hJuILl5sVK4iKm86JzgdXW12Y2Hwd5G07qKtHTOcDCM= cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= rusic.cachix.org-1:WXMpGpamblLUiJtcoxBxGGGGwIcWxGPJBUxarLiqWmw=" --flake ".#fern"