Compare commits

..

5 Commits

Author SHA1 Message Date
c0d1341448 niri: redo a lot
Signed-off-by: unexplrd <unexplrd@linerds.us>
2025-07-19 13:21:31 +03:00
bba55dc973 try to fix styling
Signed-off-by: unexplrd <unexplrd@linerds.us>
2025-07-15 15:32:05 +03:00
d48559e6d8 modules/shared/user: apps
Signed-off-by: unexplrd <unexplrd@linerds.us>
2025-07-15 15:32:05 +03:00
c18c1d0060 stylix: geist fonts for sandcastle
Signed-off-by: unexplrd <unexplrd@linerds.us>
2025-07-15 15:32:05 +03:00
bec0e9d43a flake.lock: bump
Signed-off-by: unexplrd <unexplrd@linerds.us>
2025-07-15 15:32:05 +03:00
11 changed files with 524 additions and 407 deletions

166
flake.lock generated
View File

@ -20,11 +20,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1751569683, "lastModified": 1751740947,
"narHash": "sha256-PoQcCYTiN52PanxgWBN4Tqet1x4PCk6KtjaHNjELH88=", "narHash": "sha256-35040CHH7P3JGmhGVfEb2oJHL/A5mI2IXumhkxrBnao=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "aquamarine", "repo": "aquamarine",
"rev": "c0c56dde3e471030edb135425a82107cf0057c6f", "rev": "dfc1db15a08c4cd234288f66e1199c653495301f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -136,11 +136,11 @@
"rust-overlay": "rust-overlay" "rust-overlay": "rust-overlay"
}, },
"locked": { "locked": {
"lastModified": 1751777244, "lastModified": 1752318841,
"narHash": "sha256-/czsZlnHv8Sl/u2syCzucxfVFLBHXWxvgicYmlk5YEE=", "narHash": "sha256-/Vfi3vmpBDaEDCdPYEOgUIUTyt2lOTRWVj3ESBRIChY=",
"owner": "chaotic-cx", "owner": "chaotic-cx",
"repo": "nyx", "repo": "nyx",
"rev": "a0d66535286f557ccfb7c7c4c4ddc95cce96fc8b", "rev": "b342f1adfa040963c9b00f4f1755def9f8588a58",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -295,11 +295,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1743550720, "lastModified": 1751413152,
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=", "narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "c621e8422220273271f52058f618c94e405bb0f5", "rev": "77826244401ea9de6e3bac47c2db46005e1f30b5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -324,7 +324,9 @@
}, },
"flake-utils": { "flake-utils": {
"inputs": { "inputs": {
"systems": "systems" "systems": [
"systems"
]
}, },
"locked": { "locked": {
"lastModified": 1731533236, "lastModified": 1731533236,
@ -367,11 +369,11 @@
"zon2nix": "zon2nix" "zon2nix": "zon2nix"
}, },
"locked": { "locked": {
"lastModified": 1751869689, "lastModified": 1752293658,
"narHash": "sha256-WRATlWALRFNnhqABLRtLHlL7a838oJhMRMbaTgjvXYk=", "narHash": "sha256-p4I9YxndfMpcHg9EVcy5+BACLp2GBjpVMbXuJ/glYnw=",
"owner": "ghostty-org", "owner": "ghostty-org",
"repo": "ghostty", "repo": "ghostty",
"rev": "292d89dbe2ad246016411cc0f35dd0e3fffa44ca", "rev": "e67a62453d8e75e82b581a340e70896f722a7f0f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -448,11 +450,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1751824240, "lastModified": 1752286566,
"narHash": "sha256-aDDC0CHTlL7QDKWWhdbEgVPK6KwWt+ca0QkmHYZxMzI=", "narHash": "sha256-A4nftqiNz2bNihz0bKY94Hq/6ydR6UQOcGioeL7iymY=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "fd9e55f5fac45a26f6169310afca64d56b681935", "rev": "392ddb642abec771d63688c49fa7bcbb9d2a5717",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -506,11 +508,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1750621377, "lastModified": 1751808145,
"narHash": "sha256-8u6b5oAdX0rCuoR8wFenajBRmI+mzbpNig6hSCuWUzE=", "narHash": "sha256-OXgL0XaKMmfX2rRQkt9SkJw+QNfv0jExlySt1D6O72g=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprgraphics", "repo": "hyprgraphics",
"rev": "b3d628d01693fb9bb0a6690cd4e7b80abda04310", "rev": "b841473a0bd4a1a74a0b64f1ec2ab199035c349f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -539,11 +541,11 @@
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
"lastModified": 1751714318, "lastModified": 1752270468,
"narHash": "sha256-nkoRnDkRGaCT0JTuHcDXPCMkdmhUFEtI1TMUiQcrxfs=", "narHash": "sha256-SEFxC9q+BMn1FkeaBRCDb0h7hZ2B+MSi8+u85y4rgQY=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "Hyprland", "repo": "Hyprland",
"rev": "6a5f4f5954a64bac718e3938f062d045256e7aeb", "rev": "6821723b4421bdf163f1a1cc6fd472516d44b1e7",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -722,11 +724,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1751061882, "lastModified": 1751888065,
"narHash": "sha256-g9n8Vrbx+2JYM170P9BbvGHN39Wlkr4U+V2WLHQsXL8=", "narHash": "sha256-F2SV9WGqgtRsXIdUrl3sRe0wXlQD+kRRZcSfbepjPJY=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprutils", "repo": "hyprutils",
"rev": "4737241eaf8a1e51671a2a088518071f9a265cf4", "rev": "a8229739cf36d159001cfc203871917b83fdf917",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -747,11 +749,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1750371869, "lastModified": 1751881472,
"narHash": "sha256-lGk4gLjgZQ/rndUkzmPYcgbHr8gKU5u71vyrjnwfpB4=", "narHash": "sha256-meB0SnXbwIe2trD041MLKEv6R7NZ759QwBcVIhlSBfE=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprwayland-scanner", "repo": "hyprwayland-scanner",
"rev": "aa38edd6e3e277ae6a97ea83a69261a5c3aab9fd", "rev": "8fb426b3e5452fd9169453fd6c10f8c14ca37120",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -769,11 +771,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1751529406, "lastModified": 1752218319,
"narHash": "sha256-jwKDHyUycp678zDYa5Hyfq3msO73YMXdZPxp96dU7po=", "narHash": "sha256-fEvLVaVduwVotOib8NqO0e4N3dMsdA04Jlfm2sZQH5Q=",
"owner": "Jovian-Experiments", "owner": "Jovian-Experiments",
"repo": "Jovian-NixOS", "repo": "Jovian-NixOS",
"rev": "b2e5ce654e4f5bf8905c2e07a96dcf4966e6277d", "rev": "d5da490d8c2553fc8d589b49f9c036973b9656a1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -869,11 +871,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1751774635, "lastModified": 1752305182,
"narHash": "sha256-DuOznGdgMxeSlPpUu6Wkq0ZD5e2Cfv9XRZeZlHWMd1s=", "narHash": "sha256-6i4Q68G7wzNq1m2+l3lJUYgGZ9PwULvSVJpRSTTC46o=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nix-index-database", "repo": "nix-index-database",
"rev": "85686025ba6d18df31cc651a91d5adef63378978", "rev": "ad29e2961dd0d58372384563bf00d510fc9f2e15",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -924,11 +926,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1751792365, "lastModified": 1751984180,
"narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=", "narHash": "sha256-LwWRsENAZJKUdD3SpLluwDmdXY9F45ZEgCb0X+xgOL0=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb", "rev": "9807714d6944a957c2e036f84b0ff8caf9930bc0",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -979,15 +981,14 @@
"nixpkgs": [ "nixpkgs": [
"stylix", "stylix",
"nixpkgs" "nixpkgs"
], ]
"treefmt-nix": "treefmt-nix"
}, },
"locked": { "locked": {
"lastModified": 1748730660, "lastModified": 1751906969,
"narHash": "sha256-5LKmRYKdPuhm8j5GFe3AfrJL8dd8o57BQ34AGjJl1R0=", "narHash": "sha256-BSQAOdPnzdpOuCdAGSJmefSDlqmStFNScEnrWzSqKPw=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NUR", "repo": "NUR",
"rev": "2c0bc52fe14681e9ef60e3553888c4f086e46ecb", "rev": "ddb679f4131e819efe3bbc6457ba19d7ad116f25",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1065,7 +1066,7 @@
"nixpkgs-stable": "nixpkgs-stable_2", "nixpkgs-stable": "nixpkgs-stable_2",
"sops-nix": "sops-nix", "sops-nix": "sops-nix",
"stylix": "stylix", "stylix": "stylix",
"systems": "systems_2", "systems": "systems",
"walker": "walker" "walker": "walker"
} }
}, },
@ -1077,11 +1078,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1751683029, "lastModified": 1752201818,
"narHash": "sha256-dYO5X5jK8bpQOeRAo8R5aUt6M/+Ji1cZgstZI7SQ2IA=", "narHash": "sha256-d8KczaVT8WFEZdWg//tMAbv8EDyn2YTWcJvSY8gqKBU=",
"owner": "oxalica", "owner": "oxalica",
"repo": "rust-overlay", "repo": "rust-overlay",
"rev": "9e5e62a33a929a67a5427fb7324a6f583dced0b2", "rev": "bd8f8329780b348fedcd37b53dbbee48c08c496d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1175,11 +1176,11 @@
"tinted-zed": "tinted-zed" "tinted-zed": "tinted-zed"
}, },
"locked": { "locked": {
"lastModified": 1751840923, "lastModified": 1752250117,
"narHash": "sha256-4HZxn+PrWytrWVg5c5SEetv3m9/k7rngJq27zKuRIfo=", "narHash": "sha256-zCPV1a8w9hRn5ukOQwaAggA3X5cMmVsZVBYo8wLfLuU=",
"owner": "danth", "owner": "danth",
"repo": "stylix", "repo": "stylix",
"rev": "5259682ce58d935f248297bf1c9793a5cee0787e", "rev": "0da583a359fd911d5cbfd2c789424b888b777a4b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1203,21 +1204,6 @@
"type": "github" "type": "github"
} }
}, },
"systems_2": {
"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": { "tinted-foot": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -1254,11 +1240,11 @@
"tinted-schemes": { "tinted-schemes": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1748180480, "lastModified": 1750770351,
"narHash": "sha256-7n0XiZiEHl2zRhDwZd/g+p38xwEoWtT0/aESwTMXWG4=", "narHash": "sha256-LI+BnRoFNRa2ffbe3dcuIRYAUcGklBx0+EcFxlHj0SY=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "schemes", "repo": "schemes",
"rev": "87d652edd26f5c0c99deda5ae13dfb8ece2ffe31", "rev": "5a775c6ffd6e6125947b393872cde95867d85a2a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1270,11 +1256,11 @@
"tinted-tmux": { "tinted-tmux": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1748740859, "lastModified": 1751159871,
"narHash": "sha256-OEM12bg7F4N5WjZOcV7FHJbqRI6jtCqL6u8FtPrlZz4=", "narHash": "sha256-UOHBN1fgHIEzvPmdNMHaDvdRMgLmEJh2hNmDrp3d3LE=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "tinted-tmux", "repo": "tinted-tmux",
"rev": "57d5f9683ff9a3b590643beeaf0364da819aedda", "rev": "bded5e24407cec9d01bd47a317d15b9223a1546c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1286,11 +1272,11 @@
"tinted-zed": { "tinted-zed": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1725758778, "lastModified": 1751158968,
"narHash": "sha256-8P1b6mJWyYcu36WRlSVbuj575QWIFZALZMTg5ID/sM4=", "narHash": "sha256-ksOyv7D3SRRtebpXxgpG4TK8gZSKFc4TIZpR+C98jX8=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "base16-zed", "repo": "base16-zed",
"rev": "122c9e5c0e6f27211361a04fae92df97940eccf9", "rev": "86a470d94204f7652b906ab0d378e4231a5b3384",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1299,28 +1285,6 @@
"type": "github" "type": "github"
} }
}, },
"treefmt-nix": {
"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"
}
},
"walker": { "walker": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -1331,11 +1295,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1751822129, "lastModified": 1752245988,
"narHash": "sha256-aI8JTRZHynKKJQpNP5TJuHsFQpKfDVJbW/u99lTpGyg=", "narHash": "sha256-t0Sg3HWhDIIQISLGt2cYnD28RUI3SKKTVE9bFL9M5Ok=",
"owner": "abenz1267", "owner": "abenz1267",
"repo": "walker", "repo": "walker",
"rev": "2f16a48d6fa4f0f16c7b2173a1ff434005c8ed32", "rev": "33c1ee26f675902b4404f64288ad1facb9ecec22",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1372,11 +1336,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1750372504, "lastModified": 1751300244,
"narHash": "sha256-VBeZb1oqZM1cqCAZnFz/WyYhO8aF/ImagI7WWg/Z3Og=", "narHash": "sha256-PFuv1TZVYvQhha0ac53E3YgdtmLShrN0t4T6xqHl0jE=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland", "repo": "xdg-desktop-portal-hyprland",
"rev": "400308fc4f9d12e0a93e483c2e7a649e12af1a92", "rev": "6115f3fdcb2c1a57b4a80a69f3c797e47607b90a",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@ -31,6 +31,7 @@
ghostty = { ghostty = {
url = "github:ghostty-org/ghostty"; url = "github:ghostty-org/ghostty";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
inputs.flake-utils.inputs.systems.follows = "systems";
}; };
home-manager = { home-manager = {
url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager";

View File

@ -7,7 +7,7 @@
pkgs, pkgs,
... ...
}: let }: let
inherit (lib) mkIf mkEnableOption mkDefault mkForce getExe; inherit (lib) mkIf mkEnableOption mkForce getExe;
inherit (osConfig.networking) hostName; inherit (osConfig.networking) hostName;
cfg = config.desktop.niri; cfg = config.desktop.niri;
@ -131,7 +131,7 @@ in {
}; };
targets.tray.Unit.Description = "Home Manager System Tray"; # workaround for udiskie targets.tray.Unit.Description = "Home Manager System Tray"; # workaround for udiskie
services = let services = let
mkGraphicalService = config: graphicalService // config; mkGraphicalService = config: lib.attrsets.recursiveUpdate graphicalService config;
graphicalService = { graphicalService = {
Install.WantedBy = ["niri.service"]; Install.WantedBy = ["niri.service"];
Unit = { Unit = {
@ -148,33 +148,25 @@ in {
in in
lib.mkMerge [ lib.mkMerge [
{ {
udiskie = mkGraphicalService {}; copyq = mkGraphicalService {Service.Environment = mkForce "QT_QPA_PLATFORM=wayland";};
waybar = mkGraphicalService {};
network-manager-applet = mkGraphicalService {}; network-manager-applet = mkGraphicalService {};
copyq = mkGraphicalService { udiskie = mkGraphicalService {};
Service = walker = mkGraphicalService {};
graphicalService.Service waybar = mkGraphicalService {};
wpaperd =
mkGraphicalService {}
// { // {
Environment = mkForce "QT_QPA_PLATFORM=wayland"; Service.TimeoutStopSec = mkForce "1";
}; Service.Restart = mkForce "always";
}; };
xwayland-satellite = mkGraphicalService { xwayland-satellite = mkGraphicalService {
Service = Service = {
graphicalService.Service
// {
Type = "simple"; Type = "simple";
ExecStart = getExe pkgs.xwayland-satellite + " :123"; ExecStart = getExe pkgs.xwayland-satellite + " :123";
}; };
}; };
wpaperd = mkGraphicalService {
Service =
mkDefault graphicalService.Service;
};
walker = mkGraphicalService {};
# gnome-polkit-agent = mkGraphicalService { # gnome-polkit-agent = mkGraphicalService {
# Service = # Service = {
# graphicalService.Service
# // {
# Type = "simple"; # Type = "simple";
# ExecStart = pkgs.polkit_gnome + "/libexec/polkit-gnome-authentication-agent-1"; # ExecStart = pkgs.polkit_gnome + "/libexec/polkit-gnome-authentication-agent-1";
# }; # };
@ -182,9 +174,7 @@ in {
} }
(lib.mkIf (hostName == "morphius") { (lib.mkIf (hostName == "morphius") {
lisgd = mkGraphicalService { lisgd = mkGraphicalService {
Service = Service = {
graphicalService.Service
// {
# Group = "input"; # Group = "input";
Type = "simple"; Type = "simple";
ExecStart = ExecStart =

View File

@ -160,20 +160,20 @@ in {
} }
struts { struts {
left 43 left 36
right 43 right 36
} }
tab-indicator { tab-indicator {
active-color "#${colors.base04}" active-color "#${colors.base04}"
inactive-color "#${colors.base03}" inactive-color "#${colors.base03}"
corner-radius 3 corner-radius 6
gap 3 gap 3
gaps-between-tabs 3 gaps-between-tabs 3
// length total-proportion=0.3 // length total-proportion=0.3
place-within-column place-within-column
position "left" position "left"
width 3 width 6
} }
focus-ring { focus-ring {
width 1 width 1
@ -191,7 +191,7 @@ in {
} }
window-rule { window-rule {
geometry-corner-radius 9 geometry-corner-radius 12
clip-to-geometry true clip-to-geometry true
} }
window-rule { window-rule {

View File

@ -230,7 +230,7 @@
#window { #window {
background: @base00; background: @base00;
color: @base05; color: @base05;
border-radius: 9px; border-radius: 12px;
border: 1px solid @base0D; border: 1px solid @base0D;
} }
@ -240,7 +240,7 @@
#search { #search {
background: @base01; background: @base01;
border-radius: 6px; border-radius: 9px;
padding: 8px; padding: 8px;
} }
@ -249,7 +249,7 @@
#typeahead { #typeahead {
background: none; background: none;
box-shadow: none; box-shadow: none;
border-radius: 3px; border-radius: 6px;
} }
#input > *:first-child, #input > *:first-child,
@ -268,7 +268,7 @@
#list { #list {
padding: 3px; padding: 3px;
border-radius: 6px; border-radius: 9px;
background: @base01; background: @base01;
} }
@ -279,7 +279,7 @@
child:selected, child:selected,
child:hover { child:hover {
box-shadow: none; box-shadow: none;
border-radius: 3px; border-radius: 6px;
background: @base02; background: @base02;
} }

View File

@ -6,45 +6,30 @@
launcher, launcher,
... ...
}: let }: let
inherit (lib) mkIf getExe;
inherit (config.lib.stylix) colors; inherit (config.lib.stylix) colors;
inherit (osConfig.networking) hostName;
ifLaptop = mkIf (hostName != "dunamis"); ifLaptop = lib.mkIf (osConfig.networking.hostName != "dunamis");
in { in {
enable = true; enable = true;
systemd = { systemd = {
enable = true; enable = true;
target = "graphical-session.target"; target = "graphical-session.target";
}; };
settings.bar-0 = { settings.bottom = {
# layer = "top";
position = "bottom"; position = "bottom";
height = 40; height = 33;
spacing = 0; spacing = 0;
# margin-left = 3; # margin-left = 36 + 3;
# margin-right = 3; # margin-right = 36 + 3;
margin-left = 43 + 3; # margin-bottom = 3;
margin-right = 43 + 3;
margin-bottom = 3;
reload_style_on_change = true;
modules-left = [ modules-left = [
"custom/launcher" "custom/launcher"
"clock"
"wlr/taskbar" "wlr/taskbar"
"privacy" # "privacy"
];
modules-center = [
# "clock"
"niri/language"
"niri/workspaces"
"idle_inhibitor"
]; ];
modules-right = [ modules-right = [
"wireplumber" "niri/workspaces"
(ifLaptop "group/laptop") "niri/language"
"tray"
"custom/notification"
]; ];
"niri/workspaces" = { "niri/workspaces" = {
format = "{index}"; format = "{index}";
@ -62,7 +47,7 @@ in {
"power-profiles-daemon" "power-profiles-daemon"
]; ];
}; };
"backlight" = { backlight = {
format = "{percent}% {icon}"; format = "{percent}% {icon}";
format-icons = [ format-icons = [
"󰃚" "󰃚"
@ -74,18 +59,18 @@ in {
"󰃠" "󰃠"
]; ];
}; };
"idle_inhibitor" = { idle_inhibitor = {
format = "{icon}"; format = "{icon}";
format-icons = { format-icons = {
activated = "󰅶"; activated = "󰅶";
deactivated = "󰾪"; deactivated = "󰾪";
}; };
}; };
"tray" = { tray = {
icon-size = 20; icon-size = 16;
spacing = 6; spacing = 6;
}; };
"clock" = { clock = {
interval = 1; interval = 1;
format = "{:%R}"; format = "{:%R}";
tooltip = true; tooltip = true;
@ -104,25 +89,29 @@ in {
format-alt = "{icon} {time}"; format-alt = "{icon} {time}";
format-icons = ["󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹"]; format-icons = ["󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹"];
}; };
mpris = { memory = {
format = "{player_icon} {dynamic}"; format = "{used:0.1f}G ";
format-paused = "{status_icon} <i>{dynamic}</i>"; tooltip-format = ''
playing-len = 30; RAM: {used:0.1f}G/{total:0.1f}G ({percentage}%)
playing-paused = 30; Swap: {swapUsed:0.1f}G/{swapTotal:0.1f}G ({swapPercentage}%)'';
player-icons = {
default = "";
mpv = "🎵";
}; };
status-icons = {paused = "";}; network = {
format = "{bandwidthDownBits} 󰇚 | {bandwidthUpBits} 󰕒";
interval = 3;
tooltip = false;
}; };
"upower" = { cpu = {
format = "{usage}% 󰍛";
interval = 3;
};
upower = {
icon-size = 16; icon-size = 16;
format = "{percentage}"; format = "{percentage}";
hide-if-empty = true; hide-if-empty = true;
tooltip = true; tooltip = true;
tooltip-spacing = 20; tooltip-spacing = 20;
}; };
"power-profiles-daemon" = { power-profiles-daemon = {
format = "{icon}"; format = "{icon}";
tooltip-format = "Power profile: {profile}\nDriver: {driver}"; tooltip-format = "Power profile: {profile}\nDriver: {driver}";
tooltip = true; tooltip = true;
@ -133,12 +122,12 @@ in {
power-saver = ""; power-saver = "";
}; };
}; };
"wireplumber" = { wireplumber = {
scroll-step = 3; scroll-step = 3;
format = "{volume}% {icon}"; format = "{volume}% {icon}";
format-muted = "󰖁"; format-muted = "󰖁";
format-icons = ["󰕿" "󰖀" "󰕾"]; format-icons = ["󰕿" "󰖀" "󰕾"];
on-click = getExe pkgs.pwvucontrol; on-click = lib.getExe pkgs.pwvucontrol;
on-click-right = "wpctl set-mute @DEFAULT_SINK@ toggle"; on-click-right = "wpctl set-mute @DEFAULT_SINK@ toggle";
}; };
"custom/launcher" = { "custom/launcher" = {
@ -164,7 +153,7 @@ in {
}; };
"privacy" = { "privacy" = {
icon-spacing = 0; icon-spacing = 0;
icon-size = 18; icon-size = 16;
transition-duration = 250; transition-duration = 250;
screenshare = { screenshare = {
type = "screenshare"; type = "screenshare";
@ -178,55 +167,223 @@ in {
}; };
}; };
"wlr/taskbar" = { "wlr/taskbar" = {
format = "{icon} {name}";
icon-size = 16;
icon-theme = "${config.dconf.settings."org/gnome/desktop/interface".icon-theme}";
tooltip-format = "{title}";
on-click = "activate";
};
};
settings.top = {
position = "top";
height = 33;
spacing = 0;
# margin-left = 36 + 3;
# margin-right = 36 + 3;
# margin-top = 3;
modules-left = [
"custom/notification"
"tray"
];
modules-center = ["clock"];
modules-right = [
"privacy"
"network"
"cpu"
"memory"
"wireplumber"
(ifLaptop "group/laptop")
# "tray"
"idle_inhibitor"
];
"niri/workspaces" = {
format = "{index}";
};
"niri/language" = {
format = "{}";
format-en = "🇺🇸";
format-uk = "🇺🇦";
};
"group/laptop" = {
orientation = "inherit";
modules = [
"backlight"
"battery"
"power-profiles-daemon"
];
};
backlight = {
format = "{percent}% {icon}";
format-icons = [
"󰃚"
"󰃛"
"󰃜"
"󰃝"
"󰃞"
"󰃟"
"󰃠"
];
};
idle_inhibitor = {
format = "{icon}"; format = "{icon}";
icon-size = 20; format-icons = {
activated = "󰅶";
deactivated = "󰾪";
};
};
tray = {
icon-size = 16;
spacing = 6;
};
clock = {
interval = 1;
format = "{:%R}";
tooltip = true;
tooltip-format = "{:%B %d, %A}";
};
battery = {
states = {
good = 95;
warning = 30;
critical = 15;
};
format = "{capacity}% {icon}";
format-full = "{capacity}% 󱟢";
format-charging = "{capacity}% 󰂄";
format-plugged = "{capacity}% 󰚥";
format-alt = "{icon} {time}";
format-icons = ["󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹"];
};
memory = {
format = "{used:0.1f}G ";
tooltip-format = ''
RAM: {used:0.1f}G/{total:0.1f}G ({percentage}%)
Swap: {swapUsed:0.1f}G/{swapTotal:0.1f}G ({swapPercentage}%)'';
};
network = {
format = "{bandwidthDownBits} 󰇚 | {bandwidthUpBits} 󰕒";
interval = 3;
tooltip = false;
};
cpu = {
format = "{usage}% 󰍛";
interval = 3;
};
upower = {
icon-size = 16;
format = "{percentage}";
hide-if-empty = true;
tooltip = true;
tooltip-spacing = 20;
};
power-profiles-daemon = {
format = "{icon}";
tooltip-format = "Power profile: {profile}\nDriver: {driver}";
tooltip = true;
format-icons = {
default = "󱡮";
performance = "󱡮";
balanced = "";
power-saver = "";
};
};
wireplumber = {
scroll-step = 3;
format = "{volume}% {icon}";
format-muted = "󰖁";
format-icons = ["󰕿" "󰖀" "󰕾"];
on-click = lib.getExe pkgs.pwvucontrol;
on-click-right = "wpctl set-mute @DEFAULT_SINK@ toggle";
};
"custom/launcher" = {
format = "";
on-click = launcher;
tooltip = false;
};
"custom/notification" = {
tooltip = false;
format = "{icon}";
format-icons = {
notification = "󱅫";
none = "󰂚";
dnd-notification = "󰂛";
dnd-none = "󰂛";
};
return-type = "json";
exec-if = "which swaync-client";
exec = "swaync-client -swb";
on-click = "swaync-client -t -sw";
on-click-right = "swaync-client -d -sw";
escape = true;
};
"privacy" = {
icon-spacing = 0;
icon-size = 16;
transition-duration = 250;
screenshare = {
type = "screenshare";
tooltip = true;
tooltip-icon-size = 24;
};
audio-in = {
type = "audio-in";
tooltip = true;
tooltip-icon-size = 24;
};
};
"wlr/taskbar" = {
format = "{icon} {name}";
icon-size = 18;
icon-theme = "${config.dconf.settings."org/gnome/desktop/interface".icon-theme}"; icon-theme = "${config.dconf.settings."org/gnome/desktop/interface".icon-theme}";
tooltip-format = "{title}"; tooltip-format = "{title}";
on-click = "activate"; on-click = "activate";
}; };
}; };
style = '' # TODO: figure out magic waybar css styling (does it pick up `~/.config/gtk-3.0/gtk.css` ?)
@define-color base00 #${colors.base00}; style =
@define-color base01 #${colors.base01}; # css
@define-color base02 #${colors.base02}; ''
@define-color base03 #${colors.base03}; @define-color base00 #${colors.base00}; @define-color base08 #${colors.base08};
@define-color base04 #${colors.base04}; @define-color base01 #${colors.base01}; @define-color base09 #${colors.base09};
@define-color base05 #${colors.base05}; @define-color base02 #${colors.base02}; @define-color base0A #${colors.base0A};
@define-color base06 #${colors.base06}; @define-color base03 #${colors.base03}; @define-color base0B #${colors.base0B};
@define-color base07 #${colors.base07}; @define-color base04 #${colors.base04}; @define-color base0C #${colors.base0C};
@define-color base08 #${colors.base08}; @define-color base05 #${colors.base05}; @define-color base0D #${colors.base0D};
@define-color base09 #${colors.base09}; @define-color base06 #${colors.base06}; @define-color base0E #${colors.base0E};
@define-color base0A #${colors.base0A}; @define-color base07 #${colors.base07}; @define-color base0F #${colors.base0F};
@define-color base0B #${colors.base0B};
@define-color base0C #${colors.base0C};
@define-color base0D #${colors.base0D};
@define-color base0E #${colors.base0E};
@define-color base0F #${colors.base0F};
* { * {
font-family: ${config.stylix.fonts.sansSerif.name}, FontAwesome; /* all: unset; */
font-family: Symbols Nerd Font, FontAwesome, ${config.stylix.fonts.sansSerif.name};
font-weight: 500; font-weight: 500;
font-size: 18px; font-size: 16px;
}
.modules-left, .modules-center, .modules-right, window#waybar {
background-color: @base00;
color: @base05;
border-radius: 12px;
} }
window#waybar { window#waybar {
background: @base00; border-radius: 0;
border-radius: 9px;
} }
.modules-left, /* for leftmost modules */
.modules-center, .modules-left, .modules-center, .modules-right {
.modules-right { padding-left: 3px;
background-color: @base00; background-color: @base00;
border-radius: 9px;
color: @base05; color: @base05;
} }
window#bottom.modules-center {
background-color: transparent
}
tooltip { tooltip {
background: @base01; background: @base01;
border: 1px solid @base0D; border: 1px solid @base0D;
border-radius: 12px; border-radius: 16px;
padding: 2em;
} }
tooltip label { tooltip label {
@ -235,7 +392,7 @@ in {
button { button {
box-shadow: inset 0 -3px transparent; box-shadow: inset 0 -3px transparent;
border-radius: 3px; border-radius: 6px;
} }
button:hover { button:hover {
@ -246,42 +403,43 @@ in {
#backlight, #backlight,
#battery, #battery,
#clock, #clock,
#cpu,
#custom-launcher, #custom-launcher,
#custom-notification, #custom-notification,
#idle_inhibitor, #idle_inhibitor,
#language, #language,
#memory,
#network,
#power-profiles-daemon, #power-profiles-daemon,
#privacy, #privacy,
#privacy-item, #privacy-item,
#taskbar button,
#taskbar, #taskbar,
#tray button,
#tray, #tray,
#wireplumber, #wireplumber,
#workspaces button, #workspaces button,
#workspaces { #workspaces {
border-radius: 6px; all: unset;
border-radius: 9px;
background-color: @base01; background-color: @base01;
margin: 3px 3px 3px 0; margin: 3px 3px 3px 0;
padding: 0 6px; padding: 0 0.42em;
} min-width: 1em;
/* #clock, */
#custom-launcher,
#language,
#wireplumber {
margin: 3px;
} }
#backlight, #backlight,
#battery, #battery,
#custom-launcher,
#custom-notification, #custom-notification,
#idle_inhibitor, #idle_inhibitor,
#power-profiles-daemon,
#wireplumber { #wireplumber {
padding: 0 15px 0 10px; padding: 0 0.5em;
} }
#custom-notification,
#custom-launcher,
#power-profiles-daemon { #power-profiles-daemon {
padding: 0 17px 0 8px; min-width: 1em;
} }
#privacy, #privacy,
@ -290,39 +448,27 @@ in {
padding: 0; padding: 0;
} }
#workspaces {
padding-left: 3px;
}
#privacy-item { #privacy-item {
padding: 0 5px; padding: 0 0.3em;
} }
#taskbar button {
padding-left: 0;
}
#taskbar button, #taskbar button,
#tray button { #tray button,
padding: 0 3px;
margin: 3px;
}
#workspaces button { #workspaces button {
border-radius: 3px; border-radius: 6px;
padding: 0 5px; min-width: 0.8em;
margin: 3px;
} }
#battery.critical:not(.charging) { #battery.critical:not(.charging) {
background-color: @base09; background-color: @base09;
color: @base00; color: @base00;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: steps(12);
animation-iteration-count: infinite;
animation-direction: alternate;
}
#mode {
background-color: rgba(0, 0, 0, 0.2);
box-shadow: inset 0 -3px @base05;
}
#power-profiles-daemon.balanced {
color: @base05;
} }
#power-profiles-daemon.performance { #power-profiles-daemon.performance {
@ -347,8 +493,27 @@ in {
margin: 3px 0 3px 3px; margin: 3px 0 3px 3px;
} }
#taskbar button,
#tray button {
padding: 0 0.4em;
margin: 3px;
}
#workspaces button.active,
#taskbar button.active {
background-color: @base02;
}
#workspaces button:hover,
#workspaces button.active:hover,
#taskbar button.active:hover,
#taskbar button:hover { #taskbar button:hover {
background-color: @base0D; background-color: @base0D;
color: @base00;
}
#taskbar.empty {
background-color: transparent;
} }
#tray > .needs-attention { #tray > .needs-attention {
@ -360,10 +525,10 @@ in {
-gtk-icon-effect: dim; -gtk-icon-effect: dim;
} }
#workspaces button.active { /* #workspaces button.active {
color: @base00; color: @base00;
background-color: @base0D; background-color: @base0D;
} } */
label:focus { label:focus {
background-color: #000000; background-color: #000000;

View File

@ -1,27 +1,26 @@
{ {
# perSystem,
lib, lib,
osConfig, osConfig,
pkgs, pkgs,
lockscreen, lockscreen,
... ...
}: { }:
lib.attrsets.recursiveUpdate {
blueman-applet.enable = osConfig.services.blueman.enable; blueman-applet.enable = osConfig.services.blueman.enable;
swaync = import ./swaync; copyq.enable = true;
gammastep.enable = true;
gnome-keyring.enable = true;
hypridle.enable = true;
kanshi = import ./kanshi; kanshi = import ./kanshi;
network-manager-applet.enable = true; network-manager-applet.enable = true;
playerctld.enable = true; playerctld.enable = true;
swaync = import ./swaync;
swayosd.enable = true;
udiskie.enable = true;
wpaperd.enable = true; wpaperd.enable = true;
copyq = { }
enable = true; {
# package = perSystem.nixpkgs-stable.copyq;
};
gnome-keyring = {
enable = true;
components = ["secrets"];
};
gammastep = { gammastep = {
enable = true;
provider = "manual"; provider = "manual";
latitude = 49.6; latitude = 49.6;
longitude = 36.1; longitude = 36.1;
@ -31,19 +30,8 @@
night = 3000; night = 3000;
}; };
}; };
swayosd = { gnome-keyring.components = ["secrets"];
enable = true; hypridle.settings = {
topMargin = 0.8;
};
udiskie = {
enable = true;
automount = false;
notify = true;
tray = "auto";
};
hypridle = {
enable = true;
settings = {
general = { general = {
before_sleep_cmd = "loginctl lock-session"; before_sleep_cmd = "loginctl lock-session";
lock_cmd = "pidof ${lockscreen} || ${lockscreen}"; lock_cmd = "pidof ${lockscreen} || ${lockscreen}";
@ -60,5 +48,10 @@
} }
]; ];
}; };
swayosd.topMargin = 0.8;
udiskie = {
automount = false;
notify = true;
tray = "auto";
}; };
} }

View File

@ -17,7 +17,7 @@
control-center-layer = "overlay"; control-center-layer = "overlay";
# Notification settings # Notification settings
positionX = "right"; positionX = "left";
positionY = "top"; positionY = "top";
notification-2fa-action = true; notification-2fa-action = true;
notification-inline-replies = false; notification-inline-replies = false;
@ -27,7 +27,7 @@
notification-window-width = 400; notification-window-width = 400;
# Control center settings # Control center settings
control-center-positionX = "right"; control-center-positionX = "left";
control-center-positionY = "top"; control-center-positionY = "top";
control-center-width = 500; control-center-width = 500;
control-center-exclusive-zone = true; control-center-exclusive-zone = true;
@ -74,16 +74,17 @@
.app-icon, .app-icon,
.image { .image {
-gtk-icon-effect: none; -gtk-icon-effect: none;
padding-right: 0.5rem;
} }
.notification-action { .notification-action {
border-radius: 6px; border-radius: 9px;
margin: 3px; margin: 3px;
} }
.close-button { .close-button {
margin: 12px; margin: 12px;
border-radius: 3px; border-radius: 6px;
} }
.notification-group.collapsed .notification-group.collapsed
@ -105,15 +106,15 @@
.notification.normal, .notification.normal,
.notification.critical, .notification.critical,
.control-center { .control-center {
border-radius: 9px; border-radius: 12px;
margin: 6px; margin: 6px;
} }
.floating-notifications, .floating-notifications,
.notification-content { .notification-content {
padding: 0.5rem;
margin: 3px; margin: 3px;
border-radius: 6px; border-radius: 9px;
border: none;
} }
.control-center-list { .control-center-list {
@ -129,7 +130,7 @@
} }
.widget-title > button { .widget-title > button {
border-radius: 6px; border-radius: 9px;
padding: 0.5rem; padding: 0.5rem;
} }
@ -142,23 +143,23 @@
} }
.widget-dnd > switch { .widget-dnd > switch {
border-radius: 6px; border-radius: 9px;
} }
.widget-dnd > switch slider { .widget-dnd > switch slider {
margin: 3px; margin: 3px;
border-radius: 3px; border-radius: 6px;
padding: 0px; padding: 0px;
} }
.widget-mpris .widget-mpris-player { .widget-mpris .widget-mpris-player {
border-radius: 9px; border-radius: 12px;
margin: 0.5rem; margin: 0.5rem;
padding: 0.5rem; padding: 0.5rem;
} }
.widget-mpris .widget-mpris-player .widget-mpris-album-art { .widget-mpris .widget-mpris-player .widget-mpris-album-art {
border-radius: 6px; border-radius: 9px;
} }
.widget-mpris .widget-mpris-player .widget-mpris-title { .widget-mpris .widget-mpris-player .widget-mpris-title {
@ -170,7 +171,7 @@
} }
.widget-mpris .widget-mpris-player > box > button { .widget-mpris .widget-mpris-player > box > button {
border-radius: 3px; border-radius: 6px;
padding: 3px; padding: 3px;
} }
''; '';

View File

@ -125,13 +125,13 @@
wallpaper = wallpapers.abstract.waves; wallpaper = wallpapers.abstract.waves;
serif = { serif = {
package = iosevkaPackage; package = geistPackage;
name = "Iosevka Nerd Font"; name = "Geist";
}; };
monospace = { monospace = {
package = iosevkaTermPackage; package = geistMonoPackage;
name = "IosevkaTerm Nerd Font Mono"; name = "GeistMono NFM";
}; };
cursor = { cursor = {
@ -351,6 +351,7 @@ in {
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
fonts.packages = [pkgs.nerd-fonts.symbols-only];
stylix = stylix =
{ {
enable = true; enable = true;

View File

@ -69,7 +69,7 @@
"com.obsproject.Studio" "com.obsproject.Studio"
"com.usebottles.bottles" # wine containers "com.usebottles.bottles" # wine containers
"de.capypara.FieldMonitor" # libvirt "de.capypara.FieldMonitor" # libvirt
"de.haeckerfelix.Fragments" # torrents "org.qbittorrent.qBittorrent" # torrents
"io.github.amit9838.mousam" # weather "io.github.amit9838.mousam" # weather
"io.github.finefindus.Hieroglyphic" # find latex symbols (in rust) "io.github.finefindus.Hieroglyphic" # find latex symbols (in rust)
"io.github.lainsce.Khronos" # log time for tasks "io.github.lainsce.Khronos" # log time for tasks
@ -129,6 +129,7 @@
"org.gimp.GIMP" = {inherit (homeNoNetwork) Context;}; "org.gimp.GIMP" = {inherit (homeNoNetwork) Context;};
"org.kde.kdenlive" = {inherit (homeNoNetwork) Context;}; "org.kde.kdenlive" = {inherit (homeNoNetwork) Context;};
"org.signal.Signal".Environment.SIGNAL_PASSWORD_STORE = "gnome-libsecret"; "org.signal.Signal".Environment.SIGNAL_PASSWORD_STORE = "gnome-libsecret";
"org.qbittorrent.qBittorrent".Context.filesystems = ["host"]; # evil
}; };
}; };
} }

View File

@ -86,6 +86,7 @@ in {
sd # sed in rust sd # sed in rust
systemctl-tui # systemctl tui in rust systemctl-tui # systemctl tui in rust
trashy # trash cli in rust trashy # trash cli in rust
up # ultimate plumber in go
] ]
++ [ ++ [
# misc apps # misc apps