コード例 #1
0
ファイル: __init__.py プロジェクト: jdost/configs
def setup_systemhud_repo() -> None:
    installed = False
    for installed_req in systemhud_venv.installed_requirements:
        if "jdost/systemhud.git" in installed_req:
            installed = True

    if not installed:
        systemhud_repo.run_in(
            [systemhud_venv.location / "bin/python", "-m", "pip", "install", "-U", "-e", "src/"]
        )

    File(
        systemhud_repo.local_path / "etc/polybar",
        XDG_CONFIG_HOME / "polybar/systemhud_modules",
    ).apply()

    for global_bin in ["notify-send", "screen-brightness"]:
        File(
            systemhud_venv.location / "bin" / global_bin,
            UserBin.DIR / global_bin,
        ).apply()
コード例 #2
0
def symlink_firefox_profile_userjs() -> None:
    profile = None
    for setting in (Path.home() / ".mozilla/firefox").glob("*"):
        if not setting.is_dir():
            continue
        # This is kind of hacky, the profile looks something like:
        #   NNNNNNNN.<name>
        # so we try and pattern match this with 8 characters followed by a dot
        parts = setting.name.split(".", 2)
        if not len(parts) == 2:
            continue
        if len(parts[0]) == 8:
            profile = setting
            break

    # Uses the same underlying handler, just manually applies it
    user_js = File(f"{__name__}/user.js", profile / "user.js")
    user_js.apply()
コード例 #3
0
import cal
import docker
import dropbox
import firefox
import git
import gpg
import gtk
import python
import qutebrowser
import scrcpy
import ssh
import streamlink
import tmux
import unclutter
import user_dirs
import vim.neovim
import wallpaper
import web_xdg_open
import zathura
import zsh
from cfgtools.files import XDG_CONFIG_HOME, File, XinitRC

web_xdg_open.set_default("firefox")

File("systems/hershel/polybar", XDG_CONFIG_HOME / "polybar/system")
File("systems/hershel/bspwmrc", XDG_CONFIG_HOME / "bspwm/system")
File("systems/hershel/bspwm_external_rules.sh",
     XDG_CONFIG_HOME / "bspwm/external_rules")
File("systems/hershel/sxhkdrc", XDG_CONFIG_HOME / "sxhkd/system")
XinitRC("systems/hershel", priority=40)
コード例 #4
0
ファイル: __init__.py プロジェクト: jdost/configs
from cfgtools.system.arch import Pacman
from cfgtools.files import File, HOME, XDG_CONFIG_HOME, XDGConfigFile, normalize

NAME = normalize(__name__)

packages={
    Pacman("xorg-xinit"), Pacman("xorg-server"), Pacman("xorg-xmodmap"),
    Pacman("xorg-xrdb"),
}
files=[
    File(f"{NAME}/xorg.target", XDG_CONFIG_HOME / "systemd/user/xorg.target"),
    File(f"{NAME}/xinitrc", HOME / ".xinitrc"),
    XDGConfigFile(f"{NAME}/xinitrc.d/90-systemd"),
    XDGConfigFile(f"{NAME}/xinitrc.d/10-xmodmap"),
    XDGConfigFile(f"{NAME}/xinitrc.d/10-xresources"),
    XDGConfigFile(f"{NAME}/caps-ctrl-swap.xmodmap"),
    XDGConfigFile(f"{NAME}/Xresources"),
]
コード例 #5
0
ファイル: __init__.py プロジェクト: jdost/configs
from cfgtools.files import File, HOME, XinitRC

import alacritty
import aur
import auth
import autorandr
import bat
import bspwm
import docker
import dropbox
import git
import gpg
import gtk
import networkmanager
import polybar
import python
import screenlock
import ssh
import tmux
import unclutter
import user_dirs
import vim
import wallpaper
import zsh

File("systems/isabelle/polybar", HOME / ".config/polybar/system")
File("systems/isabelle/Xresources", HOME / ".config/xorg/Xresources.system")
XinitRC("systems/isabelle", name="system", priority=40)
コード例 #6
0
ファイル: __init__.py プロジェクト: jdost/configs
packages = {
    Pacman("zsh"),
    Pacman("zsh-syntax-highlighting"),
    Pacman("zsh-completions"),
    AUR("./aur/pkgs/cli-utils"),
    Apt("zsh"),
    Apt("zsh-common"),
    Apt("zsh-syntax-highlighting"),
    NixPkgBin("exa"),
    NixPkgBin("ripgrep", "rg"),
    NixPkgBin("colordiff"),
    NixPkgBin("fzf"),
}
files = [
    File(f"{NAME}/zshrc", HOME / ".zshrc"),
    XDGConfigFile(f"{NAME}/settings"),
    EnvironmentFile(NAME),
]


@after
def change_user_shell() -> None:
    zsh_bin = "/bin/zsh"
    if os.environ.get("SHELL") == zsh_bin:
        return

    if _SUDO_CHSH:
        subprocess.run(["sudo", "chsh", "-s", zsh_bin, getpass.getuser()])
    else:
        subprocess.run(["chsh", "-s", zsh_bin])
コード例 #7
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)
コード例 #8
0
import urllib.request
from pathlib import Path

from cfgtools.files import HOME, File, normalize
from cfgtools.hooks import after
from cfgtools.system.arch import Pacman
from cfgtools.system.ubuntu import Apt

NAME = normalize(__name__)

packages = {Pacman("openssh"), Apt("ssh-client")}
files = [
    File(f"{NAME}/default.ssh", HOME / ".ssh/config.d/default")
]


@after
def setup_base_ssh_config() -> None:
    base_config = HOME / ".ssh/config"
    base_config_template = Path(__file__).parent / "base.ssh"

    if not base_config.exists():
        base_config.write_text(base_config_template.read_text())
    else:
        include_line, _ = base_config_template.read_text().split("\n", 1)
        if not base_config.read_text().startswith(include_line):
            print(
                f"!!! Please add `{include_line}` to the top"
                f" of your `{base_config}` file."
            )
コード例 #9
0
ファイル: __init__.py プロジェクト: jdost/configs
import cal
import docker
import dropbox
import git
import gpg
import gtk
import polybar
import python
import qutebrowser
import screenlock
import ssh
import streamlink
import tmux
import unclutter
import user_dirs
import vim
import wallpaper
import zathura
import zsh

cal.ENABLED = False

File("systems/anthony/polybar", XDG_CONFIG_HOME / "polybar/system")
File("systems/anthony/Xresources", XDG_CONFIG_HOME / "xorg/Xresources.system")
File("systems/anthony/bspwm_external_rules.sh",
     XDG_CONFIG_HOME / "bspwm/external_rules")
File("systems/anthony/chromium-flags.conf",
     XDG_CONFIG_HOME / "chromium-flags.conf")
XinitRC("systems/anthony", priority=40)
File("systems/anthony/drirc", HOME / ".drirc")
コード例 #10
0
from cfgtools.files import EnvironmentFile, File, Folder, HOME, XinitRC, normalize
from cfgtools.hooks import after
from cfgtools.system.arch import Pacman
from cfgtools.system.systemd import ensure_service

NAME = normalize(__name__)
USER_GPG_FOLDER = HOME / ".local/gpg"
GPG_CONFIG_FILES = ["gpg.conf", "gpg-agent.conf", "scdaemon.conf"]

packages = {Pacman("gnupg"), Pacman("pcsclite"), Pacman("ccid")}
files = [
    EnvironmentFile(NAME),
    Folder(USER_GPG_FOLDER, permissions=0o700),
    XinitRC(NAME, priority=20),
] + [File(f"{NAME}/f", USER_GPG_FOLDER / f) for f in GPG_CONFIG_FILES]


@after
def smartcard_daemon_running() -> None:
    ensure_service("pcscd.socket")