Port to orgmode file.
This commit is contained in:
parent
cd260107b5
commit
92abcb770c
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
.~
|
380
README.org
Normal file
380
README.org
Normal file
|
@ -0,0 +1,380 @@
|
||||||
|
* Dotfiles
|
||||||
|
|
||||||
|
#+PROPERTY: header-args :mkdirp yes
|
||||||
|
|
||||||
|
/now do it with orgmode!/
|
||||||
|
|
||||||
|
original old configs are in =archive/=.
|
||||||
|
|
||||||
|
** Table of Contents
|
||||||
|
|
||||||
|
:properties:
|
||||||
|
:toc: :include all :ignore this
|
||||||
|
:end:
|
||||||
|
:contents:
|
||||||
|
- [[#my-setup][My Setup]]
|
||||||
|
- [[#wezterm][WezTerm]]
|
||||||
|
- [[#systemd-units][Systemd Units]]
|
||||||
|
- [[#sublime-text][Sublime Text]]
|
||||||
|
- [[#emacs][emacs]]
|
||||||
|
:end:
|
||||||
|
|
||||||
|
** My Setup
|
||||||
|
|
||||||
|
...is a little in flux.
|
||||||
|
|
||||||
|
Over the past several months, I've been investing time into [[https://blog.gabrielsimmer.com/posts/emacs-induction/][learning emacs]], replacing
|
||||||
|
Sublime in my workflow. As a part of this I've also considered using Guix (see: =seedfile.org=),
|
||||||
|
but am not quite there in my journey, so they aren't included here.
|
||||||
|
|
||||||
|
*** wezterm
|
||||||
|
|
||||||
|
WezTerm is my terminal of choice these days, and is configured with Lua.
|
||||||
|
Most of the tweaks from the default config are around using Monokai Pro
|
||||||
|
colours.
|
||||||
|
|
||||||
|
=.config/wezterm/wezterm.lua=
|
||||||
|
|
||||||
|
#+begin_src lua :tangle .config/wezterm/wezterm.lua
|
||||||
|
local wezterm = require 'wezterm';
|
||||||
|
|
||||||
|
return {
|
||||||
|
automatically_reload_config = true,
|
||||||
|
font = wezterm.font("IBM Plex Mono"),
|
||||||
|
window_close_confirmation = "NeverPrompt",
|
||||||
|
font_size = 12,
|
||||||
|
initial_cols = 120,
|
||||||
|
initial_rows = 35,
|
||||||
|
colors = {
|
||||||
|
foreground = "#f7f1ff",
|
||||||
|
background = "#222222",
|
||||||
|
cursor_bg = "#8b888f",
|
||||||
|
cursor_fg = "#f7f1ff",
|
||||||
|
cursor_border = "#8b888f",
|
||||||
|
selection_fg = "#363537",
|
||||||
|
selection_bg = "#69676c",
|
||||||
|
scrollbar_thumb = "#222222",
|
||||||
|
split = "#fce566",
|
||||||
|
tab_bar = {
|
||||||
|
background = "#222222",
|
||||||
|
active_tab = {
|
||||||
|
bg_color = "#f7f1ff",
|
||||||
|
fg_color = "#69676c",
|
||||||
|
intensity = "Normal",
|
||||||
|
underline = "None",
|
||||||
|
italic = false,
|
||||||
|
strikethrough = false,
|
||||||
|
},
|
||||||
|
|
||||||
|
inactive_tab = {
|
||||||
|
bg_color = "#69676c",
|
||||||
|
fg_color = "#f7f1ff",
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
inactive_tab_hover = {
|
||||||
|
bg_color = "#69676c",
|
||||||
|
fg_color = "#f7f1ff",
|
||||||
|
italic = true,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
*** systemd units
|
||||||
|
|
||||||
|
When I move to Guix I expect I'll need to port these to Herd, but in the meantime...
|
||||||
|
|
||||||
|
**** clock
|
||||||
|
|
||||||
|
This runs a small webserver that renders a date that is fetched and displayed
|
||||||
|
on a Raspberry Pi with a small eink display.
|
||||||
|
|
||||||
|
You can read more about it [[https://dev.to/gmemstr/tiny-eink-dashboard-29a4][here]].
|
||||||
|
|
||||||
|
=.config/systemd/user/clock.service=
|
||||||
|
|
||||||
|
#+begin_src :tangle .config/systemd/user/clock.service
|
||||||
|
[Unit]
|
||||||
|
Description=eink Clock Server Daemon
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
WorkingDirectory=/mnt/wd/Projects/eink-dashboard
|
||||||
|
ExecStart=python server/main.py
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=default.target
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
**** backup
|
||||||
|
|
||||||
|
This runs the rclone command to back up my large data SSD to my NAS. Coupled with
|
||||||
|
a timer.
|
||||||
|
|
||||||
|
=.config/systemd/user/backup.service=
|
||||||
|
#+begin_src :tangle .config/systemd/user/backup.service
|
||||||
|
[Unit]
|
||||||
|
Description=Backup Service for Projects
|
||||||
|
Wants=gsimmer.timer
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
WorkingDirectory=/mnt/fhg
|
||||||
|
ExecStart=bash rclone-pi.sh
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=default.target
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
=.config/systemd/user/gsimmer.timer=
|
||||||
|
|
||||||
|
#+begin_src :tangle .config/systemd/user/gsimmer.timer
|
||||||
|
[Unit]
|
||||||
|
Description=Runs backup script for project directories to Raspberry Pi.
|
||||||
|
Requires=backup.service
|
||||||
|
|
||||||
|
[Timer]
|
||||||
|
Unit=backup.service
|
||||||
|
OnBootSec=15min
|
||||||
|
OnUnitActive=1w
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=timers.target
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
*** sublime text
|
||||||
|
|
||||||
|
Although I've moved to emacs for what I would use Sublime for, I still
|
||||||
|
keep this configuration around for quick setup in the case I need it
|
||||||
|
(e.g a virtual machine).
|
||||||
|
|
||||||
|
Most of these settings are for Monokai Pro.
|
||||||
|
|
||||||
|
=.config/sublime-text-3/Packages/User/Preferences.sublime-settings=
|
||||||
|
|
||||||
|
#+begin_src json :tangle .config/sublime-text-3/Packages/User/Preferences.sublime-setting
|
||||||
|
{
|
||||||
|
"auto_complete_delay": 20,
|
||||||
|
"color_scheme": "Monokai Pro (Filter Spectrum).sublime-color-scheme",
|
||||||
|
"font_face": "Iosevka Regular",
|
||||||
|
"font_size": 13,
|
||||||
|
"ignored_packages":
|
||||||
|
[
|
||||||
|
"Rust",
|
||||||
|
"Vintage"
|
||||||
|
],
|
||||||
|
"monokai_pro_file_icons": true,
|
||||||
|
"monokai_pro_highlight_open_folders": true,
|
||||||
|
"monokai_pro_minimal": true,
|
||||||
|
"monokai_pro_sidebar_headings": true,
|
||||||
|
"monokai_pro_style_title_bar": true,
|
||||||
|
"monokai_pro_ui_font_face": "IBM Plex Mono",
|
||||||
|
"rulers":
|
||||||
|
[
|
||||||
|
80
|
||||||
|
],
|
||||||
|
"theme": "Monokai Pro (Filter Spectrum).sublime-theme",
|
||||||
|
"mini_diff": "auto",
|
||||||
|
"hardware_acceleration": "opengl",
|
||||||
|
"themed_title_bar": true,
|
||||||
|
}
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
I also keep a Package Control file to auto install stuff.
|
||||||
|
|
||||||
|
=.config/sublime-text-3/Packages/User/Package Control.sublime-settings=
|
||||||
|
|
||||||
|
#+begin_src json :tangle .config/sublime-text-3/Packages/User/Package Control.sublime-settings
|
||||||
|
{
|
||||||
|
"bootstrapped": true,
|
||||||
|
"debug": true,
|
||||||
|
"in_process_packages":
|
||||||
|
[
|
||||||
|
],
|
||||||
|
"installed_packages":
|
||||||
|
[
|
||||||
|
"Dockerfile Syntax Highlighting",
|
||||||
|
"Emmet",
|
||||||
|
"GitGutter",
|
||||||
|
"Gofmt",
|
||||||
|
"Golang Build",
|
||||||
|
"HexViewer",
|
||||||
|
"LSP",
|
||||||
|
"LSP-bash",
|
||||||
|
"LSP-intelephense",
|
||||||
|
"LSP-pyright",
|
||||||
|
"LSP-SourceKit",
|
||||||
|
"LSP-typescript",
|
||||||
|
"LSP-yaml",
|
||||||
|
"Package Control",
|
||||||
|
"paredit",
|
||||||
|
"Rust Enhanced",
|
||||||
|
"SideBarEnhancements",
|
||||||
|
"SublimeLinter",
|
||||||
|
"Swift",
|
||||||
|
"Theme - Monokai Pro",
|
||||||
|
"TOML",
|
||||||
|
"TypeScript",
|
||||||
|
],
|
||||||
|
}
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
And a Markdown specific configuration to bring the distraction-free
|
||||||
|
mode to the default windowed view.
|
||||||
|
|
||||||
|
=.config/sublime-text-3/Packages/User/Markdown.sublime-settings=
|
||||||
|
|
||||||
|
#+begin_src json :tangle .config/sublime-text-3/Packages/User/Markdown.sublime-settings
|
||||||
|
{
|
||||||
|
"auto_complete": false,
|
||||||
|
"ignored_packages": ["Vintage", "Emmet", "SublimeCodeIntel"],
|
||||||
|
"draw_centered": true,
|
||||||
|
"spell_check": true,
|
||||||
|
"tab_completion": false,
|
||||||
|
"auto_complete_triggers": [],
|
||||||
|
"word_wrap": true,
|
||||||
|
"line_numbers": false,
|
||||||
|
"gutter": false,
|
||||||
|
"wrap_width": 80,
|
||||||
|
"word_wrap": true,
|
||||||
|
"scroll_past_end": true
|
||||||
|
}
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
*** emacs
|
||||||
|
|
||||||
|
Ah, the star of the show! I'm still working on this configuration,
|
||||||
|
and plan to split it into seperate files for each package. In the
|
||||||
|
meantime, enjoy the monolith.
|
||||||
|
|
||||||
|
=.config/.emacs.d/init.el=
|
||||||
|
|
||||||
|
#+begin_src elisp :tangle .config/.emacs.d/init.el
|
||||||
|
;; Mostly following along with System Crafter's videos.
|
||||||
|
;; So this will look pretty familiar.
|
||||||
|
(setq inhibit-startup-message t)
|
||||||
|
|
||||||
|
(scroll-bar-mode -1)
|
||||||
|
(tool-bar-mode -1)
|
||||||
|
(tooltip-mode -1)
|
||||||
|
(set-fringe-mode 10)
|
||||||
|
|
||||||
|
(menu-bar-mode -1)
|
||||||
|
|
||||||
|
(set-face-attribute 'default nil :font "IBM Plex Mono" :height 120)
|
||||||
|
(global-set-key (kbd "<escape>") 'keyboard-escape-quit)
|
||||||
|
(setq org-edit-src-content-indentation 0
|
||||||
|
org-src-tab-acts-natively t
|
||||||
|
org-src-preserve-indentation t)
|
||||||
|
|
||||||
|
;; Packages stuff.
|
||||||
|
(require 'package)
|
||||||
|
|
||||||
|
(setq package-archives '(("melpa" . "https://melpa.org/packages/")
|
||||||
|
("org" . "https://orgmode.org/elpa/")
|
||||||
|
("elpa" . "https://elpa.gnu.org/packages/")))
|
||||||
|
|
||||||
|
(package-initialize)
|
||||||
|
(unless package-archive-contents
|
||||||
|
(package-refresh-contents))
|
||||||
|
|
||||||
|
(unless (package-installed-p 'use-package)
|
||||||
|
(package-install 'use-package))
|
||||||
|
|
||||||
|
(require 'use-package)
|
||||||
|
(setq use-package-always-ensure t)
|
||||||
|
|
||||||
|
;; I like Monokai Pro, sue me ;)
|
||||||
|
(use-package monokai-pro-theme
|
||||||
|
:ensure t
|
||||||
|
:config
|
||||||
|
(load-theme 'monokai-pro-spectrum t))
|
||||||
|
|
||||||
|
(use-package doom-modeline
|
||||||
|
:ensure t
|
||||||
|
:init (doom-modeline-mode 1)
|
||||||
|
:custom
|
||||||
|
(doom-mode-line-height 15))
|
||||||
|
(use-package all-the-icons :ensure t)
|
||||||
|
|
||||||
|
(use-package treemacs
|
||||||
|
:ensure t
|
||||||
|
:defer t
|
||||||
|
:init
|
||||||
|
:bind (:map global-map
|
||||||
|
("M-0" . treemacs-select-window)
|
||||||
|
("C-x t t" . treemacs)))
|
||||||
|
(use-package treemacs-projectile
|
||||||
|
:ensure t)
|
||||||
|
;; LSP config.
|
||||||
|
(use-package spinner :ensure t)
|
||||||
|
(use-package lsp-mode
|
||||||
|
:ensure t
|
||||||
|
:init
|
||||||
|
(setq lsp-keymap-prefix "C-c l")
|
||||||
|
:hook ((rust-mode . lsp)
|
||||||
|
(lsp-mode . lsp-enable-which-key-integration))
|
||||||
|
:commands lsp)
|
||||||
|
|
||||||
|
(use-package lsp-ui :commands lsp-ui-mode)
|
||||||
|
(use-package lsp-ivy :commands lsp-ivy-workspace-symbol)
|
||||||
|
(use-package lsp-treemacs :commands lsp-treemacs-errors-list)
|
||||||
|
|
||||||
|
(use-package rust-mode)
|
||||||
|
|
||||||
|
;; Can't have lisps without paredit!
|
||||||
|
(use-package paredit
|
||||||
|
:ensure t
|
||||||
|
:config
|
||||||
|
(add-hook 'emacs-lisp-mode-hook #'paredit-mode)
|
||||||
|
;; enable in the *scratch* buffer
|
||||||
|
(add-hook 'lisp-interaction-mode-hook #'paredit-mode)
|
||||||
|
(add-hook 'ielm-mode-hook #'paredit-mode)
|
||||||
|
(add-hook 'lisp-mode-hook #'paredit-mode)
|
||||||
|
(add-hook 'eval-expression-minibuffer-setup-hook #'paredit-mode))
|
||||||
|
|
||||||
|
(use-package projectile
|
||||||
|
:ensure t
|
||||||
|
:init
|
||||||
|
(projectile-mode +1)
|
||||||
|
:bind (:map projectile-mode-map
|
||||||
|
("s-p" . projectile-command-map)
|
||||||
|
("C-c p" . projectile-command-map))
|
||||||
|
:config
|
||||||
|
(setq projectile-project-search-path '("~/Projects")))
|
||||||
|
|
||||||
|
;; Ivy/Swiper/Counsel config.
|
||||||
|
(use-package swiper)
|
||||||
|
(use-package counsel)
|
||||||
|
(use-package ivy
|
||||||
|
:diminish
|
||||||
|
:bind (("C-s" . swiper)
|
||||||
|
:map ivy-minibuffer-map
|
||||||
|
("TAB" . ivy-alt-done)
|
||||||
|
("C-l" . ivy-alt-done)
|
||||||
|
("C-j" . ivy-next-line)
|
||||||
|
("C-k" . ivy-previous-line)
|
||||||
|
:map ivy-switch-buffer-map
|
||||||
|
("C-k" . ivy-previous-line)
|
||||||
|
("C-l" . ivy-done)
|
||||||
|
("C-d" . ivy-switch-buffer-kill)
|
||||||
|
:map ivy-reverse-i-search-map
|
||||||
|
("C-k" . ivy-previous-line)
|
||||||
|
("C-d" . ivy-reverse-i-search-kill))
|
||||||
|
:config
|
||||||
|
(ivy-mode 1))
|
||||||
|
(custom-set-variables
|
||||||
|
;; custom-set-variables was added by Custom.
|
||||||
|
;; If you edit it by hand, you could mess it up, so be careful.
|
||||||
|
;; Your init file should contain only one such instance.
|
||||||
|
;; If there is more than one, they won't work right.
|
||||||
|
'(package-selected-packages
|
||||||
|
'(treemacs-projectile projectile paredit all-the-fonts doom-modeline rust-mode swipe spinner lsp-treemacs lsp-ivy lsp-ui lsp-mode counsel swiper ivy treemacs use-package monokai-pro-theme)))
|
||||||
|
(custom-set-faces
|
||||||
|
;; custom-set-faces was added by Custom.
|
||||||
|
;; If you edit it by hand, you could mess it up, so be careful.
|
||||||
|
;; Your init file should contain only one such instance.
|
||||||
|
;; If there is more than one, they won't work right.
|
||||||
|
)
|
||||||
|
#+end_src
|
|
@ -6,6 +6,7 @@
|
||||||
"ignored_packages":
|
"ignored_packages":
|
||||||
[
|
[
|
||||||
"Rust",
|
"Rust",
|
||||||
|
"Vintage"
|
||||||
],
|
],
|
||||||
"monokai_pro_file_icons": true,
|
"monokai_pro_file_icons": true,
|
||||||
"monokai_pro_highlight_open_folders": true,
|
"monokai_pro_highlight_open_folders": true,
|
|
@ -0,0 +1,8 @@
|
||||||
|
|
||||||
|
# v3.3.2
|
||||||
|
|
||||||
|
[Unit]
|
||||||
|
Description=ProtonVPN Reconnector
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
ExecStart=/usr/bin/python /usr/lib/python3.9/site-packages/protonvpn_nm_lib/daemon/dbus_daemon_reconnector.py
|
1
archive/london/.emacs.d/.lsp-session-v1
Normal file
1
archive/london/.emacs.d/.lsp-session-v1
Normal file
|
@ -0,0 +1 @@
|
||||||
|
#s(lsp-session ("/mnt/fhg/Projects/whalepod" "/mnt/fhg/Projects/circleci-rs/src") nil #s(hash-table size 65 test equal rehash-size 1.5 rehash-threshold 0.8125 data ()) #s(hash-table size 65 test equal rehash-size 1.5 rehash-threshold 0.8125 data ()) #s(hash-table size 65 test equal rehash-size 1.5 rehash-threshold 0.8125 data ()))
|
1
archive/london/.emacs.d/projectile-bookmarks.eld
Normal file
1
archive/london/.emacs.d/projectile-bookmarks.eld
Normal file
|
@ -0,0 +1 @@
|
||||||
|
("~/dotfiles/" "/mnt/fhg/Projects/hue-webapp/" "/mnt/fhg/Projects/circleci-rs/" "/mnt/fhg/Projects/youtube-dl/" "/mnt/fhg/Projects/whalepod/" "/mnt/fhg/Projects/wallpapers/" "/mnt/fhg/Projects/wallfox_site/" "/mnt/fhg/Projects/usbboot/" "/mnt/fhg/Projects/tty-clock/" "/mnt/fhg/Projects/tsukae/" "/mnt/fhg/Projects/sliproad/" "/mnt/fhg/Projects/rust-book/" "/mnt/fhg/Projects/replnote/" "/mnt/fhg/Projects/qmk_firmware/" "/mnt/fhg/Projects/psst/" "/mnt/fhg/Projects/protondb-api/" "/mnt/fhg/Projects/platypus-react/" "/mnt/fhg/Projects/oncallbot/" "/mnt/fhg/Projects/ocr/" "/mnt/fhg/Projects/nvidia-patch/" "/mnt/fhg/Projects/notdonemywebsite/" "/mnt/fhg/Projects/nodemc/" "/mnt/fhg/Projects/neff-pack/" "/mnt/fhg/Projects/mdn/" "/mnt/fhg/Projects/linux/" "/mnt/fhg/Projects/link-shorter/" "/mnt/fhg/Projects/license-server/" "/mnt/fhg/Projects/language-server-protocol-inspector/" "/mnt/fhg/Projects/guix-installer/" "/mnt/fhg/Projects/gmem.ca/" "/mnt/fhg/Projects/github-project-sync/" "/mnt/fhg/Projects/gitgalaxy.github.io/" "/mnt/fhg/Projects/gguix/" "/mnt/fhg/Projects/game-clj/" "/mnt/fhg/Projects/gabrielsimmer.com/" "/mnt/fhg/Projects/fakexrandr/" "/mnt/fhg/Projects/ereader/" "/mnt/fhg/Projects/eink-dashboard/" "/mnt/fhg/Projects/eclipse.jdt.ls/" "/mnt/fhg/Projects/e-Paper/" "/mnt/fhg/Projects/do-the-thing/" "/mnt/fhg/Projects/developer-hub-indexer/" "/mnt/fhg/Projects/datapack-clj/" "/mnt/fhg/Projects/database-janitor/" "/mnt/fhg/Projects/circleci-flutter/" "/mnt/fhg/Projects/cci-scripts/" "/mnt/fhg/Projects/caniplay/" "/mnt/fhg/Projects/brave-browser/" "/mnt/fhg/Projects/blog.gabrielsimmer.com/" "/mnt/fhg/Projects/banana-clj/" "/mnt/fhg/Projects/Xiaomi-Dafang-Hacks/" "/mnt/fhg/Projects/TicketBot/" "/mnt/fhg/Projects/TF2HUD.Editor/" "/mnt/fhg/Projects/OSX-KVM/" "/mnt/fhg/Projects/Nitrox/" "/mnt/fhg/Projects/Leafish/" "/mnt/fhg/Projects/Firefox-UI-Fix/")
|
|
@ -1,7 +1,163 @@
|
||||||
#+title: Base Guix Configuration
|
* What is this?
|
||||||
#+author: Gabriel Simmer
|
|
||||||
|
|
||||||
* Channels
|
Welcome to the seedfile! This file contains all the code required to generate (so far) the
|
||||||
|
following:
|
||||||
|
|
||||||
|
+ Multi-device emacs configuration (WIP).
|
||||||
|
+ Base Guix configuration and per device configuration.
|
||||||
|
|
||||||
|
Other things may be added later. In the meantime, enjoy the tangle!
|
||||||
|
|
||||||
|
* Emacs Configuration
|
||||||
|
|
||||||
|
Starting in 2021, I've moved what I would use Sublime Text for over to Emacs. As such, I need a
|
||||||
|
relatively usable configuration. Attempts to use DOOMEmacs/spacemacs mostly led to frustration
|
||||||
|
as I didn't learn the underlying editor.
|
||||||
|
|
||||||
|
** The Basics & UI Tweaks
|
||||||
|
|
||||||
|
Some of the basics include turning off some of the defaults for a more focused experience, akin
|
||||||
|
to what you'd expect from ST.
|
||||||
|
|
||||||
|
#+begin_src elisp :tangle .config/emacs.d/init.el
|
||||||
|
(setq inhibit-startup-message t)
|
||||||
|
|
||||||
|
(scroll-bar-mode -1)
|
||||||
|
(tool-bar-mode -1)
|
||||||
|
(tooltip-mode -1)
|
||||||
|
(set-fringe-mode 10)
|
||||||
|
|
||||||
|
(menu-bar-mode -1)
|
||||||
|
|
||||||
|
(set-face-attribute 'default nil :font "IBM Plex Mono" :height 120)
|
||||||
|
(global-set-key (kbd "<escape>") 'keyboard-escape-quit)
|
||||||
|
(setq org-edit-src-content-indentation 0
|
||||||
|
org-src-tab-acts-natively t
|
||||||
|
org-src-preserve-indentation t)
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
** Packages
|
||||||
|
|
||||||
|
Next is a relatively lengthy packages block. There's a few key elements here,
|
||||||
|
including my theme of choice (Monokai Pro) and the setup of several useful
|
||||||
|
UI/UX elements such as treemacs, LSP mode, ivy and projectile, among others.
|
||||||
|
Eventually this will be split into its own file.
|
||||||
|
|
||||||
|
#+begin_src elisp :tangle .config/emacs.d/init.el
|
||||||
|
;; Packages stuff.
|
||||||
|
(require 'package)
|
||||||
|
|
||||||
|
(setq package-archives '(("melpa" . "https://melpa.org/packages/")
|
||||||
|
("org" . "https://orgmode.org/elpa/")
|
||||||
|
("elpa" . "https://elpa.gnu.org/packages/")))
|
||||||
|
|
||||||
|
(package-initialize)
|
||||||
|
(unless package-archive-contents
|
||||||
|
(package-refresh-contents))
|
||||||
|
|
||||||
|
(unless (package-installed-p 'use-package)
|
||||||
|
(package-install 'use-package))
|
||||||
|
|
||||||
|
(require 'use-package)
|
||||||
|
(setq use-package-always-ensure t)
|
||||||
|
|
||||||
|
;; I like Monokai Pro, sue me ;)
|
||||||
|
(use-package monokai-pro-theme
|
||||||
|
:ensure t
|
||||||
|
:config
|
||||||
|
(load-theme 'monokai-pro-spectrum t))
|
||||||
|
|
||||||
|
(use-package doom-modeline
|
||||||
|
:ensure t
|
||||||
|
:init (doom-modeline-mode 1)
|
||||||
|
:custom
|
||||||
|
(doom-mode-line-height 15))
|
||||||
|
(use-package all-the-icons :ensure t)
|
||||||
|
|
||||||
|
(use-package treemacs
|
||||||
|
:ensure t
|
||||||
|
:defer t
|
||||||
|
:init
|
||||||
|
:bind (:map global-map
|
||||||
|
("M-0" . treemacs-select-window)
|
||||||
|
("C-x t t" . treemacs)))
|
||||||
|
(use-package treemacs-projectile
|
||||||
|
:ensure t)
|
||||||
|
;; LSP config.
|
||||||
|
(use-package spinner :ensure t)
|
||||||
|
(use-package lsp-mode
|
||||||
|
:ensure t
|
||||||
|
:init
|
||||||
|
(setq lsp-keymap-prefix "C-c l")
|
||||||
|
:hook ((rust-mode . lsp)
|
||||||
|
(lsp-mode . lsp-enable-which-key-integration))
|
||||||
|
:commands lsp)
|
||||||
|
|
||||||
|
(use-package lsp-ui :commands lsp-ui-mode)
|
||||||
|
(use-package lsp-ivy :commands lsp-ivy-workspace-symbol)
|
||||||
|
(use-package lsp-treemacs :commands lsp-treemacs-errors-list)
|
||||||
|
|
||||||
|
(use-package rust-mode)
|
||||||
|
|
||||||
|
;; Can't have lisps without paredit!
|
||||||
|
(use-package paredit
|
||||||
|
:ensure t
|
||||||
|
:config
|
||||||
|
(add-hook 'emacs-lisp-mode-hook #'paredit-mode)
|
||||||
|
;; enable in the *scratch* buffer
|
||||||
|
(add-hook 'lisp-interaction-mode-hook #'paredit-mode)
|
||||||
|
(add-hook 'ielm-mode-hook #'paredit-mode)
|
||||||
|
(add-hook 'lisp-mode-hook #'paredit-mode)
|
||||||
|
(add-hook 'eval-expression-minibuffer-setup-hook #'paredit-mode))
|
||||||
|
|
||||||
|
(use-package projectile
|
||||||
|
:ensure t
|
||||||
|
:init
|
||||||
|
(projectile-mode +1)
|
||||||
|
:bind (:map projectile-mode-map
|
||||||
|
("s-p" . projectile-command-map)
|
||||||
|
("C-c p" . projectile-command-map))
|
||||||
|
:config
|
||||||
|
(setq projectile-project-search-path '("~/Projects")))
|
||||||
|
|
||||||
|
;; Ivy/Swiper/Counsel config.
|
||||||
|
(use-package swiper)
|
||||||
|
(use-package counsel)
|
||||||
|
(use-package ivy
|
||||||
|
:diminish
|
||||||
|
:bind (("C-s" . swiper)
|
||||||
|
:map ivy-minibuffer-map
|
||||||
|
("TAB" . ivy-alt-done)
|
||||||
|
("C-l" . ivy-alt-done)
|
||||||
|
("C-j" . ivy-next-line)
|
||||||
|
("C-k" . ivy-previous-line)
|
||||||
|
:map ivy-switch-buffer-map
|
||||||
|
("C-k" . ivy-previous-line)
|
||||||
|
("C-l" . ivy-done)
|
||||||
|
("C-d" . ivy-switch-buffer-kill)
|
||||||
|
:map ivy-reverse-i-search-map
|
||||||
|
("C-k" . ivy-previous-line)
|
||||||
|
("C-d" . ivy-reverse-i-search-kill))
|
||||||
|
:config
|
||||||
|
(ivy-mode 1))
|
||||||
|
(custom-set-variables
|
||||||
|
;; custom-set-variables was added by Custom.
|
||||||
|
;; If you edit it by hand, you could mess it up, so be careful.
|
||||||
|
;; Your init file should contain only one such instance.
|
||||||
|
;; If there is more than one, they won't work right.
|
||||||
|
'(package-selected-packages
|
||||||
|
'(treemacs-projectile projectile paredit all-the-fonts doom-modeline rust-mode swipe spinner lsp-treemacs lsp-ivy lsp-ui lsp-mode counsel swiper ivy treemacs use-package monokai-pro-theme)))
|
||||||
|
(custom-set-faces
|
||||||
|
;; custom-set-faces was added by Custom.
|
||||||
|
;; If you edit it by hand, you could mess it up, so be careful.
|
||||||
|
;; Your init file should contain only one such instance.
|
||||||
|
;; If there is more than one, they won't work right.
|
||||||
|
)
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
* Guix Configuration
|
||||||
|
|
||||||
|
** Channels
|
||||||
|
|
||||||
I don't really need any fancy channels, besides nonguix and my own repository.
|
I don't really need any fancy channels, besides nonguix and my own repository.
|
||||||
|
|
||||||
|
@ -23,9 +179,9 @@ I don't really need any fancy channels, besides nonguix and my own repository.
|
||||||
"BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA")))))
|
"BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA")))))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
* Systems
|
** Systems
|
||||||
|
|
||||||
** Base Configuration
|
*** Base Configuration
|
||||||
|
|
||||||
Just some basic importing of modules for now. I'm using the nonfree Linux kernel
|
Just some basic importing of modules for now. I'm using the nonfree Linux kernel
|
||||||
from nonguix.
|
from nonguix.
|
||||||
|
@ -65,10 +221,6 @@ from nonguix.
|
||||||
(use-service-modules desktop xorg)
|
(use-service-modules desktop xorg)
|
||||||
(use-package-modules certs)
|
(use-package-modules certs)
|
||||||
(use-package-modules shells)
|
(use-package-modules shells)
|
||||||
#+end_src
|
|
||||||
|
|
||||||
|
|
||||||
#+begin_src scheme :tangle .config/guix/systems/base-system.scm
|
|
||||||
|
|
||||||
(define %xorg-libinput-config
|
(define %xorg-libinput-config
|
||||||
"Section \"InputClass\"
|
"Section \"InputClass\"
|
||||||
|
@ -161,9 +313,9 @@ in a typing install of Guix/Linux.
|
||||||
(name-service-switch %mdns-host-lookup-nss)))
|
(name-service-switch %mdns-host-lookup-nss)))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** Individual Systems
|
*** Individual Systems
|
||||||
|
|
||||||
*** London
|
**** London
|
||||||
|
|
||||||
London is my primary custom built desktop, with
|
London is my primary custom built desktop, with
|
||||||
|
|
||||||
|
@ -190,10 +342,18 @@ London is my primary custom built desktop, with
|
||||||
(device "/dev/nvme0n1p2")
|
(device "/dev/nvme0n1p2")
|
||||||
(mount-point "/")
|
(mount-point "/")
|
||||||
(type "ext4"))
|
(type "ext4"))
|
||||||
|
(file-system
|
||||||
|
(device "/dev/sda1")
|
||||||
|
(mount-point "/home/gsimmer/wd")
|
||||||
|
(type "ext4"))
|
||||||
|
(file-system
|
||||||
|
(device "/dev/sdb1")
|
||||||
|
(mount-point "/home/gsimmer/fhg")
|
||||||
|
(type "ext4"))
|
||||||
%base-file-systems)))
|
%base-file-systems)))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
*** Virtual
|
**** Virtual
|
||||||
|
|
||||||
This applies to any random Guix VM I spin up, usually for testing configurations.
|
This applies to any random Guix VM I spin up, usually for testing configurations.
|
||||||
|
|
Loading…
Reference in a new issue