Compare commits

..

No commits in common. "c55c2c1ee845966676f8838f6a666b8afa227601" and "fc4abfb8ecc2fc285dfc4aedcbd886fa74e23ca4" have entirely different histories.

27 changed files with 363 additions and 247 deletions

4
.envrc Normal file
View file

@ -0,0 +1,4 @@
watch_file flake.nix
use flake

207
.github/logo.svg vendored Normal file
View file

@ -0,0 +1,207 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="200"
height="200"
viewBox="0 0 501.56251 501.56249"
id="svg2"
version="1.1"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
sodipodi:docname="nix-webring.svg"
inkscape:export-filename="nix-webring.png"
inkscape:export-xdpi="107.66355"
inkscape:export-ydpi="107.66355"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs
id="defs4">
<linearGradient
inkscape:collect="always"
id="linearGradient5562">
<stop
style="stop-color:#699ad7;stop-opacity:1"
offset="0"
id="stop5564" />
<stop
id="stop5566"
offset="0.24345198"
style="stop-color:#7eb1dd;stop-opacity:1" />
<stop
style="stop-color:#7ebae4;stop-opacity:1"
offset="1"
id="stop5568" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient5053">
<stop
style="stop-color:#415e9a;stop-opacity:1"
offset="0"
id="stop5055" />
<stop
id="stop5057"
offset="0.23168644"
style="stop-color:#4a6baf;stop-opacity:1" />
<stop
style="stop-color:#5277c3;stop-opacity:1"
offset="1"
id="stop5059" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5053"
id="linearGradient4330"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(864.69589,-1491.3405)"
x1="-584.19934"
y1="782.33563"
x2="-496.29703"
y2="937.71399" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5562"
id="linearGradient1"
gradientUnits="userSpaceOnUse"
gradientTransform="rotate(60,1285.574,-127.0267)"
x1="200.59668"
y1="351.41116"
x2="290.08701"
y2="506.18814" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5562"
id="linearGradient2"
gradientUnits="userSpaceOnUse"
gradientTransform="rotate(-60,-541.80106,-249.3096)"
x1="200.59668"
y1="351.41116"
x2="290.08701"
y2="506.18814" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5562"
id="linearGradient3"
gradientUnits="userSpaceOnUse"
gradientTransform="rotate(180,372.09351,-188.18095)"
x1="200.59668"
y1="351.41116"
x2="290.08701"
y2="506.18814" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5053"
id="linearGradient4"
gradientUnits="userSpaceOnUse"
gradientTransform="rotate(120,405.50413,279.20289)"
x1="-584.19934"
y1="782.33563"
x2="-496.29703"
y2="937.71399" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5053"
id="linearGradient5"
gradientUnits="userSpaceOnUse"
gradientTransform="rotate(-120,-455.57263,-219.8159)"
x1="-584.19934"
y1="782.33563"
x2="-496.29703"
y2="937.71399" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.70710678"
inkscape:cx="428.50671"
inkscape:cy="330.92597"
inkscape:document-units="px"
inkscape:current-layer="g2"
showgrid="false"
inkscape:window-width="2560"
inkscape:window-height="1404"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:snap-global="true"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:showpageshadow="2"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="gradient-logo"
style="display:inline;opacity:1"
transform="translate(-156.41121,933.30685)">
<g
id="g2"
transform="matrix(0.99994059,0,0,0.99994059,-0.06321798,33.188377)"
style="stroke-width:1.00006">
<g
id="g5"
transform="matrix(1.5923554,0,0,1.5923554,-241.25483,424.14882)">
<path
sodipodi:nodetypes="cccccc"
inkscape:connector-curvature="0"
id="use3439-6"
d="m 353.65459,-797.57947 -75.33983,131.03333 -28.53475,-48.37004 14.05181,-24.82625 33.4638,-57.69041 z"
style="fill:url(#linearGradient1);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.00018;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
sodipodi:nodetypes="cccccc"
inkscape:connector-curvature="0"
id="use3445-0"
d="m 363.03058,-628.3791 150.65887,0.012 -27.6223,48.89684 -28.03684,-0.0386 -66.69326,-0.1353 z"
style="fill:url(#linearGradient2);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.00018;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
sodipodi:nodetypes="cccccc"
inkscape:connector-curvature="0"
id="use3449-5"
d="m 505.28844,-721.12473 -75.88193,-131.23275 56.15706,-0.5268 14.54791,25.05223 33.22946,57.8257 z"
style="fill:url(#linearGradient3);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.00018;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient4330);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.00018;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 309.54892,-710.38827 75.60056,130.67022 -56.15706,0.5268 -14.26654,-24.4897 -33.22946,-57.8256 z"
id="path4260-0"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccc" />
<path
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient4);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.00018;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 451.30201,-803.62004 -150.65887,-0.012 27.62231,-48.89684 28.03683,0.0386 66.69317,0.13525 z"
id="use4354-5"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccc" />
<path
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient5);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.00018;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 460.90516,-633.96606 75.33983,-131.03333 28.53475,48.37004 -14.05181,24.82625 -33.46371,57.69035 z"
id="use4362-2"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccc" />
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.7 KiB

67
flake.lock generated
View file

@ -20,11 +20,11 @@
]
},
"locked": {
"lastModified": 1751740947,
"narHash": "sha256-35040CHH7P3JGmhGVfEb2oJHL/A5mI2IXumhkxrBnao=",
"lastModified": 1751569683,
"narHash": "sha256-PoQcCYTiN52PanxgWBN4Tqet1x4PCk6KtjaHNjELH88=",
"owner": "hyprwm",
"repo": "aquamarine",
"rev": "dfc1db15a08c4cd234288f66e1199c653495301f",
"rev": "c0c56dde3e471030edb135425a82107cf0057c6f",
"type": "github"
},
"original": {
@ -435,11 +435,11 @@
]
},
"locked": {
"lastModified": 1751808145,
"narHash": "sha256-OXgL0XaKMmfX2rRQkt9SkJw+QNfv0jExlySt1D6O72g=",
"lastModified": 1750621377,
"narHash": "sha256-8u6b5oAdX0rCuoR8wFenajBRmI+mzbpNig6hSCuWUzE=",
"owner": "hyprwm",
"repo": "hyprgraphics",
"rev": "b841473a0bd4a1a74a0b64f1ec2ab199035c349f",
"rev": "b3d628d01693fb9bb0a6690cd4e7b80abda04310",
"type": "github"
},
"original": {
@ -468,11 +468,11 @@
"xdph": "xdph"
},
"locked": {
"lastModified": 1751904574,
"narHash": "sha256-jXkava/9BRiY2JEVmB68mpkFd+JU3BnNbh2RtRBXfTA=",
"lastModified": 1751714318,
"narHash": "sha256-nkoRnDkRGaCT0JTuHcDXPCMkdmhUFEtI1TMUiQcrxfs=",
"owner": "hyprwm",
"repo": "hyprland",
"rev": "bb958a9e139d6ae90d45fe360287d33e229f971e",
"rev": "6a5f4f5954a64bac718e3938f062d045256e7aeb",
"type": "github"
},
"original": {
@ -615,11 +615,11 @@
]
},
"locked": {
"lastModified": 1751888065,
"narHash": "sha256-F2SV9WGqgtRsXIdUrl3sRe0wXlQD+kRRZcSfbepjPJY=",
"lastModified": 1751061882,
"narHash": "sha256-g9n8Vrbx+2JYM170P9BbvGHN39Wlkr4U+V2WLHQsXL8=",
"owner": "hyprwm",
"repo": "hyprutils",
"rev": "a8229739cf36d159001cfc203871917b83fdf917",
"rev": "4737241eaf8a1e51671a2a088518071f9a265cf4",
"type": "github"
},
"original": {
@ -640,11 +640,11 @@
]
},
"locked": {
"lastModified": 1751881472,
"narHash": "sha256-meB0SnXbwIe2trD041MLKEv6R7NZ759QwBcVIhlSBfE=",
"lastModified": 1750371869,
"narHash": "sha256-lGk4gLjgZQ/rndUkzmPYcgbHr8gKU5u71vyrjnwfpB4=",
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"rev": "8fb426b3e5452fd9169453fd6c10f8c14ca37120",
"rev": "aa38edd6e3e277ae6a97ea83a69261a5c3aab9fd",
"type": "github"
},
"original": {
@ -800,15 +800,18 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 315532800,
"narHash": "sha256-5EzvWAMTAf6m6Ynab7EnYz9OfJO2wHCb/yhtP8ACQQQ=",
"rev": "9b008d60392981ad674e04016d25619281550a9d",
"type": "tarball",
"url": "https://releases.nixos.org/nixpkgs/nixpkgs-25.11pre826760.9b008d603929/nixexprs.tar.xz"
"lastModified": 1751271578,
"narHash": "sha256-P/SQmKDu06x8yv7i0s8bvnnuJYkxVGBWLWHaU+tt4YY=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "3016b4b15d13f3089db8a41ef937b13a9e33a8df",
"type": "github"
},
"original": {
"type": "tarball",
"url": "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz"
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
@ -883,11 +886,11 @@
]
},
"locked": {
"lastModified": 1751880110,
"narHash": "sha256-5fQ2cetL3rTHqXe2VM3puawL/8u5j6ujBr6Gdt7Iues=",
"lastModified": 1751686190,
"narHash": "sha256-veNnb2UVyjugo9fIeGjisMGGn0TNae71p5D1YwwEAFs=",
"ref": "refs/heads/master",
"rev": "5d7e07508ae3e5487edb1ac5a152120434f091d5",
"revCount": 607,
"rev": "87d99b866f9866db10b55c8b03632f0eecae52d8",
"revCount": 606,
"type": "git",
"url": "https://git.outfoxxed.me/quickshell/quickshell"
},
@ -938,11 +941,11 @@
]
},
"locked": {
"lastModified": 1751856221,
"narHash": "sha256-/QE1eV0ckFvgRMcKjZqgdJDoXFNwSMepwRoBjaw2MCk=",
"lastModified": 1751683029,
"narHash": "sha256-dYO5X5jK8bpQOeRAo8R5aUt6M/+Ji1cZgstZI7SQ2IA=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "34cae4b56929c5b340e1c5b10d9a98a425b2a51e",
"rev": "9e5e62a33a929a67a5427fb7324a6f583dced0b2",
"type": "github"
},
"original": {
@ -1076,11 +1079,11 @@
]
},
"locked": {
"lastModified": 1751300244,
"narHash": "sha256-PFuv1TZVYvQhha0ac53E3YgdtmLShrN0t4T6xqHl0jE=",
"lastModified": 1750372504,
"narHash": "sha256-VBeZb1oqZM1cqCAZnFz/WyYhO8aF/ImagI7WWg/Z3Og=",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"rev": "6115f3fdcb2c1a57b4a80a69f3c797e47607b90a",
"rev": "400308fc4f9d12e0a93e483c2e7a649e12af1a92",
"type": "github"
},
"original": {

View file

@ -7,11 +7,17 @@
in {
nixosConfigurations = import ./hosts inputs;
devShells =
lib.mapAttrs (system: pkgs: {
default = pkgs.callPackage ./shell.nix {};
})
pkgsFor;
formatter = eachSystem (system: pkgsFor.${system}.alejandra);
packages =
lib.mapAttrs (
_: pkgs: {
system: pkgs: {
inherit
(import ./packages {
inherit inputs pkgs;
@ -40,9 +46,8 @@
templates = import ./templates;
};
inputs = {
# Unstable nixpkgs, using the new Lockable HTTP Tarball protocol
# https://github.com/NixOS/infra/pull/562.
nixpkgs.url = "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz";
# Unstable nixpkgs baby!
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
systems.url = "github:nix-systems/default-linux";
@ -80,7 +85,7 @@
inputs.nixpkgs.follows = "nixpkgs";
};
# DetNix is doing too well these days not to use it.
# DetNix is doing too well these days not to use it...
determinate = {
url = "github:determinatesystems/determinate";
inputs.nixpkgs.follows = "nixpkgs";

View file

@ -23,7 +23,7 @@ inputs: let
inherit inputs;
inherit self;
}
args.specialArgs or {};
(args.specialArgs or {});
modules = concatLists [
# This is used to pre-emptively set the hostPlatform for nixpkgs.
# Also, we set the system hostname here.

View file

@ -9,23 +9,21 @@
i18n.defaultLocale = "en_US.UTF-8";
console.keyMap = "uk";
security.polkit.enable = true;
programs.nix-ld.enable = false;
boot.kernelPackages = pkgs.linuxPackages_xanmod_latest;
services = {
fstrim.enable = lib.mkDefault true;
thermald.enable = true;
};
programs = {
nix-ld.enable = false;
zsh = {
enable = true;
enableBashCompletion = true;
};
gnupg.agent = {
enable = true;
pinentryPackage = pkgs.pinentry-qt;
};
programs.zsh = {
enable = true;
enableBashCompletion = true;
};
programs.gnupg.agent = {
enable = true;
pinentryPackage = pkgs.pinentry-qt;
};
modules = {
wms.wayland.enable = true;
desktops.hyprland.enable = false;

View file

@ -6,12 +6,10 @@
}: {
imports = [(modulesPath + "/installer/scan/not-detected.nix")];
boot = {
initrd.availableKernelModules = ["xhci_pci" "ahci" "nvme" "usbhid" "sd_mod"];
initrd.kernelModules = [];
kernelModules = [];
extraModulePackages = [];
};
boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "nvme" "usbhid" "sd_mod"];
boot.initrd.kernelModules = [];
boot.kernelModules = [];
boot.extraModulePackages = [];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's

View file

@ -60,7 +60,7 @@
# 1:1 taken from raf's custom kernel, check out his config for this.
.overrideAttrs (oa: {
prePatch =
oa.prePatch or ""
(oa.prePatch or "")
+ ''
# bragging rights
echo "Replacing localversion with custom suffix"

View file

@ -7,12 +7,10 @@
(modulesPath + "/profiles/qemu-guest.nix")
];
boot = {
initrd.availableKernelModules = ["xhci_pci" "virtio_scsi" "sr_mod"];
initrd.kernelModules = [];
kernelModules = [];
extraModulePackages = [];
};
boot.initrd.availableKernelModules = ["xhci_pci" "virtio_scsi" "sr_mod"];
boot.initrd.kernelModules = [];
boot.kernelModules = [];
boot.extraModulePackages = [];
swapDevices = [];

View file

@ -3,5 +3,6 @@
lib,
pkgs,
...
}: {
}: let
in {
}

View file

@ -1,37 +0,0 @@
{pkgs, ...}: {
programs.chromium = {
enable = true;
extraOpts = {
BraveRewardsDisabled = true;
BraveWalletDisabled = true;
PromotionsEnabled = false;
TorDisabled = true;
BraveVPNDisabled = true;
BraveAIChatEnabled = false;
BraveSyncUrl = "";
PrivacySandboxFingerprintingProtectionEnabled = true;
PrivacySandboxIpProtectionEnabled = true;
DefaultSearchProviderEnabled = true;
DefaultSearchProviderName = "Kagi";
DefaultSearchProviderSearchURL = "https://kagi.com/search?q={searchTerms}";
DefaultSearchProviderNewTabURL = "https://kagi.com";
SearchSuggestEnabled = true;
DefaultSearchProviderSuggestURL = "https://kagi.com/api/autosuggest?q={searchTerms}";
PasswordManagerEnabled = false;
BlockThirdPartyCookies = true;
};
extensions = [
# NoScript
"doojmbjmlfjjnbmnoijecmcbfeoakpjm"
# KeePassXC-Browser
"oboonakemofpalcgghocfoadofidjkkk"
# Catppuccin Mocha
"bkkmolkhemgaeaeggcmfbghljjjoofoh"
# Dark Reader
"eimadpbcbfnmbkopoojfekhnkhdbieeh"
];
};
environment.systemPackages = [
(pkgs.brave.override {vulkanSupport = true;})
];
}

View file

@ -3,7 +3,8 @@
lib,
pkgs,
...
}: {
}: let
in {
environment.systemPackages = builtins.attrValues {
inherit (pkgs) fuzzel;
};

View file

@ -6,8 +6,6 @@
}: let
inherit (lib.lists) elem;
inherit (lib.meta) getExe;
inherit (lib.attrsets) mapAttrsToList;
inherit (lib.strings) concatStringsSep;
inherit (config.meta.mainUser.defaultShell) name package;
inherit (config.modules.style.colorScheme) slug;
@ -19,59 +17,30 @@
then name
else "none";
ghostty-settings = {
font-family = "JetBrainsMonoNerdFont";
font-family-bold = "JetBrainsMonoNerdFontBold";
font-family-italic = "JetBrainsMonoNerdFontItalic";
font-family-bold-italic = "JetBrainsMonoNerdFontBoldItalic";
font-size = 14;
ghostty-settings = pkgs.writeText "config" ''
font-family = JetBrainsMono Nerd Font Mono
window-padding-x = 8
window-padding-y = 8
background-opacity = 0.85
gtk-single-instance = true
font-size = 14
theme = ${slug}
resize-overlay-duration = 0s
cursor-style-blink = false
confirm-close-surface = false
copy-on-select = true
term = xterm-256color
window-padding-x = 8;
window-padding-y = 8;
background-opacity = 0.85;
gtk-single-instance = "true";
gtk-tabs-location = "bottom";
gtk-wide-tabs = false;
window-padding-balance = true;
window-decoration = "none";
theme = slug;
resize-overlay-duration = "0s";
cursor-style-blink = "false";
confirm-close-surface = "false";
mouse-hide-while-typing = "true";
shell-integration = ${shell-integration}
command = ${getExe package}
'';
window-theme = "ghostty";
bold-is-bright = "true";
term = "xterm-256color";
app-notifications = "no-clipboard-copy";
shell-integration-features = "cursor,sudo,no-title";
# window-padding-y = 10;
cursor-style = "block";
# Whether to automatically copy selected text to the clipboard. true will prefer to copy to the selection clipboard, otherwise it will copy to the system clipboard.
# The value clipboard will always copy text to the selection clipboard as well as the system clipboard.
copy-on-select = "clipboard";
inherit shell-integration;
command = getExe package;
};
settingsFile = pkgs.writeText "config" <| concatStringsSep "\n" <| mapAttrsToList (name: value: "${name} = ${toString value}") ghostty-settings;
ghostty = pkgs.ghostty.overrideAttrs (_: {
preBuild = ''
shopt -s globstar
sed -i 's/^const xev = @import("xev");$/const xev = @import("xev").Epoll;/' **/*.zig
shopt -u globstar
'';
});
ghostty-wrapped = pkgs.symlinkJoin {
name = "ghostty-wrapped";
paths = [ghostty];
paths = [pkgs.ghostty];
nativeBuildInputs = [pkgs.makeWrapper];
postBuild = ''
wrapProgram $out/bin/ghostty --add-flags "--config-file=${settingsFile}"
wrapProgram $out/bin/ghostty --add-flags "--config-file=${ghostty-settings}"
'';
};
in {

View file

@ -29,7 +29,7 @@ in {
http_port = port;
root_url = "https://${domain}";
inherit domain;
domain = domain;
enforce_domain = true;
};
database = {

View file

@ -12,12 +12,19 @@ in {
config = mkIf cfg.enable {
services.kanata = {
enable = true;
keyboards.main = {
devices = [
"/dev/input/by-id/usb-Metadot_-_Das_Keyboard_Das_Keyboard-event-kbd"
"/dev/input/by-path/platform-i8042-serio-0-event-kbd"
"/dev/input/by-id/usb-Dell_Dell_USB_Keyboard-event-kbd"
];
keyboards.daskeyboard = {
devices = ["/dev/input/by-id/usb-Metadot_-_Das_Keyboard_Das_Keyboard-event-kbd"];
config = builtins.readFile (./. + "/main.kbd");
};
keyboards.laptop = {
devices = ["/dev/input/by-path/platform-i8042-serio-0-event-kbd"];
config = builtins.readFile (./. + "/main.kbd");
};
keyboards.dell-keyboard = {
devices = ["/dev/input/by-id/usb-Dell_Dell_USB_Keyboard-event-kbd"];
config = builtins.readFile (./. + "/main.kbd");
};
};

View file

@ -1,45 +1,5 @@
{pkgs, ...}: let
inherit (builtins) mapAttrs;
fancy-iosevka = pkgs.iosevka.override {
privateBuildPlan = {
family = "fancy-iosevka";
spacing = "term";
serifs = "sans";
noCvSs = true;
exportGlyphNames = false;
ligations.inherits = "dlig";
variants = {
inherits = "ss15";
design = {
e = "flat-crossbar";
f = "diagonal-tailed-crossbar-at-x-height";
};
};
weights.Regular = {
shape = 400;
menu = 400;
css = 400;
};
weights.Bold = {
shape = 700;
menu = 700;
css = 700;
};
widths.Condensed = {
shape = 500;
menu = 3;
css = "condensed";
};
widths.normal = {
shape = 600;
menu = 5;
css = "normal";
};
};
set = "Fancy";
};
in {
# A (somewhat) sane list of fonts to be installed.
fonts = {
@ -95,8 +55,6 @@ in {
comic-shanns-mono
symbols-only
;
inherit fancy-iosevka;
};
fontDir = {
# Whether to create a directory with links to all fonts in

View file

@ -54,7 +54,7 @@ in {
efi.canTouchEfiVariables = true;
timeout = mkDefault cfg.timeout;
systemd-boot = {
inherit (cfg.systemd-boot) enable;
enable = cfg.systemd-boot.enable;
# INFO: Leaving this enabled is a security vulneratibility,
# since we can just start /bin/sh from there and get root access.
# Since I have FDE, this isn't _as_ critical, but it would still be
@ -64,7 +64,7 @@ in {
configurationLimit = 5;
};
grub = {
inherit (cfg.grub) enable;
enable = cfg.grub.enable;
efiSupport = true;
device = "nodev";
configurationLimit = 5;

View file

View file

View file

@ -3,7 +3,8 @@
lib,
pkgs,
...
}: {
}: let
in {
networking = {
# use nftables over iptables
nftables.enable = true;

View file

@ -1,42 +1,5 @@
{
config,
lib,
pkgs,
...
}: let
inherit (lib.modules) mkForce mkIf;
inherit (lib.options) mkEnableOption;
inherit (lib.lists) optional;
in {
_: {
imports = [
./variables.nix
];
xdg.portal = {
enable = true;
# Sets environment variable NIXOS_XDG_OPEN_USE_PORTAL to 1.
# This will make xdg-open use the portal to open programs,
# which resolves bugs involving programs opening inside FHS envs
# or with unexpected env vars set from wrappers.
# See #160923 for more info.
xdgOpenUsePortal = true;
extraPortals =
[
pkgs.xdg-desktop-portal-gtk
]
++ (
optional config.programs.niri.enable
pkgs.xdg-desktop-portal-gnome
)
++ (
optional config.programs.hyprland.enable
pkgs.xdg-desktop-portal-hyprland
);
config = {
common.default = mkIf config.programs.hyprland.enable ["*"];
};
configPackages = [
pkgs.niri
];
};
}

View file

@ -52,5 +52,21 @@ in {
inherit (pkgs) xwayland-satellite avizo;
inherit new-swww;
};
xdg.portal = {
enable = true;
xdgOpenUsePortal = true;
extraPortals = [
pkgs.xdg-desktop-portal-gtk
pkgs.xdg-desktop-portal-gnome
];
config = {
common.default = ["*"];
hyprland.default = ["gtk"];
};
configPackages = [
pkgs.niri
];
};
};
}

View file

@ -3,5 +3,6 @@
lib,
pkgs,
...
}: {
}: let
in {
}

View file

@ -43,10 +43,12 @@
custom-helix =
(helix.override {inherit rustPlatform;}).overrideAttrs
(finalAttrs: previousAttrs: {
(_: let
inherit (custom-helix) version;
in {
version = "25.06.1";
src = fetchzip {
url = "https://github.com/bloxx12/helix/releases/download/${finalAttrs.version}/helix-${finalAttrs.version}-source.tar.xz";
url = "https://github.com/bloxx12/helix/releases/download/${version}/helix-${version}-source.tar.xz";
hash = "sha256-941moaBUF+aGsbFapK1cp5+NFdecSfRCTdnVUtkDQps=";
stripRoot = false;
};

View file

@ -162,7 +162,7 @@
config = {
check = {
command = "clippy";
extraArgs = ["--" "-W" "clippy::pedantic" "-W" "clippy::nursery" "-W" "clippy::perf"];
extraArgs = ["--" "-D" "clippy::pedantic" "-W" "clippy::nursery" "-W" "clippy::perf"];
};
cargo.features = "all";
};

21
shell.nix Normal file
View file

@ -0,0 +1,21 @@
{
mkShellNoCC,
git,
writeShellApplication,
}:
mkShellNoCC {
name = "nichts";
DIRENV_LOG_FORMAT = "";
packages = [
git # take a guess
(writeShellApplication {
name = "update";
text = ''
nix flake update && git commit flake.lock -m "flake: bump inputs"
'';
})
];
}