1
0
mirror of https://github.com/ellmau/nixos.git synced 2025-12-20 09:39:39 +01:00

Compare commits

...

6 Commits

Author SHA1 Message Date
74ca4b3d0f
Fix emacs module and remove teams due to CVEs 2023-10-02 16:37:45 +02:00
9acf1277c0 Add darwin as supported system and fix emacs package
Avoid linux only deps on darwin
2023-10-02 16:27:59 +02:00
8302384817 seq-fix for magit 2023-10-02 16:27:59 +02:00
024229e71b flake.lock: Update
Flake lock file updates:

• Updated input 'emacs-overlay':
    'github:nix-community/emacs-overlay/bcb0cc6626d0e79ff188c30cad72f52692c1048d' (2023-09-26)
  → 'github:nix-community/emacs-overlay/c231089aff799637747034d067fc4459753aa717' (2023-10-02)
• Updated input 'emacs-overlay/nixpkgs-stable':
    'github:NixOS/nixpkgs/261abe8a44a7e8392598d038d2e01f7b33cf26d0' (2023-09-24)
  → 'github:NixOS/nixpkgs/32dcb45f66c0487e92db8303a798ebc548cadedc' (2023-09-30)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/61283b30d11f27d5b76439d43f20d0c0c8ff5296' (2023-09-24)
  → 'github:NixOS/nixos-hardware/0ab3ee718e964fb42dc57ace6170f19cb0b66532' (2023-10-01)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/261abe8a44a7e8392598d038d2e01f7b33cf26d0' (2023-09-24)
  → 'github:NixOS/nixpkgs/32dcb45f66c0487e92db8303a798ebc548cadedc' (2023-09-30)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/e35dcc04a3853da485a396bdd332217d0ac9054f' (2023-09-22)
  → 'github:NixOS/nixpkgs/f5892ddac112a1e9b3612c39af1b72987ee5783a' (2023-09-29)
2023-10-02 16:27:59 +02:00
aca3dd3fc2 fix lib function and remove app to expose only the emacs package
Signed-off-by: Stefan Ellmauthaler <stefan.ellmauthaler@tu-dresden.de>
2023-10-02 16:27:59 +02:00
7dccffc415 Define Overlays to use ExportPackage of flake utils plus
Signed-off-by: Stefan Ellmauthaler <stefan.ellmauthaler@tu-dresden.de>
2023-10-02 16:27:59 +02:00
9 changed files with 209 additions and 151 deletions

30
flake.lock generated
View File

@ -72,11 +72,11 @@
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
"lastModified": 1695697673,
"narHash": "sha256-bGs6biCl41rJLMVazhe6kLYDLYn+P/bSeejxokdZjnA=",
"lastModified": 1696244446,
"narHash": "sha256-IAQEXDLlwrXaCSmt5bxuoqdhZiF8en/3NpiTrJt1bhE=",
"owner": "nix-community",
"repo": "emacs-overlay",
"rev": "bcb0cc6626d0e79ff188c30cad72f52692c1048d",
"rev": "c231089aff799637747034d067fc4459753aa717",
"type": "github"
},
"original": {
@ -248,11 +248,11 @@
},
"nixos-hardware": {
"locked": {
"lastModified": 1695541019,
"narHash": "sha256-rs++zfk41K9ArWkDAlmBDlGlKO8qeRIRzdjo+9SmNFI=",
"lastModified": 1696161939,
"narHash": "sha256-HI1DxS//s46/qv9dcW06TzXaBjxL2DVTQP8R1QsnHzM=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "61283b30d11f27d5b76439d43f20d0c0c8ff5296",
"rev": "0ab3ee718e964fb42dc57ace6170f19cb0b66532",
"type": "github"
},
"original": {
@ -326,11 +326,11 @@
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1695559356,
"narHash": "sha256-kXZ1pUoImD9OEbPCwpTz4tHsNTr4CIyIfXb3ocuR8sI=",
"lastModified": 1696039360,
"narHash": "sha256-g7nIUV4uq1TOVeVIDEZLb005suTWCUjSY0zYOlSBsyE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "261abe8a44a7e8392598d038d2e01f7b33cf26d0",
"rev": "32dcb45f66c0487e92db8303a798ebc548cadedc",
"type": "github"
},
"original": {
@ -358,11 +358,11 @@
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1695360818,
"narHash": "sha256-JlkN3R/SSoMTa+CasbxS1gq+GpGxXQlNZRUh9+LIy/0=",
"lastModified": 1696019113,
"narHash": "sha256-X3+DKYWJm93DRSdC5M6K5hLqzSya9BjibtBsuARoPco=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "e35dcc04a3853da485a396bdd332217d0ac9054f",
"rev": "f5892ddac112a1e9b3612c39af1b72987ee5783a",
"type": "github"
},
"original": {
@ -374,11 +374,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1695559356,
"narHash": "sha256-kXZ1pUoImD9OEbPCwpTz4tHsNTr4CIyIfXb3ocuR8sI=",
"lastModified": 1696039360,
"narHash": "sha256-g7nIUV4uq1TOVeVIDEZLb005suTWCUjSY0zYOlSBsyE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "261abe8a44a7e8392598d038d2e01f7b33cf26d0",
"rev": "32dcb45f66c0487e92db8303a798ebc548cadedc",
"type": "github"
},
"original": {

View File

@ -68,11 +68,13 @@
discoverMachines
withModules
discoverTemplates
discoverOverlay
;
inherit (flake-utils-plus.lib) genPkgOverlay;
in
flake-utils-plus.lib.mkFlake rec {
inherit self inputs;
supportedSystems = ["x86_64-linux"];
supportedSystems = ["x86_64-linux" "aarch64-darwin"];
lib = extended-lib;
@ -91,12 +93,14 @@
];
};
channels.nixpkgs.overlaysBuilder = channels: [
(final: prev: {unstable = channels.nixpkgs-unstable;})
(flake-utils-plus.lib.genPkgOverlay inputs.comma "comma")
#inputs.nix.overlay
inputs.emacs-overlay.overlay
];
channels.nixpkgs.overlaysBuilder = channels:
[
(final: prev: {unstable = channels.nixpkgs-unstable;})
(flake-utils-plus.lib.genPkgOverlay inputs.comma "comma")
#inputs.nix.overlay
inputs.emacs-overlay.overlay
]
++ (nixpkgs.lib.attrValues overlays);
hostDefaults = {
system = "x86_64-linux";
@ -140,6 +144,13 @@
stateVersion = extended-lib.mkDefault "21.05";
});
overlays = rec {
elss = discoverOverlay ./packages;
default = elss;
emacs-overlay = inputs.emacs-overlay.overlay;
flake-utils-plus = genPkgOverlay inputs.flake-utils-plus "fup-repl";
};
outputsBuilder = channels: {
devShells = let
pkgs = channels.nixpkgs;
@ -169,13 +180,16 @@
default = sops;
};
formatter = channels.nixpkgs.alejandra;
apps = {
emacs = flake-utils-plus.lib.mkApp {
drv =
self.nixosConfigurations.stel-xps.config.services.emacs.package;
exePath = "/bin/emacs";
};
};
packages =
(flake-utils-plus.lib.exportPackages {
inherit
(overlays)
default
flake-utils-plus
;
}
channels)
// {inherit (channels.nixpkgs) emacs;};
};
templates = discoverTemplates ./templates {

View File

@ -23,6 +23,12 @@ with prev; rec {
name,
}:
import path);
discoverOverlay = dir: final: prev: (withModules dir ({
path,
name,
}: (final.callPackage path {})));
discoverMachines = dir: args:
withModules dir ({
path,

View File

@ -18,7 +18,7 @@ with lib; {
signal-desktop
skypeforlinux
#remove teams as MS has removed the linux packages from their servers
teams
#teams
zoom-us
];
};

16
modules/emacs.nix Normal file
View File

@ -0,0 +1,16 @@
{
config,
lib,
pkgs,
...
}:
with lib; {
options.elss.programs.emacs.enable = mkEnableOption "Setup emacs package and install it";
config = mkIf config.elss.programs.emacs.enable {
services.emacs = {
enable = true;
defaultEditor = true;
package = pkgs.emacs;
};
};
}

View File

@ -1,118 +0,0 @@
{
config,
lib,
pkgs,
...
}:
with lib; let
defaultEl = ./default.el;
environment.systemPackages = [pkgs.gdb]; # use gdb for dap-mode
localsettings = pkgs.writeText "local-settings.el" ''
(defconst elss/paths/cpptools "${pkgs.unstable.vscode-extensions.ms-vscode.cpptools}/share/vscode/extensions/ms-vscode.cpptools")
(defconst elss/paths/cpptools-program "${pkgs.unstable.vscode-extensions.ms-vscode.cpptools}/share/vscode/extensions/ms-vscode.cpptools/debugAdapters/bin/OpenDebugAD7")
(provide 'local-settings)
'';
defaultConfig = pkgs.runCommand "default.el" {} ''
mkdir -p $out/share/emacs/site-lisp
cp ${defaultEl} $out/share/emacs/site-lisp/default.el
cp ${localsettings} $out/share/emacs/site-lisp/local-settings.el
'';
emacsPackage = (pkgs.emacsPackagesFor pkgs.emacs).emacsWithPackages (epkgs: let
lpkgs = import ./packages.nix {inherit config lib pkgs epkgs;};
#[ (defaultConfig lpkgs) ] ++ (with pkgs; [
# aspell
# emacs-all-the-icons-fonts
# gnupg
# nixpkgs-fmt
#])
in
[defaultConfig]
++ [(with epkgs.elpaPackages; [auctex org flymake])]
++ (with epkgs.melpaStablePackages; [])
++ (with epkgs.melpaPackages;
[
ac-helm
academic-phrases
add-hooks
alert
all-the-icons
all-the-icons-dired
apheleia
beacon
bln-mode
cargo-mode
company
company-auctex
company-bibtex
company-flx
company-quickhelp
company-reftex
cov
dap-mode
diminish
direnv
dockerfile-mode
docker-compose-mode
flycheck
free-keys
haskell-mode
highlight-indentation
helm
#helm-bbdb
helm-company
helm-flx
helm-descbinds
helm-lsp
helm-projectile
helm-rg
json-mode
less-css-mode
lsp-haskell
lsp-mode
lsp-ui
magit
markdown-mode
moe-theme
multiple-cursors
nix-mode
nixpkgs-fmt
org-bullets
org-roam
#org-roam-server
pasp-mode
pdf-tools
projectile
projectile-ripgrep
rustic
spacemacs-theme
solarized-theme
sparql-mode
sudo-edit
use-package
#vscode-dark-plus-theme
yaml-mode
yasnippet
#zenburn-theme
]
++ (with lpkgs; [org-roam-ui ligatures lean4-mode])));
in {
options.elss.programs.emacs.enable =
mkEnableOption "Setup emacs package and install it";
config = mkIf config.elss.programs.emacs.enable {
services.emacs = {
enable = true;
defaultEditor = true;
package = emacsPackage;
};
};
#nixpkgs.overlays = [ (self: super: { emacsOrig = super.emacs; }) (import (builtins.fetchTarball {
# url = https://github.com/nix-community/emacs-overlay/archive/master.tar.gz;
#})) ];
#nixpkgs.overlays = [
# (import (builtins.fetchTarball {
# url = https://github.com/nix-community/emacs-overlay/archive/master.tar.gz;
# }))
#];
}

View File

@ -89,8 +89,6 @@
:bind (:map projectile-mode-map
("<remap> <projectile-rg>" . helm-projectile-rg))
:after (helm projectile))
(use-package helm-config
:ensure helm)
(use-package helm-flx)
(use-package helm-bbdb)
(use-package helm-descbinds)

143
packages/emacs/default.nix Normal file
View File

@ -0,0 +1,143 @@
{
lib,
pkgs,
...
}:
with lib; let
defaultEl = ./default.el;
#environment.systemPackages = [pkgs.gdb]; # use gdb for dap-mode
localsettings =
if pkgs.system == "x86_64-linux"
then
pkgs.writeText "local-settings.el" ''
(defconst elss/paths/cpptools " ${pkgs.unstable.vscode-extensions.ms-vscode.cpptools}/share/vscode/extensions/ms-vscode.cpptools")
(defconst elss/paths/cpptools-progr am "${pkgs.unstable.vscode-extensions.ms-vscode.cpptools}/share/vscode/extensions/ms-vscode.cpptools/debugAdapters/bin/OpenDebugAD7")
(provide 'local-settings)
''
else
pkgs.writeText "local-settings.el" ''
(provide 'local-settings)
'';
defaultConfig = pkgs.runCommand "default.el" {} ''
mkdir -p $out/share/emacs/site-lisp
cp ${defaultEl} $out/share/emacs/site-lisp/default.el
cp ${localsettings} $out/share/emacs/site-lisp/local-settings.el
'';
overrides = self: super: {
elpaPackages =
super.elpaPackages
// {
seq = self.callPackage ({
elpaBuild,
fetchurl,
lib,
}:
elpaBuild rec {
pname = "seq";
ename = "seq";
version = "2.24";
src = fetchurl {
url = "https://elpa.gnu.org/packages/seq-2.24.tar";
sha256 = "1w2cysad3qwnzdabhq9xipbslsjm528fcxkwnslhlkh8v07karml";
};
packageRequires = [];
meta = {
homepage = "https://elpa.gnu.org/packages/seq.html";
license = lib.licenses.free;
};
# tests take a _long_ time to byte-compile, skip them
postInstall = ''rm -r $out/share/emacs/site-lisp/elpa/${pname}-${version}/tests'';
}) {};
};
};
emacsPackage = (pkgs.emacsPackagesFor pkgs.emacs28).emacsWithPackages (epkgs: let
lpkgs = import ./packages.nix {inherit lib pkgs epkgs;};
#[ (defaultConfig lpkgs) ] ++ (with pkgs; [
# aspell
# emacs-all-the-icons-fonts
# gnupg
# nixpkgs-fmt
#])
in
[defaultConfig]
++ [(with epkgs.elpaPackages; [auctex org flymake seq])]
++ (with epkgs.melpaStablePackages; [])
++ (with epkgs.melpaPackages;
[
ac-helm
academic-phrases
add-hooks
alert
all-the-icons
all-the-icons-dired
apheleia
beacon
bln-mode
cargo-mode
company
company-auctex
company-bibtex
company-flx
company-quickhelp
company-reftex
cov
dap-mode
diminish
direnv
dockerfile-mode
docker-compose-mode
flycheck
free-keys
haskell-mode
highlight-indentation
helm
helm-bbdb
helm-company
helm-flx
helm-descbinds
helm-lsp
helm-projectile
helm-rg
json-mode
less-css-mode
lsp-haskell
lsp-mode
lsp-ui
magit
markdown-mode
moe-theme
multiple-cursors
nix-mode
nixpkgs-fmt
org-bullets
org-roam
#org-roam-server
pasp-mode
pdf-tools
projectile
projectile-ripgrep
rustic
spacemacs-theme
solarized-theme
sparql-mode
sudo-edit
use-package
#vscode-dark-plus-theme
yaml-mode
yasnippet
#zenburn-theme
]
++ (with lpkgs; [org-roam-ui ligatures lean4-mode])));
in
emacsPackage
#nixpkgs.overlays = [ (self: super: { emacsOrig = super.emacs; }) (import (builtins.fetchTarball {
# url = https://github.com/nix-community/emacs-overlay/archive/master.tar.gz;
#})) ];
#nixpkgs.overlays = [
# (import (builtins.fetchTarball {
# url = https://github.com/nix-community/emacs-overlay/archive/master.tar.gz;
# }))
#];

View File

@ -1,5 +1,4 @@
{
config,
lib,
pkgs,
epkgs,