This commit is contained in:
Evie Litherland-Smith 2023-11-02 08:19:48 +00:00
commit f132fbe9b6
17 changed files with 171 additions and 120 deletions

View file

@ -44,7 +44,6 @@
./home/alacritty.nix ./home/alacritty.nix
./home/default.nix ./home/default.nix
./home/firefox.nix ./home/firefox.nix
./home/kdeconnect.nix
./home/media.nix ./home/media.nix
./home/pass.nix ./home/pass.nix
./home/zathura.nix ./home/zathura.nix
@ -158,7 +157,18 @@
fira-mono fira-mono
fira-code fira-code
fira-code-symbols fira-code-symbols
(nerdfonts.override { fonts = [ "FiraCode" ]; }) (nerdfonts.override {
fonts = [
"FiraCode"
"FiraMono"
"DejaVuSansMono"
"Noto"
"ComicShannsMono"
"NerdFontsSymbolsOnly"
];
})
emacs-all-the-icons-fonts
weather-icons
noto-fonts noto-fonts
noto-fonts-cjk noto-fonts-cjk
noto-fonts-emoji noto-fonts-emoji

View file

@ -60,7 +60,7 @@
}; };
vdirsyncer = { vdirsyncer = {
enable = lib.mkDefault emailConfig.mbsync.enable; enable = lib.mkDefault emailConfig.mbsync.enable;
collections = [ "Work" "Operations" ]; collections = [ "Work" "Network Events" "Operations" ];
}; };
khal = { khal = {
inherit (vdirsyncer) enable; inherit (vdirsyncer) enable;

View file

@ -11,6 +11,10 @@
services.git-sync = { services.git-sync = {
enable = true; enable = true;
repositories = with config.home; { repositories = with config.home; {
org = {
path = "${homeDirectory}/Org";
uri = "git+https://git.xenia.me.uk/xenia/Org.git";
};
elfeed = { elfeed = {
path = "${homeDirectory}/.elfeed"; path = "${homeDirectory}/.elfeed";
uri = "git+https://git.xenia.me.uk/xenia/elfeed.git"; uri = "git+https://git.xenia.me.uk/xenia/elfeed.git";
@ -24,7 +28,9 @@
pandoc pandoc
gfortran gfortran
rustup rustup
texlive.combined.scheme-medium texlive.combined.scheme-full
ghostscript
mupdf
(python3.withPackages (python3.withPackages
(ps: with ps; [ python-lsp-server python-lsp-ruff pylsp-mypy ])) (ps: with ps; [ python-lsp-server python-lsp-ruff pylsp-mypy ]))
@ -51,7 +57,6 @@
shellcheck shellcheck
marksman marksman
luajitPackages.lua-lsp luajitPackages.lua-lsp
texlab
# nodePackages.pyright # nodePackages.pyright
nodePackages.yaml-language-server nodePackages.yaml-language-server
nodePackages.bash-language-server nodePackages.bash-language-server

View file

@ -32,7 +32,14 @@
(setq user-full-name "Evie Litherland-Smith" (setq user-full-name "Evie Litherland-Smith"
user-mail-address "evie@xenia.me.uk") user-mail-address "evie@xenia.me.uk")
;; Set default coding system (especially for Windows)
(set-default-coding-systems 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(require 'custom-ui-config)
(require 'custom-defaults-config) (require 'custom-defaults-config)
(require 'custom-email-config) (require 'custom-email-config)
(require 'custom-feed-config) (require 'custom-feed-config)
(require 'custom-ide-config) (require 'custom-ide-config)
@ -41,15 +48,9 @@
(require 'custom-org-config) (require 'custom-org-config)
(require 'custom-project-config) (require 'custom-project-config)
(require 'custom-social-config) (require 'custom-social-config)
(require 'custom-ui-config)
(require 'crafted-completion-config) (require 'crafted-completion-config)
(require 'crafted-ide-config) (require 'crafted-ide-config)
(require 'crafted-org-config) (require 'crafted-org-config)
(require 'crafted-workspaces-config) (require 'crafted-workspaces-config)
(require 'crafted-writing-config) (require 'crafted-writing-config)
;; Set default coding system (especially for Windows)
(set-default-coding-systems 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)

View file

@ -3,31 +3,17 @@
message-sendmail-f-is-evil t message-sendmail-f-is-evil t
message-sendmail-extra-arguments '("--read-envelope-from") message-sendmail-extra-arguments '("--read-envelope-from")
message-send-mail-function #'message-send-mail-with-sendmail message-send-mail-function #'message-send-mail-with-sendmail
message-kill-buffer-on-exit t) message-kill-buffer-on-exit t
mail-user-agent 'mu4e-user-agent
(when (require 'mu4e nil :noerror) read-mail-command 'mu4e
(keymap-set global-map "C-c m m" #'mu4e) mu4e-maildir "~/Mail"
(keymap-set global-map "C-c m u" #'mu4e-update-index)
(keymap-set global-map "C-c m c" #'mu4e-compose-new)
(when (require 'mu4e-alert nil :noerror)
(setq mu4e-alert-modeline-formatter 'mu4e-alert-default-mode-line-formatter)
(mu4e-alert-set-default-style 'libnotify)
(mu4e-alert-enable-notifications)
(mu4e-alert-enable-mode-line-display))
(setq mu4e-maildir "~/Mail"
mu4e-attachment-dir "~/Downloads" mu4e-attachment-dir "~/Downloads"
mu4e-get-mail-command "mbsync -a" mu4e-get-mail-command "mbsync -a"
mu4e-update-interval (* 5 60) ; Every 5 minutes mu4e-update-interval (* 5 60) ; Every 5 minutes
mu4e-sent-messages-behavior 'sent mu4e-sent-messages-behavior 'sent
mu4e-change-filenames-when-moving t mu4e-change-filenames-when-moving t
mu4e-context-policy 'pick-first mu4e-context-policy 'pick-first
sendmail-program (executable-find "msmtp") mu4e-use-fancy-chars t
send-mail-function #'smtpmail-send-it
message-sendmail-f-is-evil t
message-sendmail-extra-arguments '("--read-envelope-from")
message-send-mail-function #'message-send-mail-with-sendmail
mu4e-headers-thread-single-orphan-prefix '("─>" . "─▶") mu4e-headers-thread-single-orphan-prefix '("─>" . "─▶")
mu4e-headers-thread-orphan-prefix '("┬>" . "┬▶") mu4e-headers-thread-orphan-prefix '("┬>" . "┬▶")
mu4e-headers-thread-connection-prefix '("" . "") mu4e-headers-thread-connection-prefix '("" . "")
@ -37,20 +23,32 @@
mu4e-modeline-all-read '("R:" . "󰑇 ") mu4e-modeline-all-read '("R:" . "󰑇 ")
mu4e-modeline-all-clear '("C:" . "󰚭 ") mu4e-modeline-all-clear '("C:" . "󰚭 ")
mu4e-modeline-new-items '("N:" . "󰎔 ") mu4e-modeline-new-items '("N:" . "󰎔 ")
mu4e-modeline-unread-items '("U:" . "󰮒 ") mu4e-modeline-unread-items '("U:" . "󰶊 ")
mu4e-search-full-label '("F" . "󱊖 ") mu4e-search-full-label '("F" . "󱊖 ")
mu4e-search-hide-label '("H" . "󰘓 ") mu4e-search-hide-label '("H" . "󰘓 ")
mu4e-search-related-label '("R" . "󰌹 ") mu4e-search-related-label '("R" . "󰌹 ")
mu4e-search-skip-duplicates-label '("D" . "󰆑 ") mu4e-search-skip-duplicates-label '("D" . "󰆑 ")
mu4e-search-threaded-label'("T" . "󱇫 ") mu4e-search-threaded-label'("T" . "󱇫 ")
mu4e-alert-modeline-formatter 'mu4e-alert-default-mode-line-formatter
mu4e-headers-fields '((:human-date . 12) mu4e-headers-fields '((:human-date . 12)
(:flags . 6) (:flags . 6)
(:from-or-to . 25) (:from-or-to . 25)
(:subject)) (:subject))
mu4e-maildir-shortcuts '((:maildir "/Proton/Inbox/" :key ?p) mu4e-maildir-shortcuts '((:maildir "/Proton/Inbox/" :key ?p)
(:maildir "/iCloud/Inbox/" :key ?i) (:maildir "/iCloud/Inbox/" :key ?i)
(:maildir "/Outlook/Inbox/" :key ?o)) (:maildir "/Outlook/Inbox/" :key ?o)))
mu4e-contexts (list
(when (require 'mu4e nil :noerror)
(keymap-set global-map "C-c m m" #'mu4e)
(keymap-set global-map "C-c m u" #'mu4e-update-index)
(keymap-set global-map "C-c m c" #'mu4e-compose-new)
(when (require 'mu4e-alert nil :noerror)
(mu4e-alert-set-default-style 'libnotify)
(mu4e-alert-enable-notifications)
(mu4e-alert-enable-mode-line-display))
(setq mu4e-contexts (list
(make-mu4e-context (make-mu4e-context
:name "Proton" :name "Proton"
:match-func (lambda (msg) (when msg (string-prefix-p "/Proton" (mu4e-message-field msg :maildir)))) :match-func (lambda (msg) (when msg (string-prefix-p "/Proton" (mu4e-message-field msg :maildir))))
@ -63,9 +61,9 @@
:name "iCloud" :name "iCloud"
:match-func (lambda (msg) (when msg (string-prefix-p "/iCloud" (mu4e-message-field msg :maildir)))) :match-func (lambda (msg) (when msg (string-prefix-p "/iCloud" (mu4e-message-field msg :maildir))))
:vars '((user-mail-address . "e.litherlandsmith@icloud.com") :vars '((user-mail-address . "e.litherlandsmith@icloud.com")
(mu4e-sent-folder . "/iCloud/Sent") (mu4e-sent-folder . "/iCloud/Sent Messages")
(mu4e-drafts-folder . "/iCloud/Drafts") (mu4e-drafts-folder . "/iCloud/Drafts")
(mu4e-trash-folder . "/iCloud/Trash") (mu4e-trash-folder . "/iCloud/Deleted Messages")
(mu4e-refile-folder . "/iCloud/Archive"))) (mu4e-refile-folder . "/iCloud/Archive")))
(make-mu4e-context (make-mu4e-context
:name "Outlook" :name "Outlook"

View file

@ -1,10 +1,13 @@
(when (require 'elfeed nil :noerror)
(let ((elfeed-base-directory "~/.elfeed")) (let ((elfeed-base-directory "~/.elfeed"))
(setq elfeed-db-directory (expand-file-name "db" elfeed-base-directory) (setq elfeed-db-directory (expand-file-name "db" elfeed-base-directory)
elfeed-enclosure-default-dir (expand-file-name "enclosures" elfeed-base-directory) elfeed-enclosure-default-dir (expand-file-name "enclosures" elfeed-base-directory)
rmh-elfeed-org-files (list (expand-file-name "feeds.org" elfeed-base-directory)))) rmh-elfeed-org-files (list (expand-file-name "feeds.org" elfeed-base-directory))))
(when (require 'elfeed nil :noerror)
(add-hook 'elfeed-search-mode-hook #'elfeed-update) (add-hook 'elfeed-search-mode-hook #'elfeed-update)
(when (require 'elfeed-org nil :noerror) (elfeed-org)) (when (require 'elfeed-org nil :noerror)
(when (require 'elfeed-tube nil :noerror) (elfeed-tube-setup))) (elfeed-org))
(when (require 'elfeed-tube nil :noerror)
(elfeed-tube-setup)))
(provide 'custom-feed-config) (provide 'custom-feed-config)

View file

@ -4,16 +4,16 @@
(when (require 'treesit-aut nil :noerror) (when (require 'treesit-aut nil :noerror)
(global-treesit-auto-mode +1)) (global-treesit-auto-mode +1))
(when (require 'apheleia nil :noerror)
(setq apheleia-remote-algorithm 'local) (setq apheleia-remote-algorithm 'local)
(when (require 'apheleia nil :noerror)
(keymap-set global-map "C-c c f" #'apheleia-format-buffer) (keymap-set global-map "C-c c f" #'apheleia-format-buffer)
(apheleia-global-mode +1)) (apheleia-global-mode +1))
(when (require 'eglot nil :noerror) (when (require 'eglot nil :noerror)
(eglot-ensure)) (eglot-ensure))
(when (require 'direnv nil :noerror)
(setq direnv-always-show-summary nil) (setq direnv-always-show-summary nil)
(when (require 'direnv nil :noerror)
(direnv-mode +1)) (direnv-mode +1))
(when (require 'yasnippet nil :noerror) (when (require 'yasnippet nil :noerror)

View file

@ -1,4 +1,6 @@
(setq org-directory "~/Org" (setq org-directory "~/Org"
org-tags-column 0
org-modern-tag nil
org-journal-dir (expand-file-name "journal" org-directory) org-journal-dir (expand-file-name "journal" org-directory)
org-journal-file-type 'daily org-journal-file-type 'daily
org-journal-file-format "%Y%m%d.org" org-journal-file-format "%Y%m%d.org"
@ -50,12 +52,12 @@
:emptry-lines 1) :emptry-lines 1)
)) ))
(when (require 'khalel nil :noerror)
(setq khalel-import-org-file (expand-file-name "calendar.org" org-directory) (setq khalel-import-org-file (expand-file-name "calendar.org" org-directory)
khalel-import-org-file-read-only nil khalel-import-org-file-read-only nil
khalel-import-org-file-confirm-overwrite nil khalel-import-org-file-confirm-overwrite nil
khalel-import-start-date "-30d" khalel-import-start-date "-30d"
khalel-import-end-date "+30d") khalel-import-end-date "+30d")
(when (require 'khalel nil :noerror)
(add-hook 'org-agenda-mode-hook #'khalel-import-events) (add-hook 'org-agenda-mode-hook #'khalel-import-events)
(khalel-add-capture-template "e")) (khalel-add-capture-template "e"))

View file

@ -6,7 +6,7 @@
(project-find-dir "Find directory") (project-find-dir "Find directory")
(project-eshell "Eshell"))) (project-eshell "Eshell")))
(when (require 'magit nil :noerror) (setq magit-clone-default-directory "~/Projects/")
(setq magit-clone-default-directory "~/Projects/")) (require 'magit nil :noerror)
(provide 'custom-project-config) (provide 'custom-project-config)

View file

@ -1,5 +1,5 @@
(when (require 'mastodon nil :noerror)
(setq mastodon-instance-url "https://tech.lgbt" (setq mastodon-instance-url "https://tech.lgbt"
mastodon-active-user "Tux922")) mastodon-active-user "Tux922")
(require 'mastodon nil :noerror)
(provide 'custom-social-config) (provide 'custom-social-config)

View file

@ -25,6 +25,7 @@
(load-theme 'doom-tokyo-night t)) (load-theme 'doom-tokyo-night t))
;; Nerd-Icons modes ;; Nerd-Icons modes
(when (require 'nerd-icons)
(when (require 'nerd-icons-dired nil :noerror) (when (require 'nerd-icons-dired nil :noerror)
(add-hook 'dired-mode-hook #'nerd-icons-dired-mode)) (add-hook 'dired-mode-hook #'nerd-icons-dired-mode))
@ -34,17 +35,20 @@
(when (require 'nerd-icons-completion nil :noerror) (when (require 'nerd-icons-completion nil :noerror)
(nerd-icons-completion-mode) (nerd-icons-completion-mode)
(when (require 'marginalia nil :noerror) (when (require 'marginalia nil :noerror)
(add-hook 'marginalia-mode-hook #'nerd-icons-completion-marginalia-setup))) (add-hook 'marginalia-mode-hook #'nerd-icons-completion-marginalia-setup))))
;; Doom-Modeline ;; Doom-Modeline
(when (require 'doom-modeline nil :noerror)
(setq doom-modeline-icon t (setq doom-modeline-icon t
doom-modeline-mu4e t) doom-modeline-mu4e t
doom-modeline-modal nil
doom-modeline-modal-icon nil
doom-modeline-persp-name nil
doom-modeline-persp-icon nil)
(when (require 'doom-modeline nil :noerror)
(display-battery-mode) (display-battery-mode)
(doom-modeline-mode +1)) (doom-modeline-mode +1))
;; Dashboard ;; Dashboard
(when (require 'dashboard nil :noerror)
(setq initial-buffer-choice 'dashboard-open (setq initial-buffer-choice 'dashboard-open
dashboard-icon-type 'nerd-icons dashboard-icon-type 'nerd-icons
dashboard-set-heading-icons t dashboard-set-heading-icons t
@ -56,7 +60,12 @@
dashboard-projects-switch-function 'project-switch-project dashboard-projects-switch-function 'project-switch-project
dashboard-projects-show-base t dashboard-projects-show-base t
dashboard-recentf-show-base 'align dashboard-recentf-show-base 'align
dashboard-items '((projects . 5) (agenda . 5) (recents . 5)) dashboard-items '((projects . 5)
(agenda . 5)
(recents . 5))
dashboard-heading-icons '((projects . "nf-oct-rocket")
(agenda . "nf-oct-calendar")
(recents . "nf-oct-history"))
dashboard-banner-ascii (concat " .000000. \n" dashboard-banner-ascii (concat " .000000. \n"
" .0. .0. \n" " .0. .0. \n"
" .00. .00. \n" " .00. .00. \n"
@ -70,18 +79,20 @@
" HHHHHH HHHHHHHHH HHHHHHHH \n" " HHHHHH HHHHHHHHH HHHHHHHH \n"
" HHH HHHH HHHHHHHHH HHHH \n" " HHH HHHH HHHHHHHHH HHHH \n"
" HHH HHHHHH \n" " HHH HHHHHH \n"
" HHHHH HH \n"))) " HHHHH HH \n"))
(require 'dashboard nil :noerror)
;; Extra minor-modes ;; Extra minor-modes
(when (require 'which-key nil :noerror) (when (require 'which-key nil :noerror)
(which-key-mode +1)) (which-key-mode +1))
(when (require 'page-break nil :noerror) (when (require 'page-break-lines nil :noerror)
(global-page-break-lines-mode +1)) (global-page-break-lines-mode +1))
;; Weather in modeline ;; Weather in modeline
(setq display-wttr-format 1) (setq display-wttr-format 1)
(when (require 'display-wttr nil :noerror) (display-wttr-mode +1)) (when (require 'display-wttr nil :noerror)
(display-wttr-mode +1))
;;;; Help Buffers ;;;; Help Buffers

View file

@ -210,6 +210,7 @@ in ''
bind = SUPER, W, moveworkspacetomonitor, 4 current bind = SUPER, W, moveworkspacetomonitor, 4 current
bind = SUPER, W, workspace, 4 bind = SUPER, W, workspace, 4
bind = SUPER SHIFT, W, movetoworkspace, 4 bind = SUPER SHIFT, W, movetoworkspace, 4
windowrule = workspace 4, (chromium-browser)
windowrule = workspace 4, (firefox) windowrule = workspace 4, (firefox)
# 5: [f]iles # 5: [f]iles

View file

@ -5,7 +5,6 @@ in {
"player-icons" = { "player-icons" = {
"default" = "󰲸"; "default" = "󰲸";
"mpv" = "󰤽"; "mpv" = "󰤽";
"kdeconnect" = "󱀟";
"ncspot" = "󰓇"; "ncspot" = "󰓇";
"Spot" = "󰓇"; "Spot" = "󰓇";
}; };

View file

@ -1,8 +0,0 @@
{ config, lib, pkgs, ... }:
{
services.kdeconnect = {
enable = true;
indicator = true;
};
}

29
system/chromium.nix Normal file
View file

@ -0,0 +1,29 @@
{ config, lib, pkgs, ... }:
{
environment.systemPackages = with pkgs; [ chromium ];
programs.chromium = rec {
enable = true;
defaultSearchProviderEnabled = true;
defaultSearchProviderSearchURL = "https://duckduckgo.com/?q={searchTerms}";
defaultSearchProviderSuggestURL = defaultSearchProviderSearchURL;
extensions = [
"cjpalhdlnbpafiamejdnhcphjbkeiagm" # ublock origin
"gcbommkclmclpchllfjekcdonpmejbdp" # https everywhere
"fnaicdffflnofjppbagibeoednhnbjhg" # floccus bookmark sync
];
extraOpts = {
"BrowserSignin" = 0;
"DeviceAutoUpdateDisabled" = true;
"SyncDisabled" = true;
"PasswordManagerEnabled" = false;
"SpellcheckEnabled" = true;
"SpellcheckLanguage" = [ "en-GB" ];
"AllowDinosaurEasterEgg" = true;
"AllowSystemNotifications" = true;
"AutoFillEnabled" = false;
"BrowserLabsEnabled" = false;
"BookmarkBarEnabled" = true;
};
};
}

View file

@ -1,7 +1,7 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
{ {
imports = [ ./default.nix ./emacs.nix ./firefox.nix ]; imports = [ ./default.nix ./emacs.nix ./chromium.nix ];
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
dex dex
mesa mesa
@ -68,7 +68,6 @@
dconf.enable = true; dconf.enable = true;
light.enable = true; light.enable = true;
noisetorch.enable = true; noisetorch.enable = true;
kdeconnect.enable = true;
}; };
gtk.iconCache.enable = true; gtk.iconCache.enable = true;
qt = { qt = {

View file

@ -64,12 +64,13 @@
mastodon mastodon
# ui-packages # ui-packages
all-the-icons
nerd-icons nerd-icons
nerd-icons-completion nerd-icons-completion
nerd-icons-dired nerd-icons-dired
nerd-icons-ibuffer nerd-icons-ibuffer
page-break-lines page-break-lines
# dashboard dashboard
doom-modeline doom-modeline
helpful helpful
which-key which-key