{"id":40342026,"url":"https://github.com/knoopx/astal-shell","last_synced_at":"2026-01-20T09:04:04.049Z","repository":{"id":290950697,"uuid":"976093943","full_name":"knoopx/astal-shell","owner":"knoopx","description":null,"archived":false,"fork":false,"pushed_at":"2025-11-01T19:37:15.000Z","size":2524,"stargazers_count":16,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-01T21:16:36.817Z","etag":null,"topics":["ags","astal","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/knoopx.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":"support/brightness.ts","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-05-01T13:35:31.000Z","updated_at":"2025-11-01T19:37:18.000Z","dependencies_parsed_at":"2025-05-01T14:43:50.495Z","dependency_job_id":"81fdea16-5943-4994-9f1c-0dc8cd32a14d","html_url":"https://github.com/knoopx/astal-shell","commit_stats":null,"previous_names":["knoopx/ags","knoopx/astal-shell"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/knoopx/astal-shell","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knoopx%2Fastal-shell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knoopx%2Fastal-shell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knoopx%2Fastal-shell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knoopx%2Fastal-shell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/knoopx","download_url":"https://codeload.github.com/knoopx/astal-shell/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knoopx%2Fastal-shell/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28599850,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T08:51:33.170Z","status":"ssl_error","status_checked_at":"2026-01-20T08:51:10.855Z","response_time":117,"last_error":"SSL_read: 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":["ags","astal","typescript"],"created_at":"2026-01-20T09:04:03.976Z","updated_at":"2026-01-20T09:04:04.044Z","avatar_url":"https://github.com/knoopx.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Astal Shell\n\nAstal-based shell for my [NixOS configuration](https://github.com/knoopx/nix).\n\n![Screenshot](https://github.com/knoopx/nix/blob/master/screenshot.png)\n\n### Development\n\n```bash\n# Run the main shell\nnix run path:.\n```\n\n### Using with Home Manager\n\n```nix\n{ inputs, pkgs, ... }: {\n  imports = [ inputs.astal-shell.homeManagerModules.default ];\n\nservices.astal-shell = {\n    enable = true;\n\n    # Optional: configure display margins\n    displays = {\n      \"LG HDR 4K\" = [390 145];\n      \"DP-1\" = [250 80];\n    };\n\n    # Optional: configure theme\n    theme = {\n      background = {\n        primary = \"rgba(30, 30, 46, 1.0)\";\n        secondary = \"rgba(24, 24, 37, 1.0)\";\n      };\n      text = {\n        primary = \"rgba(205, 214, 244, 1.0)\";\n        secondary = \"rgba(186, 194, 222, 0.7)\";\n      };\n      # ... other theme options\n    };\n\n    # Optional: use a different package\n    package = pkgs.astal-shell;\n  };\n}\n```\n\n## Configuration\n\n### Display/Margins Configuration\n\nMonitors are identified using:\n\n1. Connector name (e.g., `DP-1`, `HDMI-A-1`)\n2. Model information\n3. Fallback to `monitor_{number}` naming\n\nYou can customize margins for specific displays in `~/.config/astal-shell/displays.json`:\n\n```json\n{\n  \"DP-1\": [250, 80],\n  \"HDMI-A-1\": [400, 120]\n}\n```\n\n### Theming\n\nThe shell uses a JSON-based configuration. Theme settings are stored in `~/.config/astal-shell/theme.json`:\n\n```json\n{\n  \"colors\": {\n    \"background\": {\n      \"primary\": \"rgba(0, 0, 0, 0.8)\",\n      \"secondary\": \"rgba(0, 0, 0, 0.6)\"\n    },\n    \"text\": {\n      \"primary\": \"rgba(255, 255, 255, 1.0)\",\n      \"secondary\": \"rgba(255, 255, 255, 0.8)\",\n      \"focused\": \"rgba(255, 255, 255, 1.0)\",\n      \"unfocused\": \"rgba(255, 255, 255, 0.6)\"\n    },\n    \"accent\": {\n      \"primary\": \"rgba(100, 149, 237, 0.8)\",\n      \"secondary\": \"rgba(100, 149, 237, 0.6)\",\n      \"border\": \"rgba(100, 149, 237, 0.4)\",\n      \"overlay\": \"rgba(100, 149, 237, 0.2)\"\n    },\n    \"status\": {\n      \"success\": \"rgba(76, 175, 80, 0.8)\",\n      \"warning\": \"rgba(255, 193, 7, 0.8)\",\n      \"error\": \"rgba(244, 67, 54, 0.8)\"\n    }\n  },\n  \"opacity\": {\n    \"high\": 1.0,\n    \"medium\": 0.8,\n    \"low\": 0.6\n  },\n  \"font\": {\n    \"sizes\": {\n      \"small\": \"0.8em\",\n      \"normal\": \"1em\",\n      \"large\": \"1.2em\"\n    },\n    \"weights\": {\n      \"normal\": \"normal\",\n      \"bold\": \"bold\"\n    }\n  },\n  \"spacing\": {\n    \"small\": \"4px\",\n    \"medium\": \"8px\",\n    \"large\": \"16px\"\n  },\n  \"borderRadius\": {\n    \"small\": \"2px\",\n    \"medium\": \"4px\",\n    \"large\": \"9999px\"\n  }\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fknoopx%2Fastal-shell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fknoopx%2Fastal-shell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fknoopx%2Fastal-shell/lists"}