from cfgtools.files import normalize from cfgtools.hooks import after from cfgtools.system.systemd import ensure_service, UserService from cfgtools.system.arch import Pacman NAME = normalize(__name__) system_packages = {Pacman("network-manager-applet")} files = [ UserService(f"{NAME}/networkmanager-tray.service"), ] @after def start_nm_tray() -> None: ensure_service("networkmanager-tray", user=True)
from cfgtools.files import DesktopEntry, XDGConfigFile, UserBin, normalize from cfgtools.hooks import after from cfgtools.system.arch import AUR from cfgtools.system.systemd import ensure_service, UserService from cfgtools.utils import hide_xdg_entry NAME = normalize(__name__) packages = {AUR("deadd-notification-center-bin")} files = [ XDGConfigFile(f"{NAME}/deadd.conf"), UserService(f"{NAME}/notifications.service"), UserBin(f"{NAME}/toggle-notifications.sh", "notifications-toggle"), DesktopEntry(f"{NAME}/notifications-toggle.desktop"), ] @after def start_notification_service() -> None: ensure_service("notifications", user=True) @after def cleanup_unwanted_avahi_entries() -> None: [hide_xdg_entry(e) for e in ["avahi-discover", "bvnc", "bssh"]]
from cfgtools.files import File, UserBin, XinitRC, DesktopEntry, normalize from cfgtools.hooks import after from cfgtools.system.arch import Pacman from cfgtools.system.systemd import ensure_service, UserService from cfgtools.utils import hide_xdg_entry import mpv NAME = normalize(__name__) packages = {Pacman("xsecurelock"), Pacman("xss-lock")} files = [ UserBin(f"{NAME}/screenlock.sh", "_screenlock"), UserBin(f"{NAME}/screenlock_wrapper.sh", "screenlock"), UserService(f"{NAME}/screenlock.service"), XinitRC(NAME, priority=10), File( f"{NAME}/saver_mpv-cinemagraph", "/usr/lib/xsecurelock/saver_mpv-cinemagraph", ), DesktopEntry(f"{NAME}/screenlock.desktop"), ] @after def enable_screenlock_service() -> None: ensure_service("screenlock", user=True)
from cfgtools.files import HOME, UserBin, XDGConfigFile, normalize from cfgtools.hooks import after from cfgtools.system.arch import Pacman from cfgtools.system.systemd import ensure_service, UserService from cfgtools.utils import run NAME = normalize(__name__) packages = {Pacman("luakit")} files = [ UserBin(f"{NAME}/adblock-update.sh", "_adblock-update"), UserService(f"{NAME}/adblock-update.service"), UserService(f"{NAME}/adblock-update.timer"), XDGConfigFile(f"{NAME}/userconf.lua"), XDGConfigFile(f"{NAME}/theme.lua"), ] @after def periodic_adblock_updates() -> None: ensure_service("adblock-update.timer", user=True) if not (HOME / ".local/share/luakit/adblock/easylist.txt").exists(): run("_update-adblock")
from cfgtools.files import XDGConfigFile, normalize from cfgtools.hooks import after from cfgtools.system.arch import AUR from cfgtools.system.systemd import ensure_service, UserService from cfgtools.utils import hide_xdg_entry import aur NAME = normalize(__name__) system_packages={AUR("picom-git")} files=[ XDGConfigFile(f"{NAME}/picom.conf"), UserService(f"{NAME}/compositor.service"), ] unwanted_entries=["compton", "picom"] @after def start_compositor_service() -> None: ensure_service("compositor", user=True) @after def hide_picom_desktop_entries() -> None: [hide_xdg_entry(e) for e in unwanted_entries]
from cfgtools.hooks import after from cfgtools.files import normalize from cfgtools.system.arch import Pacman from cfgtools.system.systemd import ensure_service, UserService packages = {Pacman("unclutter")} files = [ UserService(f"{normalize(__name__)}/unclutter.service"), ] @after def unclutter_enabled() -> None: ensure_service("unclutter", user=True)
from cfgtools.files import DesktopEntry, UserBin, XinitRC, normalize from cfgtools.hooks import after from cfgtools.system.arch import Pacman from cfgtools.system.systemd import ensure_service, UserService NAME = normalize(__name__) packages = {Pacman("feh"), Pacman("curl"), Pacman("which")} files = [ UserBin(f"{NAME}/wallpaper.sh", "wallpaper"), UserService(f"{NAME}/wallpaper.service"), UserService(f"{NAME}/wallpaper.timer"), XinitRC(NAME, priority=90), DesktopEntry(f"{NAME}/wallpaper.desktop"), ] @after def enable_wallpaper_timer() -> None: ensure_service("wallpaper.timer", user=True)
import subprocess from cfgtools.files import HOME, RegisteredFileAction, UserBin, convert_loc, normalize from cfgtools.hooks import after from cfgtools.system.arch import Pacman from cfgtools.system.python import VirtualEnv from cfgtools.system.systemd import ensure_service, UserService from cfgtools.utils import run NAME = normalize(__name__) packages = {Pacman("qt5-base")} virtualenv = VirtualEnv("maestral", "maestral", "maestral-qt") files = [ UserBin(virtualenv.location / "bin/maestral", "maestral"), UserService(f"{NAME}/dropbox.service"), ] DROPBOX_DIR = HOME / ".local/dropbox" class EncryptedFile(RegisteredFileAction): DROPBOX_BASE = DROPBOX_DIR U_RO=0o400 def __init__(self, src: str, dst: str): self.src = self.DROPBOX_BASE / src self.dst = convert_loc(dst) super().__init__()
from cfgtools.files import DesktopEntry, XDGConfigFile, XDG_CONFIG_HOME, UserBin, normalize from cfgtools.hooks import after from cfgtools.system.arch import Pacman from cfgtools.system.python import VirtualEnv from cfgtools.system.systemd import ensure_service, UserService import dropbox ENABLED = True NAME = normalize(__name__) packages = {Pacman("calcurse")} virtualenv = VirtualEnv("gcal-sync", "gcsa") files = [ UserBin(f"{NAME}/gcal-sync.sh", "gcal-sync"), UserService(f"{NAME}/gcal-sync.service"), UserService(f"{NAME}/gcal-sync.timer"), XDGConfigFile(f"{NAME}/config", "calcurse/conf"), DesktopEntry(f"{NAME}/calcurse.desktop"), dropbox.EncryptedFile( "credentials/gcal-sync.json.gpg", XDG_CONFIG_HOME / "calcurse/credentials.json", ), ] @after def enable_sync_timer() -> None: global ENABLED if not ENABLED: return
from cfgtools.system import GitRepository from cfgtools.system.arch import AUR, Pacman from cfgtools.system.python import VirtualEnv from cfgtools.system.systemd import ensure_service, UserService NAME = normalize(__name__) packages={ AUR("polybar"), AUR("./aur/pkgs/ttf-anonymous-pro-ext"), AUR("ttf-material-design-icons-git"), Pacman("python-gobject"), Pacman("noto-fonts"), Pacman("noto-fonts-emoji"), } systemhud_repo = GitRepository("[email protected]:jdost/systemhud.git") systemhud_venv = VirtualEnv("systemhud") files=[ UserService("polybar/statusbar.service"), XDGConfigFile(f"{NAME}/config"), XDGConfigFile(f"{NAME}/modules"), ] @after def enable_statusbar_service() -> None: ensure_service("statusbar", user=True) @after def setup_systemhud_repo() -> None: installed = False for installed_req in systemhud_venv.installed_requirements: if "jdost/systemhud.git" in installed_req: