summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorAzat Bahawi <azat@bahawi.net>2022-08-17 17:48:15 +0300
committerAzat Bahawi <azat@bahawi.net>2022-08-17 17:48:15 +0300
commit508aee982ae2fda532742dffdc781f78351e115f (patch)
tree22915df34232a7348904b7813660392ed4318fcb /modules
parent7a1a900334653e7cadfd60e1c92c128bf9c5a951 (diff)
2022-08-17
Diffstat (limited to 'modules')
-rw-r--r--modules/nixfiles/common/nix.nix24
-rw-r--r--modules/nixfiles/emacs/default.nix137
-rw-r--r--modules/nixfiles/emacs/doom/config.el31
-rw-r--r--modules/nixfiles/emacs/doom/init.el236
-rw-r--r--modules/nixfiles/emacs/doom/packages.el4
-rw-r--r--modules/nixfiles/games/lutris.nix3
-rw-r--r--modules/nixfiles/profiles/dev/common.nix31
-rw-r--r--modules/nixfiles/profiles/headful.nix12
8 files changed, 240 insertions, 238 deletions
diff --git a/modules/nixfiles/common/nix.nix b/modules/nixfiles/common/nix.nix
index 586f354..5cb77e9 100644
--- a/modules/nixfiles/common/nix.nix
+++ b/modules/nixfiles/common/nix.nix
@@ -3,7 +3,7 @@
inputs,
lib,
pkgs,
- pkgsRev,
+ pkgsPR,
this,
...
}:
@@ -78,6 +78,13 @@ in {
self.overlays.default
(_: super:
{
+ # Splitting this into a separate package could be a good PR.
+ logcli = super.grafana-loki.overrideAttrs (_: _: {
+ subPackages = ["cmd/logcli"];
+ preFixup = "";
+ doCheck = false;
+ });
+
nix-bash-completions =
super.nix-bash-completions.overrideAttrs
(_: _: {
@@ -85,20 +92,16 @@ in {
substituteInPlace _nix --replace 'nix nixos-option' 'nixos-option'
'';
});
- nix-index = super.nix-index.override {nix = config.nix.package;};
- logcli = super.grafana-loki.overrideAttrs (_: _: {
- subPackages = ["cmd/logcli"];
- preFixup = "";
- doCheck = false;
- });
+
helm = super.kubernetes-helm-wrapped.override {
plugins = with super.kubernetes-helmPlugins; [
helm-diff
helm-secrets
];
};
- # https://github.com/NixOS/nixpkgs/pull/185824
- inherit (pkgsRev "c9c10940da779db387b8d6326c8c0bee598a0a87" "sha256-r08/Z8EYTNyyZW6lYQyq521OpgUH6ewZPpvDAiCkQaA=") iosevka;
+
+ # https://github.com/NixOS/nixpkgs/pull/187039
+ inherit (pkgsPR "187039" "sha256-xyYK1M1FF8e9UDziyqTiWe3XRkRVNdWUyzqG1/Rjry8=") biber;
}
// (with super; let
np = nodePackages;
@@ -112,13 +115,14 @@ in {
k3d = kube3d;
lua-language-server = sumneko-lua-language-server;
nix-language-server = rnix-lsp;
+ omnisharp = omnisharp-roslyn;
telepresence = telepresence2;
tor-browser = tor-browser-bundle-bin;
}))
agenix.overlay
emacs-overlay.overlay
nur.overlay
- xmonad-ng.overlay
+ xmonad-ng.overlays.default
];
config.allowUnfree = true;
diff --git a/modules/nixfiles/emacs/default.nix b/modules/nixfiles/emacs/default.nix
index 3ebab5f..178bf6e 100644
--- a/modules/nixfiles/emacs/default.nix
+++ b/modules/nixfiles/emacs/default.nix
@@ -11,63 +11,98 @@ in {
options.nixfiles.modules.emacs.enable =
mkEnableOption "Whether to enable the GNU Emacs.";
- # TODO Nixify.
config = mkIf cfg.enable {
+ # TODO Make magit-forge to work with this.
+ secrets.authinfo = {
+ file = "${inputs.self}/secrets/authinfo";
+ path = "${config.my.home}/.authinfo";
+ owner = my.username;
+ inherit (config.my) group;
+ };
+
+ nixfiles.modules = {
+ git.enable = true;
+ gnupg.enable = true;
+ };
+
hm = {
- imports = [
- inputs.nix-doom-emacs.hmModule
- ];
+ imports = [inputs.nix-doom-emacs.hmModule];
- home = {
- packages = with pkgs; [
- cmigemo # :lang japanese
- gcc # :lang (org +roam2)
- gnuplot # :lang (org +gnuplot)
- gnutls # :app irc
- graphviz # :lang (org +roam2)
- grip # :lang (markdown +grip)
- maim # :lang (org +dragndrop)
- pandoc # :lang org markdown latex
- plantuml # :lang plantuml
- pre-commit # :tools magit
- sqlite # :lang (org +roam2)
- texlive.combined.scheme-full # :lang org tex
- xclip # :os (tty +osc)
+ programs.doom-emacs = {
+ enable = true;
+ doomPrivateDir = ./doom;
+ # emacsPackage = pkgs.emacs28.override {nativeComp = true;};
+ emacsPackage = pkgs.emacs28;
+ extraPackages = with pkgs; [
+ mu # :email mu4e
];
+ extraConfig = let
+ extraBins = with pkgs; [
+ (aspellWithDicts (p: with p; [en ru])) # :checkers spell (+aspell)
+ asmfmt # :editor format
+ bash-language-server # :lang (sh +lsp)
+ clang-tools # :lang (cc +lsp) :editor format
+ cmake-format # :lang cc :editor format
+ cmigemo # :lang japanese
+ dockerfile-language-server # :tools (docker +lsp)
+ editorconfig # :tools editorconfig
+ fd # core
+ gnuplot # :lang (org +gnuplot)
+ gnutls # core
+ gomodifytags # :lang go
+ gopls # :lang (go +lsp)
+ gore # :lang go
+ gotests # :lang go
+ graphviz # :lang (org +roam2) :lang plantuml
+ grip # :lang (markdown +grip)
+ haskell-language-server # :lang (haskell +lsp)
+ haskellPackages.brittany # :lang haskell :editor format
+ haskellPackages.cabal-fmt # :lang haskell :editor format
+ haskellPackages.cabal-install # :lang haskell
+ haskellPackages.hoogle # :lang haskell
+ html-tidy # :lang web
+ jdk # :lang java plantuml
+ lua-language-server # :lang (lua +lsp)
+ maim # :lang (org +dragndrop)
+ nix-language-server
+ nixfmt # :lang nix :editor format
+ nodePackages.js-beautify # :lang web
+ nodePackages.lua-fmt # :lang lua :editor format
+ nodePackages.prettier # :editor format
+ nodePackages.stylelint # :lang web
+ pandoc # :lang org markdown latex
+ pre-commit # :tools magit
+ python3Packages.black # :lang python :editor format
+ python3Packages.isort # :lang python
+ python3Packages.pyflakes # :lang python
+ ripgrep # core
+ shellcheck # :lang sh
+ shfmt # :lang sh :editor format
+ sqlite # :lang (org +roam2) :tools lookup
+ texlive.combined.scheme-full # :lang org tex
+ wordnet # :tools (lookup +dictionary +offline)
+ yaml-language-server # :lang (yaml +lsp)
+ zls # :lang (zig +lsp)
+ ];
+ in ''
+ ;; This will integrate packages, which are required by various modules
+ ;; without polluting the user's profile.
+ (setq exec-path (append exec-path '(${
+ concatMapStringsSep " " (x: ''"${x}/bin"'') extraBins
+ })))
+ (setenv "PATH" (concat (getenv "PATH") ":${
+ concatMapStringsSep ":" (x: "${x}/bin") extraBins
+ }"))
- activation = {
- symlinkMigemoFiles = ''
- target="${config.dirs.data}/migemo"
- [[ -L "$target" ]] && rm "$target"
- ln -s ${pkgs.cmigemo}/share/migemo "$target"
- '';
- symlinkSkkFiles = ''
- target="${config.dirs.data}/skk"
- [[ -L "$target" ]] && rm "$target"
- ln -s ${pkgs.skk-dicts}/share "$target"
- '';
- symlinkPlantumlFiles = ''
- target="${config.dirs.data}/plantuml"
- [[ -L "$target" ]] && rm "$target"
- ln -s ${pkgs.plantuml}/lib "$target"
- '';
- };
- };
+ ;; :lang plantuml
+ (setq org-plantuml-jar-path "${pkgs.plantuml}/lib/plantuml.jar")
- programs = {
- emacs = {
- enable = true;
- # extraPackages = p:
- # with p; [
- # vterm # :term vterm
- # ];
- };
+ ;; :input japanese
+ (setq migemo-dictionary "${pkgs.cmigemo}/share/migemo/utf-8/migemo-dict")
- doom-emacs = {
- enable = true;
- doomPrivateDir = ./doom;
- emacsPackage = pkgs.emacs28.override {nativeComp = true;};
- };
+ ;; :input japanese
+ (setq skk-large-jisyo "${pkgs.skk-dicts}/share/skk/SKK-JISYO.L")
+ '';
};
services.emacs = {
@@ -75,7 +110,5 @@ in {
client.enable = true;
};
};
-
- fonts.fonts = with pkgs; [emacs-all-the-icons-fonts];
};
}
diff --git a/modules/nixfiles/emacs/doom/config.el b/modules/nixfiles/emacs/doom/config.el
index d641e2d..b27b7eb 100644
--- a/modules/nixfiles/emacs/doom/config.el
+++ b/modules/nixfiles/emacs/doom/config.el
@@ -29,12 +29,6 @@
org-roam-ui-update-on-save t
org-roam-ui-open-on-start t))
-(setq org-plantuml-jar-path "~/.local/share/plantuml/plantuml.jar")
-
-(setq migemo-dictionary "~/.local/share/migemo/utf-8/migemo-dict")
-
-(setq skk-large-jisyo "~/.local/share/skk/SKK-JISYO.L")
-
(setq lsp-haskell-formatting-provider "brittany")
(after! lsp-mode
@@ -71,10 +65,6 @@
(setq display-line-numbers-type t)
-(when (eq initial-window-system 'x)
- (toggle-frame-maximized)
- (toggle-frame-fullscreen))
-
(setq browse-url-generic-program (executable-find "firefox")
browse-url-browser-function 'browse-url-generic)
@@ -94,15 +84,6 @@
"a.gondor@yahoo.com"))
-(set-email-account! "shire"
- '(
- (mu4e-drafts-folder . "/shire/Drafts")
- (mu4e-refile-folder . "/shire/Archive")
- (mu4e-sent-folder . "/shire/Sent")
- (mu4e-trash-folder . "/shire/Trash")
- (smtpmail-smtp-user . "azahi"))
- t)
-
(set-email-account! "yahoo"
'(
(mu4e-sent-folder . "/yahoo/Sent")
@@ -112,6 +93,15 @@
(smtpmail-smtp-user . "a.gondor"))
t)
+(set-email-account! "shire"
+ '(
+ (mu4e-drafts-folder . "/shire/Drafts")
+ (mu4e-refile-folder . "/shire/Archive")
+ (mu4e-sent-folder . "/shire/Sent")
+ (mu4e-trash-folder . "/shire/Trash")
+ (smtpmail-smtp-user . "azahi"))
+ t)
+
(setq circe-default-nick "azahi"
circe-default-realname "frodo@gondor.net"
circe-default-user circe-default-nick)
@@ -176,8 +166,5 @@
(use-package! kubernetes-tramp
:defer t)
-(use-package! elpher
- :init (setq elpher-default-url-type "gemini"))
-
(provide 'config)
;;; config.el ends here
diff --git a/modules/nixfiles/emacs/doom/init.el b/modules/nixfiles/emacs/doom/init.el
index 486010a..91042ea 100644
--- a/modules/nixfiles/emacs/doom/init.el
+++ b/modules/nixfiles/emacs/doom/init.el
@@ -1,134 +1,130 @@
;;; init.el -*- lexical-binding: t; -*-
-(doom!
- :input
- japanese
+(doom! :input
+ japanese
- :completion
- company
- vertico
+ :completion
+ company
+ vertico
- :ui
- deft
- doom
- ;; doom-dashboard
- ;; doom-quit
- ;; (emoji +unicode)
- hl-todo
- hydra
- indent-guides
- ;; ligatures
- ;; (modeline +light)
- nav-flash
- ophints
- (popup +defaults)
- ;; tabs
- ;; treemacs
- unicode
- vc-gutter
- vi-tilde-fringe
- window-select
- workspaces
- zen
+ :ui
+ ;; deft
+ doom
+ ;; doom-dashboard
+ ;; doom-quit
+ hl-todo
+ indent-guides
+ ;; ligatures
+ ;; (modeline +light)
+ nav-flash
+ ophints
+ (popup +defaults)
+ ;; tabs
+ (treemacs +lsp)
+ ;; unicode
+ (vc-gutter +diff-hl +pretty)
+ window-select
+ workspaces
+ zen
- :editor
- (evil +everywhere)
- file-templates
- fold
- (format +onsave)
- lispy
- multiple-cursors
- (objed +manual)
- parinfer
- rotate-text
- snippets
- word-wrap
+ :editor
+ (evil +everywhere)
+ file-templates
+ fold
+ (format +onsave)
+ ;; lispy
+ ;; multiple-cursors
+ parinfer
+ ;; rotate-text
+ snippets
+ word-wrap
- :emacs
- dired
- electric
- ibuffer
- (undo +tree)
- vc
+ :emacs
+ dired
+ electric
+ ibuffer
+ undo
+ vc
- :term
- eshell
- vterm
+ :term
+ eshell
+ vterm
- :checkers
- syntax
- (spell +flyspell)
- grammar
+ :checkers
+ syntax
+ (spell +aspell
+ +everywhere
+ +flyspell)
+ grammar
- :tools
- ansible
- debugger
- direnv
- (docker +lsp)
- editorconfig
- (eval +overlay)
- (lookup +dictionary +offline)
- (lsp +peek)
- magit
- make
- (pass +auth)
- pdf
- ;; rgb
- ;; taskrunner
- terraform
- tmux
- upload
+ :tools
+ ansible
+ (debugger +lsp)
+ direnv
+ ;; (docker +lsp)
+ editorconfig
+ (eval +overlay)
+ (lookup +dictionary +offline)
+ (lsp +peek)
+ (magit +forge)
+ make
+ (pass +auth)
+ pdf
+ terraform
+ ;; tmux
+ tree-sitter
+ upload
- :os
- (tty +osc)
+ :os
+ (tty +osc)
- :lang
- (cc +lsp)
- common-lisp
- ;; (csharp +lsp)
- data
- dhall
- emacs-lisp
- (go +lsp)
- (haskell +lsp)
- ;; (java +lsp)
- ;; (javascript +lsp)
- (json +lsp)
- (latex +lsp)
- ;; (lua +lsp)
- markdown
- nix
- (org
- +brain
- +dragndrop
- +gnuplot
- +hugo
- +journal
- +noter
- +pandoc
- +pomodoro
- +present
- +roam2)
- plantuml
- ;; (php +lsp)
- (python +lsp)
- (racket +lsp)
- ;; (rust +lsp)
- (scheme +racket)
- (sh +lsp)
- web
- (yaml +lsp)
- (zig +lsp)
+ :lang
+ (cc +lsp +tree-sitter)
+ common-lisp
+ ;; (csharp +lsp +tree-sitter)
+ ;; data
+ dhall
+ emacs-lisp
+ (go +lsp +tree-sitter)
+ ;; (graphql +lsp)
+ (haskell +lsp)
+ (java +lsp +tree-sitter)
+ (javascript +lsp +tree-sitter)
+ (json +tree-sitter)
+ (latex +lsp)
+ (lua +lsp)
+ markdown
+ (nix +tree-sitter)
+ (org +brain
+ +gnuplot
+ +hugo
+ +journal
+ +noter
+ +pandoc
+ +pomodoro
+ +present
+ +pretty
+ +roam2)
+ plantuml
+ (python +lsp +tree-sitter)
+ (racket +lsp)
+ rst
+ (rust +lsp)
+ (scheme +racket)
+ (sh +lsp +tree-sitter)
+ (web +lsp +tree-sitter)
+ (yaml +lsp)
+ (zig +lsp +tree-sitter)
- :email
- mu4e
+ :email
+ mu4e
- :app
- calendar
- emms
- everywhere
- irc
- (rss +org)
+ :app
+ calendar
+ ;; emms
+ ;; everywhere
+ irc
+ (rss +org)
- :config
- (default +bindings +smartparens))
+ :config
+ (default +bindings +smartparens))
diff --git a/modules/nixfiles/emacs/doom/packages.el b/modules/nixfiles/emacs/doom/packages.el
index 72c3945..b29ee5f 100644
--- a/modules/nixfiles/emacs/doom/packages.el
+++ b/modules/nixfiles/emacs/doom/packages.el
@@ -6,8 +6,6 @@
(package! kubernetes-evil)
(package! kubernetes-tramp)
-(package! elpher)
-
(unpin! org-roam)
(package! org-roam
:recipe (:host github
@@ -19,5 +17,3 @@
:repo "org-roam/org-roam-ui"
:branch "main"
:files ("*.el" "out")))
-
-(package! modus-themes)
diff --git a/modules/nixfiles/games/lutris.nix b/modules/nixfiles/games/lutris.nix
index ec1eaa2..6d9fdf5 100644
--- a/modules/nixfiles/games/lutris.nix
+++ b/modules/nixfiles/games/lutris.nix
@@ -16,6 +16,9 @@ in {
gamemode.enable = true;
};
+ # This removes the annoying warning.
+ boot.kernel.sysctl."dev.i915.perf_stream_paranoid" = 0;
+
hm.home.packages = with pkgs; [
(lutris.override {
lutris-unwrapped = lutris-unwrapped.override {
diff --git a/modules/nixfiles/profiles/dev/common.nix b/modules/nixfiles/profiles/dev/common.nix
index d6c44ea..e5b60dc 100644
--- a/modules/nixfiles/profiles/dev/common.nix
+++ b/modules/nixfiles/profiles/dev/common.nix
@@ -46,13 +46,9 @@ in {
indent_size = 4
indent_style = tab
- [*.{bash,sh}]
- indent_size = 4
- indent_style = tab
-
[*.{cl,clj,el,l,lisp,lsp,rkt,scm,ss}]
- indent_size = unset
- indent_style = unset
+ indent_size = 2
+ indent_style = space
[*.go]
indent_size = 4
@@ -255,32 +251,9 @@ in {
PYTHONSTARTUP = ./pystartup.py;
};
- # TODO Probably should scrap most of these in favor of per-project
- # shell.nix or flake.nix.
packages = with pkgs; [
- alejandra
- bash-language-server
- cloc
- dockerfile-language-server
- editorconfig
- fd
- fzf
htmlq
- jc
jq
- json-language-server
- logcli
- nix-language-server
- nixfmt
- nixpkgs-fmt
- ripgrep
- ripgrep-all
- shellcheck
- shfmt
- treefmt
- wrk
- yaml-language-server
- yamllint
yq
];
};
diff --git a/modules/nixfiles/profiles/headful.nix b/modules/nixfiles/profiles/headful.nix
index fa2f0d7..e14517e 100644
--- a/modules/nixfiles/profiles/headful.nix
+++ b/modules/nixfiles/profiles/headful.nix
@@ -24,7 +24,6 @@ in {
nixfiles.modules = {
alacritty.enable = true;
aria2.enable = true;
- aspell.enable = true;
emacs.enable = true;
firefox.enable = true;
mpv.enable = true;
@@ -40,6 +39,17 @@ in {
hm.home.packages = with pkgs; [convmv dos2unix];
+ # There are (arguably) not a lot of reasons to keep mitigations enabled not
+ # on a web facing machine. First of all, to completely mitigate any possible
+ # Spectre holes one would need to disable Hyperthreading which will
+ # essentially put one's computer into the stone age by not being able to to
+ # effectively utilise multi-core systems. Secondly, by enabling mitigations,
+ # we introduce a plethora of performace overheads[1], which, albeit small,
+ # but still contribute to overall speed of things.
+ #
+ # [1]: https://www.phoronix.com/scan.php?page=article&item=spectre-meltdown-2&num=11
+ boot.kernelParams = ["mitigations=off"];
+
hardware.opengl = {
enable = true;
driSupport = true;