diff --git a/Makefile b/Makefile index 9939e57..95ff7ad 100644 --- a/Makefile +++ b/Makefile @@ -1,2 +1,2 @@ run: - python -m bar.main --config ./example-stylix-dev.yaml + python -m sims.main --config ./example-stylix-dev.yaml diff --git a/example-stylix-dev.yaml b/example-stylix-dev.yaml index 732d739..01462a8 100644 --- a/example-stylix-dev.yaml +++ b/example-stylix-dev.yaml @@ -1,9 +1,9 @@ height: 42 dev: true window_title: - enable: false + enable: true vinyl: - enable: false + enable: true battery: enable: true calendar: diff --git a/flake.nix b/flake.nix index 2b10ad9..2fefdf6 100644 --- a/flake.nix +++ b/flake.nix @@ -1,5 +1,5 @@ { - description = "Fabric Bar Example"; + description = "sims status bar (companion to fenster WM)."; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/24.11"; @@ -34,22 +34,21 @@ devShells.default = pkgs.callPackage ./nix/shell.nix { inherit pkgs; }; packages = { default = pkgs.callPackage ./nix/derivation.nix { inherit (pkgs) lib python3Packages; }; - makku = pkgs.writeShellScriptBin "makku" '' - dbus-send --session --print-reply --dest=org.Fabric.fabric.bar /org/Fabric/fabric org.Fabric.fabric.Evaluate string:"finder.show()" > /dev/null 2>&1 - ''; - notmuch-refresh = pkgs.writeShellScriptBin "notmuch-refresh" '' - dbus-send --session --print-reply --dest=org.Fabric.fabric.bar /org/Fabric/fabric org.Fabric.fabric.Evaluate string:"notmuch_widget.service.update_unread_count() if notmuch_widget else None" > /dev/null 2>&1 - ''; + sims-cli = pkgs.writeShellApplication { + name = "sims-cli"; + runtimeInputs = [ pkgs.dbus ]; + text = builtins.readFile ./scripts/sims-cli.sh; + }; }; apps.default = { type = "app"; - program = "${self.packages.${system}.default}/bin/bar"; + program = "${self.packages.${system}.default}/bin/sims"; }; } ) // { homeManagerModules = { - makku-bar = + sims = { config, lib, @@ -57,18 +56,18 @@ ... }: let - cfg = config.services.makku-bar; + cfg = config.services.sims; settingsFormat = pkgs.formats.yaml { }; in { - options.services.makku-bar = { - enable = lib.mkEnableOption "makku-bar status bar"; + options.services.sims = { + enable = lib.mkEnableOption "sims status bar"; package = lib.mkOption { type = lib.types.package; default = self.packages.${pkgs.system}.default; - description = "The makku-bar package to use."; + description = "The sims package to use."; }; settings = lib.mkOption { @@ -159,19 +158,19 @@ }; }; - config = lib.mkIf config.services.makku-bar.enable { - systemd.user.services.makku-bar = + config = lib.mkIf config.services.sims.enable { + systemd.user.services.sims = let configFile = settingsFormat.generate "config.yaml" cfg.settings; in { Unit = { - Description = "Makku Status Bar"; + Description = "sims status bar"; After = [ "graphical-session.target" ]; }; Service = { - ExecStart = "${config.services.makku-bar.package}/bin/bar --config ${configFile}"; + ExecStart = "${config.services.sims.package}/bin/sims --config ${configFile}"; Restart = "on-failure"; }; @@ -181,7 +180,7 @@ }; }; }; - stylix-makku-bar = import ./nix/stylix/hm.nix; + stylix-sims = import ./nix/stylix/hm.nix; }; }; } diff --git a/nix/derivation.nix b/nix/derivation.nix index f6f8ea1..b1067a8 100644 --- a/nix/derivation.nix +++ b/nix/derivation.nix @@ -19,7 +19,7 @@ }: python3Packages.buildPythonApplication { - pname = "fabric-nix-example"; + pname = "sims"; version = "0.0.1"; pyproject = true; @@ -58,12 +58,12 @@ python3Packages.buildPythonApplication { runHook preInstall mkdir -p $out/${python3Packages.python.sitePackages} - cp -r bar $out/${python3Packages.python.sitePackages}/ + cp -r sims $out/${python3Packages.python.sitePackages}/ # If you have any scripts to install mkdir -p $out/bin - cp scripts/launcher.py $out/bin/bar - chmod +x $out/bin/bar + cp scripts/launcher.py $out/bin/sims + chmod +x $out/bin/sims runHook postInstall @@ -81,7 +81,7 @@ python3Packages.buildPythonApplication { meta = { changelog = ""; description = '' - Fabrix Bar Example + sims status bar (companion to fenster WM). ''; homepage = "https://github.com/wholikeel/fabric"; license = lib.licenses.agpl3Only; diff --git a/nix/stylix/hm.nix b/nix/stylix/hm.nix index 60b3336..0300681 100644 --- a/nix/stylix/hm.nix +++ b/nix/stylix/hm.nix @@ -1,14 +1,14 @@ { config, lib, ... }: let - cfg = config.stylix.targets.makku-bar; + cfg = config.stylix.targets.sims; in { - options.stylix.targets.makku-bar.enable = - config.lib.stylix.mkEnableTarget "Makku Bar" true; + options.stylix.targets.sims.enable = + config.lib.stylix.mkEnableTarget "sims" true; config = lib.mkIf (config.stylix.enable && cfg.enable) { - services.makku-bar.settings.stylix = { + services.sims.settings.stylix = { enable = true; colors = { base00 = config.lib.stylix.colors.base00; # background diff --git a/pyproject.toml b/pyproject.toml index c681a0c..94282a9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,14 +3,14 @@ requires = ["setuptools>=61.0"] build-backend = "setuptools.build_meta" [project] -name = "fabric-nix-example" +name = "sims" version = "0.0.1" requires-python = ">= 3.11" authors = [ ] maintainers = [ ] -description = "Fabric using Nix example." +description = "sims status bar (companion to fenster WM)." readme = "README.md" license = {file = "LICENSE"} diff --git a/scripts/launcher.py b/scripts/launcher.py index 2cd05e7..80c70ca 100644 --- a/scripts/launcher.py +++ b/scripts/launcher.py @@ -15,7 +15,7 @@ if site_packages_dir not in sys.path: sys.path.insert(0, site_packages_dir) -from bar.main import * +from sims.main import * sys.argv[0] = os.path.join(script_dir, os.path.basename(__file__)) sys.exit(main()) diff --git a/bar/__init__.py b/sims/__init__.py similarity index 100% rename from bar/__init__.py rename to sims/__init__.py diff --git a/bar/config.py b/sims/config.py similarity index 95% rename from bar/config.py rename to sims/config.py index 4b903e3..58ca209 100644 --- a/bar/config.py +++ b/sims/config.py @@ -4,7 +4,7 @@ from platformdirs import user_config_dir import argparse -APP_NAME = "makku_bar" +APP_NAME = "sims" XDG_CONFIG_HOME = user_config_dir(appname=APP_NAME) XDG_CONFIG_FILE = os.path.join(XDG_CONFIG_HOME, "config.yaml") @@ -32,7 +32,7 @@ def load_config(config_path=XDG_CONFIG_FILE): def load_args(): - parser = argparse.ArgumentParser(description="makku_bar") + parser = argparse.ArgumentParser(description="sims") parser.add_argument( "-c", "--config", diff --git a/bar/main.py b/sims/main.py similarity index 98% rename from bar/main.py rename to sims/main.py index bb2bb56..6fb8222 100644 --- a/bar/main.py +++ b/sims/main.py @@ -34,7 +34,7 @@ finder = FuzzyWindowFinder() bar_windows = [] notmuch_widget = None -app = Application("bar", dummy, finder) +app = Application("sims", dummy, finder) # Load CSS - use Stylix if enabled, otherwise use default if STYLIX.get("enable", False): diff --git a/bar/modules/__init__.py b/sims/modules/__init__.py similarity index 100% rename from bar/modules/__init__.py rename to sims/modules/__init__.py diff --git a/bar/modules/bar.py b/sims/modules/bar.py similarity index 91% rename from bar/modules/bar.py rename to sims/modules/bar.py index 0069439..9759309 100644 --- a/bar/modules/bar.py +++ b/sims/modules/bar.py @@ -5,20 +5,20 @@ from fabric.widgets.image import Image from fabric.widgets.overlay import Overlay from fabric.widgets.datetime import DateTime from fabric.widgets.centerbox import CenterBox -from bar.modules.player import Player -from bar.modules.vinyl import VinylButton -from bar.modules.quick_menu import QuickMenuOpener -from bar.modules.battery import Battery -from bar.modules.calendar import CalendarService, CalendarPopup -from bar.modules.notmuch import NotmuchWidget +from sims.modules.player import Player +from sims.modules.vinyl import VinylButton +from sims.modules.quick_menu import QuickMenuOpener +from sims.modules.battery import Battery +from sims.modules.calendar import CalendarService, CalendarPopup +from sims.modules.notmuch import NotmuchWidget from fabric.widgets.wayland import WaylandWindow as Window from fabric.system_tray.widgets import SystemTray -from bar.widgets.fenster import FensterWorkspaces, FensterWorkspaceButton, FensterActiveWindow -from bar.services.fenster import get_i3_connection +from sims.widgets.fenster import FensterWorkspaces, FensterWorkspaceButton, FensterActiveWindow +from sims.services.fenster import get_i3_connection from fabric.widgets.circularprogressbar import CircularProgressBar -from bar.services.system_stats import SystemStatsService +from sims.services.system_stats import SystemStatsService -from bar.config import VINYL, BATTERY, BAR_HEIGHT, WINDOW_TITLE, NOTMUCH +from sims.config import VINYL, BATTERY, BAR_HEIGHT, WINDOW_TITLE, NOTMUCH class StatusBar(Window): @@ -29,7 +29,7 @@ class StatusBar(Window): monitor: int = 1, ): super().__init__( - name="bar", + name="sims", layer="top", anchor="left top right", margin="0px 0px -2px 0px", @@ -130,7 +130,7 @@ class StatusBar(Window): center_children.append(self.active_window) self.children = CenterBox( - name="bar-inner", + name="sims-inner", start_children=Box( name="start-container", spacing=6, diff --git a/bar/modules/battery.py b/sims/modules/battery.py similarity index 97% rename from bar/modules/battery.py rename to sims/modules/battery.py index c12d92e..83f79e8 100644 --- a/bar/modules/battery.py +++ b/sims/modules/battery.py @@ -2,7 +2,7 @@ from gi.repository import GLib from fabric.widgets.box import Box from fabric.widgets.label import Label from fabric.widgets.image import Image -from bar.services.battery import BatteryService +from sims.services.battery import BatteryService class Battery(Box): diff --git a/bar/modules/calendar.py b/sims/modules/calendar.py similarity index 99% rename from bar/modules/calendar.py rename to sims/modules/calendar.py index 287320c..5cd06c8 100644 --- a/bar/modules/calendar.py +++ b/sims/modules/calendar.py @@ -12,7 +12,7 @@ from fabric.widgets.button import Button from fabric.widgets.image import Image from fabric.widgets.wayland import WaylandWindow as Window from loguru import logger -from bar.config import CALENDAR +from sims.config import CALENDAR # Try to import khal as a Python library try: diff --git a/bar/modules/icons.py b/sims/modules/icons.py similarity index 100% rename from bar/modules/icons.py rename to sims/modules/icons.py diff --git a/bar/modules/notmuch.py b/sims/modules/notmuch.py similarity index 99% rename from bar/modules/notmuch.py rename to sims/modules/notmuch.py index 1e58960..77d9d54 100644 --- a/bar/modules/notmuch.py +++ b/sims/modules/notmuch.py @@ -9,7 +9,7 @@ from fabric.widgets.label import Label from fabric.widgets.button import Button from fabric.widgets.image import Image from loguru import logger -from bar.config import NOTMUCH +from sims.config import NOTMUCH class NotmuchService: diff --git a/bar/modules/player.py b/sims/modules/player.py similarity index 99% rename from bar/modules/player.py rename to sims/modules/player.py index d3a7fde..f55da95 100644 --- a/bar/modules/player.py +++ b/sims/modules/player.py @@ -11,11 +11,11 @@ from fabric.widgets.circularprogressbar import CircularProgressBar from fabric.widgets.overlay import Overlay from fabric.widgets.stack import Stack from ..widgets.circle_image import CircleImage -import bar.modules.icons as icons -from bar.services.mpris import MprisPlayerManager, MprisPlayer +import sims.modules.icons as icons +from sims.services.mpris import MprisPlayerManager, MprisPlayer from fabric import Fabricator -# from bar.modules.cavalcade import SpectrumRender +# from sims.modules.cavalcade import SpectrumRender def get_player_progress(fabricator, mpris_player): diff --git a/bar/modules/power.py b/sims/modules/power.py similarity index 100% rename from bar/modules/power.py rename to sims/modules/power.py diff --git a/bar/modules/quick_menu.py b/sims/modules/quick_menu.py similarity index 100% rename from bar/modules/quick_menu.py rename to sims/modules/quick_menu.py diff --git a/bar/modules/stylix.py b/sims/modules/stylix.py similarity index 99% rename from bar/modules/stylix.py rename to sims/modules/stylix.py index 07dba82..b2ceee7 100644 --- a/bar/modules/stylix.py +++ b/sims/modules/stylix.py @@ -1,4 +1,4 @@ -from bar.config import STYLIX +from sims.config import STYLIX import tempfile import os @@ -60,7 +60,7 @@ def generate_stylix_css(): }} /* Bar styling */ -#bar-inner {{ +#sims-inner {{ padding: 4px; border-bottom: solid 2px; border-color: #{colors["base02"]}; diff --git a/bar/modules/vinyl.py b/sims/modules/vinyl.py similarity index 100% rename from bar/modules/vinyl.py rename to sims/modules/vinyl.py diff --git a/bar/modules/volume.py b/sims/modules/volume.py similarity index 100% rename from bar/modules/volume.py rename to sims/modules/volume.py diff --git a/bar/modules/window_fuzzy.py b/sims/modules/window_fuzzy.py similarity index 98% rename from bar/modules/window_fuzzy.py rename to sims/modules/window_fuzzy.py index cba2dc6..8aacc2d 100644 --- a/bar/modules/window_fuzzy.py +++ b/sims/modules/window_fuzzy.py @@ -4,7 +4,7 @@ from fabric.widgets.box import Box from fabric.widgets.label import Label from fabric.widgets.entry import Entry from gi.repository import Gdk -from bar.services.fenster import get_i3_connection +from sims.services.fenster import get_i3_connection class FuzzyWindowFinder(Window): diff --git a/bar/services/battery.py b/sims/services/battery.py similarity index 100% rename from bar/services/battery.py rename to sims/services/battery.py diff --git a/bar/services/fenster.py b/sims/services/fenster.py similarity index 100% rename from bar/services/fenster.py rename to sims/services/fenster.py diff --git a/bar/services/mpris.py b/sims/services/mpris.py similarity index 100% rename from bar/services/mpris.py rename to sims/services/mpris.py diff --git a/bar/services/system_stats.py b/sims/services/system_stats.py similarity index 100% rename from bar/services/system_stats.py rename to sims/services/system_stats.py diff --git a/bar/styles/bar.css b/sims/styles/bar.css similarity index 98% rename from bar/styles/bar.css rename to sims/styles/bar.css index 4de027e..91cf7b1 100644 --- a/bar/styles/bar.css +++ b/sims/styles/bar.css @@ -1,4 +1,4 @@ -#bar-inner { +#sims-inner { padding: 4px; border-bottom: solid 2px; border-color: var(--border-color); diff --git a/bar/styles/calendar.css b/sims/styles/calendar.css similarity index 100% rename from bar/styles/calendar.css rename to sims/styles/calendar.css diff --git a/bar/styles/colors.css b/sims/styles/colors.css similarity index 100% rename from bar/styles/colors.css rename to sims/styles/colors.css diff --git a/bar/styles/finder.css b/sims/styles/finder.css similarity index 100% rename from bar/styles/finder.css rename to sims/styles/finder.css diff --git a/bar/styles/main.css b/sims/styles/main.css similarity index 100% rename from bar/styles/main.css rename to sims/styles/main.css diff --git a/bar/styles/menu.css b/sims/styles/menu.css similarity index 100% rename from bar/styles/menu.css rename to sims/styles/menu.css diff --git a/bar/styles/notmuch.css b/sims/styles/notmuch.css similarity index 100% rename from bar/styles/notmuch.css rename to sims/styles/notmuch.css diff --git a/bar/styles/vinyl.css b/sims/styles/vinyl.css similarity index 100% rename from bar/styles/vinyl.css rename to sims/styles/vinyl.css diff --git a/bar/styles/workspaces.css b/sims/styles/workspaces.css similarity index 100% rename from bar/styles/workspaces.css rename to sims/styles/workspaces.css diff --git a/bar/utils/icons.py b/sims/utils/icons.py similarity index 100% rename from bar/utils/icons.py rename to sims/utils/icons.py diff --git a/bar/widgets/battery.py b/sims/widgets/battery.py similarity index 100% rename from bar/widgets/battery.py rename to sims/widgets/battery.py diff --git a/bar/widgets/circle_image.py b/sims/widgets/circle_image.py similarity index 100% rename from bar/widgets/circle_image.py rename to sims/widgets/circle_image.py diff --git a/bar/widgets/fenster.py b/sims/widgets/fenster.py similarity index 99% rename from bar/widgets/fenster.py rename to sims/widgets/fenster.py index c54c4e0..12d874d 100644 --- a/bar/widgets/fenster.py +++ b/sims/widgets/fenster.py @@ -9,7 +9,7 @@ from fabric.utils.helpers import bulk_connect from fabric.widgets.box import Box from fabric.widgets.button import Button from fabric.widgets.label import Label -from bar.services.fenster import get_i3_connection +from sims.services.fenster import get_i3_connection class FensterWorkspaceButton(Button):