initial commit
This commit is contained in:
commit
cf17457181
448
flake.lock
Normal file
448
flake.lock
Normal file
@ -0,0 +1,448 @@
|
|||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"anyrun": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-parts": "flake-parts",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1721135360,
|
||||||
|
"narHash": "sha256-ZhSA0e45UxiOAjEVqkym/aULh0Dt+KHJLNda7bjx9UI=",
|
||||||
|
"owner": "Kirottu",
|
||||||
|
"repo": "anyrun",
|
||||||
|
"rev": "c6101a31a80b51e32e96f6a77616b609770172e0",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "Kirottu",
|
||||||
|
"repo": "anyrun",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"aquamarine": {
|
||||||
|
"inputs": {
|
||||||
|
"hyprutils": [
|
||||||
|
"hyprland",
|
||||||
|
"hyprutils"
|
||||||
|
],
|
||||||
|
"hyprwayland-scanner": [
|
||||||
|
"hyprland",
|
||||||
|
"hyprwayland-scanner"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"hyprland",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": [
|
||||||
|
"hyprland",
|
||||||
|
"systems"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1725753098,
|
||||||
|
"narHash": "sha256-/NO/h/qD/eJXAQr/fHA4mdDgYsNT9thHQ+oT6KPi2ac=",
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "aquamarine",
|
||||||
|
"rev": "e4a13203112a036fc7f437d391c7810f3dd5ab52",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "aquamarine",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"crane": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"woomer",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1716745752,
|
||||||
|
"narHash": "sha256-8K1R9Yg4r08rYk86Yq+lu3E9L3uRUb4xMqYHgl0VGS0=",
|
||||||
|
"owner": "ipetkov",
|
||||||
|
"repo": "crane",
|
||||||
|
"rev": "19ca94ec2d288de334ae932107816b4a97736cd8",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "ipetkov",
|
||||||
|
"repo": "crane",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-parts": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": [
|
||||||
|
"anyrun",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1717285511,
|
||||||
|
"narHash": "sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems_3"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1710146030,
|
||||||
|
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"home-manager": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1726036828,
|
||||||
|
"narHash": "sha256-ZQHbpyti0jcAKnwQY1lwmooecLmSG6wX1JakQ/eZNeM=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"rev": "8a1671642826633586d12ac3158e463c7a50a112",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"hyprcursor": {
|
||||||
|
"inputs": {
|
||||||
|
"hyprlang": [
|
||||||
|
"hyprland",
|
||||||
|
"hyprlang"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"hyprland",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": [
|
||||||
|
"hyprland",
|
||||||
|
"systems"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1722623071,
|
||||||
|
"narHash": "sha256-sLADpVgebpCBFXkA1FlCXtvEPu1tdEsTfqK1hfeHySE=",
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprcursor",
|
||||||
|
"rev": "912d56025f03d41b1ad29510c423757b4379eb1c",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprcursor",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"hyprland": {
|
||||||
|
"inputs": {
|
||||||
|
"aquamarine": "aquamarine",
|
||||||
|
"hyprcursor": "hyprcursor",
|
||||||
|
"hyprlang": "hyprlang",
|
||||||
|
"hyprutils": "hyprutils",
|
||||||
|
"hyprwayland-scanner": "hyprwayland-scanner",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": "systems_2",
|
||||||
|
"xdph": "xdph"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1726246604,
|
||||||
|
"narHash": "sha256-cScS34F71HzhIUeMScfKrT7iSZA0tr8pGIjOqHF+ue8=",
|
||||||
|
"ref": "refs/heads/main",
|
||||||
|
"rev": "d35e70a8c6599bb058cf86eb87c783ce1cf72471",
|
||||||
|
"revCount": 5218,
|
||||||
|
"submodules": true,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/hyprwm/Hyprland"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"submodules": true,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/hyprwm/Hyprland"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"hyprland-protocols": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"hyprland",
|
||||||
|
"xdph",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": [
|
||||||
|
"hyprland",
|
||||||
|
"xdph",
|
||||||
|
"systems"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1721326555,
|
||||||
|
"narHash": "sha256-zCu4R0CSHEactW9JqYki26gy8h9f6rHmSwj4XJmlHgg=",
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprland-protocols",
|
||||||
|
"rev": "5a11232266bf1a1f5952d5b179c3f4b2facaaa84",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprland-protocols",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"hyprlang": {
|
||||||
|
"inputs": {
|
||||||
|
"hyprutils": [
|
||||||
|
"hyprland",
|
||||||
|
"hyprutils"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"hyprland",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": [
|
||||||
|
"hyprland",
|
||||||
|
"systems"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1725997860,
|
||||||
|
"narHash": "sha256-d/rZ/fHR5l1n7PeyLw0StWMNLXVU9c4HFyfskw568so=",
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprlang",
|
||||||
|
"rev": "dfeb5811dd6485490cce18d6cc1e38a055eea876",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprlang",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"hyprutils": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"hyprland",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": [
|
||||||
|
"hyprland",
|
||||||
|
"systems"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1724966483,
|
||||||
|
"narHash": "sha256-WXDgKIbzjYKczxSZOsJplCS1i1yrTUpsDPuJV/xpYLo=",
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprutils",
|
||||||
|
"rev": "8976e3f6a5357da953a09511d0c7f6a890fb6ec2",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprutils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"hyprwayland-scanner": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"hyprland",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": [
|
||||||
|
"hyprland",
|
||||||
|
"systems"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1721324119,
|
||||||
|
"narHash": "sha256-SOOqIT27/X792+vsLSeFdrNTF+OSRp5qXv6Te+fb2Qg=",
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprwayland-scanner",
|
||||||
|
"rev": "a048a6cb015340bd82f97c1f40a4b595ca85cc30",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprwayland-scanner",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nix-darwin": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1726032244,
|
||||||
|
"narHash": "sha256-3VvRGPkpBJobQrFD3slQzMAwZlo4/UwxT8933U5tRVM=",
|
||||||
|
"owner": "LnL7",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"rev": "f4f18f3d7229845e1c9d517457b7a0b90a38b728",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "LnL7",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1725983898,
|
||||||
|
"narHash": "sha256-4b3A9zPpxAxLnkF9MawJNHDtOOl6ruL0r6Og1TEDGCE=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "1355a0cbfeac61d785b7183c0caaec1f97361b43",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"anyrun": "anyrun",
|
||||||
|
"home-manager": "home-manager",
|
||||||
|
"hyprland": "hyprland",
|
||||||
|
"nix-darwin": "nix-darwin",
|
||||||
|
"nixpkgs": "nixpkgs",
|
||||||
|
"woomer": "woomer"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"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_2": {
|
||||||
|
"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_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"woomer": {
|
||||||
|
"inputs": {
|
||||||
|
"crane": "crane",
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1721099169,
|
||||||
|
"narHash": "sha256-KvE1tABLTS1/tPBTu4K6OTwsPhaKWdfSXSZL3bL79Xg=",
|
||||||
|
"owner": "coffeeispower",
|
||||||
|
"repo": "woomer",
|
||||||
|
"rev": "641bc98990e556aee0d084ee13dd76333bf6a9bc",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "coffeeispower",
|
||||||
|
"repo": "woomer",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"xdph": {
|
||||||
|
"inputs": {
|
||||||
|
"hyprland-protocols": "hyprland-protocols",
|
||||||
|
"hyprlang": [
|
||||||
|
"hyprland",
|
||||||
|
"hyprlang"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"hyprland",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": [
|
||||||
|
"hyprland",
|
||||||
|
"systems"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1726046979,
|
||||||
|
"narHash": "sha256-6SEsjurq9cdTkITA6d49ncAJe4O/8CgRG5/F//s6Xh8=",
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "xdg-desktop-portal-hyprland",
|
||||||
|
"rev": "e695669fd8e1d1be9eaae40f35e00f8bd8b64c18",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "xdg-desktop-portal-hyprland",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
199
flake.nix
Normal file
199
flake.nix
Normal file
@ -0,0 +1,199 @@
|
|||||||
|
{
|
||||||
|
description = "SpyHoodle Nix Configuration";
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
# Nixpkgs Unstable
|
||||||
|
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
||||||
|
|
||||||
|
# Home Manager
|
||||||
|
home-manager.url = "github:nix-community/home-manager";
|
||||||
|
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
|
# Nix Darwin
|
||||||
|
nix-darwin.url = "github:LnL7/nix-darwin";
|
||||||
|
nix-darwin.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
|
# Hyprland
|
||||||
|
hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
|
||||||
|
hyprland.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
|
# Any Run
|
||||||
|
anyrun.url = "github:Kirottu/anyrun";
|
||||||
|
anyrun.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
|
# Woomer
|
||||||
|
woomer.url = "github:coffeeispower/woomer";
|
||||||
|
woomer.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = { self, nixpkgs, home-manager, nix-darwin, ... } @ inputs:
|
||||||
|
let
|
||||||
|
username = "maddie";
|
||||||
|
|
||||||
|
nixpkgs_aarch64_darwin = import nixpkgs {
|
||||||
|
config.allowUnfree = true;
|
||||||
|
system = "aarch64-darwin";
|
||||||
|
};
|
||||||
|
nixpkgs_x86_64_linux = import nixpkgs {
|
||||||
|
config.allowUnfree = true;
|
||||||
|
config.chromium.enableWideVine = true;
|
||||||
|
system = "x86_64-linux";
|
||||||
|
overlays = import ./overlays.nix;
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
nixosConfigurations."desktop" = nixpkgs.lib.nixosSystem
|
||||||
|
{
|
||||||
|
specialArgs = { inherit username; inherit inputs; };
|
||||||
|
pkgs = nixpkgs_x86_64_linux;
|
||||||
|
system = "x86_64-linux";
|
||||||
|
modules = [
|
||||||
|
home-manager.nixosModules.home-manager
|
||||||
|
{
|
||||||
|
home-manager.users.${username}.imports = [
|
||||||
|
./homes/common/ssh
|
||||||
|
./homes/common/amfora.nix
|
||||||
|
./homes/common/btop.nix
|
||||||
|
./homes/common/eza.nix
|
||||||
|
./homes/common/fetch.nix
|
||||||
|
./homes/common/git.nix
|
||||||
|
./homes/common/helix.nix
|
||||||
|
./homes/common/htop.nix
|
||||||
|
./homes/common/kakoune
|
||||||
|
./homes/common/latex.nix
|
||||||
|
./homes/common/lf
|
||||||
|
./homes/common/media-tools.nix
|
||||||
|
./homes/common/python.nix
|
||||||
|
./homes/common/rust.nix
|
||||||
|
./homes/common/shell.nix
|
||||||
|
./homes/common/starship.nix
|
||||||
|
./homes/common/tmux.nix
|
||||||
|
./homes/common/wezterm.nix
|
||||||
|
./homes/common/xdg.nix
|
||||||
|
./homes/common/zsh.nix
|
||||||
|
|
||||||
|
./homes/desktop/alacritty.nix
|
||||||
|
./homes/desktop/anyrun.nix
|
||||||
|
./homes/desktop/audio.nix
|
||||||
|
./homes/desktop/chromium.nix
|
||||||
|
./homes/desktop/cider.nix
|
||||||
|
./homes/desktop/cursor.nix
|
||||||
|
./homes/desktop/discord.nix
|
||||||
|
./homes/desktop/dmenu.nix
|
||||||
|
./homes/desktop/element.nix
|
||||||
|
./homes/desktop/games.nix
|
||||||
|
./homes/desktop/gtk.nix
|
||||||
|
./homes/desktop/home.nix
|
||||||
|
./homes/desktop/hyprland.nix
|
||||||
|
./homes/desktop/hyprlock.nix
|
||||||
|
./homes/desktop/hyprpaper.nix
|
||||||
|
./homes/desktop/kdeconnect.nix
|
||||||
|
./homes/desktop/kitty.nix
|
||||||
|
./homes/desktop/librewolf.nix
|
||||||
|
./homes/desktop/minecraft.nix
|
||||||
|
./homes/desktop/mpv.nix
|
||||||
|
./homes/desktop/ncdu.nix
|
||||||
|
./homes/desktop/steam.nix
|
||||||
|
./homes/desktop/syncplay.nix
|
||||||
|
./homes/desktop/terminals.nix
|
||||||
|
./homes/desktop/tor-browser.nix
|
||||||
|
./homes/desktop/uxplay.nix
|
||||||
|
./homes/desktop/waybar.nix
|
||||||
|
./homes/desktop/wine.nix
|
||||||
|
./homes/desktop/wlogout.nix
|
||||||
|
./homes/desktop/xdg.nix
|
||||||
|
./homes/desktop/xorg.nix
|
||||||
|
./homes/desktop/zathura.nix
|
||||||
|
|
||||||
|
inputs.anyrun.homeManagerModules.default
|
||||||
|
];
|
||||||
|
home-manager.extraSpecialArgs = { inherit username; inherit inputs; pkgs = nixpkgs_x86_64_linux; };
|
||||||
|
}
|
||||||
|
|
||||||
|
./systems/desktop/audio.nix
|
||||||
|
./systems/desktop/avahi.nix
|
||||||
|
./systems/desktop/bluetooth.nix
|
||||||
|
./systems/desktop/boot.nix
|
||||||
|
./systems/desktop/clicks-tailscale.nix
|
||||||
|
./systems/desktop/cpu.nix
|
||||||
|
./systems/desktop/doas.nix
|
||||||
|
./systems/desktop/firewall.nix
|
||||||
|
./systems/desktop/fonts.nix
|
||||||
|
./systems/desktop/gpg.nix
|
||||||
|
./systems/desktop/hardware.nix
|
||||||
|
./systems/desktop/hyprland.nix
|
||||||
|
./systems/desktop/hyprlock.nix
|
||||||
|
./systems/desktop/locale.nix
|
||||||
|
./systems/desktop/ly.nix
|
||||||
|
./systems/desktop/man.nix
|
||||||
|
./systems/desktop/networking.nix
|
||||||
|
./systems/desktop/nix-ld.nix
|
||||||
|
./systems/desktop/nix.nix
|
||||||
|
./systems/desktop/nixos.nix
|
||||||
|
./systems/desktop/nvidia.nix
|
||||||
|
./systems/desktop/packages.nix
|
||||||
|
./systems/desktop/security.nix
|
||||||
|
./systems/desktop/ssh.nix
|
||||||
|
./systems/desktop/systemd.nix
|
||||||
|
./systems/desktop/tailscale.nix
|
||||||
|
./systems/desktop/users.nix
|
||||||
|
./systems/desktop/xdg.nix
|
||||||
|
./systems/desktop/xorg.nix
|
||||||
|
./systems/desktop/yubikey.nix
|
||||||
|
./systems/desktop/zsh.nix
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
darwinConfigurations."laptop" = nix-darwin.lib.darwinSystem {
|
||||||
|
pkgs = nixpkgs_aarch64_darwin;
|
||||||
|
system = "aarch64-darwin";
|
||||||
|
specialArgs = {
|
||||||
|
inherit username;
|
||||||
|
};
|
||||||
|
modules = [
|
||||||
|
# Home Manager Modules
|
||||||
|
home-manager.darwinModules.home-manager
|
||||||
|
{
|
||||||
|
home-manager.useUserPackages = true;
|
||||||
|
home-manager.extraSpecialArgs = {
|
||||||
|
inherit username;
|
||||||
|
pkgs = nixpkgs_aarch64_darwin;
|
||||||
|
};
|
||||||
|
home-manager.users.${username}.imports = [
|
||||||
|
./homes/laptop/home.nix
|
||||||
|
./homes/laptop/ssh.nix
|
||||||
|
./homes/common/ssh
|
||||||
|
./homes/common/amfora.nix
|
||||||
|
./homes/common/btop.nix
|
||||||
|
./homes/common/eza.nix
|
||||||
|
./homes/common/fetch.nix
|
||||||
|
./homes/common/git.nix
|
||||||
|
./homes/common/helix.nix
|
||||||
|
./homes/common/htop.nix
|
||||||
|
./homes/common/kakoune
|
||||||
|
./homes/common/latex.nix
|
||||||
|
./homes/common/lf
|
||||||
|
./homes/common/media-tools.nix
|
||||||
|
./homes/common/python.nix
|
||||||
|
./homes/common/rust.nix
|
||||||
|
./homes/common/shell.nix
|
||||||
|
./homes/common/starship.nix
|
||||||
|
./homes/common/tmux.nix
|
||||||
|
./homes/common/wezterm.nix
|
||||||
|
./homes/common/xdg.nix
|
||||||
|
./homes/common/zsh.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
|
# Nix Darwin Modules
|
||||||
|
./systems/laptop/fonts.nix
|
||||||
|
./systems/laptop/gpg.nix
|
||||||
|
./systems/laptop/nix.nix
|
||||||
|
./systems/laptop/packages.nix
|
||||||
|
./systems/laptop/ssh.nix
|
||||||
|
./systems/laptop/sudo.nix
|
||||||
|
./systems/laptop/zsh.nix
|
||||||
|
];
|
||||||
|
};
|
||||||
|
formatter.aarch64-darwin = nixpkgs_aarch64_darwin.legacyPackages.aarch64-darwin.nixpkgs-fmt;
|
||||||
|
};
|
||||||
|
}
|
7
homes/common/amfora.nix
Normal file
7
homes/common/amfora.nix
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
amfora
|
||||||
|
];
|
||||||
|
}
|
10
homes/common/btop.nix
Normal file
10
homes/common/btop.nix
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
programs.btop = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
color_theme = "TTY";
|
||||||
|
theme_background = false;
|
||||||
|
truecolor = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
13
homes/common/eza.nix
Normal file
13
homes/common/eza.nix
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
programs.eza = {
|
||||||
|
enable = true;
|
||||||
|
icons = true;
|
||||||
|
extraOptions = [
|
||||||
|
"--group-directories-first"
|
||||||
|
"--time-style=long-iso"
|
||||||
|
"--git"
|
||||||
|
"-h"
|
||||||
|
"-g"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
9
homes/common/fetch.nix
Normal file
9
homes/common/fetch.nix
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
pridefetch
|
||||||
|
neofetch
|
||||||
|
pfetch
|
||||||
|
];
|
||||||
|
}
|
46
homes/common/git.nix
Normal file
46
homes/common/git.nix
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.git = {
|
||||||
|
enable = true;
|
||||||
|
lfs.enable = true;
|
||||||
|
|
||||||
|
userName = "Maddie H";
|
||||||
|
userEmail = "maddie@spyhoodle.me";
|
||||||
|
signing = {
|
||||||
|
key = "FA50688B9EB6D8AA070C8241C296DE8C9053683F";
|
||||||
|
signByDefault = true;
|
||||||
|
gpgPath = "/run/current-system/sw/bin/gpg";
|
||||||
|
};
|
||||||
|
|
||||||
|
aliases = {
|
||||||
|
graph = "log --graph --oneline --decorate";
|
||||||
|
unstage = "reset HEAD --";
|
||||||
|
co = "checkout";
|
||||||
|
br = "branch";
|
||||||
|
ci = "commit";
|
||||||
|
st = "status";
|
||||||
|
ps = "push";
|
||||||
|
};
|
||||||
|
|
||||||
|
extraConfig = {
|
||||||
|
init.defaultBranch = "development";
|
||||||
|
pull.rebase = "merges";
|
||||||
|
core.sshCommand = "/run/current-system/sw/bin/ssh";
|
||||||
|
};
|
||||||
|
|
||||||
|
ignores = [
|
||||||
|
"**/.DS_Store"
|
||||||
|
"**/._.DS_Store"
|
||||||
|
".DS_Store"
|
||||||
|
"._.DS_Store"
|
||||||
|
"**/*.swp"
|
||||||
|
"*.swp"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
gh
|
||||||
|
git-review
|
||||||
|
];
|
||||||
|
}
|
13
homes/common/helix.nix
Normal file
13
homes/common/helix.nix
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
programs.helix = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
theme = "onedark";
|
||||||
|
keys.normal = {
|
||||||
|
space.space = "file_picker";
|
||||||
|
space.w = ":w";
|
||||||
|
space.q = ":q";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
20
homes/common/htop.nix
Normal file
20
homes/common/htop.nix
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
|
||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.htop = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.htop-vim;
|
||||||
|
settings = {
|
||||||
|
hide_kernel_threads = 1;
|
||||||
|
hide_userland_threads = 1;
|
||||||
|
highlight_base_name = 1;
|
||||||
|
show_cpu_usage = 1;
|
||||||
|
show_cpu_frequency = 1;
|
||||||
|
show_cpu_temperature = 1;
|
||||||
|
degree_fahrenheit = 0;
|
||||||
|
enable_mouse = 1;
|
||||||
|
tree_view = 1;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
93
homes/common/kakoune/colors/one-dark-16.kak
Normal file
93
homes/common/kakoune/colors/one-dark-16.kak
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
# CODE
|
||||||
|
|
||||||
|
set-face global value yellow
|
||||||
|
set-face global type yellow
|
||||||
|
set-face global variable red
|
||||||
|
set-face global module yellow
|
||||||
|
set-face global function blue
|
||||||
|
set-face global string green
|
||||||
|
set-face global keyword magenta
|
||||||
|
set-face global operator white
|
||||||
|
set-face global attribute cyan
|
||||||
|
set-face global comment white+d
|
||||||
|
set-face global documentation white+d
|
||||||
|
set-face global meta cyan
|
||||||
|
set-face global builtin yellow
|
||||||
|
|
||||||
|
# MARKUP
|
||||||
|
|
||||||
|
set-face global title yellow
|
||||||
|
set-face global header green
|
||||||
|
set-face global mono cyan
|
||||||
|
set-face global block magenta
|
||||||
|
set-face global link blue
|
||||||
|
set-face global bullet yellow
|
||||||
|
set-face global list white
|
||||||
|
|
||||||
|
# BUILTIN
|
||||||
|
|
||||||
|
set-face global Default white
|
||||||
|
set-face global PrimarySelection black,blue
|
||||||
|
set-face global SecondarySelection black,green
|
||||||
|
set-face global PrimaryCursor black,white
|
||||||
|
set-face global SecondaryCursor black,cyan
|
||||||
|
set-face global PrimaryCursorEol black,red
|
||||||
|
set-face global SecondaryCursorEol black,red
|
||||||
|
set-face global LineNumbers white
|
||||||
|
set-face global LineNumberCursor yellow
|
||||||
|
set-face global LineNumbersWrapped black
|
||||||
|
set-face global MenuForeground blue
|
||||||
|
set-face global MenuBackground default
|
||||||
|
set-face global MenuInfo green
|
||||||
|
set-face global Information default
|
||||||
|
set-face global Error red
|
||||||
|
set-face global StatusLine default
|
||||||
|
set-face global StatusLineMode yellow
|
||||||
|
set-face global StatusLineInfo blue
|
||||||
|
set-face global StatusLineValue white
|
||||||
|
set-face global StatusCursor black,blue
|
||||||
|
set-face global Prompt blue
|
||||||
|
set-face global MatchingChar +bu
|
||||||
|
set-face global BufferPadding black
|
||||||
|
set-face global Whitespace white+d
|
||||||
|
|
||||||
|
# PLUGINS
|
||||||
|
|
||||||
|
# kak-lsp
|
||||||
|
set-face global InlayHint +d@type
|
||||||
|
set-face global parameter +i@variable
|
||||||
|
set-face global enum cyan
|
||||||
|
set-face global InlayDiagnosticError red
|
||||||
|
set-face global InlayDiagnosticWarning yellow
|
||||||
|
set-face global InlayDiagnosticInfo blue
|
||||||
|
set-face global InlayDiagnosticHint white
|
||||||
|
set-face global LineFlagError red
|
||||||
|
set-face global LineFlagWarning yellow
|
||||||
|
set-face global LineFlagInfo blue
|
||||||
|
set-face global LineFlagHint white
|
||||||
|
set-face global DiagnosticError +u
|
||||||
|
set-face global DiagnosticWarning +u
|
||||||
|
set-face global DiagnosticInfo +u
|
||||||
|
set-face global DiagnosticHint +u
|
||||||
|
# Infobox faces
|
||||||
|
set-face global InfoDefault Information
|
||||||
|
set-face global InfoBlock block
|
||||||
|
set-face global InfoBlockQuote block
|
||||||
|
set-face global InfoBullet bullet
|
||||||
|
set-face global InfoHeader header
|
||||||
|
set-face global InfoLink link
|
||||||
|
set-face global InfoLinkMono header
|
||||||
|
set-face global InfoMono mono
|
||||||
|
set-face global InfoRule comment
|
||||||
|
set-face global InfoDiagnosticError InlayDiagnosticError
|
||||||
|
set-face global InfoDiagnosticHint InlayDiagnosticHint
|
||||||
|
set-face global InfoDiagnosticInformation InlayDiagnosticInfo
|
||||||
|
set-face global InfoDiagnosticWarning InlayDiagnosticWarning
|
||||||
|
|
||||||
|
# kak-rainbower
|
||||||
|
try %{ set-option global rainbow_colors yellow magenta blue }
|
||||||
|
|
||||||
|
# For backwards compatibility
|
||||||
|
define-command -override -hidden one-enable-fancy-underlines %{
|
||||||
|
echo -debug "one-enable-fancy-underlines is deprecated - curly underlines are enabled by default"
|
||||||
|
}
|
117
homes/common/kakoune/colors/one-dark.kak
Normal file
117
homes/common/kakoune/colors/one-dark.kak
Normal file
@ -0,0 +1,117 @@
|
|||||||
|
# One Dark
|
||||||
|
|
||||||
|
declare-option str fg "abb2bf"
|
||||||
|
declare-option str bg "282c34"
|
||||||
|
declare-option str subbg "373c47"
|
||||||
|
|
||||||
|
declare-option str lightred "e06c75"
|
||||||
|
declare-option str darkred "be5046"
|
||||||
|
declare-option str green "98c379"
|
||||||
|
declare-option str lightorange "e5c07b"
|
||||||
|
declare-option str darkorange "d19a66"
|
||||||
|
declare-option str blue "61afef"
|
||||||
|
declare-option str magenta "c678dd"
|
||||||
|
declare-option str cyan "56b6c2"
|
||||||
|
|
||||||
|
declare-option str comment "5c6370"
|
||||||
|
declare-option str hint "ffffff"
|
||||||
|
|
||||||
|
declare-option str cursoralpha "80"
|
||||||
|
declare-option str selectionalpha "40"
|
||||||
|
|
||||||
|
# Menus do not support transparency, so we must hardcode the selection + sub bg colors
|
||||||
|
declare-option str menuselection "405770"
|
||||||
|
|
||||||
|
# CODE
|
||||||
|
|
||||||
|
set-face global value "rgb:%opt{darkorange}"
|
||||||
|
set-face global type "rgb:%opt{lightorange}"
|
||||||
|
set-face global variable "rgb:%opt{lightred}"
|
||||||
|
set-face global module "rgb:%opt{lightorange}"
|
||||||
|
set-face global function "rgb:%opt{blue}"
|
||||||
|
set-face global string "rgb:%opt{green}"
|
||||||
|
set-face global keyword "rgb:%opt{magenta}"
|
||||||
|
set-face global operator "rgb:%opt{fg}"
|
||||||
|
set-face global attribute "rgb:%opt{cyan}"
|
||||||
|
set-face global comment "rgb:%opt{comment}"
|
||||||
|
set-face global documentation "rgb:%opt{comment}"
|
||||||
|
set-face global meta "rgb:%opt{cyan}"
|
||||||
|
set-face global builtin "rgb:%opt{lightorange}"
|
||||||
|
|
||||||
|
# MARKUP
|
||||||
|
|
||||||
|
set-face global title "rgb:%opt{darkorange}"
|
||||||
|
set-face global header "rgb:%opt{green}"
|
||||||
|
set-face global mono "rgb:%opt{cyan}"
|
||||||
|
set-face global block "rgb:%opt{magenta}"
|
||||||
|
set-face global link "rgb:%opt{blue}"
|
||||||
|
set-face global bullet "rgb:%opt{lightorange}"
|
||||||
|
set-face global list "rgb:%opt{fg}"
|
||||||
|
|
||||||
|
# BUILTIN
|
||||||
|
|
||||||
|
set-face global Default "rgb:%opt{fg},rgb:%opt{bg}"
|
||||||
|
set-face global PrimarySelection "default,rgba:%opt{blue}%opt{selectionalpha}"
|
||||||
|
set-face global SecondarySelection "default,rgba:%opt{green}%opt{selectionalpha}"
|
||||||
|
set-face global PrimaryCursor "default,rgba:%opt{blue}%opt{cursoralpha}"
|
||||||
|
set-face global SecondaryCursor "default,rgba:%opt{green}%opt{cursoralpha}"
|
||||||
|
set-face global PrimaryCursorEol "default,rgba:%opt{lightred}%opt{cursoralpha}"
|
||||||
|
set-face global SecondaryCursorEol "default,rgba:%opt{darkorange}%opt{cursoralpha}"
|
||||||
|
set-face global LineNumbers "rgb:%opt{comment}"
|
||||||
|
set-face global LineNumberCursor "rgb:%opt{darkorange}"
|
||||||
|
set-face global LineNumbersWrapped "rgb:%opt{bg},rgb:%opt{bg}"
|
||||||
|
set-face global MenuForeground "rgb:%opt{fg},rgb:%opt{menuselection}"
|
||||||
|
set-face global MenuBackground "rgb:%opt{fg},rgb:%opt{subbg}"
|
||||||
|
set-face global MenuInfo "rgb:%opt{green}"
|
||||||
|
set-face global Information "rgb:%opt{fg},rgb:%opt{subbg}"
|
||||||
|
set-face global Error "rgb:%opt{lightred}"
|
||||||
|
set-face global StatusLine "rgb:%opt{fg},rgb:%opt{subbg}"
|
||||||
|
set-face global StatusLineMode "rgb:%opt{darkorange}"
|
||||||
|
set-face global StatusLineInfo "rgb:%opt{blue}"
|
||||||
|
set-face global StatusLineValue "rgb:%opt{fg}"
|
||||||
|
set-face global StatusCursor "default,rgba:%opt{blue}%opt{cursoralpha}"
|
||||||
|
set-face global Prompt "rgb:%opt{blue}"
|
||||||
|
set-face global MatchingChar "default,rgb:%opt{subbg}"
|
||||||
|
set-face global BufferPadding "rgb:%opt{bg},rgb:%opt{bg}"
|
||||||
|
set-face global Whitespace "rgb:%opt{comment}"
|
||||||
|
|
||||||
|
# PLUGINS
|
||||||
|
|
||||||
|
# kak-lsp
|
||||||
|
set-face global InlayHint "+d@type"
|
||||||
|
set-face global parameter "+i@variable"
|
||||||
|
set-face global enum "rgb:%opt{cyan}"
|
||||||
|
set-face global InlayDiagnosticError "rgb:%opt{lightred}"
|
||||||
|
set-face global InlayDiagnosticWarning "rgb:%opt{lightorange}"
|
||||||
|
set-face global InlayDiagnosticInfo "rgb:%opt{blue}"
|
||||||
|
set-face global InlayDiagnosticHint "rgb:%opt{hint}"
|
||||||
|
set-face global LineFlagError "rgb:%opt{lightred}"
|
||||||
|
set-face global LineFlagWarning "rgb:%opt{lightorange}"
|
||||||
|
set-face global LineFlagInfo "rgb:%opt{blue}"
|
||||||
|
set-face global LineFlagHint "rgb:%opt{hint}"
|
||||||
|
set-face global DiagnosticError ",,rgb:%opt{lightred}+c"
|
||||||
|
set-face global DiagnosticWarning ",,rgb:%opt{lightorange}+c"
|
||||||
|
set-face global DiagnosticInfo ",,rgb:%opt{blue}+c"
|
||||||
|
set-face global DiagnosticHint ",,rgb:%opt{hint}+u"
|
||||||
|
# Infobox faces
|
||||||
|
set-face global InfoDefault Information
|
||||||
|
set-face global InfoBlock block
|
||||||
|
set-face global InfoBlockQuote block
|
||||||
|
set-face global InfoBullet bullet
|
||||||
|
set-face global InfoHeader header
|
||||||
|
set-face global InfoLink link
|
||||||
|
set-face global InfoLinkMono header
|
||||||
|
set-face global InfoMono mono
|
||||||
|
set-face global InfoRule comment
|
||||||
|
set-face global InfoDiagnosticError InlayDiagnosticError
|
||||||
|
set-face global InfoDiagnosticHint InlayDiagnosticHint
|
||||||
|
set-face global InfoDiagnosticInformation InlayDiagnosticInfo
|
||||||
|
set-face global InfoDiagnosticWarning InlayDiagnosticWarning
|
||||||
|
|
||||||
|
# kak-rainbower
|
||||||
|
try %{ set-option global rainbow_colors "rgb:%opt{lightorange}" "rgb:%opt{magenta}" "rgb:%opt{blue}" }
|
||||||
|
|
||||||
|
# For backwards compatibility
|
||||||
|
define-command -override -hidden one-enable-fancy-underlines %{
|
||||||
|
echo -debug "one-enable-fancy-underlines is deprecated - curly underlines are enabled by default"
|
||||||
|
}
|
101
homes/common/kakoune/colors/one-darker-16.kak
Normal file
101
homes/common/kakoune/colors/one-darker-16.kak
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
# CODE
|
||||||
|
|
||||||
|
set-face global value yellow
|
||||||
|
set-face global type yellow
|
||||||
|
set-face global variable white
|
||||||
|
set-face global module yellow
|
||||||
|
set-face global function blue
|
||||||
|
set-face global string green
|
||||||
|
set-face global keyword magenta
|
||||||
|
set-face global operator red
|
||||||
|
set-face global attribute cyan
|
||||||
|
set-face global comment white+d
|
||||||
|
set-face global documentation white+d
|
||||||
|
set-face global meta cyan
|
||||||
|
set-face global builtin yellow
|
||||||
|
|
||||||
|
# MARKUP
|
||||||
|
|
||||||
|
set-face global title yellow
|
||||||
|
set-face global header green
|
||||||
|
set-face global mono cyan
|
||||||
|
set-face global block magenta
|
||||||
|
set-face global link blue
|
||||||
|
set-face global bullet yellow
|
||||||
|
set-face global list white
|
||||||
|
|
||||||
|
# BUILTIN
|
||||||
|
|
||||||
|
set-face global Default white
|
||||||
|
set-face global PrimarySelection black,blue
|
||||||
|
set-face global SecondarySelection black,green
|
||||||
|
set-face global PrimaryCursor black,white
|
||||||
|
set-face global SecondaryCursor black,cyan
|
||||||
|
set-face global PrimaryCursorEol black,red
|
||||||
|
set-face global SecondaryCursorEol black,red
|
||||||
|
set-face global LineNumbers white
|
||||||
|
set-face global LineNumberCursor yellow
|
||||||
|
set-face global LineNumbersWrapped black
|
||||||
|
set-face global MenuForeground blue
|
||||||
|
set-face global MenuBackground default
|
||||||
|
set-face global MenuInfo green
|
||||||
|
set-face global Information default
|
||||||
|
set-face global Error red
|
||||||
|
set-face global StatusLine default
|
||||||
|
set-face global StatusLineMode yellow
|
||||||
|
set-face global StatusLineInfo blue
|
||||||
|
set-face global StatusLineValue white
|
||||||
|
set-face global StatusCursor black,blue
|
||||||
|
set-face global Prompt blue
|
||||||
|
set-face global MatchingChar +bu
|
||||||
|
set-face global BufferPadding black
|
||||||
|
set-face global Whitespace white+d
|
||||||
|
|
||||||
|
# PLUGINS
|
||||||
|
|
||||||
|
# kak-lsp
|
||||||
|
set-face global InlayHint +d@type
|
||||||
|
set-face global parameter +i@variable
|
||||||
|
set-face global enum cyan
|
||||||
|
set-face global InlayDiagnosticError red
|
||||||
|
set-face global InlayDiagnosticWarning yellow
|
||||||
|
set-face global InlayDiagnosticInfo blue
|
||||||
|
set-face global InlayDiagnosticHint white
|
||||||
|
set-face global LineFlagError red
|
||||||
|
set-face global LineFlagWarning yellow
|
||||||
|
set-face global LineFlagInfo blue
|
||||||
|
set-face global LineFlagHint white
|
||||||
|
set-face global DiagnosticError +u
|
||||||
|
set-face global DiagnosticWarning +u
|
||||||
|
set-face global DiagnosticInfo +u
|
||||||
|
set-face global DiagnosticHint +u
|
||||||
|
# Infobox faces
|
||||||
|
set-face global InfoDefault Information
|
||||||
|
set-face global InfoBlock block
|
||||||
|
set-face global InfoBlockQuote block
|
||||||
|
set-face global InfoBullet bullet
|
||||||
|
set-face global InfoHeader header
|
||||||
|
set-face global InfoLink link
|
||||||
|
set-face global InfoLinkMono header
|
||||||
|
set-face global InfoMono mono
|
||||||
|
set-face global InfoRule comment
|
||||||
|
set-face global InfoDiagnosticError InlayDiagnosticError
|
||||||
|
set-face global InfoDiagnosticHint InlayDiagnosticHint
|
||||||
|
set-face global InfoDiagnosticInformation InlayDiagnosticInfo
|
||||||
|
set-face global InfoDiagnosticWarning InlayDiagnosticWarning
|
||||||
|
|
||||||
|
# kak-rainbower
|
||||||
|
try %{ set-option global rainbow_colors yellow magenta blue }
|
||||||
|
|
||||||
|
# For backwards compatibility
|
||||||
|
define-command -override -hidden one-enable-fancy-underlines %{
|
||||||
|
echo -debug "one-enable-fancy-underlines is deprecated - curly underlines are enabled by default"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Hardcoded selection + bg colors
|
||||||
|
# set-face global PrimarySelection default,rgb:2a3f53
|
||||||
|
# set-face global SecondarySelection default,rgb:384435
|
||||||
|
# set-face global PrimaryCursor default,rgb:3c6487
|
||||||
|
# set-face global SecondaryCursor default,rgb:586e4c
|
||||||
|
# set-face global PrimaryCursorEol default,rgb:7c434a
|
||||||
|
# set-face global SecondaryCursorEol default,rgb:7c434a
|
125
homes/common/kakoune/colors/one-darker.kak
Normal file
125
homes/common/kakoune/colors/one-darker.kak
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
# One Darker
|
||||||
|
# This theme is a personalized implementation of One Dark.
|
||||||
|
# Changes include:
|
||||||
|
# - Darker background color
|
||||||
|
# - Variables are white instead of red
|
||||||
|
# - Operators are red instead of white
|
||||||
|
# - Comments are more visible
|
||||||
|
|
||||||
|
# COLORS
|
||||||
|
|
||||||
|
declare-option str fg "abb2bf"
|
||||||
|
declare-option str bg "181a1f"
|
||||||
|
declare-option str subbg "272b33"
|
||||||
|
|
||||||
|
declare-option str lightred "e06c75"
|
||||||
|
declare-option str darkred "be5046"
|
||||||
|
declare-option str green "98c379"
|
||||||
|
declare-option str lightorange "e5c07b"
|
||||||
|
declare-option str darkorange "d19a66"
|
||||||
|
declare-option str blue "61afef"
|
||||||
|
declare-option str magenta "c678dd"
|
||||||
|
declare-option str cyan "56b6c2"
|
||||||
|
|
||||||
|
declare-option str comment "70798a"
|
||||||
|
declare-option str hint "ffffff"
|
||||||
|
|
||||||
|
declare-option str cursoralpha "80"
|
||||||
|
declare-option str selectionalpha "40"
|
||||||
|
|
||||||
|
# Menus do not support transparency, so we must hardcode the selection + sub bg colors
|
||||||
|
declare-option str menuselection "344b61"
|
||||||
|
|
||||||
|
# CODE
|
||||||
|
|
||||||
|
set-face global value "rgb:%opt{darkorange}"
|
||||||
|
set-face global type "rgb:%opt{lightorange}"
|
||||||
|
set-face global variable "rgb:%opt{fg}"
|
||||||
|
set-face global module "rgb:%opt{lightorange}"
|
||||||
|
set-face global function "rgb:%opt{blue}"
|
||||||
|
set-face global string "rgb:%opt{green}"
|
||||||
|
set-face global keyword "rgb:%opt{magenta}"
|
||||||
|
set-face global operator "rgb:%opt{lightred}"
|
||||||
|
set-face global attribute "rgb:%opt{cyan}"
|
||||||
|
set-face global comment "rgb:%opt{comment}"
|
||||||
|
set-face global documentation "rgb:%opt{comment}"
|
||||||
|
set-face global meta "rgb:%opt{cyan}"
|
||||||
|
set-face global builtin "rgb:%opt{lightorange}"
|
||||||
|
|
||||||
|
# MARKUP
|
||||||
|
|
||||||
|
set-face global title "rgb:%opt{darkorange}"
|
||||||
|
set-face global header "rgb:%opt{green}"
|
||||||
|
set-face global mono "rgb:%opt{cyan}"
|
||||||
|
set-face global block "rgb:%opt{magenta}"
|
||||||
|
set-face global link "rgb:%opt{blue}"
|
||||||
|
set-face global bullet "rgb:%opt{lightorange}"
|
||||||
|
set-face global list "rgb:%opt{fg}"
|
||||||
|
|
||||||
|
# BUILTIN
|
||||||
|
|
||||||
|
set-face global Default "rgb:%opt{fg},rgb:%opt{bg}"
|
||||||
|
set-face global PrimarySelection "default,rgba:%opt{blue}%opt{selectionalpha}"
|
||||||
|
set-face global SecondarySelection "default,rgba:%opt{green}%opt{selectionalpha}"
|
||||||
|
set-face global PrimaryCursor "default,rgba:%opt{blue}%opt{cursoralpha}"
|
||||||
|
set-face global SecondaryCursor "default,rgba:%opt{green}%opt{cursoralpha}"
|
||||||
|
set-face global PrimaryCursorEol "default,rgba:%opt{lightred}%opt{cursoralpha}"
|
||||||
|
set-face global SecondaryCursorEol "default,rgba:%opt{darkorange}%opt{cursoralpha}"
|
||||||
|
set-face global LineNumbers "rgb:%opt{comment}"
|
||||||
|
set-face global LineNumberCursor "rgb:%opt{darkorange}"
|
||||||
|
set-face global LineNumbersWrapped "rgb:%opt{bg},rgb:%opt{bg}"
|
||||||
|
set-face global MenuForeground "rgb:%opt{fg},rgb:%opt{menuselection}"
|
||||||
|
set-face global MenuBackground "rgb:%opt{fg},rgb:%opt{subbg}"
|
||||||
|
set-face global MenuInfo "rgb:%opt{green}"
|
||||||
|
set-face global Information "rgb:%opt{fg},rgb:%opt{subbg}"
|
||||||
|
set-face global Error "rgb:%opt{lightred}"
|
||||||
|
set-face global StatusLine "rgb:%opt{fg},rgb:%opt{subbg}"
|
||||||
|
set-face global StatusLineMode "rgb:%opt{darkorange}"
|
||||||
|
set-face global StatusLineInfo "rgb:%opt{blue}"
|
||||||
|
set-face global StatusLineValue "rgb:%opt{fg}"
|
||||||
|
set-face global StatusCursor "default,rgba:%opt{blue}%opt{cursoralpha}"
|
||||||
|
set-face global Prompt "rgb:%opt{blue}"
|
||||||
|
set-face global MatchingChar "default,rgb:%opt{subbg}"
|
||||||
|
set-face global BufferPadding "rgb:%opt{bg},rgb:%opt{bg}"
|
||||||
|
set-face global Whitespace "rgb:%opt{comment}"
|
||||||
|
|
||||||
|
# PLUGINS
|
||||||
|
|
||||||
|
# kak-lsp
|
||||||
|
set-face global InlayHint "+d@type"
|
||||||
|
set-face global parameter "+i@variable"
|
||||||
|
set-face global enum "rgb:%opt{cyan}"
|
||||||
|
set-face global InlayDiagnosticError "rgb:%opt{lightred}"
|
||||||
|
set-face global InlayDiagnosticWarning "rgb:%opt{lightorange}"
|
||||||
|
set-face global InlayDiagnosticInfo "rgb:%opt{blue}"
|
||||||
|
set-face global InlayDiagnosticHint "rgb:%opt{hint}"
|
||||||
|
set-face global LineFlagError "rgb:%opt{lightred}"
|
||||||
|
set-face global LineFlagWarning "rgb:%opt{lightorange}"
|
||||||
|
set-face global LineFlagInfo "rgb:%opt{blue}"
|
||||||
|
set-face global LineFlagHint "rgb:%opt{hint}"
|
||||||
|
set-face global DiagnosticError ",,rgb:%opt{lightred}+c"
|
||||||
|
set-face global DiagnosticWarning ",,rgb:%opt{lightorange}+c"
|
||||||
|
set-face global DiagnosticInfo ",,rgb:%opt{blue}+c"
|
||||||
|
set-face global DiagnosticHint ",,rgb:%opt{hint}+u"
|
||||||
|
# Infobox faces
|
||||||
|
set-face global InfoDefault Information
|
||||||
|
set-face global InfoBlock block
|
||||||
|
set-face global InfoBlockQuote block
|
||||||
|
set-face global InfoBullet bullet
|
||||||
|
set-face global InfoHeader header
|
||||||
|
set-face global InfoLink link
|
||||||
|
set-face global InfoLinkMono header
|
||||||
|
set-face global InfoMono mono
|
||||||
|
set-face global InfoRule comment
|
||||||
|
set-face global InfoDiagnosticError InlayDiagnosticError
|
||||||
|
set-face global InfoDiagnosticHint InlayDiagnosticHint
|
||||||
|
set-face global InfoDiagnosticInformation InlayDiagnosticInfo
|
||||||
|
set-face global InfoDiagnosticWarning InlayDiagnosticWarning
|
||||||
|
|
||||||
|
# kak-rainbower
|
||||||
|
try %{ set-option global rainbow_colors "rgb:%opt{lightorange}" "rgb:%opt{magenta}" "rgb:%opt{blue}" }
|
||||||
|
|
||||||
|
# For backwards compatibility
|
||||||
|
define-command -override -hidden one-enable-fancy-underlines %{
|
||||||
|
echo -debug "one-enable-fancy-underlines is deprecated - curly underlines are enabled by default"
|
||||||
|
}
|
93
homes/common/kakoune/colors/one-light-16.kak
Normal file
93
homes/common/kakoune/colors/one-light-16.kak
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
# CODE
|
||||||
|
|
||||||
|
set-face global value yellow
|
||||||
|
set-face global type yellow
|
||||||
|
set-face global variable red
|
||||||
|
set-face global module yellow
|
||||||
|
set-face global function blue
|
||||||
|
set-face global string green
|
||||||
|
set-face global keyword magenta
|
||||||
|
set-face global operator black
|
||||||
|
set-face global attribute cyan
|
||||||
|
set-face global comment black+d
|
||||||
|
set-face global documentation black+d
|
||||||
|
set-face global meta cyan
|
||||||
|
set-face global builtin yellow
|
||||||
|
|
||||||
|
# MARKUP
|
||||||
|
|
||||||
|
set-face global title yellow
|
||||||
|
set-face global header green
|
||||||
|
set-face global mono cyan
|
||||||
|
set-face global block magenta
|
||||||
|
set-face global link blue
|
||||||
|
set-face global bullet yellow
|
||||||
|
set-face global list white
|
||||||
|
|
||||||
|
# BUILTIN
|
||||||
|
|
||||||
|
set-face global Default black
|
||||||
|
set-face global PrimarySelection black,blue
|
||||||
|
set-face global SecondarySelection black,green
|
||||||
|
set-face global PrimaryCursor black,white
|
||||||
|
set-face global SecondaryCursor black,cyan
|
||||||
|
set-face global PrimaryCursorEol black,red
|
||||||
|
set-face global SecondaryCursorEol black,red
|
||||||
|
set-face global LineNumbers black
|
||||||
|
set-face global LineNumberCursor yellow
|
||||||
|
set-face global LineNumbersWrapped white
|
||||||
|
set-face global MenuForeground blue
|
||||||
|
set-face global MenuBackground default
|
||||||
|
set-face global MenuInfo green
|
||||||
|
set-face global Information default
|
||||||
|
set-face global Error red
|
||||||
|
set-face global StatusLine default
|
||||||
|
set-face global StatusLineMode yellow
|
||||||
|
set-face global StatusLineInfo blue
|
||||||
|
set-face global StatusLineValue white
|
||||||
|
set-face global StatusCursor black,blue
|
||||||
|
set-face global Prompt blue
|
||||||
|
set-face global MatchingChar +bu
|
||||||
|
set-face global BufferPadding white
|
||||||
|
set-face global Whitespace black+d
|
||||||
|
|
||||||
|
# PLUGINS
|
||||||
|
|
||||||
|
# kak-lsp
|
||||||
|
set-face global InlayHint +d@type
|
||||||
|
set-face global parameter +i@variable
|
||||||
|
set-face global enum cyan
|
||||||
|
set-face global InlayDiagnosticError red
|
||||||
|
set-face global InlayDiagnosticWarning yellow
|
||||||
|
set-face global InlayDiagnosticInfo blue
|
||||||
|
set-face global InlayDiagnosticHint white
|
||||||
|
set-face global LineFlagError red
|
||||||
|
set-face global LineFlagWarning yellow
|
||||||
|
set-face global LineFlagInfo blue
|
||||||
|
set-face global LineFlagHint white
|
||||||
|
set-face global DiagnosticError +u
|
||||||
|
set-face global DiagnosticWarning +u
|
||||||
|
set-face global DiagnosticInfo +u
|
||||||
|
set-face global DiagnosticHint +u
|
||||||
|
# Infobox faces
|
||||||
|
set-face global InfoDefault Information
|
||||||
|
set-face global InfoBlock block
|
||||||
|
set-face global InfoBlockQuote block
|
||||||
|
set-face global InfoBullet bullet
|
||||||
|
set-face global InfoHeader header
|
||||||
|
set-face global InfoLink link
|
||||||
|
set-face global InfoLinkMono header
|
||||||
|
set-face global InfoMono mono
|
||||||
|
set-face global InfoRule comment
|
||||||
|
set-face global InfoDiagnosticError InlayDiagnosticError
|
||||||
|
set-face global InfoDiagnosticHint InlayDiagnosticHint
|
||||||
|
set-face global InfoDiagnosticInformation InlayDiagnosticInfo
|
||||||
|
set-face global InfoDiagnosticWarning InlayDiagnosticWarning
|
||||||
|
|
||||||
|
# kak-rainbower
|
||||||
|
try %{ set-option global rainbow_colors yellow magenta blue }
|
||||||
|
|
||||||
|
# For backwards compatibility
|
||||||
|
define-command -override -hidden one-enable-fancy-underlines %{
|
||||||
|
echo -debug "one-enable-fancy-underlines is deprecated - curly underlines are enabled by default"
|
||||||
|
}
|
117
homes/common/kakoune/colors/one-light.kak
Normal file
117
homes/common/kakoune/colors/one-light.kak
Normal file
@ -0,0 +1,117 @@
|
|||||||
|
# One Light
|
||||||
|
|
||||||
|
declare-option str fg "4b4c54"
|
||||||
|
declare-option str bg "fafafa"
|
||||||
|
declare-option str subbg "e6e6e6"
|
||||||
|
|
||||||
|
declare-option str lightred "e45649"
|
||||||
|
declare-option str darkred "ca1243"
|
||||||
|
declare-option str green "50a14f"
|
||||||
|
declare-option str lightorange "c18401"
|
||||||
|
declare-option str darkorange "986801"
|
||||||
|
declare-option str blue "4078f2"
|
||||||
|
declare-option str magenta "a626a4"
|
||||||
|
declare-option str cyan "0184bc"
|
||||||
|
|
||||||
|
declare-option str comment "a0a1a7"
|
||||||
|
declare-option str hint "000000"
|
||||||
|
|
||||||
|
declare-option str cursoralpha "80"
|
||||||
|
declare-option str selectionalpha "40"
|
||||||
|
|
||||||
|
# Menus do not support transparency, so we must hardcode the selection + sub bg colors
|
||||||
|
declare-option str menuselection "bbc9e8"
|
||||||
|
|
||||||
|
# CODE
|
||||||
|
|
||||||
|
set-face global value "rgb:%opt{darkorange}"
|
||||||
|
set-face global type "rgb:%opt{lightorange}"
|
||||||
|
set-face global variable "rgb:%opt{lightred}"
|
||||||
|
set-face global module "rgb:%opt{lightorange}"
|
||||||
|
set-face global function "rgb:%opt{blue}"
|
||||||
|
set-face global string "rgb:%opt{green}"
|
||||||
|
set-face global keyword "rgb:%opt{magenta}"
|
||||||
|
set-face global operator "rgb:%opt{fg}"
|
||||||
|
set-face global attribute "rgb:%opt{cyan}"
|
||||||
|
set-face global comment "rgb:%opt{comment}"
|
||||||
|
set-face global documentation "rgb:%opt{comment}"
|
||||||
|
set-face global meta "rgb:%opt{cyan}"
|
||||||
|
set-face global builtin "rgb:%opt{lightorange}"
|
||||||
|
|
||||||
|
# MARKUP
|
||||||
|
|
||||||
|
set-face global title "rgb:%opt{darkorange}"
|
||||||
|
set-face global header "rgb:%opt{green}"
|
||||||
|
set-face global mono "rgb:%opt{cyan}"
|
||||||
|
set-face global block "rgb:%opt{magenta}"
|
||||||
|
set-face global link "rgb:%opt{blue}"
|
||||||
|
set-face global bullet "rgb:%opt{lightorange}"
|
||||||
|
set-face global list "rgb:%opt{fg}"
|
||||||
|
|
||||||
|
# BUILTIN
|
||||||
|
|
||||||
|
set-face global Default "rgb:%opt{fg},rgb:%opt{bg}"
|
||||||
|
set-face global PrimarySelection "default,rgba:%opt{blue}%opt{selectionalpha}"
|
||||||
|
set-face global SecondarySelection "default,rgba:%opt{green}%opt{selectionalpha}"
|
||||||
|
set-face global PrimaryCursor "default,rgba:%opt{blue}%opt{cursoralpha}"
|
||||||
|
set-face global SecondaryCursor "default,rgba:%opt{green}%opt{cursoralpha}"
|
||||||
|
set-face global PrimaryCursorEol "default,rgba:%opt{lightred}%opt{cursoralpha}"
|
||||||
|
set-face global SecondaryCursorEol "default,rgba:%opt{darkorange}%opt{cursoralpha}"
|
||||||
|
set-face global LineNumbers "rgb:%opt{comment}"
|
||||||
|
set-face global LineNumberCursor "rgb:%opt{darkorange}"
|
||||||
|
set-face global LineNumbersWrapped "rgb:%opt{bg},rgb:%opt{bg}"
|
||||||
|
set-face global MenuForeground "rgb:%opt{fg},rgb:%opt{menuselection}"
|
||||||
|
set-face global MenuBackground "rgb:%opt{fg},rgb:%opt{subbg}"
|
||||||
|
set-face global MenuInfo "rgb:%opt{green}"
|
||||||
|
set-face global Information "rgb:%opt{fg},rgb:%opt{subbg}"
|
||||||
|
set-face global Error "rgb:%opt{lightred}"
|
||||||
|
set-face global StatusLine "rgb:%opt{fg},rgb:%opt{subbg}"
|
||||||
|
set-face global StatusLineMode "rgb:%opt{darkorange}"
|
||||||
|
set-face global StatusLineInfo "rgb:%opt{blue}"
|
||||||
|
set-face global StatusLineValue "rgb:%opt{fg}"
|
||||||
|
set-face global StatusCursor "default,rgba:%opt{blue}%opt{cursoralpha}"
|
||||||
|
set-face global Prompt "rgb:%opt{blue}"
|
||||||
|
set-face global MatchingChar "default,rgb:%opt{subbg}"
|
||||||
|
set-face global BufferPadding "rgb:%opt{bg},rgb:%opt{bg}"
|
||||||
|
set-face global Whitespace "rgb:%opt{comment}"
|
||||||
|
|
||||||
|
# PLUGINS
|
||||||
|
|
||||||
|
# kak-lsp
|
||||||
|
set-face global InlayHint "+d@type"
|
||||||
|
set-face global parameter "+i@variable"
|
||||||
|
set-face global enum "rgb:%opt{cyan}"
|
||||||
|
set-face global InlayDiagnosticError "rgb:%opt{lightred}"
|
||||||
|
set-face global InlayDiagnosticWarning "rgb:%opt{lightorange}"
|
||||||
|
set-face global InlayDiagnosticInfo "rgb:%opt{blue}"
|
||||||
|
set-face global InlayDiagnosticHint "rgb:%opt{hint}"
|
||||||
|
set-face global LineFlagError "rgb:%opt{lightred}"
|
||||||
|
set-face global LineFlagWarning "rgb:%opt{lightorange}"
|
||||||
|
set-face global LineFlagInfo "rgb:%opt{blue}"
|
||||||
|
set-face global LineFlagHint "rgb:%opt{hint}"
|
||||||
|
set-face global DiagnosticError ",,rgb:%opt{lightred}+c"
|
||||||
|
set-face global DiagnosticWarning ",,rgb:%opt{lightorange}+c"
|
||||||
|
set-face global DiagnosticInfo ",,rgb:%opt{blue}+c"
|
||||||
|
set-face global DiagnosticHint ",,rgb:%opt{hint}+u"
|
||||||
|
# Infobox faces
|
||||||
|
set-face global InfoDefault Information
|
||||||
|
set-face global InfoBlock block
|
||||||
|
set-face global InfoBlockQuote block
|
||||||
|
set-face global InfoBullet bullet
|
||||||
|
set-face global InfoHeader header
|
||||||
|
set-face global InfoLink link
|
||||||
|
set-face global InfoLinkMono header
|
||||||
|
set-face global InfoMono mono
|
||||||
|
set-face global InfoRule comment
|
||||||
|
set-face global InfoDiagnosticError InlayDiagnosticError
|
||||||
|
set-face global InfoDiagnosticHint InlayDiagnosticHint
|
||||||
|
set-face global InfoDiagnosticInformation InlayDiagnosticInfo
|
||||||
|
set-face global InfoDiagnosticWarning InlayDiagnosticWarning
|
||||||
|
|
||||||
|
# kak-rainbower
|
||||||
|
try %{ set-option global rainbow_colors "rgb:%opt{lightorange}" "rgb:%opt{magenta}" "rgb:%opt{blue}" }
|
||||||
|
|
||||||
|
# For backwards compatibility
|
||||||
|
define-command -override -hidden one-enable-fancy-underlines %{
|
||||||
|
echo -debug "one-enable-fancy-underlines is deprecated - curly underlines are enabled by default"
|
||||||
|
}
|
76
homes/common/kakoune/default.nix
Normal file
76
homes/common/kakoune/default.nix
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.kakoune = {
|
||||||
|
enable = true;
|
||||||
|
config = {
|
||||||
|
colorScheme = "one-dark";
|
||||||
|
showWhitespace.enable = false;
|
||||||
|
scrollOff.lines = 3;
|
||||||
|
tabStop = 4;
|
||||||
|
numberLines = {
|
||||||
|
enable = true;
|
||||||
|
relative = true;
|
||||||
|
};
|
||||||
|
ui = {
|
||||||
|
statusLine = "top";
|
||||||
|
assistant = "cat";
|
||||||
|
enableMouse = true;
|
||||||
|
setTitle = true;
|
||||||
|
};
|
||||||
|
hooks = [
|
||||||
|
{
|
||||||
|
name = "WinSetOption";
|
||||||
|
option = "filetype=nix";
|
||||||
|
commands = ''
|
||||||
|
set-option window indentwidth 2
|
||||||
|
set-option window formatcmd nixpkgs-fmt
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
plugins = with pkgs.kakounePlugins; [
|
||||||
|
kakoune-rainbow
|
||||||
|
powerline-kak
|
||||||
|
auto-pairs-kak
|
||||||
|
pkgs.kak-lsp
|
||||||
|
];
|
||||||
|
extraConfig = ''
|
||||||
|
# Tabs
|
||||||
|
hook global InsertChar \t %{ exec -draft h@ }
|
||||||
|
add-highlighter global/ show-whitespaces -tab '│' -tabpad '╌'
|
||||||
|
|
||||||
|
# Kak-LSP
|
||||||
|
eval %sh{kak-lsp --kakoune -s $kak_session}
|
||||||
|
lsp-enable
|
||||||
|
|
||||||
|
# Modeline
|
||||||
|
declare-option bool lsp_enabled false
|
||||||
|
declare-option -hidden str lsp_modeline_progress ""
|
||||||
|
define-command -hidden -params 6 -override lsp-handle-progress %{
|
||||||
|
set-option global lsp_modeline_progress %sh{
|
||||||
|
if ! "$6"; then
|
||||||
|
echo "$2\$\{5:+" ($5%)"}\$\{4:+": $4"}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
declare-option -hidden str modeline_git_branch
|
||||||
|
hook global WinDisplay .* %{
|
||||||
|
set-option window modeline_git_branch %sh{
|
||||||
|
branch=$(git -C "\$\{kak_buffile%/*}" rev-parse --abbrev-ref HEAD 2>/dev/null)
|
||||||
|
if [ -n "$branch" ]; then
|
||||||
|
printf "$branch "
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
set-option global modelinefmt '%opt{lsp_modeline_progress} {StatusLine}{string}%opt{modeline_git_branch}{type}%sh{ [ -n "$kak_opt_filetype" ] && echo "$kak_opt_filetype " }{default}%val{bufname}{{context_info}}{default} {{mode_info}} {meta}%val{cursor_line}:%val{cursor_char_column}'
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg.configFile."kak/colors" = {
|
||||||
|
source = ./colors;
|
||||||
|
recursive = true;
|
||||||
|
};
|
||||||
|
}
|
7
homes/common/latex.nix
Normal file
7
homes/common/latex.nix
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
texlive.combined.scheme-full
|
||||||
|
];
|
||||||
|
}
|
26
homes/common/lf/default.nix
Normal file
26
homes/common/lf/default.nix
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.lf = {
|
||||||
|
enable = true;
|
||||||
|
previewer.source = ./scope;
|
||||||
|
settings = {
|
||||||
|
relativenumber = true;
|
||||||
|
number = true;
|
||||||
|
hidden = false;
|
||||||
|
preview = true;
|
||||||
|
icons = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg.configFile = {
|
||||||
|
"lf/icons" = {
|
||||||
|
source = ./icons;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
ueberzug
|
||||||
|
file
|
||||||
|
];
|
||||||
|
}
|
93
homes/common/lf/icons
Normal file
93
homes/common/lf/icons
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
di
|
||||||
|
fi
|
||||||
|
tw
|
||||||
|
ow
|
||||||
|
ln
|
||||||
|
or
|
||||||
|
ex
|
||||||
|
*.txt
|
||||||
|
*.mom
|
||||||
|
*.me
|
||||||
|
*.ms
|
||||||
|
*.avif
|
||||||
|
*.png
|
||||||
|
*.webp
|
||||||
|
*.ico
|
||||||
|
*.gif
|
||||||
|
*.tif
|
||||||
|
*.tiff
|
||||||
|
*.jpg
|
||||||
|
*.jpe
|
||||||
|
*.jpeg
|
||||||
|
*.heif
|
||||||
|
*.svg
|
||||||
|
*.xcf
|
||||||
|
*.gpg
|
||||||
|
*.pdf
|
||||||
|
*.djvu
|
||||||
|
*.epub
|
||||||
|
*.csv
|
||||||
|
*.xlsx
|
||||||
|
*.tex
|
||||||
|
*.md
|
||||||
|
*.mp3
|
||||||
|
*.opus
|
||||||
|
*.ogg
|
||||||
|
*.m4a
|
||||||
|
*.flac
|
||||||
|
*.wav
|
||||||
|
*.mkv
|
||||||
|
*.mp4
|
||||||
|
*.webm
|
||||||
|
*.mpeg
|
||||||
|
*.avi
|
||||||
|
*.mov
|
||||||
|
*.mpg
|
||||||
|
*.wmv
|
||||||
|
*.m4b
|
||||||
|
*.flv
|
||||||
|
*.zip
|
||||||
|
*.rar
|
||||||
|
*.7z
|
||||||
|
*.tar
|
||||||
|
*.gz
|
||||||
|
*.z64
|
||||||
|
*.v64
|
||||||
|
*.n64
|
||||||
|
*.gdi
|
||||||
|
*.gba
|
||||||
|
*.nes
|
||||||
|
*.exe
|
||||||
|
*.1
|
||||||
|
*.nfo
|
||||||
|
*.info
|
||||||
|
*.log
|
||||||
|
*.iso
|
||||||
|
*.img
|
||||||
|
*.bib
|
||||||
|
*.part
|
||||||
|
*.torrent
|
||||||
|
*.gitignore
|
||||||
|
*.jar
|
||||||
|
*.java
|
||||||
|
*.r
|
||||||
|
*.R
|
||||||
|
*.rmd
|
||||||
|
*.Rmd
|
||||||
|
*.m
|
||||||
|
*.rs
|
||||||
|
*.go
|
||||||
|
*.c
|
||||||
|
*.cpp
|
||||||
|
*.h
|
||||||
|
*.py
|
||||||
|
*.js
|
||||||
|
*.json
|
||||||
|
*.ts
|
||||||
|
*.sh
|
||||||
|
*.html
|
||||||
|
*.css
|
||||||
|
*.xml
|
||||||
|
*.php
|
||||||
|
*.nix
|
||||||
|
*.vim
|
40
homes/common/lf/scope
Executable file
40
homes/common/lf/scope
Executable file
@ -0,0 +1,40 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
|
# File preview handler for lf.
|
||||||
|
|
||||||
|
set -C -f
|
||||||
|
IFS="$(printf '%b_' '\n')"; IFS="${IFS%_}"
|
||||||
|
|
||||||
|
# Note that the cache file name is a function of file information, meaning if
|
||||||
|
# an image appears in multiple places across the machine, it will not have to
|
||||||
|
# be regenerated once seen.
|
||||||
|
|
||||||
|
case "$(file --dereference --brief --mime-type -- "$1")" in
|
||||||
|
image/avif) CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/lf/thumb.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | cut -d' ' -f1)"
|
||||||
|
[ ! -f "$CACHE" ] && convert "$1" "$CACHE.jpg"
|
||||||
|
image "$CACHE.jpg" "$2" "$3" "$4" "$5" "$1" ;;
|
||||||
|
image/*) lsix "$1" ;;
|
||||||
|
text/html) lynx -width="$4" -display_charset=utf-8 -dump "$1" ;;
|
||||||
|
text/troff) man ./ "$1" | col -b ;;
|
||||||
|
text/* | */xml | application/json) bat --terminal-width "$(($4-2))" -f "$1" ;;
|
||||||
|
audio/* | application/octet-stream) mediainfo "$1" || exit 1 ;;
|
||||||
|
video/* )
|
||||||
|
CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/lf/thumb.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | cut -d' ' -f1)"
|
||||||
|
[ ! -f "$CACHE" ] && ffmpegthumbnailer -i "$1" -o "$CACHE" -s 0
|
||||||
|
image "$CACHE" "$2" "$3" "$4" "$5" "$1"
|
||||||
|
;;
|
||||||
|
*/pdf)
|
||||||
|
CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/lf/thumb.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | cut -d' ' -f1)"
|
||||||
|
[ ! -f "$CACHE.jpg" ] && pdftoppm -jpeg -f 1 -singlefile "$1" "$CACHE"
|
||||||
|
image "$CACHE.jpg" "$2" "$3" "$4" "$5" "$1"
|
||||||
|
;;
|
||||||
|
*/epub+zip|*/mobi*)
|
||||||
|
CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/lf/thumb.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | cut -d' ' -f1)"
|
||||||
|
[ ! -f "$CACHE.jpg" ] && gnome-epub-thumbnailer "$1" "$CACHE.jpg"
|
||||||
|
image "$CACHE.jpg" "$2" "$3" "$4" "$5" "$1"
|
||||||
|
;;
|
||||||
|
application/*zip) atool --list -- "$1" ;;
|
||||||
|
*opendocument*) odt2txt "$1" ;;
|
||||||
|
application/pgp-encrypted) gpg -d -- "$1" ;;
|
||||||
|
esac
|
||||||
|
exit 1
|
9
homes/common/media-tools.nix
Normal file
9
homes/common/media-tools.nix
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
imagemagick
|
||||||
|
libheif
|
||||||
|
ffmpeg
|
||||||
|
];
|
||||||
|
}
|
7
homes/common/python.nix
Normal file
7
homes/common/python.nix
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
python312Full
|
||||||
|
];
|
||||||
|
}
|
15
homes/common/rust.nix
Normal file
15
homes/common/rust.nix
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
rustup
|
||||||
|
];
|
||||||
|
|
||||||
|
home = {
|
||||||
|
sessionVariables = {
|
||||||
|
CARGO_HOME = "${config.xdg.dataHome}/cargo";
|
||||||
|
RUSTUP_HOME = "${config.xdg.dataHome}/rustup";
|
||||||
|
};
|
||||||
|
sessionPath = [ "${config.home.sessionVariables.CARGO_HOME}/bin" ];
|
||||||
|
};
|
||||||
|
}
|
37
homes/common/shell.nix
Normal file
37
homes/common/shell.nix
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
{
|
||||||
|
home = {
|
||||||
|
shellAliases = {
|
||||||
|
cp = "cp -iv";
|
||||||
|
mv = "mv -iv";
|
||||||
|
rm = "rm -vI";
|
||||||
|
mkd = "mkdir -pv";
|
||||||
|
c = "clear";
|
||||||
|
e = "exit";
|
||||||
|
|
||||||
|
v = "nvim";
|
||||||
|
vi = "nvim";
|
||||||
|
ka = "killall";
|
||||||
|
nf = "neofetch";
|
||||||
|
tf = "pridefetch -f trans";
|
||||||
|
pf = "pfetch";
|
||||||
|
i = "inertia";
|
||||||
|
|
||||||
|
mac-system-update = "nix flake update $NIXFILES && darwin-rebuild switch --flake $NIXFILES";
|
||||||
|
|
||||||
|
btop = "btop --utf-force";
|
||||||
|
grep = "grep --color=auto";
|
||||||
|
diff = "diff --color=auto";
|
||||||
|
};
|
||||||
|
|
||||||
|
sessionVariables = {
|
||||||
|
LANG = "en_GB.UTF-8";
|
||||||
|
LC_ALL = "en_GB.UTF-8";
|
||||||
|
|
||||||
|
NIXFILES = "$HOME/Documents/Code/NixFiles";
|
||||||
|
};
|
||||||
|
|
||||||
|
sessionPath = [
|
||||||
|
"$HOME/.local/bin"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
18
homes/common/ssh/default.nix
Normal file
18
homes/common/ssh/default.nix
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
programs.ssh = {
|
||||||
|
enable = true;
|
||||||
|
matchBlocks = {
|
||||||
|
jet = {
|
||||||
|
identityFile = "~/.ssh/id_ed25519_sk";
|
||||||
|
hostname = "jet.echo.clicks.domains";
|
||||||
|
user = "maddie";
|
||||||
|
};
|
||||||
|
clicks = {
|
||||||
|
identityFile = "~/.ssh/clickscodes";
|
||||||
|
hostname = "git.clicks.codes";
|
||||||
|
port = 29418;
|
||||||
|
user = "maddie";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
3
homes/common/ssh/maddie.pub
Normal file
3
homes/common/ssh/maddie.pub
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIA1jTkcMhBQQoYqNVLofrNnTbB8RCyzSYmdsnPeoOineAAAABHNzaDo= spy@luna (yubikey)
|
||||||
|
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBO9WsQUnglNetqekCoA6WT0wYNxpUVyNxuktPOHJPBCLJmU9P+YErE915vj4HlYcuOW9UhVajQzLQTcelgs/O8w= M.iPad (Termius)
|
||||||
|
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBD44bc9OdsIxwNBkdIN5Ce+Wer2gWi+QRcFdOV7+ScIo1QS29wkQJxU90ItcKwqiv+oTBlipV2NSH/YroBSHhQI= M.iPad (Secure ShellFish)
|
68
homes/common/starship.nix
Normal file
68
homes/common/starship.nix
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
{ lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.starship = {
|
||||||
|
enable = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
format = lib.concatStrings [
|
||||||
|
"$directory"
|
||||||
|
|
||||||
|
"$git_branch"
|
||||||
|
"$git_commit"
|
||||||
|
"$git_state"
|
||||||
|
"$git_metrics"
|
||||||
|
"$git_status"
|
||||||
|
"$hg_branch"
|
||||||
|
|
||||||
|
"$package"
|
||||||
|
"$c"
|
||||||
|
"$rust"
|
||||||
|
"$golang"
|
||||||
|
"$haskell"
|
||||||
|
"$python"
|
||||||
|
"$java"
|
||||||
|
"$kotlin"
|
||||||
|
"$lua"
|
||||||
|
"$dart"
|
||||||
|
"$nim"
|
||||||
|
"$nodejs"
|
||||||
|
"$swift"
|
||||||
|
"$zig"
|
||||||
|
"$nix_shell"
|
||||||
|
"$conda"
|
||||||
|
"$spack"
|
||||||
|
|
||||||
|
"$line_break"
|
||||||
|
"$username"
|
||||||
|
"$hostname"
|
||||||
|
"$localip"
|
||||||
|
"$cmd_duration"
|
||||||
|
"$memory_usage"
|
||||||
|
"$jobs"
|
||||||
|
"$character"
|
||||||
|
];
|
||||||
|
|
||||||
|
character = {
|
||||||
|
success_symbol = "-> [λ](bold purple)";
|
||||||
|
error_symbol = "-> [λ](bold red)";
|
||||||
|
vimcmd_symbol = "-> [λ](bold green)";
|
||||||
|
};
|
||||||
|
|
||||||
|
directory.truncation_symbol = ".../";
|
||||||
|
|
||||||
|
git_metrics.disabled = false;
|
||||||
|
git_status = {
|
||||||
|
ahead = "->";
|
||||||
|
behind = "<-";
|
||||||
|
diverged = "<->";
|
||||||
|
renamed = ">>";
|
||||||
|
deleted = "x";
|
||||||
|
};
|
||||||
|
|
||||||
|
memory_usage.disabled = false;
|
||||||
|
localip.disabled = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
8
homes/common/tmux.nix
Normal file
8
homes/common/tmux.nix
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
programs.tmux = {
|
||||||
|
enable = true;
|
||||||
|
clock24 = true;
|
||||||
|
mouse = true;
|
||||||
|
terminal = "screen-256color";
|
||||||
|
};
|
||||||
|
}
|
19
homes/common/wezterm.nix
Normal file
19
homes/common/wezterm.nix
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
programs.wezterm = {
|
||||||
|
enable = true;
|
||||||
|
extraConfig = ''
|
||||||
|
return {
|
||||||
|
front_end = 'WebGpu',
|
||||||
|
color_scheme = 'OneDark (base16)',
|
||||||
|
hide_tab_bar_if_only_one_tab = true,
|
||||||
|
window_close_confirmation = 'NeverPrompt',
|
||||||
|
window_padding = {
|
||||||
|
left = 0,
|
||||||
|
right = 0,
|
||||||
|
top = 0,
|
||||||
|
bottom = 0,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
17
homes/common/xdg.nix
Normal file
17
homes/common/xdg.nix
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{ config, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home = {
|
||||||
|
sessionVariables = {
|
||||||
|
CUDA_CACHE_PATH = "${config.xdg.cacheHome}/nv";
|
||||||
|
LESSHISTFILE = "${config.xdg.configHome}/less/history";
|
||||||
|
LESSKEY = "${config.xdg.configHome}/less/keys";
|
||||||
|
WINEPREFIX = "${config.xdg.dataHome}/wine";
|
||||||
|
_JAVA_OPTIONS = "-Djava.util.prefs.userRoot=${config.xdg.configHome}/java";
|
||||||
|
};
|
||||||
|
|
||||||
|
shellAliases = {
|
||||||
|
wget = "wget --hsts-file='${config.xdg.dataHome}/wget-hsts'";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
46
homes/common/zsh.nix
Normal file
46
homes/common/zsh.nix
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
{ config, lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.zsh = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
autosuggestion.enable = true;
|
||||||
|
enableCompletion = true;
|
||||||
|
syntaxHighlighting.enable = true;
|
||||||
|
autocd = true;
|
||||||
|
dotDir = ".config/zsh";
|
||||||
|
history = {
|
||||||
|
size = 9999999;
|
||||||
|
expireDuplicatesFirst = true;
|
||||||
|
extended = true;
|
||||||
|
path = "${config.xdg.cacheHome}/zsh/history";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Zsh init extras
|
||||||
|
initExtra = ''
|
||||||
|
# Disable Ctrl-S to freeze terminal
|
||||||
|
stty stop undef
|
||||||
|
|
||||||
|
# Tab completion
|
||||||
|
zstyle ':completion:*' menu select # Use a menu
|
||||||
|
_comp_options+=(globdots) # Include hidden files
|
||||||
|
|
||||||
|
# Change cursor shape for different vi modes
|
||||||
|
export KEYTIMEOUT=1
|
||||||
|
function zle-keymap-select () {
|
||||||
|
case $KEYMAP in
|
||||||
|
vicmd) echo -ne '\e[1 q';; # block
|
||||||
|
viins|main) echo -ne '\e[5 q';; # beam
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
zle -N zle-keymap-select
|
||||||
|
zle-line-init() {
|
||||||
|
zle -K viins # initiate `vi insert` as keymap (can be removed if `bindkey -V` has been set elsewhere)
|
||||||
|
echo -ne "\e[5 q"
|
||||||
|
}
|
||||||
|
zle -N zle-line-init
|
||||||
|
echo -ne '\e[5 q' # Use beam shape cursor on startup.
|
||||||
|
preexec() { echo -ne '\e[5 q' ;} # Use beam shape cursor for each new prompt.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
31
homes/desktop/alacritty.nix
Normal file
31
homes/desktop/alacritty.nix
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
programs.alacritty = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
window = {
|
||||||
|
decorations = "none";
|
||||||
|
dynamic_padding = true;
|
||||||
|
padding = {
|
||||||
|
x = 0;
|
||||||
|
y = 0;
|
||||||
|
};
|
||||||
|
startup_mode = "Maximized";
|
||||||
|
};
|
||||||
|
|
||||||
|
font = {
|
||||||
|
normal.family = "IosevkaNerdFont";
|
||||||
|
bold.family = "IosevkaNerdFont";
|
||||||
|
italic.family = "IosevkaNerdFont";
|
||||||
|
size = 12;
|
||||||
|
};
|
||||||
|
scrolling.history = 10000;
|
||||||
|
|
||||||
|
colors.draw_bold_text_with_bright_colors = true;
|
||||||
|
window.opacity = 0.9;
|
||||||
|
|
||||||
|
import = [
|
||||||
|
./alacritty/onedark.toml
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
29
homes/desktop/alacritty/onedark.toml
Normal file
29
homes/desktop/alacritty/onedark.toml
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
# Colors (One Dark)
|
||||||
|
|
||||||
|
# Default colors
|
||||||
|
[colors.primary]
|
||||||
|
background = '#1e2127'
|
||||||
|
foreground = '#abb2bf'
|
||||||
|
|
||||||
|
# Normal colors
|
||||||
|
[colors.normal]
|
||||||
|
black = '#1e2127'
|
||||||
|
red = '#e06c75'
|
||||||
|
green = '#98c379'
|
||||||
|
yellow = '#d19a66'
|
||||||
|
blue = '#61afef'
|
||||||
|
magenta = '#c678dd'
|
||||||
|
cyan = '#56b6c2'
|
||||||
|
white = '#abb2bf'
|
||||||
|
|
||||||
|
# Bright colors
|
||||||
|
[colors.bright]
|
||||||
|
black = '#5c6370'
|
||||||
|
red = '#e06c75'
|
||||||
|
green = '#98c379'
|
||||||
|
yellow = '#d19a66'
|
||||||
|
blue = '#61afef'
|
||||||
|
magenta = '#c678dd'
|
||||||
|
cyan = '#56b6c2'
|
||||||
|
white = '#ffffff'
|
||||||
|
|
63
homes/desktop/anyrun.nix
Normal file
63
homes/desktop/anyrun.nix
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
{ inputs, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.anyrun = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
config = {
|
||||||
|
plugins = with inputs.anyrun.packages.${pkgs.stdenv.hostPlatform.system}; [
|
||||||
|
applications
|
||||||
|
rink
|
||||||
|
shell
|
||||||
|
translate
|
||||||
|
kidex
|
||||||
|
symbols
|
||||||
|
];
|
||||||
|
|
||||||
|
x = { fraction = 0.5; };
|
||||||
|
y = { fraction = 0.3; };
|
||||||
|
width = { fraction = 0.3; };
|
||||||
|
closeOnClick = true;
|
||||||
|
|
||||||
|
};
|
||||||
|
extraCss = ''
|
||||||
|
#window {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
#main * {
|
||||||
|
background-color: #282c34;
|
||||||
|
color: #ABB2BF;
|
||||||
|
caret-color: alpha(#ABB2BF,0.6);
|
||||||
|
font-family: FontAwesome, Inter;
|
||||||
|
}
|
||||||
|
#main {
|
||||||
|
border-width: 3px;
|
||||||
|
border-style: solid;
|
||||||
|
border-color: #ABB2BF;
|
||||||
|
border-radius: 0px;
|
||||||
|
}
|
||||||
|
#main #main {
|
||||||
|
border-style: none;
|
||||||
|
border-bottom-left-radius: 5px;
|
||||||
|
border-bottom-right-radius: 5px;
|
||||||
|
}
|
||||||
|
#match-title, #match-desc {
|
||||||
|
font-family: FontAwesome, Inter;
|
||||||
|
}
|
||||||
|
#entry {
|
||||||
|
min-height: 25px;
|
||||||
|
padding: 10px;
|
||||||
|
font-size: 20px;
|
||||||
|
box-shadow: none;
|
||||||
|
border-style: none;
|
||||||
|
}
|
||||||
|
#entry:focus {
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
#entry selection {
|
||||||
|
background-color: alpha(#E5C07B,0.3);
|
||||||
|
color: transparent;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
10
homes/desktop/audio.nix
Normal file
10
homes/desktop/audio.nix
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
pulsemixer # TUI sound mixer
|
||||||
|
playerctl # Manages media players
|
||||||
|
pamixer # CLI sound mixer
|
||||||
|
cava # Music visualiser
|
||||||
|
];
|
||||||
|
}
|
27
homes/desktop/chromium.nix
Normal file
27
homes/desktop/chromium.nix
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
programs.chromium = {
|
||||||
|
enable = true;
|
||||||
|
commandLineArgs = [
|
||||||
|
"--enable-logging=stderr"
|
||||||
|
"--ignore-gpu-blocklist"
|
||||||
|
];
|
||||||
|
extensions = [
|
||||||
|
# Dark Reader
|
||||||
|
{ id = "eimadpbcbfnmbkopoojfekhnkhdbieeh"; }
|
||||||
|
# uBlock Origin
|
||||||
|
{ id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; }
|
||||||
|
# I still don't care about cookies
|
||||||
|
{ id = "edibdbjcniadpccecjdfdjjppcpchdlm"; }
|
||||||
|
# NoScript
|
||||||
|
{ id = "doojmbjmlfjjnbmnoijecmcbfeoakpjm"; }
|
||||||
|
# Reddit Enhancement Suite
|
||||||
|
{ id = "kbmfpngjjgdllneeigpgjifpgocmfgmb"; }
|
||||||
|
# Old Reddit Redirect
|
||||||
|
{ id = "dneaehbmnbhcippjikoajpoabadpodje"; }
|
||||||
|
# Return Youtube Dislike
|
||||||
|
{ id = "gebbhagfogifgggkldgodflihgfeippi"; }
|
||||||
|
# Vimium
|
||||||
|
{ id = "dbepggeogbaibhgnhhndojpepiihcmeb"; }
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
7
homes/desktop/cider.nix
Normal file
7
homes/desktop/cider.nix
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
cider
|
||||||
|
];
|
||||||
|
}
|
10
homes/desktop/cursor.nix
Normal file
10
homes/desktop/cursor.nix
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.pointerCursor = {
|
||||||
|
name = "macOS";
|
||||||
|
package = pkgs.apple-cursor;
|
||||||
|
size = 24;
|
||||||
|
gtk.enable = true;
|
||||||
|
};
|
||||||
|
}
|
7
homes/desktop/discord.nix
Normal file
7
homes/desktop/discord.nix
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
discord-canary
|
||||||
|
];
|
||||||
|
}
|
7
homes/desktop/dmenu.nix
Normal file
7
homes/desktop/dmenu.nix
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
dmenu
|
||||||
|
];
|
||||||
|
}
|
7
homes/desktop/element.nix
Normal file
7
homes/desktop/element.nix
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
element-desktop
|
||||||
|
];
|
||||||
|
}
|
7
homes/desktop/games.nix
Normal file
7
homes/desktop/games.nix
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
gzdoom
|
||||||
|
];
|
||||||
|
}
|
35
homes/desktop/gtk.nix
Normal file
35
homes/desktop/gtk.nix
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
gtk = {
|
||||||
|
enable = true;
|
||||||
|
font = {
|
||||||
|
package = pkgs.inter;
|
||||||
|
name = "Inter";
|
||||||
|
size = 11;
|
||||||
|
};
|
||||||
|
theme = {
|
||||||
|
package = pkgs.adwaita-icon-theme;
|
||||||
|
name = "Adwaita-dark";
|
||||||
|
};
|
||||||
|
iconTheme = {
|
||||||
|
name = "Adwaita-dark";
|
||||||
|
package = pkgs.gnome-themes-extra;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
qt = {
|
||||||
|
enable = true;
|
||||||
|
platformTheme.name = "adwaita";
|
||||||
|
style.name = "adwaita-dark";
|
||||||
|
};
|
||||||
|
|
||||||
|
dconf = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
"org/gnome/desktop/interface" = {
|
||||||
|
color-scheme = "prefer-dark";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
10
homes/desktop/home.nix
Normal file
10
homes/desktop/home.nix
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{ username, lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.home-manager.enable = true;
|
||||||
|
home = {
|
||||||
|
inherit username;
|
||||||
|
homeDirectory = lib.mkForce "/home/${username}";
|
||||||
|
stateVersion = "24.11";
|
||||||
|
};
|
||||||
|
}
|
193
homes/desktop/hyprland.nix
Normal file
193
homes/desktop/hyprland.nix
Normal file
@ -0,0 +1,193 @@
|
|||||||
|
{ inputs, pkgs, config, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
wayland.windowManager.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
||||||
|
|
||||||
|
xwayland.enable = true;
|
||||||
|
|
||||||
|
settings =
|
||||||
|
let
|
||||||
|
mod = "SUPER";
|
||||||
|
terminal = "${pkgs.alacritty}/bin/alacritty";
|
||||||
|
launcher = "${inputs.anyrun.packages.${pkgs.stdenv.hostPlatform.system}.anyrun}/bin/anyrun";
|
||||||
|
browser = "${pkgs.librewolf}/bin/librewolf";
|
||||||
|
lock = "${pkgs.hyprlock}/bin/hyprlock --immediate";
|
||||||
|
zoom = "${inputs.woomer.packages.${pkgs.stdenv.hostPlatform.system}.default}/bin/woomer";
|
||||||
|
screenshot = "${pkgs.grim}/bin/grim -g \"$(${pkgs.slurp}/bin/slurp -d)\" - | ${pkgs.wl-clipboard}/bin/wl-copy";
|
||||||
|
system_search = "${terminal} --class systemSearch --title \"System Search\" -e \"zsh nvim $(find $HOME/* -type f | fzf)\"";
|
||||||
|
clipboard_history = "${terminal} --class clipse --title \"Clipboard History\" -e ${pkgs.clipse}/bin/clipse";
|
||||||
|
powermenu = "${pkgs.wlogout}/bin/wlogout";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
general = {
|
||||||
|
"col.active_border" = "rgba(313439ee) rgba(313439ee) 0deg";
|
||||||
|
"col.inactive_border" = "rbga(121317ee) rgba(313439ee) 0deg";
|
||||||
|
};
|
||||||
|
|
||||||
|
exec-once = [
|
||||||
|
"sleep 0.5 && systemctl --user restart xdg-desktop-portal-gtk xdg-desktop-portal-hyprland xdg-desktop-portal pipewire wireplumber"
|
||||||
|
"${pkgs.hyprpaper}/bin/hyprpaper"
|
||||||
|
"${pkgs.waybar}/bin/waybar"
|
||||||
|
"${config.wayland.windowManager.hyprland.package}/bin/hyprctl setcursor macOS 24"
|
||||||
|
"${pkgs.clipse}/bin/clipse -listen"
|
||||||
|
];
|
||||||
|
|
||||||
|
input = {
|
||||||
|
kb_layout = "gb";
|
||||||
|
sensitivity = 0.6;
|
||||||
|
};
|
||||||
|
|
||||||
|
animations = {
|
||||||
|
enabled = true;
|
||||||
|
bezier = "myBezier, 0.645, 0.045, 0.355, 1";
|
||||||
|
|
||||||
|
animation = [
|
||||||
|
"windows, 1, 4, myBezier"
|
||||||
|
"windowsOut, 1, 4, myBezier"
|
||||||
|
"border, 1, 4, default"
|
||||||
|
"fade, 1, 4, default"
|
||||||
|
"workspaces, 1, 4, myBezier"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
general = {
|
||||||
|
gaps_in = 5;
|
||||||
|
gaps_out = 10;
|
||||||
|
border_size = 3;
|
||||||
|
layout = "master";
|
||||||
|
};
|
||||||
|
|
||||||
|
misc = {
|
||||||
|
disable_hyprland_logo = true;
|
||||||
|
disable_splash_rendering = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
windowrulev2 = [
|
||||||
|
"opacity 0.8 0.8,initialTitle:^(wezterm)$"
|
||||||
|
"opacity 0.8 0.8,initialTitle:^(Alacritty)$"
|
||||||
|
"suppressevent maximize, class:.*"
|
||||||
|
"float, class:(clipse)"
|
||||||
|
"size 622 652, class:(clipse)"
|
||||||
|
"float, class:(systemSearch)"
|
||||||
|
"size 622 652, class:(systemSearch)"
|
||||||
|
];
|
||||||
|
|
||||||
|
layerrule = [
|
||||||
|
"blur,waybar"
|
||||||
|
];
|
||||||
|
|
||||||
|
decoration = {
|
||||||
|
rounding = 0;
|
||||||
|
drop_shadow = true;
|
||||||
|
shadow_range = 8;
|
||||||
|
shadow_offset = "0, 0";
|
||||||
|
active_opacity = 1;
|
||||||
|
inactive_opacity = 1;
|
||||||
|
fullscreen_opacity = 1;
|
||||||
|
blur = {
|
||||||
|
size = 8;
|
||||||
|
passes = 2;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
master = {
|
||||||
|
mfact = 0.5;
|
||||||
|
};
|
||||||
|
|
||||||
|
cursor = {
|
||||||
|
no_hardware_cursors = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
monitor = [ "DP-1, 2560x1440@144, 0x0, 1" ];
|
||||||
|
|
||||||
|
env = [
|
||||||
|
"LIBVA_DRIVER_NAME,nvidia"
|
||||||
|
"XDG_SESSION_TYPE,wayland"
|
||||||
|
"XDG_CURRENT_DESKTOP,Hyprland"
|
||||||
|
"GBM_BACKEND,nvidia-drm"
|
||||||
|
"__GLX_VENDOR_LIBRARY_NAME,nvidia"
|
||||||
|
"ELECTRON_OZONE_PLATFORM_HINT,auto"
|
||||||
|
"WLR_NO_HARDWARE_CURSORS,1"
|
||||||
|
"NIXOS_OZONE_WL,1"
|
||||||
|
];
|
||||||
|
|
||||||
|
# Keybinds
|
||||||
|
bind = [
|
||||||
|
"${mod}, Q, killactive"
|
||||||
|
"${mod}, F, togglefloating"
|
||||||
|
"${mod} SHIFT, R, forcerendererreload"
|
||||||
|
"${mod} SHIFT, E, exit"
|
||||||
|
"${mod}, M, fullscreen, 0"
|
||||||
|
"${mod}, P, pin"
|
||||||
|
"${mod} SHIFT, M, fullscreen, 1"
|
||||||
|
|
||||||
|
# Screenshot
|
||||||
|
"${mod} SHIFT, S, exec, ${screenshot}"
|
||||||
|
", Print, exec, ${screenshot}"
|
||||||
|
|
||||||
|
# Programs
|
||||||
|
"${mod}, RETURN, exec, ${terminal}"
|
||||||
|
"${mod} SHIFT, RETURN, bringactivetotop"
|
||||||
|
"${mod}, SPACE, exec, ${launcher}"
|
||||||
|
"${mod}, D, exec, ${launcher}"
|
||||||
|
"${mod}, B, exec, ${browser}"
|
||||||
|
"${mod}, Z, exec, ${zoom}"
|
||||||
|
"${mod}, X, exec, ${powermenu}"
|
||||||
|
", Insert, exec, ${lock}"
|
||||||
|
|
||||||
|
# Function Keys
|
||||||
|
"${mod}, F2, exec, ${clipboard_history}"
|
||||||
|
"${mod}, F3, exec, ${system_search}"
|
||||||
|
|
||||||
|
# Move focus
|
||||||
|
"${mod}, h, movefocus, l"
|
||||||
|
"${mod}, j, movefocus, d"
|
||||||
|
"${mod}, k, movefocus, u"
|
||||||
|
"${mod}, l, movefocus, r"
|
||||||
|
|
||||||
|
# Moving windows
|
||||||
|
"${mod} SHIFT, h, movewindow, l"
|
||||||
|
"${mod} SHIFT, j, movewindow, d"
|
||||||
|
"${mod} SHIFT, k, movewindow, u"
|
||||||
|
"${mod} SHIFT, l, movewindow, r"
|
||||||
|
|
||||||
|
# Workspaces
|
||||||
|
"${mod}, 1, workspace, 1"
|
||||||
|
"${mod}, 2, workspace, 2"
|
||||||
|
"${mod}, 3, workspace, 3"
|
||||||
|
"${mod}, 4, workspace, 4"
|
||||||
|
"${mod}, 5, workspace, 5"
|
||||||
|
"${mod}, 6, workspace, 6"
|
||||||
|
"${mod}, 7, workspace, 7"
|
||||||
|
"${mod}, 8, workspace, 8"
|
||||||
|
"${mod}, 9, workspace, 9"
|
||||||
|
"${mod}, 0, workspace, 10"
|
||||||
|
|
||||||
|
"${mod} SHIFT, 1, movetoworkspacesilent, 1"
|
||||||
|
"${mod} SHIFT, 2, movetoworkspacesilent, 2"
|
||||||
|
"${mod} SHIFT, 3, movetoworkspacesilent, 3"
|
||||||
|
"${mod} SHIFT, 4, movetoworkspacesilent, 4"
|
||||||
|
"${mod} SHIFT, 5, movetoworkspacesilent, 5"
|
||||||
|
"${mod} SHIFT, 6, movetoworkspacesilent, 6"
|
||||||
|
"${mod} SHIFT, 7, movetoworkspacesilent, 7"
|
||||||
|
"${mod} SHIFT, 8, movetoworkspacesilent, 8"
|
||||||
|
"${mod} SHIFT, 9, movetoworkspacesilent, 9"
|
||||||
|
"${mod} SHIFT, 0, movetoworkspacesilent, 10"
|
||||||
|
|
||||||
|
"${mod}, mouse_right, workspace, e-1"
|
||||||
|
"${mod}, mouse_left, workspace, e+1"
|
||||||
|
];
|
||||||
|
|
||||||
|
bindm = [
|
||||||
|
"${mod}, mouse:272, movewindow"
|
||||||
|
"${mod}, mouse:273, resizewindow"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
wl-clipboard
|
||||||
|
];
|
||||||
|
}
|
39
homes/desktop/hyprlock.nix
Normal file
39
homes/desktop/hyprlock.nix
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
{
|
||||||
|
programs.hyprlock = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
general = {
|
||||||
|
disable_loading_bar = true;
|
||||||
|
grace = 300;
|
||||||
|
hide_cursor = true;
|
||||||
|
no_fade_in = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
background = [
|
||||||
|
{
|
||||||
|
path = "/home/maddie/Code/NixFiles/homes/desktop/hyprpaper/nasa-img-09-13.png";
|
||||||
|
blur_passes = 3;
|
||||||
|
blur_size = 8;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
input-field = [
|
||||||
|
{
|
||||||
|
placeholder_text = "";
|
||||||
|
size = "300, 70";
|
||||||
|
rounding = -1;
|
||||||
|
position = "0, 0";
|
||||||
|
monitor = "";
|
||||||
|
dots_center = true;
|
||||||
|
fade_on_empty = false;
|
||||||
|
font_color = "#ffffff";
|
||||||
|
fail_color = "#e06c75";
|
||||||
|
inner_color = "#1e2127";
|
||||||
|
outer_color = "#5c6370";
|
||||||
|
outline_thickness = 3;
|
||||||
|
shadow_passes = 0;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
10
homes/desktop/hyprpaper.nix
Normal file
10
homes/desktop/hyprpaper.nix
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
services.hyprpaper = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
preload = [ "/home/maddie/Code/NixFiles/homes/desktop/hyprpaper/nasa-img-09-13.png" ];
|
||||||
|
wallpaper = [ ",/home/maddie/Code/NixFiles/homes/desktop/hyprpaper/nasa-img-09-13.png" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
BIN
homes/desktop/hyprpaper/nasa-img-09-13.png
Normal file
BIN
homes/desktop/hyprpaper/nasa-img-09-13.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 28 MiB |
3
homes/desktop/kdeconnect.nix
Normal file
3
homes/desktop/kdeconnect.nix
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
services.kdeconnect.enable = true;
|
||||||
|
}
|
12
homes/desktop/kitty.nix
Normal file
12
homes/desktop/kitty.nix
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
programs.kitty = {
|
||||||
|
enable = true;
|
||||||
|
font.name = "JetBrains Mono Nerd Font";
|
||||||
|
font.size = 12;
|
||||||
|
theme = "One Half Dark";
|
||||||
|
shellIntegration.enableZshIntegration = true;
|
||||||
|
settings = {
|
||||||
|
confirm_os_window_close = -1;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
10
homes/desktop/librewolf.nix
Normal file
10
homes/desktop/librewolf.nix
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
programs.librewolf = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
"browser.uidensity" = 1;
|
||||||
|
"webgl.disabled" = false;
|
||||||
|
"privacy.resistFingerprinting" = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
7
homes/desktop/minecraft.nix
Normal file
7
homes/desktop/minecraft.nix
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
prismlauncher
|
||||||
|
];
|
||||||
|
}
|
8
homes/desktop/mpv.nix
Normal file
8
homes/desktop/mpv.nix
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
programs.mpv = {
|
||||||
|
enable = true;
|
||||||
|
config = {
|
||||||
|
loop-file = "inf";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
7
homes/desktop/ncdu.nix
Normal file
7
homes/desktop/ncdu.nix
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
ncdu_2
|
||||||
|
];
|
||||||
|
}
|
8
homes/desktop/steam.nix
Normal file
8
homes/desktop/steam.nix
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
steam
|
||||||
|
steam-run
|
||||||
|
];
|
||||||
|
}
|
7
homes/desktop/syncplay.nix
Normal file
7
homes/desktop/syncplay.nix
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
syncplay
|
||||||
|
];
|
||||||
|
}
|
8
homes/desktop/terminals.nix
Normal file
8
homes/desktop/terminals.nix
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
cool-retro-term # Retro-style terminal
|
||||||
|
st # Suckless terminal
|
||||||
|
];
|
||||||
|
}
|
7
homes/desktop/tor-browser.nix
Normal file
7
homes/desktop/tor-browser.nix
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
tor-browser-bundle-bin
|
||||||
|
];
|
||||||
|
}
|
7
homes/desktop/uxplay.nix
Normal file
7
homes/desktop/uxplay.nix
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
uxplay
|
||||||
|
];
|
||||||
|
}
|
136
homes/desktop/waybar.nix
Normal file
136
homes/desktop/waybar.nix
Normal file
@ -0,0 +1,136 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.waybar = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
mainBar = {
|
||||||
|
layer = "top";
|
||||||
|
position = "top";
|
||||||
|
#margin = "10 10 0 10";
|
||||||
|
margin = "0 0 0 0";
|
||||||
|
modules-left = [ "hyprland/workspaces" "hyprland/window" ];
|
||||||
|
modules-center = [ ];
|
||||||
|
modules-right = [ "privacy" "tray" "pulseaudio" "temperature" "custom/mem" "cpu" "disk" "network" "clock" ];
|
||||||
|
"hyprland/window" = {
|
||||||
|
"icon" = true;
|
||||||
|
};
|
||||||
|
"tray" = {
|
||||||
|
"icon-size" = 21;
|
||||||
|
"spacing" = 10;
|
||||||
|
};
|
||||||
|
disk = {
|
||||||
|
"interval" = 30;
|
||||||
|
"format" = " {specific_used:0.1f}/{specific_total:0.1f} GB";
|
||||||
|
"path" = "/";
|
||||||
|
unit = "GB";
|
||||||
|
};
|
||||||
|
temperature = {
|
||||||
|
thermal-zone = 2;
|
||||||
|
critical-threshold = 80;
|
||||||
|
format = " {temperatureC}°C";
|
||||||
|
};
|
||||||
|
privacy = {
|
||||||
|
"icon-size" = 17;
|
||||||
|
"transition-duration" = 250;
|
||||||
|
"modules" = [
|
||||||
|
{
|
||||||
|
"type" = "screenshare";
|
||||||
|
"tooltip" = true;
|
||||||
|
"tooltip-icon-size" = 24;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"type" = "audio-in";
|
||||||
|
"tooltip" = true;
|
||||||
|
"tooltip-icon-size" = 24;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
network = {
|
||||||
|
"interface" = "eno1";
|
||||||
|
"format" = "{ifname}: Connecting";
|
||||||
|
"format-ethernet" = " {ipaddr}";
|
||||||
|
"format-disconnected" = "{ifname}: Disconnected";
|
||||||
|
"tooltip-format" = "{ifname} via {gwaddr} ";
|
||||||
|
"tooltip-format-wifi" = "{essid} ({signalStrength}%) ";
|
||||||
|
"tooltip-format-ethernet" = "{ifname} ";
|
||||||
|
"tooltip-format-disconnected" = "Disconnected";
|
||||||
|
"max-length" = 50;
|
||||||
|
};
|
||||||
|
clock = {
|
||||||
|
"interval" = 1;
|
||||||
|
"format" = " {:%T}";
|
||||||
|
"format-alt" = " {:%a %d %b %Y, %T}";
|
||||||
|
"tooltip-format" = "<tt><small>{calendar}</small></tt>";
|
||||||
|
"calendar" = {
|
||||||
|
"mode" = "year";
|
||||||
|
"mode-mon-col" = 3;
|
||||||
|
"weeks-pos" = "right";
|
||||||
|
"on-scroll" = 1;
|
||||||
|
"format" = {
|
||||||
|
"months" = "<span color='#ffead3'><b>{}</b></span>";
|
||||||
|
"days" = "<span color='#ecc6d9'><b>{}</b></span>";
|
||||||
|
"weeks" = "<span color='#99ffdd'><b>W{}</b></span>";
|
||||||
|
"weekdays" = "<span color='#ffcc66'><b>{}</b></span>";
|
||||||
|
"today" = "<span color='#ff6699'><b><u>{}</u></b></span>";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"actions" = {
|
||||||
|
"on-click-right" = "mode";
|
||||||
|
"on-scroll-up" = "shift_up";
|
||||||
|
"on-scroll-down" = "shift_down";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
pulseaudio = {
|
||||||
|
"scroll-step" = 1;
|
||||||
|
"reverse-scrolling" = 1;
|
||||||
|
"format" = "{icon} {volume}% {format_source}";
|
||||||
|
"format-bluetooth" = "{icon} {volume}% {format_source}";
|
||||||
|
"format-bluetooth-muted" = " {icon} {format_source}";
|
||||||
|
"format-muted" = " {format_source}";
|
||||||
|
"format-source" = " {volume}%";
|
||||||
|
"format-source-muted" = " ";
|
||||||
|
"format-icons" = {
|
||||||
|
"headphone" = " ";
|
||||||
|
"hands-free" = "";
|
||||||
|
"headset" = " ";
|
||||||
|
"phone" = " ";
|
||||||
|
"portable" = " ";
|
||||||
|
"car" = " ";
|
||||||
|
"default" = ["" " " " "];
|
||||||
|
};
|
||||||
|
"on-click" = "${pkgs.pavucontrol}/bin/pavucontrol";
|
||||||
|
"min-length" = 13;
|
||||||
|
};
|
||||||
|
"custom/mem" = {
|
||||||
|
"format" = " {}";
|
||||||
|
"interval" = 5;
|
||||||
|
"exec" = "free -h | awk '/Mem:/{printf $3}'";
|
||||||
|
"tooltip" = false;
|
||||||
|
"min-length" = 6;
|
||||||
|
};
|
||||||
|
cpu = {
|
||||||
|
"interval" = 2;
|
||||||
|
"format" = " {usage}%";
|
||||||
|
"min-length" = 6;
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
/*style = ''
|
||||||
|
@define-color background #282c34;
|
||||||
|
@define-color active #528BFF;
|
||||||
|
@define-color hover #1D2025;
|
||||||
|
@define-color text #ABB2BF;
|
||||||
|
@define-color altText #ABB2BF;
|
||||||
|
@define-color critical #E06C75;
|
||||||
|
@define-color warning #E5C07B;
|
||||||
|
@define-color charging #98C379;
|
||||||
|
'' + builtins.readFile ./waybar/main.css;*/
|
||||||
|
|
||||||
|
style = builtins.readFile ./waybar/main.css;
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
238
homes/desktop/waybar/main.css
Normal file
238
homes/desktop/waybar/main.css
Normal file
@ -0,0 +1,238 @@
|
|||||||
|
* {
|
||||||
|
font-family: Iosevka Nerd Font, JetBrainsMono Nerd Font, sans-serif;
|
||||||
|
font-size: 17px;
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar {
|
||||||
|
background-color: #121317;
|
||||||
|
border-radius: 0px;
|
||||||
|
color: #ffffff;
|
||||||
|
transition-property: background-color;
|
||||||
|
transition-duration: .5s;
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar.hidden {
|
||||||
|
opacity: 0.2;
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
/* Use box-shadow instead of border so the text isn't offset */
|
||||||
|
box-shadow: inset 0 -3px transparent;
|
||||||
|
/* Avoid rounded borders under each button name */
|
||||||
|
border: none;
|
||||||
|
border-radius: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
|
||||||
|
button:hover {
|
||||||
|
background: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Workspaces */
|
||||||
|
#workspaces {
|
||||||
|
margin: 0px 5px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button {
|
||||||
|
border-radius: 0px;
|
||||||
|
padding: 0 5px;
|
||||||
|
background: #121317;
|
||||||
|
color: #D6DEEB;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button:hover {
|
||||||
|
background: #5c6370;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.active {
|
||||||
|
background: #313439;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.urgent {
|
||||||
|
background-color: #e06c75;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#custom-mem,
|
||||||
|
#clock,
|
||||||
|
#battery,
|
||||||
|
#cpu,
|
||||||
|
#memory,
|
||||||
|
#disk,
|
||||||
|
#temperature,
|
||||||
|
#backlight,
|
||||||
|
#network,
|
||||||
|
#pulseaudio,
|
||||||
|
#wireplumber,
|
||||||
|
#custom-media,
|
||||||
|
#tray,
|
||||||
|
#mode,
|
||||||
|
#idle_inhibitor,
|
||||||
|
#scratchpad,
|
||||||
|
#power-profiles-daemon,
|
||||||
|
#mpd {
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
border-radius: 0px;
|
||||||
|
padding: 0 10px;
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* If workspaces is the rightmost module, omit right margin */
|
||||||
|
.modules-right>widget:last-child>#workspaces {
|
||||||
|
margin-right: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#clock {
|
||||||
|
background-color: #D6DEEB;
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
label:focus {
|
||||||
|
background-color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#cpu {
|
||||||
|
background-color: #2ecc71;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#memory {
|
||||||
|
background-color: #d19a66;
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-mem {
|
||||||
|
background-color: #d19a66;
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
#disk {
|
||||||
|
background-color: #c678dd;
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
#network {
|
||||||
|
background-color: #56b6c2;
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
#network.disconnected {
|
||||||
|
background-color: #f53c3c;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio {
|
||||||
|
background-color: #f1c40f;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio.muted {
|
||||||
|
background-color: #90b1b1;
|
||||||
|
color: #2a5c45;
|
||||||
|
}
|
||||||
|
|
||||||
|
#wireplumber {
|
||||||
|
background-color: #fff0f5;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#wireplumber.muted {
|
||||||
|
background-color: #f53c3c;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-media {
|
||||||
|
background-color: #66cc99;
|
||||||
|
color: #2a5c45;
|
||||||
|
min-width: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-media.custom-spotify {
|
||||||
|
background-color: #66cc99;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-media.custom-vlc {
|
||||||
|
background-color: #ffa000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#temperature {
|
||||||
|
background-color: #61afef;
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
#temperature.critical {
|
||||||
|
background-color: #e06c75;
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tray {
|
||||||
|
background-color: #2980b9;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tray>.passive {
|
||||||
|
-gtk-icon-effect: dim;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tray>.needs-attention {
|
||||||
|
-gtk-icon-effect: highlight;
|
||||||
|
background-color: #eb4d4b;
|
||||||
|
}
|
||||||
|
|
||||||
|
#idle_inhibitor {
|
||||||
|
background-color: #2d3436;
|
||||||
|
}
|
||||||
|
|
||||||
|
#idle_inhibitor.activated {
|
||||||
|
background-color: #ecf0f1;
|
||||||
|
color: #2d3436;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mpd {
|
||||||
|
background-color: #66cc99;
|
||||||
|
color: #2a5c45;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mpd.disconnected {
|
||||||
|
background-color: #f53c3c;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mpd.stopped {
|
||||||
|
background-color: #90b1b1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mpd.paused {
|
||||||
|
background-color: #51a37a;
|
||||||
|
}
|
||||||
|
|
||||||
|
#language {
|
||||||
|
background: #00b093;
|
||||||
|
color: #740864;
|
||||||
|
padding: 0 5px;
|
||||||
|
margin: 0 5px;
|
||||||
|
min-width: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#keyboard-state {
|
||||||
|
background: #97e1ad;
|
||||||
|
color: #000000;
|
||||||
|
padding: 0 0px;
|
||||||
|
margin: 0 5px;
|
||||||
|
min-width: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#privacy {
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#privacy-item {
|
||||||
|
padding: 0 5px;
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
#privacy-item.screenshare {
|
||||||
|
background-color: #c678dd;
|
||||||
|
}
|
||||||
|
|
||||||
|
#privacy-item.audio-in {
|
||||||
|
background-color: #d19a66;
|
||||||
|
}
|
8
homes/desktop/wine.nix
Normal file
8
homes/desktop/wine.nix
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
bottles
|
||||||
|
wine
|
||||||
|
];
|
||||||
|
}
|
93
homes/desktop/wlogout.nix
Normal file
93
homes/desktop/wlogout.nix
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.wlogout = {
|
||||||
|
enable = true;
|
||||||
|
layout = [
|
||||||
|
{
|
||||||
|
"label" = "lock";
|
||||||
|
"action" = "loginctl lock-session";
|
||||||
|
"text" = "Lock";
|
||||||
|
"keybind" = "l";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"label" = "shutdown";
|
||||||
|
"action" = "systemctl poweroff";
|
||||||
|
"text" = "Shutdown";
|
||||||
|
"keybind" = "s";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"label" = "logout";
|
||||||
|
"action" = "loginctl terminate-user $USER";
|
||||||
|
"text" = "Logout";
|
||||||
|
"keybind" = "e";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"label" = "hibernate";
|
||||||
|
"action" = "systemctl hibernate";
|
||||||
|
"text" = "Hibernate";
|
||||||
|
"keybind" = "h";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"label" = "suspend";
|
||||||
|
"action" = "systemctl suspend";
|
||||||
|
"text" = "Suspend";
|
||||||
|
"keybind" = "u";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"label" = "reboot";
|
||||||
|
"action" = "systemctl reboot";
|
||||||
|
"text" = "Reboot";
|
||||||
|
"keybind" = "r";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
style = ''
|
||||||
|
* {
|
||||||
|
background-image: none;
|
||||||
|
}
|
||||||
|
window {
|
||||||
|
background-color: rgba(30, 33, 39, 0.8);
|
||||||
|
}
|
||||||
|
button {
|
||||||
|
background-color: #1e2127;
|
||||||
|
border-style: solid;
|
||||||
|
border-width: 0px;
|
||||||
|
border-radius: 0;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: center;
|
||||||
|
background-size: 25%;
|
||||||
|
color: #abb2bf;
|
||||||
|
}
|
||||||
|
|
||||||
|
button:focus, button:active, button:hover {
|
||||||
|
background-color: #abb2bf;
|
||||||
|
color: #1e2127;
|
||||||
|
outline-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#lock {
|
||||||
|
background-image: image(url("${pkgs.wlogout}/share/wlogout/icons/lock.png"), url("${pkgs.wlogout}/local/share/wlogout/icons/lock.png"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#logout {
|
||||||
|
background-image: image(url("${pkgs.wlogout}/share/wlogout/icons/logout.png"), url("${pkgs.wlogout}/local/share/wlogout/icons/logout.png"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#suspend {
|
||||||
|
background-image: image(url("${pkgs.wlogout}/share/wlogout/icons/suspend.png"), url("${pkgs.wlogout}/local/share/wlogout/icons/suspend.png"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#hibernate {
|
||||||
|
background-image: image(url("${pkgs.wlogout}/share/wlogout/icons/hibernate.png"), url("${pkgs.wlogout}/local/share/wlogout/icons/hibernate.png"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#shutdown {
|
||||||
|
background-image: image(url("${pkgs.wlogout}/share/wlogout/icons/shutdown.png"), url("${pkgs.wlogout}/local/share/wlogout/icons/shutdown.png"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#reboot {
|
||||||
|
background-image: image(url("${pkgs.wlogout}/share/wlogout/icons/reboot.png"), url("${pkgs.wlogout}/local/share/wlogout/icons/reboot.png"));
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
59
homes/desktop/xdg.nix
Normal file
59
homes/desktop/xdg.nix
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
xdg-utils
|
||||||
|
xdg-user-dirs
|
||||||
|
];
|
||||||
|
|
||||||
|
xdg = {
|
||||||
|
enable = true;
|
||||||
|
userDirs.enable = true;
|
||||||
|
desktopEntries = {
|
||||||
|
"browser" = {
|
||||||
|
name = "Web Browser";
|
||||||
|
type = "Application";
|
||||||
|
exec = "${pkgs.librewolf}/bin/librewolf %f";
|
||||||
|
};
|
||||||
|
"image" = {
|
||||||
|
name = "Image Viewer";
|
||||||
|
type = "Application";
|
||||||
|
exec = "${pkgs.nsxiv}/bin/nsxiv -a %f";
|
||||||
|
};
|
||||||
|
"text" = {
|
||||||
|
name = "Text Editor";
|
||||||
|
type = "Application";
|
||||||
|
exec = "${pkgs.alacritty}/bin/alacritty -e ${pkgs.neovim}/bin/nvim %u";
|
||||||
|
};
|
||||||
|
"pdf" = {
|
||||||
|
name = "PDF Reader";
|
||||||
|
type = "Application";
|
||||||
|
exec = "${pkgs.zathura}/bin/zathura %u";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
mimeApps = {
|
||||||
|
enable = true;
|
||||||
|
defaultApplications = {
|
||||||
|
"application/pdf" = "pdf.desktop";
|
||||||
|
"x-scheme-handler/http" = "browser.desktop";
|
||||||
|
"x-scheme-handler/https" = "browser.desktop";
|
||||||
|
"image/png" = "image.desktop";
|
||||||
|
"image/jpeg" = "image.desktop";
|
||||||
|
"image/jpg" = "image.desktop";
|
||||||
|
"image/gif" = "image.desktop";
|
||||||
|
"video/mp4" = "mpv.desktop";
|
||||||
|
"text/plain" = "text.desktop";
|
||||||
|
"text/html" = "browser.desktop";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
home = {
|
||||||
|
sessionVariables = {
|
||||||
|
# Default programs
|
||||||
|
EDITOR = "nvim";
|
||||||
|
TERMINAL = "st";
|
||||||
|
BROWSER = "librewolf";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
21
homes/desktop/xorg.nix
Normal file
21
homes/desktop/xorg.nix
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
{ config, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
# Attempt to set keyboard layout
|
||||||
|
home.keyboard = {
|
||||||
|
layout = "gb";
|
||||||
|
options = [
|
||||||
|
"caps:escape"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Force use of XDG Dir Spec
|
||||||
|
home.sessionVariables = {
|
||||||
|
XCOMPOSECACHE = "${config.xdg.cacheHome}/x11/xcompose";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Set global font
|
||||||
|
xresources.properties = {
|
||||||
|
"*.font" = "Iosevka:pixelsize=12:antialias=true:autohint=true";
|
||||||
|
};
|
||||||
|
}
|
3
homes/desktop/zathura.nix
Normal file
3
homes/desktop/zathura.nix
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
programs.zathura.enable = true;
|
||||||
|
}
|
10
homes/laptop/home.nix
Normal file
10
homes/laptop/home.nix
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{ username, lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.home-manager.enable = true;
|
||||||
|
home = {
|
||||||
|
inherit username;
|
||||||
|
homeDirectory = lib.mkForce "/Users/${username}";
|
||||||
|
stateVersion = "24.11";
|
||||||
|
};
|
||||||
|
}
|
10
homes/laptop/ssh.nix
Normal file
10
homes/laptop/ssh.nix
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
programs.ssh.extraConfig = ''
|
||||||
|
Host *
|
||||||
|
IdentityAgent /Users/maddie/Library/Containers/com.maxgoedjen.Secretive.SecretAgent/Data/socket.ssh
|
||||||
|
'';
|
||||||
|
|
||||||
|
home.sessionVariables = {
|
||||||
|
SSH_AUTH_SOCK = "$HOME/Library/Containers/com.maxgoedjen.Secretive.SecretAgent/Data/socket.ssh";
|
||||||
|
};
|
||||||
|
}
|
25
overlays.nix
Normal file
25
overlays.nix
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
[
|
||||||
|
# My build of suckless dwm
|
||||||
|
(final: prev: {
|
||||||
|
st = prev.st.overrideAttrs (oldAttrs: {
|
||||||
|
src = final.fetchFromGitea {
|
||||||
|
domain = "git.spyhoodle.me";
|
||||||
|
owner = "maddie";
|
||||||
|
repo = "st";
|
||||||
|
rev = "95838457b677f5dc4397603e6df76df1789c9c36";
|
||||||
|
sha256 = "sha256-EuipD68T8I+g1kKHqYy79Iata08Ac0SD24uLXBlM77A=";
|
||||||
|
};
|
||||||
|
buildInputs = oldAttrs.buildInputs ++ [ final.harfbuzz ];
|
||||||
|
});
|
||||||
|
ncmpcpp = prev.ncmpcpp.override {
|
||||||
|
visualizerSupport = true;
|
||||||
|
clockSupport = false;
|
||||||
|
};
|
||||||
|
nerdfonts = prev.nerdfonts.override {
|
||||||
|
fonts = [ "Iosevka" "JetBrainsMono" "Terminus" ];
|
||||||
|
};
|
||||||
|
chromium = prev.chromium.override {
|
||||||
|
enableWideVine = true;
|
||||||
|
};
|
||||||
|
})
|
||||||
|
]
|
12
systems/desktop/audio.nix
Normal file
12
systems/desktop/audio.nix
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
hardware.pulseaudio.enable = false;
|
||||||
|
security.rtkit.enable = true;
|
||||||
|
services.pipewire = {
|
||||||
|
enable = true;
|
||||||
|
alsa.enable = true;
|
||||||
|
alsa.support32Bit = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
jack.enable = true;
|
||||||
|
wireplumber.enable = true;
|
||||||
|
};
|
||||||
|
}
|
12
systems/desktop/avahi.nix
Normal file
12
systems/desktop/avahi.nix
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
services.avahi = {
|
||||||
|
enable = true;
|
||||||
|
nssmdns4 = true;
|
||||||
|
publish = {
|
||||||
|
enable = true;
|
||||||
|
addresses = true;
|
||||||
|
workstation = true;
|
||||||
|
userServices = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
4
systems/desktop/bluetooth.nix
Normal file
4
systems/desktop/bluetooth.nix
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
hardware.bluetooth.enable = true;
|
||||||
|
services.blueman.enable = true;
|
||||||
|
}
|
20
systems/desktop/boot.nix
Normal file
20
systems/desktop/boot.nix
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
# Setup bootloader
|
||||||
|
boot.loader.systemd-boot = {
|
||||||
|
enable = true;
|
||||||
|
consoleMode = "max";
|
||||||
|
};
|
||||||
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
boot.initrd.systemd.enable = true;
|
||||||
|
|
||||||
|
# Enable magic sysrq
|
||||||
|
boot.kernel.sysctl."kernel.sysrq" = 502;
|
||||||
|
|
||||||
|
# Kernel settings
|
||||||
|
boot.kernelParams = [ "video=2560x1440@180" ];
|
||||||
|
|
||||||
|
# Use the linux-zen kernel
|
||||||
|
boot.kernelPackages = pkgs.linuxPackages_zen;
|
||||||
|
}
|
47
systems/desktop/clicks-tailscale.nix
Normal file
47
systems/desktop/clicks-tailscale.nix
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2024 Clicks Codes
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: GPL-3.0-only
|
||||||
|
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
cfg = config.clicks.networking.tailscale;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.clicks.networking.tailscale = {
|
||||||
|
enable = lib.mkEnableOption "Enable tailscale for this system";
|
||||||
|
runExitNode.enable = lib.mkOption {
|
||||||
|
description = "Enable this system as an exit node on the tailnet";
|
||||||
|
default = true;
|
||||||
|
type = lib.types.bool;
|
||||||
|
};
|
||||||
|
server = lib.mkOption {
|
||||||
|
description = "Set where your control plane server is";
|
||||||
|
default = "clicks.domains";
|
||||||
|
example = "controlplane.tailscale.com";
|
||||||
|
};
|
||||||
|
authKeyFile = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
description = "Path to key file for tailscale";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
services.tailscale = {
|
||||||
|
enable = true;
|
||||||
|
useRoutingFeatures = if cfg.runExitNode.enable then "both" else "client";
|
||||||
|
extraUpFlags = [
|
||||||
|
"--login-server=https://${cfg.server}"
|
||||||
|
"--accept-routes"
|
||||||
|
] ++ (if cfg.runExitNode.enable then [ "--advertise-exit-node" ] else [ ]);
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.tailscaled.environment.TS_NO_LOGS_NO_SUPPORT = lib.mkIf (
|
||||||
|
cfg.server != "controlplane.tailscale.com"
|
||||||
|
) "true";
|
||||||
|
};
|
||||||
|
}
|
6
systems/desktop/cpu.nix
Normal file
6
systems/desktop/cpu.nix
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{ config, lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
||||||
|
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
}
|
13
systems/desktop/doas.nix
Normal file
13
systems/desktop/doas.nix
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{ username, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
security.sudo.enable = false;
|
||||||
|
security.doas = {
|
||||||
|
enable = true;
|
||||||
|
extraRules = [{
|
||||||
|
users = [ "${username}" ];
|
||||||
|
keepEnv = true;
|
||||||
|
persist = true;
|
||||||
|
}];
|
||||||
|
};
|
||||||
|
}
|
4
systems/desktop/firewall.nix
Normal file
4
systems/desktop/firewall.nix
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
# Disable the firewall altogether
|
||||||
|
networking.firewall.enable = false;
|
||||||
|
}
|
14
systems/desktop/fonts.nix
Normal file
14
systems/desktop/fonts.nix
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
fonts.packages = with pkgs; [
|
||||||
|
nerdfonts
|
||||||
|
font-awesome
|
||||||
|
source-sans
|
||||||
|
source-han-sans
|
||||||
|
source-han-serif
|
||||||
|
source-han-code-jp
|
||||||
|
terminus_font
|
||||||
|
inter
|
||||||
|
];
|
||||||
|
}
|
9
systems/desktop/gpg.nix
Normal file
9
systems/desktop/gpg.nix
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.gnupg.agent = {
|
||||||
|
enable = true;
|
||||||
|
enableSSHSupport = false;
|
||||||
|
pinentryPackage = pkgs.pinentry-gnome3;
|
||||||
|
};
|
||||||
|
}
|
44
systems/desktop/hardware.nix
Normal file
44
systems/desktop/hardware.nix
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
|
# and may be overwritten by future invocations. Please make changes
|
||||||
|
# to /etc/nixos/configuration.nix instead.
|
||||||
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "usbhid" "sd_mod" ];
|
||||||
|
boot.initrd.kernelModules = [ ];
|
||||||
|
boot.kernelModules = [ "kvm-intel" ];
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
|
fileSystems."/" =
|
||||||
|
{ device = "/dev/disk/by-uuid/0b6949ad-1251-42cb-a132-76d5f20c6bb0";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
boot.initrd.luks.devices."luks-80c1fc90-4995-43ac-a022-752af2803ffc".device = "/dev/disk/by-uuid/80c1fc90-4995-43ac-a022-752af2803ffc";
|
||||||
|
boot.initrd.luks.devices."luks-3dbc0a96-a442-492d-9b46-e0216adaaa32".device = "/dev/disk/by-uuid/3dbc0a96-a442-492d-9b46-e0216adaaa32";
|
||||||
|
|
||||||
|
fileSystems."/boot" =
|
||||||
|
{ device = "/dev/disk/by-uuid/DCB7-79E4";
|
||||||
|
fsType = "vfat";
|
||||||
|
options = [ "fmask=0077" "dmask=0077" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices =
|
||||||
|
[ { device = "/dev/disk/by-uuid/b2dd867b-5c12-4b61-a476-8410ba3c772d"; }
|
||||||
|
];
|
||||||
|
|
||||||
|
# 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
|
||||||
|
# still possible to use this option, but it's recommended to use it in conjunction
|
||||||
|
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||||
|
networking.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.eno1.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.wlp3s0.useDHCP = lib.mkDefault true;
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
}
|
9
systems/desktop/hyprland.nix
Normal file
9
systems/desktop/hyprland.nix
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{ inputs, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
||||||
|
portalPackage = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
|
||||||
|
};
|
||||||
|
}
|
3
systems/desktop/hyprlock.nix
Normal file
3
systems/desktop/hyprlock.nix
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
security.pam.services.hyprlock = { };
|
||||||
|
}
|
13
systems/desktop/locale.nix
Normal file
13
systems/desktop/locale.nix
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
# Time zone
|
||||||
|
time.timeZone = "Europe/London";
|
||||||
|
|
||||||
|
# Internationalisation properties
|
||||||
|
i18n.defaultLocale = "en_GB.UTF-8";
|
||||||
|
console = {
|
||||||
|
font = "${pkgs.terminus_font}/share/consolefonts/ter-v24n.psf.gz";
|
||||||
|
keyMap = "uk";
|
||||||
|
};
|
||||||
|
}
|
3
systems/desktop/ly.nix
Normal file
3
systems/desktop/ly.nix
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
services.displayManager.ly.enable = true;
|
||||||
|
}
|
6
systems/desktop/man.nix
Normal file
6
systems/desktop/man.nix
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
documentation.man = {
|
||||||
|
enable = true;
|
||||||
|
generateCaches = true;
|
||||||
|
};
|
||||||
|
}
|
12
systems/desktop/networking.nix
Normal file
12
systems/desktop/networking.nix
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
{ lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
# DHCP
|
||||||
|
networking.useDHCP = lib.mkDefault true;
|
||||||
|
|
||||||
|
# Hostname
|
||||||
|
networking.hostName = "desktop";
|
||||||
|
|
||||||
|
# Enable wireless support & configuration
|
||||||
|
networking.wireless.enable = false;
|
||||||
|
}
|
3
systems/desktop/nix-ld.nix
Normal file
3
systems/desktop/nix-ld.nix
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
programs.nix-ld.enable = true;
|
||||||
|
}
|
15
systems/desktop/nix.nix
Normal file
15
systems/desktop/nix.nix
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
nix = {
|
||||||
|
package = pkgs.nixVersions.stable;
|
||||||
|
settings = {
|
||||||
|
experimental-features = [ "nix-command" "flakes" ];
|
||||||
|
auto-optimise-store = true;
|
||||||
|
};
|
||||||
|
gc = {
|
||||||
|
automatic = true;
|
||||||
|
options = "--delete-older-than 7d";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
6
systems/desktop/nixos.nix
Normal file
6
systems/desktop/nixos.nix
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{ lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
system.stateVersion = "24.11";
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
}
|
13
systems/desktop/nvidia.nix
Normal file
13
systems/desktop/nvidia.nix
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{ config, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
hardware.graphics.enable = true;
|
||||||
|
hardware.graphics.enable32Bit = true;
|
||||||
|
hardware.nvidia = {
|
||||||
|
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||||
|
modesetting.enable = true;
|
||||||
|
open = false;
|
||||||
|
};
|
||||||
|
services.xserver.videoDrivers = [ "nvidia" ];
|
||||||
|
|
||||||
|
}
|
48
systems/desktop/packages.nix
Normal file
48
systems/desktop/packages.nix
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
# Xorg packages
|
||||||
|
xorg.xinit
|
||||||
|
xorg.xkill
|
||||||
|
xorg.xprop
|
||||||
|
xorg.xwininfo
|
||||||
|
xorg.xrandr
|
||||||
|
xdotool
|
||||||
|
xclip
|
||||||
|
|
||||||
|
# Processes
|
||||||
|
killall
|
||||||
|
appimage-run
|
||||||
|
|
||||||
|
# Filesystems
|
||||||
|
dosfstools
|
||||||
|
btrfs-progs
|
||||||
|
ntfs3g
|
||||||
|
exfatprogs
|
||||||
|
libimobiledevice
|
||||||
|
ifuse
|
||||||
|
|
||||||
|
# Archives
|
||||||
|
zip
|
||||||
|
unrar
|
||||||
|
unzip
|
||||||
|
p7zip
|
||||||
|
|
||||||
|
# Cli tools
|
||||||
|
ripgrep
|
||||||
|
wget
|
||||||
|
fzf
|
||||||
|
bat
|
||||||
|
|
||||||
|
# XDG
|
||||||
|
xdg-utils
|
||||||
|
xdg-user-dirs
|
||||||
|
|
||||||
|
# Git
|
||||||
|
git
|
||||||
|
|
||||||
|
# Compiler
|
||||||
|
gcc
|
||||||
|
];
|
||||||
|
}
|
6
systems/desktop/security.nix
Normal file
6
systems/desktop/security.nix
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.slock.enable = true;
|
||||||
|
security.wrappers.slock.source = "${pkgs.slock.out}/bin/slock";
|
||||||
|
}
|
11
systems/desktop/ssh.nix
Normal file
11
systems/desktop/ssh.nix
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
services.openssh = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
PermitRootLogin = "no";
|
||||||
|
PasswordAuthentication = false;
|
||||||
|
KbdInteractiveAuthentication = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
programs.ssh.hostKeyAlgorithms = [ "sk-ssh-ed25519@openssh.com" "ssh-ed25519" "ecdsa-sha2-nistp256" ];
|
||||||
|
}
|
6
systems/desktop/systemd.nix
Normal file
6
systems/desktop/systemd.nix
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
# Stop systemd from hanging for ages
|
||||||
|
systemd.extraConfig = ''
|
||||||
|
DefaultTimeoutStopSec=10s
|
||||||
|
'';
|
||||||
|
}
|
6
systems/desktop/tailscale.nix
Normal file
6
systems/desktop/tailscale.nix
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
clicks.networking.tailscale = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
services.tailscale.extraUpFlags = [ "--hostname=desktop" ];
|
||||||
|
}
|
11
systems/desktop/users.nix
Normal file
11
systems/desktop/users.nix
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{ pkgs, username, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
users.users.${username} = {
|
||||||
|
isNormalUser = true;
|
||||||
|
shell = pkgs.zsh;
|
||||||
|
description = "Madeleine";
|
||||||
|
extraGroups = [ "dialout" "plugdev" ];
|
||||||
|
openssh.authorizedKeys.keyFiles = [ ../../homes/common/ssh/maddie.pub ];
|
||||||
|
};
|
||||||
|
}
|
12
systems/desktop/xdg.nix
Normal file
12
systems/desktop/xdg.nix
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
{ pkgs, inputs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
xdg.portal = {
|
||||||
|
enable = true;
|
||||||
|
xdgOpenUsePortal = true;
|
||||||
|
extraPortals = [
|
||||||
|
pkgs.xdg-desktop-portal-gtk
|
||||||
|
];
|
||||||
|
};
|
||||||
|
programs.dconf.enable = true;
|
||||||
|
}
|
12
systems/desktop/xorg.nix
Normal file
12
systems/desktop/xorg.nix
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
services.xserver = {
|
||||||
|
# Enable X11 windowing system
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
# Set X11 keymap as GB
|
||||||
|
xkb = {
|
||||||
|
layout = "gb";
|
||||||
|
options = "eurosign:e";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
17
systems/desktop/yubikey.nix
Normal file
17
systems/desktop/yubikey.nix
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
services.pcscd.enable = true;
|
||||||
|
services.udev.packages = [ pkgs.yubikey-personalization ];
|
||||||
|
security.pam = {
|
||||||
|
services = {
|
||||||
|
login.u2fAuth = true;
|
||||||
|
doas.u2fAuth = true;
|
||||||
|
};
|
||||||
|
yubico = {
|
||||||
|
enable = true;
|
||||||
|
mode = "challenge-response";
|
||||||
|
control = "optional";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
10
systems/desktop/zsh.nix
Normal file
10
systems/desktop/zsh.nix
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.zsh = {
|
||||||
|
enable = true;
|
||||||
|
autosuggestions.enable = true;
|
||||||
|
syntaxHighlighting.enable = true;
|
||||||
|
};
|
||||||
|
users.defaultUserShell = pkgs.zsh;
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user