Compare commits
2 commits
8e7a85b21a
...
d1f910db69
Author | SHA1 | Date | |
---|---|---|---|
d1f910db69 | |||
567e4eb551 |
7 changed files with 131 additions and 97 deletions
41
flake.nix
41
flake.nix
|
@ -104,11 +104,17 @@
|
|||
|
||||
channelsConfig.allowUnfree = true;
|
||||
|
||||
lib = nixpkgs.lib.extend
|
||||
(self: super: { my = import ./lib { lib = self; }; });
|
||||
|
||||
################
|
||||
### Overlays ###
|
||||
################
|
||||
|
||||
overlay = import ./overlays { inherit inputs; };
|
||||
overlay = import ./overlays {
|
||||
inherit inputs;
|
||||
inherit (self) lib;
|
||||
};
|
||||
|
||||
channels.nixpkgs.overlaysBuilder = channels: [
|
||||
inputs.emacs.overlays.default
|
||||
|
@ -134,22 +140,23 @@
|
|||
./modules/profiles/gaming.nix
|
||||
./modules/profiles/desktop.nix
|
||||
];
|
||||
|
||||
hostDefaults.modules = [
|
||||
./modules/default.nix
|
||||
self.nixosModules.base
|
||||
inputs.home-manager.nixosModule
|
||||
{
|
||||
home-manager = {
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
extraSpecialArgs = { inherit inputs self; };
|
||||
};
|
||||
}
|
||||
inputs.hyprland.nixosModules.default
|
||||
inputs.agenix.nixosModules.age
|
||||
inputs.howdy.nixosModules.default
|
||||
];
|
||||
hostDefaults = {
|
||||
modules = [
|
||||
./modules/default.nix
|
||||
self.nixosModules.base
|
||||
inputs.home-manager.nixosModule
|
||||
{
|
||||
home-manager = {
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
extraSpecialArgs = { inherit inputs self; };
|
||||
};
|
||||
}
|
||||
inputs.hyprland.nixosModules.default
|
||||
inputs.agenix.nixosModules.age
|
||||
inputs.howdy.nixosModules.default
|
||||
];
|
||||
};
|
||||
|
||||
hosts.nixos-laptop.modules = [
|
||||
./hosts/nixos-laptop
|
||||
|
|
16
lib/default.nix
Normal file
16
lib/default.nix
Normal file
|
@ -0,0 +1,16 @@
|
|||
{ lib, ... }:
|
||||
|
||||
lib.makeExtensible (self: rec {
|
||||
mkDate = longDate: lib.concatStringsSep "-" [
|
||||
(builtins.substring 0 4 longDate)
|
||||
(builtins.substring 4 2 longDate)
|
||||
(builtins.substring 6 2 longDate)
|
||||
];
|
||||
mkVersionSrc = src: "unstable-" + builtins.substring 0 7 src.rev;
|
||||
mkVersionInput = input:
|
||||
let
|
||||
date = mkDate (input.lastModifiedDate or "19700101");
|
||||
rev = input.shortRev or "dirty";
|
||||
in
|
||||
"unstable-${date}_${rev}}";
|
||||
})
|
12
overlays/channels.nix
Normal file
12
overlays/channels.nix
Normal file
|
@ -0,0 +1,12 @@
|
|||
{ lib, inputs }:
|
||||
|
||||
final: prev: {
|
||||
master = import inputs.master {
|
||||
inherit (prev) system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
stable = import inputs.stable {
|
||||
inherit (prev) system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
}
|
|
@ -1,81 +1,8 @@
|
|||
{ inputs }: final: prev:
|
||||
let
|
||||
mkDate = longDate: (prev.lib.concatStringsSep "-" [
|
||||
(builtins.substring 0 4 longDate)
|
||||
(builtins.substring 4 2 longDate)
|
||||
(builtins.substring 6 2 longDate)
|
||||
]);
|
||||
mkVersionSrc = src: "unstable-" + builtins.substring 0 7 src.rev;
|
||||
mkVersionInput = input: "unstable-" + mkDate (input.lastModifiedDate or "19700101") + "_" + (input.shortRev or "dirty");
|
||||
in
|
||||
{
|
||||
agenix = inputs.agenix.packages.${prev.system}.default;
|
||||
attic = inputs.attic.packages.${prev.system}.default;
|
||||
hyprpaper = inputs.hyprpaper.packages.${prev.system}.default;
|
||||
neovim-nightly = inputs.neovim.packages.${prev.system}.default;
|
||||
nil = inputs.nil.packages.${prev.system}.default;
|
||||
{ inputs, lib }:
|
||||
|
||||
logseq-wayland = prev.symlinkJoin {
|
||||
name = "logseq-wayland";
|
||||
paths = [ prev.logseq ];
|
||||
nativeBuildInputs = [ prev.makeWrapper ];
|
||||
postBuild = ''
|
||||
wrapProgram $out/bin/logseq \
|
||||
--add-flags "--socket=wayland --enable-features=UseOzonePlatform --ozone-platform=wayland"
|
||||
'';
|
||||
};
|
||||
|
||||
waybar-hyprland = prev.waybar.overrideAttrs (old: {
|
||||
pname = "${old.pname}-hyprland";
|
||||
postPatch = old.postPatch or "" + ''
|
||||
sed -i 's,zext_workspace_handle_v1_activate(workspace_handle_);,const std::string command = "${final.hyprland}/bin/hyprctl dispatch workspace " + name_;\n\tsystem(command.c_str());,g' src/modules/wlr/workspace_manager.cpp
|
||||
'';
|
||||
mesonFlags = old.mesonFlags or [ ] ++ [ "-Dexperimental=true" ];
|
||||
});
|
||||
|
||||
vimPlugins = prev.vimPlugins // {
|
||||
nvim-treesitter-textsubjects = prev.vimUtils.buildVimPluginFrom2Nix {
|
||||
pname = "nvim-treesitter-textsubjects";
|
||||
version = mkVersionInput inputs.nvim-treesitter-textsubjects;
|
||||
src = inputs.nvim-treesitter-textsubjects;
|
||||
};
|
||||
|
||||
smartcolumn-nvim = prev.vimUtils.buildVimPluginFrom2Nix {
|
||||
pname = "smartcolumn-nvim";
|
||||
version = mkVersionInput inputs.smartcolumn-nvim;
|
||||
src = inputs.smartcolumn-nvim;
|
||||
};
|
||||
|
||||
copilot-lua = prev.vimPlugins.copilot-lua.overrideAttrs (old: {
|
||||
version = mkVersionInput inputs.copilot-lua;
|
||||
src = inputs.copilot-lua;
|
||||
});
|
||||
|
||||
lspsaga-nvim-original = prev.vimPlugins.lspsaga-nvim-original.overrideAttrs (old: {
|
||||
version = mkVersionInput inputs.lspsaga-nvim;
|
||||
src = inputs.lspsaga-nvim;
|
||||
});
|
||||
};
|
||||
|
||||
neovide-hyprland = final.symlinkJoin {
|
||||
name = "neovide-hyprland-${final.neovide.version}";
|
||||
paths = [ final.neovide ];
|
||||
nativeBuildInputs = [ final.makeWrapper ];
|
||||
postBuild = ''
|
||||
rm $out/bin/neovide
|
||||
makeWrapper ${final.neovide}/bin/neovide $out/bin/neovide --set WINIT_UNIX_BACKEND x11
|
||||
'';
|
||||
meta = final.neovide.meta // {
|
||||
mainProgram = "neovide";
|
||||
};
|
||||
};
|
||||
|
||||
master = import inputs.master {
|
||||
inherit (prev) system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
stable = import inputs.stable {
|
||||
inherit (prev) system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
}
|
||||
lib.composeManyExtensions [
|
||||
(import ./channels.nix { inherit inputs lib; })
|
||||
(import ./packages.nix { inherit inputs lib; })
|
||||
(import ./vimPlugins.nix { inherit inputs lib; })
|
||||
(import ./wayland.nix { inherit inputs lib; })
|
||||
]
|
||||
|
|
10
overlays/packages.nix
Normal file
10
overlays/packages.nix
Normal file
|
@ -0,0 +1,10 @@
|
|||
{ inputs, lib }:
|
||||
|
||||
final: prev:
|
||||
{
|
||||
agenix = inputs.agenix.packages.${prev.system}.default;
|
||||
attic = inputs.attic.packages.${prev.system}.default;
|
||||
hyprpaper = inputs.hyprpaper.packages.${prev.system}.default;
|
||||
neovim-nightly = inputs.neovim.packages.${prev.system}.default;
|
||||
nil = inputs.nil.packages.${prev.system}.default;
|
||||
}
|
29
overlays/vimPlugins.nix
Normal file
29
overlays/vimPlugins.nix
Normal file
|
@ -0,0 +1,29 @@
|
|||
{ inputs, lib }:
|
||||
|
||||
final: prev:
|
||||
with lib.my;
|
||||
{
|
||||
vimPlugins = prev.vimPlugins // {
|
||||
nvim-treesitter-textsubjects = prev.vimUtils.buildVimPluginFrom2Nix {
|
||||
pname = "nvim-treesitter-textsubjects";
|
||||
version = mkVersionInput inputs.nvim-treesitter-textsubjects;
|
||||
src = inputs.nvim-treesitter-textsubjects;
|
||||
};
|
||||
|
||||
smartcolumn-nvim = prev.vimUtils.buildVimPluginFrom2Nix {
|
||||
pname = "smartcolumn-nvim";
|
||||
version = mkVersionInput inputs.smartcolumn-nvim;
|
||||
src = inputs.smartcolumn-nvim;
|
||||
};
|
||||
|
||||
copilot-lua = prev.vimPlugins.copilot-lua.overrideAttrs (old: {
|
||||
version = mkVersionInput inputs.copilot-lua;
|
||||
src = inputs.copilot-lua;
|
||||
});
|
||||
|
||||
lspsaga-nvim-original = prev.vimPlugins.lspsaga-nvim-original.overrideAttrs (old: {
|
||||
version = mkVersionInput inputs.lspsaga-nvim;
|
||||
src = inputs.lspsaga-nvim;
|
||||
});
|
||||
};
|
||||
}
|
33
overlays/wayland.nix
Normal file
33
overlays/wayland.nix
Normal file
|
@ -0,0 +1,33 @@
|
|||
{ lib, inputs }:
|
||||
|
||||
final: prev: {
|
||||
neovide-hyprland = final.symlinkJoin {
|
||||
name = "neovide-hyprland-${final.neovide.version}";
|
||||
paths = [ final.neovide ];
|
||||
nativeBuildInputs = [ final.makeWrapper ];
|
||||
postBuild = ''
|
||||
rm $out/bin/neovide
|
||||
makeWrapper ${final.neovide}/bin/neovide $out/bin/neovide --set WINIT_UNIX_BACKEND x11
|
||||
'';
|
||||
meta = final.neovide.meta // {
|
||||
mainProgram = "neovide";
|
||||
};
|
||||
};
|
||||
logseq-wayland = prev.symlinkJoin {
|
||||
name = "logseq-wayland";
|
||||
paths = [ prev.logseq ];
|
||||
nativeBuildInputs = [ prev.makeWrapper ];
|
||||
postBuild = ''
|
||||
wrapProgram $out/bin/logseq \
|
||||
--add-flags "--socket=wayland --enable-features=UseOzonePlatform --ozone-platform=wayland"
|
||||
'';
|
||||
};
|
||||
|
||||
waybar-hyprland = prev.waybar.overrideAttrs (old: {
|
||||
pname = "${old.pname}-hyprland";
|
||||
postPatch = old.postPatch or "" + ''
|
||||
sed -i 's,zext_workspace_handle_v1_activate(workspace_handle_);,const std::string command = "${final.hyprland}/bin/hyprctl dispatch workspace " + name_;\n\tsystem(command.c_str());,g' src/modules/wlr/workspace_manager.cpp
|
||||
'';
|
||||
mesonFlags = old.mesonFlags or [ ] ++ [ "-Dexperimental=true" ];
|
||||
});
|
||||
}
|
Loading…
Reference in a new issue