imsh-clients

Clients for imsh screenshot/screencast sharing service
git clone https://git.echoz.io/imsh-clients.git
Log | Files | Refs

flake.nix (1918B)


      1 {
      2   inputs.nixpkgs.url = "nixpkgs/nixos-unstable";
      3 
      4   outputs =
      5     { self, nixpkgs, ... }:
      6     let
      7       lib = nixpkgs.lib;
      8       systems = [
      9         "aarch64-linux"
     10         "x86_64-linux"
     11       ];
     12       argsFor = system: {
     13         inherit system;
     14         pkgs = nixpkgs.legacyPackages.${system}.extend self.overlays.default;
     15       };
     16       forAllSystems = f: lib.genAttrs systems (system: f (argsFor system));
     17     in
     18     {
     19       overlays.default = import ./overlay.nix;
     20 
     21       devShells = forAllSystems (
     22         { pkgs, ... }:
     23         {
     24           default = pkgs.mkShell {
     25             packages = with pkgs; [
     26               bash
     27               coreutils
     28               curl
     29               grimblast
     30               inotify-tools
     31               jq
     32               slurp
     33               wf-recorder
     34               wl-clipboard
     35             ];
     36           };
     37         }
     38       );
     39 
     40       packages = forAllSystems (
     41         { pkgs, system, ... }:
     42         {
     43           default = self.packages.${system}.imsh-clients;
     44           imsh-clients = pkgs.symlinkJoin {
     45             name = "imsh-clients";
     46             paths = with self.packages.${system}; [
     47               imsh-shot
     48               imsh-cast
     49               imsh-cast-monitor
     50             ];
     51           };
     52           imsh-shot = pkgs.callPackage ./imsh-shot { };
     53           imsh-cast = pkgs.callPackage ./imsh-cast { };
     54           imsh-cast-monitor = pkgs.callPackage ./imsh-cast-monitor { };
     55         }
     56       );
     57 
     58       homeManagerModules = {
     59         default = self.homeManagerModules.imsh-clients;
     60         imsh-clients = ./modules/home-manager.nix;
     61       };
     62 
     63       formatter = forAllSystems (
     64         { pkgs, ... }:
     65         pkgs.treefmt.withConfig {
     66           settings = {
     67             on-unmatched = "info";
     68             formatter.nixfmt = {
     69               command = lib.getExe pkgs.nixfmt-rfc-style;
     70               includes = [ "*.nix" ];
     71             };
     72           };
     73         }
     74       );
     75     };
     76 }