From 97be99256562415f8aad1d1ef20c98d01e45080e Mon Sep 17 00:00:00 2001 From: SqrtMinusOne Date: Thu, 13 Nov 2025 13:34:18 +0300 Subject: [PATCH] *: update for arch --- .config/alacritty/alacritty.toml | 18 +- .config/metapac/config.toml | 2 +- .config/metapac/groups/desktop.toml | 4 +- .config/metapac/groups/emacs.toml | 2 + .config/metapac/groups/system.toml | 1 + .config/systemd/user/aw-qt.service | 8 + .config/systemd/user/deterred-mpd.service | 9 + .config/systemd/user/mpd.service | 8 + .config/systemd/user/nm-applet.service | 8 + .config/systemd/user/vnstat.service | 8 + .config/systemd/user/xsettingsd.service | 8 + .emacs.d/desktop.el | 4 + .emacs.d/modules/sqrt-dired.el | 3 +- .xsession | 2 +- Arch.org | 56 ++-- Desktop.org | 366 +++++++--------------- Emacs.org | 23 +- bin/polybar.sh | 2 + 18 files changed, 229 insertions(+), 303 deletions(-) create mode 100644 .config/systemd/user/aw-qt.service create mode 100644 .config/systemd/user/deterred-mpd.service create mode 100644 .config/systemd/user/mpd.service create mode 100644 .config/systemd/user/nm-applet.service create mode 100644 .config/systemd/user/vnstat.service create mode 100644 .config/systemd/user/xsettingsd.service diff --git a/.config/alacritty/alacritty.toml b/.config/alacritty/alacritty.toml index 78577e4..f31ff14 100644 --- a/.config/alacritty/alacritty.toml +++ b/.config/alacritty/alacritty.toml @@ -1,14 +1,14 @@ -decorations = "none" +# decorations = "none" [colors.bright] -Black = "#484848" -Blue = "#cbcfff" -Cyan = "#88c8ff" -Green = "#8adf80" -Magenta = "#df8fff" -Red = "#ff8f88" -White = "#ffffff" -Yellow = "#fac200" +black = "#484848" +blue = "#cbcfff" +cyan = "#88c8ff" +green = "#8adf80" +magenta = "#df8fff" +red = "#ff8f88" +white = "#ffffff" +yellow = "#fac200" [colors.normal] black = "#222222" diff --git a/.config/metapac/config.toml b/.config/metapac/config.toml index cc583e0..cf7c10d 100644 --- a/.config/metapac/config.toml +++ b/.config/metapac/config.toml @@ -3,7 +3,7 @@ enabled_backends = ["arch"] hostname_groups_enabled = true [hostname_groups] -kek = ["browsers"] +weiss = ["system","office","music","mail","latex","emacs","dev","desktop-rofi","desktop-polybar","desktop-misc","desktop","console","browsers"] archlinux = ["system","office","music","mail","latex","emacs","dev","desktop-rofi","desktop-polybar","desktop-misc","desktop","console","browsers"] diff --git a/.config/metapac/groups/desktop.toml b/.config/metapac/groups/desktop.toml index 1376be0..4de4020 100644 --- a/.config/metapac/groups/desktop.toml +++ b/.config/metapac/groups/desktop.toml @@ -1,4 +1,5 @@ arch = [ +"vnstat", "activitywatch-bin", "xdg-desktop-portal", "flatpak", @@ -14,5 +15,4 @@ arch = [ "gnome-themes-extra", "xsettingsd", "papirus-icon-theme", -"gtk-engines", -"gtk-engine-murrine",] +"gtk-engines",] diff --git a/.config/metapac/groups/emacs.toml b/.config/metapac/groups/emacs.toml index 965dd58..856bdb0 100644 --- a/.config/metapac/groups/emacs.toml +++ b/.config/metapac/groups/emacs.toml @@ -3,8 +3,10 @@ arch = [ "the_silver_searcher", "ripgrep", "hledger", +"rclone", "gnu-free-fonts", "ttf-unifont", +"telegram-tdlib", "yt-dlp", "mpv", "python-youtube-transcript-api", diff --git a/.config/metapac/groups/system.toml b/.config/metapac/groups/system.toml index 53bb320..3a9fe94 100644 --- a/.config/metapac/groups/system.toml +++ b/.config/metapac/groups/system.toml @@ -23,6 +23,7 @@ arch = [ "pacman-contrib", "openssh", "metapac", +"networkmanager", "nano", "inetutils", "linux-firmware", diff --git a/.config/systemd/user/aw-qt.service b/.config/systemd/user/aw-qt.service new file mode 100644 index 0000000..5c914d8 --- /dev/null +++ b/.config/systemd/user/aw-qt.service @@ -0,0 +1,8 @@ +[Unit] +Description=ActivityWatch + +[Service] +ExecStart=/usr/bin/aw-qt + +[Install] +WantedBy=wm-session.target diff --git a/.config/systemd/user/deterred-mpd.service b/.config/systemd/user/deterred-mpd.service new file mode 100644 index 0000000..f3aa368 --- /dev/null +++ b/.config/systemd/user/deterred-mpd.service @@ -0,0 +1,9 @@ +[Unit] +Description=DETERRED MPD Watcher +ConditionPathExists=/home/pavel/10-19 Code/13 Other Projects/13.02 sqrt-data/13.02.R Repos/13.02.R.05 deterred/watchers/deterred-mpd.py + +[Service] +ExecStart=/usr/bin/python "/home/pavel/10-19 Code/13 Other Projects/13.02 sqrt-data/13.02.R Repos/13.02.R.05 deterred/watchers/deterred-mpd.py" "--db" "/home/pavel/.deterred/database.db" + +[Install] +WantedBy=wm-session.target diff --git a/.config/systemd/user/mpd.service b/.config/systemd/user/mpd.service new file mode 100644 index 0000000..ce25e0c --- /dev/null +++ b/.config/systemd/user/mpd.service @@ -0,0 +1,8 @@ +[Unit] +Description=Music Player Daemon + +[Service] +ExecStart=/usr/bin/mpd --no-daemon + +[Install] +WantedBy=graphical-session.target diff --git a/.config/systemd/user/nm-applet.service b/.config/systemd/user/nm-applet.service new file mode 100644 index 0000000..175017a --- /dev/null +++ b/.config/systemd/user/nm-applet.service @@ -0,0 +1,8 @@ +[Unit] +Description=Network Manager Applet + +[Service] +ExecStart=/usr/bin/nm-applet + +[Install] +WantedBy=wm-session.target diff --git a/.config/systemd/user/vnstat.service b/.config/systemd/user/vnstat.service new file mode 100644 index 0000000..1b81b7f --- /dev/null +++ b/.config/systemd/user/vnstat.service @@ -0,0 +1,8 @@ +[Unit] +Description=vnStat network monitor + +[Service] +ExecStart=/usr/bin/vnstatd + +[Install] +WantedBy=wm-session.target diff --git a/.config/systemd/user/xsettingsd.service b/.config/systemd/user/xsettingsd.service new file mode 100644 index 0000000..be57f95 --- /dev/null +++ b/.config/systemd/user/xsettingsd.service @@ -0,0 +1,8 @@ +[Unit] +Description=X Settings Daemon + +[Service] +ExecStart=/usr/bin/xsettingsd + +[Install] +WantedBy=wm-session.target diff --git a/.emacs.d/desktop.el b/.emacs.d/desktop.el index f3ceaff..d43d12f 100644 --- a/.emacs.d/desktop.el +++ b/.emacs.d/desktop.el @@ -10,6 +10,9 @@ (executable-find "shepherd")) (call-process "shepherd"))) +(defun my/exwm-run-systemd () + (call-process "systemctl" nil nil nil "--user" "start" "wm-session.target")) + (use-package pinentry :straight t :after (exwm) @@ -592,6 +595,7 @@ _d_: Discord (my/exwm-run-polybar) (my/exwm-set-wallpaper) (my/exwm-run-shepherd) + (my/exwm-run-systemd) (my/run-in-background "gpgconf --reload gpg-agent") (when (my/is-arch) (my/run-in-background "set_layout"))) diff --git a/.emacs.d/modules/sqrt-dired.el b/.emacs.d/modules/sqrt-dired.el index 7e903c1..735673c 100644 --- a/.emacs.d/modules/sqrt-dired.el +++ b/.emacs.d/modules/sqrt-dired.el @@ -116,7 +116,8 @@ (string-match-p "/gnu/store" default-directory)) (nerd-icons-dired-mode)))) :config - (advice-add #'dired-create-empty-file :around #'nerd-icons-dired--refresh-advice)) + ;; (advice-add #'dired-create-empty-file :around #'nerd-icons-dired--refresh-advice) + ) (use-package dired-open :straight t diff --git a/.xsession b/.xsession index cea5dc7..a0985ed 100755 --- a/.xsession +++ b/.xsession @@ -21,7 +21,7 @@ xss-lock -- i3lock -f -i /home/pavel/Pictures/lock-wallpaper.png & # Some apps that have to be launched only once. picom & # nm-applet & -dunst & +# dunst & copyq & # Run the Emacs startup script as a session. diff --git a/Arch.org b/Arch.org index 3e956bd..e1467ba 100644 --- a/Arch.org +++ b/Arch.org @@ -1,5 +1,5 @@ -#+PROPERTY: header-args :mkdirp yes #+TITLE: Arch Linux +#+PROPERTY: header-args :mkdirp yes I've decided to switch to [[https://archlinux.org/][Arch Linux]] and configure it declaratively with [[https://github.com/ripytide/metapac][metapac]]. @@ -70,13 +70,23 @@ yadm clone git@github.com:SqrtMinusOne/dotfiles.git #+end_src Checkout the changed files. -Clone the org-mode repo: +Clone org-mode and passwords repos: #+begin_src bash -git clone git@github.com:SqrtMinusOne/dotfiles.git "/home/pavel/30-39 Life/32 org-mode" +git clone ssh://git@git.sqrtminusone.xyz:222/sqrtminusone/org-mode.git "/home/pavel/30-39 Life/32 org-mode" +git clone ssh://git@git.sqrtminusone.xyz:222/sqrtminusone/passwords.git "/home/pavel/.password-store" +#+end_src + +And don't forget to configure git: +#+begin_src bash +git config --global user.email "thexcloud@gmail.com" +git config --global user.name "SqrtMinusOne" +#+end_src + +#+begin_src bash +sudo systemctl enable --now NetworkManager #+end_src Install wakatime: - #+begin_src bash cd ~/00-Scratch/ git clone https://github.com/wakatime/wakatime-cli.git @@ -95,8 +105,15 @@ Then run =emacs= and make sure it starts. Run: - =M-x nerd-icons-install-fonts= - =M-x all-the-icons-install-fonts= +Run =rclone config=, configure the remotes. Then =M-x my/index-commands-sync=. + If everything works, login into EXWM. +Create some directories: +#+begin_src bash +mkdir -p /home/pavel/Pictures/screenshots/ +#+end_src + * Metapac configuration [[https://github.com/ripytide/metapac][metapac]] is a declarative wrapper around different package managers, including [[https://wiki.archlinux.org/title/Pacman][pacman]] and [[https://github.com/Morganamilo/paru][paru]]. This means the required packages can be listed in configuration files and checked into version control. @@ -106,20 +123,20 @@ In =metapac=, packages are listed in "groups", each group being a TOML file stat Below is the table enabling different groups on different hostnames: #+NAME: metapac-groups -| Profile | archlinux | kek | -| browsers | + | + | -| console | + | | -| desktop | + | | -| desktop-misc | + | | -| desktop-polybar | + | | -| desktop-rofi | + | | -| dev | + | | -| emacs | + | | -| latex | + | | -| mail | + | | -| music | + | | -| office | + | | -| system | + | | +| Profile | archlinux | weiss | +| browsers | + | + | +| console | + | + | +| desktop | + | + | +| desktop-misc | + | + | +| desktop-polybar | + | + | +| desktop-rofi | + | + | +| dev | + | + | +| emacs | + | + | +| latex | + | + | +| mail | + | + | +| music | + | + | +| office | + | + | +| system | + | + | And the code to format it as TOML: #+NAME: metapac-groups-format @@ -167,6 +184,7 @@ Some necessary Arch packages: | linux-firmware | | inetutils | | nano | +| networkmanager | | metapac | | openssh | | pacman-contrib | @@ -202,5 +220,5 @@ Various drivers, I'm not sure which I actually need, so... #+end_src #+begin_src scheme :tangle .config/metapac/groups/system.toml :noweb yes -<> +<ger> #+end_src diff --git a/Desktop.org b/Desktop.org index 7937fd5..7e73e5b 100644 --- a/Desktop.org +++ b/Desktop.org @@ -121,6 +121,7 @@ Also, Xresources are used to set =Xft= settings. Unfortunately, the DPI setting ((string-equal hostname "eminence") 120) ((string-equal hostname "violet") 120) ((string-equal hostname "iris") 120) + ((string-equal hostname "weiss") 120) (t 96))) #+end_src @@ -130,13 +131,13 @@ Xft.dpi: <> ** Themes A few programs I use to customize the apperance are listed below. -| Arch dependency | Description | -|--------------------+-------------------------| -| gtk-engine-murrine | My preferred GTK theme | -| gtk-engines | | -| papirus-icon-theme | My preferred Icon theme | -| xsettingsd | X11 settings daemon | -| gnome-themes-extra | | +| Arch dependency | Description | Disabled | +|--------------------+-------------------------+----------| +| gtk-engine-murrine | My preferred GTK theme | t | +| gtk-engines | | | +| papirus-icon-theme | My preferred Icon theme | | +| xsettingsd | X11 settings daemon | | +| gnome-themes-extra | | | [[https://github.com/derat/xsettingsd][xsettingsd]] is a lightweight daemon which configures X11 applications. It is launched with shepherd in the [[*Services][Services]] section. @@ -244,7 +245,7 @@ xss-lock -- i3lock -f -i /home/pavel/Pictures/lock-wallpaper.png & # Some apps that have to be launched only once. picom & # nm-applet & -dunst & +# dunst & copyq & # Run the Emacs startup script as a session. @@ -271,6 +272,9 @@ As of now, these are polybar, feh and, shepherd: (when (and (string-empty-p (shell-command-to-string "pgrep -u pavel shepherd")) (executable-find "shepherd")) (call-process "shepherd"))) + +(defun my/exwm-run-systemd () + (call-process "systemctl" nil nil nil "--user" "start" "wm-session.target")) #+end_src *** Pinentry The GUI pinentry doesn't work too well with EXWM because of issues with popup windows, so we will use the Emacs one. @@ -1216,6 +1220,7 @@ And the EXWM config itself. (my/exwm-run-polybar) (my/exwm-set-wallpaper) (my/exwm-run-shepherd) + (my/exwm-run-systemd) (my/run-in-background "gpgconf --reload gpg-agent") (when (my/is-arch) (my/run-in-background "set_layout"))) @@ -2231,6 +2236,8 @@ elif [ "$hostname" = "eminence" ]; then fi elif [ "$hostname" = "iris" ]; then TRAY_MONITOR="HDMI-1" +elif [ "$hostname" = "weiss" ]; then + TRAY_MONITOR="eDP-1" else TRAY_MONITOR="DP-1" fi @@ -3293,7 +3300,7 @@ References: ### Misc/Advanced ### dmenu = /usr/bin/dmenu -p dunst: - browser = /home/pavel/.guix-extra-profiles/browsers/browsers/bin/firefox + browser = /user/bin/firefox always_run_script = true title = Dunst class = Dunst @@ -3309,15 +3316,16 @@ References: mouse_middle_click = do_action mouse_right_click = close_all -[experimental] - per_monitor_dpi = false - -[shortcuts] + ### Shortcuts close = ctrl+space close_all = ctrl+shift+space history = ctrl+grave context = ctrl+shift+period +[experimental] + per_monitor_dpi = false + + [urgency_low] background = <> frame_color = <> @@ -4373,14 +4381,33 @@ flatpak install -y --user flathub com.github.wwmm.pulseeffects flatpak install -y --user flathub chat.rocket.RocketChat #+end_example * Services -:PROPERTIES: -:header-args+: :tangle ~/.config/shepherd/init.scm -:END: -[[https://www.gnu.org/software/shepherd/manual/html_node/index.html][GNU Shepherd]] is a service management system for GNU Guix. I'll probably migrate to systemd since I'm not on Guix anymore. +See [[https://wiki.archlinux.org/title/Systemd/User][systemd/User]] on Arch Wiki how to create user services. -| Arch dependency | Disabled | -|-----------------+----------| -| shepherd | t | +After editing the services, run: +#+begin_src bash +systemctl --user daemon-reload +#+end_src + +It's required to enable them manually for now: +#+begin_src bash +systemctl --user enable --now nm-applet +systemctl --user enable --now aw-qt +systemctl --user enable --now deterred-mpd +systemctl --user enable --now vnstat +systemctl --user enable --now xsettingsd +systemctl --user enable --now flameshot +#+end_src + +#+RESULTS: + +** Custom target +Creating a custom target because otherwise systemd tries to launch everything before the WM is loaded. + +#+begin_src conf :tangle .config/systemd/user/wm-session.target +[Unit] +Description=Window Manager Session +After=graphical-session.target +#+end_src ** Music | Category | Arch dependency | @@ -4393,51 +4420,29 @@ flatpak install -y --user flathub chat.rocket.RocketChat | music | cuetools | | music | flac | -Music player daemon -#+begin_src scheme -(define mpd - (make - #:provides '(mpd) - #:respawn? #t - #:start (make-forkexec-constructor '("mpd" "--no-daemon")) - #:stop (make-kill-destructor))) +#+begin_src conf :tangle .config/systemd/user/mpd.service +[Unit] +Description=Music Player Daemon + +[Service] +ExecStart=/usr/bin/mpd --no-daemon + +[Install] +WantedBy=graphical-session.target #+end_src -MPD watcher -#+begin_src scheme -(define sqrt-data-agent-mpd - (make - #:provides '(sqrt-data-agent-mpd) - #:respawn? #t - #:start (make-forkexec-constructor '("sqrt_data_agent_mpd")) - #:stop (make-kill-destructor) - #:requires '(mpd))) +#+begin_src conf :tangle .config/systemd/user/deterred-mpd.service +[Unit] +Description=DETERRED MPD Watcher +ConditionPathExists=/home/pavel/10-19 Code/13 Other Projects/13.02 sqrt-data/13.02.R Repos/13.02.R.05 deterred/watchers/deterred-mpd.py -(define deterred-mpd - (make - #:provides '(deterred-mpd) - #:respawn? #t - #:start (make-forkexec-constructor - '("python" "/home/pavel/10-19 Code/13 Other Projects/13.02 sqrt-data/13.02.R Repos/13.02.R.05 deterred/watchers/deterred-mpd.py" - "--db" "/home/pavel/.deterred/database.db")) - #:stop (make-kill-destructor) - #:requires '(mpd))) +[Service] +ExecStart=/usr/bin/python "/home/pavel/10-19 Code/13 Other Projects/13.02 sqrt-data/13.02.R Repos/13.02.R.05 deterred/watchers/deterred-mpd.py" "--db" "/home/pavel/.deterred/database.db" + +[Install] +WantedBy=wm-session.target #+end_src -** GNU Mcron -[[https://www.gnu.org/software/mcron/][GNU Mcron]] is a replacement for cron, written in Scheme. -| Arch dependency | Disabled | -|-----------------+----------| -| mcron | t | - -#+begin_src scheme -(define mcron - (make - #:provides '(mcron) - #:respawn? #t - #:start (make-forkexec-constructor '("mcron")) - #:stop (make-kill-destructor))) -#+end_src ** ActivityWatch [[https://activitywatch.net/][ActivityWatch]] is a FOSS time tracker. It tracks screen and application usage and has integrations with browsers, Emacs, etc. @@ -4445,212 +4450,65 @@ MPD watcher |-------------------| | activitywatch-bin | -aw-server -#+begin_src scheme -(define aw-server - (make - #:provides '(aw-server) - #:respawn? #t - #:start (make-forkexec-constructor '("aw-server")) - #:stop (make-kill-destructor))) +#+begin_src conf :tangle .config/systemd/user/aw-qt.service +[Unit] +Description=ActivityWatch + +[Service] +ExecStart=/usr/bin/aw-qt + +[Install] +WantedBy=wm-session.target #+end_src -=aw-watcher-afk= has some problems with statup, so there is a wrapper script - -#+begin_src sh :tangle ~/bin/scripts/aw-watcher-afk-wrapper -sleep 5 -aw-watcher-afk -#+end_src - -aw-watcher-afk -#+begin_src scheme -(define aw-watcher-afk - (make - #:provides '(aw-watcher-afk) - #:requires '(aw-server) - #:respawn? #t - #:start (make-forkexec-constructor '("/home/pavel/bin/scripts/aw-watcher-afk-wrapper")) - #:stop (make-kill-destructor))) -#+end_src - -aw-watcher-window -#+begin_src scheme -(define aw-watcher-window - (make - #:provides '(aw-watcher-window) - #:requires '(aw-server) - #:respawn? #t - #:start (make-forkexec-constructor '("aw-watcher-window")) - #:stop (make-kill-destructor))) -#+end_src -** PulseEffects -#+begin_src scheme -(define pulseeffects - (make - #:provides '(pulseeffects) - #:respawn? #t - #:start (make-forkexec-constructor '("flatpak" "run" "com.github.wwmm.pulseeffects" "--gapplication-service")) - #:stop (make-kill-destructor))) -#+end_src ** xsettingsd -#+begin_src scheme -(define xsettingsd - (make - #:provides '(xsettingsd) - #:respawn? #t - #:start (make-forkexec-constructor '("xsettingsd")) - #:stop (make-kill-destructor))) +#+begin_src conf :tangle .config/systemd/user/xsettingsd.service +[Unit] +Description=X Settings Daemon + +[Service] +ExecStart=/usr/bin/xsettingsd + +[Install] +WantedBy=wm-session.target #+end_src ** nm-applet -#+begin_src scheme -(define nm-applet - (make - #:provides '(nm-applet) - #:respawn? #t - #:start (make-forkexec-constructor '("nm-applet")) - #:stop (make-kill-destructor))) -#+end_src -** Discord rich presence +#+begin_src conf :tangle .config/systemd/user/nm-applet.service +[Unit] +Description=Network Manager Applet -References: -- [[https://github.com/flathub/com.discordapp.Discord/wiki/Rich-Precense-(discord-rpc)][Rich Precense (discord rpc)]] +[Service] +ExecStart=/usr/bin/nm-applet -#+begin_src scheme -(define discord-rich-presence - (make - #:provides '(discord-rich-presence) - #:one-shot? #t - #:start (make-system-constructor "ln -sf {app/com.discordapp.Discord,$XDG_RUNTIME_DIR}/discord-ipc-0"))) -#+end_src -** Polkit Authentication agent -Launch an authentication agent. Necessary for stuff like =pkexec=. I suspect I'm not doing that the intended way, but it seems to work. - -#+begin_src scheme -(define polkit-gnome - (make - #:provides '(polkit-gnome) - #:respawn? #t - #:start (make-forkexec-constructor '("/lib/polkit-gnome/polkit-gnome-authentication-agent-1")) - #:stop (make-kill-destructor))) -#+end_src -** Xmodmap -#+begin_src scheme -(define xmodmap - (make - #:provides '(xmodmap) - #:one-shot? #t - #:start (make-system-constructor "xmodmap /home/pavel/.Xmodmap"))) -#+end_src -** VPN -Run my [[file:Guix.org::*OpenVPN][OpenVPN setup]]. Not lauching this automatially, as it requires an active connection. - -#+begin_src scheme -(define vpn - (make - #:provides '(vpn) - #:respawn? #t - #:start (make-forkexec-constructor '("/home/pavel/bin/scripts/vpn-start")) - #:stop (make-kill-destructor))) -#+end_src -** Davmail -#+begin_src scheme -(define davmail - (make - #:provides '(davmail) - #:respawn? #t - #:start (make-forkexec-constructor '("/home/pavel/bin/davmail")) - #:stop (make-kill-destructor))) +[Install] +WantedBy=wm-session.target #+end_src ** vnstatd -#+begin_src scheme -(define vnstatd - (make - #:provides '(vnstatd) - #:respawn? #t - #:start (make-forkexec-constructor '("vnstatd" "-n")) - #:stop (make-kill-destructor))) + +| Arch dependency | +|-----------------| +| vnstat | + +#+begin_src conf :tangle .config/systemd/user/vnstat.service +[Unit] +Description=vnStat network monitor + +[Service] +ExecStart=/usr/bin/vnstatd + +[Install] +WantedBy=wm-session.target #+end_src -** opensnitch -[[https://github.com/evilsocket/opensnitch][opensnitch]] is a linux firewall. +** flameshot +#+begin_src conf :tangle .config/systemd/user/flameshot.service +[Unit] +Description=Flameshot -=sudoers= has to be modified this to work. -#+begin_src scheme -(define opensnitchd - (make - #:provides '(opensnitchd) - #:respawn? #t - #:start (make-forkexec-constructor '("sudo" "opensnitchd")) - #:stop (make-kill-destructor))) +[Service] +ExecStart=/usr/bin/flameshot -(define opensnitch-ui - (make - #:provides '(opensnitch-ui) - #:respawn? #t - #:start (make-forkexec-constructor '("sudo" "opensnitch-ui")) - #:stop (make-kill-destructor))) -#+end_src -** ollama -#+begin_src scheme -(define ollama - (make - #:provides '(ollama) - #:respawn? #t - #:start (make-forkexec-constructor '("ollama" "serve")) - #:stop (make-kill-destructor))) -#+end_src - -** Shepherd config -For some reason, running start on a one-shot service started to hang shepherd, not sure why... Turining these off for now. - -Register services: -#+begin_src scheme -(register-services - mpd - sqrt-data-agent-mpd - deterred-mpd - mcron - aw-server - aw-watcher-afk - aw-watcher-window - pulseeffects - xsettingsd - ;; discord-rich-presence - polkit-gnome - vpn - davmail - ;; xmodmap - nm-applet - vnstatd - ;; opensnitchd - ;; opensnitch-ui - ollama) -#+end_src - -Daemonize shepherd -#+begin_src scheme -(action 'shepherd 'daemonize) -#+end_src - -Run services -#+begin_src scheme -(for-each start '(mpd - sqrt-data-agent-mpd - deterred-mpd - mcron - aw-server - aw-watcher-afk - aw-watcher-window - pulseeffects - xsettingsd - ;; discord-rich-presence - ;; polkit-gnome - davmail - ;; ; xmodmap - ;; nm-applet - vnstatd - ;; opensnitchd - ;; opensnitch-ui - )) +[Install] +WantedBy=wm-session.target #+end_src * Arch settings Other desktop programs I use are listed below. diff --git a/Emacs.org b/Emacs.org index 3e5a814..a2237ab 100644 --- a/Emacs.org +++ b/Emacs.org @@ -11420,6 +11420,7 @@ Or you can load up Element for a moment to see what the mention was, if that's e | Arch dependency | Disabled | |--------------------+----------| | emacs-telega-sever | t | +| telegram-tdlib | | | ttf-unifont | | | gnu-free-fonts | | @@ -11436,10 +11437,8 @@ Or you can load up Element for a moment to see what the mention was, if that's e :background (my/color-value 'fg)) (telega-entity-type-spoiler :background (my/color-value 'base8))) :config - (when (file-exists-p "~/.guix-extra-profiles/emacs/emacs/bin/telega-server") - (setq telega-server-command - (expand-file-name - "~/.guix-extra-profiles/emacs/emacs/bin/telega-server"))) + (setq telega-server-libs-prefix "/usr") + (setq telega-emoji-use-images nil) (setq telega-chat-fill-column 80) (setq telega-completing-read-function #'completing-read) @@ -11463,18 +11462,6 @@ Or you can load up Element for a moment to see what the mention was, if that's e telega-webpage-mode 3 "telega")) #+end_src -Building =telega-server= can create problems. On Guix I can use the Guix package definition, on termux just build manually. -#+begin_src emacs-lisp -(defun my/telega-server-build () - (interactive) - (setq telega-server-libs-prefix - (if (executable-find "guix") - (string-trim - (shell-command-to-string "guix build tdlib")) - (expand-file-name "~/bin/td/build/res/usr/local"))) - (telega-server-build "CC=gcc")) -#+end_src - Setting up the modeline. The default mode string doesn't look great with my other modeline modules, so I override that. #+begin_src emacs-lisp (add-hook 'telega-load-hook #'telega-mode-line-mode) @@ -12795,6 +12782,10 @@ The return value is a list of commands as defined by #+RESULTS: : my/index--mega-commands **** rclone +| Arch dependency | +|-----------------| +| rclone | + This section wraps the [[https://rclone.org/bisync/][bisync]] command for rclone, which implements two-way sync. The general approach is: diff --git a/bin/polybar.sh b/bin/polybar.sh index fbb2ac4..209a857 100755 --- a/bin/polybar.sh +++ b/bin/polybar.sh @@ -12,6 +12,8 @@ elif [ "$hostname" = "eminence" ]; then fi elif [ "$hostname" = "iris" ]; then TRAY_MONITOR="HDMI-1" +elif [ "$hostname" = "weiss" ]; then + TRAY_MONITOR="eDP-1" else TRAY_MONITOR="DP-1" fi