feat: migrate to Stylix (WIP)
This commit is contained in:
parent
f5e7a09123
commit
9a29bd9449
2
TODO.md
2
TODO.md
@ -1,5 +1,5 @@
|
||||
* [ ] Simplify config
|
||||
* [x] Organize most common apps with modules
|
||||
* [ ] Migrate from pywal + apple-fonts to Stylix (theme, cursor, fonts, ...)
|
||||
* [x] Migrate from pywal + apple-fonts to Stylix (theme, cursor, fonts, ...)
|
||||
* [x] Remove clutter
|
||||
* [x] Fix DDT4ALL derivation/shell
|
||||
|
126
flake.lock
generated
126
flake.lock
generated
@ -3,7 +3,9 @@
|
||||
"ags": {
|
||||
"inputs": {
|
||||
"astal": "astal",
|
||||
"nixpkgs": "nixpkgs"
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1744557573,
|
||||
@ -28,11 +30,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1745871622,
|
||||
"narHash": "sha256-HhQPekt/yPlNiHw1CwQBamDRMDHopGYx7vgYaAQuKmQ=",
|
||||
"lastModified": 1746130764,
|
||||
"narHash": "sha256-LlLFj8cBY0HbTLh8iuQlql+c92UbfrUG5Tyn4SDmueM=",
|
||||
"owner": "tadfisher",
|
||||
"repo": "android-nixpkgs",
|
||||
"rev": "2277d844349f0f520f8637ac80f7ae233ad1e700",
|
||||
"rev": "8aea0b21e93910389026e20a34f39e98ac328334",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -43,7 +45,7 @@
|
||||
},
|
||||
"apple-emoji": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1711624089,
|
||||
@ -61,7 +63,7 @@
|
||||
},
|
||||
"apple-fonts": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"ny": "ny",
|
||||
"sf-arabic": "sf-arabic",
|
||||
"sf-armenian": "sf-armenian",
|
||||
@ -148,11 +150,11 @@
|
||||
"fromYaml": "fromYaml"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1732200724,
|
||||
"narHash": "sha256-+R1BH5wHhfnycySb7Sy5KbYEaTJZWm1h+LW1OtyhiTs=",
|
||||
"lastModified": 1745523430,
|
||||
"narHash": "sha256-EAYWV+kXbwsH+8G/8UtmcunDeKwLwSOyfcmzZUkWE/c=",
|
||||
"owner": "SenchoPens",
|
||||
"repo": "base16.nix",
|
||||
"rev": "153d52373b0fb2d343592871009a286ec8837aec",
|
||||
"rev": "58bfe2553d937d8af0564f79d5b950afbef69717",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -233,9 +235,7 @@
|
||||
},
|
||||
"fingerprint-sensor": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
"nixpkgs": "nixpkgs_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1734692513,
|
||||
@ -255,11 +255,11 @@
|
||||
"firefox-gnome-theme": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1743774811,
|
||||
"narHash": "sha256-oiHLDHXq7ymsMVYSg92dD1OLnKLQoU/Gf2F1GoONLCE=",
|
||||
"lastModified": 1744642301,
|
||||
"narHash": "sha256-5A6LL7T0lttn1vrKsNOKUk9V0ittdW0VEqh6AtefxJ4=",
|
||||
"owner": "rafaelmardojai",
|
||||
"repo": "firefox-gnome-theme",
|
||||
"rev": "df53a7a31872faf5ca53dd0730038a62ec63ca9e",
|
||||
"rev": "59e3de00f01e5adb851d824cf7911bd90c31083a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -471,16 +471,15 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1744743431,
|
||||
"narHash": "sha256-iyn/WBYDc7OtjSawbegINDe/gIkok888kQxk3aVnkgg=",
|
||||
"lastModified": 1746191891,
|
||||
"narHash": "sha256-cfSp/uR6AlzhnoAW1cz1WkxBwH5zs2yhrwy48Fr7/6k=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "c61bfe3ae692f42ce688b5865fac9e0de58e1387",
|
||||
"rev": "c5cad190ba252eb94540ee06955a53c7807963f8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-24.11",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
@ -493,11 +492,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1743869639,
|
||||
"narHash": "sha256-Xhe3whfRW/Ay05z9m1EZ1/AkbV1yo0tm1CbgjtCi4rQ=",
|
||||
"lastModified": 1746040799,
|
||||
"narHash": "sha256-osgPX/SzIpkR50vev/rqoTEAVkEcOWXoQXmbzsaI4KU=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "d094c6763c6ddb860580e7d3b4201f8f496a6836",
|
||||
"rev": "5f217e5a319f6c186283b530f8c975e66c028433",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -810,22 +809,6 @@
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1743583204,
|
||||
"narHash": "sha256-F7n4+KOIfWrwoQjXrL2wD9RhFYLs2/GGe/MQY1sSdlE=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "2c8d3f48d33929642c1c12cd243df4cc7d2ce434",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1711523803,
|
||||
"narHash": "sha256-UKcYiHWHQynzj6CN/vTcix4yd1eCu1uFdsuarupdCQQ=",
|
||||
@ -841,7 +824,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1740828860,
|
||||
"narHash": "sha256-cjbHI+zUzK5CPsQZqMhE3npTyYFt9tJ3+ohcfaOF/WM=",
|
||||
@ -857,6 +840,21 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1746055187,
|
||||
"narHash": "sha256-3dqArYSMP9hM7Qpy5YWhnSjiqniSaT2uc5h2Po7tmg0=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "3e362ce63e16b9572d8c2297c04f7c19ab6725a5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"ref": "nixos-24.11",
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1739020877,
|
||||
@ -875,27 +873,11 @@
|
||||
},
|
||||
"nixpkgs_5": {
|
||||
"locked": {
|
||||
"lastModified": 1745487689,
|
||||
"narHash": "sha256-FQoi3R0NjQeBAsEOo49b5tbDPcJSMWc3QhhaIi9eddw=",
|
||||
"lastModified": 1746141548,
|
||||
"narHash": "sha256-IgBWhX7A2oJmZFIrpRuMnw5RAufVnfvOgHWgIdds+hc=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "5630cf13cceac06cefe9fc607e8dfa8fb342dde3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-24.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_6": {
|
||||
"locked": {
|
||||
"lastModified": 1743583204,
|
||||
"narHash": "sha256-F7n4+KOIfWrwoQjXrL2wD9RhFYLs2/GGe/MQY1sSdlE=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "2c8d3f48d33929642c1c12cd243df4cc7d2ce434",
|
||||
"rev": "f02fddb8acef29a8b32f10a335d44828d7825b78",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -915,11 +897,11 @@
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1743884191,
|
||||
"narHash": "sha256-foVcginhVvjg8ZnTzY5wwMeZ4wjJ8yX66PW5kgyivPE=",
|
||||
"lastModified": 1746056780,
|
||||
"narHash": "sha256-/emueQGaoT4vu0QjU9LDOG5roxRSfdY0K2KkxuzazcM=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"rev": "fde90f5f52e13eed110a0e53a2818a2b09e4d37c",
|
||||
"rev": "d476cd0972dd6242d76374fcc277e6735715c167",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1073,7 +1055,9 @@
|
||||
"git-hooks": "git-hooks",
|
||||
"gnome-shell": "gnome-shell",
|
||||
"home-manager": "home-manager_2",
|
||||
"nixpkgs": "nixpkgs_6",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"nur": "nur",
|
||||
"systems": "systems_3",
|
||||
"tinted-foot": "tinted-foot",
|
||||
@ -1083,11 +1067,11 @@
|
||||
"tinted-zed": "tinted-zed"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1744910471,
|
||||
"narHash": "sha256-HItOUMA2whFnPMJuyN2XHq9TZttgrgOAZcoUXsaD4Js=",
|
||||
"lastModified": 1746158690,
|
||||
"narHash": "sha256-Pe2emz36QL8GOILXvvmH/agqkspZFrcOrQxv6uufaEc=",
|
||||
"owner": "danth",
|
||||
"repo": "stylix",
|
||||
"rev": "8d5cd725ad591890c0cd804bf68cc842b8afca51",
|
||||
"rev": "bc38629511dd9cc78c5ca37a6e546fa66330d50e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1178,11 +1162,11 @@
|
||||
"tinted-schemes": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1742851696,
|
||||
"narHash": "sha256-sR4K+OVFKeUOvNIqcCr5Br7NLxOBEwoAgsIyjsZmb8s=",
|
||||
"lastModified": 1744974599,
|
||||
"narHash": "sha256-Fg+rdGs5FAgfkYNCs74lnl8vkQmiZVdBsziyPhVqrlY=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "schemes",
|
||||
"rev": "c37771c4ae8ff1667e27ddcf24991ebeb94a4e77",
|
||||
"rev": "28c26a621123ad4ebd5bbfb34ab39421c0144bdd",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1194,11 +1178,11 @@
|
||||
"tinted-tmux": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1743296873,
|
||||
"narHash": "sha256-8IQulrb1OBSxMwdKijO9fB70ON//V32dpK9Uioy7FzY=",
|
||||
"lastModified": 1745111349,
|
||||
"narHash": "sha256-udV+nHdpqgkJI9D0mtvvAzbqubt9jdifS/KhTTbJ45w=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-tmux",
|
||||
"rev": "af5152c8d7546dfb4ff6df94080bf5ff54f64e3a",
|
||||
"rev": "e009f18a01182b63559fb28f1c786eb027c3dee9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
33
flake.nix
33
flake.nix
@ -1,26 +1,25 @@
|
||||
{
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
|
||||
android-nixpkgs.url = "github:tadfisher/android-nixpkgs";
|
||||
android-nixpkgs.inputs.nixpkgs.follows = "nixpkgs";
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
home-manager.url = "github:nix-community/home-manager";
|
||||
|
||||
home-manager.url = "github:nix-community/home-manager/release-24.11";
|
||||
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
stylix.url = "github:danth/stylix";
|
||||
apple-fonts.url = "github:Lyndeno/apple-fonts.nix";
|
||||
apple-emoji.url = "github:oxcl/apple-emoji-nix";
|
||||
stylix.url = "github:danth/stylix";
|
||||
|
||||
ags.url = "github:Aylur/ags";
|
||||
|
||||
fingerprint-sensor.url = "github:ahbnr/nixos-06cb-009a-fingerprint-sensor/24.11";
|
||||
fingerprint-sensor.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
android-nixpkgs.url = "github:tadfisher/android-nixpkgs";
|
||||
hyprspace.url = "github:KZDKM/Hyprspace";
|
||||
|
||||
android-nixpkgs.inputs.nixpkgs.follows = "nixpkgs";
|
||||
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||
stylix.inputs.nixpkgs.follows = "nixpkgs";
|
||||
ags.inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
outputs =
|
||||
{ self, nixpkgs, android-nixpkgs, ... }:
|
||||
outputs = { self, nixpkgs, android-nixpkgs, ... }:
|
||||
let
|
||||
forAllSystems = nixpkgs.lib.genAttrs [
|
||||
"aarch64-linux"
|
||||
@ -30,16 +29,12 @@
|
||||
in
|
||||
{
|
||||
nixosConfigurations = import ./hosts { inherit self; };
|
||||
devShells = forAllSystems (
|
||||
system:
|
||||
let
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
in
|
||||
{
|
||||
devShells = forAllSystems (system:
|
||||
let pkgs = nixpkgs.legacyPackages.${system};
|
||||
in {
|
||||
ddt4all = import ./shells/ddt4all.nix { inherit pkgs; };
|
||||
android = import ./shells/android.nix { inherit pkgs android-nixpkgs; };
|
||||
rust = import ./shells/rust.nix { inherit pkgs; };
|
||||
}
|
||||
);
|
||||
});
|
||||
};
|
||||
}
|
||||
|
@ -13,16 +13,6 @@
|
||||
trusted-public-keys = [ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ];
|
||||
};
|
||||
|
||||
nixpkgs.config = {
|
||||
allowInsecurePredicate =
|
||||
pkg:
|
||||
builtins.elem (pkgs.lib.getName pkg) [
|
||||
"android-sdk-cmdline-tools"
|
||||
"fluffychat-linux"
|
||||
"olm"
|
||||
];
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
alacritty
|
||||
vim
|
||||
|
@ -2,6 +2,8 @@
|
||||
|
||||
let
|
||||
inherit (self) inputs;
|
||||
|
||||
lib = inputs.nixpkgs.lib;
|
||||
homeDir = self + /profiles;
|
||||
|
||||
mkSystem =
|
||||
@ -10,8 +12,7 @@ let
|
||||
hostname,
|
||||
useHomeManager ? true,
|
||||
modules ? [ ],
|
||||
}:
|
||||
inputs.nixpkgs.lib.nixosSystem {
|
||||
}: lib.nixosSystem {
|
||||
specialArgs = { inherit inputs; };
|
||||
modules =
|
||||
[
|
||||
@ -19,14 +20,7 @@ let
|
||||
./${hostname}
|
||||
homeDir
|
||||
]
|
||||
++ (
|
||||
if useHomeManager then
|
||||
[
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
]
|
||||
else
|
||||
[ ]
|
||||
)
|
||||
++ lib.lists.optionals useHomeManager [ inputs.home-manager.nixosModules.default ]
|
||||
++ modules;
|
||||
};
|
||||
in
|
||||
|
@ -1,3 +1,5 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
@ -17,7 +19,16 @@
|
||||
options = "--delete-older-than 7d";
|
||||
};
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
nixpkgs.config = {
|
||||
allowUnfreePredicate =
|
||||
pkg:
|
||||
builtins.elem (pkgs.lib.getName pkg) [
|
||||
"nvidia-settings"
|
||||
"nvidia-x11"
|
||||
"nordvpn"
|
||||
"hplip"
|
||||
];
|
||||
};
|
||||
|
||||
swapDevices = [
|
||||
{
|
||||
|
@ -5,19 +5,17 @@
|
||||
# Utilities
|
||||
../../modules/nixos/nvidia-support.nix
|
||||
../../modules/nixos/fingerprint.nix
|
||||
../../modules/nixos/apple-style.nix
|
||||
../../modules/nixos/bluetooth.nix
|
||||
../../modules/nixos/greetd.nix
|
||||
../../modules/nixos/audio.nix
|
||||
|
||||
# Apps/services
|
||||
# Apps + services
|
||||
../../modules/nixos/nordvpn.nix
|
||||
];
|
||||
|
||||
modules.apple-style.enable = true;
|
||||
modules.bluetooth.enable = true;
|
||||
modules.nvidia.enable = true;
|
||||
modules.nordvpn.enable = true;
|
||||
modules.nvidia.enable = true;
|
||||
modules.audio.enable = true;
|
||||
modules.fingerprint-fix = {
|
||||
enable = true;
|
||||
|
53
modules/home-manager/ags.nix
Normal file
53
modules/home-manager/ags.nix
Normal file
@ -0,0 +1,53 @@
|
||||
{ config, pkgs, lib, inputs, ... }:
|
||||
|
||||
{
|
||||
options.modules.ags = {
|
||||
enable = lib.mkEnableOption "Aylur's GTK Shell with optional Stylix support";
|
||||
full = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = "Enable all components (AstalBattery, AstalPowerProfiles etc.)";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.modules.ags.enable {
|
||||
programs.ags = {
|
||||
enable = true;
|
||||
extraPackages = if config.modules.ags.full then
|
||||
with inputs.ags.packages.${pkgs.system};
|
||||
[
|
||||
apps
|
||||
battery
|
||||
bluetooth
|
||||
greet
|
||||
hyprland
|
||||
mpris
|
||||
network
|
||||
notifd
|
||||
powerprofiles
|
||||
tray
|
||||
wireplumber
|
||||
] else [];
|
||||
};
|
||||
|
||||
home.file.".config/theme_colors.scss".text = if config.modules.stylix.enable
|
||||
then with config.lib.stylix.colors; ''
|
||||
$base00: #${base00};
|
||||
$base01: #${base01};
|
||||
$base02: #${base02};
|
||||
$base03: #${base03};
|
||||
$base04: #${base04};
|
||||
$base05: #${base05};
|
||||
$base06: #${base06};
|
||||
$base07: #${base07};
|
||||
$base08: #${base08};
|
||||
$base09: #${base09};
|
||||
$base0A: #${base0A};
|
||||
$base0B: #${base0B};
|
||||
$base0C: #${base0C};
|
||||
$base0D: #${base0D};
|
||||
$base0E: #${base0E};
|
||||
$base0F: #${base0F};
|
||||
'' else null;
|
||||
};
|
||||
}
|
35
modules/home-manager/apple-style.nix
Normal file
35
modules/home-manager/apple-style.nix
Normal file
@ -0,0 +1,35 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options.modules.apple-style.enable = lib.mkEnableOption "Enable Apple fonts and emojis";
|
||||
|
||||
config = lib.mkIf (config.modules.apple-style.enable && config.modules.stylix.enable) {
|
||||
stylix.fonts = {
|
||||
serif = {
|
||||
package = inputs.apple-fonts.packages.${pkgs.system}.sf-pro-nerd;
|
||||
name = "SFProDisplay Nerd Font";
|
||||
};
|
||||
|
||||
sansSerif = {
|
||||
package = inputs.apple-fonts.packages.${pkgs.system}.sf-pro-nerd;
|
||||
name = "SFProText Nerd Font";
|
||||
};
|
||||
|
||||
monospace = {
|
||||
package = inputs.apple-fonts.packages.${pkgs.system}.sf-mono-nerd;
|
||||
name = "SFMono Nerd Font";
|
||||
};
|
||||
|
||||
emoji = {
|
||||
package = inputs.apple-emoji.packages.${pkgs.system}.apple-emoji-nix;
|
||||
name = "Apple Color Emoji";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
@ -5,43 +5,57 @@
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
let
|
||||
inherit (pkgs.lib) optionalAttrs;
|
||||
|
||||
home-manager = "${pkgs.home-manager}/bin/home-manager";
|
||||
grep = lib.getExe' pkgs.toybox "grep";
|
||||
head = lib.getExe' pkgs.toybox "head";
|
||||
find = lib.getExe' pkgs.toybox "find";
|
||||
|
||||
find-generation = ''
|
||||
for line in $(${home-manager} generations | ${grep} -o '/.*')
|
||||
do
|
||||
res=$(${find} $line | ${grep} specialisation | ${head} -1)
|
||||
output=$?
|
||||
|
||||
if [[ $output -eq 0 ]] && [[ $res != "" ]]; then
|
||||
echo $res
|
||||
exit
|
||||
fi
|
||||
done
|
||||
'';
|
||||
|
||||
switch-theme = theme: "$(${find-generation})/${theme}/activate";
|
||||
in {
|
||||
options.modules.darkman = {
|
||||
enable = lib.mkEnableOption "Darkman service and integration";
|
||||
customLightModeScript = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
type = lib.types.nullOr lib.types.str;
|
||||
default = null;
|
||||
description = "Path to custom light mode script";
|
||||
};
|
||||
|
||||
customDarkModeScript = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
type = lib.types.nullOr lib.types.str;
|
||||
default = null;
|
||||
description = "Path to custom dark mode script";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.modules.darkman.enable {
|
||||
home.packages = with pkgs; [ dconf ];
|
||||
|
||||
services.darkman = {
|
||||
enable = true;
|
||||
darkModeScripts = {
|
||||
theme = ''
|
||||
${pkgs.dconf}/bin/dconf write\
|
||||
/org/gnome/desktop/interface/color-scheme "'prefer-dark'"
|
||||
'';
|
||||
|
||||
darkModeScripts = optionalAttrs (config.modules.darkman.customDarkModeScript != null) {
|
||||
custom = config.modules.darkman.customDarkModeScript;
|
||||
pywalfox = "command -v pywalfox &>/dev/null && pywalfox dark && pywalfox update";
|
||||
} // optionalAttrs (config.modules.stylix.enable) {
|
||||
stylix = switch-theme "dark";
|
||||
};
|
||||
|
||||
lightModeScripts = {
|
||||
theme = ''
|
||||
${pkgs.dconf}/bin/dconf write\
|
||||
/org/gnome/desktop/interface/color-scheme "'prefer-light'"
|
||||
'';
|
||||
|
||||
lightModeScripts = optionalAttrs (config.modules.darkman.customLightModeScript != null) {
|
||||
custom = config.modules.darkman.customLightModeScript;
|
||||
pywalfox = "command -v pywalfox &>/dev/null && pywalfox light && pywalfox update";
|
||||
} // optionalAttrs (config.modules.stylix.enable) {
|
||||
stylix = switch-theme "light";
|
||||
};
|
||||
|
||||
settings.usegeoclue = true;
|
||||
|
@ -34,10 +34,7 @@
|
||||
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
interactiveShellInit = ''
|
||||
set fish_greeting
|
||||
cat ~/.cache/wal/sequences
|
||||
'';
|
||||
interactiveShellInit = "set fish_greeting";
|
||||
|
||||
shellAliases = lib.mkIf config.modules.fish.enableDefaultAliases {
|
||||
".." = "cd ..";
|
||||
|
62
modules/home-manager/stylix.nix
Normal file
62
modules/home-manager/stylix.nix
Normal file
@ -0,0 +1,62 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options.modules.stylix = {
|
||||
enable = lib.mkEnableOption "Whether to enable Stylix, a theme manager for NixOS";
|
||||
setupCursors = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = "Whether to setup cursors by default";
|
||||
};
|
||||
|
||||
lightWallpaper = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
description = "Path to light theme desktop wallpaper";
|
||||
};
|
||||
|
||||
darkWallpaper = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
description = "Path to dark theme desktop wallpaper";
|
||||
};
|
||||
};
|
||||
|
||||
imports = [
|
||||
inputs.stylix.homeManagerModules.stylix
|
||||
];
|
||||
|
||||
config = lib.mkIf config.modules.stylix.enable {
|
||||
stylix = {
|
||||
enable = true;
|
||||
polarity = lib.mkDefault "light";
|
||||
|
||||
image = lib.mkDefault config.modules.stylix.lightWallpaper;
|
||||
base16Scheme = lib.mkDefault "${pkgs.base16-schemes}/share/themes/atelier-cave.yaml";
|
||||
|
||||
cursor = lib.mkIf config.modules.stylix.setupCursors {
|
||||
name = "Bibata-Modern-Classic";
|
||||
package = pkgs.bibata-cursors;
|
||||
size = 24;
|
||||
};
|
||||
};
|
||||
|
||||
specialisation = {
|
||||
light.configuration.stylix = {
|
||||
polarity = "light";
|
||||
image = config.modules.stylix.lightWallpaper;
|
||||
base16Scheme = "${pkgs.base16-schemes}/share/themes/atelier-cave-light.yaml";
|
||||
};
|
||||
|
||||
dark.configuration.stylix = {
|
||||
polarity = "dark";
|
||||
image = config.modules.stylix.darkWallpaper;
|
||||
base16Scheme = "${pkgs.base16-schemes}/share/themes/atelier-cave.yaml";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
@ -1,35 +0,0 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options.modules.apple-style.enable = lib.mkEnableOption "Enable Apple fonts and emojis";
|
||||
|
||||
config = lib.mkIf config.modules.apple-style.enable {
|
||||
fonts.fontDir.enable = true;
|
||||
fonts.packages = [
|
||||
inputs.apple-emoji.packages.${pkgs.system}.apple-emoji-nix
|
||||
inputs.apple-fonts.packages.${pkgs.system}.sf-pro-nerd
|
||||
inputs.apple-fonts.packages.${pkgs.system}.sf-mono-nerd
|
||||
];
|
||||
|
||||
fonts.fontconfig.enable = true;
|
||||
fonts.enableDefaultPackages = false;
|
||||
fonts.fontconfig.defaultFonts = {
|
||||
sansSerif = [
|
||||
"SFProText Nerd Font"
|
||||
"SFProDisplay Nerd Font"
|
||||
];
|
||||
serif = [
|
||||
"SFProText Nerd Font"
|
||||
"SFProDisplay Nerd Font"
|
||||
];
|
||||
monospace = [ "SFMono Nerd Font" ];
|
||||
emoji = [ "Apple Color Emoji" ];
|
||||
};
|
||||
};
|
||||
}
|
@ -6,7 +6,9 @@
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
let
|
||||
module = inputs.fingerprint-sensor.nixosModules."06cb-009a-fingerprint-sensor";
|
||||
in {
|
||||
options.modules.fingerprint-fix = {
|
||||
enable = lib.mkEnableOption "Enable support for fingerprint for P51S-like ThinkPads.";
|
||||
calibDataFile = lib.mkOption {
|
||||
@ -14,10 +16,7 @@
|
||||
};
|
||||
};
|
||||
|
||||
imports = [
|
||||
inputs.fingerprint-sensor.nixosModules."06cb-009a-fingerprint-sensor"
|
||||
];
|
||||
|
||||
imports = [ module ];
|
||||
config = lib.mkIf config.modules.fingerprint-fix.enable {
|
||||
# Needed because we're getting TLS error with open-fprintd-resume
|
||||
systemd.services.validity-restart =
|
||||
|
@ -4,14 +4,21 @@
|
||||
options.modules.nvidia.enable = lib.mkEnableOption "Enable NVIDIA kernel and modprobe configurations.";
|
||||
|
||||
config = lib.mkIf config.modules.nvidia.enable {
|
||||
boot.kernelModules = [
|
||||
"nvidia"
|
||||
"nvidia_modeset"
|
||||
"nvidia_uvm"
|
||||
"nvidia_drm"
|
||||
];
|
||||
boot.extraModprobeConfig = ''
|
||||
options nvidia NVreg_OpenRmEnableUnsupportedGpus=1
|
||||
'';
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
services.xserver.videoDrivers = ["nvidia"];
|
||||
|
||||
hardware.nvidia = {
|
||||
modesetting.enable = true;
|
||||
powerManagement.enable = false;
|
||||
powerManagement.finegrained = false;
|
||||
|
||||
open = false;
|
||||
nvidiaSettings = true;
|
||||
|
||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -1,13 +1,12 @@
|
||||
{
|
||||
self,
|
||||
impurity,
|
||||
inputs,
|
||||
impurity,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
home-manager = {
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
backupFileExtension = "bak";
|
||||
extraSpecialArgs = {
|
||||
inherit inputs self impurity;
|
||||
|
@ -1,24 +1,36 @@
|
||||
{ pkgs, ... }:
|
||||
{ pkgs, inputs, ... }:
|
||||
|
||||
let
|
||||
username = "sadorowo";
|
||||
homeDirectory = "/home/${username}";
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
./packages.nix
|
||||
./programs.nix
|
||||
./theme.nix
|
||||
];
|
||||
imports = [ ./modules.nix ];
|
||||
|
||||
home = {
|
||||
inherit username homeDirectory;
|
||||
|
||||
packages = import ./packages.nix { inherit pkgs inputs; };
|
||||
sessionVariables = {
|
||||
NIXOS_OZONE_WL = "1";
|
||||
TZ = "Europe/Warsaw";
|
||||
};
|
||||
};
|
||||
|
||||
nixpkgs.config = {
|
||||
permittedInsecurePackages = [
|
||||
"fluffychat-linux-1.26.0"
|
||||
"olm-3.2.16"
|
||||
];
|
||||
|
||||
allowUnfreePredicate =
|
||||
pkg:
|
||||
builtins.elem (pkgs.lib.getName pkg) [
|
||||
"davinci-resolve"
|
||||
"anydesk"
|
||||
];
|
||||
};
|
||||
|
||||
programs.home-manager.enable = true;
|
||||
home.stateVersion = "24.11";
|
||||
}
|
||||
|
@ -2,12 +2,15 @@
|
||||
|
||||
{
|
||||
imports = [
|
||||
# DEs
|
||||
# DE + style
|
||||
../../modules/desktop-environments/hyprland.nix
|
||||
../../modules/home-manager/apple-style.nix
|
||||
../../modules/home-manager/stylix.nix
|
||||
|
||||
# Utilities + apps
|
||||
../../modules/home-manager/darkman.nix
|
||||
../../modules/home-manager/fish.nix
|
||||
../../modules/home-manager/ags.nix
|
||||
|
||||
# Home Manager modules
|
||||
inputs.ags.homeManagerModules.default
|
||||
@ -38,43 +41,28 @@
|
||||
};
|
||||
};
|
||||
|
||||
modules.darkman = {
|
||||
modules.stylix = {
|
||||
enable = true;
|
||||
customLightModeScript = "$HOME/.config/hypr/scripts/random-wallpaper.sh";
|
||||
customDarkModeScript = "$HOME/.config/hypr/scripts/random-wallpaper.sh";
|
||||
lightWallpaper = ./wallpapers/light.jpg;
|
||||
darkWallpaper = ./wallpapers/dark.jpg;
|
||||
};
|
||||
|
||||
stylix.targets.firefox.profileNames = ["default"];
|
||||
|
||||
modules.ags = {
|
||||
enable = true;
|
||||
full = true;
|
||||
};
|
||||
|
||||
modules.darkman.enable = true;
|
||||
modules.apple-style.enable = true;
|
||||
|
||||
modules.fish = {
|
||||
enable = true;
|
||||
enableStarship = true;
|
||||
functions = import ./fish-functions.nix;
|
||||
};
|
||||
|
||||
programs.pywal.enable = true;
|
||||
programs.ags = {
|
||||
enable = true;
|
||||
extraPackages =
|
||||
with inputs.ags.packages.${pkgs.system};
|
||||
[
|
||||
apps
|
||||
battery
|
||||
bluetooth
|
||||
greet
|
||||
hyprland
|
||||
mpris
|
||||
network
|
||||
notifd
|
||||
powerprofiles
|
||||
tray
|
||||
wireplumber
|
||||
]
|
||||
++ [
|
||||
pkgs.dart-sass
|
||||
pkgs.fzf
|
||||
pkgs.icon-library
|
||||
];
|
||||
};
|
||||
|
||||
programs.obs-studio = {
|
||||
enable = true;
|
||||
plugins = with pkgs.obs-studio-plugins; [
|
||||
@ -91,7 +79,7 @@
|
||||
programs.vscode = {
|
||||
enable = true;
|
||||
package = pkgs.vscodium;
|
||||
extensions = with pkgs.vscode-extensions; [
|
||||
profiles.default.extensions = with pkgs.vscode-extensions; [
|
||||
rust-lang.rust-analyzer
|
||||
bbenoist.nix
|
||||
];
|
@ -1,10 +1,6 @@
|
||||
{ pkgs, inputs, ... }:
|
||||
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
pywal
|
||||
pywalfox-native
|
||||
|
||||
with pkgs; [
|
||||
(python3.withPackages (
|
||||
py: with py; [
|
||||
pywayland
|
||||
@ -24,7 +20,6 @@
|
||||
libreoffice-qt6-fresh
|
||||
gimp
|
||||
git
|
||||
fprintd
|
||||
cups
|
||||
anydesk
|
||||
fastfetch
|
||||
@ -36,5 +31,4 @@
|
||||
davinci-resolve
|
||||
mpv
|
||||
sshfs
|
||||
];
|
||||
}
|
||||
]
|
||||
|
@ -1,39 +0,0 @@
|
||||
{ pkgs, inputs, ... }:
|
||||
|
||||
let
|
||||
nerdfonts = (
|
||||
pkgs.nerdfonts.override {
|
||||
fonts = [
|
||||
"CascadiaCode"
|
||||
"JetBrainsMono"
|
||||
"FiraCode"
|
||||
"SpaceMono"
|
||||
];
|
||||
}
|
||||
);
|
||||
|
||||
cursor-theme = "Bibata-Modern-Classic";
|
||||
cursor-pkg = pkgs.bibata-cursors;
|
||||
in
|
||||
{
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
material-symbols
|
||||
noto-fonts
|
||||
noto-fonts-cjk-sans
|
||||
bibata-cursors
|
||||
];
|
||||
|
||||
sessionVariables = {
|
||||
XCURSOR_THEME = cursor-theme;
|
||||
XCURSOR_SIZE = "24";
|
||||
};
|
||||
|
||||
pointerCursor = {
|
||||
package = cursor-pkg;
|
||||
name = cursor-theme;
|
||||
size = 24;
|
||||
gtk.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
BIN
profiles/hulk/wallpapers/dark.jpg
Normal file
BIN
profiles/hulk/wallpapers/dark.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 719 KiB |
BIN
profiles/hulk/wallpapers/light.jpg
Normal file
BIN
profiles/hulk/wallpapers/light.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 179 KiB |
Loading…
x
Reference in New Issue
Block a user