.emacs.d/init.d/net/server.el

71 lines
2.5 KiB
EmacsLisp

;;; server.el --- Set up network stuff.. -*- lexical-binding: t; -*-
;;; Commentary:
;;; Code:
(require 'basics/package-management)
(use-package tramp
:straight (:type built-in)
:defer 2
:custom ((tramp-use-ssh-controlmaster-options nil
"Don't override SSH config.")
(tramp-default-method "ssh" "Faster than scp and supports ports.")
(tramp-password-prompt-regexp
(concat
"^.*"
(regexp-opt
'("passphrase" "Passphrase"
"password" "Password"
"Verification code")
t)
".*:\0? *") "Add verification code support.")
(tramp-connection-timeout 20)
(tramp-auto-save-directory
(concat user-emacs-directory "backups/") "Auto-save locally."))
:config (progn
(add-to-list
'tramp-remote-path 'tramp-own-remote-path) ; Respect remote PATH.
(setq tramp-use-ssh-controlmaster-options nil))) ; TEST: :custom didn't get applied.
;; Run server on TCP socket if:
;; - Our EUID is not 0,
;; - We are not logged in via SSH,
;; - It is not already running.
(use-package server
:straight (:type built-in)
:if (not (or (equal (user-real-uid) 0)
(getenv "SSH_CONNECTION")))
:functions (server-running-p)
:init (setq server-socket-dir (concat user-emacs-directory "server"))
:config (unless (eq (server-running-p) t)
(server-start)))
;; Server for Firefox-extension that allows to use Emacs to edit textareas.
;; https://addons.mozilla.org/en-US/firefox/addon/ghosttext/
(use-package atomic-chrome
:defer 2
:if (or (executable-find "firefox")
(executable-find "firefox-bin"))
:config (atomic-chrome-start-server)
;; “url” is actually the hostname.
:custom ((atomic-chrome-url-major-mode-alist
'(("^likeable\\.space$" . markdown-mode)
("^schlomp\\.space$" . gfm-mode)
("^wiki\\.gentoo\\.org$" . mediawiki-mode)
("^github\\.com$" . gfm-mode)
("^gitlab\\.com$" . gfm-mode)
("^gitlab\\.gnome\\.org$" . gfm-mode)
("^openlibrary\\.org$" . markdown-mode)
("^bookwyrm\\.social$" . markdown-mode)))
(atomic-chrome-buffer-open-style 'frame))
:hook (atomic-chrome-edit-mode . (lambda () (set-fill-column 400))))
;; Read SSH/GPG agent environment variables from file.
(use-package keychain-environment
:commands (keychain-refresh-environment))
(provide 'net/server)
;;; server.el ends here