1
1
Fork 1
mirror of https://github.com/oddlama/nix-config.git synced 2025-10-10 14:50:40 +02:00

refactor: remove stylix and some other unused stuff

This commit is contained in:
oddlama 2025-06-07 13:44:32 +02:00
parent 4324219f64
commit 4fea58a290
No known key found for this signature in database
GPG key ID: 14EFE510775FE39A
25 changed files with 81 additions and 9213 deletions

View file

@ -1,6 +1,5 @@
{
config,
inputs,
lib,
minimal,
pkgs,
@ -23,9 +22,6 @@ in
}
// optionalAttrs (!minimal) {
imports = [
inputs.stylix.nixosModules.stylix
inputs.whisper-overlay.nixosModules.default
./fonts.nix
./steam.nix
./xserver.nix
@ -64,74 +60,5 @@ in
binPath = lib.getExe pkgs.hyprland;
};
};
stylix = {
enable = true;
# I want to choose what to style myself.
autoEnable = false;
image = config.lib.stylix.pixel "base00";
polarity = "dark";
# onedark
# base16Scheme = {
# base00 = "#282c34";
# base01 = "#353b45";
# base02 = "#3e4451";
# base03 = "#545862";
# base04 = "#565c64";
# base05 = "#abb2bf";
# base06 = "#b6bdca";
# base07 = "#c8ccd4";
# base08 = "#e06c75";
# base09 = "#d19a66";
# base0A = "#e5c07b";
# base0B = "#98c379";
# base0C = "#56b6c2";
# base0D = "#61afef";
# base0E = "#c678dd";
# base0F = "#9378de";
# };
# based on decaycs-dark, normal variant
base16Scheme = {
base00 = "#101419";
base01 = "#171b20";
base02 = "#21262e";
base03 = "#242931";
base04 = "#485263";
base05 = "#b6beca";
base06 = "#dee1e6";
base07 = "#e3e6eb";
base08 = "#e05f65";
base09 = "#f9a872";
base0A = "#f1cf8a";
base0B = "#78dba9";
base0C = "#74bee9";
base0D = "#70a5eb";
base0E = "#c68aee";
base0F = "#9378de";
};
## based on decaycs-dark, bright variant
#base16Scheme = {
# base00 = "#101419";
# base01 = "#171B20";
# base02 = "#21262e";
# base03 = "#242931";
# base04 = "#485263";
# base05 = "#b6beca";
# base06 = "#dee1e6";
# base07 = "#e3e6eb";
# base08 = "#e5646a";
# base09 = "#f7b77c";
# base0A = "#f6d48f";
# base0B = "#94F7C5";
# base0C = "#79c3ee";
# base0D = "#75aaf0";
# base0E = "#cb8ff3";
# base0F = "#9d85e1";
#};
};
};
}

View file

@ -34,30 +34,21 @@
pkgs.noto-fonts-cjk-serif
pkgs.noto-fonts-emoji
pkgs.noto-fonts-extra
pkgs.dejavu_fonts
pkgs.segoe-ui-ttf
pkgs.jetbrains-mono
];
};
stylix.fonts = {
serif = {
package = pkgs.dejavu_fonts;
name = "IBM Plex Serif";
};
sansSerif = {
package = pkgs.segoe-ui-ttf;
name = "Segoe UI";
};
monospace = {
# No need for patched nerd fonts, kitty can pick up on them automatically,
# and ideally every program should do that: https://sw.kovidgoyal.net/kitty/faq/#kitty-is-not-able-to-use-my-favorite-font
package = pkgs.jetbrains-mono;
name = "JetBrains Mono";
};
emoji = {
package = pkgs.segoe-ui-ttf;
name = "Segoe UI Emoji";
fontconfig.defaultFonts = {
serif = [ "IBM Plex Serif" ];
sansSerif = [ "Segoe UI" ];
emoji = [ "Segoe UI Emoji" ];
monospace = [
# No need for patched nerd fonts, kitty can pick up on them automatically,
# and ideally every program should do that: https://sw.kovidgoyal.net/kitty/faq/#kitty-is-not-able-to-use-my-favorite-font
"JetBrains Mono"
];
};
};
}

View file

@ -13,8 +13,6 @@
inputs.nixos-extra-modules.homeManagerModules.default
inputs.nix-index-database.hmModules.nix-index
inputs.nixvim.homeManagerModules.nixvim
inputs.wired-notify.homeManagerModules.default
inputs.whisper-overlay.homeManagerModules.default
{
home.stateVersion = config.system.stateVersion;
}

660
flake.lock generated
View file

@ -49,73 +49,6 @@
"type": "github"
}
},
"base16": {
"inputs": {
"fromYaml": "fromYaml"
},
"locked": {
"lastModified": 1746562888,
"narHash": "sha256-YgNJQyB5dQiwavdDFBMNKk1wyS77AtdgDk/VtU6wEaI=",
"owner": "SenchoPens",
"repo": "base16.nix",
"rev": "806a1777a5db2a1ef9d5d6f493ef2381047f2b89",
"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": 1748408240,
"narHash": "sha256-9M2b1rMyMzJK0eusea0x3lyh3mu5nMeEDSc4RZkGm+g=",
"owner": "tinted-theming",
"repo": "base16-helix",
"rev": "6c711ab1a9db6f51e2f6887cc3345530b33e152e",
"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"
}
},
"crane": {
"flake": false,
"locked": {
@ -333,28 +266,6 @@
"type": "github"
}
},
"devshell_7": {
"inputs": {
"flake-utils": "flake-utils_5",
"nixpkgs": [
"whisper-overlay",
"nixpkgs"
]
},
"locked": {
"lastModified": 1717408969,
"narHash": "sha256-Q0OEFqe35fZbbRPPRdrjTUUChKVhhWXz3T9ZSKmaoVY=",
"owner": "numtide",
"repo": "devshell",
"rev": "1ebbe68d57457c8cae98145410b164b5477761f4",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "devshell",
"type": "github"
}
},
"disko": {
"inputs": {
"nixpkgs": [
@ -448,22 +359,6 @@
"type": "github"
}
},
"firefox-gnome-theme": {
"flake": false,
"locked": {
"lastModified": 1748383148,
"narHash": "sha256-pGvD/RGuuPf/4oogsfeRaeMm6ipUIznI2QSILKjKzeA=",
"owner": "rafaelmardojai",
"repo": "firefox-gnome-theme",
"rev": "4eb2714fbed2b80e234312611a947d6cb7d70caf",
"type": "github"
},
"original": {
"owner": "rafaelmardojai",
"repo": "firefox-gnome-theme",
"type": "github"
}
},
"flake-compat": {
"flake": false,
"locked": {
@ -480,37 +375,6 @@
"type": "github"
}
},
"flake-compat_10": {
"locked": {
"lastModified": 1747046372,
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_11": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_2": {
"flake": false,
"locked": {
@ -756,63 +620,6 @@
"type": "github"
}
},
"flake-parts_7": {
"inputs": {
"nixpkgs-lib": [
"stylix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1743550720,
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "c621e8422220273271f52058f618c94e405bb0f5",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_8": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib_4"
},
"locked": {
"lastModified": 1717285511,
"narHash": "sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_9": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib_5"
},
"locked": {
"lastModified": 1738453229,
"narHash": "sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm+zmZ7vxbJdo=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "32ea77a06711b758da0ad9bd6a844c5740a87abd",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-utils": {
"inputs": {
"systems": "systems_2"
@ -885,66 +692,6 @@
"type": "github"
}
},
"flake-utils_5": {
"inputs": {
"systems": "systems_8"
},
"locked": {
"lastModified": 1701680307,
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"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": [
"stylix",
"flake-compat"
],
"gitignore": "gitignore_8",
"nixpkgs": [
"stylix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1747372754,
"narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
@ -1098,67 +845,6 @@
"type": "github"
}
},
"gitignore_8": {
"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"
}
},
"gitignore_9": {
"inputs": {
"nixpkgs": [
"whisper-overlay",
"pre-commit-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": 1744584021,
"narHash": "sha256-0RJ4mJzf+klKF4Fuoc8VN8dpQQtZnKksFmR2jhWE1Ew=",
"owner": "GNOME",
"repo": "gnome-shell",
"rev": "52c517c8f6c199a1d6f5118fae500ef69ea845ae",
"type": "github"
},
"original": {
"owner": "GNOME",
"ref": "48.1",
"repo": "gnome-shell",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
@ -1587,30 +1273,6 @@
"url": "https://github.com/NixOS/nixpkgs/archive/072a6db25e947df2f31aab9eccd0ab75d5b2da11.tar.gz"
}
},
"nixpkgs-lib_4": {
"locked": {
"lastModified": 1717284937,
"narHash": "sha256-lIbdfCsf8LMFloheeE6N31+BMIeixqyQWbSr2vk79EQ=",
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/eb9ceca17df2ea50a250b6b27f7bf6ab0186f198.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/eb9ceca17df2ea50a250b6b27f7bf6ab0186f198.tar.gz"
}
},
"nixpkgs-lib_5": {
"locked": {
"lastModified": 1738452942,
"narHash": "sha256-vJzFZGaCpnmo7I6i416HaBLpC+hvcURh/BQwROcGIp8=",
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/072a6db25e947df2f31aab9eccd0ab75d5b2da11.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/072a6db25e947df2f31aab9eccd0ab75d5b2da11.tar.gz"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1730741070,
@ -1627,38 +1289,6 @@
"type": "github"
}
},
"nixpkgs-stable_2": {
"locked": {
"lastModified": 1718447546,
"narHash": "sha256-JHuXsrC9pr4kA4n7LuuPfWFJUVlDBVJ1TXDVpHEuUgM=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "842253bf992c3a7157b67600c2857193f126563a",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-23.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1736320768,
"narHash": "sha256-nIYdTAiKIGnFNugbomgBJR+Xv5F1ZQU+HfaBqJKroC0=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "4bc9c909d9ac828a039f288cf872d16d38185db8",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixvim": {
"inputs": {
"flake-parts": "flake-parts_6",
@ -1682,32 +1312,6 @@
"type": "github"
}
},
"nur": {
"inputs": {
"flake-parts": [
"stylix",
"flake-parts"
],
"nixpkgs": [
"stylix",
"nixpkgs"
],
"treefmt-nix": "treefmt-nix_4"
},
"locked": {
"lastModified": 1748730660,
"narHash": "sha256-5LKmRYKdPuhm8j5GFe3AfrJL8dd8o57BQ34AGjJl1R0=",
"owner": "nix-community",
"repo": "NUR",
"rev": "2c0bc52fe14681e9ef60e3553888c4f086e46ecb",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "NUR",
"type": "github"
}
},
"nuschtosSearch": {
"inputs": {
"flake-utils": "flake-utils_4",
@ -1943,30 +1547,6 @@
"type": "github"
}
},
"pre-commit-hooks_7": {
"inputs": {
"flake-compat": "flake-compat_11",
"gitignore": "gitignore_9",
"nixpkgs": [
"whisper-overlay",
"nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable_2"
},
"locked": {
"lastModified": 1718879355,
"narHash": "sha256-RTyqP4fBX2MdhNuMP+fnR3lIwbdtXhyj7w7fwtvgspc=",
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"rev": "8cd35b9496d21a6c55164d8547d9d5280162b07a",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"type": "github"
}
},
"purescript-overlay": {
"inputs": {
"flake-compat": "flake-compat_2",
@ -2073,10 +1653,7 @@
"nixpkgs": "nixpkgs",
"nixvim": "nixvim",
"pre-commit-hooks": "pre-commit-hooks_6",
"stylix": "stylix",
"treefmt-nix": "treefmt-nix_5",
"whisper-overlay": "whisper-overlay",
"wired-notify": "wired-notify"
"treefmt-nix": "treefmt-nix_4"
}
},
"rust-overlay": {
@ -2144,24 +1721,6 @@
"type": "github"
}
},
"rust-overlay_4": {
"inputs": {
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1740709839,
"narHash": "sha256-4dF++MXIXna/AwlZWDKr7bgUmY4xoEwvkF1GewjNrt0=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "b4270835bf43c6f80285adac6f66a26d83f0f277",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"slimlock": {
"inputs": {
"nixpkgs": [
@ -2226,45 +1785,6 @@
"url": "https://spectrum-os.org/git/spectrum"
}
},
"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_10",
"flake-parts": "flake-parts_7",
"git-hooks": "git-hooks",
"gnome-shell": "gnome-shell",
"home-manager": [
"home-manager"
],
"nixpkgs": [
"nixpkgs"
],
"nur": "nur",
"systems": "systems_7",
"tinted-foot": "tinted-foot",
"tinted-kitty": "tinted-kitty",
"tinted-schemes": "tinted-schemes",
"tinted-tmux": "tinted-tmux",
"tinted-zed": "tinted-zed"
},
"locked": {
"lastModified": 1749236315,
"narHash": "sha256-Ndtdvwz8D4WOYHl5mj9d5F5iC8WPH6uPNF7RcU3QzmE=",
"owner": "danth",
"repo": "stylix",
"rev": "29d006198ee05143cca8b4b89f37025823da1bcc",
"type": "github"
},
"original": {
"owner": "danth",
"repo": "stylix",
"type": "github"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
@ -2355,117 +1875,6 @@
"type": "github"
}
},
"systems_7": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_8": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"tinted-foot": {
"flake": false,
"locked": {
"lastModified": 1726913040,
"narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=",
"owner": "tinted-theming",
"repo": "tinted-foot",
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-foot",
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
"type": "github"
}
},
"tinted-kitty": {
"flake": false,
"locked": {
"lastModified": 1735730497,
"narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=",
"owner": "tinted-theming",
"repo": "tinted-kitty",
"rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-kitty",
"type": "github"
}
},
"tinted-schemes": {
"flake": false,
"locked": {
"lastModified": 1748180480,
"narHash": "sha256-7n0XiZiEHl2zRhDwZd/g+p38xwEoWtT0/aESwTMXWG4=",
"owner": "tinted-theming",
"repo": "schemes",
"rev": "87d652edd26f5c0c99deda5ae13dfb8ece2ffe31",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "schemes",
"type": "github"
}
},
"tinted-tmux": {
"flake": false,
"locked": {
"lastModified": 1748740859,
"narHash": "sha256-OEM12bg7F4N5WjZOcV7FHJbqRI6jtCqL6u8FtPrlZz4=",
"owner": "tinted-theming",
"repo": "tinted-tmux",
"rev": "57d5f9683ff9a3b590643beeaf0364da819aedda",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-tmux",
"type": "github"
}
},
"tinted-zed": {
"flake": false,
"locked": {
"lastModified": 1725758778,
"narHash": "sha256-8P1b6mJWyYcu36WRlSVbuj575QWIFZALZMTg5ID/sM4=",
"owner": "tinted-theming",
"repo": "base16-zed",
"rev": "122c9e5c0e6f27211361a04fae92df97940eccf9",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-zed",
"type": "github"
}
},
"treefmt": {
"inputs": {
"nixpkgs": [
@ -2552,28 +1961,6 @@
}
},
"treefmt-nix_4": {
"inputs": {
"nixpkgs": [
"stylix",
"nur",
"nixpkgs"
]
},
"locked": {
"lastModified": 1733222881,
"narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "49717b5af6f80172275d47a418c9719a31a78b53",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"treefmt-nix_5": {
"inputs": {
"nixpkgs": [
"nixpkgs"
@ -2614,51 +2001,6 @@
"repo": "treefmt-nix",
"type": "github"
}
},
"whisper-overlay": {
"inputs": {
"devshell": "devshell_7",
"flake-parts": "flake-parts_8",
"nixpkgs": [
"nixpkgs"
],
"pre-commit-hooks": "pre-commit-hooks_7"
},
"locked": {
"lastModified": 1721992624,
"narHash": "sha256-qwfGxSjdUODysf93GtAK6v5GS0JAYwZeWVr8lQEBkPw=",
"owner": "oddlama",
"repo": "whisper-overlay",
"rev": "b851520617887f09be614a990b2d50caba093525",
"type": "github"
},
"original": {
"owner": "oddlama",
"repo": "whisper-overlay",
"type": "github"
}
},
"wired-notify": {
"inputs": {
"flake-parts": "flake-parts_9",
"nixpkgs": [
"nixpkgs"
],
"rust-overlay": "rust-overlay_4"
},
"locked": {
"lastModified": 1743305055,
"narHash": "sha256-NIsi8Dno9YsOLUUTrLU4p+hxYeJr3Vkg1gIpQKVTaDs=",
"owner": "Toqozz",
"repo": "wired-notify",
"rev": "75d43f54a02b15f2a15f5c1a0e1c7d15100067a6",
"type": "github"
},
"original": {
"owner": "Toqozz",
"repo": "wired-notify",
"type": "github"
}
}
},
"root": "root",

View file

@ -95,26 +95,10 @@
inputs.nixpkgs.follows = "nixpkgs";
};
stylix = {
url = "github:danth/stylix";
inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager";
};
treefmt-nix = {
url = "github:numtide/treefmt-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
whisper-overlay = {
url = "github:oddlama/whisper-overlay";
inputs.nixpkgs.follows = "nixpkgs";
};
wired-notify = {
url = "github:Toqozz/wired-notify";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =

View file

@ -57,13 +57,6 @@
graphical.gaming.enable = true;
stylix.fonts.sizes = {
#desktop = 20;
applications = 10;
terminal = 20;
popups = 20;
};
nix.settings.trusted-substituters = [
"https://ai.cachix.org"
];

View file

@ -40,7 +40,6 @@
inputs.nix-topology.overlays.default
inputs.nixos-extra-modules.overlays.default
inputs.nixvim.overlays.default
inputs.wired-notify.overlays.default
];
node.name = name;

View file

@ -19,9 +19,5 @@ _inputs: [
# ];
ente-web = prev.callPackage ./ente-web.nix { };
formats = prev.formats // {
ron = import ./ron.nix { inherit (prev) lib pkgs; };
};
})
]

View file

@ -1,180 +0,0 @@
{
lib,
pkgs,
...
}:
{
extensions ? [ ],
}:
let
inherit (lib)
boolToString
concatMapStrings
concatStringsSep
escape
length
mapAttrsToList
stringLength
types
;
toRon =
indent: value:
with builtins;
if value == null then
"None"
else if isBool value then
boolToString value
else if isInt value || isFloat value then
toString value
else if isString value then
string value
else if isList value then
list indent value
else if isAttrs value then
attrs indent value
else
abort "formats.ron: should never happen (value = ${value})";
specialType =
indent:
{
value,
_ronType,
...
}@args:
if _ronType == "literal" then
value
else if _ronType == "raw_string" then
rawString value
else if _ronType == "char" then
char value
else if _ronType == "optional" then
some indent value
else if _ronType == "tuple" then
tuple indent value
else if _ronType == "struct" then
struct indent args
else
abort "formats.ron: should never happen (_ronType = ${_ronType})";
escapedValues = escape [
"\\"
"\""
];
string = value: ''"${escapedValues value}"'';
listContent = indent: values: concatStringsSep ",\n${indent}" (map (toRon indent) values);
list =
indent: values:
if length values <= 1 then
"[${listContent indent values}]"
else
let
newIndent = "${indent}\t";
in
"[\n${newIndent}${listContent newIndent values}\n${indent}]";
attrs =
indent: set:
if set ? _ronType then
specialType indent set
else
let
newIndent = "${indent}\t";
toEntry = n: v: "${toRon newIndent n}: ${toRon newIndent v}";
entries = concatStringsSep ",\n${newIndent}" (mapAttrsToList toEntry set);
in
"{\n${indent}${entries}\n${indent}}";
rawString = value: ''r#"${value}"#'';
char = value: "'${escapedValues value}'";
some = indent: value: "Some(${toRon indent value})";
tuple =
indent: values:
let
newIndent = "${indent}\t";
in
"(\n${newIndent}${listContent newIndent values}\n${indent})";
struct =
indent:
{
name,
value,
...
}:
let
newIndent = "${indent}\t";
toEntry = n: v: "${n}: ${toRon newIndent v}";
entriesStr =
if value ? _ronType then
specialType indent value
else if !builtins.isAttrs value then
toRon indent value
else
let
entries = mapAttrsToList toEntry value;
entriesStrSpace = concatStringsSep ", " entries;
entriesStrNl = "\n${newIndent}${concatStringsSep ",\n${newIndent}" entries}\n${indent}";
in
if stringLength (indent + entriesStrSpace) < 120 then entriesStrSpace else entriesStrNl;
in
if stringLength name == 0 then "(${entriesStr})" else "${name} (${entriesStr})";
toFile = value: ''${concatMapStrings (x: "${x}\n") extensions}${toRon "" value}'';
in
{
type =
let
valueType =
types.nullOr (
types.oneOf [
types.bool
types.int
types.float
types.str
(types.attrsOf valueType)
(types.listOf valueType)
]
)
// {
description = "RON value";
};
in
valueType;
lib =
let
mkType = typeName: value: {
inherit value;
_ronType = typeName;
};
in
rec {
mkLiteral = mkType "literal";
rawString = mkType "raw_string";
char = mkType "character";
some = mkType "optional";
enum = mkLiteral;
tuple = mkType "tuple";
struct = name: value: {
inherit value name;
_ronType = "struct";
};
types = { };
};
generate =
name: value:
pkgs.runCommand name
{
value = toFile value;
passAsFile = [ "value" ];
}
''
cp "$valuePath" "$out"
'';
}

View file

@ -21,8 +21,6 @@ writeShellApplication {
--transient \
--hint=string:image-path:"$image" \
--hint=int:value:"$value" \
--hint="string:wired-tag:indicator" \
--hint="string:wired-note:brightness" \
--expire-time=1000 \
|| true
'';

View file

@ -19,7 +19,6 @@ writeShellApplication {
grimblast --freeze save screen "$out" || exit 2
notify-send \
"📷 Screenshot captured" "💾 Saved to $out" \
--hint="string:wired-tag:screenshot-$date" \
|| true
'';
}

View file

@ -27,10 +27,8 @@ writeShellApplication {
fi
if [[ "$value" -gt 100 ]]; then
note=volume-overdrive
indicator_value=$((value - 100))
else
note=volume
indicator_value="$value"
fi
@ -39,8 +37,6 @@ writeShellApplication {
--transient \
--hint=string:image-path:"$image" \
--hint=int:value:"$indicator_value" \
--hint="string:wired-tag:indicator" \
--hint="string:wired-note:$note" \
--expire-time=1000 \
|| true
'';

View file

@ -1,568 +0,0 @@
[%General]
author=KvBase16 by oddlama based on KvLibadwaita Dark by Vince Liuice, based on KvAdapta by Tsu Jan
comment=An base16 theme based on KvLibadwaita
x11drag=menubar_and_primary_toolbar
alt_mnemonic=true
left_tabs=false
attach_active_tab=false
mirror_doc_tabs=false
group_toolbar_buttons=true
toolbar_item_spacing=0
toolbar_interior_spacing=2
spread_progressbar=true
composite=true
menu_shadow_depth=16
spread_menuitems=true
tooltip_shadow_depth=7
splitter_width=1
scroll_width=9
scroll_arrows=false
scroll_min_extent=60
slider_width=2
slider_handle_width=23
slider_handle_length=22
tickless_slider_handle_size=22
center_toolbar_handle=true
check_size=24
textless_progressbar=false
progressbar_thickness=2
menubar_mouse_tracking=true
toolbutton_style=1
double_click=false
translucent_windows=false
blurring=false
popup_blurring=false
vertical_spin_indicators=false
spin_button_width=24
fill_rubberband=false
merge_menubar_with_toolbar=true
small_icon_size=16
large_icon_size=32
button_icon_size=16
toolbar_icon_size=16
combo_as_lineedit=true
animate_states=true
button_contents_shift=false
combo_menu=true
hide_combo_checkboxes=true
combo_focus_rect=false
groupbox_top_label=true
inline_spin_indicators=true
joined_inactive_tabs=false
layout_spacing=6
layout_margin=9
scrollbar_in_view=true
transient_scrollbar=true
transient_groove=true
submenu_overlap=0
tooltip_delay=0
tree_branch_line=true
no_window_pattern=false
opaque=kaffeine,kmplayer,subtitlecomposer,kdenlive,vlc,smplayer,smplayer2,avidemux,avidemux2_qt4,avidemux3_qt4,avidemux3_qt5,kamoso,QtCreator,VirtualBox,trojita,dragon,digikam
reduce_window_opacity=0
respect_DE=true
scrollable_menu=false
submenu_delay=150
no_inactiveness=false
reduce_menu_opacity=0
click_behavior=0
contrast=1.00
dialog_button_layout=0
intensity=1.00
saturation=1.00
shadowless_popup=false
drag_from_buttons=false
menu_blur_radius=0
tooltip_blur_radius=0
[GeneralColors]
window.color=#2c2c2c
base.color=#2c2c2c
alt.base.color=#2e2e2e
button.color=#4d4d4d
light.color=#535353
mid.light.color=#474747
dark.color=#282828
mid.color=#323232
highlight.color=#3584e4
inactive.highlight.color=#3584e4
text.color=#dfdfdf
window.text.color=#dfdfdf
button.text.color=#dfdfdf
disabled.text.color=#696969
tooltip.text.color=#efefef
highlight.text.color=#ffffff
link.color=#0057AE
link.visited.color=#E040FB
progress.indicator.text.color=#dfdfdf
[Hacks]
transparent_ktitle_label=true
transparent_dolphin_view=true
transparent_pcmanfm_sidepane=true
blur_translucent=false
transparent_menutitle=true
respect_darkness=true
kcapacitybar_as_progressbar=true
force_size_grip=true
iconless_pushbutton=true
iconless_menu=false
disabled_icon_opacity=100
lxqtmainmenu_iconsize=16
normal_default_pushbutton=true
single_top_toolbar=true
tint_on_mouseover=0
transparent_pcmanfm_view=true
no_selection_tint=true
transparent_arrow_button=true
middle_click_scroll=false
opaque_colors=false
kinetic_scrolling=false
scroll_jump_workaround=true
centered_forms=false
noninteger_translucency=false
style_vertical_toolbars=false
blur_only_active_window=true
[PanelButtonCommand]
frame=true
frame.element=button
frame.top=6
frame.bottom=6
frame.left=6
frame.right=6
interior=true
interior.element=button
indicator.size=8
text.normal.color=#dfdfdf
text.focus.color=white
text.press.color=white
text.toggle.color=#ffffff
text.shadow=0
text.margin=4
text.iconspacing=4
indicator.element=arrow
frame.expansion=0
[PanelButtonTool]
inherits=PanelButtonCommand
text.normal.color=#dfdfdf
text.focus.color=white
text.press.color=white
text.toggle.color=#ffffff
text.bold=false
indicator.element=arrow
indicator.size=0
frame.expansion=0
[ToolbarButton]
frame=true
frame.element=tbutton
interior.element=tbutton
frame.top=16
frame.bottom=16
frame.left=16
frame.right=16
indicator.element=tarrow
text.normal.color=#dfdfdf
text.focus.color=white
text.press.color=white
text.toggle.color=white
text.bold=false
frame.expansion=32
[Dock]
inherits=PanelButtonCommand
interior.element=dock
frame.element=dock
frame.top=1
frame.bottom=1
frame.left=1
frame.right=1
text.normal.color=#dfdfdf
[DockTitle]
inherits=PanelButtonCommand
frame=false
interior=false
text.normal.color=#dfdfdf
text.focus.color=white
text.bold=false
[IndicatorSpinBox]
inherits=PanelButtonCommand
frame=true
interior=true
frame.top=2
frame.bottom=2
frame.left=2
frame.right=2
indicator.element=spin
indicator.size=8
text.normal.color=#dfdfdf
text.margin.top=2
text.margin.bottom=2
text.margin.left=2
text.margin.right=2
[RadioButton]
inherits=PanelButtonCommand
frame=false
interior.element=radio
text.normal.color=#dfdfdf
text.focus.color=white
min_width=+0.3font
min_height=+0.3font
[CheckBox]
inherits=PanelButtonCommand
frame=false
interior.element=checkbox
text.normal.color=#dfdfdf
text.focus.color=white
min_width=+0.3font
min_height=+0.3font
[Focus]
inherits=PanelButtonCommand
frame=true
frame.element=focus
frame.top=2
frame.bottom=2
frame.left=2
frame.right=2
frame.patternsize=14
[GenericFrame]
inherits=PanelButtonCommand
frame=true
interior=false
frame.element=common
interior.element=common
frame.top=1
frame.bottom=1
frame.left=1
frame.right=1
[LineEdit]
inherits=PanelButtonCommand
frame.element=lineedit
interior.element=lineedit
frame.top=6
frame.bottom=6
frame.left=6
frame.right=6
text.margin.top=2
text.margin.bottom=2
text.margin.left=2
text.margin.right=2
[ToolbarLineEdit]
frame.element=lineedit
interior.element=lineedit
[DropDownButton]
inherits=PanelButtonCommand
indicator.element=arrow-down
[IndicatorArrow]
indicator.element=arrow
indicator.size=8
[ToolboxTab]
inherits=PanelButtonCommand
text.normal.color=#dfdfdf
text.press.color=#dfdfdf
text.focus.color=white
[Tab]
inherits=PanelButtonCommand
interior.element=tab
text.margin.left=8
text.margin.right=8
text.margin.top=0
text.margin.bottom=0
frame.element=tab
indicator.element=tab
indicator.size=22
frame.top=8
frame.bottom=8
frame.left=8
frame.right=8
text.normal.color=#dfdfdf
text.focus.color=#dfdfdf
text.press.color=white
text.toggle.color=white
frame.expansion=0
text.bold=false
[TabFrame]
inherits=PanelButtonCommand
frame.element=tabframe
interior.element=tabframe
frame.top=24
frame.bottom=24
frame.left=24
frame.right=24
[TreeExpander]
inherits=PanelButtonCommand
indicator.size=8
indicator.element=tree
[HeaderSection]
inherits=PanelButtonCommand
interior.element=header
frame.element=header
frame.top=0
frame.bottom=1
frame.left=1
frame.right=1
text.normal.color=#dfdfdf
text.focus.color=white
text.press.color=white
text.toggle.color=white
frame.expansion=0
[SizeGrip]
indicator.element=resize-grip
[Toolbar]
inherits=PanelButtonCommand
indicator.element=toolbar
indicator.size=5
text.margin=0
interior.element=menubar
frame.element=menubar
text.normal.color=#dfdfdf
text.focus.color=white
text.press.color=#dfdfdf
text.toggle.color=white
frame.left=6
frame.right=6
frame.top=0
frame.bottom=1
frame.expansion=0
[Slider]
inherits=PanelButtonCommand
frame.element=slider
focusFrame=true
interior.element=slider
frame.top=3
frame.bottom=3
frame.left=3
frame.right=3
[SliderCursor]
inherits=PanelButtonCommand
frame=false
interior.element=slidercursor
[Progressbar]
inherits=PanelButtonCommand
frame.element=progress
interior.element=progress
text.margin=0
text.normal.color=#dfdfdf
text.focus.color=#dfdfdf
text.press.color=#dfdfdf
text.toggle.color=#dfdfdf
text.bold=false
frame.expansion=8
[ProgressbarContents]
inherits=PanelButtonCommand
frame=true
frame.element=progress-pattern
interior.element=progress-pattern
[ItemView]
inherits=PanelButtonCommand
text.margin=0
frame.element=itemview
interior.element=itemview
frame.top=4
frame.bottom=4
frame.left=4
frame.right=4
text.margin.top=0
text.margin.bottom=0
text.margin.left=8
text.margin.right=8
text.normal.color=#dfdfdf
text.focus.color=#dfdfdf
text.press.color=#ffffff
text.toggle.color=#ffffff
min_width=+0.3font
min_height=+0.3font
frame.expansion=0
[Splitter]
interior.element=splitter
frame=false
indicator.size=0
[Scrollbar]
inherits=PanelButtonCommand
indicator.element=arrow
indicator.size=12
[ScrollbarSlider]
inherits=PanelButtonCommand
frame.element=scrollbarslider
interior=false
frame.left=5
frame.right=5
frame.top=5
frame.bottom=5
indicator.element=grip
indicator.size=12
[ScrollbarGroove]
inherits=PanelButtonCommand
interior=false
frame=false
[Menu]
inherits=PanelButtonCommand
frame.top=8
frame.bottom=8
frame.left=8
frame.right=8
frame.element=menu
interior.element=menu
text.normal.color=#dedede
text.shadow=false
text.bold=false
[MenuItem]
inherits=PanelButtonCommand
frame=true
frame.element=menuitem
interior.element=menuitem
indicator.element=menuitem
text.normal.color=#dedede
text.focus.color=#dedede
text.margin.top=0
text.margin.bottom=0
text.margin.left=6
text.margin.right=6
frame.top=4
frame.bottom=4
frame.left=12
frame.right=12
text.bold=false
frame.expansion=0
[MenuBar]
inherits=PanelButtonCommand
frame.element=menubar
interior.element=menubar
frame.bottom=0
text.normal.color=#dfdfdf
text.focus.color=#ffffff
text.press.color=#ffffff
text.toggle.color=#ffffff
frame.expansion=0
text.bold=false
[MenuBarItem]
inherits=PanelButtonCommand
interior=true
interior.element=menubaritem
frame.element=menubaritem
frame.top=2
frame.bottom=2
frame.left=2
frame.right=2
text.margin.left=4
text.margin.right=4
text.margin.top=0
text.margin.bottom=0
text.normal.color=#dfdfdf
text.focus.color=#ffffff
text.press.color=#ffffff
text.toggle.color=#ffffff
text.bold=false
min_width=+0.3font
min_height=+0.3font
frame.expansion=0
[TitleBar]
inherits=PanelButtonCommand
frame=false
text.margin.top=2
text.margin.bottom=2
text.margin.left=2
text.margin.right=2
interior.element=titlebar
indicator.size=16
indicator.element=mdi
text.normal.color=#787878
text.focus.color=#dfdfdf
text.bold=false
text.italic=true
frame.expansion=0
[ComboBox]
inherits=PanelButtonCommand
frame.element=combo
interior.element=combo
frame.top=6
frame.bottom=6
frame.left=6
frame.right=6
text.margin.top=2
text.margin.bottom=2
text.margin.left=2
text.margin.right=2
text.focus.color=white
text.press.color=#dfdfdf
text.toggle.color=white
[GroupBox]
inherits=GenericFrame
frame=false
text.shadow=0
text.margin=0
text.normal.color=#dfdfdf
text.focus.color=white
text.bold=false
frame.expansion=0
[TabBarFrame]
inherits=GenericFrame
frame=false
frame.element=tabBarFrame
interior=false
frame.top=0
frame.bottom=0
frame.left=0
frame.right=0
[ToolTip]
inherits=GenericFrame
frame.top=6
frame.bottom=6
frame.left=6
frame.right=6
interior=true
text.shadow=0
text.margin=6
interior.element=tooltip
frame.element=tooltip
frame.expansion=6
[StatusBar]
inherits=GenericFrame
frame=false
interior=false
[Window]
interior=true
interior.element=window
frame=true
frame.element=window
frame.bottom=10
frame.top=10

File diff suppressed because it is too large Load diff

Before

Width:  |  Height:  |  Size: 203 KiB

View file

@ -18,7 +18,6 @@
# X11
./i3.nix
./flameshot.nix
./wired-notify.nix
# Wayland
./gpu-screen-recorder.nix
@ -27,7 +26,6 @@
./sway.nix
./swaync.nix
./waybar.nix
./whisper-overlay.nix
]
++ lib.optionals nixosConfig.graphical.gaming.enable [
./games

View file

@ -5,7 +5,7 @@
...
}:
let
colors = config.lib.stylix.colors.withHashtag;
colors = config.lib.colors.withHashtag;
in
{
xdg.configFile."flameshot/flameshot.ini".source = (pkgs.formats.ini { }).generate "flameshot.ini" {

View file

@ -1,12 +1,26 @@
{ config, ... }:
{
home.persistence."/state".files = [
".cache/fuzzel"
];
stylix.targets.fuzzel.enable = true;
programs.fuzzel = {
enable = true;
settings.colors = with config.lib.colors.hex; {
background = "${base00}ff";
text = "${base05}ff";
placeholder = "${base03}ff";
prompt = "${base05}ff";
input = "${base05}ff";
match = "${base0A}ff";
selection = "${base03}ff";
selection-text = "${base05}ff";
selection-match = "${base0A}ff";
counter = "${base06}ff";
border = "${base0D}ff";
};
settings.main = {
font = "Segoe UI:size=20";
launch-prefix = "uwsm app --";
};
};

View file

@ -238,7 +238,6 @@ in
};
systemd.user.services = {
wired.Install.WantedBy = lib.mkForce [ "i3-session.target" ];
flameshot.Install.WantedBy = lib.mkForce [ "i3-session.target" ];
};

View file

@ -1,6 +1,4 @@
{
config,
lib,
pkgs,
...
}:
@ -8,13 +6,18 @@
home.sessionVariables = {
TERMINFO_DIRS = "${pkgs.kitty.terminfo.outPath}/share/terminfo";
};
stylix.targets.kitty.enable = true;
programs.kitty = {
enable = true;
font = {
package = pkgs.jetbrains-mono;
name = "JetBrains Mono";
size = 20;
};
settings = {
bold_font = "${config.programs.kitty.font.name} Bold";
italic_font = "${config.programs.kitty.font.name} Italic";
bold_italic_font = "${config.programs.kitty.font.name} Bold Italic";
bold_font = "JetBrains Mono Bold";
italic_font = "JetBrains Mono Italic";
bold_italic_font = "JetBrains Mono Bold Italic";
# Add nerd font symbol map. Not sure why it is suddenly needed since 0.32.0 (https://github.com/kovidgoyal/kitty/issues/7081)
symbol_map = "U+23FB-U+23FE,U+2665,U+26A1,U+2B58,U+E000-U+E00A,U+E0A0-U+E0A2,U+E0A3,U+E0B0-U+E0B3,U+E0B4-U+E0C8,U+E0CA,U+E0CC-U+E0D4,U+E200-U+E2A9,U+E300-U+E3E3,U+E5FA-U+E6B1,U+E700-U+E7C5,U+EA60-U+EBEB,U+F000-U+F2E0,U+F300-U+F372,U+F400-U+F532,U+F500-U+FD46,U+F0001-U+F1AF0 Symbols Nerd Font Mono";
@ -73,10 +76,8 @@
"ctrl+shift+," = "change_font_size all +2.0";
"ctrl+shift+w" = "no_op";
};
# XXX: mkForce to prevent stylix from appending theme.
# Fix this by making a correct theme that can be used.
# TODO aaaaaaaaaa
extraConfig = lib.mkForce ''
extraConfig = ''
# Use nvim as scrollback pager
scrollback_pager nvim -u NONE -c "set nonumber nolist showtabline=0 foldcolumn=0 laststatus=0" -c "autocmd TermOpen * normal G" -c "silent write! /tmp/kitty_scrollback_buffer | te head -c-1 /tmp/kitty_scrollback_buffer; rm /tmp/kitty_scrollback_buffer; cat"
'';

View file

@ -66,7 +66,7 @@
};
style =
lib.concatLines (
map (c: "@define-color ${c} ${config.lib.stylix.colors.withHashtag.${c}};") [
map (c: "@define-color ${c} ${config.lib.colors.withHashtag.${c}};") [
"base00"
"base01"
"base02"

View file

@ -1,129 +0,0 @@
#!/usr/bin/env bash
short_summary=("Short summary")
long_summary=("Long summary, it will be truncated because it is really really long")
short_body=("Short body.")
long_body=("Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.")
app_discord=(
"--app-name=Discord"
"--icon=/run/current-system/etc/profiles/per-user/$USER/share/pixmaps/discord.png"
)
image_1=("--hint=string:image-path:$HOME/Downloads/img.jpg")
urgency_low=("--urgency=low")
urgency_normal=("--urgency=normal")
urgency_critical=("--urgency=critical")
slider_0=("-h" "int:value:0")
slider_25=("-h" "int:value:25")
slider_100=("-h" "int:value:100")
actions_yes_no=("-A" "yes" "-A" "no")
actions_5=("-A" "yes" "-A" "no" "-A" "maybe" "-A" "cancel" "-A" "very long name is truncated")
function show() {
args=()
while [[ $# -gt 0 ]]; do
if [[ -v "$1" ]]; then
x="$1[@]"
args+=("${!x}")
else
args+=("$1")
fi
shift
done
notify-send "${args[@]}"
}
show short_summary
show long_summary
show long_summary long_body
show "Low urgency" short_body urgency_low
show "Normal urgency" short_body urgency_normal
show "Critical urgency" short_body urgency_critical
show "With app icon and name" app_discord
show "With app icon and name" long_body app_discord
show "With image" short_body image_1
show "With image and body" long_body image_1
show "With progress" slider_0
show "With progress" slider_25
show "With progress and body" short_body slider_100
show "With buttons" actions_yes_no
show "With buttons and body" long_body actions_5
show "With everything" long_body app_discord image_1 slider_25 actions_5
show "Volume" --hint=string:image-path:$HOME/Downloads/Speaker_Icon.svg \
-h int:value:69 \
-h "string:wired-tag:indicator" \
-h "string:wired-note:volume"
sleep 5
show "Brightness" --hint=string:image-path:$HOME/Downloads/brightness.svg \
-h int:value:69 \
-h "string:wired-tag:indicator" \
-h "string:wired-note:brightness"
#for summary in \
# "Short summary" \
# "Long summary, it will be truncated because it is really really long" \
#; do
#
#for body in \
# "Short body." \
# "$lorem" \
#; do
#
#for app in \
# "empty[@]" \
# "app_discord[@]" \
#; do
#
#for image in \
# "empty[@]" \
# "image_1[@]" \
#; do
#
#for urgency in \
# "urgency_low[@]" \
# "urgency_normal[@]" \
# "urgency_critical[@]" \
#; do
#
#for progress in \
# "empty[@]" \
# "slider_0[@]" \
# "slider_25[@]" \
# "slider_100[@]" \
#; do
#
#for action in \
# "empty[@]" \
#; do
# #"actions_yes_no[@]" \
# #"actions_5[@]" \
#
#notify-send "$summary" "$body" \
# "${!app}" \
# "${!image}" \
# "${!progress}" \
# "${!action}" \
# "${!urgency}" \
# ;
#
#done
#done
#done
#done
#done
#done
#done

View file

@ -1,6 +1,6 @@
{
config,
nixosConfig,
lib,
pkgs,
...
}:
@ -35,6 +35,17 @@
package = pkgs.whitesur-icon-theme;
};
font = {
package = pkgs.segoe-ui-ttf;
name = "Segoe UI";
size = 10;
};
theme = {
package = pkgs.adw-gtk3;
name = "adw-gtk3";
};
gtk2.extraConfig = "gtk-application-prefer-dark-theme = true";
gtk3.extraConfig = gtk34extraConfig;
gtk4.extraConfig = gtk34extraConfig;
@ -44,21 +55,36 @@
qt = {
enable = true;
style.name = "kvantum";
platformTheme.name = "qtct";
platformTheme.name = "gtk3";
};
xdg.configFile."Kvantum/kvantum.kvconfig".text = "theme=Base16Kvantum";
xdg.configFile."Kvantum/Base16Kvantum".source = ./Base16Kvantum;
home.pointerCursor = {
name = "Bibata-Modern-Ice";
size = 20;
package = pkgs.bibata-cursors;
x11.enable = true;
gtk.enable = true;
};
stylix = {
inherit (nixosConfig.stylix) polarity base16Scheme;
targets.gtk.enable = true;
cursor = {
package = pkgs.bibata-cursors;
name = "Bibata-Modern-Ice";
size = 20;
lib.colors = rec {
withHashtag = lib.mapAttrs (_: v: "#${v}") hex;
hex = {
base00 = "101419";
base01 = "171b20";
base02 = "21262e";
base03 = "242931";
base04 = "485263";
base05 = "b6beca";
base06 = "dee1e6";
base07 = "e3e6eb";
base08 = "e05f65";
base09 = "f9a872";
base0A = "f1cf8a";
base0B = "78dba9";
base0C = "74bee9";
base0D = "70a5eb";
base0E = "c68aee";
base0F = "9378de";
};
};
}

View file

@ -90,35 +90,6 @@
escape = true;
};
#"custom/whisper_overlay" = {
# tooltip = true;
# format = "{icon}";
# format-icons = {
# disconnected = "<span foreground='gray'></span>";
# connected = "<span foreground='#4ab0fa'></span>";
# connected-active = "<span foreground='red'></span>";
# };
# return-type = "json";
# exec = "${lib.getExe pkgs.whisper-overlay} waybar-status";
# on-click-right = lib.getExe (pkgs.writeShellApplication {
# name = "toggle-realtime-stt-server";
# runtimeInputs = [
# pkgs.systemd
# pkgs.libnotify
# ];
# text = ''
# if systemctl --user is-active --quiet realtime-stt-server; then
# systemctl --user stop realtime-stt-server.service
# notify-send "Stopped realtime-stt-server" "⛔ Stopped" --transient || true
# else
# systemctl --user start realtime-stt-server.service
# notify-send "Started realtime-stt-server" "✅ Started" --transient || true
# fi
# '';
# });
# escape = true;
#};
battery = {
interval = 2;
format = "{icon} {capacity}%";

View file

@ -1,7 +0,0 @@
{
home.persistence."/state".directories = [
".local/state/realtime-stt-server"
];
#services.realtime-stt-server.enable = true;
}

View file

@ -1,666 +0,0 @@
{
config,
lib,
pkgs,
...
}:
{
systemd.user.services.wired.Unit.ConditionEnvironment = "DISPLAY";
services.wired = {
enable = true;
config =
let
inherit (builtins) floor;
format = pkgs.formats.ron { };
inherit (format.lib) mkLiteral struct;
colors = lib.mapAttrs (_: Color) config.lib.stylix.colors.withHashtag;
inherit (config.stylix) fonts;
# A global scaling factor to apply to all notifications.
globalScale = 1.2;
# Ron format shorthands and helpers
unnamedStruct = struct "";
Color = hex: struct "Color" { inherit hex; };
Hook = struct "Hook";
Vec2 = x: y: struct "Vec2" { inherit x y; };
ShortcutsConfig = struct "ShortcutsConfig";
And = struct "And";
Or = struct "Or";
Not = struct "Not";
mkVec2 = x: y: Vec2 (globalScale * x) (globalScale * y);
mkHook =
parent_anchor: self_anchor:
Hook {
parent_anchor = mkLiteral parent_anchor;
self_anchor = mkLiteral self_anchor;
};
mkPaddingLrBt =
left: right: bottom: top:
struct "Padding" {
left = globalScale * left;
right = globalScale * right;
bottom = globalScale * bottom;
top = globalScale * top;
};
mkDimensionsWH =
minw: maxw: minh: maxh:
unnamedStruct {
width = unnamedStruct {
min = floor (globalScale * minw);
max = floor (globalScale * maxw);
};
height = unnamedStruct {
min = floor (globalScale * minh);
max = floor (globalScale * maxh);
};
};
mkTopBar =
name: extra:
map (x: extra // x) [
{
name = "${name}_app_image";
parent = "${name}_root";
hook = mkHook "TL" "TL";
offset = mkVec2 0 0;
params = struct "ImageBlock" (unnamedStruct {
filter_mode = mkLiteral "Lanczos3";
image_type = mkLiteral "App";
min_height = floor (globalScale * 24);
min_width = floor (globalScale * 24);
padding = mkPaddingLrBt 16 (-8) 6 12;
rounding = globalScale * 12.0;
scale_height = floor (globalScale * 24);
scale_width = floor (globalScale * 24);
});
}
{
name = "${name}_app_name";
parent = "${name}_app_image";
hook = mkHook "TR" "TL";
offset = mkVec2 0 0;
params = struct "TextBlock" (unnamedStruct {
color = colors.base05;
dimensions = mkDimensionsWH 350 350 28 28;
ellipsize = mkLiteral "End";
font = "${fonts.monospace.name} ${toString (globalScale * 14)}";
padding = mkPaddingLrBt 16 0 0 12;
text = "%n";
});
}
];
mkBody =
name: ident: yOffset: summaryRightPadding: extra:
let
maxWFull = 580 - 12;
maxWImg = maxWFull - 128 - 12;
in
map (x: extra // x) (
[
{
name = "${name}_${ident}_hint";
parent = "${name}_root";
hook = mkHook "TL" "TL";
offset = mkVec2 0 yOffset;
params = struct "ImageBlock" (unnamedStruct {
filter_mode = mkLiteral "Lanczos3";
image_type = mkLiteral "Hint";
padding = mkPaddingLrBt 12 0 12 12;
rounding = globalScale * 9;
scale_height = floor (globalScale * 128);
scale_width = floor (globalScale * 128);
});
}
{
name = "${name}_${ident}_summary";
parent = "${name}_${ident}_hint";
hook = mkHook "TR" "TL";
offset = mkVec2 0 0;
params = struct "TextBlock" (unnamedStruct {
text = "%s";
font = "${fonts.sansSerif.name} Bold ${toString (globalScale * 16)}";
ellipsize = mkLiteral "End";
color = colors.base06;
padding = mkPaddingLrBt 16 16 12 8;
dimensions = mkDimensionsWH (maxWFull - summaryRightPadding) (maxWFull - summaryRightPadding) 0 30;
dimensions_image_hint = mkDimensionsWH (maxWImg - summaryRightPadding) (
maxWImg - summaryRightPadding
) 0 30;
dimensions_image_both = mkDimensionsWH (maxWImg - summaryRightPadding) (
maxWImg - summaryRightPadding
) 0 30;
});
}
{
name = "${name}_${ident}_body";
parent = "${name}_${ident}_summary";
hook = mkHook "BL" "TL";
offset = mkVec2 0 0;
render_criteria = [
(And [
(Or extra.render_criteria)
(mkLiteral "Body")
])
];
params = struct "TextBlock" (unnamedStruct {
text = "%b";
font = "${fonts.sansSerif.name} ${toString (globalScale * 16)}";
ellipsize = mkLiteral "End";
color = colors.base06;
padding = mkPaddingLrBt 16 16 12 (-4);
dimensions = mkDimensionsWH maxWFull maxWFull 0 88;
dimensions_image_hint = mkDimensionsWH maxWImg maxWImg 0 88;
dimensions_image_both = mkDimensionsWH maxWImg maxWImg 0 88;
});
}
]
# We unfortunately cannot move these out of mkBody, because the depend
# on the specific name for the parent, which cannot be changed dynamically.
# So each call to mkBody creates these progress bars which only differ in
# their parent :/
++ (mkProgress name "${ident}_hint" (-4) {
render_criteria = [
(And (
extra.render_criteria
++ [
(mkLiteral "Progress")
(mkLiteral "HintImage")
]
))
];
})
++ (mkProgress name "${ident}_body" 0 {
render_criteria = [
(And (
extra.render_criteria
++ [
(mkLiteral "Progress")
(mkLiteral "Body")
(Not (mkLiteral "HintImage"))
]
))
];
})
++ (mkProgress name "${ident}_summary" 0 {
render_criteria = [
(And (
extra.render_criteria
++ [
(mkLiteral "Progress")
(mkLiteral "Summary")
(Not (Or [
(mkLiteral "Body")
(mkLiteral "HintImage")
]))
]
))
];
})
# Each mkProgress includes a button bar. But if no progress is included in a notification,
# those won't be rendered, so we have to define bars for non-progress notifications.
# (And yes, we need 3 because we cannot have duplicate names or dynamic parents)
++ (mkButtonBar name "${ident}_hint" {
render_criteria = [
(And (
extra.render_criteria
++ [
(Not (mkLiteral "Progress"))
(mkLiteral "HintImage")
]
))
];
})
++ (mkButtonBar name "${ident}_body" {
render_criteria = [
(And (
extra.render_criteria
++ [
(Not (mkLiteral "Progress"))
(mkLiteral "Body")
(Not (mkLiteral "HintImage"))
]
))
];
})
++ (mkButtonBar name "${ident}_summary" {
render_criteria = [
(And (
extra.render_criteria
++ [
(Not (mkLiteral "Progress"))
(mkLiteral "Summary")
(Not (Or [
(mkLiteral "Body")
(mkLiteral "HintImage")
]))
]
))
];
})
);
mkProgress =
name: parent: yOffset: extra:
map (x: extra // x) (
[
{
name = "${name}_progress_${parent}_text";
parent = "${name}_${parent}";
hook = mkHook "BL" "TL";
offset = mkVec2 0 0;
params = struct "TextBlock" (unnamedStruct {
text = "%p%";
font = "${fonts.monospace.name} Bold ${toString (globalScale * 14)}";
align = mkLiteral "Right";
ellipsize = mkLiteral "End";
color = colors.base06;
padding = mkPaddingLrBt 12 16 12 yOffset;
dimensions = mkDimensionsWH 48 48 24 24;
});
}
{
name = "${name}_progress_${parent}_bar";
parent = "${name}_${parent}";
hook = mkHook "BL" "TL";
offset = mkVec2 0 0;
params = struct "ProgressBlock" (unnamedStruct {
width = globalScale * 524;
height = globalScale * 12;
border_width = 0.0;
border_rounding = globalScale * 4;
border_color = colors.base03;
background_color = colors.base03;
fill_color = colors.base0D;
fill_rounding = globalScale * 4;
padding = mkPaddingLrBt 68 16 12 (yOffset + 8);
});
}
]
++ (mkButtonBar name "progress_${parent}_text" extra)
);
mkButtonBar =
name: parent: extra:
map (x: extra // x) (
lib.flatten [
{
name = "${name}_button_bar_for_${parent}";
parent = "${name}_${parent}";
hook = mkHook "BL" "TL";
offset = mkVec2 0 0;
render_criteria = [
(And (
extra.render_criteria
++ [
(Or [
(struct "ActionOther" 0)
(struct "ActionOther" 1)
(struct "ActionOther" 2)
(struct "ActionOther" 3)
(struct "ActionOther" 4)
(struct "ActionOther" 5)
])
]
))
];
params = struct "TextBlock" (unnamedStruct {
text = "";
font = "${fonts.monospace.name} 1";
color = colors.base06;
padding = mkPaddingLrBt 0 0 0 0;
dimensions = mkDimensionsWH 568 568 44 44;
});
}
(lib.flip map
[
0
1
2
3
4
5
]
(
i:
lib.optionalAttrs (i == 0) {
parent = "${name}_button_bar_for_${parent}";
hook = mkHook "TL" "TL";
offset = mkVec2 16 0;
}
// lib.optionalAttrs (i != 0) {
parent = "${name}_action_${toString (i - 1)}_for_${parent}";
hook = mkHook "TR" "TL";
offset = mkVec2 8 0;
}
// {
name = "${name}_action_${toString i}_for_${parent}";
render_criteria = [
(And (
extra.render_criteria
++ [
(struct "ActionOther" i)
]
))
];
params = struct "ButtonBlock" (unnamedStruct {
text = "%a";
font = "${fonts.monospace.name} Bold ${toString (globalScale * 14)}";
ellipsize = mkLiteral "End";
action = struct "OtherAction" i;
text_color = colors.base06;
text_color_hovered = colors.base06;
background_color = colors.base01;
background_color_hovered = colors.base02;
border_color = colors.base04;
border_color_hovered = colors.base0F;
border_rounding = globalScale * 0;
border_width = globalScale * 2;
padding = mkPaddingLrBt 8 8 4 4;
# Technically distribute like below, but we'll just allow more even
# if it breaks when having > 4 max length buttons, because it probably
# never happens and looks a lot better this way.
dimensions = mkDimensionsWH 32 144 24 24;
# dimensions = mkDimensionsWH 32 ((
# 568 /* available width */
# - 2 * 16 /* padding lr */
# - (/* count actions */ 6 - 1) * 8 /* padding between */
# ) / /* count actions */ 6) 24 24;
});
}
)
)
]
);
mkIndicatorValue =
name: ident: parent: extra: textParamsExtra: progressParamsExtra:
map (x: extra // x) (
lib.flatten [
{
name = "${name}_${ident}_value_text";
parent = "${name}_${parent}";
hook = mkHook "BM" "TM";
offset = mkVec2 0 0;
params = struct "TextBlock" (
unnamedStruct (
{
text = "%p%";
font = "${fonts.monospace.name} Bold ${toString (globalScale * 18)}";
align = mkLiteral "Center";
color = colors.base06;
padding = mkPaddingLrBt 0 0 12 0;
dimensions = mkDimensionsWH 64 64 32 32;
}
// textParamsExtra
)
);
}
{
name = "${name}_${ident}_value_bar";
parent = "${name}_${ident}_value_text";
hook = mkHook "BM" "TM";
offset = mkVec2 0 0;
params = struct "ProgressBlock" (
unnamedStruct (
{
width = globalScale * 0.9 * 384;
height = globalScale * 16;
border_width = 0.0;
border_rounding = globalScale * 6;
border_color = colors.base03;
background_color = colors.base03;
fill_color = colors.base0F;
fill_rounding = globalScale * 6;
padding = mkPaddingLrBt 0 0 0 0;
}
// progressParamsExtra
)
);
}
]
);
in
format.generate "wired.ron" (unnamedStruct {
max_notifications = 10;
timeout = 10000;
poll_interval = 6; # 6ms ~= 166hz.
history_length = 60;
replacing_enabled = true;
replacing_resets_timeout = true;
min_window_width = floor (globalScale * 20);
min_window_height = floor (globalScale * 20);
debug = false;
# https://github.com/Toqozz/wired-notify/wiki/Shortcuts
shortcuts = ShortcutsConfig {
notification_interact = 1; # left click
notification_pause = 1;
notification_close = 2; # right click
notification_action1 = 3; # middle click
};
layout_blocks =
let
criterionHasTopBar = And [
(mkLiteral "AppImage")
(Not (Or [
(struct "AppName" "")
(struct "AppName" "notify-send")
]))
];
in
map unnamedStruct (
lib.flatten [
# Root block for normal notifications
{
name = "general_root";
parent = "";
hook = mkHook "TR" "TR";
offset = Vec2 (-50) 50; # Vec2 instead of mkVec2 to not apply scaling.
render_criteria = [
(Not (Or [
(struct "Tag" "indicator")
]))
];
params = struct "NotificationBlock" (unnamedStruct {
monitor = 1;
border_width = globalScale * 2;
border_rounding = globalScale * 0;
background_color = colors.base00;
border_color = colors.base04;
border_color_low = colors.base04;
border_color_critical = colors.base08;
border_color_paused = colors.base09;
gap = mkVec2 0 8;
notification_hook = mkHook "BR" "TR";
});
}
# Dummy text that enforces minimum window size
{
name = "general_size";
parent = "general_root";
hook = mkHook "TL" "TL";
offset = Vec2 0 0;
params = struct "TextBlock" (unnamedStruct {
text = "";
font = "${fonts.monospace.name} 1";
color = colors.base06;
padding = mkPaddingLrBt 0 0 0 0;
dimensions = mkDimensionsWH 600 600 1 1;
});
}
# Time is always shown in the top right corner.
{
name = "general_time";
parent = "general_root";
hook = mkHook "TL" "TL";
offset = mkVec2 (600 - 100) 0;
params = struct "TextBlock" (unnamedStruct {
color = colors.base05;
dimensions = mkDimensionsWH 100 100 28 28;
ellipsize = mkLiteral "End";
font = "${fonts.monospace.name} Bold ${toString (globalScale * 14)}";
padding = mkPaddingLrBt 0 16 4 12;
text = "%t(%a %H:%M)";
});
}
# Top bar for app image, name and time, but only
# if there is an app name or image.
(mkTopBar "general" {
render_criteria = [ criterionHasTopBar ];
})
# if no top bar present: A body with no offset and a summary padding to the right (to not overlay the time)
(mkBody "general" "notop" 0 (16 + 100) {
render_criteria = [ (Not criterionHasTopBar) ];
})
# if top bar present: A body with matching y offset and no summary padding to the right
(mkBody "general" "withtop" 36 0 {
render_criteria = [ criterionHasTopBar ];
})
# Root block for brightness/volume indicators
{
name = "indicator_root";
parent = "";
hook = mkHook "MM" "MM";
offset = Vec2 0 0; # Vec2 instead of mkVec2 to not apply scaling.
render_criteria = [
(And [
(struct "Tag" "indicator")
])
];
params = struct "NotificationBlock" (unnamedStruct {
monitor = 1;
border_width = globalScale * 2;
border_rounding = globalScale * 0;
background_color = colors.base00;
border_color = colors.base04;
border_color_low = colors.base04;
border_color_critical = colors.base08;
border_color_paused = colors.base09;
gap = mkVec2 0 0;
notification_hook = mkHook "MM" "MM";
});
}
# Dummy text that enforces minimum window size
{
name = "indicator_size";
parent = "indicator_root";
hook = mkHook "TL" "TL";
offset = Vec2 0 0;
params = struct "TextBlock" (unnamedStruct {
text = "";
font = "${fonts.monospace.name} 1";
color = colors.base06;
padding = mkPaddingLrBt 0 0 0 0;
dimensions = mkDimensionsWH 384 384 384 384;
});
}
{
name = "indicator_summary";
parent = "indicator_size";
hook = mkHook "TM" "TM";
offset = mkVec2 0 0;
params = struct "TextBlock" (unnamedStruct {
text = "%s";
font = "${fonts.sansSerif.name} Bold ${toString (globalScale * 18)}";
align = mkLiteral "Center";
color = colors.base06;
padding = mkPaddingLrBt 0 0 8 8;
dimensions = mkDimensionsWH 300 300 32 32;
});
}
{
name = "indicator_hint";
parent = "indicator_summary";
hook = mkHook "BM" "TM";
offset = mkVec2 0 0;
params = struct "ImageBlock" (unnamedStruct {
filter_mode = mkLiteral "Lanczos3";
image_type = mkLiteral "Hint";
min_height = floor (globalScale * 180);
min_width = floor (globalScale * 180);
padding = mkPaddingLrBt 0 0 (35 + 8) 35;
rounding = globalScale * 9;
scale_height = floor (globalScale * 180);
scale_width = floor (globalScale * 180);
});
}
(mkIndicatorValue "indicator" "anything" "hint"
{
render_criteria = [
(Not (Or [
(struct "Note" "brightness")
(struct "Note" "volume")
(struct "Note" "volume-overdrive")
]))
];
}
# text extra
{ }
# progress extra
{ }
)
(mkIndicatorValue "indicator" "brightness" "hint"
{
render_criteria = [
(And [
(struct "Note" "brightness")
])
];
}
# text extra
{ }
# progress extra
{
fill_color = colors.base0A;
}
)
(mkIndicatorValue "indicator" "volume" "hint"
{
render_criteria = [
(And [
(struct "Note" "volume")
])
];
}
# text extra
{
text = "%b";
}
# progress extra
{
fill_color = colors.base0B;
}
)
(mkIndicatorValue "indicator" "volume_overdrive" "hint"
{
render_criteria = [
(And [
(struct "Note" "volume-overdrive")
])
];
}
# text extra
{
text = "%b";
}
# progress extra
{
background_color = colors.base0B;
fill_color = colors.base0A;
}
)
]
);
});
};
}