28 Commits

Author SHA1 Message Date
d9231c3a0e Elpaca migration WIP 2024-06-25 03:00:19 -06:00
fb671d1401 [NixOS] Disable home-assistant 2024-06-13 04:49:59 +00:00
a18188d3b1 [NixOS] Fix zulip only works on x86 2024-06-12 21:09:50 -06:00
4515ea2e05 [NixOS] Allow dev keys for railbird user 2024-06-11 16:37:33 -06:00
KAT
60e1947dd8 [NixOS] Add swap to jimi-hendnix 2024-06-10 19:45:21 -06:00
0305fa4683 [NixOS] Bump railbird secrets 2024-06-11 01:27:29 +00:00
84a1f22326 Delete htop configuration 2024-06-10 18:26:56 -06:00
4cb057109f [Emacs] Add logg snippet 2024-06-10 18:25:40 -06:00
51d2863cdc [NixOS] Rename razer to david-blade 2024-06-10 18:25:25 -06:00
0c1cd15391 [Emacs] Fix avy in eat 2024-06-10 18:24:50 -06:00
cef3b04ebd [NixOS] Add railbird user 2024-06-10 16:13:19 -06:00
b9f87ac490 [NixOS] Allow agent forwarding 2024-06-03 04:08:10 +00:00
3b55c26a2c [NixOS] Enable ssh agent auth 2024-06-03 03:58:13 +00:00
dcd38e777a [NixOS] Add cuda-maintainers cache 2024-06-03 03:57:57 +00:00
2116f650f7 Revert "[starship] Switch prompt"
This reverts commit 2af8204750.
2024-06-03 02:07:31 +00:00
00139ef2fe [NixOS] [Emacs] Enable eat shell integration 2024-06-02 18:10:49 -06:00
2af8204750 [starship] Switch prompt 2024-06-02 18:10:49 -06:00
cd64244bd8 [Emacs] Disable org-wild notifications for kat 2024-06-02 18:06:48 -06:00
4cc68dedea [Emacs] Finish switching to eat including migrating term-projectile 2024-06-02 17:55:13 -06:00
77fe614b7b [Emacs] Add eat 2024-06-02 06:08:34 +00:00
6bbe7f186a [NixOS] Setup argcomplete completino for prb, prod-prb and railbird 2024-06-02 04:53:48 +00:00
77fc296e9e [NixOS] Add strixy-minaj-wsl 2024-06-02 04:04:05 +00:00
807944f182 [Emacs] Add ign and 401 snippets 2024-06-01 13:56:06 -06:00
97c2779d1b Merge pull request #25 from bcorner/master
Add ben to realUsers, users.nix
2024-05-29 00:11:41 -06:00
9d900057f6 Working ben.nix file.
Probably unrelated, had to remove ~/.zshrc and ~/.zprofile in order for
nixos-rebuild switch to work.
2024-05-29 01:03:49 -05:00
86b545761f Move home-manager.backupFileExtension entry to bottom of ben.nix 2024-05-29 00:02:55 -05:00
a8a66916f4 Add shellAliases, set backupFileExtension in ben.nix. 2024-05-28 23:01:07 -05:00
32d68061a5 Make sure user ben has sudo; quick fix, prefer no repeat extraGroups 2024-05-28 22:17:40 -05:00
24 changed files with 598 additions and 518 deletions

View File

@@ -1,63 +0,0 @@
# Beware! This file is rewritten by htop when settings are changed in the interface.
# The parser is also very primitive, and not human-friendly.
htop_version=3.3.0
config_reader_min_version=3
fields=0 48 17 18 38 39 40 2 46 47 49 1
hide_kernel_threads=1
hide_userland_threads=1
hide_running_in_container=0
shadow_other_users=0
show_thread_names=0
show_program_path=1
highlight_base_name=0
highlight_deleted_exe=1
shadow_distribution_path_prefix=0
highlight_megabytes=1
highlight_threads=0
highlight_changes=0
highlight_changes_delay_secs=5
find_comm_in_cmdline=1
strip_exe_from_cmdline=1
show_merged_command=0
header_margin=1
screen_tabs=0
detailed_cpu_time=0
cpu_count_from_one=1
show_cpu_usage=1
show_cpu_frequency=0
show_cpu_temperature=0
degree_fahrenheit=0
update_process_names=0
account_guest_in_cpu_meter=0
color_scheme=0
enable_mouse=1
delay=15
hide_function_bar=0
header_layout=two_50_50
column_meters_0=AllCPUs Memory Swap
column_meter_modes_0=1 1 1
column_meters_1=Tasks LoadAverage Uptime
column_meter_modes_1=2 2 2
tree_view=0
sort_key=48
tree_sort_key=46
sort_direction=1
tree_sort_direction=-1
tree_view_always_by_pid=0
all_branches_collapsed=0
screen:Main=PID USER PRIORITY NICE M_VIRT M_RESIDENT M_SHARE STATE PERCENT_CPU PERCENT_MEM TIME Command
.sort_key=USER
.tree_sort_key=PERCENT_CPU
.tree_view_always_by_pid=0
.tree_view=0
.sort_direction=1
.tree_sort_direction=-1
.all_branches_collapsed=0
screen:I/O=PID USER IO_PRIORITY IO_RATE IO_READ_RATE IO_WRITE_RATE PERCENT_SWAP_DELAY PERCENT_IO_DELAY Command
.sort_key=IO_RATE
.tree_sort_key=PID
.tree_view_always_by_pid=0
.tree_view=0
.sort_direction=-1
.tree_sort_direction=1
.all_branches_collapsed=0

View File

@@ -361,6 +361,8 @@ but provide support for writing custom elisp.
*** shut-up *** shut-up
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package shut-up (use-package shut-up
:demand t
:ensure (:inherit t :wait t)
:config :config
(defun imalison:shut-up-around (function &rest args) (defun imalison:shut-up-around (function &rest args)
(shut-up (apply function args)))) (shut-up (apply function args))))
@@ -856,6 +858,7 @@ details.
(directory-files filepath)))) (directory-files filepath))))
(use-package eshell (use-package eshell
:ensure nil
:commands (eshell-parse-colon-path imalison:get-executables-on-path) :commands (eshell-parse-colon-path imalison:get-executables-on-path)
:config :config
(defun imalison:get-executables-on-path () (defun imalison:get-executables-on-path ()
@@ -1233,6 +1236,7 @@ This makes ~forward-word~ and ~backward-word~ understand snake and camel case.
proced is an top like utility that runs inside of emacs. The following sets auto updating automatically and makes the update interval faster. proced is an top like utility that runs inside of emacs. The following sets auto updating automatically and makes the update interval faster.
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package proced (use-package proced
:ensure nil
:defer t :defer t
:config :config
(progn (progn
@@ -1376,6 +1380,7 @@ Paradox is a package.el extension. I have no use for it now that I use straight.
** server ** server
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package server (use-package server
:ensure nil
:demand t :demand t
:config :config
(progn (progn
@@ -1444,19 +1449,6 @@ The file server file for this emacs instance no longer exists.")
(use-package refine (use-package refine
:disabled t) :disabled t)
#+END_SRC #+END_SRC
** winner
#+BEGIN_SRC emacs-lisp
(use-package winner
:commands (winner-undo winner-redo)
:bind ("C-c q" . imalison:winner-hydra/body)
:config
(progn
(defhydra imalison:winner-hydra ()
"Winner"
("p" winner-undo "back")
("n" winner-redo "forward" :exit t))
(winner-mode 1)))
#+END_SRC
** eyebrowse ** eyebrowse
I don't have any use for this now that I use frames mode, but its an interesting idea. I don't have any use for this now that I use frames mode, but its an interesting idea.
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
@@ -1521,11 +1513,10 @@ custom-set-faces in your custom file.
(use-package highlight-indent-guides (use-package highlight-indent-guides
:commands highlight-indent-guides-mode :commands highlight-indent-guides-mode
:diminish highlight-indent-guides-mode :diminish highlight-indent-guides-mode
:preface :demand t
(progn
(add-hook 'prog-mode-hook 'highlight-indent-guides-mode))
:config :config
(progn (progn
(add-hook 'prog-mode-hook 'highlight-indent-guides-mode)
(setq highlight-indent-guides-method 'fill))) (setq highlight-indent-guides-method 'fill)))
#+END_SRC #+END_SRC
** man-mode ** man-mode
@@ -1534,6 +1525,7 @@ fixes that, but for now, it needs to be run manually, since I haven't figured
out how to detect that a buffer is a man mode buffer. out how to detect that a buffer is a man mode buffer.
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package man (use-package man
:ensure nil
:config :config
(progn (progn
(defun imalison:fontify-man-page-buffer () (defun imalison:fontify-man-page-buffer ()
@@ -1759,6 +1751,7 @@ bind-key and global-set-key forms.
#+END_SRC #+END_SRC
** projectile ** projectile
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package projectile (use-package projectile
:demand t :demand t
:bind (:map projectile-mode-map :bind (:map projectile-mode-map
@@ -1772,7 +1765,7 @@ bind-key and global-set-key forms.
(projectile-git-submodule-command nil) (projectile-git-submodule-command nil)
(project-vc-merge-submodules nil) (project-vc-merge-submodules nil)
(projectile-current-project-on-switch 'keep)) (projectile-current-project-on-switch 'keep))
:preface :config
(progn (progn
(defmacro imalison:projectile-do-in-project (project-dir &rest forms) (defmacro imalison:projectile-do-in-project (project-dir &rest forms)
`(imalison:with-default-directory ,project-dir `(imalison:with-default-directory ,project-dir
@@ -1804,9 +1797,7 @@ bind-key and global-set-key forms.
(write-region "" nil (write-region "" nil
(expand-file-name (expand-file-name
(concat directory "/" (concat directory "/"
(nth 0 file-info) "/.projectile"))))))) (nth 0 file-info) "/.projectile"))))))
:config
(progn
(projectile-global-mode) (projectile-global-mode)
(diminish 'projectile-mode))) (diminish 'projectile-mode)))
#+END_SRC #+END_SRC
@@ -1855,7 +1846,8 @@ bind-key and global-set-key forms.
** avy ** avy
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package avy (use-package avy
:preface :after emit
:config
(progn (progn
(emit-prefix-selector imalison:avy (emit-prefix-selector imalison:avy
avy-goto-word-1 avy-goto-word-1
@@ -1867,11 +1859,13 @@ bind-key and global-set-key forms.
** ace-window ** ace-window
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package ace-window (use-package ace-window
:preface :after emit
(emit-prefix-selector imalison:ace-window :config
ace-select-window (progn
ace-swap-window) (emit-prefix-selector imalison:ace-window
:config (setq aw-keys '(?a ?s ?d ?f ?g ?h ?j ?k ?l)) ace-select-window
ace-swap-window)
(setq aw-keys '(?a ?s ?d ?f ?g ?h ?j ?k ?l)))
:bind ("C-c w" . imalison:ace-window)) :bind ("C-c w" . imalison:ace-window))
#+END_SRC #+END_SRC
** neotree ** neotree
@@ -1897,41 +1891,41 @@ Neotree is useless with frame mode for now, so I've disabled it.
* Completion * Completion
** vertico ** vertico
#+begin_src emacs-lisp #+begin_src emacs-lisp
(use-package vertico (use-package vertico
:demand t :demand t
:config :config
(progn (progn
(defmacro imalison:use-vertico-extension (extension-name &rest forms) (defmacro imalison:use-vertico-extension (extension-name &rest forms)
(let ((extension-symbol (intern (concat "vertico-" (symbol-name extension-name))))) (let ((extension-symbol (intern (concat "vertico-" (symbol-name extension-name)))))
`(use-package ,extension-symbol `(use-package ,extension-symbol
:after vertico :after vertico
:straight (,extension-symbol :straight (,extension-symbol
:repo "emacs-straight/vertico" :repo "emacs-straight/vertico"
:host github :host github
:files ,(list (concat "extensions/" (symbol-name extension-symbol) ".el"))) :files ,(list (concat "extensions/" (symbol-name extension-symbol) ".el")))
,@forms))) ,@forms)))
(put 'imalison:use-vertico-extension 'lisp-indent-function 'defun) (put 'imalison:use-vertico-extension 'lisp-indent-function 'defun)
(imalison:use-vertico-extension directory (imalison:use-vertico-extension directory
:bind (:map vertico-map :bind (:map vertico-map
("RET" . vertico-directory-enter) ("RET" . vertico-directory-enter)
("DEL" . vertico-directory-delete-char) ("DEL" . vertico-directory-delete-char)
("M-DEL" . vertico-directory-delete-word) ("M-DEL" . vertico-directory-delete-word)
("TAB" . embark-act))) ("TAB" . embark-act)))
(imalison:use-vertico-extension grid) (imalison:use-vertico-extension grid)
(imalison:use-vertico-extension buffer) (imalison:use-vertico-extension buffer)
(imalison:use-vertico-extension flat) (imalison:use-vertico-extension flat)
(imalison:use-vertico-extension multiform (imalison:use-vertico-extension multiform
:config :config
(progn (progn
(vertico-multiform-mode +1) (vertico-multiform-mode +1)
(setq vertico-multiform-commands (setq vertico-multiform-commands
'((consult-imenu grid) '((consult-imenu grid)
(consult-ripgrep buffer))))) (consult-ripgrep buffer)))))
(vertico-mode +1))) (vertico-mode +1)))
#+end_src #+end_src
** orderless ** orderless
#+begin_src emacs-lisp #+begin_src emacs-lisp
@@ -2026,10 +2020,12 @@ Neotree is useless with frame mode for now, so I've disabled it.
** company ** company
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package company (use-package company
:after emit
:commands company-mode imalison:company :commands company-mode imalison:company
:bind (("C-\\" . imalison:company)) :bind (("C-\\" . imalison:company))
:config :config
(progn (progn
(add-hook 'prog-mode-hook (lambda () (company-mode t)))
(emit-prefix-selector imalison:company (emit-prefix-selector imalison:company
company-complete company-complete
company-yasnippet) company-yasnippet)
@@ -2039,9 +2035,7 @@ Neotree is useless with frame mode for now, so I've disabled it.
:demand t :demand t
:config (company-prescient-mode +1)) :config (company-prescient-mode +1))
(global-company-mode) (global-company-mode)
(diminish 'company-mode)) (diminish 'company-mode)))
:init
(add-hook 'prog-mode-hook (lambda () (company-mode t))))
#+END_SRC #+END_SRC
*** company-flx *** company-flx
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
@@ -2214,6 +2208,7 @@ I don't use auto-complete at all, so I have set up a hook to automatically disab
** align ** align
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package align (use-package align
:ensure nil
:bind ("C-c C-a" . imalison:align-regexp-hydra/body) :bind ("C-c C-a" . imalison:align-regexp-hydra/body)
:config :config
(progn (progn
@@ -2242,9 +2237,10 @@ I don't use auto-complete at all, so I have set up a hook to automatically disab
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package flycheck (use-package flycheck
:commands flycheck-mode :commands flycheck-mode
:init (add-hook 'prog-mode-hook 'flycheck-mode) :defer 1
:config :config
(progn (progn
(add-hook 'prog-mode-hook 'flycheck-mode)
(use-package flycheck-package (use-package flycheck-package
:disabled t :disabled t
:config (flycheck-package-setup)) :config (flycheck-package-setup))
@@ -2261,12 +2257,6 @@ I don't use auto-complete at all, so I have set up a hook to automatically disab
(global-flycheck-mode)) (global-flycheck-mode))
:diminish flycheck-mode) :diminish flycheck-mode)
#+END_SRC #+END_SRC
* straight
#+BEGIN_SRC emacs-lisp
(use-package straight
:config
(setq straight-vc-git-auto-fast-forward t))
#+END_SRC
* auth-source * auth-source
#+begin_src emacs-lisp #+begin_src emacs-lisp
(use-package auth-source (use-package auth-source
@@ -2318,96 +2308,96 @@ I don't use auto-complete at all, so I have set up a hook to automatically disab
#+END_SRC #+END_SRC
*** go *** go
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package go-mode ;; (use-package go-mode
:mode (("\\.go\\'" . go-mode)) ;; :mode (("\\.go\\'" . go-mode))
:preface ;; :after emit
(progn ;; :config
(defun imalison:glide-novendor () ;; (progn
(projectile-with-default-dir (projectile-project-root) ;; (defun imalison:glide-novendor ()
(shell-command-to-string "glide novendor"))) ;; (projectile-with-default-dir (projectile-project-root)
;; (shell-command-to-string "glide novendor")))
(defun imalison:go-mode-create-imenu-index () ;; (defun imalison:go-mode-create-imenu-index ()
"Create and return an imenu index alist. Unlike the default ;; "Create and return an imenu index alist. Unlike the default
alist created by go-mode, this method creates an alist where ;; alist created by go-mode, this method creates an alist where
items follow a style that is consistent with other prog-modes." ;; items follow a style that is consistent with other prog-modes."
(let* ((patterns '(("type" "^type *\\([^ \t\n\r\f]*\\)" 1))) ;; (let* ((patterns '(("type" "^type *\\([^ \t\n\r\f]*\\)" 1)))
(type-index (imenu--generic-function patterns)) ;; (type-index (imenu--generic-function patterns))
(func-index)) ;; (func-index))
(save-excursion ;; (save-excursion
(goto-char (point-min)) ;; (goto-char (point-min))
(while (re-search-forward go-func-meth-regexp (point-max) t) ;; (while (re-search-forward go-func-meth-regexp (point-max) t)
(let* ((var (match-string-no-properties 1)) ;; (let* ((var (match-string-no-properties 1))
(func (match-string-no-properties 2)) ;; (func (match-string-no-properties 2))
(name (if var ;; (name (if var
(concat (substring var 0 -1) "." func) ;; (concat (substring var 0 -1) "." func)
func)) ;; func))
(beg (match-beginning 0)) ;; (beg (match-beginning 0))
(marker (copy-marker beg)) ;; (marker (copy-marker beg))
(item (cons name marker))) ;; (item (cons name marker)))
(setq func-index (cons item func-index))))) ;; (setq func-index (cons item func-index)))))
(nconc type-index (list (cons "func" func-index))))) ;; (nconc type-index (list (cons "func" func-index)))))
(defun imalison:go-workspace-path () ;; (defun imalison:go-workspace-path ()
(file-relative-name (projectile-project-root) ;; (file-relative-name (projectile-project-root)
(concat (file-name-as-directory ;; (concat (file-name-as-directory
(imalison:get-go-path)) "src"))) ;; (imalison:get-go-path)) "src")))
(defun imalison:install-current-go-project () ;; (defun imalison:install-current-go-project ()
(interactive) ;; (interactive)
(start-process ;; (start-process
"go install" "go install log" "go" "install" ;; "go install" "go install log" "go" "install"
(concat (file-name-as-directory (imalison:go-workspace-path)) "..."))) ;; (concat (file-name-as-directory (imalison:go-workspace-path)) "...")))
(defun imalison:get-go-path () ;; (defun imalison:get-go-path ()
(let ((environment-go-path (getenv "GOPATH"))) ;; (let ((environment-go-path (getenv "GOPATH")))
(if environment-go-path ;; (if environment-go-path
(file-name-as-directory (car (s-split ":" environment-go-path))) ;; (file-name-as-directory (car (s-split ":" environment-go-path)))
"~/go"))) ;; "~/go")))
(defmacro imalison:get-go-src (&rest paths) ;; (defmacro imalison:get-go-src (&rest paths)
`(imalison:join-paths (imalison:get-go-path) "src" ,@paths)) ;; `(imalison:join-paths (imalison:get-go-path) "src" ,@paths))
(imalison:let-advise-around imalison:advise-normal-go-command ;; (imalison:let-advise-around imalison:advise-normal-go-command
(go-command "go")) ;; (go-command "go"))
(defun imalison:go-mode-hook () ;; (defun imalison:go-mode-hook ()
(go-eldoc-setup) ;; (go-eldoc-setup)
(set (make-local-variable 'company-backends) '(company-go)) ;; (set (make-local-variable 'company-backends) '(company-go))
(make-local-variable 'projectile-globally-ignored-files) ;; (make-local-variable 'projectile-globally-ignored-files)
(add-hook 'after-save-hook 'imalison:install-current-go-project nil ;; (add-hook 'after-save-hook 'imalison:install-current-go-project nil
'yes-do-local) ;; 'yes-do-local)
(add-to-list 'projectile-globally-ignored-files ;; (add-to-list 'projectile-globally-ignored-files
"vendor"))) ;; "vendor"))
:config ;; (use-package gotest
(progn ;; :demand t
(use-package gotest ;; :after emit
:demand t ;; :bind (:map go-mode-map
:bind (:map go-mode-map ;; ("C-c t" . imalison:gotest))
("C-c t" . imalison:gotest)) ;; :preface
:preface ;; (progn
(progn ;; (emit-prefix-selector imalison:gotest
(emit-prefix-selector imalison:gotest ;; go-test-current-test
go-test-current-test ;; go-test-current-file)
go-test-current-file)
(defun imalison:add-expected-test-name-for-suite (suite-name test-name) ;; (defun imalison:add-expected-test-name-for-suite (suite-name test-name)
(if (> (length suite-name) 0) ;; (if (> (length suite-name) 0)
(concat " -run Test" suite-name) ;; (concat " -run Test" suite-name)
""))) ;; "")))
:config ;; :config
(progn ;; (progn
(setq go-test-verbose t ;; (setq go-test-verbose t
go-test-additional-arguments-function ;; go-test-additional-arguments-function
'imalison:add-expected-test-name-for-suite))) ;; 'imalison:add-expected-test-name-for-suite)))
(use-package company-go ;; (use-package company-go
:config (setq company-go-show-annotation t)) ;; :config (setq company-go-show-annotation t))
(advice-add 'go-import-add :around 'imalison:advise-normal-go-command) ;; (advice-add 'go-import-add :around 'imalison:advise-normal-go-command)
(setq gofmt-command "goimports") ;; (setq gofmt-command "goimports")
(add-hook 'go-mode-hook 'imalison:go-mode-hook) ;; (add-hook 'go-mode-hook 'imalison:go-mode-hook)
(add-hook 'before-save-hook 'gofmt-before-save t))) ;; (add-hook 'before-save-hook 'gofmt-before-save t)))
#+END_SRC #+END_SRC
**** Show diffs of testify output **** Show diffs of testify output
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
@@ -2449,13 +2439,25 @@ I don't use auto-complete at all, so I have set up a hook to automatically disab
**** elisp-slime-nav **** elisp-slime-nav
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package elisp-slime-nav (use-package elisp-slime-nav
:after emit
:commands elisp-slime-nav-mode :commands elisp-slime-nav-mode
:config :config
(diminish 'elisp-slime-nav-mode) (progn
:preface (defvar imalison:check-parens nil)
(emit-prefix-selector imalison:elisp-slime-nav
elisp-slime-nav-find-elisp-thing-at-point (defun imalison:maybe-check-parens ()
elisp-slime-nav-describe-elisp-thing-at-point) (if imalison:check-parens
(check-parens)))
(defun imalison:emacs-lisp-hook ()
(elisp-slime-nav-mode t)
(add-hook 'write-file-functions 'imalison:maybe-check-parens nil t))
(add-hook 'emacs-lisp-mode-hook 'imalison:emacs-lisp-hook)
(diminish 'elisp-slime-nav-mode)
(emit-prefix-selector imalison:elisp-slime-nav
elisp-slime-nav-find-elisp-thing-at-point
elisp-slime-nav-describe-elisp-thing-at-point))
:bind (:map elisp-slime-nav-mode-map :bind (:map elisp-slime-nav-mode-map
("M-." . imalison:elisp-slime-nav))) ("M-." . imalison:elisp-slime-nav)))
#+END_SRC #+END_SRC
@@ -2465,6 +2467,7 @@ it's supposed to do, but instead uses its own collection of functions to control
where the definition is popped up. This fixes that. where the definition is popped up. This fixes that.
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package find-func (use-package find-func
:ensure nil
:preface :preface
(progn (progn
(defun imalison:find-function-display-buffer (function) (defun imalison:find-function-display-buffer (function)
@@ -2484,14 +2487,6 @@ Macrostep is an indespensible tool for writing emacs lisp macros. It lets you se
:bind (:map lisp-mode-shared-map :bind (:map lisp-mode-shared-map
("C-c e" . macrostep-expand))) ("C-c e" . macrostep-expand)))
#+END_SRC #+END_SRC
**** emr
#+BEGIN_SRC emacs-lisp
(use-package emr
:bind ("M-RET" . emr-show-refactor-menu)
:config
(progn
(add-hook 'prog-mode-hook 'emr-initialize)))
#+END_SRC
**** Editing configuration **** Editing configuration
Reduce indentation for some functions Reduce indentation for some functions
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
@@ -2505,6 +2500,7 @@ Reduce indentation for some functions
**** edebug **** edebug
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package edebug (use-package edebug
:ensure nil
:defer t :defer t
:config :config
(progn (setq edebug-trace t))) (progn (setq edebug-trace t)))
@@ -2543,6 +2539,7 @@ Reduce indentation for some functions
:commands (eros-mode) :commands (eros-mode)
:config :config
(progn (progn
(add-hook 'emacs-lisp-mode-hook 'eros-mode)
(advice-add 'eval-defun :around 'eros-around-eval-defun) (advice-add 'eval-defun :around 'eros-around-eval-defun)
(advice-add 'eval-last-sexp :around 'eros-around-eval-last-sexp)) (advice-add 'eval-last-sexp :around 'eros-around-eval-last-sexp))
:preface :preface
@@ -2563,9 +2560,7 @@ Reduce indentation for some functions
(save-excursion (save-excursion
(end-of-defun) (end-of-defun)
(point)))) (point))))
result)) result))))
(add-hook 'emacs-lisp-mode-hook 'eros-mode)))
#+END_SRC #+END_SRC
**** Reevalute defvars when running eval-last-sexp **** Reevalute defvars when running eval-last-sexp
We noflet elisp--preceding-sexp to munge defvars into sexps only for We noflet elisp--preceding-sexp to munge defvars into sexps only for
@@ -2583,27 +2578,10 @@ eval-last-sexp.
#+END_SRC #+END_SRC
**** Init hook **** Init hook
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(defvar imalison:check-parens nil)
(defun imalison:maybe-check-parens ()
(if imalison:check-parens
(check-parens)))
(defun imalison:emacs-lisp-hook ()
(elisp-slime-nav-mode t)
(add-hook 'write-file-functions 'imalison:maybe-check-parens nil t))
(add-hook 'emacs-lisp-mode-hook 'imalison:emacs-lisp-hook)
#+END_SRC #+END_SRC
**** Keybinds **** Keybinds
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(emit-compose
imalison:copy-eval-last-sexp kill-new prin1-to-string eval-last-sexp)
(emit-prefix-selector imalison:eval-last-sexp
eval-region-or-last-sexp
imalison:copy-eval-last-sexp)
(define-key lisp-mode-shared-map (kbd "C-c C-c") 'eval-defun) (define-key lisp-mode-shared-map (kbd "C-c C-c") 'eval-defun)
(define-key lisp-mode-shared-map (kbd "C-x C-e") 'imalison:eval-last-sexp) (define-key lisp-mode-shared-map (kbd "C-x C-e") 'imalison:eval-last-sexp)
(unbind-key "C-j" lisp-interaction-mode-map) (unbind-key "C-j" lisp-interaction-mode-map)
@@ -2704,11 +2682,6 @@ The following is taken from [[https://github.com/syl20bnr/spacemacs/blob/a650877
cider-preferred-build-tool "boot") cider-preferred-build-tool "boot")
(add-hook 'clojure-mode-hook 'cider-mode))) (add-hook 'clojure-mode-hook 'cider-mode)))
#+END_SRC #+END_SRC
**** clj-refactor
#+BEGIN_SRC emacs-lisp
(use-package clj-refactor
:commands clj-refactor-mode)
#+END_SRC
*** scala *** scala
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package scala-mode (use-package scala-mode
@@ -2908,7 +2881,7 @@ The following is taken from [[https://github.com/syl20bnr/spacemacs/blob/a650877
#+END_SRC #+END_SRC
*** C/C++ *** C/C++
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package cc-mode) (use-package cc-mode :ensure nil)
#+END_SRC #+END_SRC
*** C-- *** C--
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
@@ -3113,9 +3086,10 @@ My org-mode configuration now lives in its own file org-config.org.
** magit ** magit
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package magit (use-package magit
:after emit
:commands magit-status :commands magit-status
:bind (("C-x g" . imalison:magit-status)) :bind (("C-x g" . imalison:magit-status))
:preface :config
(progn (progn
(emit-let-around imalison:magit-status-traditional (emit-let-around imalison:magit-status-traditional
magit-status magit-status
@@ -3126,9 +3100,7 @@ My org-mode configuration now lives in its own file org-config.org.
imalison:magit-status-traditional) imalison:magit-status-traditional)
(defun imalison:after-magit-visit-file (&rest args) (defun imalison:after-magit-visit-file (&rest args)
(when (derived-mode-p 'org-mode) (when (derived-mode-p 'org-mode)
(org-show-context 'magit-goto)))) (org-show-context 'magit-goto)))
:config
(progn
(when frame-mode (when frame-mode
(setq magit-commit-show-diff t)) (setq magit-commit-show-diff t))
(unbind-key "C-j" magit-status-mode-map) (unbind-key "C-j" magit-status-mode-map)
@@ -3139,7 +3111,6 @@ My org-mode configuration now lives in its own file org-config.org.
magit-display-buffer-function magit-display-buffer-function
'magit-display-buffer-same-window-except-diff-v1) 'magit-display-buffer-same-window-except-diff-v1)
(magit-auto-revert-mode) (magit-auto-revert-mode)
(add-to-list 'org-show-context-detail '(magit-goto . lineage)) (add-to-list 'org-show-context-detail '(magit-goto . lineage))
(advice-add 'magit-diff-visit-file :after 'imalison:after-magit-visit-file) (advice-add 'magit-diff-visit-file :after 'imalison:after-magit-visit-file)
(add-hook 'magit-popup-mode-hook 'imalison:disable-show-trailing-whitespace))) (add-hook 'magit-popup-mode-hook 'imalison:disable-show-trailing-whitespace)))
@@ -3150,20 +3121,6 @@ My org-mode configuration now lives in its own file org-config.org.
:disabled t :disabled t
:after magit) :after magit)
#+end_src #+end_src
** vc
#+begin_src emacs-lisp
(use-package vc
:config
(progn
(defun vc-find-revision-of-file (revision)
(interactive
(list (vc-read-revision
"Revision to visit: "
(list (imalison:join-paths (magit-toplevel) (car (magit-list-files)))))))
(let* ((file (completing-read "Select file to visit: " (magit-revision-files revision)))
(full-file (imalison:join-paths (magit-toplevel) file)))
(switch-to-buffer (vc-find-revision full-file revision))))))
#+end_src
** git-link ** git-link
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package git-link (use-package git-link
@@ -3288,14 +3245,6 @@ modeline and with excessive http requests to github.
gist-unstar gist-list-starred gist-fork)) gist-unstar gist-list-starred gist-fork))
#+END_SRC #+END_SRC
* Programming * Programming
** emr
emr (emacs refactor) provides support for refactoring in many programming languages
#+BEGIN_SRC emacs-lisp
(use-package emr
:bind (:map prog-mode-map
("M-RET" . emr-show-refactor-menu))
:config (emr-initialize))
#+END_SRC
** semantic ** semantic
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package semantic (use-package semantic
@@ -3331,6 +3280,29 @@ emr (emacs refactor) provides support for refactoring in many programming langua
(setq lsp-ui-doc-position 'bottom))))) (setq lsp-ui-doc-position 'bottom)))))
#+END_SRC #+END_SRC
* Utility * Utility
** eat
#+begin_src emacs-lisp
(use-package eat
:preface
(progn
(defun imalison:avy-eat (arg)
(interactive "P")
(eat-emacs-mode)
(imalison:avy arg)))
:bind
(:map eat-mode-map
("C-c C-k" . eat-semi-char-mode)
:map eat-semi-char-mode-map
("C-c C-j" . eat-emacs-mode)
("C-j" . imalison:avy-eat))
:config
(progn
(setq eat--install-path
(file-name-directory
(file-truename (imalison:join-paths eat--install-path "eat.el"))))
(eat-compile-terminfo)
(setq eat-term-shell-integration-directory (imalison:join-paths eat--install-path "integration"))))
#+end_src
** term ** term
The main thing I do here is restore a bunch of keybindings that are eliminated The main thing I do here is restore a bunch of keybindings that are eliminated
in term-mode. This makes term-mode 1000% more useful in term-mode. This makes term-mode 1000% more useful
@@ -3338,6 +3310,7 @@ in term-mode. This makes term-mode 1000% more useful
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package term (use-package term
:demand t :demand t
:ensure nil
:preface :preface
(progn (progn
(defun imalison:avy-term (arg) (defun imalison:avy-term (arg)
@@ -3402,6 +3375,7 @@ in term-mode. This makes term-mode 1000% more useful
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package term-projectile (use-package term-projectile
:bind ("C-c 7" . imalison:term-hydra-global/body) :bind ("C-c 7" . imalison:term-hydra-global/body)
:after emit
:commands :commands
(term-projectile-backward (term-projectile-backward
term-projectile-create-new term-projectile-create-new
@@ -3412,6 +3386,12 @@ in term-mode. This makes term-mode 1000% more useful
term-projectile-switch) term-projectile-switch)
:config :config
(progn (progn
(use-package term-manager-eat
:demand t
:straight
(term-manager-eat :type git :files ("term-manager-eat.el")
:host github :repo "colonelpanic8/term-manager"))
(setq term-projectile-term-manager (term-projectile :build-term 'term-manager-eat-build-term))
(emit-prefix-selector imalison:term (emit-prefix-selector imalison:term
term-projectile-forward term-projectile-forward
term-projectile-create-new) term-projectile-create-new)
@@ -3567,6 +3547,7 @@ I don't use iedit directly, but it is used by [[*emr][emr]] and I need to disabl
** narrow-indirect ** narrow-indirect
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package narrow-indirect (use-package narrow-indirect
:ensure nil
:init :init
(progn (progn
(define-key ctl-x-4-map "nd" 'ni-narrow-to-defun-indirect-other-window) (define-key ctl-x-4-map "nd" 'ni-narrow-to-defun-indirect-other-window)
@@ -3602,9 +3583,9 @@ I had to disable this mode because something that it does messes with coding set
(interactive) (interactive)
(setq dtrt-indent-original-indent nil) (setq dtrt-indent-original-indent nil)
(dtrt-indent-adapt))) (dtrt-indent-adapt)))
:init (add-hook 'prog-mode-hook 'dtrt-indent-mode)
:config :config
(progn (progn
(add-hook 'prog-mode-hook 'dtrt-indent-mode)
(setq dtrt-indent-active-mode-line-info " [⟼]"))) (setq dtrt-indent-active-mode-line-info " [⟼]")))
#+END_SRC #+END_SRC
** indent-guide ** indent-guide
@@ -3645,7 +3626,9 @@ Disabled because it makes it hard to redo things
** recentf ** recentf
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package recentf (use-package recentf
:ensure nil
:demand t :demand t
:after shut-up
:config :config
(progn (progn
(setq recentf-max-saved-items 1000 (setq recentf-max-saved-items 1000
@@ -3741,6 +3724,7 @@ Not really sure what this is
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package epg (use-package epg
:after shut-up :after shut-up
:ensure nil
:config :config
(shut-up (shut-up
(epa-file-enable))) (epa-file-enable)))
@@ -3763,113 +3747,6 @@ Not really sure what this is
:disabled t ;; fails to load eieio on startup :disabled t ;; fails to load eieio on startup
) )
#+END_SRC #+END_SRC
** mu4e
#+BEGIN_SRC emacs-lisp
;; (eval-when-compile
;; (require 's)
;; (defvar mu4e-elisp-directory
;; (s-trim (shell-command-to-string "mu4e_directory"))))
(use-package mu4e
:disabled t
:load-path mu4e-elisp-directory
:straight nil
:commands (mu4e mu4e-view-message-with-msgid mu4e-update-index email)
:bind ("C-c 0" . email)
:config
(progn
(defun email (&optional arg)
(interactive "P")
(if (string-equal (persp-name persp-curr) "email")
(progn (delete-other-windows) (mu4e))
(progn
(persp-switch "email")
(when (or (not (mu4e-running-p)) arg)
(delete-other-windows) (mu4e)))))
;; enable inline images
(setq mu4e-view-show-images t)
;; show images
(setq mu4e-show-images t)
;; Try to display html as text
(setq mu4e-view-prefer-html nil)
(setq mu4e-html2text-command "html2text -width 80 -nobs -utf8")
;; use imagemagick, if available
(when (fboundp 'imagemagick-register-types)
(imagemagick-register-types))
(setq mail-user-agent 'mu4e-user-agent)
(require 'org-mu4e)
(setq mu4e-compose-complete-only-after nil)
(setq mu4e-maildir "~/Mail")
(setq mu4e-drafts-folder "/[Gmail].Drafts")
(setq mu4e-sent-folder "/[Gmail].Sent Mail")
(setq mu4e-trash-folder "/[Gmail].Trash")
(setq mu4e-sent-messages-behavior 'delete)
(setq mu4e-headers-skip-duplicates t)
(setq mu4e-update-interval (* 60 20))
(setq message-kill-buffer-on-exit t)
(setq mail-user-agent 'mu4e-user-agent) ;; make mu4e the default mail client
;; don't save message to Sent Messages, Gmail/IMAP takes care of this
(setq mu4e-sent-messages-behavior 'delete)
;; allow for updating mail using 'U' in the main view:
(setq mu4e-get-mail-command "timeout 60 offlineimap")
(add-hook 'mu4e-compose-mode-hook
(defun my-do-compose-stuff () (flyspell-mode)))
(add-to-list 'mu4e-headers-actions '("view in browser" . mu4e-action-view-in-browser))
(add-to-list 'mu4e-view-actions '("view in browser" . mu4e-action-view-in-browser))
(defun mu4e-view (msg headersbuf)
"Display the message MSG in a new buffer, and keep in sync with HDRSBUF.
'In sync' here means that moving to the next/previous message in
the the message view affects HDRSBUF, as does marking etc.
As a side-effect, a message that is being viewed loses its 'unread'
marking if it still had that."
(let* ((embedded ;; is it as an embedded msg (ie. message/rfc822 att)?
(when (gethash (mu4e-message-field msg :path)
mu4e~path-parent-docid-map) t))
(buf
(if embedded
(mu4e~view-embedded-winbuf)
(get-buffer-create mu4e~view-buffer-name))))
;; note: mu4e~view-mark-as-read will pseudo-recursively call mu4e-view again
;; by triggering mu4e~view again as it marks the message as read
(with-current-buffer buf
(switch-to-buffer buf)
(setq mu4e~view-msg msg)
;;(or embedded (not (mu4e~view-mark-as-read msg)))
(when (or (mu4e~view-mark-as-read msg) t)
(let ((inhibit-read-only t))
(erase-buffer)
(mu4e~delete-all-overlays)
(insert (mu4e-view-message-text msg))
(goto-char (point-min))
(mu4e~fontify-cited)
(mu4e~fontify-signature)
(mu4e~view-make-urls-clickable)
(mu4e~view-show-images-maybe msg)
(setq
mu4e~view-buffer buf
mu4e~view-headers-buffer headersbuf)
(when embedded (local-set-key "q" 'kill-buffer-and-window))
(mu4e-view-mode))))))
(require 'smtpmail)
;; alternatively, for emacs-24 you can use:
(setq message-send-mail-function 'smtpmail-send-it
smtpmail-stream-type 'starttls
smtpmail-default-smtp-server "smtp.gmail.com"
smtpmail-smtp-server "smtp.gmail.com"
smtpmail-smtp-service 587)))
#+END_SRC
** gmail-message-mode ** gmail-message-mode
This is useful with server mode when editing gmail messages. I think that it is not currently working, or it may need to be manually enabled. This is useful with server mode when editing gmail messages. I think that it is not currently working, or it may need to be manually enabled.
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
@@ -3904,56 +3781,6 @@ This is useful with server mode when editing gmail messages. I think that it is
:notifier 'imalison:windows-toast-notify) :notifier 'imalison:windows-toast-notify)
(setq alert-default-style 'windows-toast)))) (setq alert-default-style 'windows-toast))))
#+END_SRC #+END_SRC
** sauron
#+BEGIN_SRC emacs-lisp
(use-package sauron
:disabled t
:defer 5
:commands (sauron-start sauron-start-hidden)
:init
(progn
(when (eq system-type 'darwin)
(setq sauron-modules '(sauron-erc sauron-org sauron-notifications
sauron-twittering sauron-jabber sauron-identica))
(defun sauron-dbus-start ()
nil)
(makunbound 'dbus-path-emacs)))
:config
(progn
(sauron-start-hidden)
;; This should really check (featurep 'dbus) but for some reason
;; this is always true even if support is not there.
(setq sauron-prio-sauron-started 2)
(setq sauron-min-priority 3)
;; (setq sauron-dbus-cookie t) ;; linux only?
(setq sauron-separate-frame nil)
(setq sauron-nick-insensitivity 1)
(defun sauron:jabber-notify (origin priority message &optional properties)
(funcall notify-function "gtalk" message))
(defun sauron:erc-notify (origin priority message &optional properties)
(let ((event (plist-get properties :event)))
(funcall notify-function "IRC" message)))
(defun sauron:mu4e-notify (origin priority message &optional properties)
nil)
(defun sauron:dbus-notify (origin priority message &optional properties)
(funcall notify-function "GMail" message))
(defun sauron:dispatch-notify (origin priority message &optional properties)
(let ((handler (cond ((string= origin "erc") 'sauron:erc-notify)
((string= origin "jabber") 'sauron:jabber-notify)
((string= origin "mu4e") 'sauron:mu4e-notify)
((string= origin "dbus") 'sauron:dbus-notify)
(t (lambda (&rest r) nil)))))
(funcall handler origin priority message properties)))
;; Prefering alert.el for now ;; (add-hook 'sauron-event-added-functions 'sauron:dispatch-notify)
(sauron-start-hidden)
(add-hook 'sauron-event-added-functions 'sauron-alert-el-adapter)))
#+END_SRC
** screenshot
#+BEGIN_SRC emacs-lisp
(use-package screenshot
:commands screenshot)
#+END_SRC
** libmpdee ** libmpdee
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package libmpdee (use-package libmpdee
@@ -4084,23 +3911,24 @@ This also adds syntax highlighting for gradle
** jsx-mode ** jsx-mode
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package jsx-mode (use-package jsx-mode
:ensure nil
:defer t) :defer t)
#+END_SRC #+END_SRC
** css ** css
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package css-mode (use-package css-mode
:ensure nil
:mode (("\\.css\\'" . css-mode) :mode (("\\.css\\'" . css-mode)
("\\.rasi\\'" . css-mode))) ("\\.rasi\\'" . css-mode)))
#+END_SRC #+END_SRC
** sgml-mode
#+BEGIN_SRC emacs-lisp
(use-package sgml-mode
;; :bind ("C-c b" . web-beautify-html) TODO: mode specific, change binding
:commands sgml-mode)
#+END_SRC
** evil ** evil
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package evil :commands (evil-mode)) (use-package evil
:commands (evil-mode)
:config
(use-package evil-collection
:config
(with-eval-after-load 'eat (evil-collection-eat-setup))))
#+END_SRC #+END_SRC
** hackernews ** hackernews
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
@@ -4121,6 +3949,9 @@ Ensure all themes that I use are installed:
(progn (progn
(setq solarized-high-contrast-mode-line t))) (setq solarized-high-contrast-mode-line t)))
(defun elpaca-function (pkg)
(eval `(elpaca ,pkg)))
(defvar-setq packages-appearance (defvar-setq packages-appearance
'(monokai-theme zenburn-theme base16-theme molokai-theme moe-theme '(monokai-theme zenburn-theme base16-theme molokai-theme moe-theme
tango-2-theme gotham-theme sublime-themes rainbow-delimiters tango-2-theme gotham-theme sublime-themes rainbow-delimiters
@@ -4129,7 +3960,7 @@ Ensure all themes that I use are installed:
forest-blue-theme flatland-theme afternoon-theme forest-blue-theme flatland-theme afternoon-theme
cyberpunk-theme dracula-theme)) cyberpunk-theme dracula-theme))
(mapcar 'straight-use-package packages-appearance) (mapcar 'elpaca-function packages-appearance)
(use-package doom-themes (use-package doom-themes
:defer t) :defer t)
@@ -4284,14 +4115,15 @@ load-theme hook (See the heading below).
(unless imalison:appearance-setup-done (unless imalison:appearance-setup-done
(unless (member imalison:dark-theme custom-enabled-themes) (unless (member imalison:dark-theme custom-enabled-themes)
(load-theme imalison:dark-theme t)) (load-theme imalison:dark-theme t))
(doom-modeline-mode +1)
(apply 'imalison:appearance args) (apply 'imalison:appearance args)
(message "running appearance") (message "running appearance")
(doom-modeline-mode +1)
(setq imalison:default-font-size-pt (face-attribute 'default :height)) (setq imalison:default-font-size-pt (face-attribute 'default :height))
(setq imalison:appearance-setup-done t))) (setq imalison:appearance-setup-done t)))
(add-hook 'after-make-frame-functions 'imalison:appearance-setup-hook) (add-hook 'elpaca-after-init-hook
(add-hook 'after-init-hook 'imalison:appearance-setup-hook) (lambda () (add-hook 'after-make-frame-functions 'imalison:appearance-setup-hook)))
(add-hook 'elpaca-after-init-hook 'imalison:appearance-setup-hook)
#+END_SRC #+END_SRC
* Post Init Custom * Post Init Custom
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp

View File

@@ -0,0 +1,44 @@
(defvar elpaca-installer-version 0.7)
(defvar elpaca-directory (expand-file-name "elpaca/" user-emacs-directory))
(defvar elpaca-builds-directory (expand-file-name "builds/" elpaca-directory))
(defvar elpaca-repos-directory (expand-file-name "repos/" elpaca-directory))
(defvar elpaca-order '(elpaca :repo "https://github.com/progfolio/elpaca.git"
:ref nil :depth 1
:files (:defaults "elpaca-test.el" (:exclude "extensions"))
:build (:not elpaca--activate-package)))
(let* ((repo (expand-file-name "elpaca/" elpaca-repos-directory))
(build (expand-file-name "elpaca/" elpaca-builds-directory))
(order (cdr elpaca-order))
(default-directory repo))
(add-to-list 'load-path (if (file-exists-p build) build repo))
(unless (file-exists-p repo)
(make-directory repo t)
(when (< emacs-major-version 28) (require 'subr-x))
(condition-case-unless-debug err
(if-let ((buffer (pop-to-buffer-same-window "*elpaca-bootstrap*"))
((zerop (apply #'call-process `("git" nil ,buffer t "clone"
,@(when-let ((depth (plist-get order :depth)))
(list (format "--depth=%d" depth) "--no-single-branch"))
,(plist-get order :repo) ,repo))))
((zerop (call-process "git" nil buffer t "checkout"
(or (plist-get order :ref) "--"))))
(emacs (concat invocation-directory invocation-name))
((zerop (call-process emacs nil buffer nil "-Q" "-L" "." "--batch"
"--eval" "(byte-recompile-directory \".\" 0 'force)")))
((require 'elpaca))
((elpaca-generate-autoloads "elpaca" repo)))
(progn (message "%s" (buffer-string)) (kill-buffer buffer))
(error "%s" (with-current-buffer buffer (buffer-string))))
((error) (warn "%s" err) (delete-directory repo 'recursive))))
(unless (require 'elpaca-autoloads nil t)
(require 'elpaca)
(elpaca-generate-autoloads "elpaca" repo)
(load "./elpaca-autoloads")))
(add-hook 'after-init-hook #'elpaca-process-queues)
(elpaca `(,@elpaca-order))
(elpaca elpaca-use-package
;; Enable use-package :ensure support for Elpaca.
(elpaca-use-package-mode))

View File

@@ -1,41 +1,28 @@
;; -*- no-byte-compile: t -*- ;; -*- no-byte-compile: t -*-
(let ((bootstrap-file (concat user-emacs-directory "straight/bootstrap.el"))
(bootstrap-version 2))
(unless (file-exists-p bootstrap-file)
(with-current-buffer
(url-retrieve-synchronously
"https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el"
'silent 'inhibit-cookies)
(goto-char (point-max))
(eval-print-last-sexp)))
(load bootstrap-file nil 'nomessage))
(setq native-comp-deferred-compilation-deny-list '("magit")) (setq native-comp-deferred-compilation-deny-list '("magit"))
(setq native-comp-always-compile t) (setq native-comp-always-compile t)
(setq load-no-native t) (setq load-no-native t)
(setq no-native-compile t) (setq no-native-compile t)
(setq warning-minimum-level :emergency) (setq warning-minimum-level :emergency)
(setq straight-disable-native-compile t)
;; This is a workaround for an issue in emacs28 with symlinks. See https://github.com/radian-software/straight.el/issues/701
(defun my-patch-package-find-file-visit-truename (oldfun &rest r)
(let ((find-file-visit-truename nil))
(apply oldfun r)))
(advice-add #'straight--build-autoloads :around
#'my-patch-package-find-file-visit-truename)
(setq package-enable-at-startup nil (setq package-enable-at-startup nil
straight-use-package-by-default t straight-use-package-by-default t
straight-vc-git-default-protocol 'ssh) straight-vc-git-default-protocol 'ssh)
(straight-use-package 'use-package)
(require 'use-package) (require 'use-package)
(setq use-package-enable-imenu-support t) (setq use-package-enable-imenu-support t)
(setq use-package-ensure-function 'straight-use-package-ensure-function) (setq use-package-always-ensure t)
(defvar imalison:do-benchmark nil) (defvar imalison:do-benchmark nil)
(defun emacs-directory-filepath (filename)
(concat (file-name-directory load-file-name) filename))
(load (emacs-directory-filepath "elpaca.el"))
(setq use-package-always-ensure t)
(let ((bench-file (concat (file-name-directory user-init-file) "benchmark.el"))) (let ((bench-file (concat (file-name-directory user-init-file) "benchmark.el")))
(when (file-exists-p bench-file) (load bench-file))) (when (file-exists-p bench-file) (load bench-file)))
@@ -55,6 +42,9 @@
(setq mac-option-modifier 'meta) (setq mac-option-modifier 'meta)
(setq mac-command-modifier 'super)) (setq mac-command-modifier 'super))
(use-package transient
:demand t)
;; See https://github.com/magit/magit/discussions/4997 . Without this magit is broken. ;; See https://github.com/magit/magit/discussions/4997 . Without this magit is broken.
(use-package magit (use-package magit
:demand t) :demand t)
@@ -62,29 +52,56 @@
;; This seems to fix issues with helm not explicitly declaring its dependency on async ;; This seems to fix issues with helm not explicitly declaring its dependency on async
(use-package async :demand t) (use-package async :demand t)
(use-package s :demand t)
;; Without this, org can behave very strangely ;; Without this, org can behave very strangely
(use-package org (use-package org
:straight :ensure
(org :type git :host github :repo "colonelpanic8/org-mode" :local-repo "org" (org :type git :host github :repo "colonelpanic8/org-mode" :local-repo "org"
:branch "my-main" :branch "my-main"
:depth full :pre-build (straight-recipes-org-elpa--build) :build :depth full
:build
:wait t
(:not autoloads) :files (:not autoloads) :files
(:defaults "lisp/*.el" ("etc/styles/" "etc/styles/*"))) (:defaults "lisp/*.el" ("etc/styles/" "etc/styles/*"))))
:defer t)
(use-package dash :demand t) (use-package dash :demand t)
(use-package emit
:ensure (emit :type git :host github :repo "colonelpanic8/emit")
:demand t
:config
(progn
(emit-prefix-selector imalison:mark-ring mark-ring)
(emit-prefix-selector imalison:shell-command-on-region
imalison:copy-shell-command-on-region
imalison:shell-command-on-region-replace
imalison:jq-replace)
(defun imalison:jq-replace (start end)
(interactive (region-if-active-otherwise-buffer))
(imalison:shell-command-on-region-replace start end "jq ."))
(emit-compose
imalison:copy-eval-last-sexp kill-new prin1-to-string eval-last-sexp)
(emit-prefix-selector imalison:eval-last-sexp
eval-region-or-last-sexp
imalison:copy-eval-last-sexp)))
(use-package s
:ensure (:inherit t :wait t)
:config
(when (or (equal (s-trim (shell-command-to-string "whoami")) "kat")
imalison:kat-mode)
(let ((debug-on-error t))
(org-babel-load-file
(concat (file-name-directory load-file-name) "kat-mode.org")))))
(let ((debug-on-error t)) (let ((debug-on-error t))
(org-babel-load-file (org-babel-load-file
(concat (file-name-directory load-file-name) "README.org"))) (concat (file-name-directory load-file-name) "README.org")))
(when (or (equal (s-trim (shell-command-to-string "whoami")) "kat") ;; (when imalison:do-benchmark (benchmark-init/deactivate))
imalison:kat-mode)
(let ((debug-on-error t))
(org-babel-load-file
(concat (file-name-directory load-file-name) "kat-mode.org"))))
(when imalison:do-benchmark (benchmark-init/deactivate))
;; Local Variables: ;; Local Variables:
;; flycheck-disabled-checkers: (emacs-lisp-checkdoc) ;; flycheck-disabled-checkers: (emacs-lisp-checkdoc)

View File

@@ -163,3 +163,8 @@ This makes evil-mode play nice with org-fc
(use-package org-drill) (use-package org-drill)
#+end_src #+end_src
* Disable wild notifactions
#+begin_src emacs-lisp
(setq org-wild-notifier-day-wide-alert-times nil)
#+end_src

View File

@@ -803,7 +803,7 @@ alphanumeric characters only."
** Use org-tempo to allow inserting templates using e.g. <s ** Use org-tempo to allow inserting templates using e.g. <s
#+begin_src emacs-lisp #+begin_src emacs-lisp
(use-package org-tempo (use-package org-tempo
:straight nil :ensure nil
:after org) :after org)
#+end_src #+end_src
* Packages * Packages
@@ -938,9 +938,6 @@ alphanumeric characters only."
#+end_src #+end_src
***** ui ***** ui
#+begin_src emacs-lisp #+begin_src emacs-lisp
(use-package emacs-http-server
:demand t)
(use-package org-roam-ui (use-package org-roam-ui
:after org-roam :after org-roam
:custom :custom

View File

@@ -0,0 +1,5 @@
# -*- mode: snippet -*-
# name: ign
# key: ign
# --
# type: ignore

View File

@@ -0,0 +1,5 @@
# -*- mode: snippet -*-
# name: logg
# key: logg
# --
logger = logging.getLogger(__name__)

View File

@@ -0,0 +1,5 @@
# -*- mode: snippet -*-
# name: 401
# key: 401
# --
# noqa: F401

View File

@@ -1,12 +1,17 @@
{ pkgs, inputs, config, makeEnable, ... }: { pkgs, inputs, config, makeEnable, ... }:
makeEnable config "modules.ben" true { makeEnable config "modules.ben" true {
home-manager.backupFileExtension = "backup"; # Add this line
home-manager.users.ben = { home-manager.users.ben = {
programs.zsh = { programs.zsh = {
enable = true; enable = true;
shellAliases = { shellAliases = {
ll = "ls -alF";
la = "ls -A";
l = "ls -CF"; l = "ls -CF";
la = "ls -A";
ll = "ls -lh";
lla = "ls -alh";
ls = "ls --color=auto";
gts = "git status";
gtl = "git log";
}; };
}; };
}; };

View File

@@ -86,7 +86,6 @@ makeEnable config "modules.desktop" true {
vlc vlc
volnoti volnoti
xfce.thunar xfce.thunar
zulip
# Audio # Audio
picard picard
@@ -105,5 +104,6 @@ makeEnable config "modules.desktop" true {
spotify spotify
tor-browser-bundle-bin tor-browser-bundle-bin
vscode vscode
zulip
] else []); ] else []);
} }

View File

@@ -29,6 +29,21 @@ with lib;
done done
fpath+="${pkgs.python-with-my-packages}/lib/python3.11/site-packages/argcomplete/bash_completion.d" fpath+="${pkgs.python-with-my-packages}/lib/python3.11/site-packages/argcomplete/bash_completion.d"
''; '';
interactiveShellInit = ''
eval "$(register-python-argcomplete prb)"
eval "$(register-python-argcomplete prod-prb)"
eval "$(register-python-argcomplete railbird)"
[ -n "$EAT_SHELL_INTEGRATION_DIR" ] && source "$EAT_SHELL_INTEGRATION_DIR/zsh"
'';
};
programs.bash = {
interactiveShellInit = ''
eval "$(register-python-argcomplete prb)"
eval "$(register-python-argcomplete prod-prb)"
eval "$(register-python-argcomplete railbird)"
[ -n "$EAT_SHELL_INTEGRATION_DIR" ] && source "$EAT_SHELL_INTEGRATION_DIR/bash"
'';
}; };
programs.starship = { programs.starship = {

170
nixos/flake.lock generated
View File

@@ -21,6 +21,30 @@
"type": "github" "type": "github"
} }
}, },
"agenix_2": {
"inputs": {
"darwin": "darwin_2",
"home-manager": "home-manager_3",
"nixpkgs": [
"railbird-secrets",
"nixpkgs"
],
"systems": "systems_4"
},
"locked": {
"lastModified": 1707830867,
"narHash": "sha256-PAdwm5QqdlwIqGrfzzvzZubM+FXtilekQ/FA0cI49/o=",
"owner": "ryantm",
"repo": "agenix",
"rev": "8cb01a0e717311680e0cbca06a76cbceba6f3ed6",
"type": "github"
},
"original": {
"owner": "ryantm",
"repo": "agenix",
"type": "github"
}
},
"darwin": { "darwin": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -43,6 +67,29 @@
"type": "github" "type": "github"
} }
}, },
"darwin_2": {
"inputs": {
"nixpkgs": [
"railbird-secrets",
"agenix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1700795494,
"narHash": "sha256-gzGLZSiOhf155FW7262kdHo2YDeugp3VuIFb4/GGng0=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "4b9b83d5a92e8c1fbfd8eb27eda375908c11ec4d",
"type": "github"
},
"original": {
"owner": "lnl7",
"ref": "master",
"repo": "nix-darwin",
"type": "github"
}
},
"flake-compat": { "flake-compat": {
"flake": false, "flake": false,
"locked": { "locked": {
@@ -245,6 +292,24 @@
"inputs": { "inputs": {
"systems": "systems_5" "systems": "systems_5"
}, },
"locked": {
"lastModified": 1709126324,
"narHash": "sha256-q6EQdSeUZOG26WelxqkmR7kArjgWCdw5sfJVHPH/7j8=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "d465f4819400de7c8d874d50b982301f28a84605",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_6": {
"inputs": {
"systems": "systems_7"
},
"locked": { "locked": {
"lastModified": 1685518550, "lastModified": 1685518550,
"narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=", "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=",
@@ -259,9 +324,9 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils_6": { "flake-utils_7": {
"inputs": { "inputs": {
"systems": "systems_6" "systems": "systems_8"
}, },
"locked": { "locked": {
"lastModified": 1681202837, "lastModified": 1681202837,
@@ -536,7 +601,7 @@
"haskell-language-server_2": { "haskell-language-server_2": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_4", "flake-compat": "flake-compat_4",
"flake-utils": "flake-utils_5", "flake-utils": "flake-utils_6",
"fourmolu-011": "fourmolu-011_2", "fourmolu-011": "fourmolu-011_2",
"fourmolu-012": "fourmolu-012_2", "fourmolu-012": "fourmolu-012_2",
"gitignore": "gitignore_2", "gitignore": "gitignore_2",
@@ -548,7 +613,7 @@
"lsp": "lsp_2", "lsp": "lsp_2",
"lsp-test": "lsp-test_2", "lsp-test": "lsp-test_2",
"lsp-types": "lsp-types_2", "lsp-types": "lsp-types_2",
"nixpkgs": "nixpkgs_7", "nixpkgs": "nixpkgs_8",
"ormolu-052": "ormolu-052_2", "ormolu-052": "ormolu-052_2",
"ormolu-07": "ormolu-07_2", "ormolu-07": "ormolu-07_2",
"stylish-haskell-0145": "stylish-haskell-0145_2" "stylish-haskell-0145": "stylish-haskell-0145_2"
@@ -713,6 +778,28 @@
"type": "github" "type": "github"
} }
}, },
"home-manager_3": {
"inputs": {
"nixpkgs": [
"railbird-secrets",
"agenix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1703113217,
"narHash": "sha256-7ulcXOk63TIT2lVDSExj7XzFx09LpdSAPtvgtM7yQPE=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "3bfaacf46133c037bb356193bd2f1765d9dc82c1",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"imalison-taffybar": { "imalison-taffybar": {
"inputs": { "inputs": {
"flake-utils": [ "flake-utils": [
@@ -1051,6 +1138,22 @@
} }
}, },
"nixpkgs_7": { "nixpkgs_7": {
"locked": {
"lastModified": 1709703039,
"narHash": "sha256-6hqgQ8OK6gsMu1VtcGKBxKQInRLHtzulDo9Z5jxHEFY=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "9df3e30ce24fd28c7b3e2de0d986769db5d6225d",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_8": {
"locked": { "locked": {
"lastModified": 1686874404, "lastModified": 1686874404,
"narHash": "sha256-u2Ss8z+sGaVlKtq7sCovQ8WvXY+OoXJmY1zmyxITiaY=", "narHash": "sha256-u2Ss8z+sGaVlKtq7sCovQ8WvXY+OoXJmY1zmyxITiaY=",
@@ -1066,7 +1169,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_8": { "nixpkgs_9": {
"locked": { "locked": {
"lastModified": 1682134069, "lastModified": 1682134069,
"narHash": "sha256-TnI/ZXSmRxQDt2sjRYK/8j8iha4B4zP2cnQCZZ3vp7k=", "narHash": "sha256-TnI/ZXSmRxQDt2sjRYK/8j8iha4B4zP2cnQCZZ3vp7k=",
@@ -1187,6 +1290,26 @@
"type": "github" "type": "github"
} }
}, },
"railbird-secrets": {
"inputs": {
"agenix": "agenix_2",
"flake-utils": "flake-utils_5",
"nixpkgs": "nixpkgs_7"
},
"locked": {
"lastModified": 1718069159,
"narHash": "sha256-L66mczMl8BPLwZrTVKrXMZRyxHiPvA3CHywbsQyFHW0=",
"ref": "refs/heads/master",
"rev": "609f1d32fd1112068d97df0f7d4de82cec878002",
"revCount": 52,
"type": "git",
"url": "ssh://gitea@dev.railbird.ai:1123/railbird/secrets-flake.git"
},
"original": {
"type": "git",
"url": "ssh://gitea@dev.railbird.ai:1123/railbird/secrets-flake.git"
}
},
"root": { "root": {
"inputs": { "inputs": {
"agenix": "agenix", "agenix": "agenix",
@@ -1203,8 +1326,9 @@
"nixpkgs": "nixpkgs_5", "nixpkgs": "nixpkgs_5",
"nixpkgs-regression": "nixpkgs-regression_2", "nixpkgs-regression": "nixpkgs-regression_2",
"notifications-tray-icon": "notifications-tray-icon", "notifications-tray-icon": "notifications-tray-icon",
"railbird-secrets": "railbird-secrets",
"status-notifier-item": "status-notifier-item", "status-notifier-item": "status-notifier-item",
"systems": "systems_4", "systems": "systems_6",
"taffybar": "taffybar", "taffybar": "taffybar",
"vscode-server": "vscode-server", "vscode-server": "vscode-server",
"xmonad": "xmonad", "xmonad": "xmonad",
@@ -1380,6 +1504,36 @@
"type": "github" "type": "github"
} }
}, },
"systems_7": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_8": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"taffybar": { "taffybar": {
"inputs": { "inputs": {
"flake-utils": [ "flake-utils": [
@@ -1452,8 +1606,8 @@
}, },
"vscode-server": { "vscode-server": {
"inputs": { "inputs": {
"flake-utils": "flake-utils_6", "flake-utils": "flake-utils_7",
"nixpkgs": "nixpkgs_8" "nixpkgs": "nixpkgs_9"
}, },
"locked": { "locked": {
"lastModified": 1713958148, "lastModified": 1713958148,

View File

@@ -1,5 +1,8 @@
{ {
inputs = { inputs = {
railbird-secrets = {
url = "git+ssh://gitea@dev.railbird.ai:1123/railbird/secrets-flake.git";
};
nixos-hardware = { url = "github:colonelpanic8/nixos-hardware"; }; nixos-hardware = { url = "github:colonelpanic8/nixos-hardware"; };
nixpkgs = { nixpkgs = {
@@ -152,7 +155,10 @@
inherit inputs machineNames; inherit inputs machineNames;
makeEnable = (import ./make-enable.nix) nixpkgs.lib; makeEnable = (import ./make-enable.nix) nixpkgs.lib;
keys = (import ./keys.nix); keys = (import ./keys.nix);
usersInfo = (import ./users.nix) { pkgs = { zsh = "zsh"; }; keys = keys; }; usersInfo = (import ./users.nix) {
pkgs = { zsh = "zsh"; };
inherit keys inputs system;
};
realUsers = (builtins.attrNames realUsers = (builtins.attrNames
(nixpkgs.lib.filterAttrs (nixpkgs.lib.filterAttrs
(_: value: (builtins.elem "isNormalUser" (builtins.attrNames value)) && value.isNormalUser) usersInfo.users.users) (_: value: (builtins.elem "isNormalUser" (builtins.attrNames value)) && value.isNormalUser) usersInfo.users.users)

View File

@@ -21,4 +21,19 @@
home-manager.users = forEachUser { home-manager.users = forEachUser {
home.stateVersion = "22.05"; home.stateVersion = "22.05";
}; };
users.users.ben = {
extraGroups = [
"audio"
"adbusers"
"disk"
"docker"
"networkmanager"
"openrazer"
"plugdev"
"syncthing"
"systemd-journal"
"video"
] ++ ["wheel"];
};
} }

View File

@@ -98,7 +98,7 @@ in
}; };
services.home-assistant = { services.home-assistant = {
enable = true; enable = false;
extraComponents = [ extraComponents = [
# Components required to complete the onboarding # Components required to complete the onboarding
"met" "met"

View File

@@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, forEachUser, ... }:
{ {
imports = [ imports = [
@@ -7,7 +7,7 @@
modules.base.enable = true; modules.base.enable = true;
modules.desktop.enable = true; modules.desktop.enable = true;
modules.xmonad.enable = true; modules.xmonad.enable = false;
modules.extra.enable = false; modules.extra.enable = false;
modules.code.enable = true; modules.code.enable = true;
modules.games.enable = false; modules.games.enable = false;
@@ -34,29 +34,15 @@
services.xserver.libinput.enable = true; services.xserver.libinput.enable = true;
fileSystems."/" = { fileSystems."/" = {
device = "/dev/disk/by-uuid/58218a04-3ba1-4295-86bb-ada59f75e3b6"; device = "/dev/disk/by-uuid/36864608-8e74-42b8-a075-27b59ef2701d";
fsType = "ext4"; fsType = "ext4";
}; };
boot.initrd.luks.devices."cryptroot".device = "/dev/disk/by-uuid/8142784e-45c6-4a2b-91f1-09df741ac00f";
fileSystems."/boot" = { fileSystems."/boot" = {
device = "/dev/disk/by-uuid/36E1-BE93"; device = "/dev/disk/by-uuid/36E1-BE93";
fsType = "vfat"; fsType = "vfat";
}; };
systemd.services.resume-fix = {
description = "Fixes acpi immediate resume after suspend";
wantedBy = [ "multi-user.target" "post-resume.target" ];
after = [ "multi-user.target" "post-resume.target" ];
script = ''
if ${pkgs.gnugrep}/bin/grep -q '\bXHC\b.*\benabled\b' /proc/acpi/wakeup; then
echo XHC > /proc/acpi/wakeup
fi
'';
serviceConfig.Type = "oneshot";
};
swapDevices = [ swapDevices = [
{ {
device = "/swapfile"; device = "/swapfile";
@@ -65,10 +51,12 @@
} }
]; ];
networking.hostName = "ivanm-dfinity-razer"; networking.hostName = "david-blade";
nix.settings.maxJobs = lib.mkDefault 12; home-manager.users = forEachUser {
home.stateVersion = "24.05";
};
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
system.stateVersion = "18.03"; system.stateVersion = "24.05";
} }

View File

@@ -45,6 +45,10 @@
fsType = "vfat"; fsType = "vfat";
}; };
swapDevices = [
{ device = "/dev/disk/by-uuid/598e9aa1-4940-4410-a2fa-3dfd8b7d2c0d"; }
];
home-manager.users = forEachUser { home-manager.users = forEachUser {
home.stateVersion = "23.11"; home.stateVersion = "23.11";
}; };

View File

@@ -74,7 +74,7 @@
options = [ "nofail" ]; options = [ "nofail" ];
}; };
swapDevices =[ swapDevices = [
{ device = "/dev/disk/by-uuid/f719b44e-295a-4909-9a60-84f87acb7f77"; } { device = "/dev/disk/by-uuid/f719b44e-295a-4909-9a60-84f87acb7f77"; }
]; ];

View File

@@ -0,0 +1,34 @@
{ lib, pkgs, config, inputs, forEachUser, ... }:
{
imports = [
../configuration.nix
];
modules.wsl.enable = true;
networking.hostName = "strixi-minaj-wsl";
wsl.defaultUser = "imalison";
system.stateVersion = "23.11"; # Did you read the comment?
home-manager.users = forEachUser {
home.stateVersion = "23.11";
};
programs.gnupg = {
agent = {
pinentryPackage = pkgs.pinentry-curses;
enable = true;
enableSSHSupport = true;
};
};
nixpkgs.config.permittedInsecurePackages = [
"openssl-1.0.2u"
"electron-12.2.3"
"etcher"
"electron-19.1.9"
"openssl-1.1.1w"
"nix-2.16.2"
];
}

View File

@@ -29,9 +29,11 @@
keep-derivations = true; keep-derivations = true;
substituters = [ substituters = [
"https://cache.nixos.org" "https://cache.nixos.org"
"https://cuda-maintainers.cachix.org"
]; ];
trusted-public-keys = [ trusted-public-keys = [
"cache.railbird.ai:KhnvcouxtIU2zxUcjJsm4bUK3o1S3p8xMf9qfZGF7/A=" "cache.railbird.ai:KhnvcouxtIU2zxUcjJsm4bUK3o1S3p8xMf9qfZGF7/A="
"cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E="
]; ];
nix-path = nixPath; nix-path = nixPath;
}; };

View File

@@ -1,5 +1,6 @@
{ config, pkgs, ... }: { config, pkgs, ... }:
{ {
security.pam.sshAgentAuth.enable = true;
services.avahi = { services.avahi = {
enable = true; enable = true;
nssmdns4 = true; nssmdns4 = true;
@@ -19,13 +20,15 @@
services.openssh = { services.openssh = {
enable = true; enable = true;
settings = { settings = {
AllowAgentForwarding = true;
AllowTcpForwarding = true;
PasswordAuthentication = false; PasswordAuthentication = false;
X11Forwarding = true; X11Forwarding = true;
}; };
}; };
programs.ssh = { programs.ssh = {
forwardX11 = true; forwardX11 = false;
setXAuthLocation = true; setXAuthLocation = true;
knownHosts = { knownHosts = {
github = { github = {

View File

@@ -1,4 +1,4 @@
{ pkgs, keys, ... }: { pkgs, keys, inputs, system, ... }:
let let
extraGroups = [ extraGroups = [
"audio" "audio"
@@ -89,6 +89,11 @@ in
name = "ben"; name = "ben";
openssh.authorizedKeys.keys = benKeys ++ kanivanKeys; openssh.authorizedKeys.keys = benKeys ++ kanivanKeys;
}; };
railbird = userDefaults // {
inherit extraGroups;
name = "railbird";
openssh.authorizedKeys.keys = inputs.railbird-secrets.keys.railbirdDevKeys;
};
}; };
nix.sshServe = { nix.sshServe = {

View File

@@ -7,13 +7,15 @@ makeEnable config "modules.wsl" false {
modules.base.enable = false; modules.base.enable = false;
modules.desktop.enable = false; modules.desktop.enable = false;
modules.xmonad.enable = false; modules.xmonad.enable = false;
modules.plasma.enable = false;
# Update timezone automatically # Update timezone automatically
services.tzupdate.enable = true; services.tzupdate.enable = true;
wsl.wslConf.automount.root = "/mnt";
wsl = { wsl = {
enable = true; enable = true;
automountPath = "/mnt";
startMenuLaunchers = true; startMenuLaunchers = true;
nativeSystemd = true; nativeSystemd = true;
}; };