这是indexloc提供的服务,不要输入任何密码
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 1 addition & 6 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,5 @@ set -eo pipefail
nix run nixpkgs#alejandra -- . -q
nix run nixpkgs#statix -- fix .

for i in $(nix profile list | cut -d' ' -f1); do
nix profile remove 0
done

nix-shell -p git --run "nixos-rebuild switch --flake .# --impure --use-remote-sudo --option sandbox false"

sudo systemctl restart home-manager-marshall
nix run .#update-home
35 changes: 33 additions & 2 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,26 @@
forSystems = lib.genAttrs lib.systems.flakeExposed;
in {
defaultPackage.x86_64-linux = fenix.packages.x86_64-linux.minimal.toolchain;
homeConfigurations.marshall = home-manager.lib.homeManagerConfiguration {
extraSpecialArgs = {inherit inputs;};
pkgs = import nixpkgs {
system = "x86_64-linux";
config = {
allowUnfree = true;
allowBroken = true;
};
overlays = [(import ./pkgs inputs)];
};
modules = [
./home
{
home.stateVersion = "22.05";
home.username = "marshall";
# NOTE: change me if you change the dir in nixos config
home.homeDirectory = "/home/marshall";
}
];
};

nixosConfigurations = {
nix = lib.nixosSystem {
Expand All @@ -141,7 +161,6 @@
modules = [
./sys/nix/configuration.nix
agenix.nixosModule
home-manager.nixosModule
hyprland.nixosModules.default
];
};
Expand All @@ -154,11 +173,23 @@
./sys/wsl.nix
agenix.nixosModule
nixos-wsl.nixosModules.wsl
home-manager.nixosModule
];
};
};

apps.x86_64-linux.update-home = {
type = "app";
program =
(inputs.nixpkgs.legacyPackages.x86_64-linux.writeScript "update-home" ''
set -euo pipefail
old_profile=$(nix profile list | grep home-manager-path | head -n1 | awk '{print $4}')
echo $old_profile
nix profile remove $old_profile
${self.homeConfigurations.marshall.activationPackage}/activate || (echo "restoring old profile"; ${self.legacyPackages.x86_64-linux.nix}/bin/nix profile install $old_profile)
'')
.outPath;
};

devShells = forSystems (
system: let
pkgs = nixpkgs.legacyPackages."${system}";
Expand Down
162 changes: 95 additions & 67 deletions pkgs/default.nix
Original file line number Diff line number Diff line change
@@ -1,72 +1,100 @@
inputs: final: prev: let
sources = prev.callPackage ./_sources/generated.nix {};
in {
spicetify-cli = with prev;
spicetify-cli.overrideAttrs (_: {
inherit (sources.spicetify-cli) pname version src;
postInstall = ''
cp -r ./jsHelper ./Themes ./Extensions ./CustomApps ./globals.d.ts ./css-map.json $out/bin
inputs:
inputs.nixpkgs.lib.composeManyExtensions [
(final: prev: let
sources = prev.callPackage ./_sources/generated.nix {};
in {
inherit (inputs.vscodeInsiders.packages.${prev.system}) vscodeInsiders;
inherit (inputs.flake-firefox-nightly.packages.${prev.system}) firefox-nightly-bin;

draconis = inputs.draconis.defaultPackage.${prev.system};

discord = prev.discord.override {
withOpenASAR = true;
};

discord-canary = prev.discord-canary.override {
nss = final.nss_latest;
};

waybar = prev.waybar.overrideAttrs (oldAttrs: {
mesonFlags = oldAttrs.mesonFlags ++ ["-Dexperimental=true"];
patchPhase = ''
substituteInPlace src/modules/wlr/workspace_manager.cpp --replace "zext_workspace_handle_v1_activate(workspace_handle_);" "const std::string command = \"hyprctl dispatch workspace \" + name_; system(command.c_str());"
'';
});
spicetify-cli = with prev;
spicetify-cli.overrideAttrs (_: {
inherit (sources.spicetify-cli) pname version src;
postInstall = ''
cp -r ./jsHelper ./Themes ./Extensions ./CustomApps ./globals.d.ts ./css-map.json $out/bin
'';
});

spicetify-themes = sources.spicetify-themes.src;
catppuccin-spicetify = sources.catppuccin-spicetify.src;
spotify-spicetified = final.callPackage ./spotify-spicetified {};

picom = prev.picom.overrideAttrs (o: {
inherit (sources.picom) src pname version;
});

lapce = prev.lapce.overrideAttrs (o: {
inherit (sources.lapce) src pname version;
cargoSha256 = "0000000000000000000000000000000000000000000000000000";
});

zscroll = prev.zscroll.overrideAttrs (o: {
inherit (sources.zscroll) src pname version;
});

spicetify-themes = sources.spicetify-themes.src;
catppuccin-spicetify = sources.catppuccin-spicetify.src;
spotify-spicetified = final.callPackage ./spotify-spicetified {};

picom = prev.picom.overrideAttrs (o: {
inherit (sources.picom) src pname version;
});

lapce = prev.callPackage ./lapce.nix {
inherit (prev.darwin) libobjc;
inherit (prev.darwin.apple_sdk.frameworks) Security CoreServices ApplicationServices Carbon AppKit;
};

zscroll = prev.zscroll.overrideAttrs (o: {
inherit (sources.zscroll) src pname version;
});

myCopilotVim = prev.vimPlugins.copilot-vim.overrideAttrs (o: {
inherit (sources.copilot-vim) src pname version;
});

myCokelinePlugin = prev.vimUtils.buildVimPlugin {
inherit (sources.nvim-cokeline) src pname version;
};

myTailwindPlugin = prev.vimUtils.buildVimPlugin {
inherit (sources.coc-tailwindcss3) src pname version;
};

myAstroPlugin = prev.vimUtils.buildVimPlugin {
inherit (sources.vim-astro) src pname version;
};

web-greeter = final.callPackage ./web-greeter.nix {
web-greeter-src = inputs.web-greeter;
};

wlroots = prev.wlroots.overrideAttrs (oldAttrs: {
patchPhase = ''
substituteInPlace render/gles2/renderer.c --replace "glFlush();" "glFinish();"
'';
});

hyprland-nvidia = inputs.hyprland.packages.${prev.system}.default.override {inherit (final) wlroots;};

awesome =
(prev.awesome.overrideAttrs (old: {
inherit (sources.awesome) src pname version;
patches = [];
GI_TYPELIB_PATH =
"${prev.playerctl}/lib/girepository-1.0:"
+ "${prev.upower}/lib/girepository-1.0:"
+ old.GI_TYPELIB_PATH;
}))
.override {
stdenv = prev.clangStdenv;
gtk3Support = true;
myCopilotVim = prev.vimPlugins.copilot-vim.overrideAttrs (o: {
inherit (sources.copilot-vim) src pname version;
});

myCokelinePlugin = prev.vimUtils.buildVimPlugin {
inherit (sources.nvim-cokeline) src pname version;
};

myTailwindPlugin = prev.vimUtils.buildVimPlugin {
inherit (sources.coc-tailwindcss3) src pname version;
};

mySddmTheme = prev.plasma5Packages.callPackage ./astronaut-sddm-theme {inherit sources;};
}
myAstroPlugin = prev.vimUtils.buildVimPlugin {
inherit (sources.vim-astro) src pname version;
};

web-greeter = final.callPackage ./web-greeter.nix {
web-greeter-src = inputs.web-greeter;
};

wlroots = prev.wlroots.overrideAttrs (oldAttrs: {
patchPhase = ''
substituteInPlace render/gles2/renderer.c --replace "glFlush();" "glFinish();"
'';
});

hyprland-nvidia = inputs.hyprland.packages.${prev.system}.default.override {inherit (final) wlroots;};

awesome =
(prev.awesome.overrideAttrs (old: {
inherit (sources.awesome) src pname version;
patches = [];
GI_TYPELIB_PATH =
"${prev.playerctl}/lib/girepository-1.0:"
+ "${prev.upower}/lib/girepository-1.0:"
+ old.GI_TYPELIB_PATH;
}))
.override {
stdenv = prev.clangStdenv;
gtk3Support = true;
};

mySddmTheme = prev.plasma5Packages.callPackage ./astronaut-sddm-theme {inherit sources;};
})
inputs.replugged-overlay.overlay
inputs.nur.overlay
inputs.neovim-nightly-overlay.overlay
inputs.fenix.overlay
inputs.nixpkgs-wayland.overlay
inputs.polymc.overlay
]
42 changes: 1 addition & 41 deletions sys/generic.nix
Original file line number Diff line number Diff line change
Expand Up @@ -33,37 +33,7 @@ in {
allowUnfree = true;
allowBroken = true;
};

overlays = [
(self: super: {
inherit (inputs.vscodeInsiders.packages.${super.system}) vscodeInsiders;
inherit (inputs.flake-firefox-nightly.packages.${super.system}) firefox-nightly-bin;

draconis = inputs.draconis.defaultPackage.${super.system};

discord = super.discord.override {
withOpenASAR = true;
};

discord-canary = super.discord-canary.override {
nss = pkgs.nss_latest;
};

waybar = super.waybar.overrideAttrs (oldAttrs: {
mesonFlags = oldAttrs.mesonFlags ++ ["-Dexperimental=true"];
patchPhase = ''
substituteInPlace src/modules/wlr/workspace_manager.cpp --replace "zext_workspace_handle_v1_activate(workspace_handle_);" "const std::string command = \"hyprctl dispatch workspace \" + name_; system(command.c_str());"
'';
});
})
inputs.replugged-overlay.overlay
inputs.nur.overlay
inputs.neovim-nightly-overlay.overlay
inputs.fenix.overlay
inputs.nixpkgs-wayland.overlay
inputs.polymc.overlay
(import ../pkgs inputs)
];
overlays = [(import ../pkgs inputs)];
};

environment = {
Expand Down Expand Up @@ -96,16 +66,6 @@ in {
'';
};

home-manager = {
extraSpecialArgs = {inherit inputs;};
useGlobalPkgs = true;

users.marshall = {
imports = [../home];
home.stateVersion = "22.05";
};
};

systemd = {
user.services.pipewire-pulse.path = [pkgs.pulseaudio];

Expand Down