{"id":40616402,"url":"https://github.com/novik133/novabar","last_synced_at":"2026-02-07T17:06:31.973Z","repository":{"id":331167084,"uuid":"1125532199","full_name":"novik133/NovaBar","owner":"novik133","description":"✨ Modern macOS-style panel for X11/XFCE. Integrated Global Menu, system indicators (WiFi, BT, Sound), and a sleek Control Center. Fast \u0026 lightweight, built with Vala and GTK3. 💻🎨","archived":false,"fork":false,"pushed_at":"2026-01-10T17:25:18.000Z","size":788,"stargazers_count":17,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-01-21T16:30:25.062Z","etag":null,"topics":["customisation","desktop-environment","globalmenu","gtk3","linux","macos-style","panel","top-panel","vala","xfce4"],"latest_commit_sha":null,"homepage":"","language":"Vala","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/novik133.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-30T22:39:24.000Z","updated_at":"2026-01-15T08:57:26.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/novik133/NovaBar","commit_stats":null,"previous_names":["novik133/novikbar"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/novik133/NovaBar","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novik133%2FNovaBar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novik133%2FNovaBar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novik133%2FNovaBar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novik133%2FNovaBar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/novik133","download_url":"https://codeload.github.com/novik133/NovaBar/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novik133%2FNovaBar/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29047788,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-03T14:55:20.264Z","status":"ssl_error","status_checked_at":"2026-02-03T14:55:19.725Z","response_time":96,"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":["customisation","desktop-environment","globalmenu","gtk3","linux","macos-style","panel","top-panel","vala","xfce4"],"created_at":"2026-01-21T06:09:39.264Z","updated_at":"2026-02-03T15:00:35.774Z","avatar_url":"https://github.com/novik133.png","language":"Vala","funding_links":["https://ko-fi.com/novadesktop"],"categories":[],"sub_categories":[],"readme":"[![Support me on Ko-fi](https://img.shields.io/badge/Support%20me%20on%20Ko--fi-F16061?style=for-the-badge\u0026logo=ko-fi\u0026logoColor=white)](https://ko-fi.com/novadesktop)\n# NovaBar\n\nA modern, modular macOS-style panel for Linux supporting both X11 and Wayland.\n\n![NovaBar Screenshot](Screenshots/1.png)\n\n## Features\n\n### Core Components\n- **Global Menu Bar** - Application menus integrated into the panel (X11), focused window title (Wayland)\n- **Logo Menu** - System actions menu with Nova branding\n- **System Indicators** - Network, Bluetooth, Sound, Battery, DateTime, Notifications\n- **Control Center** - Quick access to system settings\n- **Settings Panel** - Theme customization and configuration\n\n### Key Features\n- **macOS-style Design** - Clean, modern interface with transparency effects\n- **X11 \u0026 Wayland Support** - Native support for both display servers\n- **Global Menu Integration** - Application menus appear in the panel (X11)\n- **Window Tracking** - Shows focused window on Wayland via wlr-foreign-toplevel\n- **System Tray Replacement** - Modern indicators replace traditional system tray\n- **Theme Support** - Dark and light themes with CSS customization\n- **Modular Architecture** - Easy to extend with new indicators and components\n\n## Screenshots\n\n| Feature | Screenshot |\n|---------|------------|\n| Main Panel | ![Main](Screenshots/1.png) |\n| Global Menu | ![Menu](Screenshots/2.png) |\n| Global Menu2 | ![Menu2](Screenshots/3.png) |\n| Indicators | ![Indicators](Screenshots/4.png) |\n| Logo Menu | ![Logo](Screenshots/5.png) |\n\n## Requirements\n\n### System Dependencies\n- GTK+ 3.0\n- GLib 2.0\n- GIO 2.0\n- GDK X11 3.0\n- libwnck 3.0 (X11 window tracking)\n- X11\n- NetworkManager (libnm)\n\n### Wayland Dependencies (optional)\n- gtk-layer-shell (panel positioning)\n- wayland-client (protocol support)\n\n### Build Dependencies\n- Vala compiler\n- Meson build system\n- Ninja build tool\n- pkg-config\n- wayland-scanner (for Wayland support)\n\n### Runtime Requirements\n- X11 or Wayland (wlroots-based: labwc, sway, wayfire, etc.)\n- XFCE or compatible desktop environment\n- appmenu-gtk-module (for global menu support on X11)\n\n## Installation\n\n### From Source\n\n1. **Install dependencies** (Ubuntu/Debian):\n```bash\nsudo apt install valac meson ninja-build pkg-config \\\n    libgtk-3-dev libglib2.0-dev libgio2.0-dev \\\n    libgdk-x11-3.0-dev libwnck-3-dev libx11-dev \\\n    libnm-dev appmenu-gtk-module \\\n    libgtk-layer-shell-dev libwayland-dev\n```\n\n**Arch Linux:**\n```bash\nsudo pacman -S vala meson ninja pkgconf gtk3 libwnck3 \\\n    networkmanager gtk-layer-shell wayland\n```\n\n2. **Clone and build**:\n```bash\ngit clone https://github.com/novik133/NovikBar.git\ncd NovaBar\nmeson setup build\nninja -C build\n```\n\n3. **Build without Wayland** (X11 only):\n```bash\nmeson setup build -Dwayland=false\nninja -C build\n```\n\n4. **Install**:\n```bash\nsudo ninja -C build install\n```\n\n5. **Run**:\n```bash\nnovabar\n```\n\n### Auto-start Setup\n\nCreate desktop entry for auto-start:\n```bash\nmkdir -p ~/.config/autostart\ncat \u003e ~/.config/autostart/novabar.desktop \u003c\u003c EOF\n[Desktop Entry]\nType=Application\nName=NovaBar\nExec=novabar\nHidden=false\nNoDisplay=false\nX-GNOME-Autostart-enabled=true\nEOF\n```\n\n## Configuration\n\n### Global Menu Setup (X11)\n\nFor applications to show menus in the panel:\n\n1. **Install appmenu support**:\n```bash\nsudo apt install appmenu-gtk2-module appmenu-gtk3-module\n```\n\n2. **Set environment variables**:\n```bash\nexport UBUNTU_MENUPROXY=1\nexport APPMENU_DISPLAY_BOTH=1\n```\n\nAdd to `~/.profile` or `~/.xsessionrc` for persistence.\n\n### Wayland Setup\n\nNovaBar automatically detects Wayland and uses:\n- **gtk-layer-shell** for panel positioning\n- **wlr-foreign-toplevel-management** for window tracking\n\nSupported compositors:\n- labwc\n- sway\n- wayfire\n- Hyprland\n- Other wlroots-based compositors\n\n### Theme Customization\n\nNovaBar includes two built-in themes:\n- **Dark Theme** (`novaos.css`) - Default dark theme\n- **Light Theme** (`novaos-light.css`) - Light variant\n\nThemes are installed to `/usr/share/novaos/` and can be customized via the Settings panel.\n\n## Project Structure\n\n```\nNovaBar/\n├── src/\n│   ├── main.vala              # Application entry point\n│   ├── panel.vala             # Main panel window and layout\n│   ├── backend/               # X11/Wayland abstraction\n│   │   ├── backend.vala       # Runtime detection\n│   │   ├── x11.vala           # X11 panel setup\n│   │   ├── wayland.vala       # Wayland panel setup\n│   │   └── popup.vala         # Cross-platform popups\n│   ├── toplevel/              # Window tracking\n│   │   ├── tracker.vala       # Abstract interface\n│   │   ├── x11.vala           # libwnck tracking\n│   │   └── wayland.vala       # wlr-foreign-toplevel\n│   ├── wayland/               # Wayland protocol code\n│   │   ├── wlr-toplevel.c     # Protocol implementation\n│   │   ├── wlr-toplevel.h     # Header\n│   │   └── wlr-toplevel.vapi  # Vala bindings\n│   ├── globalmenu/            # Global menu integration\n│   ├── logomenu/              # Nova logo menu\n│   ├── indicators/            # System indicators\n│   │   ├── network/\n│   │   ├── bluetooth/\n│   │   ├── sound/\n│   │   ├── battery/\n│   │   ├── datetime/\n│   │   ├── notifications/\n│   │   └── controlcenter/\n│   ├── settings/              # Configuration interface\n│   └── about/                 # About dialog\n├── protocols/                 # Wayland protocol XML\n├── data/\n│   ├── novaos.css             # Dark theme stylesheet\n│   └── novaos-light.css       # Light theme stylesheet\n├── Screenshots/\n├── meson.build\n├── meson_options.txt\n├── CHANGELOG.md\n├── LICENCE.md\n└── README.md\n```\n\n## Development\n\n### Building for Development\n\n```bash\nmeson setup build --buildtype=debug\nninja -C build\n./build/novabar\n```\n\n### Adding New Indicators\n\n1. Create new directory in `src/indicators/`\n2. Implement indicator class extending appropriate base\n3. Add to `meson.build` sources\n4. Register in `panel.vala` right_box\n\n### Code Style\n\n- Follow Vala conventions\n- Use 4-space indentation\n- Document public APIs\n- Maintain modular architecture\n\n## Troubleshooting\n\n### Global Menu Not Working (X11)\n- Ensure `appmenu-gtk-module` is installed\n- Check environment variables are set\n- Restart applications after setup\n\n### Panel Not Appearing\n- Check X11/Wayland compatibility\n- Verify dependencies are installed\n- Run from terminal to see error messages\n\n### Wayland Issues\n- Ensure compositor supports wlr-foreign-toplevel-management\n- Check gtk-layer-shell is installed\n- Verify wayland-client is available\n\n### High CPU Usage\n- Check for window manager conflicts\n- Disable other panels/docks\n- Monitor system resources\n\n## Contributing\n\n1. Fork the repository\n2. Create feature branch\n3. Make changes following code style\n4. Test thoroughly on both X11 and Wayland\n5. Submit pull request\n\n## License\n\nGPL-3.0 - See [LICENCE](LICENCE.md) for details.\n\n## Credits\n\n- Built with Vala and GTK3\n- Inspired by macOS design principles\n- Uses libwnck for X11 window management\n- Uses gtk-layer-shell for Wayland support\n- Uses wlr-foreign-toplevel-management for Wayland window tracking\n- NetworkManager integration for network status\n\n---\n\n**NovaBar** - Bringing macOS-style elegance to Linux desktops.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnovik133%2Fnovabar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnovik133%2Fnovabar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnovik133%2Fnovabar/lists"}