I showed you my source code, pls respond
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

133 lines
2.9 KiB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
  1. # This file is controlled by /etc/dotfiles/README.org
  2. { pkgs, ... }:
  3. let
  4. myEmacs = pkgs.emacsWithPackagesFromUsePackage {
  5. config = ../README.org;
  6. package = pkgs.emacsGcc;
  7. alwaysEnsure = true;
  8. alwaysTangle = true;
  9. extraEmacsPackages = epkgs: [
  10. # Required packages...
  11. epkgs.exwm
  12. epkgs.evil
  13. epkgs.evil-collection
  14. epkgs.evil-surround
  15. epkgs.evil-nerd-commenter
  16. epkgs.general
  17. epkgs.which-key
  18. # Optional packages.
  19. epkgs.org
  20. epkgs.org-roam
  21. epkgs.org-roam-ui
  22. epkgs.websocket
  23. epkgs.simple-httpd
  24. epkgs.org-drill
  25. epkgs.org-pomodoro
  26. epkgs.writegood-mode
  27. epkgs.ob-http
  28. epkgs.ox-hugo
  29. epkgs.password-store
  30. epkgs.docker
  31. epkgs.dockerfile-mode
  32. epkgs.mu4e-alert
  33. epkgs.dired-single
  34. epkgs.all-the-icons
  35. epkgs.all-the-icons-dired
  36. epkgs.all-the-icons-ivy-rich
  37. epkgs.emojify
  38. epkgs.eshell-prompt-extras
  39. epkgs.vterm
  40. epkgs.magit
  41. epkgs.hydra
  42. epkgs.elfeed
  43. epkgs.nix-mode
  44. epkgs.projectile
  45. epkgs.lsp-mode
  46. epkgs.lsp-ui
  47. epkgs.company
  48. epkgs.ccls
  49. epkgs.go-mode
  50. epkgs.pretty-mode
  51. epkgs.rustic
  52. epkgs.plantuml-mode
  53. epkgs.protobuf-mode
  54. epkgs.ivy
  55. epkgs.counsel
  56. epkgs.ivy-rich
  57. epkgs.ivy-posframe
  58. epkgs.ivy-prescient
  59. epkgs.desktop-environment
  60. epkgs.doom-themes
  61. epkgs.doom-modeline
  62. ];
  63. };
  64. in {
  65. home.packages = [
  66. pkgs.nitrogen
  67. pkgs.autorandr
  68. pkgs.pass
  69. pkgs.mu
  70. pkgs.isync
  71. pkgs.aspell
  72. pkgs.aspellDicts.en
  73. pkgs.aspellDicts.en-science
  74. pkgs.aspellDicts.en-computers
  75. # pkgs.texlive.combined.scheme-full
  76. pkgs.brightnessctl
  77. pkgs.plantuml
  78. pkgs.nixfmt
  79. pkgs.rnix-lsp
  80. (pkgs.writeShellScriptBin "dotfiles-theme" ''
  81. ${myEmacs}/bin/emacsclient --no-wait --eval '(json-encode (dotfiles/theme))' | sed "s/\\\\//g" | sed -e 's/^"//' -e 's/"$//'
  82. '')
  83. ];
  84. programs.emacs = {
  85. enable = true;
  86. package = myEmacs;
  87. };
  88. xsession = {
  89. enable = true;
  90. windowManager.command = ''
  91. ${pkgs.nitrogen}/bin/nitrogen --restore
  92. ${myEmacs}/bin/emacs --daemon -f exwm-enable
  93. ${myEmacs}/bin/emacsclient -c
  94. '';
  95. };
  96. home.file.".xinitrc" = {
  97. text = ''
  98. exec ./.xsession
  99. '';
  100. };
  101. # Deploy the authinfo file.
  102. home.file.".authinfo.gpg".source = ../config/authinfo.gpg;
  103. # Deploy the isync configuration file.
  104. home.file.".mbsyncrc" = {
  105. text = ''
  106. IMAPStore xyz-remote
  107. Host mail.chrishayward.xyz
  108. User chris@chrishayward.xyz
  109. PassCmd "pass chrishayward.xyz/chris"
  110. SSLType IMAPS
  111. MaildirStore xyz-local
  112. Path ~/.cache/mail/
  113. Inbox ~/.cache/mail/inbox
  114. SubFolders Verbatim
  115. Channel xyz
  116. Far :xyz-remote:
  117. Near :xyz-local:
  118. Patterns * !Archives
  119. Create Both
  120. Expunge Both
  121. SyncState *
  122. '';
  123. };
  124. }