aboutsummaryrefslogtreecommitdiff
path: root/emacs/.emacs.d/init/ycp-system.el
blob: 5670eeddab2bd52e2dcdb7476f621f7cc843fb2f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
;;; ycp-system.el -- My config for things working with the underlying system -*- lexical-binding: t -*-

;; Copyright (C) 2023 Free Software Foundation.

;; Author: Yuchen Pei <id@ypei.org>
;; Package-Requires: ((emacs "28.2"))

;; This file is part of dotfiles.

;; dotfiles is free software: you can redistribute it and/or modify it under
;; the terms of the GNU Affero General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.

;; dotfiles is distributed in the hope that it will be useful, but WITHOUT
;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
;; or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General
;; Public License for more details.

;; You should have received a copy of the GNU Affero General Public
;; License along with dotfiles.  If not, see <https://www.gnu.org/licenses/>.

;;; Commentary:

;; My config for things working with the underlying system that do not
;; seem to be clients to system utilities. Covers process monitor,
;; tramp etc.

;;; Code:


;;; `proced' (process monitor, similar to `top')
(my-package proced
  (:delay 30)
  (setq proced-auto-update-flag t)
  (setq proced-auto-update-interval 5)
  (setq proced-descend t)
  (setq proced-filter 'user))

;;; `tramp'
(my-package tramp
  (:delay 15)
  (setq tramp-default-method "ssh")
  (setq explicit-shell-file-name "/bin/bash")
  (add-to-list 'tramp-remote-path 'tramp-own-remote-path)
  ;; keep backup files locally rather than remote
  (setq tramp-backup-directory-alist backup-directory-alist)
  (with-eval-after-load 'tramp-cache
    (setq tramp-persistency-file-name (locate-user-emacs-file
                                       "tramp")))
  ;; Use discovered value for ssh options
  (setq tramp-ssh-controlmaster-options "")
  (connection-local-set-profile-variables
   'termux-bash
   '((explicit-shell-file-name . "/data/data/com.termux/files/usr/bin/bash")
     (shell-file-name . "/data/data/com.termux/files/usr/bin/bash")
     (tramp-remote-path . ("/data/data/com.termux/files/usr/bin"))))
  (connection-local-set-profiles
   `(:application tramp :protocol "ssh"
                  :machine ,(my-get-from-local my-tramp-termux-machine))
   'termux-bash)

  (connection-local-set-profile-variables
   'ghcup-bash
   '((tramp-remote-path . ("~/.ghcup/bin" "~/.local/bin" tramp-default-remote-path))))
  (connection-local-set-profiles
   `(:application tramp :protocol "ssh"
                  :machine ,(my-get-from-local my-tramp-ghcup-machine))
   'ghcup-bash)

  (connection-local-set-profile-variables
   'guix-bash
   '((explicit-shell-file-name . "/run/current-system/profile/bin/sh")
     (shell-file-name . "/run/current-system/profile/bin/sh")
     (tramp-remote-path . ("/run/current-system/profile/bin" "/run/current-system/profile/sbin"))))
  (connection-local-set-profiles
   `(:application tramp :protocol "ssh"
                  :machine ,(my-get-from-local my-tramp-guix-machine))
   'guix-bash)

  (connection-local-set-profile-variables
   'adb-shell
   '((explicit-shell-file-name . "/system/bin/sh")))
  (connection-local-set-profiles
   '(:application tramp :protocol "adb")
   'adb-shell)
  )

(provide 'ycp-system)
;;; ycp-system.el ends here