This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

superconfig / tools / workspace-manager / flake-module.nix
3.4 kB 108 lines
1{ ... }: 2{ 3 perSystem = 4 { 5 pkgs, 6 ... 7 }: 8 let 9 python = pkgs.python3; 10 in 11 { 12 packages.workspace-manager = 13 (pkgs.writeShellApplication { 14 name = "workspace-manager"; 15 runtimeInputs = [ 16 pkgs.socat 17 pkgs.jq 18 ]; 19 text = builtins.readFile ./workspace-manager.sh; 20 }).overrideAttrs 21 { passthru.usage = builtins.readFile ./usage.kdl; }; 22 23 packages.workspace-manager-daemon = pkgs.stdenv.mkDerivation { 24 pname = "workspace-manager-daemon"; 25 version = "0.1.0"; 26 src = ./.; 27 nativeBuildInputs = [ 28 pkgs.makeWrapper 29 pkgs.ruff 30 python.pkgs.mypy 31 ]; 32 doCheck = true; 33 checkPhase = '' 34 runHook preCheck 35 ruff check daemon.py 36 ruff format --check daemon.py 37 mypy --strict daemon.py 38 runHook postCheck 39 ''; 40 installPhase = '' 41 runHook preInstall 42 mkdir -p $out/bin 43 cp daemon.py $out/bin/workspace-manager-daemon 44 chmod +x $out/bin/workspace-manager-daemon 45 wrapProgram $out/bin/workspace-manager-daemon \ 46 --prefix PATH : ${python}/bin:${pkgs.sway}/bin:${pkgs.tmux}/bin 47 runHook postInstall 48 ''; 49 meta.mainProgram = "workspace-manager-daemon"; 50 }; 51 52 # Open Firefox for the current workspace 53 packages.workspace-browser = pkgs.writeShellScriptBin "workspace-browser" '' 54 exec firefox "$@" 55 ''; 56 57 # Native messaging host for the workspace-tabs Firefox extension 58 packages.workspace-tabs-native-host = pkgs.stdenv.mkDerivation { 59 pname = "workspace-tabs-native-host"; 60 version = "0.1.0"; 61 src = ./.; 62 nativeBuildInputs = [ 63 pkgs.makeWrapper 64 pkgs.ruff 65 python.pkgs.mypy 66 ]; 67 doCheck = true; 68 checkPhase = '' 69 runHook preCheck 70 ruff check workspace-tabs-host.py 71 ruff format --check workspace-tabs-host.py 72 mypy --strict workspace-tabs-host.py 73 runHook postCheck 74 ''; 75 installPhase = '' 76 runHook preInstall 77 mkdir -p $out/bin $out/lib/mozilla/native-messaging-hosts 78 cp workspace-tabs-host.py $out/bin/workspace-tabs-host 79 chmod +x $out/bin/workspace-tabs-host 80 wrapProgram $out/bin/workspace-tabs-host \ 81 --prefix PATH : ${python}/bin:${pkgs.sway}/bin 82 83 cat > $out/lib/mozilla/native-messaging-hosts/workspace_tabs.json <<EOF 84 { 85 "name": "workspace_tabs", 86 "description": "Native messaging host for Workspace Tabs extension", 87 "path": "$out/bin/workspace-tabs-host", 88 "type": "stdio", 89 "allowed_extensions": ["workspace-tabs@workspace-manager"] 90 } 91 EOF 92 runHook postInstall 93 ''; 94 }; 95 96 # Firefox extension for workspace tab management (packaged as .xpi) 97 packages.workspace-tabs-extension = 98 pkgs.runCommand "workspace-tabs-extension" 99 { 100 nativeBuildInputs = [ pkgs.zip ]; 101 } 102 '' 103 mkdir -p $out 104 cd ${./firefox-extension} 105 zip -r "$out/workspace-tabs@workspace-manager.xpi" ./* 106 ''; 107 }; 108}