Compare commits

...

15 commits

35 changed files with 770 additions and 889 deletions

View file

@ -1,5 +1,72 @@
{
"nodes": {
"base16": {
"inputs": {
"fromYaml": "fromYaml"
},
"locked": {
"lastModified": 1732200724,
"narHash": "sha256-+R1BH5wHhfnycySb7Sy5KbYEaTJZWm1h+LW1OtyhiTs=",
"owner": "SenchoPens",
"repo": "base16.nix",
"rev": "153d52373b0fb2d343592871009a286ec8837aec",
"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-helix": {
"flake": false,
"locked": {
"lastModified": 1736852337,
"narHash": "sha256-esD42YdgLlEh7koBrSqcT7p2fsMctPAcGl/+2sYJa2o=",
"owner": "tinted-theming",
"repo": "base16-helix",
"rev": "03860521c40b0b9c04818f2218d9cc9efc21e7a5",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-helix",
"type": "github"
}
},
"base16-vim": {
"flake": false,
"locked": {
"lastModified": 1732806396,
"narHash": "sha256-e0bpPySdJf0F68Ndanwm+KWHgQiZ0s7liLhvJSWDNsA=",
"owner": "tinted-theming",
"repo": "base16-vim",
"rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-vim",
"rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
"type": "github"
}
},
"darwin": {
"inputs": {
"nixpkgs": [
@ -20,6 +87,22 @@
"type": "github"
}
},
"firefox-gnome-theme": {
"flake": false,
"locked": {
"lastModified": 1739223196,
"narHash": "sha256-vAxN2f3rvl5q62gQQjZGVSvF93nAsOxntuFz+e/655w=",
"owner": "rafaelmardojai",
"repo": "firefox-gnome-theme",
"rev": "a89108e6272426f4eddd93ba17d0ea101c34fb21",
"type": "github"
},
"original": {
"owner": "rafaelmardojai",
"repo": "firefox-gnome-theme",
"type": "github"
}
},
"flake-compat": {
"flake": false,
"locked": {
@ -68,6 +151,22 @@
"type": "github"
}
},
"flake-compat_4": {
"flake": false,
"locked": {
"lastModified": 1733328505,
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
@ -187,7 +286,7 @@
},
"flake-utils_3": {
"inputs": {
"systems": "systems_4"
"systems": "systems_2"
},
"locked": {
"lastModified": 1694529238,
@ -205,7 +304,28 @@
},
"flake-utils_4": {
"inputs": {
"systems": "systems_5"
"systems": [
"stylix",
"systems"
]
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_5": {
"inputs": {
"systems": "systems_4"
},
"locked": {
"lastModified": 1731533236,
@ -253,6 +373,22 @@
"type": "github"
}
},
"fromYaml": {
"flake": false,
"locked": {
"lastModified": 1731966426,
"narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=",
"owner": "SenchoPens",
"repo": "fromYaml",
"rev": "106af9e2f715e2d828df706c386a685698f3223b",
"type": "github"
},
"original": {
"owner": "SenchoPens",
"repo": "fromYaml",
"type": "github"
}
},
"git-hooks": {
"inputs": {
"flake-compat": "flake-compat_2",
@ -277,6 +413,32 @@
"type": "github"
}
},
"git-hooks_2": {
"inputs": {
"flake-compat": [
"stylix",
"flake-compat"
],
"gitignore": "gitignore_2",
"nixpkgs": [
"stylix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1737465171,
"narHash": "sha256-R10v2hoJRLq8jcL4syVFag7nIGE7m13qO48wRIukWNg=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "9364dc02281ce2d37a1f55b6e51f7c0f65a75f17",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
@ -300,6 +462,45 @@
"type": "github"
}
},
"gitignore_2": {
"inputs": {
"nixpkgs": [
"stylix",
"git-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"gnome-shell": {
"flake": false,
"locked": {
"lastModified": 1732369855,
"narHash": "sha256-JhUWbcYPjHO3Xs3x9/Z9RuqXbcp5yhPluGjwsdE2GMg=",
"owner": "GNOME",
"repo": "gnome-shell",
"rev": "dadd58f630eeea41d645ee225a63f719390829dc",
"type": "github"
},
"original": {
"owner": "GNOME",
"ref": "47.2",
"repo": "gnome-shell",
"type": "github"
}
},
"harfbuzz": {
"flake": false,
"locked": {
@ -361,25 +562,25 @@
"type": "github"
}
},
"hyprlang": {
"home-manager_2": {
"inputs": {
"nixpkgs": [
"rose-pine-hyprcursor",
"stylix",
"nixpkgs"
],
"systems": "systems_2"
]
},
"locked": {
"lastModified": 1709914708,
"narHash": "sha256-bR4o3mynoTa1Wi4ZTjbnsZ6iqVcPGriXp56bZh5UFTk=",
"owner": "hyprwm",
"repo": "hyprlang",
"rev": "a685493fdbeec01ca8ccdf1f3655c044a8ce2fe2",
"lastModified": 1739757849,
"narHash": "sha256-Gs076ot1YuAAsYVcyidLKUMIc4ooOaRGO0PqTY7sBzA=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "9d3d080aec2a35e05a15cedd281c2384767c2cfe",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprlang",
"owner": "nix-community",
"ref": "release-24.11",
"repo": "home-manager",
"type": "github"
}
},
@ -443,11 +644,11 @@
"plugins-nvim-emmet": "plugins-nvim-emmet"
},
"locked": {
"lastModified": 1740873051,
"narHash": "sha256-5yrGhxYiWiipWEYnsCAbRNkyeYzArax529KCI39/wtc=",
"lastModified": 1740938353,
"narHash": "sha256-WwBCND9/lPu7/D0wSgQ0X0xLuwujKz9uju/a2FOM7cg=",
"ref": "refs/heads/main",
"rev": "8a48c56206649cef772ab1e2bbceaa137b02bb59",
"revCount": 150,
"rev": "744b1ad145a000523384cfa32e06a61498cf63ba",
"revCount": 152,
"type": "git",
"url": "https://codewith.babesonthe.net/punkfairie/marleyvim"
},
@ -506,11 +707,11 @@
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
},
"locked": {
"lastModified": 1740855337,
"narHash": "sha256-+XraA0Y/Ly5gewsO/iB1zuW66kXRaIJYIoQfHDJoelQ=",
"lastModified": 1740929139,
"narHash": "sha256-as+EZSE7x2n8WpZW8U23aADY/9ho9niaRDDFmWWuhzY=",
"owner": "sodiboo",
"repo": "niri-flake",
"rev": "19cf6c963dfd26d1f2ea9a533470a16144803555",
"rev": "bae6dca1c27444d3641571fd5ae15181a68ecf8b",
"type": "github"
},
"original": {
@ -539,11 +740,11 @@
"niri-unstable": {
"flake": false,
"locked": {
"lastModified": 1740851187,
"narHash": "sha256-pCvGEGLUab0BmoJQKmUf2vmtQXu7FiUag60c3z6hhaE=",
"lastModified": 1740898912,
"narHash": "sha256-oDQWpeYkJ2xzGJOCq+m+uMp8urW/37B7NbTndYKIME4=",
"owner": "YaLTeR",
"repo": "niri",
"rev": "36b28d9b96107441e3f8502a61f598fb666ec492",
"rev": "9f205d465c46928b95702447194faeb342a57965",
"type": "github"
},
"original": {
@ -606,11 +807,11 @@
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1740743217,
"narHash": "sha256-brsCRzLqimpyhORma84c3W2xPbIidZlIc3JGIuQVSNI=",
"lastModified": 1740865531,
"narHash": "sha256-h00vGIh/jxcGl8aWdfnVRD74KuLpyY3mZgMFMy7iKIc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "b27ba4eb322d9d2bf2dc9ada9fd59442f50c8d7c",
"rev": "5ef6c425980847c78a80d759abc476e941a9bf42",
"type": "github"
},
"original": {
@ -638,11 +839,11 @@
},
"nixpkgs_3": {
"locked": {
"lastModified": 1740695751,
"narHash": "sha256-D+R+kFxy1KsheiIzkkx/6L63wEHBYX21OIwlFV8JvDs=",
"lastModified": 1740828860,
"narHash": "sha256-cjbHI+zUzK5CPsQZqMhE3npTyYFt9tJ3+ohcfaOF/WM=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "6313551cd05425cd5b3e63fe47dbc324eabb15e4",
"rev": "303bd8071377433a2d8f76e684ec773d70c5b642",
"type": "github"
},
"original": {
@ -654,11 +855,11 @@
},
"nixpkgs_4": {
"locked": {
"lastModified": 1740743217,
"narHash": "sha256-brsCRzLqimpyhORma84c3W2xPbIidZlIc3JGIuQVSNI=",
"lastModified": 1740865531,
"narHash": "sha256-h00vGIh/jxcGl8aWdfnVRD74KuLpyY3mZgMFMy7iKIc=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "b27ba4eb322d9d2bf2dc9ada9fd59442f50c8d7c",
"rev": "5ef6c425980847c78a80d759abc476e941a9bf42",
"type": "github"
},
"original": {
@ -670,16 +871,16 @@
},
"nixpkgs_5": {
"locked": {
"lastModified": 1710272261,
"narHash": "sha256-g0bDwXFmTE7uGDOs9HcJsfLFhH7fOsASbAuOzDC+fhQ=",
"lastModified": 1740339700,
"narHash": "sha256-cbrw7EgQhcdFnu6iS3vane53bEagZQy/xyIkDWpCgVE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "0ad13a6833440b8e238947e47bea7f11071dc2b2",
"rev": "04ef94c4c1582fd485bbfdb8c4a8ba250e359195",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"ref": "nixos-24.11",
"repo": "nixpkgs",
"type": "github"
}
@ -693,11 +894,11 @@
"treefmt-nix": "treefmt-nix_2"
},
"locked": {
"lastModified": 1740868499,
"narHash": "sha256-Ool7r+1MO12IGFu52caG0xNzPY0rFwF77aHC7gQ3pUY=",
"lastModified": 1740937495,
"narHash": "sha256-6B1TLJbyE3FpDSxbCaBNVECMWmz2ScNyKaLwC+co5D0=",
"owner": "nix-community",
"repo": "NUR",
"rev": "b92dec71e76702d2208c6f6d9f758a8e9649f061",
"rev": "eb2e9317b9e301ed5cbe2b07cb57b33558b79670",
"type": "github"
},
"original": {
@ -749,82 +950,12 @@
"nixpkgs": "nixpkgs_4",
"nur": "nur",
"rofi-themes": "rofi-themes",
"rose-pine": "rose-pine",
"rose-pine-amfora": "rose-pine-amfora",
"rose-pine-hyprcursor": "rose-pine-hyprcursor",
"rose-pine-qt5ct": "rose-pine-qt5ct",
"snowfall-lib": "snowfall-lib",
"stylix": "stylix",
"unstable": "unstable",
"wezterm": "wezterm"
}
},
"rose-pine": {
"locked": {
"lastModified": 1740856667,
"narHash": "sha256-iPeS2Of3B0vUvnPyCCRecb5rR9wGeaYwRzWxS8qnFWw=",
"ref": "refs/heads/main",
"rev": "c81ccedd763c80bcb3d42428f2e9be4b41b2a845",
"revCount": 387,
"type": "git",
"url": "https://codewith.babesonthe.net/punkfairie/rose-pine-nix"
},
"original": {
"type": "git",
"url": "https://codewith.babesonthe.net/punkfairie/rose-pine-nix"
}
},
"rose-pine-amfora": {
"flake": false,
"locked": {
"lastModified": 1645462324,
"narHash": "sha256-HUgdRxDKwXFubvCg5OWAwWF6fi8HEhH9xcOPpPonBKg=",
"owner": "rose-pine",
"repo": "amfora",
"rev": "65afcf6c162cd1d960499c657e83603878b91c2d",
"type": "github"
},
"original": {
"owner": "rose-pine",
"repo": "amfora",
"type": "github"
}
},
"rose-pine-hyprcursor": {
"inputs": {
"hyprlang": "hyprlang",
"nixpkgs": "nixpkgs_5",
"utils": "utils"
},
"locked": {
"lastModified": 1740132177,
"narHash": "sha256-gNc20APKMefFdH5RONBuHhOps14aiMdgIT0I6RaSN64=",
"owner": "ndom91",
"repo": "rose-pine-hyprcursor",
"rev": "568067f35a85932192bd43ddf64fc05eff850f9f",
"type": "github"
},
"original": {
"owner": "ndom91",
"repo": "rose-pine-hyprcursor",
"type": "github"
}
},
"rose-pine-qt5ct": {
"flake": false,
"locked": {
"lastModified": 1681348150,
"narHash": "sha256-mfkVexp3deDZCwbq/P8Ynf1gYwF5kVXfGGv7BEGFZCU=",
"owner": "piperbly",
"repo": "rose-pine-qt5ct",
"rev": "61c90bc63291508f2cec6e8589e35af637a75374",
"type": "github"
},
"original": {
"owner": "piperbly",
"repo": "rose-pine-qt5ct",
"type": "github"
}
},
"rust-overlay": {
"inputs": {
"nixpkgs": [
@ -868,6 +999,39 @@
"type": "github"
}
},
"stylix": {
"inputs": {
"base16": "base16",
"base16-fish": "base16-fish",
"base16-helix": "base16-helix",
"base16-vim": "base16-vim",
"firefox-gnome-theme": "firefox-gnome-theme",
"flake-compat": "flake-compat_4",
"flake-utils": "flake-utils_4",
"git-hooks": "git-hooks_2",
"gnome-shell": "gnome-shell",
"home-manager": "home-manager_2",
"nixpkgs": "nixpkgs_5",
"systems": "systems_3",
"tinted-foot": "tinted-foot",
"tinted-kitty": "tinted-kitty",
"tinted-tmux": "tinted-tmux"
},
"locked": {
"lastModified": 1740520580,
"narHash": "sha256-QRlcA8rtfNdyKpBE+ptjiB9717Tzum4/sKBSbsyqL6k=",
"owner": "danth",
"repo": "stylix",
"rev": "aaa2eb8956770c096f9c46fb163bb26602e20e56",
"type": "github"
},
"original": {
"owner": "danth",
"ref": "release-24.11",
"repo": "stylix",
"type": "github"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
@ -885,16 +1049,16 @@
},
"systems_2": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"repo": "default",
"type": "github"
}
},
@ -928,18 +1092,53 @@
"type": "github"
}
},
"systems_5": {
"tinted-foot": {
"flake": false,
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"lastModified": 1726913040,
"narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=",
"owner": "tinted-theming",
"repo": "tinted-foot",
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"owner": "tinted-theming",
"repo": "tinted-foot",
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
"type": "github"
}
},
"tinted-kitty": {
"flake": false,
"locked": {
"lastModified": 1716423189,
"narHash": "sha256-2xF3sH7UIwegn+2gKzMpFi3pk5DlIlM18+vj17Uf82U=",
"owner": "tinted-theming",
"repo": "tinted-kitty",
"rev": "eb39e141db14baef052893285df9f266df041ff8",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-kitty",
"rev": "eb39e141db14baef052893285df9f266df041ff8",
"type": "github"
}
},
"tinted-tmux": {
"flake": false,
"locked": {
"lastModified": 1740272597,
"narHash": "sha256-/etfUV3HzAaLW3RSJVwUaW8ULbMn3v6wbTlXSKbcoWQ=",
"owner": "tinted-theming",
"repo": "tinted-tmux",
"rev": "b6c7f46c8718cc484f2db8b485b06e2a98304cd0",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-tmux",
"type": "github"
}
},
@ -988,11 +1187,11 @@
},
"unstable": {
"locked": {
"lastModified": 1740695751,
"narHash": "sha256-D+R+kFxy1KsheiIzkkx/6L63wEHBYX21OIwlFV8JvDs=",
"lastModified": 1740828860,
"narHash": "sha256-cjbHI+zUzK5CPsQZqMhE3npTyYFt9tJ3+ohcfaOF/WM=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "6313551cd05425cd5b3e63fe47dbc324eabb15e4",
"rev": "303bd8071377433a2d8f76e684ec773d70c5b642",
"type": "github"
},
"original": {
@ -1002,27 +1201,9 @@
"type": "github"
}
},
"utils": {
"inputs": {
"systems": "systems_3"
},
"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"
}
},
"wezterm": {
"inputs": {
"flake-utils": "flake-utils_4",
"flake-utils": "flake-utils_5",
"freetype2": "freetype2",
"harfbuzz": "harfbuzz",
"libpng": "libpng",

View file

@ -22,7 +22,7 @@
];
systems.modules.nixos = with inputs; [
rose-pine.nixosModules.rose-pine
stylix.nixosModules.stylix
niri-flake.nixosModules.niri
];
@ -30,17 +30,12 @@
lix.nixosModules.default
];
homes.modules = with inputs; [
rose-pine.homeManagerModules.rose-pine
];
# homes.modules = with inputs; [
# ];
outputs-builder = channels: {
formatter = channels.nixpkgs.alejandra;
};
alias = {
shells.default = "nix";
};
};
inputs = {
@ -77,30 +72,17 @@
inputs.nixpkgs.follows = "nixpkgs";
};
rose-pine.url = "git+https://codewith.babesonthe.net/punkfairie/rose-pine-nix";
stylix.url = "github:danth/stylix/release-24.11";
marleyvim.url = "git+https://codewith.babesonthe.net/punkfairie/marleyvim";
niri-flake.url = "github:sodiboo/niri-flake";
wezterm = {
url = "github:wez/wezterm?dir=nix";
inputs.nixpkgs.follows = "nixpkgs";
};
niri-flake.url = "github:sodiboo/niri-flake";
marleyvim.url = "git+https://codewith.babesonthe.net/punkfairie/marleyvim";
# Rose pine themes that aren't included in the above flake:
# TODO: Integrate these to punkfairie/rose-pine-nix.
rose-pine-amfora = {
url = "github:rose-pine/amfora";
flake = false;
};
rose-pine-qt5ct = {
url = "github:piperbly/rose-pine-qt5ct";
flake = false;
};
rose-pine-hyprcursor.url = "github:ndom91/rose-pine-hyprcursor";
# Rofi
rofi-themes = {
url = "git+https://codewith.babesonthe.net/punkfairie/rofi-themes";
flake = false;

View file

@ -2,44 +2,18 @@
lib,
config,
pkgs,
system,
...
}: let
inherit (lib.snowfall.system) is-darwin;
cfg = config.marleyos.appearance.base;
inherit (config.marleyos) isDesktop;
in {
options.marleyos.appearance.base.enable = lib.mkEnableOption "base";
config = lib.mkIf cfg.enable {
rose-pine = {
enable = true;
flavor = "main";
};
rose-pine.pointerCursor.enable = lib.mkIf config.rose-pine.enable true;
marleyos = {
theme = {
icons = {
package = pkgs.kora-icon-theme;
name = "kora";
};
fonts = {
monospace = {
package = pkgs.maple-mono-NF;
name = "Maple Mono NF";
# TODO: package font with harfbuzz features.
ligatures = [
"cv02"
"ss01"
"ss02"
"ss03"
"ss04"
"ss05"
];
};
};
};
apps = {
pinentry =
if isDesktop
@ -47,5 +21,19 @@ in {
else pkgs.pinentry-curses;
};
};
stylix = {
iconTheme = {
package = pkgs.kora-icon-theme;
dark = "kora";
light = "kora-light-panel";
};
fonts.sizes.terminal = lib.mkIf (is-darwin system) 14;
};
home.packages = with pkgs; [
kora-icon-theme
];
};
}

View file

@ -13,9 +13,15 @@ in {
gtk = {
enable = true;
rose-pine.enable = lib.mkIf config.rose-pine.enable true;
gtk2.configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc";
iconTheme = with config.stylix.iconTheme; {
name =
if config.lib.stylix.colors.variant == "dark"
then dark
else light;
inherit package;
};
};
};
}

View file

@ -9,15 +9,8 @@ in {
options.marleyos.appearance.qt.enable = lib.mkEnableOption "qt";
config = lib.mkIf cfg.enable {
xdg.configFile = lib.mkIf config.rose-pine.enable {
"qt5ct/colors/rose-pine.conf" = {
source = "${inputs.rose-pine-qt5ct}/rose-pine.conf";
};
};
qt = {
enable = true;
style.name = "adwaita";
};
};
}

View file

@ -0,0 +1,7 @@
{lib, ...}: {
options.marleyos.isServer = lib.mkOption {
type = with lib.types; bool;
default = false;
description = "Whether this machine is a server.";
};
}

View file

@ -1,139 +0,0 @@
{
lib,
config,
system,
pkgs,
...
}: let
inherit (lib.snowfall.system) is-linux;
cfg = config.marleyos.theme;
# https://github.com/nix-community/home-manager/blob/master/modules/misc/gtk.nix
iconThemeType = lib.types.submodule {
options = {
package = lib.mkOption {
type = with lib.types; nullOr package;
default = null;
example = pkgs.gnome.adwaita-icon-theme;
description = ''
Package providing the icon theme. This package will be installed to
your profile. If `null` then the theme is assumed to already be
available in your profile.
'';
};
name = lib.mkOption {
type = with lib.types; str;
example = "Adwaita";
description = "The name of the icon theme within the package.";
};
};
};
mkFontType = type: default: (lib.mkOption {
type = lib.types.submodule {
options = {
package = lib.mkOption {
type = with lib.types; package;
default = default.package;
description = "The package providing the ${type} font.";
};
name = lib.mkOption {
type = with lib.types; str;
default = default.name;
description = "The name of the ${type} font.";
};
ligatures = lib.mkOption {
type = with lib.types; listOf str;
default = default.ligatures;
description = "The ligature features to enable for programs that support it.";
};
};
};
inherit default;
description = "The ${type} font to use.";
});
in {
options.marleyos.theme = {
icons = lib.mkOption {
type = with lib.types; nullOr iconThemeType;
default = null;
description = "The icon theme to use.";
};
fonts = lib.mkOption {
type = with lib.types;
submodule {
options = {
monospace = mkFontType "monospace" {
package = pkgs.maple-mono-NF;
name = "Maple Mono NF";
ligatures = [];
};
sansSerif = mkFontType "sans-serif" {
package = pkgs.dm-sans;
name = "DeepMind Sans";
ligatures = [];
};
serif = mkFontType "serif" {
package = pkgs.eb-garamond;
name = "EB Garamond";
ligatures = [];
};
emoji = mkFontType "emoji" {
package = pkgs.whatsapp-emoji-font;
name = "Apple Color Emoji";
ligatures = [];
};
};
};
default = {};
description = "Default font configuration.";
};
};
config = lib.mkMerge [
# icons
(lib.mkIf ((cfg.icons != null) && (is-linux system)) {
gtk = lib.mkDefault {
iconTheme = {
inherit (cfg.icons) name;
package = lib.mkIf (cfg.icons.package != null) cfg.icons.package;
};
};
services.dunst = lib.mkDefault {
iconTheme = {
inherit (cfg.icons) name;
package = lib.mkIf (cfg.icons.package != null) cfg.icons.package;
};
};
})
# fonts
{
home.packages = [
cfg.fonts.monospace.package
cfg.fonts.sansSerif.package
cfg.fonts.serif.package
cfg.fonts.emoji.package
];
fonts.fontconfig = lib.mkIf (is-linux system) {
enable = true;
defaultFonts = {
monospace = [cfg.fonts.monospace.name];
sansSerif = [cfg.fonts.sansSerif.name];
serif = [cfg.fonts.serif.name];
emoji = [cfg.fonts.emoji.name];
};
};
}
];
}

View file

@ -17,7 +17,6 @@ in {
xdg.configFile."cheat/conf.yml".source = toYAML "conf.yml" {
colorize = true;
style = lib.mkIf config.rose-pine.enable "rose-pine";
formatter = "terminal256";
pager = "less -FRX";

View file

@ -12,7 +12,7 @@ in {
config = lib.mkIf cfg.enable {
marleyos.programs = {
bat = enabled;
cheat = enabled;
# cheat = enabled;
curl = enabled;
eza = enabled;
figlet = enabled;

View file

@ -53,26 +53,6 @@ in {
"*.bmp binary"
];
# ██████╗ ███████╗██╗ ████████╗ █████╗
# ██╔══██╗██╔════╝██║ ╚══██╔══╝██╔══██╗
# ██║ ██║█████╗ ██║ ██║ ███████║
# ██║ ██║██╔══╝ ██║ ██║ ██╔══██║
# ██████╔╝███████╗███████╗██║ ██║ ██║
# ╚═════╝ ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═╝
# delta = {
# enable = true;
#
# options = {
# navigate = true;
# # TODO: Add to rose-pine-nix
# syntax-theme = "${colors.base}";
# features = "mellow-barbet";
# true-color = "always";
# hyperlinks = true;
# };
# };
# ██████╗ ██╗███████╗███████╗████████╗ █████╗ ███████╗████████╗██╗ ██████╗
# ██╔══██╗██║██╔════╝██╔════╝╚══██╔══╝██╔══██╗██╔════╝╚══██╔══╝██║██╔════╝
# ██║ ██║██║█████╗ █████╗ ██║ ███████║███████╗ ██║ ██║██║

View file

@ -9,17 +9,12 @@ in {
imports = [
./nerd-font-symbols.nix
./rose-pine.nix
./theme.nix
];
config = lib.mkIf cfg.enable {
programs.starship = {
enable = true;
enableTransience = true;
# Using my own version because I made so many fixes it wasn't worth...
rose-pine.enable = false;
};
};
}

View file

@ -7,9 +7,9 @@
cfg = config.marleyos.programs.starship;
in {
config = lib.mkIf (cfg.enable && config.rose-pine.enable) {
programs.starship.settings = let
mkFormat = t: " [](fg:overlay)[${t}]($style)[](fg:overlay) ";
config = lib.mkIf cfg.enable {
programs.starship.settings = with config.lib.stylix.colors.withHashtag; let
mkFormat = t: " [](fg:${base02})[${t}]($style)[](fg:${base02}) ";
langFormat = mkFormat "$symbol$version";
in {
format = mkDefault (lib.concatStrings [
@ -36,54 +36,17 @@ in {
"$character"
]);
# TODO: Make the palette available from rose-pine-nix.
palettes.rose-pine =
if (config.rose-pine.flavor == "moon")
then
(mkDefault {
overlay = "#393552";
love = "#eb6f92";
gold = "#f6c177";
rose = "#ea9a97";
pine = "#3e8fb0";
foam = "#9ccfd8";
iris = "#c4a7e7";
})
else if (config.rose-pine.flavor == "dawn")
then
(mkDefault {
overlay = "#f2e9e1";
love = "#b4637a";
gold = "#ea9d34";
rose = "#d7827e";
pine = "#286983";
foam = "#56949f";
iris = "#907aa9";
})
else
(mkDefault {
overlay = "#26233a";
love = "#eb6f92";
gold = "#f6c177";
rose = "#ebbcba";
pine = "#31748f";
foam = "#9ccfd8";
iris = "#c4a7e7";
});
palette = "rose-pine";
username = {
disabled = mkDefault false;
format = mkDefault (mkFormat " 󰧱 $user ");
show_always = mkDefault true;
style_root = mkDefault "bg:overlay fg:iris";
style_user = mkDefault "bg:overlay fg:iris";
style_root = mkDefault "bg:${base02} fg:${base0D}";
style_user = mkDefault "bg:${base02} fg:${base0D}";
};
directory = {
format = mkDefault (mkFormat " $path ");
style = mkDefault "bg:overlay fg:pine";
style = mkDefault "bg:${base02} fg:${base0B}";
truncation_length = mkDefault 3;
truncation_symbol = mkDefault "/";
@ -97,123 +60,123 @@ in {
git_branch = {
format = mkDefault (mkFormat " $symbol $branch ");
style = mkDefault "bg:overlay fg:foam";
style = mkDefault "bg:${base02} fg:${base0C}";
symbol = mkDefault "";
};
git_status = {
disabled = mkDefault false;
style = mkDefault "bg:overlay fg:love";
style = mkDefault "bg:${base02} fg:${base08}";
format = mkDefault (mkFormat " $all_status$ahead_behind");
up_to_date = mkDefault "[ ](bg:overlay fg:iris)";
untracked = mkDefault "[?\\($count\\)](bg:overlay fg:gold)";
stashed = mkDefault "[\\$](bg:overlay fg:iris)";
modified = mkDefault "[!\\($count\\)](bg:overlay fg:gold)";
renamed = mkDefault "[»\\($count\\)](bg:overlay fg:iris)";
up_to_date = mkDefault "[ ](bg:${base02} fg:${base0D})";
untracked = mkDefault "[?\\($count\\)](bg:${base02} fg:${base09})";
stashed = mkDefault "[\\$](bg:${base02} fg:${base0D})";
modified = mkDefault "[!\\($count\\)](bg:${base02} fg:${base09})";
renamed = mkDefault "[»\\($count\\)](bg:${base02} fg:${base0D})";
deleted = mkDefault "[\\($count\\)](style)";
staged = mkDefault "[++\\($count\\)](bg:overlay fg:gold)";
ahead = mkDefault "[\\(\${count}\\)](bg:overlay fg:foam)";
diverged = mkDefault "[\\[](bg:overlay fg:iris)[\\(\${ahead_count}\\)](bg:overlay fg:foam)[\\(\${behind_count}\\)](bg:overlay fg:rose)[\\]](bg:overlay fg:iris)";
behind = mkDefault "[\\(\${count}\\)](bg:overlay fg:rose)";
staged = mkDefault "[++\\($count\\)](bg:${base02} fg:${base09})";
ahead = mkDefault "[\\(\${count}\\)](bg:${base02} fg:${base0C})";
diverged = mkDefault "[\\[](bg:${base02} fg:${base0D})[\\(\${ahead_count}\\)](bg:${base02} fg:${base0C})[\\(\${behind_count}\\)](bg:${base02} fg:${base0A})[\\]](bg:${base02} fg:${base0D})";
behind = mkDefault "[\\(\${count}\\)](bg:${base02} fg:${base0A})";
};
fill = {
style = mkDefault "fg:overlay";
style = mkDefault "fg:${base02}";
symbol = mkDefault " ";
};
time = {
disabled = mkDefault false;
format = mkDefault (mkFormat " $time 󰴈 ");
style = mkDefault "bg:overlay fg:rose";
style = mkDefault "bg:${base02} fg:${base0A}";
time_format = mkDefault "%I:%M%P";
use_12hr = mkDefault true;
};
character = let
vim = "";
mkChar = sym: col: " [${sym}](fg:${col}) [󰄾](fg:foam)";
mkChar = sym: col: " [${sym}](fg:${col}) [󰄾](fg:${base0C})";
in {
success_symbol = mkChar "" "iris";
error_symbol = mkChar "󰋔" "love";
vimcmd_symbol = mkChar vim "rose";
vimcmd_replace_one_symbol = mkChar vim "foam";
vimcmd_replace_symbol = mkChar vim "foam";
vimcmd_visual_symbol = mkChar vim "iris";
success_symbol = mkChar "" "${base0D}";
error_symbol = mkChar "󰋔" "${base08}";
vimcmd_symbol = mkChar vim "${base0A}";
vimcmd_replace_one_symbol = mkChar vim "${base0C}";
vimcmd_replace_symbol = mkChar vim "${base0C}";
vimcmd_visual_symbol = mkChar vim "${base0D}";
};
### Languages ###
c = {
style = mkDefault "bg:overlay fg:pine";
style = mkDefault "bg:${base02} fg:${base0B}";
format = mkDefault langFormat;
disabled = mkDefault false;
symbol = mkDefault " ";
};
elixir = {
style = mkDefault "bg:overlay fg:pine";
style = mkDefault "bg:${base02} fg:${base0B}";
format = mkDefault langFormat;
disabled = mkDefault false;
symbol = mkDefault " ";
};
elm = {
style = mkDefault "bg:overlay fg:pine";
style = mkDefault "bg:${base02} fg:${base0B}";
format = mkDefault langFormat;
disabled = mkDefault false;
symbol = mkDefault " ";
};
haskell = {
style = mkDefault "bg:overlay fg:pine";
style = mkDefault "bg:${base02} fg:${base0B}";
format = mkDefault langFormat;
disabled = mkDefault false;
symbol = mkDefault " ";
};
java = {
style = mkDefault "bg:overlay fg:pine";
style = mkDefault "bg:${base02} fg:${base0B}";
format = mkDefault langFormat;
disabled = mkDefault false;
symbol = mkDefault " ";
};
julia = {
style = mkDefault "bg:overlay fg:pine";
style = mkDefault "bg:${base02} fg:${base0B}";
format = mkDefault langFormat;
disabled = mkDefault false;
symbol = mkDefault " ";
};
nodejs = {
style = mkDefault "bg:overlay fg:pine";
style = mkDefault "bg:${base02} fg:${base0B}";
format = mkDefault langFormat;
disabled = mkDefault false;
symbol = mkDefault "󰎙 ";
};
nim = {
style = mkDefault "bg:overlay fg:pine";
style = mkDefault "bg:${base02} fg:${base0B}";
format = mkDefault langFormat;
disabled = mkDefault false;
symbol = mkDefault "󰆥 ";
};
python = {
style = mkDefault "bg:overlay fg:pine";
style = mkDefault "bg:${base02} fg:${base0B}";
disabled = mkDefault false;
symbol = mkDefault " ";
};
rust = {
style = mkDefault "bg:overlay fg:pine";
style = mkDefault "bg:${base02} fg:${base0B}";
format = mkDefault langFormat;
disabled = mkDefault false;
symbol = mkDefault "";
};
scala = {
style = "bg:overlay fg:pine";
style = "bg:${base02} fg:${base0B}";
format = mkDefault langFormat;
disabled = false;
symbol = " ";
@ -221,14 +184,14 @@ in {
### Tools ###
conda = {
style = mkDefault "bg:overlay fg:pine";
style = mkDefault "bg:${base02} fg:${base0B}";
format = mkDefault (mkFormat "$symbol$environment");
disabled = mkDefault false;
symbol = mkDefault "🅒 ";
};
nix_shell = {
style = "bg:overlay fg:foam";
style = "bg:${base02} fg:${base0C}";
format = mkDefault (mkFormat " $symbol $state( \($name\)) ");
disabled = mkDefault false;
symbol = mkDefault " ";

View file

@ -12,15 +12,6 @@ in {
programs.tmux = {
enable = true;
rose-pine = {
extraConfig =
# tmux
''
set -g @rose_pine_host 'on'
set -g @rose_pine_directory 'on'
'';
};
terminal = "tmux-256color";
escapeTime = 0;
@ -40,6 +31,16 @@ in {
shortcut = "a";
plugins = with pkgs.tmuxPlugins; [
{
# TODO: copy over bar config to allow stylix theming
plugin = rose-pine;
extraConfig =
# tmux
''
set -g @rose_pine_host 'on'
set -g @rose_pine_directory 'on'
'';
}
{
plugin = resurrect;
}

View file

@ -9,6 +9,13 @@ in {
options.marleyos.programs.floorp.enable = lib.mkEnableOption "floorp";
config = lib.mkIf cfg.enable {
# FIXME: switch to this once it's available
# stylix.targets.floorp = {
# enable = true;
# colorTheme.enable = true;
# profileNames = [config.marleyos.my.name];
# };
programs.floorp = {
enable = true;
@ -23,6 +30,7 @@ in {
consent-o-matic
darkreader
facebook-container
firefox-color
kagi-search
# libredirect
# proton-vpn
@ -306,6 +314,13 @@ in {
# 2 = auto; 1 = light; 0 = dark
"layout.css.prefers-color-scheme.content-override" = 0;
# FIXME: Switch to stylix module once it's available for Floorp.
"font.name.monospace.x-western" =
config.stylix.fonts.monospace.name;
"font.name.sans-serif-x-western" =
config.stylix.fonts.sansSerif.name;
"font.name.serif.x-western" = config.stylix.fonts.serif.name;
};
};
};

View file

@ -9,6 +9,7 @@ in {
options.marleyos.programs.vesktop.enable = lib.mkEnableOption "vesktop";
config = lib.mkIf cfg.enable {
# TODO: Switch to nixcord.
home.packages = with pkgs; [
vesktop
];

View file

@ -11,11 +11,6 @@
isGenericLinux = config.targets.genericLinux.enable;
isNotNixOS = isGenericLinux || (is-darwin system);
theme =
if config.rose-pine.enable
then "rose-pine"
else "";
in {
options.marleyos.programs.wezterm.enable = lib.mkEnableOption "wezterm";
@ -32,9 +27,7 @@ in {
# TODO: create `local config` & return it seperately, so other modules can
# insert config in the middle
extraConfig = let
inherit (config.marleyos.theme) fonts;
in
extraConfig =
# lua
''
local config = wezterm.config_builder()
@ -44,44 +37,6 @@ in {
config.enable_tab_bar = false
config.color_scheme = "${theme}"
config.font = wezterm.font_with_fallback({
{
family = "${fonts.monospace.name}",
harfbuzz_features = {
${lib.concatStrings fonts.monospace.ligatures}
}
},
{ family = "FairiesevkaTerm Nerd Font Mono" },
{
family = "FiraCode Nerd Font",
harfbuzz_features = {
"cv02",
"cv06",
"ss01",
"cv14",
"onum",
"ss04",
"cv18",
"cv31",
"cv30",
"cv25",
"cv26",
"cv32",
"ss06",
"ss07",
},
},
{ family = "${fonts.emoji.name}" },
})
config.font_size = ${
if (is-darwin system)
then "14.0"
else "11.0"
}
return config
'';
};

View file

@ -6,15 +6,6 @@
...
}: let
cfg = config.marleyos.programs.amfora;
theme =
if config.rose-pine.enable
then "rose-pine"
else "";
themeFiles = {
rose-pine = "${inputs.rose-pine-amfora}/themes/rose-pine.toml";
};
themeFile = themeFiles."${theme}";
in {
options.marleyos.programs.amfora.enable = lib.mkEnableOption "amfora";
@ -23,7 +14,10 @@ in {
amfora
];
xdg.configFile."amfora/theme.toml".source = themeFile;
xdg.configFile."amfora/theme.toml".source = config.lib.stylix.colors {
template = ./template.mustache;
extension = ".toml";
};
# https://github.com/makeworld-the-better-one/amfora/blob/master/default-config.toml
# Amfora requires a number of options to run - omitting everything I didn't
@ -52,7 +46,7 @@ in {
underline = true
# }}}
highlight_style = "${theme}"
highlight_style = "${config.lib.stylix.colors.scheme-name}"
# Defaults {{{
[auth]

View file

@ -0,0 +1,46 @@
## vim:set ft=toml:
## name: {{scheme-name}}
## adapted from: https://github.com/rose-pine/amfora/blob/main/themes/rose-pine.toml
bg = "{{base00-hex}}"
tab_num = "{{base0D-hex}}"
tab_divider = "{{base07-hex}}"
bottombar_label = "{{base0D-hex}}"
bottombar_text = "{{base05-hex}}"
bottombar_bg = "{{base01-hex}}"
scrollbar = "{{base01-hex}}"
hdg_1 = "{{base0D-hex}}"
hdg_2 = "{{base0C-hex}}"
hdg_3 = "{{base0A-hex}}"
amfora_link = "{{base09-hex}}"
foreign_link = "{{base04-hex}}"
link_number = "{{base03-hex}}"
regular_text = "{{base05-hex}}"
quote_text = "{{base06-hex}}"
preformatted_text = "{{base06-hex}}"
list_text = "{{base05-hex}}"
btn_bg = "{{base0B-hex}}"
btn_text = "{{base05-hex}}"
dl_choice_modal_bg = "{{base01-hex}}"
dl_choice_modal_text = "{{base05-hex}}"
dl_modal_bg = "{{base01-hex}}"
dl_modal_text = "{{base05-hex}}"
info_modal_bg = "{{base01-hex}}"
info_modal_text = "{{base05-hex}}"
error_modal_bg = "{{base01-hex}}"
error_modal_text = "{{base08-hex}}"
yesno_modal_bg = "{{base01-hex}}"
yesno_modal_text = "{{base05-hex}}"
tofu_modal_bg = "{{base01-hex}}"
tofu_modal_text = "{{base05-hex}}"
subscription_modal_bg = "{{base01-hex}}"
subscription_modal_text = "{{base05-hex}}"
input_modal_bg = "{{base01-hex}}"
input_modal_text = "{{base05-hex}}"
input_modal_field_bg = "{{base02-hex}}"
input_modal_field_text = "{{base05-hex}}"
bkmk_modal_bg = "{{base01-hex}}"
bkmk_modal_text = "{{base05-hex}}"
bkmk_modal_label = "{{base0D-hex}}"
bkmk_modal_field_bg = "{{base02-hex}}"
bkmk_modal_field_text = "{{base05-hex}}"

View file

@ -12,7 +12,6 @@ in {
enable = true;
settings = {
theme_background = false;
truecolor = true;
vim_keys = true;
};

View file

@ -22,5 +22,10 @@ in {
};
};
};
stylix.targets.cava = {
enable = true;
rainbow.enable = true;
};
};
}

View file

@ -19,30 +19,16 @@ in {
no_fade_in = false;
};
background = [
{
path = "${../../../wayland/hyprland/wallpaper.png}";
blur_passes = 3;
blur_size = 8;
}
];
input-field = [
{
size = "200, 50";
position = "0, -80";
monitor = "";
dots_center = true;
fade_on_empty = false;
# FIXME: Don't hardcode these.
font_color = "rgb(191724)";
inner_color = "rgb(ebbcba)";
outer_color = "rgb(191724)";
outline_thickness = 5;
placeholder_text = "password...";
shadow_passes = 2;
}
];
input-field = {
size = "200, 50";
position = "0, -80";
monitor = "";
dots_center = true;
fade_on_empty = false;
outline_thickness = 5;
placeholder_text = "password...";
shadow_passes = 2;
};
};
};
};

View file

@ -203,125 +203,109 @@ in {
style = let
transition = "all 0.3s cubic-bezier(.55,-0.68,.48,1.682)";
in
lib.concatStrings [
(lib.optionalString config.rose-pine.enable
#css
''
@define-color zero @base;
@define-color one @surface;
@define-color two @overlay;
@define-color four @subtle;
@define-color seven @highlightHigh;
@define-color eight @love;
@define-color b @pine;
@define-color e @gold;
@define-color d @iris;
@define-color accentFour @foam;
'')
# css
''
* {
font-family: ${config.marleyos.theme.fonts.monospace.name};
font-size: 16px;
border-radius: 0;
border: none;
min-height: 0;
}
# css
''
* {
font-family: ${config.stylix.fonts.monospace.name};
font-size: 16px;
border-radius: 0;
border: none;
min-height: 0;
}
window#waybar {
background: transparent;
}
window#waybar {
background: transparent;
}
#workspaces {
color: @zero;
background: @one;
margin: 4px 4px;
padding: 5px 5px;
border-radius: 16px;
}
#workspaces {
color: @base00;
background: @base01;
margin: 4px 4px;
padding: 5px 5px;
border-radius: 16px;
}
#workspaces button {
font-weight: bold;
padding: 0 5px;
margin: 0 3px;
border-radius: 16px;
color: @zero;
background: linear-gradient(45deg, @eight, @d);
opacity: 0.5;
transition: ${transition};
}
#workspaces button {
font-weight: bold;
padding: 0 5px;
margin: 0 3px;
border-radius: 16px;
color: @base00;
background: linear-gradient(45deg, @base08, @base0D);
opacity: 0.5;
transition: ${transition};
}
#workspaces button.active {
font-weight: bold;
padding: 0 5px;
margin: 0 3px;
border-radius: 16px;
color: @zero;
background: linear-gradient(45deg, @eight, @d);
opacity: 1.0;
transition: ${transition};
min-width: 40px;
}
#workspaces button.active {
font-weight: bold;
padding: 0 5px;
margin: 0 3px;
border-radius: 16px;
color: @base00;
background: linear-gradient(45deg, @base08, @base0D);
opacity: 1.0;
transition: ${transition};
min-width: 40px;
}
#workspaces button:hover {
font-weight: bold;
border-radius: 16px;
color: @zero;
background: linear-gradient(45deg, @eight, @iris);
opacity: 0.8;
transition: ${transition};
}
#workspaces button:hover {
font-weight: bold;
border-radius: 16px;
color: @base00;
background: linear-gradient(45deg, @base08, @iris);
opacity: 0.8;
transition: ${transition};
}
tooltip {
background: @zero;
border: 1px solid @eight;
border-radius: 12px;
}
tooltip {
background: @base00;
border: 1px solid @base08;
border-radius: 12px;
}
tooltip label {
color: @eight;
}
tooltip label {
color: @base08;
}
#window, #pulseaudio, #cpu, #memory, #idle_inhibitor {
font-weight: bold;
margin: 4px 0;
margin-left: 7px;
padding: 0 18px;
background: @four;
color: @zero;
border-radius: 24px 10px 24px 10px;
}
#window, #pulseaudio, #cpu, #memory, #idle_inhibitor {
font-weight: bold;
margin: 4px 0;
margin-left: 7px;
padding: 0 18px;
background: @base04;
color: @base00;
border-radius: 24px 10px 24px 10px;
}
#custom-startmenu {
color: @b;
background: @two;
font-size: 28px;
margin: 0;
padding: 0 30px 0 15px;
border-radius: 0 0 40px 0;
}
#custom-startmenu {
color: @base0B;
background: @base02;
font-size: 28px;
margin: 0;
padding: 0 30px 0 15px;
border-radius: 0 0 40px 0;
}
#network, #battery, #custom-notifications,
#tray, #custom-exit {
font-weight: bold;
background: @seven;
color: @zero;
margin: 4px 0;
margin-right: 7px;
border-radius: 10px 24px 10px 24px;
padding: 0 18px;
}
#network, #battery, #custom-notifications,
#tray, #custom-exit {
font-weight: bold;
background: @base07;
color: @base00;
margin: 4px 0;
margin-right: 7px;
border-radius: 10px 24px 10px 24px;
padding: 0 18px;
}
#clock {
font-weight: bold;
color: @zero;
background: linear-gradient(90deg, @e, @accentFour);
margin: 0;
padding: 0 15px 0 30px;
border-radius: 0 0 0 40px;
}
''
];
#clock {
font-weight: bold;
color: @base00;
background: linear-gradient(90deg, @base0E, @base0C);
margin: 0;
padding: 0 15px 0 30px;
border-radius: 0 0 0 40px;
}
'';
};
};
}

View file

@ -58,84 +58,75 @@ in {
}
];
style = lib.concatStrings [
(lib.optionalString config.rose-pine.enable
style = with config.lib.stylix.colors.withHashtag;
lib.concatStrings [
#css
''
@define-color zero #191724;
@define-color one #1f1d2e;
@define-color two #26233a;
@define-color four #908caa;
@define-color five #e0def4;
@define-color seven #524f67;
@define-color eight #eb6f92;
@define-color b #31748f;
@define-color e #f6c177;
@define-color d #c4a7e7;
@define-color c #9ccf38;
'')
# css
''
* {
font-family: ${config.marleyos.theme.fonts.monospace.name};
background-image: none;
transition: 20ms;
}
@define-color base05 ${base05};
@define-color base0B ${base0B};
''
# css
''
* {
font-family: ${config.stylix.fonts.monospace.name};
background-image: none;
transition: 20ms;
}
window {
background-color: rgba(12, 12, 12, 0.1);
}
window {
background-color: rgba(12, 12, 12, 0.1);
}
button {
color: @five;
font-size: 20px;
background-repeat: no-repeat;
background-position: center;
background-size: 25%;
border-style: solid;
background-color: rgba(12, 12, 12, 0.3);
border: 3px solid @five;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
}
button {
color: @base05;
font-size: 20px;
background-repeat: no-repeat;
background-position: center;
background-size: 25%;
border-style: solid;
background-color: rgba(12, 12, 12, 0.3);
border: 3px solid @base05;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
}
button:focus, button:active, button:hover {
color: @b;
background-color: rgba(12, 12, 12, 0.5);
border: 3px solid @b;
}
button:focus, button:active, button:hover {
color: @base0B;
background-color: rgba(12, 12, 12, 0.5);
border: 3px solid @base0B;
}
#lock {
margin: 10px;
border-radius: 20px;
background-image: image(url("${./lock.png}"));
}
#logout {
margin: 10px;
border-radius: 20px;
background-image: image(url("${./logout.png}"));
}
#reboot {
margin: 10px;
border-radius: 20px;
background-image: image(url("${./reboot.png}"));
}
#shutdown {
margin: 10px;
border-radius: 20px;
background-image: image(url("${./shutdown.png}"));
}
#suspend {
margin: 10px;
border-radius: 20px;
background-image: image(url("${./suspend.png}"));
}
#hibernate {
margin: 10px;
border-radius: 20px;
background-image: image(url("${./hibernate.png}"));
}
''
];
#lock {
margin: 10px;
border-radius: 20px;
background-image: image(url("${./lock.png}"));
}
#logout {
margin: 10px;
border-radius: 20px;
background-image: image(url("${./logout.png}"));
}
#reboot {
margin: 10px;
border-radius: 20px;
background-image: image(url("${./reboot.png}"));
}
#shutdown {
margin: 10px;
border-radius: 20px;
background-image: image(url("${./shutdown.png}"));
}
#suspend {
margin: 10px;
border-radius: 20px;
background-image: image(url("${./suspend.png}"));
}
#hibernate {
margin: 10px;
border-radius: 20px;
background-image: image(url("${./hibernate.png}"));
}
''
];
};
};
}

View file

@ -11,98 +11,56 @@ in {
services.dunst = {
enable = true;
# I don't want to use the rose-pine icons; also don't want to deal with
# the drop-in weirdness.
# TODO: Convert dunst.rose-pine to attr set to fix this.
rose-pine.enable = true;
iconTheme = with config.stylix.iconTheme; {
name =
if config.lib.stylix.colors.variant == "dark"
then dark
else light;
inherit package;
};
settings = lib.mkMerge [
### Rose Pine ###
(lib.mkIf config.rose-pine.enable {
global = {
width = 400;
offset = "20x60";
progress_bar_min_width = 380;
progress_bar_max_width = 380;
progress_bar_corner_radius = 2;
padding = 10;
horizontal_padding = 10;
frame_width = 1;
gap_size = 3;
corner_radius = 2;
background = "#26233a";
foreground = "#e0def4";
};
settings = {
global = with config.stylix.fonts; {
monitor = 0;
sort = "yes";
idle_threshold = 120;
font = "${monospace.name} ${toString sizes.popup}";
markup = "full";
show_age_threshold = 60;
word_wrap = "yes";
ignore_newline = "no";
stack_duplicates = true;
hide_duplicate_count = false;
show_indicators = "yes";
sticky_history = "yes";
history_length = 20;
browser = "${lib.getExe config.marleyos.apps.browser} --new-tab";
always_run_script = true;
title = "Dunst";
class = "Dunst";
mouse_left_click = "do_action";
mouse_middle_click = "close_current";
mouse_right_click = "close_all";
};
urgency_low = {
background = "#26273d";
highlight = "#31748f";
frame_color = "#31748f";
default_icon = "dialog-information";
format = "<b><span foreground='#31748f'>%s</span></b>\\n%b";
};
signed_on = {
appname = "Pidgin";
summary = "*signed on*";
urgency = "low";
};
urgency_normal = {
background = "#362e3c";
highlight = "#f6c177";
frame_color = "#f6c177";
default_icon = "dialog-warning";
format = "<b><span foreground='#f6c177'>%s</span></b>\\n%b";
};
signed_off = {
appname = "Pidgin";
summary = "*signed off*";
urgency = "low";
};
urgency_critical = {
background = "#35263d";
highlight = "#eb6f92";
frame_color = "#eb6f92";
default_icon = "dialog-error";
format = "<b><span foreground='#eb6f92'>%s</span></b>\\n%b";
};
})
### Custom ###
{
global = {
monitor = 0;
sort = "yes";
idle_threshold = 120;
font = config.marleyos.theme.fonts.monospace.name + " 10";
markup = "full";
show_age_threshold = 60;
word_wrap = "yes";
ignore_newline = "no";
stack_duplicates = true;
hide_duplicate_count = false;
show_indicators = "yes";
sticky_history = "yes";
history_length = 20;
browser = "/usr/bin/zen-browser --new-tab";
always_run_script = true;
title = "Dunst";
class = "Dunst";
mouse_left_click = "do_action";
mouse_middle_click = "close_current";
mouse_right_click = "close_all";
};
signed_on = {
appname = "Pidgin";
summary = "*signed on*";
urgency = "low";
};
signed_off = {
appname = "Pidgin";
summary = "*signed off*";
urgency = "low";
};
says = {
appname = "Pidgin";
summary = "*says*";
urgency = "critical";
};
}
];
says = {
appname = "Pidgin";
summary = "*says*";
urgency = "critical";
};
};
};
};
}

View file

@ -6,14 +6,7 @@
}: let
cfg = config.marleyos.services.swaybg;
in {
options.marleyos.services.swaybg = {
enable = lib.mkEnableOption "swaybg";
wallpaper = lib.mkOption {
type = lib.types.path;
description = "Path to the wallpaper to use.";
};
};
options.marleyos.services.swaybg.enable = lib.mkEnableOption "swaybg";
config = lib.mkIf cfg.enable {
home.packages = with pkgs; [
@ -34,7 +27,7 @@ in {
Service = {
Type = "exec";
ExecStart = "${lib.getExe pkgs.swaybg} -i ${cfg.wallpaper}";
ExecStart = "${lib.getExe pkgs.swaybg} -i ${config.stylix.image}";
ExecReload = "${lib.getExe' pkgs.coreutils "kill"} -SIGUSR2 $MAINPID";
KillMode = "mixed";
Restart = "on-failure";

View file

@ -1,8 +1,6 @@
{
lib,
config,
inputs,
pkgs,
...
}: let
cfg = config.marleyos.wayland.hyprland;
@ -50,24 +48,14 @@ in {
};
home.sessionVariables = let
cfg = config.home.pointerCursor;
cfg = config.stylix.cursor;
in {
HYPRCURSOR_THEME = cfg.name;
HYPRCURSOR_SIZE = 24;
HYPRCURSOR_SIZE = cfg.size;
};
home.packages =
lib.optional
config.rose-pine.enable
inputs.rose-pine-hyprcursor.packages.${pkgs.system}.default;
services.hyprpaper = {
enable = true;
settings = {
preload = "${./wallpaper.png}";
wallpaper = ", ${./wallpaper.png}";
};
};
wayland.windowManager.hyprland = {
@ -138,32 +126,22 @@ in {
"[workspace ${toString browserWs} silent] $browser"
];
# Fix WM thinking the cursor is bigger than it is, causing the pointer
# to be offset.
env =
[
"XCURSOR_SIZE,24"
"HYPRCURSOR_SIZE,24"
]
++ (lib.optional config.rose-pine.enable "HYPRCURSOR_THEME,rose-pine-hyprcursor");
workspace =
lib.mkIf (cfg ? monitors)
(map
(ws: "${toString ws}, monitor:${wsMons."${toString ws}"}")
workspaces);
"$main" = lib.mkIf config.rose-pine.enable "$love";
"$inactive" = lib.mkIf config.rose-pine.enable "$muted";
general = let
inherit (config.lib.stylix) colors;
general = {
rgb = color: "rgb(${color})";
in {
gaps_in = 5;
gaps_out = 20;
border_size = 2;
"col.inactive_border" = "$inactive";
"col.active_border" =
lib.mkIf config.rose-pine.enable "$rose $pine $love $iris 90deg";
"col.active_border" = with colors; "${rgb base0A} ${rgb base0B} ${rgb base08} ${rgb base0D} 90deg";
resize_on_border = false;
@ -177,7 +155,6 @@ in {
enabled = true;
range = 4;
render_power = 3;
color = "rgba(1a1a1aee)";
};
blur = {
@ -233,8 +210,6 @@ in {
"$mod" = "SUPER";
# When changing these, make sure to also update waybar's script, defined
# below.
bind = [
"$mod, Q, killactive,"
"$mod SHIFT, E, exit,"

View file

@ -25,10 +25,7 @@ in {
fuzzel.enable = true;
};
services = {
swaybg = {
enable = true;
wallpaper = ./wallpaper.png;
};
swaybg.enable = true;
swaync.enable = true;
};
};
@ -43,6 +40,7 @@ in {
prefer-no-csd = true;
hotkey-overlay.skip-at-startup = true;
### Startup Programs ###
spawn-at-startup = let
inherit (config.marleyos) apps;
in [
@ -51,18 +49,12 @@ in {
(cmd (lib.getExe apps.email))
];
### Layout ###
layout = let
hasTheme = config.rose-pine.enable;
mkTheme = lib.mkIf hasTheme;
colors =
if hasTheme
then config.rose-pine.palette
else null;
gradient = {
gradient = {
from = colors.rose.hex;
to = colors.iris.hex;
gradient = with config.lib.stylix.colors.withHashtag; {
from = base08;
to = base0D;
angle = 90;
};
};
@ -78,16 +70,9 @@ in {
default-column-width = {proportion = 0.5;};
focus-ring = {
width = 4;
active = mkTheme gradient;
inactive = {color = colors.highlight-high.hex;};
};
border = {
width = 4;
active = mkTheme gradient;
inactive = {color = colors.highlight-high.hex;};
active = gradient;
};
shadow = {
@ -103,8 +88,10 @@ in {
};
};
### Screenshots ###
screenshot-path = "~/pictures/screenshots/%Y-%m-%d %H-%M-%S.png";
### Workspaces ###
workspaces = {
"01-main" = {
open-on-output = builtins.elemAt cfg.monitors 0;
@ -120,6 +107,7 @@ in {
};
};
### Window Rules ###
window-rules =
[
{
@ -163,6 +151,7 @@ in {
}
]);
### Keybinds ###
binds = with config.lib.niri.actions; {
"Mod+Q".action = close-window;
"Mod+Shift+E".action = quit;

View file

@ -1,6 +1,7 @@
{
lib,
config,
pkgs,
...
}: let
cfg = config.marleyos.appearance.base;
@ -8,9 +9,39 @@ in {
options.marleyos.appearance.base.enable = lib.mkEnableOption "base";
config = lib.mkIf cfg.enable {
rose-pine = {
stylix = {
enable = true;
flavor = "main";
base16Scheme = "${pkgs.base16-schemes}/share/themes/rose-pine.yaml";
image = ./wallpaper.png;
fonts = {
serif = {
package = pkgs.eb-garamond;
name = "EB Garamond";
};
sansSerif = {
package = pkgs.dm-sans;
name = "DeepMind Sans";
};
monospace = {
package = pkgs.maple-mono-NF;
name = "Maple Mono";
};
emoji = {
package = pkgs.whatsapp-emoji-font;
name = "Apple Color Emoji";
};
sizes = {
terminal = 11;
};
};
cursor = {
package = pkgs.rose-pine-cursor;
name = "BreezeX-RosePine-Linux";
};
};
};
}

View file

Before

Width:  |  Height:  |  Size: 4.7 MiB

After

Width:  |  Height:  |  Size: 4.7 MiB

View file

@ -1,13 +0,0 @@
{
lib,
config,
...
}: let
cfg = config.marleyos.appearance.console;
in {
options.marleyos.appearance.console.enable = lib.mkEnableOption "console";
config = lib.mkIf cfg.enable {
console.rose-pine.enable = lib.mkIf config.rose-pine.enable true;
};
}

View file

@ -20,7 +20,6 @@ in {
appearance = {
base = enabled;
console = enabled;
};
programs = {

View file

@ -15,7 +15,6 @@ in {
appearance = {
base = enabled;
console = enabled;
};
programs = {

View file

@ -0,0 +1,7 @@
{lib, ...}: {
options.marleyos.isDesktop = lib.mkOption {
type = with lib.types; bool;
default = false;
description = "Whether this machine is used as a graphical desktop.";
};
}

View file

@ -0,0 +1,10 @@
_: final: prev: {
maple-mono-NF = prev.maple-mono-NF.overrideAttrs (old: {
src = prev.fetchFromGitHub {
owner = "punkfairie";
repo = "maple-font";
rev = "v1740887062";
hash = "sha256-e0c1c8wtprdgrYcQ7/RsiABIWUCPjVV8jxTLAjO5ZQk";
};
});
}

View file

@ -10,6 +10,7 @@ in {
marleyos = {
hasNvidia = true;
mounts.babeshare = enabled;
bundles.desktop = enabled;