{"id":22437662,"url":"https://github.com/justinlovinger/collage","last_synced_at":"2026-05-16T13:06:10.935Z","repository":{"id":86688363,"uuid":"291538465","full_name":"justinlovinger/collage","owner":"justinlovinger","description":"Create a collage of semi-random images","archived":false,"fork":false,"pushed_at":"2021-06-22T16:20:55.000Z","size":16,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-17T01:06:53.633Z","etag":null,"topics":["haskell","image-processing","nix"],"latest_commit_sha":null,"homepage":"","language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/justinlovinger.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-08-30T19:32:51.000Z","updated_at":"2021-07-13T23:41:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"990898f8-5792-4bf8-8707-bf16ee6883aa","html_url":"https://github.com/justinlovinger/collage","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/justinlovinger/collage","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justinlovinger%2Fcollage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justinlovinger%2Fcollage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justinlovinger%2Fcollage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justinlovinger%2Fcollage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/justinlovinger","download_url":"https://codeload.github.com/justinlovinger/collage/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justinlovinger%2Fcollage/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33103977,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T04:41:52.686Z","status":"ssl_error","status_checked_at":"2026-05-16T04:41:52.009Z","response_time":115,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["haskell","image-processing","nix"],"created_at":"2024-12-06T00:13:45.279Z","updated_at":"2026-05-16T13:06:10.914Z","avatar_url":"https://github.com/justinlovinger.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Collage\n\nCreate a collage of images\nrandomly chosen\nfrom given images.\nThe collage does not necessarily contain *all* images.\nIf the first chosen image neatly fits the given space,\nit will be the only image in the \"collage\".\n\nCollage was originally designed\nto aid random wallpaper selection,\nwhere the set of possible wallpapers\nmay contain images with aspect ratios\nthat do not fit the display.\nInstead of filling the remaining space\nwith a solid color,\nor a blur effect,\nCollage fills the remaining space\nwith more images.\n\nFor example,\n`collage -w 1920 -h 1080 ~/pictures/wallpapers/* -t ~/collage.jpg`\nmay produce\n\n![collage of bunnies](https://user-images.githubusercontent.com/7183441/91667930-3cab9480-ead6-11ea-8404-8093b6445cc4.jpg)\n\nor\n\n![another collage of bunnies](https://user-images.githubusercontent.com/7183441/91667934-433a0c00-ead6-11ea-8473-dcea4b9c2967.jpg)\n\nor\n\n![even more bunnies](https://user-images.githubusercontent.com/7183441/91667935-4c2add80-ead6-11ea-8cc4-28ce04a60303.jpg)\n\n## Installation\n\n### NixOS\n\nAdd a Nix overlay like\n\n```\nnixpkgs.overlays = [\n  (self: super: {\n    collage = (import (self.fetchFromGitHub {\n      owner = \"JustinLovinger\";\n      repo = \"collage\";\n      rev = \"LATEST_VERSION_TAG\";\n      sha256 = \"SHA25_OF_LATEST_VERSION_TAG\";\n    }) { pkgs = self; });\n  })\n];\n```\n\nGet the `sha256`\nwith `nix run nixpkgs.nix-prefetch-github -c nix-prefetch-github --rev \"LATEST_VERSION_TAG\" JustinLovinger collage`.\n\nAdd the package like\n\n```\nenvironment.systemPackages = with pkgs; [\n  collage\n];\n```\n\nIf Collage does not build with `{ pkgs = self; }`,\nyou can replace it with `{ }`\nto use pinned development dependencies.\n\n### Other Linux\n\nFollow build instructions\nand copy files\nto the expected paths\nfor your distribution.\n\n## Usage\n\nSee `man collage` or `collage --help`.\n\n## Development\n\nEnter a development shell with `nix-shell`.\n\n## Building\n\nBuild the program with `nix-build`.\nBuild man pages with `nix-build -A man`.\nBuild everything at once with `nix-build -A all`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjustinlovinger%2Fcollage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjustinlovinger%2Fcollage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjustinlovinger%2Fcollage/lists"}