X-Git-Url: http://git.scottworley.com/nix-env-apps/blobdiff_plain/6f6187bfb0a55352aa2d2d67b6bfda48c3414c9a..HEAD:/apps.py?ds=sidebyside diff --git a/apps.py b/apps.py index 959c148..956dfe3 100644 --- a/apps.py +++ b/apps.py @@ -1,6 +1,12 @@ +# nix-env-apps: Manage declarative nix-env with a GUI +# +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation, version 3. + import os import subprocess -from typing import Any +from typing import Any, Callable import gi gi.require_version("Gtk", "4.0") @@ -19,7 +25,7 @@ def on_edit(_: Any) -> None: f.write('''final: prev: { userPackages = final.buildEnv { name = "userPackages"; - paths = (with final; [ + paths = with final; [ @@ -80,14 +86,23 @@ def on_apply(_: Any) -> None: os.execvp(command[0], command) +def make_button(label: str, action: Callable[[Any], None]) -> Gtk.Button: + button = Gtk.Button(label=label) + button.connect('clicked', action) + button.set_margin_top(10) + button.set_margin_start(10) + button.set_margin_end(10) + button.set_margin_bottom(10) + return button + + def on_activate(app: Gtk.Application) -> None: win = Gtk.ApplicationWindow(application=app) + win.set_title('Apps') box = Gtk.Box() box.set_orientation(Gtk.Orientation.VERTICAL) - edit = Gtk.Button(label="Edit Configuration") - apply = Gtk.Button(label="Apply Configuration") - edit.connect('clicked', on_edit) - apply.connect('clicked', on_apply) + edit = make_button("Edit Configuration", on_edit) + apply = make_button("Apply Configuration", on_apply) box.append(edit) box.append(apply) win.set_child(box)