{"id":47908383,"url":"https://github.com/naftaliro/first-steps","last_synced_at":"2026-04-04T05:01:03.556Z","repository":{"id":343127563,"uuid":"1176347755","full_name":"Naftaliro/first-steps","owner":"Naftaliro","description":"GTK4 + LibAdwaita onboarding wizard for Zorin OS 18 and Ubuntu-based systems. Codecs, Flatpak, drivers, backups, power profiles, and more — all without a terminal.","archived":false,"fork":false,"pushed_at":"2026-03-13T23:03:22.000Z","size":165,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-04T04:59:53.840Z","etag":null,"topics":["gnome","gtk4","libadwaita","linux","onboarding","python","setup-wizard","ubuntu","zorin-os"],"latest_commit_sha":null,"homepage":"https://github.com/Naftaliro/first-steps","language":"Python","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/Naftaliro.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-08T23:37:43.000Z","updated_at":"2026-03-13T23:03:07.000Z","dependencies_parsed_at":null,"dependency_job_id":"d3ea786e-a478-4034-94a0-6c7850ce5c33","html_url":"https://github.com/Naftaliro/first-steps","commit_stats":null,"previous_names":["naftaliro/first-steps"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/Naftaliro/first-steps","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Naftaliro%2Ffirst-steps","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Naftaliro%2Ffirst-steps/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Naftaliro%2Ffirst-steps/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Naftaliro%2Ffirst-steps/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Naftaliro","download_url":"https://codeload.github.com/Naftaliro/first-steps/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Naftaliro%2Ffirst-steps/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31388169,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T04:26:24.776Z","status":"ssl_error","status_checked_at":"2026-04-04T04:23:34.147Z","response_time":60,"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":["gnome","gtk4","libadwaita","linux","onboarding","python","setup-wizard","ubuntu","zorin-os"],"created_at":"2026-04-04T05:00:25.227Z","updated_at":"2026-04-04T05:01:03.551Z","avatar_url":"https://github.com/Naftaliro.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# First Steps — Onboarding Wizard for Zorin OS\n\nA GTK4 + LibAdwaita onboarding wizard for Zorin OS 18 and other Ubuntu-based systems. Think of it like a welcome wizard that actually *does things*, not just shows links. Clean, checkbox-driven interface for everything you need on a fresh install.\n\n---\n\n## Installation\n\n### One-Liner Install (Recommended)\n\nPaste this into a terminal and you're done:\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/Naftaliro/first-steps/main/scripts/install-online.sh | sudo bash\n```\n\nThis automatically installs all dependencies, downloads the latest release, **verifies its SHA-256 checksum**, and sets everything up. To uninstall: `sudo apt remove first-steps`.\n\n### Download the .deb Package\n\nGrab the `.deb` from the [Releases page](https://github.com/Naftaliro/first-steps/releases/latest) and double-click it, or install the latest version from the terminal:\n\n```bash\n# Automatically download the latest .deb from GitHub Releases\nDEB_URL=$(curl -fsSL https://api.github.com/repos/Naftaliro/first-steps/releases/latest \\\n  | grep -o '\"browser_download_url\"[^\"]*\\.deb\"' | grep -o 'https://[^\"]*')\nwget \"$DEB_URL\" -O first-steps-latest.deb\nsudo apt install ./first-steps-latest.deb\n```\n\n### Install from Source\n\n```bash\ngit clone https://github.com/Naftaliro/first-steps.git\ncd first-steps\nsudo ./install.sh\n```\n\nTo uninstall: `sudo ./install.sh remove`\n\n---\n\n## Features\n\n### Setup Pages (14 total)\n\n| Page | What It Does |\n|------|-------------|\n| **Welcome** | System info card (OS, CPU, GPU, RAM, disk), overview of all sections |\n| **Codecs \u0026 Media** | One-click install of `ubuntu-restricted-extras`, GStreamer plugins (good/bad/ugly/libav), DVD support, VA-API |\n| **Flatpak \u0026 Apps** | Detects/enables Flathub, curated picker of 16 apps across Media, Productivity, Internet, Gaming, Development |\n| **Drivers** | Wraps `ubuntu-drivers devices` — scans hardware, shows recommended flags, one-click install |\n| **Windows Apps** | Installs Bottles via Flatpak, optional Wine deps + GameMode, guided first-bottle creation |\n| **Backup** | Installs + configures Timeshift — schedule toggles, retention spinners, home exclusion, first snapshot |\n| **Power** | Power profile dropdown, lid behavior for AC/battery, auto-suspend timeouts, screen dim toggle |\n| **Firewall** | Enables UFW with deny-incoming/allow-outgoing defaults, 8 common service exceptions |\n| **Network** | Connectivity check (HTTP/DNS/latency), DNS configuration (Cloudflare/Google/Quad9), network tools installer |\n| **Privacy** | Disable Ubuntu telemetry/Whoopsie/popularity-contest, GNOME privacy settings, browser extension recommendations |\n| **Development** | Git identity config, code editor installer (VS Code/Codium/Zed/etc.), Docker/Podman, language runtimes, dev utilities |\n| **Language** | Language packs (12 languages), input methods (IBus/Fcitx5), spell-check dictionaries, font installer (Noto/Fira/Cascadia) |\n| **Extras** | Theme Switcher installer, theme packs, system update, accessibility toggles, utility installer |\n| **Summary** | Live recap of all actions + export setup report as Markdown + recommended next steps |\n\n### UX Features\n\n| Feature | Details |\n|---------|---------|\n| **Dark/Light Mode Toggle** | One-click toggle in the header bar (Ctrl+D) |\n| **Sidebar Progress Indicators** | Green checkmarks appear next to completed sections |\n| **Skip / \"I've Done This\"** | Every page has a skip button for power users who've already configured things |\n| **Keyboard Shortcuts** | Ctrl+1–0 for page navigation, Ctrl+Q to quit, Ctrl+D for dark mode |\n| **Export Setup Report** | Save a Markdown report of everything configured during the session |\n| **Auto-Update** | Checks GitHub Releases on launch, offers one-click in-app upgrade |\n| **Toast Notifications** | Every action shows success/failure feedback via in-app toasts |\n| **Privileged Operations** | Uses `pkexec` with a dedicated polkit policy — one auth prompt, no terminal |\n| **Async Execution** | All installs run in background threads with spinner feedback |\n\n---\n\n## Legal \u0026 Licensing\n\nThis project is licensed under the **GNU General Public License v3.0 or later**.\n\n- A copy of the license is available in the [LICENSE](LICENSE) file.\n- The application icon is original work created for this project and is also licensed under GPL-3.0-or-later.\n- This project is not affiliated with or endorsed by Zorin Group. All branding is original to \"First Steps\" to avoid trademark infringement.\n- For a full list of dependencies and their licenses, see the [NOTICE](NOTICE) file.\n- A comprehensive licensing audit is available in [LICENSING-AUDIT.md](LICENSING-AUDIT.md).\n\n## Security\n\nThe one-liner installer verifies SHA-256 checksums before installing. To report a security vulnerability, please see [SECURITY.md](SECURITY.md) for responsible disclosure instructions.\n\n## Contributing\n\nContributions are welcome! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines on reporting bugs, suggesting features, and submitting code.\n\n## Development\n\nThe application is written in Python using the PyGObject bindings for GTK4 and Libadwaita.\n\n| Component | Path |\n|-----------|------|\n| Main Application | `first_steps/app.py` |\n| Auto-Update Module | `first_steps/updater.py` |\n| UI Pages (14) | `first_steps/pages/` |\n| Base Page Class | `first_steps/pages/__init__.py` |\n| Privileged Helper | `scripts/first-steps-helper` |\n| Polkit Policy | `data/io.github.firststeps.policy` |\n| Install Script | `install.sh` |\n| .deb Build Script | `packaging/build-deb.sh` |\n| Online Installer | `scripts/install-online.sh` |\n| Tests (50+) | `tests/` |\n\nTo run from the source tree without installing:\n\n```bash\n./first-steps\n```\n\nTo rebuild the .deb package:\n\n```bash\n./packaging/build-deb.sh\n```\n\nTo run the test suite:\n\n```bash\npython3 -m pytest tests/ -v\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnaftaliro%2Ffirst-steps","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnaftaliro%2Ffirst-steps","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnaftaliro%2Ffirst-steps/lists"}