diff --git a/.config/emacs/init.el b/.config/emacs/init.el index 11641d9..94dbd23 100644 --- a/.config/emacs/init.el +++ b/.config/emacs/init.el @@ -183,7 +183,11 @@ ;; EPUB reader (use-package nov :init - (add-to-list 'auto-mode-alist '("\\.epub\\'" . nov-mode))) + (setq auto-mode-alist + (map-merge 'list + '(("\\.epub\\'" . nov-mode)) + auto-mode-alist)) + ) (use-package company :init (global-company-mode) @@ -243,18 +247,21 @@ (defun load-python-env () "Set up the Python IDE in the current project." (interactive) - (progn - (ignore-errors (poetry-venv-workon)) - (eglot-ensure))) + (when (derived-mode-p 'python-mode) + (progn + (poetry-venv-workon) + (eglot-ensure)))) (use-package python :bind (:map python-mode-map ("C-c C-p" . nil) ("C-c C-l" . nil) ("C-c t" . elpy-test)) - :hook (python-mode . load-python-env) + :hook (hack-local-variables . load-python-env) :config (load "python-tests.el") + :custom + (elpy-test-runner 'elpy-test-pytest-runner) ) ;; Jupyter notebook integration @@ -280,6 +287,19 @@ (rustic-lsp-client 'eglot) ) +(use-package go-config + :ensure nil + :hook + (go-ts-mode . eglot-ensure) + :init + (setq auto-mode-alist + (map-merge 'list + '(("\\.go\\'" . go-ts-mode) + ("/go\\.mod\\'" . go-mod-ts-mode) + ("/go\\.work\\'" . go-work-ts-mode)) + auto-mode-alist)) + ) + (use-package gptel :custom ; keep-sorted start diff --git a/.config/setup/01-install-packages.sh b/.config/setup/01-install-packages.sh index 2c49b8f..029fd59 100755 --- a/.config/setup/01-install-packages.sh +++ b/.config/setup/01-install-packages.sh @@ -27,6 +27,7 @@ DEB_PKGS=( fuzzel gdb gnumeric + gopls graphviz grim guile-3.0 @@ -86,12 +87,14 @@ DEB_PKGS=( xdg-desktop-portal-wlr xournalpp yt-dlp + awscli zip # keep-sorted end ) META_PKGS=( # keep-sorted start fonts-noto + golang podman-compose # keep-sorted end ) diff --git a/.config/systemd/user/get-nasa-apod.service b/.config/systemd/user/get-nasa-apod.service new file mode 100644 index 0000000..1da3c26 --- /dev/null +++ b/.config/systemd/user/get-nasa-apod.service @@ -0,0 +1,10 @@ +[Unit] +Description=Refresh the wallpaper using the NASA Astronomy Picture of the Day +Wants=get-nasa-apod.timer + +[Service] +WorkingDirectory=%h +ExecStart=%h/.local/bin/get-nasa-apod + +[Install] +WantedBy=default.target diff --git a/.config/systemd/user/get-nasa-apod.timer b/.config/systemd/user/get-nasa-apod.timer new file mode 100644 index 0000000..4cac963 --- /dev/null +++ b/.config/systemd/user/get-nasa-apod.timer @@ -0,0 +1,10 @@ +[Unit] +Description=Daily NASA wallpaper fetch +Requires=get-nasa-apod.service + +[Timer] +Unit=nasa-apod.service +OnCalendar=daily + +[Install] +WantedBy=timers.target diff --git a/.gitconfig b/.gitconfig index 1aaaa5d..e0d1e54 100644 --- a/.gitconfig +++ b/.gitconfig @@ -10,6 +10,10 @@ [remote] pushDefault = . [git-sync] + # keep-sorted start + syncEnabled = true + syncNewFiles = true syncSkipHooks = true + # keep-sorted end [include] path = .hostgitconfig diff --git a/.local/bin/get-nasa-apod b/.local/bin/get-nasa-apod new file mode 100755 index 0000000..e6560b9 --- /dev/null +++ b/.local/bin/get-nasa-apod @@ -0,0 +1,41 @@ +#! /usr/bin/bash + +set -euo pipefail +IFS=$'\n\t' + +API_KEY="${NASA_API_KEY:-DEMO_KEY}" +if [ "${API_KEY}" = "DEMO_KEY" ]; then + echo "No API key set! using demo key." +fi + +WALLPAPERS="$(systemd-path user)"/Wallpapers + +mkdir --parents "${WALLPAPERS}" + +APOD_URL="https://api.nasa.gov/planetary/apod?api_key=${API_KEY}" +response="$(curl --silent "${APOD_URL}")" +picture_date="$(printf '%s' "${response}" | jq --raw-output .date)" +picture_url="$(printf '%s' "${response}" | jq --raw-output .hdurl)" + +extension="${picture_url##*.}" +filename="${picture_date}.${extension}" +outfile="${WALLPAPERS}/${filename}" + +if [ -f "${outfile}" ]; then + echo "Target file already exists" + exit 0 +fi + +tempfile="$(mktemp)" +curl \ + --location \ + --output "${tempfile}" \ + --silent \ + "${picture_url}" +mv "${tempfile}" "${outfile}" +ln \ + --force \ + --symbolic \ + "${outfile}" \ + "${WALLPAPERS}/today.${extension}" +swaymsg reload diff --git a/.local/bin/sync-git-repos b/.local/bin/sync-git-repos index 92d7258..d1fce9e 100755 --- a/.local/bin/sync-git-repos +++ b/.local/bin/sync-git-repos @@ -12,7 +12,7 @@ sync_repo () { repo=$1 echo git-sync "${repo}" - ( cd "${repo}" && "$(systemd-path user-state-private)"/git-sync/git-sync -n -s sync ) + ( cd "${repo}" && "$(systemd-path user-state-private)"/git-sync/git-sync sync ) echo }