Kieran's opinionated (and probably slightly dumb) nix config

Compare changes

Choose any two refs to compare.

+209 -201
flake.lock
···
{
"nodes": {
-
"Hyprnix": {
-
"inputs": {
-
"bird-nix-lib": "bird-nix-lib",
-
"hyprland": "hyprland",
-
"hyprland-protocols": "hyprland-protocols_2",
-
"hyprland-xdph": "hyprland-xdph",
-
"hyprlang": "hyprlang_3",
-
"nixpkgs": "nixpkgs_2",
-
"systems": "systems_3"
-
},
-
"locked": {
-
"lastModified": 1718089837,
-
"narHash": "sha256-E4Q+ruDcE1S+CrHLwdpB32NvcITKOJWrg9LhMs+/Of0=",
-
"owner": "hyprland-community",
-
"repo": "hyprnix",
-
"rev": "cfb8fb276e605699589c578e27f0ddd8dbba102b",
-
"type": "github"
-
},
-
"original": {
-
"owner": "hyprland-community",
-
"repo": "hyprnix",
-
"type": "github"
-
}
-
},
"agenix": {
"inputs": {
"darwin": "darwin",
"home-manager": "home-manager",
-
"nixpkgs": "nixpkgs_3",
-
"systems": "systems_4"
+
"nixpkgs": "nixpkgs",
+
"systems": "systems"
},
"locked": {
"lastModified": 1720546205,
···
"type": "github"
}
},
+
"aquamarine": {
+
"inputs": {
+
"hyprutils": [
+
"hyprnix",
+
"hyprutils"
+
],
+
"hyprwayland-scanner": [
+
"hyprnix",
+
"hyprwayland-scanner"
+
],
+
"nixpkgs": [
+
"hyprnix",
+
"nixpkgs"
+
],
+
"systems": [
+
"hyprnix",
+
"systems"
+
]
+
},
+
"locked": {
+
"lastModified": 1722705009,
+
"narHash": "sha256-U/FTS7uJVPy9jEcHdPfnIhq7e14TXOoxX9xlKltoQdY=",
+
"owner": "hyprwm",
+
"repo": "aquamarine",
+
"rev": "a70fc6a2fd53fc82f0cbb464fd8e91f00511cfc1",
+
"type": "github"
+
},
+
"original": {
+
"owner": "hyprwm",
+
"repo": "aquamarine",
+
"type": "github"
+
}
+
},
"bird-nix-lib": {
"inputs": {
-
"nixpkgs": "nixpkgs",
-
"systems": "systems"
+
"nixpkgs": [
+
"hyprnix",
+
"nixpkgs"
+
],
+
"systems": [
+
"hyprnix",
+
"systems"
+
]
},
"locked": {
"lastModified": 1718015582,
···
"type": "github"
}
},
+
"catppuccin-vsc": {
+
"inputs": {
+
"nixpkgs": "nixpkgs_2"
+
},
+
"locked": {
+
"lastModified": 1713966373,
+
"narHash": "sha256-8bMRH+z426e6zWcS15QZsQ8moSAKbEDjtBnAE10+DW8=",
+
"rev": "4b857d9b86cbb393e121f0f2544a6efb549dbbf4",
+
"revCount": 482,
+
"type": "tarball",
+
"url": "https://api.flakehub.com/f/pinned/catppuccin/vscode/3.14.0/018f15b6-7a7e-7bae-80f2-cf902f1db7fe/source.tar.gz"
+
},
+
"original": {
+
"type": "tarball",
+
"url": "https://flakehub.com/f/catppuccin/vscode/%2A.tar.gz"
+
}
+
},
"darwin": {
"inputs": {
"nixpkgs": [
···
},
"flake-utils": {
"inputs": {
-
"systems": "systems_5"
+
"systems": "systems_3"
},
"locked": {
"lastModified": 1710146030,
···
"type": "github"
}
},
-
"hyprland": {
+
"hyprcursor": {
"inputs": {
-
"hyprland-protocols": "hyprland-protocols",
-
"hyprlang": "hyprlang",
+
"hyprlang": [
+
"hyprnix",
+
"hyprlang"
+
],
"nixpkgs": [
-
"Hyprnix",
+
"hyprnix",
"nixpkgs"
],
"systems": [
-
"Hyprnix",
+
"hyprnix",
"systems"
-
],
-
"wlroots": "wlroots",
-
"xdph": "xdph"
+
]
},
"locked": {
-
"lastModified": 1708870181,
-
"narHash": "sha256-SRgG4MR7GXzZxgP0rMHxIkGp0yLEoVCV50nL8TKe+mA=",
+
"lastModified": 1722623071,
+
"narHash": "sha256-sLADpVgebpCBFXkA1FlCXtvEPu1tdEsTfqK1hfeHySE=",
"owner": "hyprwm",
-
"repo": "hyprland",
-
"rev": "54a8329936d31537411c7a1a4d1815820b98316a",
+
"repo": "hyprcursor",
+
"rev": "912d56025f03d41b1ad29510c423757b4379eb1c",
"type": "github"
},
"original": {
"owner": "hyprwm",
-
"repo": "hyprland",
+
"repo": "hyprcursor",
"type": "github"
}
},
+
"hyprland": {
+
"inputs": {
+
"aquamarine": [
+
"hyprnix",
+
"aquamarine"
+
],
+
"hyprcursor": [
+
"hyprnix",
+
"hyprcursor"
+
],
+
"hyprlang": [
+
"hyprnix",
+
"hyprlang"
+
],
+
"hyprutils": [
+
"hyprnix",
+
"hyprutils"
+
],
+
"hyprwayland-scanner": [
+
"hyprnix",
+
"hyprwayland-scanner"
+
],
+
"nixpkgs": [
+
"hyprnix",
+
"nixpkgs"
+
],
+
"systems": [
+
"hyprnix",
+
"systems"
+
],
+
"xdph": [
+
"hyprnix",
+
"xdg-desktop-portal-hyprland"
+
]
+
},
+
"locked": {
+
"lastModified": 1722707408,
+
"narHash": "sha256-hyTuWhcid8UklJBC4Yh3dpf7Xhx4oJDyM/3n10E1wSk=",
+
"ref": "refs/heads/main",
+
"rev": "51ffd7fa6f186419276e5d3d5fe141a3fdb3c55c",
+
"revCount": 5048,
+
"submodules": true,
+
"type": "git",
+
"url": "https://github.com/hyprwm/Hyprland"
+
},
+
"original": {
+
"submodules": true,
+
"type": "git",
+
"url": "https://github.com/hyprwm/Hyprland"
+
}
+
},
"hyprland-contrib": {
"inputs": {
-
"nixpkgs": "nixpkgs_4"
+
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1720709712,
···
"hyprland-protocols": {
"inputs": {
"nixpkgs": [
-
"Hyprnix",
-
"hyprland",
+
"hyprnix",
"nixpkgs"
],
"systems": [
-
"Hyprnix",
-
"hyprland",
+
"hyprnix",
"systems"
]
},
"locked": {
-
"lastModified": 1691753796,
-
"narHash": "sha256-zOEwiWoXk3j3+EoF3ySUJmberFewWlagvewDRuWYAso=",
+
"lastModified": 1721326555,
+
"narHash": "sha256-zCu4R0CSHEactW9JqYki26gy8h9f6rHmSwj4XJmlHgg=",
"owner": "hyprwm",
"repo": "hyprland-protocols",
-
"rev": "0c2ce70625cb30aef199cb388f99e19a61a6ce03",
+
"rev": "5a11232266bf1a1f5952d5b179c3f4b2facaaa84",
"type": "github"
},
"original": {
···
"type": "github"
}
},
-
"hyprland-protocols_2": {
+
"hyprlang": {
"inputs": {
+
"hyprutils": [
+
"hyprnix",
+
"hyprutils"
+
],
"nixpkgs": [
-
"Hyprnix",
+
"hyprnix",
"nixpkgs"
],
"systems": [
-
"Hyprnix",
+
"hyprnix",
"systems"
]
},
"locked": {
-
"lastModified": 1691753796,
-
"narHash": "sha256-zOEwiWoXk3j3+EoF3ySUJmberFewWlagvewDRuWYAso=",
+
"lastModified": 1721324361,
+
"narHash": "sha256-BiJKO0IIdnSwHQBSrEJlKlFr753urkLE48wtt0UhNG4=",
"owner": "hyprwm",
-
"repo": "hyprland-protocols",
-
"rev": "0c2ce70625cb30aef199cb388f99e19a61a6ce03",
+
"repo": "hyprlang",
+
"rev": "adbefbf49664a6c2c8bf36b6487fd31e3eb68086",
"type": "github"
},
"original": {
"owner": "hyprwm",
-
"repo": "hyprland-protocols",
+
"repo": "hyprlang",
"type": "github"
}
},
-
"hyprland-xdph": {
+
"hyprnix": {
"inputs": {
-
"hyprland-protocols": [
-
"Hyprnix",
-
"hyprland-protocols"
-
],
-
"hyprlang": "hyprlang_2",
-
"nixpkgs": [
-
"Hyprnix",
-
"nixpkgs"
-
],
-
"systems": [
-
"Hyprnix",
-
"systems"
-
]
+
"aquamarine": "aquamarine",
+
"bird-nix-lib": "bird-nix-lib",
+
"hyprcursor": "hyprcursor",
+
"hyprland": "hyprland",
+
"hyprland-protocols": "hyprland-protocols",
+
"hyprlang": "hyprlang",
+
"hyprutils": "hyprutils",
+
"hyprwayland-scanner": "hyprwayland-scanner",
+
"nixpkgs": "nixpkgs_4",
+
"systems": "systems_2",
+
"xdg-desktop-portal-hyprland": "xdg-desktop-portal-hyprland"
},
"locked": {
-
"lastModified": 1708696469,
-
"narHash": "sha256-shh5wmpeYy3MmsBfkm4f76yPsBDGk6OLYRVG+ARy2F0=",
-
"owner": "hyprwm",
-
"repo": "xdg-desktop-portal-hyprland",
-
"rev": "1b713911c2f12b96c2574474686e4027ac4bf826",
+
"lastModified": 1722829543,
+
"narHash": "sha256-fUY2Z3GsiS2ID9LLiB7sCarkdlTjLVzORg+RItuqSOs=",
+
"owner": "hyprland-community",
+
"repo": "hyprnix",
+
"rev": "c061b6086210e635a906837947ccd5bbfce50c28",
"type": "github"
},
"original": {
-
"owner": "hyprwm",
-
"repo": "xdg-desktop-portal-hyprland",
+
"owner": "hyprland-community",
+
"ref": "rewrite",
+
"repo": "hyprnix",
"type": "github"
}
},
-
"hyprlang": {
+
"hyprutils": {
"inputs": {
"nixpkgs": [
-
"Hyprnix",
-
"hyprland",
+
"hyprnix",
"nixpkgs"
],
"systems": [
-
"Hyprnix",
-
"hyprland",
+
"hyprnix",
"systems"
]
},
"locked": {
-
"lastModified": 1708681732,
-
"narHash": "sha256-ULZZLZ9C33G13IaXLuAc4oTzHUvnATI8Fj2u6gzMfT0=",
+
"lastModified": 1722098849,
+
"narHash": "sha256-D3wIZlBNh7LuZ0NaoCpY/Pvu+xHxIVtSN+KkWZYvvVs=",
"owner": "hyprwm",
-
"repo": "hyprlang",
-
"rev": "f4466367ef0a92a6425d482050dc2b8840c0e644",
+
"repo": "hyprutils",
+
"rev": "5dcbbc1e3de40b2cecfd2007434d86e924468f1f",
"type": "github"
},
"original": {
"owner": "hyprwm",
-
"repo": "hyprlang",
+
"repo": "hyprutils",
"type": "github"
}
},
-
"hyprlang_2": {
+
"hyprwayland-scanner": {
"inputs": {
"nixpkgs": [
-
"Hyprnix",
-
"hyprland-xdph",
-
"nixpkgs"
-
],
-
"systems": "systems_2"
-
},
-
"locked": {
-
"lastModified": 1708681732,
-
"narHash": "sha256-ULZZLZ9C33G13IaXLuAc4oTzHUvnATI8Fj2u6gzMfT0=",
-
"owner": "hyprwm",
-
"repo": "hyprlang",
-
"rev": "f4466367ef0a92a6425d482050dc2b8840c0e644",
-
"type": "github"
-
},
-
"original": {
-
"owner": "hyprwm",
-
"repo": "hyprlang",
-
"type": "github"
-
}
-
},
-
"hyprlang_3": {
-
"inputs": {
-
"nixpkgs": [
-
"Hyprnix",
+
"hyprnix",
"nixpkgs"
],
"systems": [
-
"Hyprnix",
+
"hyprnix",
"systems"
]
},
"locked": {
-
"lastModified": 1708787654,
-
"narHash": "sha256-7ACgM3ZuAhPqurXHUvR2nWMRcnmzGGPjLK6q4DSTelI=",
+
"lastModified": 1721324119,
+
"narHash": "sha256-SOOqIT27/X792+vsLSeFdrNTF+OSRp5qXv6Te+fb2Qg=",
"owner": "hyprwm",
-
"repo": "hyprlang",
-
"rev": "0fce791ba2334aca183f2ed42399518947550d0d",
+
"repo": "hyprwayland-scanner",
+
"rev": "a048a6cb015340bd82f97c1f40a4b595ca85cc30",
"type": "github"
},
"original": {
"owner": "hyprwm",
-
"repo": "hyprlang",
+
"repo": "hyprwayland-scanner",
"type": "github"
}
},
···
},
"nixpkgs": {
"locked": {
-
"lastModified": 1717868076,
-
"narHash": "sha256-c83Y9t815Wa34khrux81j8K8ET94ESmCuwORSKm2bQY=",
-
"owner": "nixos",
+
"lastModified": 1703013332,
+
"narHash": "sha256-+tFNwMvlXLbJZXiMHqYq77z/RfmpfpiI3yjL6o/Zo9M=",
+
"owner": "NixOS",
"repo": "nixpkgs",
-
"rev": "cd18e2ae9ab8e2a0a8d715b60c91b54c0ac35ff9",
+
"rev": "54aac082a4d9bb5bbc5c4e899603abfb76a3f6d6",
"type": "github"
},
"original": {
-
"owner": "nixos",
-
"ref": "nixpkgs-unstable",
+
"owner": "NixOS",
+
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
···
},
"nixpkgs_2": {
"locked": {
-
"lastModified": 1697723726,
-
"narHash": "sha256-SaTWPkI8a5xSHX/rrKzUe+/uVNy6zCGMXgoeMb7T9rg=",
-
"owner": "nixos",
+
"lastModified": 1712963716,
+
"narHash": "sha256-WKm9CvgCldeIVvRz87iOMi8CFVB1apJlkUT4GGvA0iM=",
+
"owner": "NixOS",
"repo": "nixpkgs",
-
"rev": "7c9cc5a6e5d38010801741ac830a3f8fd667a7a0",
+
"rev": "cfd6b5fc90b15709b780a5a1619695a88505a176",
"type": "github"
},
"original": {
-
"owner": "nixos",
+
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
···
},
"nixpkgs_3": {
"locked": {
-
"lastModified": 1703013332,
-
"narHash": "sha256-+tFNwMvlXLbJZXiMHqYq77z/RfmpfpiI3yjL6o/Zo9M=",
+
"lastModified": 1712163089,
+
"narHash": "sha256-Um+8kTIrC19vD4/lUCN9/cU9kcOsD1O1m+axJqQPyMM=",
"owner": "NixOS",
"repo": "nixpkgs",
-
"rev": "54aac082a4d9bb5bbc5c4e899603abfb76a3f6d6",
+
"rev": "fd281bd6b7d3e32ddfa399853946f782553163b5",
"type": "github"
},
"original": {
···
},
"nixpkgs_4": {
"locked": {
-
"lastModified": 1712163089,
-
"narHash": "sha256-Um+8kTIrC19vD4/lUCN9/cU9kcOsD1O1m+axJqQPyMM=",
-
"owner": "NixOS",
+
"lastModified": 1722421184,
+
"narHash": "sha256-/DJBI6trCeVnasdjUo9pbnodCLZcFqnVZiLUfqLH4jA=",
+
"owner": "nixos",
"repo": "nixpkgs",
-
"rev": "fd281bd6b7d3e32ddfa399853946f782553163b5",
+
"rev": "9f918d616c5321ad374ae6cb5ea89c9e04bf3e58",
"type": "github"
},
"original": {
-
"owner": "NixOS",
+
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
···
},
"root": {
"inputs": {
-
"Hyprnix": "Hyprnix",
"agenix": "agenix",
"catppuccin": "catppuccin",
+
"catppuccin-vsc": "catppuccin-vsc",
"disko": "disko",
"hardware": "hardware",
"home-manager": "home-manager_2",
"hyprland-contrib": "hyprland-contrib",
+
"hyprnix": "hyprnix",
"nix-vscode-extensions": "nix-vscode-extensions",
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_6",
···
}
},
"systems_2": {
+
"flake": false,
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
···
},
"systems_3": {
"locked": {
-
"lastModified": 1689347949,
-
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
-
"owner": "nix-systems",
-
"repo": "default-linux",
-
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
-
"type": "github"
-
},
-
"original": {
-
"owner": "nix-systems",
-
"repo": "default-linux",
-
"type": "github"
-
}
-
},
-
"systems_4": {
-
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
···
"type": "github"
}
},
-
"systems_5": {
-
"locked": {
-
"lastModified": 1681028828,
-
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
-
"owner": "nix-systems",
-
"repo": "default",
-
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
-
"type": "github"
-
},
-
"original": {
-
"owner": "nix-systems",
-
"repo": "default",
-
"type": "github"
-
}
-
},
-
"wlroots": {
-
"flake": false,
-
"locked": {
-
"host": "gitlab.freedesktop.org",
-
"lastModified": 1708558866,
-
"narHash": "sha256-Mz6hCtommq7RQfcPnxLINigO4RYSNt23HeJHC6mVmWI=",
-
"owner": "wlroots",
-
"repo": "wlroots",
-
"rev": "0cb091f1a2d345f37d2ee445f4ffd04f7f4ec9e5",
-
"type": "gitlab"
-
},
-
"original": {
-
"host": "gitlab.freedesktop.org",
-
"owner": "wlroots",
-
"repo": "wlroots",
-
"rev": "0cb091f1a2d345f37d2ee445f4ffd04f7f4ec9e5",
-
"type": "gitlab"
-
}
-
},
-
"xdph": {
+
"xdg-desktop-portal-hyprland": {
"inputs": {
"hyprland-protocols": [
-
"Hyprnix",
-
"hyprland",
+
"hyprnix",
"hyprland-protocols"
],
"hyprlang": [
-
"Hyprnix",
-
"hyprland",
+
"hyprnix",
"hyprlang"
],
"nixpkgs": [
-
"Hyprnix",
-
"hyprland",
+
"hyprnix",
"nixpkgs"
],
"systems": [
-
"Hyprnix",
-
"hyprland",
+
"hyprnix",
"systems"
]
},
"locked": {
-
"lastModified": 1708696469,
-
"narHash": "sha256-shh5wmpeYy3MmsBfkm4f76yPsBDGk6OLYRVG+ARy2F0=",
+
"lastModified": 1722365976,
+
"narHash": "sha256-Khdm+mDzYA//XaU0M+hftod+rKr5q9SSHSEuiQ0/9ow=",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
-
"rev": "1b713911c2f12b96c2574474686e4027ac4bf826",
+
"rev": "7f2a77ddf60390248e2a3de2261d7102a13e5341",
"type": "github"
},
"original": {
+2 -1
flake.nix
···
home-manager.inputs.nixpkgs.follows = "nixpkgs";
# hyprland nix
-
Hyprnix.url = "github:hyprland-community/hyprnix";
+
hyprnix.url = "github:hyprland-community/hyprnix/rewrite";
hyprland-contrib = {
url = "github:hyprwm/contrib";
};
···
# catppuccin
catppuccin.url = "github:catppuccin/nix";
+
catppuccin-vsc.url = "https://flakehub.com/f/catppuccin/vscode/\*.tar.gz";
nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions";
};
+1
home-manager/dots/hyprland.conf
···
bind = CTRL + SHIFT, S, exec, spotify
bind = CTRL + SHIFT, L, exec, slack
bind = CTRL + SHIFT, O, exec, obs
+
bind = CTRL + SHIFT, K, exec, export GTK_THEME=Adwaita:dark && kicad
bind = $mainMod, RETURN, exec, alacritty
+20 -4
home-manager/home.nix
···
# inputs.Hyprnix.homeManagerModules.hyprland
-
./hyprland.nix
-
# ./hyprland
+
# ./hyprland.nix
+
./hyprland
./waybar.nix
···
nixpkgs = {
overlays = [
inputs.nix-vscode-extensions.overlays.default
+
inputs.catppuccin-vsc.overlays.default
];
# Configure your nixpkgs instance
config = {
···
edwinkofler.vscode-assorted-languages
golang.go
catppuccin.catppuccin-vsc-icons
-
catppuccin.catppuccin-vsc
eamodio.gitlens
yzhang.markdown-all-in-one
github.vscode-github-actions
···
ms-vscode.cpptools
ms-vscode.vscode-serial-monitor
prisma.prisma
-
];
+
ms-azuretools.vscode-docker
+
astro-build.astro-vscode
+
github.copilot
+
github.copilot-chat
+
dotjoshjohnson.xml
+
johnpapa.vscode-cloak
+
mikestead.dotenv
+
]
+
++ [(pkgs.catppuccin-vsc.override {
+
accent = "blue";
+
})];
+
userSettings = {
"editor.semanticHighlighting.enabled" = true;
"terminal.integrated.minimumContrastRatio" = 1;
···
"git.autofetch" = true;
"git.confirmSync" = false;
"github.copilot.editor.enableAutoCompletions" = false;
+
+
"editor.formatOnSave" = true;
"[json]" = {
+
"editor.defaultFormatter" = "esbenp.prettier-vscode";
+
};
+
"[javascript]" = {
"editor.defaultFormatter" = "esbenp.prettier-vscode";
};
};
+4 -62
home-manager/hyprland/config.nix
···
{ lib, ... }:
-
let
-
inherit (lib.birdos.colors) grayRGB;
-
hyprRGBA = rgb: a: "rgba(${lib.birdos.colors.hexRGBA rgb a})";
-
gb = (lib.birdos.colors.formats.custom hyprRGBA).gruvbox.dark;
-
shadow = hyprRGBA (grayRGB 6.0e-2); # 6% of each channel
-
in {
+
{
wayland.windowManager.hyprland = {
# <https://wiki.hyprland.org/Configuring/Variables/#general>
config.general = {
border_size = 2;
gaps_inside = 5;
gaps_outside = 10;
-
active_border_color = gb.fg3 1.0;
-
inactive_border_color = gb.bg3 1.0;
-
cursor_inactive_timeout = 10;
-
no_cursor_warps = true;
resize_on_border = true;
extend_border_grab_area = 10;
};
···
rounding = 0;
shadow_range = 8;
shadow_render_power = 2;
-
active_shadow_color = shadow 0.9;
-
inactive_shadow_color = shadow 0.6;
blur = {
size = 3; # 8
passes = 2; # 1
···
in {
follow_mouse = LOOSE;
float_switch_override_focus = DISABLED;
+
touchpad = {
+
natural_scroll = true;
+
};
};
# <https://wiki.hyprland.org/Configuring/Variables/#binds>
···
insert_after_current = true;
focus_removed_window = true;
-
active_border_color = gb.hl_yellow 1.0;
-
inactive_border_color = gb.bg3 1.0;
-
locked_active_border_color = gb.hl_blue 1.0;
-
locked_inactive_border_color = gb.bg3 1.0;
-
# These features are not polished yet:
# <https://github.com/hyprwm/Hyprland/issues/2415>
# @MightyPlaza is working on this, but not doing it how we expect.
···
gradients = false;
render_titles = true;
scrolling = true;
-
text_color = gb.fg0 1.0;
-
-
active_color = gb.fg3 1.0;
-
inactive_color = gb.bg1 0.6;
-
locked_active_color = active_color;
-
locked_inactive_color = inactive_color;
};
};
···
};
# <https://wiki.hyprland.org/Configuring/Animations/#curves>
-
animations.animation = {
-
# window creation
-
windowsIn = {
-
enable = true;
-
duration = 200;
-
curve = "easeOutCirc";
-
style = "popin 60%";
-
};
-
fadeIn = {
-
enable = true;
-
duration = 100;
-
curve = "easeOutCirc";
-
};
-
# window destruction
-
windowsOut = {
-
enable = true;
-
duration = 200;
-
curve = "easeOutCirc";
-
style = "popin 60%";
-
};
-
fadeOut = {
-
enable = true;
-
duration = 100;
-
curve = "easeOutCirc";
-
};
-
# window movement
-
windowsMove = {
-
enable = true;
-
duration = 300;
-
curve = "easeInOutCubic";
-
style = "popin";
-
};
-
workspaces = {
-
enable = true;
-
duration = 200;
-
curve = "easeOutCirc";
-
style = "slide";
-
};
-
};
};
}
+7 -24
home-manager/hyprland/default.nix
···
{ self, config, lib, pkgs, inputs, ... }: {
imports = [
-
inputs.hyprland-nix.homeManagerModules.hyprland
-
# inputs.hyprland-nix.homeManagerModules.xdg-desktop-portals
-
#./config.nix
-
#./windowrules.nix
-
#./keybinds.nix
-
#./waybar.nix
+
inputs.hyprnix.homeManagerModules.hyprland
+
./config.nix
+
./windowrules.nix
+
./keybinds.nix
+
../waybar.nix
];
wayland.windowManager.hyprland = {
···
systemdIntegration = true;
recommendedEnvironment = true;
+
fufexan.enable = true;
+
xwayland.enable = true;
config.exec_once = [
···
"${lib.getExe pkgs.xorg.xhost} +local:"
];
};
-
-
# xdg.desktopPortals = {
-
# enable = true;
-
# extraPortals = [
-
# pkgs.xdg-desktop-portal-hyprland
-
# pkgs.xdg-desktop-portal-kde
-
# pkgs.xdg-desktop-portal-gtk
-
# ];
-
# configPackages = [ config.wayland.windowManager.hyprland.package ];
-
# config = {
-
# x-cinnamon = { default = [ "xapp" "gtk" ]; };
-
# pantheon = {
-
# default = [ "pantheon" "gtk" ];
-
# "org.freedesktop.impl.portal.Secret" = [ "gnome-keyring" ];
-
# };
-
# common = { default = [ "gtk" ]; };
-
# };
-
# };
}
+1 -58
home-manager/hyprland/keybinds.nix
···
MOUSE_EX1 = "mouse:275";
MOUSE_EX2 = "mouse:276";
-
exec = {
-
screenshotWindow = pkgs.patchShellScript ./scripts/screenshot.sh {
-
runtimeInputs = with pkgs; [
-
jq
-
grim
-
wl-clipboard
-
libnotify
-
config.wayland.windowManager.hyprland.package
-
];
-
};
-
playerctl = lib.getExe pkgs.playerctl;
-
slight = lib.getExe pkgs.slight;
-
osdFunc = lib.getExe config.utilities.osd-functions.package;
-
airplaneMode = "sudo /run/current-system/sw/bin/airplane-mode";
-
toggleGroupOrLock =
-
pkgs.patchShellScript ./scripts/toggle-group-or-lock.sh {
-
runtimeInputs = with pkgs; [
-
jq
-
config.wayland.windowManager.hyprland.package
-
];
-
};
-
};
-
# Collections of keybinds common across multiple submaps are collected into
# groups, which can be merged together granularly.
groups = {
···
launchPrograms = {
# Launch the program with a shortcut.
bind."SUPER, E" = "exec, dolphin";
-
bind."SUPER, Enter" = "exec, alacritty";
+
bind."SUPER, Enter" = "exec, foot";
};
# Kill the active window.
···
# Forcefully kill a program after selecting its window with the mouse.
bind."SUPER_SHIFT, Q" = "exec, hyprctl kill";
-
# Screenshot the currently focused window and copy to clipboard.
-
bind."SUPER, print" = "exec, ${exec.screenshotWindow}";
-
# Select a region and take a screenshot, saving to the clipboard.
bind."SUPER_SHIFT, print" = "exec, prtsc -c -m r -D -b 00000066";
···
bind."SUPER, Space" = "exec, rofi -show drun -show-icons";
# Open Rofi to run a command.
bind."SUPER, R" = "exec, rofi -show run";
-
}
-
### FUNCTION KEYS ###
-
{
-
# The names of these keys can be found at:
-
# <https://github.com/xkbcommon/libxkbcommon/blob/master/include/xkbcommon/xkbcommon-keysyms.h>
-
-
bindl."SHIFT, XF86WLAN" = "exec, ${exec.airplaneMode}";
-
-
# Mute/unmute the active audio output.
-
bindl.", XF86AudioMute" = "exec, ${exec.osdFunc} output mute";
-
-
# Raise and lower the volume of the active audio output.
-
bindel.", XF86AudioRaiseVolume" = "exec, ${exec.osdFunc} output +0.05";
-
bindel.", XF86AudioLowerVolume" = "exec, ${exec.osdFunc} output -0.05";
-
-
# Mute the active microphone or audio source.
-
bindl.", XF86AudioMicMute" = "exec, ${exec.osdFunc} input mute";
-
-
# Raise and lower display brightness.
-
bindel.", XF86MonBrightnessUp" = "exec, ${exec.slight} inc 10 -t 300ms";
-
bindel.", XF86MonBrightnessDown" = "exec, ${exec.slight} dec 10 -t 300ms";
-
-
# Regular media control keys, if your laptop or bluetooth device has them.
-
bindl.", XF86AudioPlay" = "exec, ${exec.playerctl} play-pause";
-
bindl.", XF86AudioPrev" = "exec, ${exec.playerctl} previous";
-
bindl.", XF86AudioNext" = "exec, ${exec.playerctl} next";
-
-
# Poor-man's media player control keys.
-
bindl."SUPER, slash" = "exec, ${exec.playerctl} play-pause";
-
bindl."SUPER, comma" = "exec, ${exec.playerctl} previous";
-
bindl."SUPER, period" = "exec, ${exec.playerctl} next";
}
### WINDOW FOCUS & MOVEMENT ###
groups.moveFocusOrWindow
-384
home-manager/hyprland/waybar.nix
···
-
{ config, lib, pkgs, ... }:
-
let
-
package = pkgs.waybar;
-
-
# the fonts that will be included with the waybar package
-
fontPackages = [ pkgs.ubuntu_font_family pkgs.material-design-icons ];
-
-
# patch those fonts in
-
package' = let super = package;
-
in pkgs.symlinkJoin {
-
inherit (super) name pname version meta;
-
paths = [ super ] ++ fontPackages;
-
};
-
-
compileSCSS = name: source:
-
"${
-
pkgs.runCommandLocal name { } ''
-
mkdir -p $out
-
${lib.getExe pkgs.sassc} -t expanded '${source}' > $out/${name}.css
-
''
-
}/${name}.css";
-
-
# TODO when using store paths to executables, they do not inherit the user's
-
# environment (at least with systemd) and therefore GUIs use the default theme
-
commands = let
-
slight = "${lib.getExe pkgs.slight}";
-
hyprctl = "${config.wayland.windowManager.hyprland.package}/bin/hyprctl";
-
# TODO this is duplicated from the hyprland config, make it a module
-
kbFns = lib.getExe config.utilities.osd-functions.package;
-
pavucontrol = lib.getExe pkgs.lxqt.pavucontrol-qt;
-
blueman-manager = "${pkgs.blueman}/bin/blueman-manager";
-
bluetoothctl = "${pkgs.bluez}/bin/bluetoothctl";
-
systemctl = "${pkgs.systemd}/bin/systemctl";
-
iwgtk = lib.getExe pkgs.iwgtk;
-
in {
-
backlightUp = "${slight} inc 5% -t 150ms";
-
backlightDown = "${slight} dec 5% -t 150ms";
-
# TODO --tab no longer works, what is the identifier to use?
-
outputSoundSettings = "${pavucontrol} --tab 'Output Devices'";
-
outputVolumeMute = "${kbFns} output mute";
-
outputVolumeUp = "${kbFns} output +0.05";
-
outputVolumeDown = "${kbFns} output -0.05";
-
# TODO --tab no longer works, what is the identifier to use?
-
inputSoundSettings = "${pavucontrol} --tab 'Input Devices'";
-
inputVolumeMute = "${kbFns} input mute";
-
# inputVolumeUp = "${kbFns} input +0.05";
-
# inputVolumeDown = "${kbFns} input -0.05";
-
bluetoothSettings = (pkgs.writeShellScript "waybar-bluetooth-settings" ''
-
set -eux
-
export PATH="${
-
lib.makeBinPath
-
(with pkgs; [ coreutils gawk util-linux bluez nettools blueman ])
-
}:$PATH"
-
is_powered_on="$(
-
bluetoothctl show | \
-
awk '/Name: '"$(hostname)"'$/{p=1} p && /Powered: yes/{print "true"; exit} END{if(!NR || !p) print "false"}'
-
)"
-
if [[ $is_powered_on == 'true' ]]; then
-
blueman-manager
-
else
-
rfkill unblock bluetooth && sleep 1 || true
-
bluetoothctl power on
-
sleep 0.5
-
blueman-manager
-
fi
-
'').outPath;
-
bluetoothToggle = (pkgs.writeShellScript "waybar-bluetooth-toggle" ''
-
set -eux
-
export PATH="${
-
lib.makeBinPath
-
(with pkgs; [ coreutils gawk util-linux bluez nettools ])
-
}:$PATH"
-
is_powered_on="$(
-
bluetoothctl show | \
-
awk '/Name: '"$(hostname)"'$/{p=1} p && /Powered: yes/{print "true"; exit} END{if(!NR || !p) print "false"}'
-
)"
-
if [[ $is_powered_on == 'true' ]]; then
-
bluetoothctl power off
-
else
-
rfkill unblock bluetooth && sleep 1 || true
-
bluetoothctl power on
-
fi
-
'').outPath;
-
bluetoothKill =
-
"rfkill block bluetooth && ${systemctl} restart bluetooth.service";
-
bluetoothOff = "${bluetoothctl} power off";
-
wirelessSettings = iwgtk;
-
workspaceSwitchPrev = "${hyprctl} dispatch workspace m-1";
-
workspaceSwitchNext = "${hyprctl} dispatch workspace m+1";
-
};
-
in {
-
programs.waybar.enable = true;
-
programs.waybar.package = package';
-
-
programs.waybar.systemd.enable = true;
-
-
programs.waybar.style =
-
builtins.readFile (compileSCSS "waybar-style" ./waybar.scss);
-
-
programs.waybar.settings = {
-
mainBar = {
-
layer = "top";
-
position = "top";
-
# Causes tooltips to be shown behind windows.
-
# mode = "dock";
-
height = 26;
-
-
modules-left = [ # #
-
"clock#time"
-
"clock#date"
-
# "wlr/workspaces"
-
"tray"
-
"mpris"
-
];
-
-
modules-center = [ # #
-
"hyprland/workspaces"
-
];
-
-
modules-right = [
-
"hyprland/submap"
-
"pulseaudio#output"
-
"pulseaudio#input"
-
"backlight"
-
"memory"
-
"cpu"
-
"temperature"
-
"battery"
-
"network"
-
"bluetooth"
-
"idle_inhibitor"
-
];
-
-
## MODULES-LEFT ##
-
-
# Hyprland dropped support unfortunately.
-
-
# "wlr/workspaces" = {
-
# sort-by-number = true;
-
-
# on-click = "activate";
-
# on-scroll-up = commands.workspaceSwitchPrev;
-
# on-scroll-down = commands.workspaceSwitchNext;
-
# };
-
-
"hyprland/workspaces" = {
-
format = "{name}";
-
# sort-by-number = true;
-
-
# on-click = "activate";
-
on-scroll-up = commands.workspaceSwitchPrev;
-
on-scroll-down = commands.workspaceSwitchNext;
-
};
-
-
tray = {
-
show-passive-items = true;
-
icon-size = 12;
-
spacing = 16;
-
};
-
-
mpris = {
-
player = "playerctld";
-
interval = 1;
-
-
format = "{status_icon} {dynamic}";
-
dynamic-len = 70;
-
dynamic-separator = " — ";
-
dynamic-order = [ "title" "artist" "position" "length" ];
-
dynamic-importance = [ "position" "title" "artist" ];
-
status-icons = {
-
playing = "󰐊";
-
paused = "󰏤";
-
stopped = "󰓛";
-
};
-
-
tooltip-format = lib.trim ''
-
<b>Player:</b> {player} ({status})
-
<b>Title:</b> {title}
-
<b>Artist:</b> {artist}
-
<b>Album:</b> {album}
-
<b>Length:</b> {position}/{length}
-
'';
-
};
-
-
"hyprland/submap" = {
-
format = "󰘳 {}";
-
tooltip = false;
-
};
-
-
"hyprland/window" = { max-length = 50; };
-
-
## MODULES-CENTER ##
-
-
"clock#time" = { format = "{:%I:%M %p}"; };
-
-
"clock#date" = { format = "{:%A, %B %d}"; };
-
-
## MODULES-RIGHT ##
-
-
"pulseaudio#output" = {
-
format = "{icon} {volume}%";
-
format-muted = "󰖁 {volume}%";
-
format-icons = {
-
headphone = "󰋋";
-
# speaker = "󰓃";
-
hdmi = "󰽟";
-
headset = "󰋎";
-
# hands-free = "󰋎";
-
# portable = "";
-
# car = "󰄋";
-
# hifi = "󰓃";
-
# phone = "󰏲";
-
default = [ "󰕿" "󰖀" "󰕾" ];
-
};
-
-
# anything below 100% is "safe" volume levels,
-
# the default style will be used,
-
# anything higher than this will have no CSS class,
-
# that will be considered "warning" state
-
# `#pulseaudio.output:not(.safe)`
-
states = { safe = 100; };
-
-
ignored-sinks = [ "Easy Effects Sink" ];
-
-
on-click = commands.outputSoundSettings;
-
on-click-right = commands.outputVolumeMute;
-
on-scroll-up = commands.outputVolumeUp;
-
on-scroll-down = commands.outputVolumeDown;
-
};
-
-
# TODO volume
-
"pulseaudio#input" = {
-
format = "{format_source}";
-
# format-source = "󰍬 {volume}%";
-
# format-source-muted = "󰍭 {volume}%";
-
format-source = "󰍬";
-
format-source-muted = "󰍭";
-
-
on-click = commands.inputSoundSettings;
-
on-click-right = commands.inputVolumeMute;
-
# on-scroll-up = commands.inputVolumeUp;
-
# on-scroll-down = commands.inputVolumeDown;
-
};
-
-
backlight = {
-
device = "amdgpu_bl0";
-
format = "{icon} {percent}%";
-
# format-icons = ["󰃜" "󰃛" "󰃝" "󰃟" "󰃠"];
-
format-icons = [ "󱩎" "󱩏" "󱩐" "󱩑" "󱩒" "󱩓" "󱩔" "󱩕" "󱩖" "󰛨" ];
-
-
on-scroll-up = commands.backlightUp;
-
on-scroll-down = commands.backlightDown;
-
};
-
-
memory = {
-
interval = 10;
-
format = "󰆼 {used:.2g}/{total:.2g}GiB";
-
};
-
-
cpu = {
-
interval = 5;
-
format = "󰘚 {usage}%";
-
};
-
-
temperature = {
-
interval = 5;
-
hwmon-path-abs = "/sys/devices/pci0000:00/0000:00:18.3/hwmon";
-
input-filename = "temp1_input";
-
critical-threshold =
-
90; # 15C lower than Tjmax <https://www.amd.com/en/product/9686>
-
format = "{icon} {temperatureC}°C";
-
format-critical = "󰈸 {temperatureC}°C";
-
# 4x low, 2x mid, 3x high, for 0-90
-
format-icons = [ "󱃃" "󱃃" "󱃃" "󱃃" "󰔏" "󰔏" "󱃂" "󱃂" "󱃂" ];
-
};
-
-
network = let
-
tooltip = ''
-
<b>Address:</b> {ipaddr}
-
<b>Netmask:</b> {netmask}
-
<b>Gateway:</b> {gwaddr}
-
<b>Speeds:</b> {bandwidthUpBytes} UL, {bandwidthDownBytes} DL
-
'';
-
in {
-
format-ethernet = "󰈀 {bandwidthDownBytes}";
-
format-wifi = "{icon} {bandwidthDownBytes}";
-
format-linked = "󱫱 {bandwidthDownBytes}";
-
format-disconnected = "󰲛";
-
format-icons = [ "󰤟" "󰤢" "󰤥" "󰤨" ];
-
-
tooltip-format = lib.trim ''
-
<b>Interface</b>: {ifname}
-
${tooltip}
-
'';
-
tooltip-format-wifi = lib.trim ''
-
<b>SSID:</b> {essid}
-
<b>Strength:</b> {signaldBm} dBmW ({signalStrength}%)
-
<b>Frequency:</b> {frequency} GHz
-
${tooltip}
-
'';
-
tooltip-format-disconnected = "Network disconnected.";
-
-
on-click = commands.wirelessSettings;
-
};
-
-
bluetooth = {
-
controller = "C0:3C:59:02:25:C3";
-
format-on = "󰂯";
-
format-off = "󰂲";
-
format-disabled = "󰂲";
-
format-connected = "󰂱 {num_connections}";
-
format-connected-battery =
-
"󰂱 {device_alias} ({device_battery_percentage}%) ({num_connections})";
-
-
on-click = commands.bluetoothSettings;
-
on-click-middle = commands.bluetoothKill;
-
on-click-right = commands.bluetoothToggle;
-
};
-
-
battery = {
-
interval = 5;
-
bat = "BAT0";
-
# full-at = 94;
-
format = "{icon} {capacity}%";
-
format-icons = [ "󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹" ];
-
states = {
-
battery-10 = 10;
-
battery-20 = 20;
-
battery-30 = 30;
-
battery-40 = 40;
-
battery-50 = 50;
-
battery-60 = 60;
-
battery-70 = 70;
-
battery-80 = 80;
-
battery-90 = 90;
-
battery-100 = 100;
-
};
-
# <https://github.com/Alexays/Waybar/issues/1938>
-
# the wiki lies about this, does not match
-
# /sys/class/power_supply/BAT0/status
-
format-plugged = "󰚥 AC";
-
format-charging-battery-10 = "󰢜 {capacity}%";
-
format-charging-battery-20 = "󰂆 {capacity}%";
-
format-charging-battery-30 = "󰂇 {capacity}%";
-
format-charging-battery-40 = "󰂈 {capacity}%";
-
format-charging-battery-50 = "󰢝 {capacity}%";
-
format-charging-battery-60 = "󰂉 {capacity}%";
-
format-charging-battery-70 = "󰢞 {capacity}%";
-
format-charging-battery-80 = "󰂊 {capacity}%";
-
format-charging-battery-90 = "󰂋 {capacity}%";
-
format-charging-battery-100 = "󰂅 {capacity}%";
-
};
-
-
idle_inhibitor = {
-
format = "{icon}";
-
format-icons = {
-
activated = "󰈈";
-
deactivated = "󱎫";
-
};
-
tooltip-format-activated =
-
"Idle timer inhibited, device will not sleep.";
-
tooltip-format-deactivated =
-
"Idle timer enabled, device will sleep when not in use.";
-
};
-
};
-
};
-
-
imports = [
-
(lib.mkIf config.programs.waybar.systemd.enable {
-
xdg.configFile."waybar/config".onChange = lib.mkOverride 90 ''
-
if [ -z "''${_reloaded_waybar-}" ]; then
-
_reloaded_waybar=1
-
${pkgs.systemd}/bin/systemctl --user restart waybar.service
-
fi
-
'';
-
xdg.configFile."waybar/style.css".onChange = lib.mkOverride 90 ''
-
if [ -z "''${_reloaded_waybar-}" ]; then
-
_reloaded_waybar=1
-
${pkgs.systemd}/bin/systemctl --user restart waybar.service
-
fi
-
'';
-
})
-
];
-
}
-236
home-manager/hyprland/waybar.scss
···
-
$default-foreground: #ebdbb2;
-
$highlight-foreground: #fbf1c7;
-
-
* {
-
all: unset;
-
font-family: Ubuntu, "Material Design Icons";
-
font-size: 10.5pt;
-
color: $default-foreground;
-
}
-
-
@mixin oscillate-highlight($function, $stop, $background, $duration) {
-
$name: inline-#{unique-id()};
-
-
@keyframes #{$name} {
-
#{$stop} {
-
background: $background;
-
color: $highlight-foreground;
-
}
-
}
-
-
animation-name: $name;
-
animation-duration: $duration;
-
animation-iteration-count: infinite;
-
animation-timing-function: $function;
-
}
-
-
@mixin breathe-highlight($background, $duration) {
-
@include oscillate-highlight(ease-in-out, 50%, $background, $duration);
-
}
-
-
@mixin pulse-highlight($stop, $background, $duration) {
-
@include oscillate-highlight(ease-out, $stop, $background, $duration);
-
}
-
-
@mixin indicate-active($color, $selector) {
-
transition:
-
box-shadow 300ms ease-in,
-
background 300ms ease-in;
-
-
#{$selector} {
-
transition:
-
box-shadow 600ms ease-out,
-
background 600ms ease-out;
-
box-shadow: 0 2px 0 0 $color inset;
-
background: #3c3836;
-
}
-
}
-
-
@mixin indicate-hover($color) {
-
transition:
-
background 120ms ease-in;
-
-
&:hover {
-
transition:
-
background 120ms ease-out;
-
background: $color;
-
}
-
}
-
-
#clock,
-
#submap,
-
#backlight,
-
#network,
-
#bluetooth,
-
#cpu,
-
#temperature,
-
#pulseaudio,
-
#memory,
-
#battery,
-
#idle_inhibitor,
-
#tray,
-
#mpris,
-
#window {
-
padding-left: 8px;
-
padding-right: 8px;
-
}
-
-
window#waybar {
-
// background: #1d2021;
-
background: #000000;
-
// border-bottom: 1px solid #3c3836;
-
}
-
-
tooltip,
-
window.popup {
-
background: #282828;
-
border: 1px solid #665c54;
-
// border-radius: 3px;
-
}
-
-
window.popup {
-
menu {
-
padding: 5px 0;
-
-
arrow {
-
min-width: 16px;
-
min-height: 16px;
-
-
&.top {
-
-gtk-icon-source: -gtk-icontheme("pan-up-symbolic");
-
}
-
-
&.bottom {
-
-gtk-icon-source: -gtk-icontheme("pan-down-symbolic");
-
}
-
-
&.right {
-
-gtk-icon-source: -gtk-icontheme("pan-end-symbolic");
-
}
-
-
&.left {
-
-gtk-icon-source: -gtk-icontheme("pan-start-symbolic");
-
}
-
}
-
-
menuitem {
-
padding: 4px 8px;
-
-
transition:
-
color 66ms ease-in,
-
background 66ms ease-in;
-
-
&:hover {
-
transition:
-
color 100ms ease-out,
-
background 100ms ease-out;
-
-
color: $highlight-foreground;
-
background: #689d6a;
-
}
-
}
-
-
separator {
-
min-height: 1px;
-
background: #665c54;
-
margin: 4px 0;
-
}
-
}
-
}
-
-
#clock.time {
-
font-weight: bold;
-
}
-
-
#tray {
-
&>* {
-
@include indicate-hover(#282828);
-
}
-
}
-
-
#mpris {
-
@include indicate-hover(#282828);
-
}
-
-
#submap {
-
@include indicate-active(#d3869b, "&");
-
}
-
-
#workspaces {
-
button {
-
min-width: 26px;
-
padding: 6px;
-
-
@include indicate-hover(#282828);
-
@include indicate-active(#f38019, "&.active");
-
-
&.urgent {
-
animation-delay: 5s;
-
@include pulse-highlight(10%, #458588, 1.5s);
-
}
-
}
-
}
-
-
#network {
-
@include indicate-hover(#282828);
-
@include indicate-active(#689d6a, "&.wifi");
-
@include indicate-active(#458588, "&.ethernet");
-
@include indicate-active(#b16286, "&.linked");
-
}
-
-
#bluetooth {
-
@include indicate-hover(#282828);
-
@include indicate-active(#458588, "&.on");
-
@include indicate-active(#98971a, "&.connected");
-
-
&.on {
-
@include breathe-highlight(#458588, 5s);
-
}
-
-
// &.discoverable {
-
// @include breathe-highlight(#b16286, 5s);
-
// }
-
-
// &.discovering {
-
// @include breathe-highlight(#b16286, 5s);
-
// }
-
-
// &.pairable:not(.connected) {
-
// @include breathe-highlight(#b16286, 5s);
-
// }
-
}
-
-
#battery {
-
&.battery-30:not(.charging) {
-
@include breathe-highlight(#d64d0e, 10s);
-
}
-
-
&.battery-20:not(.charging) {
-
@include pulse-highlight(10%, #d64d0e, 5s);
-
}
-
-
&.battery-10:not(.charging) {
-
@include pulse-highlight(30%, #cc241d, 750ms);
-
}
-
}
-
-
#temperature.critical {
-
@include pulse-highlight(30%, #cc241d, 750ms);
-
}
-
-
#idle_inhibitor {
-
@include indicate-hover(#282828);
-
@include indicate-active(#d79921, "&.activated");
-
-
&.activated {
-
@include pulse-highlight(10%, #d79921, 5s);
-
}
-
}
-
-
#pulseaudio {
-
@include indicate-hover(#282828);
-
-
&.output:not(.safe) {
-
@include breathe-highlight(#cc241d, 10s);
-
}
-
}
+3 -1
home-manager/waybar.nix
···
window-rewrite = {
"title<.*github.*>" = "󰊤";
"title<.*youtube.*>" = "";
-
"title<\*Gmail*>" = "󰊫";
+
"title<*Gmail*>" = "󰊫";
"class<firefox>" = "";
"class<com.obsproject.Studio>" = "";
+
"title<OBS*>" = "";
"alacritty" = "";
"code" = "󰨞";
"slack" = "󰒱";
"initialtitle<Spotify*>" = "󰓇";
"class<org.gnome.Nautilus>" = "󰉓";
+
"class<kicad>" = "";
};
};
+28 -8
moonlark/configuration.nix
···
pkgs.gnome.nautilus
pkgs.gnome.totem
pkgs.loupe
+
pkgs.gnome.simple-scan
pkgs.gnome.file-roller
pkgs.polkit_gnome
pkgs.fprintd
···
pkgs.neofetch
pkgs.cava
pkgs.go
-
pkgs.bun
+
pkgs.unstable.bun
pkgs.pitivi
pkgs.unstable.arduino-ide
pkgs.unstable.arduino-cli
···
pkgs.lightworks
pkgs.ffmpeg
pkgs.ngrok
+
pkgs.openssl
+
pkgs.unstable.nodePackages_latest.prisma
+
pkgs.nodejs_22
+
pkgs.invoice
+
pkgs.pop
+
pkgs.gum
+
pkgs.unstable.netlify-cli
+
pkgs.unstable.kicad
];
services.gnome.gnome-keyring.enable = true;
···
fira
];
+
# import the secret
+
age.identityPaths = [ "/home/kierank/.ssh/id_rsa" "/etc/ssh/id_rsa" "/mnt/etc/ssh/id_rsa" ];
+
age.secrets = {
+
wifi = {
+
file = ../secrets/wifi.age;
+
owner = "kierank";
+
};
+
resend = {
+
file = ../secrets/resend.age;
+
owner = "kierank";
+
};
+
};
+
environment.sessionVariables = {
XDG_CACHE_HOME = "$HOME/.cache";
XDG_CONFIG_HOME = "$HOME/.config";
···
SUNPAPERDIR = "${lib.getExe pkgs.sunpaper}";
XDG_STATE_HOME = "$HOME/.local/state";
NIXOS_OZONE_WL = "1";
-
};
-
-
# import the secret
-
age.identityPaths = [ "/home/kierank/.ssh/id_rsa" "/etc/ssh/id_rsa" "/mnt/etc/ssh/id_rsa" ];
-
age.secrets.wifi = {
-
file = ../secrets/wifi.age;
-
owner = "kierank";
+
PRISMA_QUERY_ENGINE_LIBRARY = "${pkgs.prisma-engines}/lib/libquery_engine.node";
+
PRISMA_QUERY_ENGINE_BINARY = "${pkgs.prisma-engines}/bin/query-engine";
+
PRISMA_SCHEMA_ENGINE_BINARY = "${pkgs.prisma-engines}/bin/schema-engine";
+
RESEND_API_KEY = ''$(${pkgs.coreutils}/bin/cat ${config.age.secrets.resend.path})'';
+
POP_FROM = "me@dunkirk.sh";
};
# setup the network
+23
secrets/resend.age
···
+
age-encryption.org/v1
+
-> ssh-rsa DqcG0Q
+
QVtoU4x4NGS4wDmzRDa98V76GXXWiE1ArRyVxYood6/QbXP5ZakEh5m0RQX7zU+6
+
8CXZyA9ME24eMIyCGN7jvgYurUVH32grFbqO0SV6Ozsdd+8KZw3MeWp+08z9xJlU
+
ZkROo4yTViJO8XfigTdQlfkEJu8f/uwWPZyDG0vEr5aXteePffkEmgbP7IZ6uSwC
+
G3a5LoCOx2/lcZ2VA0trQpapFezTUotdLbMQ6+Eu+Rv1Eh9SjBNJZ2gN+CiHko/2
+
jSBsiOvJDJ7iMg9f2qS7A8NOD0VTHxFxG4WMoYJ6FjIdNX5Yghdz7vkcHZzAgZBy
+
jQ3F3kXZ+M0gDUT9eKFPP9q5qk3IK9HAUlnZElJS+J07KSOOgD34P7I6AT8mcmJ0
+
xXl7idqlX/NmmBlh8HbhdB+TX79IoKkm5G+Bi+YbRBvMAh9Xy5ig9uIUJKJcnpnR
+
cL0uDBoRsbyxdJpUF5NfXJj2EmERynnMpUuvh2ThNMcsQKeVNii5Mvk+HwngF72Q
+
+
-> ssh-rsa DqcG0Q
+
V/Qx/lo8OPBqrcx9FSLYN+5q+Gf/fouyGS4ksd+Ruag+v3LtUgzR+t8y6VNo3PD6
+
lM1DeMuDQmie70jP/rW7NcUS4SzJ1xWKina+Ix4uA8BM2W4aEZwn6qgWdOzkryhJ
+
8tB0MZuogcvyz5DHZYg2riKQkLnkD0oGbZIfeRM9cFz7UX2KjnGQl2fitnASk+Ub
+
hIaF0MPJo0uZrBhdGulHH5qx4v5vahK/M3vcgIY8NTAHG3/fU75kJ5mcQd4Kwesm
+
O1Q2rato95ddM98IngNQ7hgbeSL9Pr6cRM2BaNsQsI09RUjV/PN8LmAH0eHhWT1k
+
KIIjlAzRjOb4cN133zS63H6kkur2LdjHbBxmvt0XcCNc/sbOZdHnB6oQQa0cPuqc
+
Qi/j9nkinAiDxSuJfrsMZqZGbA7AQbCd7DtlJsZn18/nKusjCKuagiWXhcZFs64C
+
o7teM8YUrzb8vBjYkMMzs/BJoytzxoW7yxLkuAs28Wj8C0K3/dPSWesPiz9pUUHp
+
+
--- E9XQg8S6Hb5LUQciLQZWeIt8cAfJz2jR7L+Rh56hKmI
+
AO���=����9���l��-�g��z�a)��>�;�0n>{�rZt� ���~_RP���'[;4���n�* &L
+1
secrets/secrets.nix
···
in
{
"wifi.age".publicKeys = [ kierank moonlark ];
+
"resend.age".publicKeys = [ kierank moonlark ];
}