Compare commits

..

No commits in common. "40b1e9ff23aaa5f555420dd22414c3f137a02cfe" and "f87136fc942ea1beb32965d67802d636e6c6a1a3" have entirely different histories.

15 changed files with 405 additions and 373 deletions

357
flake.lock generated
View file

@ -1,12 +1,126 @@
{ {
"nodes": { "nodes": {
"base16": {
"inputs": {
"fromYaml": "fromYaml"
},
"locked": {
"lastModified": 1708890466,
"narHash": "sha256-LlrC09LoPi8OPYOGPXegD72v+//VapgAqhbOFS3i8sc=",
"owner": "SenchoPens",
"repo": "base16.nix",
"rev": "665b3c6748534eb766c777298721cece9453fdae",
"type": "github"
},
"original": {
"owner": "SenchoPens",
"repo": "base16.nix",
"type": "github"
}
},
"base16-fish": {
"flake": false,
"locked": {
"lastModified": 1622559957,
"narHash": "sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA=",
"owner": "tomyun",
"repo": "base16-fish",
"rev": "2f6dd973a9075dabccd26f1cded09508180bf5fe",
"type": "github"
},
"original": {
"owner": "tomyun",
"repo": "base16-fish",
"type": "github"
}
},
"base16-foot": {
"flake": false,
"locked": {
"lastModified": 1696725948,
"narHash": "sha256-65bz2bUL/yzZ1c8/GQASnoiGwaF8DczlxJtzik1c0AU=",
"owner": "tinted-theming",
"repo": "base16-foot",
"rev": "eedbcfa30de0a4baa03e99f5e3ceb5535c2755ce",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-foot",
"type": "github"
}
},
"base16-helix": {
"flake": false,
"locked": {
"lastModified": 1720809814,
"narHash": "sha256-numb3xigRGnr/deF7wdjBwVg7fpbTH7reFDkJ75AJkY=",
"owner": "tinted-theming",
"repo": "base16-helix",
"rev": "34f41987bec14c0f3f6b2155c19787b1f6489625",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-helix",
"type": "github"
}
},
"base16-kitty": {
"flake": false,
"locked": {
"lastModified": 1665001328,
"narHash": "sha256-aRaizTYPpuWEcvoYE9U+YRX+Wsc8+iG0guQJbvxEdJY=",
"owner": "kdrag0n",
"repo": "base16-kitty",
"rev": "06bb401fa9a0ffb84365905ffbb959ae5bf40805",
"type": "github"
},
"original": {
"owner": "kdrag0n",
"repo": "base16-kitty",
"type": "github"
}
},
"base16-tmux": {
"flake": false,
"locked": {
"lastModified": 1696725902,
"narHash": "sha256-wDPg5elZPcQpu7Df0lI5O8Jv4A3T6jUQIVg63KDU+3Q=",
"owner": "tinted-theming",
"repo": "base16-tmux",
"rev": "c02050bebb60dbb20cb433cd4d8ce668ecc11ba7",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-tmux",
"type": "github"
}
},
"base16-vim": {
"flake": false,
"locked": {
"lastModified": 1716150083,
"narHash": "sha256-ZMhnNmw34ogE5rJZrjRv5MtG3WaqKd60ds2VXvT6hEc=",
"owner": "tinted-theming",
"repo": "base16-vim",
"rev": "6e955d704d046b0dc3e5c2d68a2a6eeffd2b5d3d",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-vim",
"type": "github"
}
},
"catppuccin": { "catppuccin": {
"locked": { "locked": {
"lastModified": 1731232837, "lastModified": 1730458408,
"narHash": "sha256-0aIwr/RC/oe7rYkfJb47xjdEQDSNcqpFGsEa+EPlDEs=", "narHash": "sha256-JQ+SphQn13bdibKUrBBBznYehXX4xJrxD1ifBp6vSWw=",
"owner": "catppuccin", "owner": "catppuccin",
"repo": "nix", "repo": "nix",
"rev": "32359bf226fe874d3b7a0a5753d291a4da9616fe", "rev": "191fbf2d81a63fad8f62f1233c0051f09b75d0ad",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -21,7 +135,6 @@
"flake-utils": [ "flake-utils": [
"flake-utils" "flake-utils"
], ],
"nix-github-actions": "nix-github-actions",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
@ -30,11 +143,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1731527002, "lastModified": 1728263678,
"narHash": "sha256-dI9I6suECoIAmbS4xcrqF8r2pbmed8WWm5LIF1yWPw8=", "narHash": "sha256-gyUVsPAWY9AgVKjrNPoowrIr5BvK4gI0UkDXvv8iSxA=",
"owner": "zhaofengli", "owner": "zhaofengli",
"repo": "colmena", "repo": "colmena",
"rev": "e3ad42138015fcdf2524518dd564a13145c72ea1", "rev": "b0a62f234fae02a006123e661ff70e62af16106b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -111,6 +224,22 @@
"type": "github" "type": "github"
} }
}, },
"flake-compat_4": {
"flake": false,
"locked": {
"lastModified": 1673956053,
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": { "flake-parts": {
"inputs": { "inputs": {
"nixpkgs-lib": "nixpkgs-lib" "nixpkgs-lib": "nixpkgs-lib"
@ -156,11 +285,11 @@
"systems": "systems" "systems": "systems"
}, },
"locked": { "locked": {
"lastModified": 1731533236, "lastModified": 1726560853,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -187,6 +316,43 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils_3": {
"inputs": {
"systems": [
"stylix",
"systems"
]
},
"locked": {
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"fromYaml": {
"flake": false,
"locked": {
"lastModified": 1689549921,
"narHash": "sha256-iX0pk/uB019TdBGlaJEWvBCfydT6sRq+eDcGPifVsCM=",
"owner": "SenchoPens",
"repo": "fromYaml",
"rev": "11fbbbfb32e3289d3c631e0134a23854e7865c84",
"type": "github"
},
"original": {
"owner": "SenchoPens",
"repo": "fromYaml",
"type": "github"
}
},
"git-hooks": { "git-hooks": {
"inputs": { "inputs": {
"flake-compat": [ "flake-compat": [
@ -243,6 +409,23 @@
"type": "github" "type": "github"
} }
}, },
"gnome-shell": {
"flake": false,
"locked": {
"lastModified": 1713702291,
"narHash": "sha256-zYP1ehjtcV8fo+c+JFfkAqktZ384Y+y779fzmR9lQAU=",
"owner": "GNOME",
"repo": "gnome-shell",
"rev": "0d0aadf013f78a7f7f1dc984d0d812971864b934",
"type": "github"
},
"original": {
"owner": "GNOME",
"ref": "46.1",
"repo": "gnome-shell",
"type": "github"
}
},
"home-manager": { "home-manager": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -250,11 +433,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1731535640, "lastModified": 1730837930,
"narHash": "sha256-2EckCJn4wxran/TsRiCOFcmVpep2m9EBKl99NBh2GnM=", "narHash": "sha256-0kZL4m+bKBJUBQse0HanewWO0g8hDdCvBhudzxgehqc=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "35b055009afd0107b69c286fca34d2ad98940d57", "rev": "2f607e07f3ac7e53541120536708e824acccfaa8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -285,6 +468,27 @@
"type": "github" "type": "github"
} }
}, },
"home-manager_3": {
"inputs": {
"nixpkgs": [
"stylix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1724435763,
"narHash": "sha256-UNky3lJNGQtUEXT2OY8gMxejakSWPTfWKvpFkpFlAfM=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "c2cd2a52e02f1dfa1c88f95abeb89298d46023be",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"ixx": { "ixx": {
"inputs": { "inputs": {
"flake-utils": [ "flake-utils": [
@ -359,27 +563,6 @@
"type": "github" "type": "github"
} }
}, },
"nix-github-actions": {
"inputs": {
"nixpkgs": [
"colmena",
"nixpkgs"
]
},
"locked": {
"lastModified": 1729742964,
"narHash": "sha256-B4mzTcQ0FZHdpeWcpDYPERtyjJd/NIuaQ9+BV1h+MpA=",
"owner": "nix-community",
"repo": "nix-github-actions",
"rev": "e04df33f62cdcf93d73e9a04142464753a16db67",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nix-github-actions",
"type": "github"
}
},
"nix-index-database": { "nix-index-database": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -387,11 +570,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1731209121, "lastModified": 1730604744,
"narHash": "sha256-BF7FBh1hIYPDihdUlImHGsQzaJZVLLfYqfDx41wjuF0=", "narHash": "sha256-/MK6QU4iOozJ4oHTfZipGtOgaT/uy/Jm4foCqHQeYR4=",
"owner": "Mic92", "owner": "Mic92",
"repo": "nix-index-database", "repo": "nix-index-database",
"rev": "896019f04b22ce5db4c0ee4f89978694f44345c3", "rev": "cc2ddbf2df8ef7cc933543b1b42b845ee4772318",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -411,11 +594,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1731548914, "lastModified": 1730944043,
"narHash": "sha256-UtYkHq8OdZcz2Q/r7gh+3HFGVgX9AFfYDrMjAVO6sj4=", "narHash": "sha256-DIYTHa57pQQc9ARiMpJWYkaoiTaQPLH7Y4qK0J10Khk=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nix-vscode-extensions", "repo": "nix-vscode-extensions",
"rev": "00e11784c89ecd236ff045acd7a447e0fe5b80df", "rev": "0a959b25ff573f079ed032f88d8c988561b96a96",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -426,11 +609,11 @@
}, },
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1731403644, "lastModified": 1730919458,
"narHash": "sha256-T9V7CTucjRZ4Qc6pUEV/kpgNGzQbHWfGcfK6JJLfUeI=", "narHash": "sha256-yMO0T0QJlmT/x4HEyvrCyigGrdYfIXX3e5gWqB64wLg=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "f6581f1c3b137086e42a08a906bdada63045f991", "rev": "e1cc1f6483393634aee94514186d21a4871e78d7",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -470,11 +653,11 @@
}, },
"nixpkgs-stable": { "nixpkgs-stable": {
"locked": { "locked": {
"lastModified": 1731386116, "lastModified": 1730741070,
"narHash": "sha256-lKA770aUmjPHdTaJWnP3yQ9OI1TigenUqVC3wweqZuI=", "narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "689fed12a013f56d4c4d3f612489634267d86529", "rev": "d063c1dd113c91ab27959ba540c0d9753409edf3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -502,11 +685,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1731570228, "lastModified": 1731119255,
"narHash": "sha256-mLuo8lZViwYdQQkA+hs6kTCPzAw1VR6O0jtXS1eC+Yc=", "narHash": "sha256-rDHKmBBUu7XSK+68yXEI9TJVc2TaQH7SVieP9pH3h7k=",
"owner": "xinyangli", "owner": "xinyangli",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "8cb7e7a9ead084be01f290e26602f40815ea36fe", "rev": "ca12ccda69b37abe3ea78dab388b0bfe638eb743",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -516,6 +699,22 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_3": {
"locked": {
"lastModified": 1725194671,
"narHash": "sha256-tLGCFEFTB5TaOKkpfw3iYT9dnk4awTP/q4w+ROpMfuw=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "b833ff01a0d694b910daca6e2ff4a3f26dee478c",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixvim": { "nixvim": {
"inputs": { "inputs": {
"devshell": "devshell", "devshell": "devshell",
@ -544,11 +743,11 @@
}, },
"nur": { "nur": {
"locked": { "locked": {
"lastModified": 1731569820, "lastModified": 1730959878,
"narHash": "sha256-5i2hiBMnhqLVXpnmPwvLJKB5Tn816Z+9UmC5EcL2av4=", "narHash": "sha256-UZ6oSptjE04ooORHvvR+kiGnr/nhzWgYwGryxUkKAv0=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NUR", "repo": "NUR",
"rev": "6e804f7059440328e36f002f6eead1fd9b8eef43", "rev": "bc4d2a3b71c75d81cc247b1bf991b63f75358004",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -594,7 +793,8 @@
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs_2",
"nixpkgs-stable": "nixpkgs-stable", "nixpkgs-stable": "nixpkgs-stable",
"nur": "nur", "nur": "nur",
"sops-nix": "sops-nix" "sops-nix": "sops-nix",
"stylix": "stylix"
} }
}, },
"sops-nix": { "sops-nix": {
@ -605,11 +805,11 @@
"nixpkgs-stable": "nixpkgs-stable_2" "nixpkgs-stable": "nixpkgs-stable_2"
}, },
"locked": { "locked": {
"lastModified": 1731364708, "lastModified": 1730883027,
"narHash": "sha256-HC0anOL+KmUQ2hdRl0AtunbAckasxrkn4VLmxbW/WaA=", "narHash": "sha256-pvXMOJIqRW0trsW+FzRMl6d5PbsM4rWfD5lcKCOrrwI=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "4c91d52db103e757fc25b58998b0576ae702d659", "rev": "c5ae1e214ff935f2d3593187a131becb289ea639",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -618,6 +818,36 @@
"type": "github" "type": "github"
} }
}, },
"stylix": {
"inputs": {
"base16": "base16",
"base16-fish": "base16-fish",
"base16-foot": "base16-foot",
"base16-helix": "base16-helix",
"base16-kitty": "base16-kitty",
"base16-tmux": "base16-tmux",
"base16-vim": "base16-vim",
"flake-compat": "flake-compat_4",
"flake-utils": "flake-utils_3",
"gnome-shell": "gnome-shell",
"home-manager": "home-manager_3",
"nixpkgs": "nixpkgs_3",
"systems": "systems_3"
},
"locked": {
"lastModified": 1725416430,
"narHash": "sha256-DkF49DlcaZHV9v3m5ctQnC9qNqsEdfNhwjQArx5Q+Zw=",
"owner": "xinyangli",
"repo": "stylix",
"rev": "7aad490478518af03367dabfb5811b3f87ea93a1",
"type": "github"
},
"original": {
"owner": "xinyangli",
"repo": "stylix",
"type": "github"
}
},
"systems": { "systems": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1681028828,
@ -648,6 +878,21 @@
"type": "github" "type": "github"
} }
}, },
"systems_3": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"treefmt-nix": { "treefmt-nix": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [

View file

@ -52,6 +52,12 @@
catppuccin = { catppuccin = {
url = "github:catppuccin/nix"; url = "github:catppuccin/nix";
}; };
stylix = {
url = "github:xinyangli/stylix";
# inputs.nixpkgs.follows = "nixpkgs";
# inputs.home-manager.follows = "home-manager";
};
}; };
outputs = outputs =
@ -135,7 +141,6 @@
modules = [ modules = [
self.nixosModules.default self.nixosModules.default
nur.nixosModules.nur nur.nixosModules.nur
catppuccin.nixosModules.catppuccin
] ++ modules; ] ++ modules;
}; };
in in

View file

@ -36,21 +36,13 @@ in
home.packages = with pkgs; [ home.packages = with pkgs; [
thunderbird thunderbird
remmina remmina
qq
wechat-uos
]; ];
# Theme # Theme
catppuccin = { catppuccin = {
enable = true; enable = true;
accent = "peach";
flavor = "mocha"; flavor = "mocha";
}; };
# Missing from catppuccin module
services.swaync.style = pkgs.fetchurl {
url = "https://github.com/catppuccin/swaync/releases/download/v0.2.3/mocha.css";
hash = "sha256-Hie/vDt15nGCy4XWERGy1tUIecROw17GOoasT97kIfc=";
};
xdg.enable = true; xdg.enable = true;
@ -92,7 +84,6 @@ in
zellij = { zellij = {
enable = true; enable = true;
}; };
gui = { gui = {
niri.enable = true; niri.enable = true;
waybar.enable = true; waybar.enable = true;

View file

@ -4,9 +4,7 @@
lib, lib,
... ...
}: }:
let
inherit (lib) mkForce getExe;
in
{ {
imports = [ imports = [
# Include the results of the hardware scan. # Include the results of the hardware scan.
@ -16,6 +14,7 @@ in
]; ];
commonSettings = { commonSettings = {
auth.enable = true;
nix = { nix = {
enableMirrors = true; enableMirrors = true;
signing.enable = true; signing.enable = true;
@ -44,7 +43,7 @@ in
# TPM2TOOLS_TCTI and TPM2_PKCS11_TCTI env variables # TPM2TOOLS_TCTI and TPM2_PKCS11_TCTI env variables
tctiEnvironment.enable = true; tctiEnvironment.enable = true;
}; };
# services.gnome.gnome-keyring.enable = lib.mkForce false; services.gnome.gnome-keyring.enable = lib.mkForce false;
security.pam.services.login.enableGnomeKeyring = lib.mkForce false; security.pam.services.login.enableGnomeKeyring = lib.mkForce false;
services.ssh-tpm-agent.enable = true; services.ssh-tpm-agent.enable = true;
@ -99,49 +98,14 @@ in
LC_TIME = "en_US.utf8"; LC_TIME = "en_US.utf8";
}; };
# ====== GUI ====== services.displayManager = {
enable = true;
defaultSession = "niri";
};
programs.niri.enable = true; programs.niri.enable = true;
environment.sessionVariables.NIXOS_OZONE_WL = "1";
security.pam.services.gtklock = { }; # Required by gtklock
catppuccin = { services.xserver.displayManager.gdm.enable = true;
enable = true;
accent = "rosewater";
flavor = "mocha";
};
xdg.portal = {
enable = true;
extraPortals = [
pkgs.xdg-desktop-portal-gtk
pkgs.xdg-desktop-portal-gnome
];
configPackages = [ pkgs.niri ];
};
systemd.user.services.xdg-desktop-portal-gtk.after = [ "graphical-session.target" ];
services.greetd =
let
niri-login-config = pkgs.writeText "niri-login-config.kdl" ''
animations {
off
}
hotkey-overlay {
skip-at-startup
}
'';
in
{
enable = true;
vt = 1;
settings = {
default_session = {
command = "${pkgs.dbus}/bin/dbus-run-session -- ${getExe pkgs.niri} -c ${niri-login-config} -- ${getExe pkgs.greetd.gtkgreet} -l -c niri-session -s ${pkgs.magnetic-catppuccin-gtk}/share/themes/Catppuccin-GTK-Dark/gtk-3.0/gtk.css";
};
};
};
# Keyboard mapping on internal keyboard # Keyboard mapping on internal keyboard
services.keyd = { services.keyd = {
@ -265,6 +229,7 @@ in
# IM # IM
element-desktop element-desktop
tdesktop tdesktop
qq
# Password manager # Password manager
bitwarden bitwarden
@ -335,6 +300,8 @@ in
exporters.blackbox.enable = true; exporters.blackbox.enable = true;
}; };
custom.stylix.enable = false;
services.ollama = { services.ollama = {
enable = true; enable = true;
acceleration = "cuda"; acceleration = "cuda";
@ -344,6 +311,7 @@ in
services.gvfs.enable = true; services.gvfs.enable = true;
services.flatpak.enable = true; services.flatpak.enable = true;
xdg.portal.enable = true;
# Fonts # Fonts
fonts = { fonts = {

View file

@ -1,4 +1,4 @@
{ config, pkgs, lib, ... }: { config, pkgs, ... }:
{ {
imports = [ ]; imports = [ ];
@ -10,6 +10,7 @@
dns = "systemd-resolved"; dns = "systemd-resolved";
}; };
}; };
systemd.services.NetworkManager-wait-online.enable = false;
services.resolved = { services.resolved = {
enable = true; enable = true;
@ -24,7 +25,6 @@
services.dae.enable = true; services.dae.enable = true;
services.dae.configFile = "/var/lib/dae/config.dae"; services.dae.configFile = "/var/lib/dae/config.dae";
systemd.services.dae.after = lib.mkIf (config.networking.networkmanager.enable) [ "NetworkManager-wait-online.service" ];
custom.sing-box = { custom.sing-box = {
enable = false; enable = false;
@ -46,13 +46,14 @@
# Use nftables to manager firewall # Use nftables to manager firewall
networking.nftables.enable = true; networking.nftables.enable = true;
# Add gsconnect, open firewall
programs.kdeconnect = {
enable = true;
package = pkgs.gnomeExtensions.gsconnect;
};
programs.wireshark = { programs.wireshark = {
enable = true; enable = true;
package = pkgs.wireshark-qt; package = pkgs.wireshark-qt;
}; };
programs.kdeconnect = {
enable = true;
package = pkgs.valent;
};
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 655 KiB

View file

@ -1,20 +1,7 @@
{ config, lib, ... }:
let
inherit (lib) mkOption types;
cfg = config.custom-hm.gui;
in
{ {
imports = [ imports = [
./niri.nix ./niri.nix
./fuzzel.nix ./fuzzel.nix
./gtklock.nix
./waybar.nix ./waybar.nix
]; ];
options.custom-hm.gui = {
wallpaper = mkOption {
type = types.path;
default = ./bwmountains.jpg;
};
};
} }

View file

@ -1,9 +1,4 @@
{ { config, lib, ... }:
config,
pkgs,
lib,
...
}:
let let
inherit (lib) mkIf mkEnableOption; inherit (lib) mkIf mkEnableOption;
cfg = config.custom-hm.gui.fuzzel; cfg = config.custom-hm.gui.fuzzel;
@ -14,28 +9,6 @@ in
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
programs.fuzzel = { programs.fuzzel.enable = true;
enable = true;
settings = {
main = {
fields = "filename,name,exec,generic";
y-margin = 30;
width = 40;
font = "Ubuntu";
use-bold = true;
line-height = 30;
};
};
};
home.packages = with pkgs; [
networkmanager_dmenu
networkmanagerapplet
];
xdg.configFile."networkmanager-dmenu/config.ini".text = ''
[dmenu]
dmenu_command = fuzzel --dmenu
wifi_chars =
wifi_icons = 󰤯󰤟󰤢󰤥󰤨
'';
}; };
} }

View file

@ -1,128 +0,0 @@
# modified from https://github.com/isabelroses/dotfiles/blob/2fd4d2d0cb8254cad5ce4b089d81114e1b88ad02/modules/extra/home-manager/gtklock.nix
{
lib,
pkgs,
config,
...
}:
let
cfg = config.custom-hm.gui.gtklock;
inherit (lib.modules) mkIf;
inherit (lib.options)
mkOption
mkEnableOption
mkPackageOption
literalExpression
;
inherit (lib.strings) optionalString concatStringsSep;
inherit (lib.lists) optionals;
inherit (lib.types)
oneOf
str
path
listOf
either
package
nullOr
attrs
;
inherit (lib.generators) toINI;
# the main config includes two very niche options: style (which takes a path) and modules, which takes a list of module paths
# concatted by ";"
# for type checking purposes, I prefer templating the main section of the config and let the user safely choose options
# extraConfig takes an attrset, and converts it to the correct INI format - it's mostly just strings and integers, so that's fine
baseConfig = ''
[main]
${optionalString (cfg.config.gtk-theme != "") "gtk-theme=${cfg.config.gtk-theme}"}
${optionalString (cfg.config.style != "") "style=${cfg.config.style}"}
${optionalString (cfg.config.modules != [ ]) "modules=${concatStringsSep ";" cfg.config.modules}"}
'';
finalConfig = baseConfig + optionals (cfg.extraConfig != null) (toINI { } cfg.extraConfig);
in
{
options.custom-hm.gui.gtklock = {
enable = mkEnableOption "GTK-based lockscreen for Wayland";
package = mkPackageOption pkgs "gtklock" { };
config = {
gtk-theme = mkOption {
type = str;
default = "";
description = ''
GTK theme to use for gtklock.
'';
example = "Adwaita-dark";
};
style = mkOption {
type = oneOf [
str
path
];
default = pkgs.writeText "gtklock-style.css" ''
window {
background-image: url("${config.custom-hm.gui.wallpaper}");
background-size: cover;
background-repeat: no-repeat;
background-position: center;
}
'';
description = ''
The css file to be used for gtklock.
'';
example = literalExpression ''
pkgs.writeText "gtklock-style.css" '''
window {
background-size: cover;
background-repeat: no-repeat;
background-position: center;
}
'''
'';
};
modules = mkOption {
type = listOf (either package str);
default = [
# "${pkgs.gtklock-playerctl-module.outPath}/lib/gtklock/playerctl-module.so"
];
description = ''
A list of gtklock modulesto use. Can either be packages, absolute paths, or strings.
'';
example = literalExpression ''
[
"${pkgs.gtklock-powerbar-module.outPath}/lib/gtklock/powerbar-module.so"
"${pkgs.gtklock-playerctl-module.outPath}/lib/gtklock/playerctl-module.so"
];
'';
};
};
extraConfig = mkOption {
type = nullOr attrs;
default =
{
};
description = ''
Extra configuration to append to gtklock configuration file.
Mostly used for appending module configurations.
'';
example = literalExpression ''
countdown = {
countdown-position = "top-right";
justify = "right";
countdown = 20;
}
'';
};
};
config = mkIf cfg.enable {
home.packages = [ cfg.package ];
xdg.configFile."gtklock/config.ini".source = pkgs.writeText "gtklock-config.ini" finalConfig;
};
}

View file

@ -5,52 +5,38 @@
... ...
}: }:
let let
inherit (lib) mkIf mkEnableOption getExe; inherit (lib) mkIf mkEnableOption;
cfg = config.custom-hm.gui.niri; cfg = config.custom-hm.gui.niri;
wallpaper = config.custom-hm.gui.wallpaper; wallpaper = pkgs.fetchurl {
xwayland-satellite = pkgs.xwayland-satellite.overrideAttrs (drv: rec { url = "https://github.com/NixOS/nixos-artwork/blob/master/wallpapers/nixos-wallpaper-catppuccin-mocha.png?raw=true";
src = pkgs.fetchFromGitHub { hash = "sha256-fmKFYw2gYAYFjOv4lr8IkXPtZfE1+88yKQ4vjEcax1s=";
owner = "Supreeeme"; };
repo = "xwayland-satellite";
rev = "3e6f892d20d918479e67d1e6c90c4be824a9d4ab";
hash = "sha256-W1UUok7DPi4IXCYtc273FbVH1ifuCIcl+oO6CDqt8Dk=";
};
cargoDeps = drv.cargoDeps.overrideAttrs (
lib.const {
name = "xwayland-satellite-vendor.tar.gz";
inherit src;
outputHash = "sha256-/nK4cVgelaMtpym18RYNafPUFnMOG4uHRpVO8bOS3ow=";
}
);
});
in in
{ {
imports = [
./themes.nix
];
options.custom-hm.gui.niri = { options.custom-hm.gui.niri = {
enable = mkEnableOption "niri"; enable = mkEnableOption "niri";
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
home.packages = with pkgs; [ home.packages = with pkgs; [
xwayland-satellite
cosmic-files cosmic-files
]; ];
home.pointerCursor = {
systemd.user.services.xwayland-satellite = { name = "Bibata-Modern-Ice";
Install = { size = 24;
WantedBy = [ "graphical-session.target" ]; package = pkgs.bibata-cursors;
}; gtk.enable = true;
Unit = {
PartOf = [ "graphical-session.target" ];
After = [ "graphical-session.target" ];
};
Service = {
ExecStart = "${xwayland-satellite}/bin/xwayland-satellite";
Restart = "on-failure";
};
}; };
gtk = {
enable = true;
theme = {
name = "Catppuccin-GTK-Dark";
package = pkgs.magnetic-catppuccin-gtk;
};
gtk2.configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc";
};
services.network-manager-applet.enable = true;
systemd.user.services.swaybg = { systemd.user.services.swaybg = {
Install = { Install = {
@ -66,14 +52,12 @@ in
}; };
}; };
services.swaync = { programs.swaylock = {
enable = true; enable = true;
}; settings = {
show-failed-attempts = true;
custom-hm.gui.gtklock = { daemonize = true;
enable = true; scaling = "fill";
config = {
gtk-theme = "Catppuccin-GTK-Dark";
}; };
}; };
@ -91,7 +75,7 @@ in
events = [ events = [
{ {
event = "lock"; event = "lock";
command = "${getExe pkgs.gtklock}"; command = "${pkgs.swaylock}/bin/swaylock";
} }
{ {
event = "before-sleep"; event = "before-sleep";

View file

@ -1,19 +0,0 @@
{ config, pkgs, ... }:
{
config = {
home.pointerCursor = {
name = "Bibata-Modern-Ice";
size = 24;
package = pkgs.bibata-cursors;
gtk.enable = true;
};
gtk = {
enable = true;
theme = {
name = "Catppuccin-GTK-Dark";
package = pkgs.magnetic-catppuccin-gtk;
};
gtk2.configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc";
};
};
}

View file

@ -49,8 +49,7 @@ window#waybar {
#network, #network,
#backlight, #backlight,
#battery, #battery,
#tray, #tray {
#custom-notification {
margin-right: 15px; margin-right: 15px;
} }
#clock { #clock {

View file

@ -57,8 +57,6 @@ in
"battery" "battery"
"custom/separator" "custom/separator"
"tray" "tray"
"custom/separator"
"custom/notification"
]; ];
"niri/workspaces" = { "niri/workspaces" = {
all-outputs = true; all-outputs = true;
@ -160,30 +158,16 @@ in
icon-size = 18; icon-size = 18;
spacing = 14; spacing = 14;
}; };
"custom/notification" = {
escape = true;
exec = "swaync-client -swb";
exec-if = "which swaync-client";
format = "{icon}";
format-icons = {
dnd-inhibited-none = "";
dnd-inhibited-notification = "<span foreground='red'><sup></sup></span>";
dnd-none = "";
dnd-notification = "<span foreground='red'><sup></sup></span>";
inhibited-none = "";
inhibited-notification = "<span foreground='red'><sup></sup></span>";
none = "";
notification = "<span foreground='red'><sup></sup></span>";
};
on-click = "swaync-client -t -sw";
on-click-right = "swaync-client -d -sw";
return-type = "json";
tooltip = false;
};
}; };
}; };
systemd.enable = true; systemd.enable = true;
}; };
systemd.user.targets.tray = {
Unit = {
Description = "Home Manager System Tray";
Requires = [ "graphical-session-pre.target" ];
};
};
}; };
} }

View file

@ -8,6 +8,7 @@
./prometheus ./prometheus
./hedgedoc.nix ./hedgedoc.nix
./sing-box.nix ./sing-box.nix
./stylix.nix
./kanidm-client.nix ./kanidm-client.nix
./ssh-tpm-agent.nix # FIXME: Waiting for upstream merge ./ssh-tpm-agent.nix # FIXME: Waiting for upstream merge
./forgejo-actions-runner.nix ./forgejo-actions-runner.nix

41
modules/nixos/stylix.nix Normal file
View file

@ -0,0 +1,41 @@
{
inputs,
config,
pkgs,
lib,
...
}:
let
inherit (lib) mkEnableOption mkIf;
cfg = config.custom.stylix;
in
{
imports = [ inputs.stylix.nixosModules.stylix ];
options = {
custom.stylix = {
enable = mkEnableOption "style management with stylix";
};
};
config = mkIf cfg.enable {
stylix.enable = true;
stylix.image = pkgs.fetchurl {
url = "https://github.com/NixOS/nixos-artwork/blob/master/wallpapers/nixos-wallpaper-catppuccin-mocha.png?raw=true";
hash = "sha256-fmKFYw2gYAYFjOv4lr8IkXPtZfE1+88yKQ4vjEcax1s=";
};
stylix.base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml";
stylix.polarity = "dark";
stylix.autoEnable = false;
stylix.homeManagerIntegration.autoImport = true;
stylix.homeManagerIntegration.followSystem = true;
stylix.targets = {
console.enable = true;
# gnome.enable = if config.services.xserver.desktopManager.gnome.enable then true else false;
gnome.enable = false;
gtk.enable = true;
};
};
}