forked from Shinonome/dots-hyprland
246 lines
6.4 KiB
Nix
246 lines
6.4 KiB
Nix
{
|
|
description = "A simple NixOS flake for a single system architecture.";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
|
|
hyprland = {
|
|
url = "github:hyprwm/Hyprland";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
quickshell = {
|
|
url = "git+https://git.outfoxxed.me/outfoxxed/quickshell";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
matugen = {
|
|
url = "github:/InioX/Matugen";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
# ref = "refs/tags/matugen-v0.10.0";
|
|
};
|
|
oneUI = {
|
|
url = "github:/end-4/OneUI4-Icons";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
flake = false;
|
|
};
|
|
home-manager = {
|
|
url = "github:nix-community/home-manager";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
};
|
|
|
|
outputs = {
|
|
self,
|
|
nixpkgs,
|
|
hyprland,
|
|
quickshell,
|
|
matugen,
|
|
oneUI,
|
|
...
|
|
}: let
|
|
supportedSystems = ["x86_64-linux"];
|
|
eachSupportedSystem = f:
|
|
nixpkgs.lib.genAttrs supportedSystems (system: let
|
|
pkgs = import nixpkgs {
|
|
inherit system;
|
|
};
|
|
in
|
|
f pkgs);
|
|
in {
|
|
homeManagerModules = rec {
|
|
default = illogical-impulse;
|
|
illogical-impulse = import ./modules/desktop/default.nix;
|
|
};
|
|
|
|
legacyPackages = eachSupportedSystem (pkgs: {
|
|
quickshellWithQT = quickshell.packages.${pkgs.system}.default.overrideAttrs (oldAttrs: {
|
|
propagatedBuildInputs =
|
|
oldAttrs.propagatedBuildInputs or []
|
|
++ [
|
|
pkgs.kdePackages.qt5compat
|
|
pkgs.kdePackages.qtpositioning
|
|
];
|
|
});
|
|
iiShellConfig = pkgs.stdenv.mkDerivation {
|
|
pname = "ii-shell-config";
|
|
version = "1.0";
|
|
src = ./.;
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
install -d -m 755 $out/share/ii
|
|
cp -r .config/quickshell/ii/* $out/share/ii
|
|
|
|
runHook postInstall
|
|
'';
|
|
dontPatchShebangs = true;
|
|
};
|
|
iiOneUI4Icons = pkgs.stdenv.mkDerivation rec {
|
|
pname = "ii-oneui4-icons";
|
|
version = "r70.55eada4";
|
|
src = oneUI;
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
install -d -m 755 $out/share/icons
|
|
cp -dr --no-preserve=mode OneUI $out/share/icons/OneUI
|
|
cp -dr --no-preserve=mode OneUI-dark $out/share/icons/OneUI-dark
|
|
cp -dr --no-preserve=mode OneUI-light $out/share/icons/OneUI-light
|
|
|
|
runHook postInstall
|
|
'';
|
|
dontStrip = true;
|
|
dontFixup = true;
|
|
};
|
|
});
|
|
|
|
packages = eachSupportedSystem (pkgs: {
|
|
default = pkgs.symlinkJoin {
|
|
name = "illogical-impulse-packages";
|
|
paths = builtins.attrValues self.legacyPackages.${pkgs.system};
|
|
};
|
|
});
|
|
|
|
devShells = eachSupportedSystem (pkgs: {
|
|
default = pkgs.mkShell {
|
|
packages = with pkgs; [
|
|
self.packages.${pkgs.system}.default
|
|
matugen.packages.${pkgs.system}.default
|
|
hyprland.packages.${pkgs.system}.default
|
|
];
|
|
# # --- Illogical Impulse Audio Dependencies ---
|
|
# ++ [
|
|
# cava
|
|
# pavucontrol
|
|
# wireplumber
|
|
# libdbusmenu-gtk3
|
|
# playerctl
|
|
# ]
|
|
# # --- Illogical Impulse Backlight Dependencies ---
|
|
# ++ [
|
|
# geoclue2 # FIXME
|
|
# brightnessctl
|
|
# ddcutil
|
|
# ]
|
|
# # --- Illogical Impulse Basic Dependencies ---
|
|
# ++ [
|
|
# axel
|
|
# bc
|
|
# coreutils
|
|
# cliphist
|
|
# cmake
|
|
# curl
|
|
# rsync
|
|
# wget
|
|
# ripgrep
|
|
# jq
|
|
# meson
|
|
# xdg-user-dirs
|
|
# ]
|
|
# # --- Illogical Impulse Bibata Dependencies ---
|
|
# ++ [
|
|
# bibata-cursors
|
|
# ]
|
|
# # --- Illogical Impulse Fonts and Theming Dependencies ---
|
|
# ++ [
|
|
# # adw-gtk-theme-git
|
|
# # breeze
|
|
# # breeze-plus
|
|
# # darkly-bin
|
|
# adw-gtk3 #FIXME
|
|
# darkly
|
|
# eza
|
|
# foot
|
|
# fish
|
|
# fontconfig
|
|
# # kde-material-you-colors
|
|
# kitty
|
|
# matugen.packages.${pkgs.system}.default
|
|
# # otf-space-grotesk
|
|
# starship
|
|
# # ttf-gabarito-git
|
|
# nerd-fonts.jetbrains-mono
|
|
# # ttf-material-symbols-variable-git
|
|
# # ttf-readex-pro
|
|
# # ttf-rubik-vf
|
|
# # ttf-twemoji
|
|
# ]
|
|
# # --- Illogical Impulse Hyprland Dependencies ---
|
|
# ++ [
|
|
# hyprland.packages.${pkgs.system}.default
|
|
# hypridle
|
|
# hyprcursor
|
|
# hyprlang
|
|
# hyprlock
|
|
# hyprpicker
|
|
# hyprsunset
|
|
# hyprutils
|
|
# hyprwayland-scanner
|
|
# wl-clipboard
|
|
# ]
|
|
# # --- Illogical Impulse KDE Dependencies ---
|
|
# ++ [
|
|
# kdePackages.bluedevil
|
|
# gnome-keyring
|
|
# networkmanager
|
|
# kdePackages.plasma-nm
|
|
# kdePackages.polkit-kde-agent-1
|
|
# kdePackages.dolphin
|
|
# kdePackages.systemsettings
|
|
# ]
|
|
# # TODO
|
|
# # Microtex
|
|
# ++ [
|
|
# ]
|
|
# # --- Illogical Impulse OneUI Dependencies ---
|
|
# ++ [
|
|
# ]
|
|
# # --- Illogical Impulse XDG Portal Dependencies ---
|
|
# ++ [
|
|
# xdg-desktop-portal
|
|
# kdePackages.xdg-desktop-portal-kde
|
|
# xdg-desktop-portal-gtk
|
|
# xdg-desktop-portal-hyprland
|
|
# ]
|
|
# # --- Illogical Impulse Python Dependencies ---
|
|
# ++ [
|
|
# clang
|
|
# uv
|
|
# gtk4
|
|
# libadwaita
|
|
# libsoup_3
|
|
# libportal-gtk4
|
|
# gobject-introspection
|
|
# sassc
|
|
# python3Packages.opencv-python
|
|
# ]
|
|
# # --- Illogical Impulse Screencapture Dependencies ---
|
|
# ++ [
|
|
# hyprshot
|
|
# slurp
|
|
# swappy
|
|
# tesseract
|
|
# # tesseract-data-eng
|
|
# wf-recorder
|
|
# ]
|
|
# # --- Illogical Impulse GTK/Qt Dependencies ---
|
|
# ++ [
|
|
# kdePackages.kdialog
|
|
# # libsForQt5.qt5.qtgraphicaleffects
|
|
#
|
|
# upower
|
|
# wtype
|
|
# ydotool
|
|
# ]
|
|
# # --- Illogical Impulse Widget Dependencies ---
|
|
# ++ [
|
|
# quickshell.packages.${pkgs.system}.default
|
|
# fuzzel
|
|
# # glib2
|
|
# translate-shell
|
|
# wlogout
|
|
# ];
|
|
};
|
|
});
|
|
};
|
|
}
|