Example #1
0
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)
Example #2
0
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"]]
Example #3
0
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)
Example #4
0
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")
Example #5
0
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]
Example #6
0
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)
Example #7
0
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)
Example #8
0
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__()
Example #9
0
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
Example #10
0
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: