Compare commits
23 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b30b3969f2 | |||
| 3f0ffe65d9 | |||
| dcaa8e12d1 | |||
| 20dc313f96 | |||
| aea284a05d | |||
| 22db4be6fa | |||
| df9a7f6670 | |||
| 5fdf334224 | |||
| 048071ae76 | |||
| fe3a31818c | |||
| bf49baeb28 | |||
| c26161a21f | |||
| 53ceea37d7 | |||
| b5810551c0 | |||
| 34178ce1e8 | |||
| 0a6566f394 | |||
| 2a172ee6de | |||
| d6cee1e554 | |||
| aeda1c3e59 | |||
| f57d25b2bf | |||
| b166a89091 | |||
| 2312d47bba | |||
| e923b34960 |
4
.gitattributes
vendored
4
.gitattributes
vendored
@@ -1,4 +0,0 @@
|
|||||||
*.jpg filter=lfs diff=lfs merge=lfs -text
|
|
||||||
*.png filter=lfs diff=lfs merge=lfs -text
|
|
||||||
*.webp filter=lfs diff=lfs merge=lfs -text
|
|
||||||
*.jpeg filter=lfs diff=lfs merge=lfs -text
|
|
||||||
BIN
assets/eva-01.jpg
LFS
BIN
assets/eva-01.jpg
LFS
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
assets/pfp/Jiji.jpg
LFS
BIN
assets/pfp/Jiji.jpg
LFS
Binary file not shown.
BIN
assets/pfp/jaUtSEI.jpg
LFS
BIN
assets/pfp/jaUtSEI.jpg
LFS
Binary file not shown.
BIN
assets/pfp/jiro.jpg
LFS
BIN
assets/pfp/jiro.jpg
LFS
Binary file not shown.
BIN
assets/pfp/neonNerv.png
LFS
BIN
assets/pfp/neonNerv.png
LFS
Binary file not shown.
BIN
assets/pfp/uptime-kuma.png
LFS
BIN
assets/pfp/uptime-kuma.png
LFS
Binary file not shown.
268
flake.lock
generated
268
flake.lock
generated
@@ -1,268 +0,0 @@
|
|||||||
{
|
|
||||||
"nodes": {
|
|
||||||
"flake-compat": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1733328505,
|
|
||||||
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
|
||||||
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
|
|
||||||
"revCount": 69,
|
|
||||||
"type": "tarball",
|
|
||||||
"url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.1.0/01948eb7-9cba-704f-bbf3-3fa956735b52/source.tar.gz"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"type": "tarball",
|
|
||||||
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-parts": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs-lib": "nixpkgs-lib"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1760948891,
|
|
||||||
"narHash": "sha256-TmWcdiUUaWk8J4lpjzu4gCGxWY6/Ok7mOK4fIFfBuU4=",
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "flake-parts",
|
|
||||||
"rev": "864599284fc7c0ba6357ed89ed5e2cd5040f0c04",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "flake-parts",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-parts_2": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs-lib": [
|
|
||||||
"nixvim",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1763759067,
|
|
||||||
"narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=",
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "flake-parts",
|
|
||||||
"rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "flake-parts",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"home-manager": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1764866045,
|
|
||||||
"narHash": "sha256-0GsEtXV9OquDQ1VclQfP16cU5VZh7NEVIOjSH4UaJuM=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "home-manager",
|
|
||||||
"rev": "f63d0fe9d81d36e5fc95497217a72e02b8b7bcab",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"ref": "release-25.11",
|
|
||||||
"repo": "home-manager",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"home-manager-unstable": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs-unstable"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1764998300,
|
|
||||||
"narHash": "sha256-fZatn/KLfHLDXnF0wy7JxXqGaZmGDTVufT4o/AOlj44=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "home-manager",
|
|
||||||
"rev": "27a6182347ccae90a88231ae0dc5dfa7d15815bb",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "home-manager",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nix-darwin": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs-unstable"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1765065051,
|
|
||||||
"narHash": "sha256-b7W9WsvyMOkUScNxbzS45KEJp0iiqRPyJ1I3JBE+oEE=",
|
|
||||||
"owner": "nix-darwin",
|
|
||||||
"repo": "nix-darwin",
|
|
||||||
"rev": "7e22bf538aa3e0937effcb1cee73d5f1bcc26f79",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-darwin",
|
|
||||||
"ref": "master",
|
|
||||||
"repo": "nix-darwin",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nix-snapd": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-compat": "flake-compat",
|
|
||||||
"flake-parts": "flake-parts",
|
|
||||||
"nixpkgs": "nixpkgs"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1761703712,
|
|
||||||
"narHash": "sha256-OKuNVXmHuZ0zi8T0aGWrBJizIfvdTqV1RiV0IN8GPZs=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nix-snapd",
|
|
||||||
"rev": "f7694a0e26d890e285137e1b726b1b44038805c4",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nix-snapd",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixos-hardware": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1764440730,
|
|
||||||
"narHash": "sha256-ZlJTNLUKQRANlLDomuRWLBCH5792x+6XUJ4YdFRjtO4=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixos-hardware",
|
|
||||||
"rev": "9154f4569b6cdfd3c595851a6ba51bfaa472d9f3",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "master",
|
|
||||||
"repo": "nixos-hardware",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1761442529,
|
|
||||||
"narHash": "sha256-8aDps5fCt0Ndw56ZgeBvdT7E5zeUSFi3CJaNR7ZJKnA=",
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "75762615e96b1a7f172dcdadf62aa9f3aebedf7b",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs-lib": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1754788789,
|
|
||||||
"narHash": "sha256-x2rJ+Ovzq0sCMpgfgGaaqgBSwY+LST+WbZ6TytnT9Rk=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nixpkgs.lib",
|
|
||||||
"rev": "a73b9c743612e4244d865a2fdee11865283c04e6",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nixpkgs.lib",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs-unstable": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1764950072,
|
|
||||||
"narHash": "sha256-BmPWzogsG2GsXZtlT+MTcAWeDK5hkbGRZTeZNW42fwA=",
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "f61125a668a320878494449750330ca58b78c557",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nixos",
|
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_2": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1764831616,
|
|
||||||
"narHash": "sha256-OtzF5wBvO0jgW1WW1rQU9cMGx7zuvkF7CAVJ1ypzkxA=",
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "c97c47f2bac4fa59e2cbdeba289686ae615f8ed4",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nixos",
|
|
||||||
"ref": "nixos-25.11",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixvim": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-parts": "flake-parts_2",
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs-unstable"
|
|
||||||
],
|
|
||||||
"systems": "systems"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1765043977,
|
|
||||||
"narHash": "sha256-Gcdn1s/ynXRFNqInTcYltAi1gqgmTKw8Hw6OSfFNWMY=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nixvim",
|
|
||||||
"rev": "b65233d5f9736cf8d8fe9d4652e1faf610b574bc",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nixvim",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"root": {
|
|
||||||
"inputs": {
|
|
||||||
"home-manager": "home-manager",
|
|
||||||
"home-manager-unstable": "home-manager-unstable",
|
|
||||||
"nix-darwin": "nix-darwin",
|
|
||||||
"nix-snapd": "nix-snapd",
|
|
||||||
"nixos-hardware": "nixos-hardware",
|
|
||||||
"nixpkgs": "nixpkgs_2",
|
|
||||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
|
||||||
"nixvim": "nixvim"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"systems": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1681028828,
|
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"root": "root",
|
|
||||||
"version": 7
|
|
||||||
}
|
|
||||||
95
flake.nix
95
flake.nix
@@ -1,95 +0,0 @@
|
|||||||
{
|
|
||||||
description = "Nixos Config Flake";
|
|
||||||
|
|
||||||
inputs = {
|
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
|
|
||||||
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
|
||||||
nix-darwin.url = "github:nix-darwin/nix-darwin/master";
|
|
||||||
nix-darwin.inputs.nixpkgs.follows = "nixpkgs-unstable";
|
|
||||||
nix-snapd.url = "github:nix-community/nix-snapd";
|
|
||||||
nix-snapd.inputs.pkgs-unstable.follows = "nixpkgs";
|
|
||||||
|
|
||||||
home-manager = {
|
|
||||||
url = "github:nix-community/home-manager/release-25.11";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
|
|
||||||
home-manager-unstable = {
|
|
||||||
url = "github:nix-community/home-manager/";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
|
||||||
};
|
|
||||||
|
|
||||||
nixvim = {
|
|
||||||
url = "github:nix-community/nixvim";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
|
||||||
};
|
|
||||||
|
|
||||||
nixos-hardware = {
|
|
||||||
url = "github:NixOS/nixos-hardware/master";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
outputs =
|
|
||||||
{ self,
|
|
||||||
home-manager,
|
|
||||||
home-manager-unstable,
|
|
||||||
nix-darwin,
|
|
||||||
nix-snapd,
|
|
||||||
nixos-hardware,
|
|
||||||
nixpkgs,
|
|
||||||
nixpkgs-unstable,
|
|
||||||
nixvim,
|
|
||||||
...
|
|
||||||
}@inputs:
|
|
||||||
let
|
|
||||||
system = "x86_64-linux";
|
|
||||||
configPath = "/etc/nixos";
|
|
||||||
pkgs-unstable = import nixpkgs-unstable {
|
|
||||||
system = system;
|
|
||||||
config.allowUnfree = true;
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
nixosConfigurations = {
|
|
||||||
buildbox = nixpkgs.lib.nixosSystem {
|
|
||||||
specialArgs = {inherit inputs pkgs-unstable configPath;} // {hostname = "buildbox";};
|
|
||||||
system = system;
|
|
||||||
modules = [
|
|
||||||
./hosts/buildbox/configuration.nix
|
|
||||||
inputs.home-manager.nixosModules.default
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
eva-01 = nixpkgs.lib.nixosSystem {
|
|
||||||
specialArgs = {inherit inputs pkgs-unstable configPath;} // {hostname = "eva-01";};
|
|
||||||
system = system;
|
|
||||||
modules = [
|
|
||||||
./hosts/eva-01/configuration.nix
|
|
||||||
inputs.home-manager.nixosModules.default
|
|
||||||
nixos-hardware.nixosModules.lenovo-thinkpad-x1-nano-gen1
|
|
||||||
nix-snapd.nixosModules.default { services.snap.enable = true; }
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
eva-03 = nixpkgs.lib.nixosSystem {
|
|
||||||
specialArgs = {inherit inputs pkgs-unstable configPath;} // {hostname = "eva-03";};
|
|
||||||
system = system;
|
|
||||||
modules = [
|
|
||||||
./hosts/eva-03/configuration.nix
|
|
||||||
inputs.home-manager.nixosModules.default
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
darwinConfigurations = {
|
|
||||||
eva-02 = nix-darwin.lib.darwinSystem{
|
|
||||||
specialArgs = {inherit inputs configPath;} // {hostname = "eva-02";};
|
|
||||||
system = "aarch64-darwin";
|
|
||||||
modules = [
|
|
||||||
./hosts/eva-02/configuration.nix
|
|
||||||
inputs.home-manager-unstable.darwinModules.home-manager
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
190
home-manager/cli-tools.nix
Normal file
190
home-manager/cli-tools.nix
Normal file
@@ -0,0 +1,190 @@
|
|||||||
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
#cli tools
|
||||||
|
bat
|
||||||
|
btop
|
||||||
|
curl
|
||||||
|
docker
|
||||||
|
dust
|
||||||
|
ghostty
|
||||||
|
git
|
||||||
|
neovim
|
||||||
|
nettools
|
||||||
|
nix-prefetch-github
|
||||||
|
nmap
|
||||||
|
openssh
|
||||||
|
tailscale
|
||||||
|
thefuck
|
||||||
|
tldr
|
||||||
|
unzip
|
||||||
|
vim
|
||||||
|
wget
|
||||||
|
];
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
fastfetch.enable = true;
|
||||||
|
fzf.enable = true;
|
||||||
|
bat.enable = true;
|
||||||
|
btop.enable = true;
|
||||||
|
kitty.enable = true;
|
||||||
|
yazi.enable = true;
|
||||||
|
starship.enable = true;
|
||||||
|
lazygit.enable = true;
|
||||||
|
#thefuck.enable = true;
|
||||||
|
#thefuck.enableZshIntegration = true;
|
||||||
|
|
||||||
|
git = {
|
||||||
|
enable = true;
|
||||||
|
userName = "USER";
|
||||||
|
};
|
||||||
|
|
||||||
|
eza = {
|
||||||
|
enable = true;
|
||||||
|
icons = "auto";
|
||||||
|
enableZshIntegration = true;
|
||||||
|
extraOptions = [
|
||||||
|
"--group-directories-first"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
ssh = {
|
||||||
|
enable = true;
|
||||||
|
matchBlocks = {
|
||||||
|
global = {
|
||||||
|
host = "*";
|
||||||
|
setEnv = {
|
||||||
|
TERM = "xterm-256color";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
# Add IdentityAgent configuration here
|
||||||
|
extraConfig = ''
|
||||||
|
IdentityAgent ~/.1password/agent.sock
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
zoxide = {
|
||||||
|
enable = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
zsh = {
|
||||||
|
enable = true;
|
||||||
|
enableCompletion = true;
|
||||||
|
autosuggestion.enable = true;
|
||||||
|
syntaxHighlighting.enable = true;
|
||||||
|
historySubstringSearch.enable = true;
|
||||||
|
|
||||||
|
shellAliases = {
|
||||||
|
ls = "eza --color=auto";
|
||||||
|
grep = "grep --color=auto";
|
||||||
|
ll = "eza -la";
|
||||||
|
lg = "lazygit";
|
||||||
|
fu = "fuck";
|
||||||
|
lt = "eza --tree";
|
||||||
|
cd = "z";
|
||||||
|
cat = "bat";
|
||||||
|
catp = "bat -p";
|
||||||
|
btop = "btop --utf-force";
|
||||||
|
open = "xdg-open";
|
||||||
|
};
|
||||||
|
|
||||||
|
initExtra = ''
|
||||||
|
. ~/.nix-profile/etc/profile.d/nix.sh
|
||||||
|
fastfetch
|
||||||
|
'';
|
||||||
|
|
||||||
|
history = {
|
||||||
|
size = 10000;
|
||||||
|
path = "${config.xdg.dataHome}/zsh/history";
|
||||||
|
};
|
||||||
|
|
||||||
|
oh-my-zsh = {
|
||||||
|
enable = true;
|
||||||
|
#plugins = ["thefuck"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
starship = {
|
||||||
|
settings = {
|
||||||
|
add_newline = true;
|
||||||
|
format = lib.concatStrings [
|
||||||
|
"$time"
|
||||||
|
"$directory"
|
||||||
|
"$git_branch"
|
||||||
|
"$git_status"
|
||||||
|
"$hostname"
|
||||||
|
"$golang"
|
||||||
|
"direnv"
|
||||||
|
"$status"
|
||||||
|
];
|
||||||
|
|
||||||
|
right_format = lib.concatStrings [
|
||||||
|
"$cmd_duration"
|
||||||
|
];
|
||||||
|
|
||||||
|
cmd_duration = {
|
||||||
|
disabled = false;
|
||||||
|
show_notifications = false;
|
||||||
|
min_time = 2000;
|
||||||
|
format = "[$duration](bold yellow)";
|
||||||
|
};
|
||||||
|
|
||||||
|
directory = {
|
||||||
|
style = "cyan";
|
||||||
|
format = ''\[[$path]($style)\] '';
|
||||||
|
};
|
||||||
|
|
||||||
|
direnv = {
|
||||||
|
disabled = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
git_branch = {
|
||||||
|
style = "bold cyan";
|
||||||
|
format = ''\[[$symbol$branch(:$remote_branch)]($style)\] '';
|
||||||
|
};
|
||||||
|
|
||||||
|
git_status = {
|
||||||
|
format = "[($all_status$ahead_behind )]($style)";
|
||||||
|
conflicted = "🏳";
|
||||||
|
ahead = "⇡\${count}";
|
||||||
|
diverged = "⇕⇡\${ahead_count}⇣\${behind_count}";
|
||||||
|
behind = "⇣\${count}";
|
||||||
|
up_to_date = "✓";
|
||||||
|
untracked = "🤷";
|
||||||
|
stashed = "📦";
|
||||||
|
modified = "📝";
|
||||||
|
staged = ''[++\($count\)](green)'';
|
||||||
|
renamed = "👅";
|
||||||
|
deleted = "🗑";
|
||||||
|
};
|
||||||
|
|
||||||
|
golang = {
|
||||||
|
format = ''\[[$symbol($version)]($style)\]'';
|
||||||
|
};
|
||||||
|
|
||||||
|
hostname = {
|
||||||
|
format = "[$ssh_symbol$hostname]($style) ";
|
||||||
|
};
|
||||||
|
|
||||||
|
status = {
|
||||||
|
disabled = false;
|
||||||
|
success_symbol = "[❱](bold red)[❱](bold yellow)[❱](bold green) ";
|
||||||
|
symbol = "[❱❱❱](bold red) ";
|
||||||
|
format = "$symbol";
|
||||||
|
};
|
||||||
|
|
||||||
|
time = {
|
||||||
|
disabled = false;
|
||||||
|
style = "cyan";
|
||||||
|
format = ''\[[$time]($style)\] '';
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,151 +0,0 @@
|
|||||||
{
|
|
||||||
pkgs,
|
|
||||||
pkgs-unstable,
|
|
||||||
lib,
|
|
||||||
hostname,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./direnv.nix
|
|
||||||
./custom/custom.nix
|
|
||||||
./eza.nix
|
|
||||||
./fastfetch/fastfetch.nix
|
|
||||||
./git.nix
|
|
||||||
./newsboat.nix
|
|
||||||
./nixvim/default.nix
|
|
||||||
./starship.nix
|
|
||||||
./tmux.nix
|
|
||||||
./zsh.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
age
|
|
||||||
age-plugin-1p
|
|
||||||
age-plugin-yubikey
|
|
||||||
agedu
|
|
||||||
awscli2
|
|
||||||
b3sum
|
|
||||||
bat
|
|
||||||
btop
|
|
||||||
cbonsai
|
|
||||||
curl
|
|
||||||
dig
|
|
||||||
dust
|
|
||||||
# esptool
|
|
||||||
fd
|
|
||||||
fzf
|
|
||||||
ffmpeg-full
|
|
||||||
gemini-cli
|
|
||||||
git-filter-repo
|
|
||||||
graphviz
|
|
||||||
jq
|
|
||||||
kitty
|
|
||||||
lazygit
|
|
||||||
nix-du
|
|
||||||
nmap
|
|
||||||
ocamlPackages.utop
|
|
||||||
opencode
|
|
||||||
openconnect
|
|
||||||
openssl
|
|
||||||
ripgrep
|
|
||||||
s3cmd
|
|
||||||
# sage
|
|
||||||
termusic
|
|
||||||
timg
|
|
||||||
tldr
|
|
||||||
trippy
|
|
||||||
trivy
|
|
||||||
wget
|
|
||||||
wireguard-tools
|
|
||||||
yazi
|
|
||||||
yt-dlp
|
|
||||||
yubikey-manager
|
|
||||||
zstd
|
|
||||||
]
|
|
||||||
++ lib.optionals (hostname == "eva-01") [
|
|
||||||
# cli
|
|
||||||
parted
|
|
||||||
traceroute
|
|
||||||
|
|
||||||
# cyber
|
|
||||||
amass
|
|
||||||
bettercap
|
|
||||||
bloodhound
|
|
||||||
bully
|
|
||||||
burpsuite
|
|
||||||
cowpatty
|
|
||||||
crunch
|
|
||||||
dirbuster
|
|
||||||
dnschef
|
|
||||||
ffuf
|
|
||||||
hash-identifier
|
|
||||||
hashcat
|
|
||||||
hashcat-utils
|
|
||||||
hping
|
|
||||||
macchanger
|
|
||||||
medusa
|
|
||||||
netdiscover
|
|
||||||
netexec
|
|
||||||
pwnat
|
|
||||||
pwncat
|
|
||||||
reaverwps-t6x
|
|
||||||
recon-ng
|
|
||||||
rustscan
|
|
||||||
sqlmap
|
|
||||||
steghide
|
|
||||||
thc-hydra
|
|
||||||
]
|
|
||||||
|
|
||||||
++ lib.optionals (hostname == "eva-02") [
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
++ lib.optionals (hostname == "eva-03") [
|
|
||||||
# cli
|
|
||||||
parted
|
|
||||||
traceroute
|
|
||||||
]
|
|
||||||
|
|
||||||
++ lib.optionals (hostname == "buildbox") [
|
|
||||||
# cli
|
|
||||||
parted
|
|
||||||
traceroute
|
|
||||||
];
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
ssh = {
|
|
||||||
enable = true;
|
|
||||||
matchBlocks = {
|
|
||||||
global = {
|
|
||||||
host = "*";
|
|
||||||
setEnv = {
|
|
||||||
TERM = "xterm-256color";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
} // lib.optionalAttrs (hostname == "buildbox") {
|
|
||||||
"192.168.8.109" = {
|
|
||||||
identityFile = "~/.ssh/gitea-buildbox";
|
|
||||||
user = "gitea";
|
|
||||||
};
|
|
||||||
"github.com" = {
|
|
||||||
identityFile = "~/.ssh/github-buildbox";
|
|
||||||
user = "git";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
extraConfig = if hostname == "eva-02"
|
|
||||||
then ''
|
|
||||||
IdentityAgent "~/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock"
|
|
||||||
''
|
|
||||||
else ''
|
|
||||||
IdentityAgent ~/.1password/agent.sock
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
zoxide = {
|
|
||||||
enable = true;
|
|
||||||
enableZshIntegration = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
# build.nix
|
|
||||||
let
|
|
||||||
# Import your nixpkgs channel. The <> syntax finds it automatically.
|
|
||||||
pkgs = import <nixpkgs> {
|
|
||||||
# Apply your overlay here
|
|
||||||
overlays = [ (import ./sage.nix) ];
|
|
||||||
};
|
|
||||||
in
|
|
||||||
# This file now evaluates to exactly one thing: the sage package.
|
|
||||||
pkgs.sage
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
{
|
|
||||||
pkgs,
|
|
||||||
hostname,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
|
||||||
nixpkgs.overlays = [
|
|
||||||
(import ./sage.nix)
|
|
||||||
];
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
final: prev: {
|
|
||||||
|
|
||||||
# We are adding a package named 'sage' to the package set
|
|
||||||
sage = prev.rustPlatform.buildRustPackage rec {
|
|
||||||
pname = "sage";
|
|
||||||
version = "0.1.0";
|
|
||||||
|
|
||||||
src = prev.fetchFromGitHub {
|
|
||||||
owner = "Rogue-King";
|
|
||||||
repo = "sage";
|
|
||||||
rev = "v${version}";
|
|
||||||
sha256 = "sha256-nR0EhRJFUHwQHnJagXHkP/A1fGIoMZtXXuJf70/iDas=";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Placeholder hash for cargo dependencies - the build will tell you the correct one.
|
|
||||||
cargoHash = "sha256-BXTEUGH2KB1gYl9cERVPbhAs0soezsSabg0nDedEjRI=";
|
|
||||||
#cargoLock.lockFile = ./Cargo.lock;
|
|
||||||
|
|
||||||
meta = with prev.lib; {
|
|
||||||
description = "A tool for elegant mathematics";
|
|
||||||
homepage = "https://github.com/Rogue-King/sage";
|
|
||||||
license = licenses.mit;
|
|
||||||
platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
|
|
||||||
maintainers = with maintainers; [ ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
{
|
|
||||||
programs = {
|
|
||||||
eza = {
|
|
||||||
enable = true;
|
|
||||||
icons = "auto";
|
|
||||||
enableZshIntegration = true;
|
|
||||||
extraOptions = [
|
|
||||||
"--group-directories-first"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
{
|
|
||||||
hostname,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
|
||||||
programs = {
|
|
||||||
git = {
|
|
||||||
enable = true;
|
|
||||||
lfs.enable = true;
|
|
||||||
settings = {
|
|
||||||
user = {
|
|
||||||
name = "rogueking";
|
|
||||||
email = "miguel@muniz.org";
|
|
||||||
};
|
|
||||||
} // lib.optionalAttrs (! (lib.elem hostname [ "buildbox" ])) {
|
|
||||||
gpg = {
|
|
||||||
format = "ssh";
|
|
||||||
ssh = lib.optionalAttrs (hostname == "eva-02") {
|
|
||||||
program = "/Applications/1Password.app/Contents/MacOS/op-ssh-sign";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
} // lib.optionalAttrs (! (lib.elem hostname [ "buildbox" ])) {
|
|
||||||
signing = {
|
|
||||||
signByDefault = true;
|
|
||||||
signer = if hostname == "eva-02"
|
|
||||||
then
|
|
||||||
"/Applications/1Password.app/Contents/MacOS/op-ssh-sign"
|
|
||||||
else
|
|
||||||
"/opt/1Password/op-ssh-sign";
|
|
||||||
|
|
||||||
key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHI7zcxrwwg4VqpGduhPX31aslzXwkRXiM32+8K+aIMu";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
{
|
|
||||||
programs.newsboat = {
|
|
||||||
enable = true;
|
|
||||||
urls = [
|
|
||||||
{ url = "https://dev.to/feed"; }
|
|
||||||
{ url = "https://stackoverflow.blog/feed/"; }
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
{
|
|
||||||
lib,
|
|
||||||
hostname,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
|
||||||
programs.nixvim = {
|
|
||||||
enable = true;
|
|
||||||
defaultEditor = true;
|
|
||||||
viAlias = true;
|
|
||||||
vimAlias = true;
|
|
||||||
|
|
||||||
colorschemes.everforest = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
background = "soft"; #"hard"
|
|
||||||
transparent_background = 1;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
opts = {
|
|
||||||
number = true;
|
|
||||||
relativenumber = true;
|
|
||||||
expandtab = true;
|
|
||||||
shiftwidth = 2;
|
|
||||||
tabstop = 2;
|
|
||||||
};
|
|
||||||
|
|
||||||
diagnostic.settings = {
|
|
||||||
virtual_text = true;
|
|
||||||
update_in_insert = true;
|
|
||||||
severity_sort = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
globals = {
|
|
||||||
mapleader = " ";
|
|
||||||
maplocalleader = " ";
|
|
||||||
};
|
|
||||||
|
|
||||||
clipboard.providers.wl-copy.enable = lib.mkIf (hostname != "eva-02") true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
imports = [
|
|
||||||
./config.nix
|
|
||||||
./keymaps.nix
|
|
||||||
./plugins/default.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,129 +0,0 @@
|
|||||||
{
|
|
||||||
programs.nixvim = {
|
|
||||||
keymaps = [
|
|
||||||
{
|
|
||||||
action = ":q<CR>";
|
|
||||||
key = "<leader>q";
|
|
||||||
options = {
|
|
||||||
silent = true;
|
|
||||||
noremap = true;
|
|
||||||
desc = "Quit";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = ":w<CR>";
|
|
||||||
key = "<leader>w";
|
|
||||||
options = {
|
|
||||||
silent = true;
|
|
||||||
noremap = true;
|
|
||||||
desc = "Save";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = ":wq<CR>";
|
|
||||||
key = "<leader>wq";
|
|
||||||
options = {
|
|
||||||
silent = true;
|
|
||||||
noremap = true;
|
|
||||||
desc = "Save and quit";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = "<C-\\><C-n>:ToggleTerm direction=float<CR>";
|
|
||||||
key = "<leader>t";
|
|
||||||
mode = [
|
|
||||||
"n"
|
|
||||||
"v"
|
|
||||||
"t"
|
|
||||||
];
|
|
||||||
options = {
|
|
||||||
silent = true;
|
|
||||||
noremap = true;
|
|
||||||
desc = "Toggle floating terminal";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = ":Telescope live_grep<CR>";
|
|
||||||
key = "<leader>lg";
|
|
||||||
options = {
|
|
||||||
silent = true;
|
|
||||||
noremap = true;
|
|
||||||
desc = "Live grep";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = ":Telescope find_files<CR>";
|
|
||||||
key = "<leader>ff";
|
|
||||||
options = {
|
|
||||||
silent = true;
|
|
||||||
noremap = true;
|
|
||||||
desc = "Find file";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = ":Telescope oldfiles<CR>";
|
|
||||||
key = "<leader>of";
|
|
||||||
options = {
|
|
||||||
silent = true;
|
|
||||||
noremap = true;
|
|
||||||
desc = "Browse recent files";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = ":Telescope file_browser<CR>";
|
|
||||||
key = "<leader>fb";
|
|
||||||
options = {
|
|
||||||
silent = true;
|
|
||||||
noremap = true;
|
|
||||||
desc = "Directory-based file browser";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = ":Neotree toggle reveal<CR>";
|
|
||||||
key = "<leader>nt";
|
|
||||||
options = {
|
|
||||||
silent = true;
|
|
||||||
noremap = true;
|
|
||||||
desc = "Toggle file tree";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = ":Neotree focus<CR>";
|
|
||||||
key = "<leader>nf";
|
|
||||||
options = {
|
|
||||||
silent = true;
|
|
||||||
noremap = true;
|
|
||||||
desc = "Toggle file tree focus";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = ":Glance definitions<CR>";
|
|
||||||
key = "<leader>gd";
|
|
||||||
options = {
|
|
||||||
silent = true;
|
|
||||||
noremap = true;
|
|
||||||
desc = "Glance definitions";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = ":Glance references<CR>";
|
|
||||||
key = "<leader>gr";
|
|
||||||
options = {
|
|
||||||
silent = true;
|
|
||||||
noremap = true;
|
|
||||||
desc = "Glance references";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = "\"+y<CR>";
|
|
||||||
key = "<leader>y";
|
|
||||||
mode = [ "v" ];
|
|
||||||
options = {
|
|
||||||
silent = true;
|
|
||||||
noremap = true;
|
|
||||||
desc = "Glance references";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,68 +0,0 @@
|
|||||||
{
|
|
||||||
programs.nixvim.plugins = {
|
|
||||||
blink-cmp = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
completion = {
|
|
||||||
accept = {
|
|
||||||
auto_brackets = {
|
|
||||||
enabled = true;
|
|
||||||
semantic_token_resolution = {
|
|
||||||
enabled = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
documentation = {
|
|
||||||
auto_show = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
keymap = {
|
|
||||||
"<C-e>" = [
|
|
||||||
"hide"
|
|
||||||
];
|
|
||||||
"<C-d>" = [
|
|
||||||
"scroll_documentation_up"
|
|
||||||
"fallback"
|
|
||||||
];
|
|
||||||
"<C-f>" = [
|
|
||||||
"scroll_documentation_down"
|
|
||||||
"fallback"
|
|
||||||
];
|
|
||||||
"<Tab>" = [
|
|
||||||
"select_next"
|
|
||||||
"fallback"
|
|
||||||
];
|
|
||||||
"<S-Tab>" = [
|
|
||||||
"select_prev"
|
|
||||||
"fallback"
|
|
||||||
];
|
|
||||||
"<C-space>" = [
|
|
||||||
"show"
|
|
||||||
"show_documentation"
|
|
||||||
"hide_documentation"
|
|
||||||
];
|
|
||||||
"<CR>" = [
|
|
||||||
"select_and_accept"
|
|
||||||
"fallback"
|
|
||||||
];
|
|
||||||
"<Down>" = [
|
|
||||||
"select_next"
|
|
||||||
"fallback"
|
|
||||||
];
|
|
||||||
"<Up>" = [
|
|
||||||
"select_prev"
|
|
||||||
"fallback"
|
|
||||||
];
|
|
||||||
"<S-s>" = [
|
|
||||||
"snippet_backward"
|
|
||||||
"fallback"
|
|
||||||
];
|
|
||||||
"<s>" = [
|
|
||||||
"snippet_forward"
|
|
||||||
"fallback"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
{
|
|
||||||
programs.nixvim.plugins = {
|
|
||||||
codecompanion = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
adapters = {
|
|
||||||
ollama = {
|
|
||||||
__raw = ''
|
|
||||||
function()
|
|
||||||
return require('codecompanion.adapters').extend('ollama', {
|
|
||||||
env = {
|
|
||||||
url = "http://miguel-pc:11434",
|
|
||||||
},
|
|
||||||
schema = {
|
|
||||||
model = {
|
|
||||||
default = 'qwen2.5-coder:14b',
|
|
||||||
},
|
|
||||||
num_ctx = {
|
|
||||||
default = 32768,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
end
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
opts = {
|
|
||||||
log_level = "TRACE";
|
|
||||||
send_code = true;
|
|
||||||
use_default_actions = true;
|
|
||||||
use_default_prompts = true;
|
|
||||||
};
|
|
||||||
strategies = {
|
|
||||||
agent = {
|
|
||||||
adapter = "ollama";
|
|
||||||
};
|
|
||||||
chat = {
|
|
||||||
adapter = "ollama";
|
|
||||||
};
|
|
||||||
inline = {
|
|
||||||
adapter = "ollama";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,56 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
hostname,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
#./blink-cmp.nix
|
|
||||||
./glance.nix
|
|
||||||
./illuminate.nix
|
|
||||||
./indent-blankline.nix
|
|
||||||
./lint.nix
|
|
||||||
./lsp.nix
|
|
||||||
./scrollview.nix
|
|
||||||
./startup.nix
|
|
||||||
./telescope.nix
|
|
||||||
./which-key.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
programs.nixvim.plugins = {
|
|
||||||
cmp-nvim-lsp.enable = true;
|
|
||||||
cmp.enable = true;
|
|
||||||
cmp_luasnip.enable = true;
|
|
||||||
colorizer.enable = true;
|
|
||||||
comment.enable = true;
|
|
||||||
diffview.enable = true;
|
|
||||||
direnv.enable = true;
|
|
||||||
gitblame.enable = true;
|
|
||||||
gitsigns.enable = true;
|
|
||||||
# hardtime.enable = true;
|
|
||||||
intellitab.enable = true;
|
|
||||||
lastplace.enable = true;
|
|
||||||
lsp-format.enable = true;
|
|
||||||
lsp-lines.enable = true;
|
|
||||||
lsp-signature.enable = true;
|
|
||||||
lualine.enable = true;
|
|
||||||
luasnip.enable = true;
|
|
||||||
markview.enable = true;
|
|
||||||
multicursors.enable = true;
|
|
||||||
neo-tree.enable = true;
|
|
||||||
neoscroll.enable = true;
|
|
||||||
nvim-autopairs.enable = true;
|
|
||||||
refactoring.enable = true;
|
|
||||||
toggleterm.enable = true;
|
|
||||||
treesitter.enable = true;
|
|
||||||
web-devicons.enable = true;
|
|
||||||
zig.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.nixvim.performance.byteCompileLua = {
|
|
||||||
enable = true;
|
|
||||||
plugins = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
programs.nixvim.plugins = {
|
|
||||||
glance = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
border.enable = true;
|
|
||||||
theme.mode = "darken";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
{
|
|
||||||
programs.nixvim.plugins = {
|
|
||||||
illuminate.settings = {
|
|
||||||
enable = true;
|
|
||||||
delay = 100;
|
|
||||||
minCountToHighlight = 1;
|
|
||||||
modesAllowlist = [
|
|
||||||
"n"
|
|
||||||
"i"
|
|
||||||
"v"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
{
|
|
||||||
programs.nixvim.plugins = {
|
|
||||||
indent-blankline = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
scope = {
|
|
||||||
show_end = true;
|
|
||||||
show_exact_scope = true;
|
|
||||||
show_start = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
programs.nixvim.plugins = {
|
|
||||||
lint = {
|
|
||||||
enable = true;
|
|
||||||
autoCmd = {
|
|
||||||
event = [
|
|
||||||
"InsertLeave"
|
|
||||||
"TextChanged"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
programs.nixvim.plugins = {
|
|
||||||
lsp = {
|
|
||||||
enable = true;
|
|
||||||
servers = {
|
|
||||||
nil_ls.enable = true;
|
|
||||||
nixd = {
|
|
||||||
enable = true;
|
|
||||||
extraOptions = {
|
|
||||||
offset_encoding = "utf-8";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
html.enable = true;
|
|
||||||
ts_ls.enable = true;
|
|
||||||
#tailwindcss.enable = true;
|
|
||||||
gopls.enable = true;
|
|
||||||
golangci_lint_ls.enable = true;
|
|
||||||
eslint.enable = true;
|
|
||||||
templ.enable = true;
|
|
||||||
pylsp.enable = true;
|
|
||||||
sqls.enable = true;
|
|
||||||
ocamllsp = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.ocamlPackages.ocaml-lsp;
|
|
||||||
};
|
|
||||||
#rust_analyzer = { #Build Failure
|
|
||||||
# enable = true;
|
|
||||||
# installCargo = true;
|
|
||||||
# installRustc = true;
|
|
||||||
#};
|
|
||||||
zls.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
{
|
|
||||||
programs.nixvim.plugins = {
|
|
||||||
scrollview = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
signs_on_startup = [
|
|
||||||
"all"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,63 +0,0 @@
|
|||||||
{
|
|
||||||
programs.nixvim.plugins = {
|
|
||||||
startup = {
|
|
||||||
enable = true;
|
|
||||||
settings.parts = [
|
|
||||||
"header"
|
|
||||||
"body"
|
|
||||||
];
|
|
||||||
settings.sections = {
|
|
||||||
header = {
|
|
||||||
align = "center";
|
|
||||||
content = {
|
|
||||||
__raw = "require('startup.headers').hydra_header";
|
|
||||||
};
|
|
||||||
defaultColor = "";
|
|
||||||
foldSection = false;
|
|
||||||
highlight = "Statement";
|
|
||||||
margin = 5;
|
|
||||||
oldfilesAmount = 0;
|
|
||||||
title = "Header";
|
|
||||||
type = "text";
|
|
||||||
};
|
|
||||||
body = {
|
|
||||||
align = "center";
|
|
||||||
content = [
|
|
||||||
[
|
|
||||||
" Find File"
|
|
||||||
"Telescope find_files"
|
|
||||||
"<leader>ff"
|
|
||||||
]
|
|
||||||
[
|
|
||||||
" Find Word"
|
|
||||||
"Telescope live_grep"
|
|
||||||
"<leader>lg"
|
|
||||||
]
|
|
||||||
[
|
|
||||||
" Recent Files"
|
|
||||||
"Telescope oldfiles"
|
|
||||||
"<leader>of"
|
|
||||||
]
|
|
||||||
[
|
|
||||||
" File Browser"
|
|
||||||
"Telescope file_browser"
|
|
||||||
"<leader>fb"
|
|
||||||
]
|
|
||||||
[
|
|
||||||
" New File"
|
|
||||||
"lua require'startup'.new_file()"
|
|
||||||
"<leader>nf"
|
|
||||||
]
|
|
||||||
];
|
|
||||||
defaultColor = "";
|
|
||||||
foldSection = false;
|
|
||||||
highlight = "String";
|
|
||||||
margin = 5;
|
|
||||||
oldfilesAmount = 0;
|
|
||||||
title = "Basic Commands";
|
|
||||||
type = "mapping";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
{
|
|
||||||
programs.nixvim.plugins = {
|
|
||||||
telescope = {
|
|
||||||
enable = true;
|
|
||||||
extensions.file-browser = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
hidden = {
|
|
||||||
file_browser = true;
|
|
||||||
folder_browser = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
{
|
|
||||||
programs.nixvim.plugins = {
|
|
||||||
which-key = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
preset = "modern";
|
|
||||||
delay = 500;
|
|
||||||
expand = 1;
|
|
||||||
notify = false;
|
|
||||||
win = {
|
|
||||||
border = "single";
|
|
||||||
padding = [
|
|
||||||
1
|
|
||||||
1
|
|
||||||
];
|
|
||||||
wo.winblend = 10;
|
|
||||||
};
|
|
||||||
replace = {
|
|
||||||
desc = [
|
|
||||||
[
|
|
||||||
"<space>"
|
|
||||||
"SPACE"
|
|
||||||
]
|
|
||||||
[
|
|
||||||
"<leader>"
|
|
||||||
"SPACE"
|
|
||||||
]
|
|
||||||
[
|
|
||||||
"<[cC][rR]>"
|
|
||||||
"RETURN"
|
|
||||||
]
|
|
||||||
[
|
|
||||||
"<[tT][aA][bB]>"
|
|
||||||
"TAB"
|
|
||||||
]
|
|
||||||
[
|
|
||||||
"<[bB][sS]>"
|
|
||||||
"BACKSPACE"
|
|
||||||
]
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,90 +0,0 @@
|
|||||||
{ lib, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
programs = {
|
|
||||||
starship = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
add_newline = true;
|
|
||||||
format = lib.concatStrings [
|
|
||||||
"$time"
|
|
||||||
"$directory"
|
|
||||||
"$git_branch"
|
|
||||||
"$git_status"
|
|
||||||
"$hostname"
|
|
||||||
"$golang"
|
|
||||||
"direnv"
|
|
||||||
"$status"
|
|
||||||
];
|
|
||||||
|
|
||||||
right_format = lib.concatStrings [
|
|
||||||
"$cmd_duration"
|
|
||||||
];
|
|
||||||
|
|
||||||
cmd_duration = {
|
|
||||||
disabled = false;
|
|
||||||
show_notifications = false;
|
|
||||||
min_time = 2000;
|
|
||||||
format = "[$duration](bold yellow)";
|
|
||||||
};
|
|
||||||
|
|
||||||
directory = {
|
|
||||||
style = "cyan";
|
|
||||||
format = ''\[[$path]($style)\] '';
|
|
||||||
};
|
|
||||||
|
|
||||||
direnv = {
|
|
||||||
disabled = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
git_branch = {
|
|
||||||
style = "bold cyan";
|
|
||||||
format = ''\[[$symbol$branch(:$remote_branch)]($style)\] '';
|
|
||||||
};
|
|
||||||
|
|
||||||
git_status = {
|
|
||||||
format = "[($all_status$ahead_behind )]($style)";
|
|
||||||
conflicted = "🏳";
|
|
||||||
ahead = "⇡\${count}";
|
|
||||||
diverged = "⇕⇡\${ahead_count}⇣\${behind_count}";
|
|
||||||
behind = "⇣\${count}";
|
|
||||||
up_to_date = "✓";
|
|
||||||
untracked = "🤷";
|
|
||||||
stashed = "📦";
|
|
||||||
modified = "📝";
|
|
||||||
staged = ''[++\($count\)](green)'';
|
|
||||||
renamed = "👅";
|
|
||||||
deleted = "🗑";
|
|
||||||
};
|
|
||||||
|
|
||||||
golang = {
|
|
||||||
format = ''\[[$symbol($version)]($style)\]'';
|
|
||||||
};
|
|
||||||
|
|
||||||
hostname = {
|
|
||||||
format = "[$ssh_symbol$hostname]($style) ";
|
|
||||||
};
|
|
||||||
|
|
||||||
rust = {
|
|
||||||
format = ''[$symbol($version )]($style)'';
|
|
||||||
};
|
|
||||||
|
|
||||||
status = {
|
|
||||||
disabled = false;
|
|
||||||
success_symbol = "[❱](bold red)[❱](bold yellow)[❱](bold green) ";
|
|
||||||
symbol = "[❱❱❱](bold red) ";
|
|
||||||
format = "$symbol";
|
|
||||||
};
|
|
||||||
|
|
||||||
time = {
|
|
||||||
disabled = false;
|
|
||||||
style = "cyan";
|
|
||||||
format = ''\[[$time]($style)\] '';
|
|
||||||
use_12hr = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
{ pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
programs = {
|
|
||||||
tmux = {
|
|
||||||
enable = true;
|
|
||||||
mouse = true;
|
|
||||||
baseIndex = 1;
|
|
||||||
keyMode = "vi";
|
|
||||||
historyLimit = 5000;
|
|
||||||
prefix = "C-a";
|
|
||||||
terminal = "xterm-ghostty";
|
|
||||||
disableConfirmationPrompt = true;
|
|
||||||
plugins = with pkgs; [
|
|
||||||
tmuxPlugins.vim-tmux-navigator
|
|
||||||
tmuxPlugins.tilish
|
|
||||||
tmuxPlugins.resurrect
|
|
||||||
tmuxPlugins.gruvbox
|
|
||||||
tmuxPlugins.continuum
|
|
||||||
tmuxPlugins.prefix-highlight
|
|
||||||
];
|
|
||||||
extraConfig = "bind C-l send-keys 'C-l'";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,63 +0,0 @@
|
|||||||
{ config, configPath, hostname, ... }:
|
|
||||||
{
|
|
||||||
programs = {
|
|
||||||
zsh = {
|
|
||||||
enable = true;
|
|
||||||
enableCompletion = true;
|
|
||||||
autosuggestion.enable = true;
|
|
||||||
syntaxHighlighting.enable = true;
|
|
||||||
historySubstringSearch.enable = true;
|
|
||||||
|
|
||||||
shellAliases = {
|
|
||||||
cd = "z";
|
|
||||||
cat = "bat";
|
|
||||||
catp = "bat -pP";
|
|
||||||
find = "fd";
|
|
||||||
grep = "rg";
|
|
||||||
lg = "lazygit";
|
|
||||||
ll = "eza -la";
|
|
||||||
ls = "eza --color=auto";
|
|
||||||
lt = "eza --tree";
|
|
||||||
open = "xdg-open";
|
|
||||||
locate = "sudo plocate";
|
|
||||||
tulpn = "sudo netstat -tulpn";
|
|
||||||
rebuild = if hostname == "eva-02"
|
|
||||||
then
|
|
||||||
"sudo darwin-rebuild switch --flake .#eva-02"
|
|
||||||
else
|
|
||||||
"sudo nixos-rebuild switch --flake /etc/nixos#$(uname -n)";
|
|
||||||
};
|
|
||||||
|
|
||||||
# profileExtra = ''
|
|
||||||
# export SSH_AUTH_SOCK=~/.1password/agent.sock
|
|
||||||
# '';
|
|
||||||
|
|
||||||
profileExtra = if hostname == "eva-02"
|
|
||||||
then ''
|
|
||||||
export SSH_AUTH_SOCK="~/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock"
|
|
||||||
''
|
|
||||||
else ''
|
|
||||||
export SSH_AUTH_SOCK=~/.1password/agent.sock
|
|
||||||
'';
|
|
||||||
|
|
||||||
initContent = ''
|
|
||||||
fastfetch
|
|
||||||
'';
|
|
||||||
|
|
||||||
history = {
|
|
||||||
size = 10000;
|
|
||||||
path = "${config.xdg.dataHome}/zsh/history";
|
|
||||||
};
|
|
||||||
|
|
||||||
oh-my-zsh = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
mcfly = {
|
|
||||||
enable = true;
|
|
||||||
fzf.enable = true;
|
|
||||||
fuzzySearchFactor = 5;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 38 KiB |
0
home-manager/fastfetch/assets/image.png
Normal file
0
home-manager/fastfetch/assets/image.png
Normal file
@@ -1,22 +1,15 @@
|
|||||||
{
|
|
||||||
hostname,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
programs = {
|
programs = {
|
||||||
fastfetch = {
|
fastfetch = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
logo = {
|
logo = {
|
||||||
|
source = "/etc/nixos/home-manager/fastfetch/assets/evangelion-mecha-neon-genesis-desktop-wallpaper-cover.jpg";
|
||||||
source = lib.mkIf (hostname == "eva-01") "/etc/nixos/assets/pfp/eva-01.jpg";
|
|
||||||
type = "kitty";
|
type = "kitty";
|
||||||
height = 20;
|
height = 20;
|
||||||
width = 60;
|
width = 60;
|
||||||
padding = {
|
padding = {
|
||||||
top = 2; # 2;
|
top = 2; #2;
|
||||||
left = 2; # 3;
|
left = 2; # 3;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -1,27 +1,16 @@
|
|||||||
{
|
{ config, pkgs, inputs, ... }:
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
inputs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./commands/commands.nix
|
./cli-tools.nix
|
||||||
./programs/programs.nix
|
./fastfetch/fastfetch.nix
|
||||||
inputs.nixvim.homeModules.nixvim
|
./direnv.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
# Home Manager needs a bit of information about you and the paths it should
|
# Home Manager needs a bit of information about you and the paths it should
|
||||||
# manage.
|
# manage.
|
||||||
home.username = "rogueking";
|
home.username = "USER";
|
||||||
|
home.homeDirectory = "/home/USER";
|
||||||
# home.homeDirectory = "/Users/rogueking";
|
|
||||||
home.homeDirectory =
|
|
||||||
if pkgs.stdenv.isDarwin then
|
|
||||||
"/Users/rogueking" # Path for macOS
|
|
||||||
else
|
|
||||||
"/home/rogueking"; # Path for Linux
|
|
||||||
|
|
||||||
# This value determines the Home Manager release that your configuration is
|
# This value determines the Home Manager release that your configuration is
|
||||||
# compatible with. This helps avoid breakage when a new Home Manager release
|
# compatible with. This helps avoid breakage when a new Home Manager release
|
||||||
@@ -30,19 +19,16 @@
|
|||||||
# You should not change this value, even if you update Home Manager. If you do
|
# You should not change this value, even if you update Home Manager. If you do
|
||||||
# want to update the value, then make sure to first check the Home Manager
|
# want to update the value, then make sure to first check the Home Manager
|
||||||
# release notes.
|
# release notes.
|
||||||
home.stateVersion = "25.05"; # Please read the comment before changing.
|
home.stateVersion = "24.11"; # Please read the comment before changing.
|
||||||
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
# Allow specific insecure packages
|
fonts.fontconfig.enable = true;
|
||||||
nixpkgs.config.permittedInsecurePackages = [
|
|
||||||
#"python3.12-ecdsa-0.19.1"
|
|
||||||
];
|
|
||||||
|
|
||||||
# The home.packages option allows you to install Nix packages into your
|
# The home.packages option allows you to install Nix packages into your
|
||||||
# environment.
|
# environment.
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
|
#(pkgs.nerdfonts.override { fonts = [ "FiraCode" "DroidSansMono" ]; })
|
||||||
];
|
];
|
||||||
|
|
||||||
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
||||||
|
|||||||
@@ -1,50 +0,0 @@
|
|||||||
{
|
|
||||||
hostname,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
programs.ghostty = {
|
|
||||||
enable = true;
|
|
||||||
package = lib.mkIf (hostname == "eva-02") null;
|
|
||||||
enableZshIntegration = true;
|
|
||||||
settings = {
|
|
||||||
# Use explicit theme instead of relying on system theme detection
|
|
||||||
theme = "Adwaita Dark";
|
|
||||||
|
|
||||||
# Explicitly set color scheme preference to avoid GTK warnings
|
|
||||||
#gtk-adwaita = true;
|
|
||||||
|
|
||||||
gtk-single-instance = true;
|
|
||||||
|
|
||||||
#custom-shader = "./shaders/tft.glsl";
|
|
||||||
|
|
||||||
font-family = "JetBrainsMono Nerd Font";
|
|
||||||
font-family-italic = "Maple Mono";
|
|
||||||
font-family-bold-italic = "Maple Mono";
|
|
||||||
font-size = 12;
|
|
||||||
bold-is-bright = true;
|
|
||||||
|
|
||||||
window-decoration = false;
|
|
||||||
background-opacity = 0.8;
|
|
||||||
#background-blur-radius = 120;
|
|
||||||
window-save-state = "always";
|
|
||||||
|
|
||||||
mouse-hide-while-typing = true;
|
|
||||||
cursor-invert-fg-bg = true;
|
|
||||||
|
|
||||||
keybind = [
|
|
||||||
"global:cmd+grave_accent=toggle_quick_terminal"
|
|
||||||
"super+shift+enter=new_window"
|
|
||||||
"super+shift+k=new_split:down"
|
|
||||||
"super+shift+l=new_split:right"
|
|
||||||
"super+shift+x=close_window"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
#home.file.".config/ghostty/shaders" = {
|
|
||||||
# enable = true;
|
|
||||||
# source = ./shaders;
|
|
||||||
# recursive = true;
|
|
||||||
#};
|
|
||||||
}
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
{
|
|
||||||
services.hypridle = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
general = {
|
|
||||||
lock_cmd = "pidof hyprlock || hyprlock";
|
|
||||||
# unlock_cmd = "killall hyprlock";
|
|
||||||
before_sleep_cmd = "loginctl lock-session";
|
|
||||||
after_sleep_cmd = "hyprctl dispatch dpms on";
|
|
||||||
ignore_dbus_inhibit = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
listeners = [
|
|
||||||
{
|
|
||||||
timeout = 30;
|
|
||||||
on-timeout = "pidof hyprlock && hyprctl dispatch dpms off";
|
|
||||||
on-resume = "pidof hyprlock && hyprctl dispatch dpms on";
|
|
||||||
|
|
||||||
}
|
|
||||||
{
|
|
||||||
timeout = 540;
|
|
||||||
on-timeout = "notify-send 'You are idle!'";
|
|
||||||
on-resume = "notify-send 'Welcome back!'";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
timeout = 600;
|
|
||||||
on-timeout = "loginctl lock-session";
|
|
||||||
on-resume = "notify-send 'Desktop Unlocked!'";
|
|
||||||
}
|
|
||||||
# {
|
|
||||||
# timeout = 1200;
|
|
||||||
# on-timeout = "systemctl suspend";
|
|
||||||
# on-resume = "notify-send 'Welcome back to your desktop!'";
|
|
||||||
# }
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,164 +0,0 @@
|
|||||||
{ config, configPath, ... }:
|
|
||||||
{
|
|
||||||
wayland.windowManager.hyprland = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
# === Monitor configuration ===
|
|
||||||
monitor = "eDP-1, 2560x1440@60.03300, 0x0, 1.25";
|
|
||||||
|
|
||||||
# === Autostart / Exec commands ===
|
|
||||||
exec-once = [
|
|
||||||
"sleep 1 && nm-applet --indicator"
|
|
||||||
"waybar"
|
|
||||||
"ghostty"
|
|
||||||
"swww-daemon"
|
|
||||||
"eww daemon"
|
|
||||||
"swww img ${configPath}/assets/ena/wallpaper.png"
|
|
||||||
];
|
|
||||||
|
|
||||||
# === Input settings ===
|
|
||||||
input = {
|
|
||||||
kb_layout = "us";
|
|
||||||
kb_variant = "";
|
|
||||||
kb_model = "";
|
|
||||||
kb_options = "";
|
|
||||||
kb_rules = "";
|
|
||||||
follow_mouse = true;
|
|
||||||
touchpad = {
|
|
||||||
natural_scroll = false;
|
|
||||||
};
|
|
||||||
sensitivity = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
# === General settings ===
|
|
||||||
general = {
|
|
||||||
gaps_in = 2.5;
|
|
||||||
gaps_out = 5;
|
|
||||||
border_size = 2;
|
|
||||||
"col.active_border" = "rgb(cdd6f4)";
|
|
||||||
"col.inactive_border" = "rgba(595959aa)";
|
|
||||||
layout = "dwindle";
|
|
||||||
};
|
|
||||||
|
|
||||||
misc = {
|
|
||||||
disable_hyprland_logo = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# === Decoration settings ===
|
|
||||||
decoration = {
|
|
||||||
rounding = 3;
|
|
||||||
blur = {
|
|
||||||
enabled = true;
|
|
||||||
size = 7;
|
|
||||||
passes = 3;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# === Animations ===
|
|
||||||
animations = {
|
|
||||||
enabled = true;
|
|
||||||
bezier = "myBezier, 0.05, 0.9, 0.1, 1.05";
|
|
||||||
animation = [
|
|
||||||
"windows, 1, 7, myBezier"
|
|
||||||
"windowsOut, 1, 7, default, popin 80%"
|
|
||||||
"border, 1, 10, default"
|
|
||||||
"fade, 1, 7, default"
|
|
||||||
"workspaces, 1, 6, default"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# === Dwindle layout options ===
|
|
||||||
dwindle = {
|
|
||||||
pseudotile = true;
|
|
||||||
preserve_split = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# === Gestures ===
|
|
||||||
gestures = {
|
|
||||||
workspace_swipe = true;
|
|
||||||
workspace_swipe_fingers = 3;
|
|
||||||
workspace_swipe_invert = true;
|
|
||||||
workspace_swipe_distance = 200;
|
|
||||||
workspace_swipe_forever = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# === Per-device configuration ===
|
|
||||||
device = [
|
|
||||||
{
|
|
||||||
name = "epic-mouse-v1";
|
|
||||||
sensitivity = -0.5;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
# === Window rules (v2) ===
|
|
||||||
windowrulev2 = [
|
|
||||||
"opacity 0.8 0.8,class:^(dolphin)$"
|
|
||||||
];
|
|
||||||
|
|
||||||
# === Modifier key ===
|
|
||||||
"$mod" = "SUPER";
|
|
||||||
|
|
||||||
# === Key bindings ===
|
|
||||||
bind = [
|
|
||||||
"$mod, T, exec, ghostty"
|
|
||||||
"$mod, Q, killactive"
|
|
||||||
"$mod, L, exec, hyprlock"
|
|
||||||
"$mod, M, exec, wlogout --protocol layer-shell"
|
|
||||||
"$mod SHIFT, M, exit"
|
|
||||||
"$mod, E, exec, dolphin"
|
|
||||||
"$mod, V, togglefloating"
|
|
||||||
"$mod, SPACE, exec, rofi -show drun"
|
|
||||||
"$mod, P, pseudo"
|
|
||||||
"$mod, J, togglesplit"
|
|
||||||
"$mod, S, exec, flameshot full"
|
|
||||||
"$mod SHIFT, S, exec, flameshot gui"
|
|
||||||
|
|
||||||
"$mod, left, movefocus, l"
|
|
||||||
"$mod, right, movefocus, r"
|
|
||||||
"$mod, up, movefocus, u"
|
|
||||||
"$mod, down, movefocus, d"
|
|
||||||
|
|
||||||
"$mod SHIFT, left, movewindow, l"
|
|
||||||
"$mod SHIFT, right, movewindow, r"
|
|
||||||
"$mod SHIFT, up, movewindow, u"
|
|
||||||
"$mod SHIFT, down, movewindow, d"
|
|
||||||
|
|
||||||
"$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, movetoworkspace, 1"
|
|
||||||
"$mod SHIFT, 2, movetoworkspace, 2"
|
|
||||||
"$mod SHIFT, 3, movetoworkspace, 3"
|
|
||||||
"$mod SHIFT, 4, movetoworkspace, 4"
|
|
||||||
"$mod SHIFT, 5, movetoworkspace, 5"
|
|
||||||
"$mod SHIFT, 6, movetoworkspace, 6"
|
|
||||||
"$mod SHIFT, 7, movetoworkspace, 7"
|
|
||||||
"$mod SHIFT, 8, movetoworkspace, 8"
|
|
||||||
"$mod SHIFT, 9, movetoworkspace, 9"
|
|
||||||
"$mod SHIFT, 0, movetoworkspace, 10"
|
|
||||||
|
|
||||||
"$mod, mouse_down, workspace, e+1"
|
|
||||||
"$mod, mouse_up, workspace, e-1"
|
|
||||||
|
|
||||||
"$mod SHIFT, L, resizeactive, 10 0"
|
|
||||||
"$mod SHIFT, H, resizeactive, -10 0"
|
|
||||||
"$mod SHIFT, K, resizeactive, 0 -10"
|
|
||||||
"$mod SHIFT, J, resizeactive, 0 10"
|
|
||||||
];
|
|
||||||
|
|
||||||
# === Mouse bindings ===
|
|
||||||
bindm = [
|
|
||||||
"$mod, mouse:272, movewindow"
|
|
||||||
"$mod, mouse:273, resizewindow"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,48 +0,0 @@
|
|||||||
{ configPath, ... }:
|
|
||||||
{
|
|
||||||
programs.hyprlock = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
general = {
|
|
||||||
disable_loading_bar = true;
|
|
||||||
grace = 10;
|
|
||||||
hide_cursor = true;
|
|
||||||
no_fade_in = false;
|
|
||||||
};
|
|
||||||
background = [
|
|
||||||
{
|
|
||||||
path = "${configPath}/assets/ena/wallpaper.png";
|
|
||||||
blur_passes = 3;
|
|
||||||
blur_size = 8;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
image = [
|
|
||||||
{
|
|
||||||
path = "${configPath}/assets/pfp.jpg";
|
|
||||||
size = 150;
|
|
||||||
border_size = 4;
|
|
||||||
border_color = "rgb(0C96F9)";
|
|
||||||
rounding = -1;
|
|
||||||
position = "0, 200";
|
|
||||||
halign = "center";
|
|
||||||
valign = "center";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
input-field = [
|
|
||||||
{
|
|
||||||
size = "200, 50";
|
|
||||||
position = "0, -80";
|
|
||||||
monitor = "";
|
|
||||||
dots_center = true;
|
|
||||||
fade_on_empty = false;
|
|
||||||
font_color = "rgb(CFE6F4)";
|
|
||||||
inner_color = "rgb(657DC2)";
|
|
||||||
outer_color = "rgb(0D0E15)";
|
|
||||||
outline_thickness = 5;
|
|
||||||
placeholder_text = "Password...";
|
|
||||||
shadow_passes = 2;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,275 +0,0 @@
|
|||||||
{
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
betterTransition = "all 0.3s cubic-bezier(.55,-0.68,.48,1.682)";
|
|
||||||
clock24h = false;
|
|
||||||
in
|
|
||||||
with lib;
|
|
||||||
{
|
|
||||||
# Configure & Theme Waybar
|
|
||||||
programs.waybar = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.waybar;
|
|
||||||
settings = [
|
|
||||||
{
|
|
||||||
layer = "top";
|
|
||||||
position = "top";
|
|
||||||
modules-center = [ "hyprland/workspaces" ];
|
|
||||||
modules-left = [
|
|
||||||
"custom/startmenu"
|
|
||||||
"hyprland/window"
|
|
||||||
"pulseaudio"
|
|
||||||
"cpu"
|
|
||||||
"memory"
|
|
||||||
"idle_inhibitor"
|
|
||||||
];
|
|
||||||
modules-right = [
|
|
||||||
"custom/hyprbindings"
|
|
||||||
"custom/notification"
|
|
||||||
"custom/exit"
|
|
||||||
"battery"
|
|
||||||
"tray"
|
|
||||||
"clock"
|
|
||||||
];
|
|
||||||
|
|
||||||
"hyprland/workspaces" = {
|
|
||||||
format = "{name}";
|
|
||||||
format-icons = {
|
|
||||||
default = " ";
|
|
||||||
active = " ";
|
|
||||||
urgent = " ";
|
|
||||||
};
|
|
||||||
on-scroll-up = "hyprctl dispatch workspace e+1";
|
|
||||||
on-scroll-down = "hyprctl dispatch workspace e-1";
|
|
||||||
};
|
|
||||||
"clock" = {
|
|
||||||
format = if clock24h == true then '' {:L%H:%M}'' else '' {:L%I:%M %p}'';
|
|
||||||
tooltip = true;
|
|
||||||
tooltip-format = "<big>{:%A, %d.%B %Y }</big>\n<tt><small>{calendar}</small></tt>";
|
|
||||||
};
|
|
||||||
"hyprland/window" = {
|
|
||||||
max-length = 22;
|
|
||||||
separate-outputs = false;
|
|
||||||
rewrite = {
|
|
||||||
"" = " 🙈 No Windows? ";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
"memory" = {
|
|
||||||
interval = 5;
|
|
||||||
format = " {}%";
|
|
||||||
tooltip = true;
|
|
||||||
};
|
|
||||||
"cpu" = {
|
|
||||||
interval = 5;
|
|
||||||
format = " {usage:2}%";
|
|
||||||
tooltip = true;
|
|
||||||
};
|
|
||||||
"disk" = {
|
|
||||||
format = " {free}";
|
|
||||||
tooltip = true;
|
|
||||||
};
|
|
||||||
"network" = {
|
|
||||||
format-icons = [
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
];
|
|
||||||
format-ethernet = " {bandwidthDownOctets}";
|
|
||||||
format-wifi = "{icon} {signalStrength}%";
|
|
||||||
format-disconnected = "";
|
|
||||||
tooltip = false;
|
|
||||||
};
|
|
||||||
"tray" = {
|
|
||||||
spacing = 12;
|
|
||||||
};
|
|
||||||
"pulseaudio" = {
|
|
||||||
format = "{icon} {volume}% {format_source}";
|
|
||||||
format-bluetooth = "{volume}% {icon} {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 = "sleep 0.1 && pavucontrol";
|
|
||||||
};
|
|
||||||
"custom/exit" = {
|
|
||||||
tooltip = false;
|
|
||||||
format = "";
|
|
||||||
on-click = "sleep 0.1 && wlogout";
|
|
||||||
};
|
|
||||||
"custom/startmenu" = {
|
|
||||||
tooltip = false;
|
|
||||||
format = "";
|
|
||||||
# exec = "rofi -show drun";
|
|
||||||
on-click = "sleep 0.1 && rofi-launcher";
|
|
||||||
};
|
|
||||||
"custom/hyprbindings" = {
|
|
||||||
tooltip = false;
|
|
||||||
format = "";
|
|
||||||
on-click = "sleep 0.1 && list-keybinds";
|
|
||||||
};
|
|
||||||
"idle_inhibitor" = {
|
|
||||||
format = "{icon}";
|
|
||||||
format-icons = {
|
|
||||||
activated = "";
|
|
||||||
deactivated = "";
|
|
||||||
};
|
|
||||||
tooltip = "true";
|
|
||||||
};
|
|
||||||
"custom/notification" = {
|
|
||||||
tooltip = false;
|
|
||||||
format = "{icon} {}";
|
|
||||||
format-icons = {
|
|
||||||
notification = "<span foreground='red'><sup></sup></span>";
|
|
||||||
none = "";
|
|
||||||
dnd-notification = "<span foreground='red'><sup></sup></span>";
|
|
||||||
dnd-none = "";
|
|
||||||
inhibited-notification = "<span foreground='red'><sup></sup></span>";
|
|
||||||
inhibited-none = "";
|
|
||||||
dnd-inhibited-notification = "<span foreground='red'><sup></sup></span>";
|
|
||||||
dnd-inhibited-none = "";
|
|
||||||
};
|
|
||||||
return-type = "json";
|
|
||||||
exec-if = "which swaync-client";
|
|
||||||
exec = "swaync-client -swb";
|
|
||||||
on-click = "sleep 0.1 && task-waybar";
|
|
||||||
escape = true;
|
|
||||||
};
|
|
||||||
"battery" = {
|
|
||||||
states = {
|
|
||||||
warning = 30;
|
|
||||||
critical = 15;
|
|
||||||
};
|
|
||||||
format = "{icon} {capacity}%";
|
|
||||||
format-charging = " {capacity}%";
|
|
||||||
format-plugged = " {capacity}%";
|
|
||||||
format-icons = [
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
];
|
|
||||||
on-click = "";
|
|
||||||
tooltip = false;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
style = concatStrings [
|
|
||||||
''
|
|
||||||
* {
|
|
||||||
font-family: JetBrainsMono Nerd Font Mono;
|
|
||||||
font-size: 16px;
|
|
||||||
border-radius: 0px;
|
|
||||||
border: none;
|
|
||||||
min-height: 0px;
|
|
||||||
}
|
|
||||||
window#waybar {
|
|
||||||
background: rgba(0,0,0,0);
|
|
||||||
}
|
|
||||||
#workspaces {
|
|
||||||
color: #${config.lib.stylix.colors.base00};
|
|
||||||
background: #${config.lib.stylix.colors.base01};
|
|
||||||
margin: 4px 4px;
|
|
||||||
padding: 5px 5px;
|
|
||||||
border-radius: 16px;
|
|
||||||
}
|
|
||||||
#workspaces button {
|
|
||||||
font-weight: bold;
|
|
||||||
padding: 0px 5px;
|
|
||||||
margin: 0px 3px;
|
|
||||||
border-radius: 16px;
|
|
||||||
color: #${config.lib.stylix.colors.base00};
|
|
||||||
background: linear-gradient(45deg, #${config.lib.stylix.colors.base08}, #${config.lib.stylix.colors.base0D});
|
|
||||||
opacity: 0.5;
|
|
||||||
transition: ${betterTransition};
|
|
||||||
}
|
|
||||||
#workspaces button.active {
|
|
||||||
font-weight: bold;
|
|
||||||
padding: 0px 5px;
|
|
||||||
margin: 0px 3px;
|
|
||||||
border-radius: 16px;
|
|
||||||
color: #${config.lib.stylix.colors.base00};
|
|
||||||
background: linear-gradient(45deg, #${config.lib.stylix.colors.base08}, #${config.lib.stylix.colors.base0D});
|
|
||||||
transition: ${betterTransition};
|
|
||||||
opacity: 1.0;
|
|
||||||
min-width: 40px;
|
|
||||||
}
|
|
||||||
#workspaces button:hover {
|
|
||||||
font-weight: bold;
|
|
||||||
border-radius: 16px;
|
|
||||||
color: #${config.lib.stylix.colors.base00};
|
|
||||||
background: linear-gradient(45deg, #${config.lib.stylix.colors.base08}, #${config.lib.stylix.colors.base0D});
|
|
||||||
opacity: 0.8;
|
|
||||||
transition: ${betterTransition};
|
|
||||||
}
|
|
||||||
tooltip {
|
|
||||||
background: #${config.lib.stylix.colors.base00};
|
|
||||||
border: 1px solid #${config.lib.stylix.colors.base08};
|
|
||||||
border-radius: 12px;
|
|
||||||
}
|
|
||||||
tooltip label {
|
|
||||||
color: #${config.lib.stylix.colors.base08};
|
|
||||||
}
|
|
||||||
#window, #pulseaudio, #cpu, #memory, #idle_inhibitor {
|
|
||||||
font-weight: bold;
|
|
||||||
margin: 4px 0px;
|
|
||||||
margin-left: 7px;
|
|
||||||
padding: 0px 18px;
|
|
||||||
background: #${config.lib.stylix.colors.base04};
|
|
||||||
color: #${config.lib.stylix.colors.base00};
|
|
||||||
border-radius: 24px 10px 24px 10px;
|
|
||||||
}
|
|
||||||
#custom-startmenu {
|
|
||||||
color: #${config.lib.stylix.colors.base0B};
|
|
||||||
background: #${config.lib.stylix.colors.base02};
|
|
||||||
font-size: 28px;
|
|
||||||
margin: 0px;
|
|
||||||
padding: 0px 30px 0px 15px;
|
|
||||||
border-radius: 0px 0px 40px 0px;
|
|
||||||
}
|
|
||||||
#custom-hyprbindings, #network, #battery,
|
|
||||||
#custom-notification, #tray, #custom-exit {
|
|
||||||
font-weight: bold;
|
|
||||||
background: #${config.lib.stylix.colors.base0F};
|
|
||||||
color: #${config.lib.stylix.colors.base00};
|
|
||||||
margin: 4px 0px;
|
|
||||||
margin-right: 7px;
|
|
||||||
border-radius: 10px 24px 10px 24px;
|
|
||||||
padding: 0px 18px;
|
|
||||||
}
|
|
||||||
#clock {
|
|
||||||
font-weight: bold;
|
|
||||||
color: #0D0E15;
|
|
||||||
background: linear-gradient(90deg, #${config.lib.stylix.colors.base0E}, #${config.lib.stylix.colors.base0C});
|
|
||||||
margin: 0px;
|
|
||||||
padding: 0px 15px 0px 30px;
|
|
||||||
border-radius: 0px 0px 0px 40px;
|
|
||||||
}
|
|
||||||
''
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,84 +0,0 @@
|
|||||||
{ pkgs, hostname, lib, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = lib.optionals (! (lib.elem hostname [ "buildbox" "eva-02" ])) [
|
|
||||||
./ghostty/ghostty.nix
|
|
||||||
./rofi/rofi.nix
|
|
||||||
./hypr/hypridle.nix
|
|
||||||
./hypr/hyprland.nix
|
|
||||||
./hypr/hyprlock.nix
|
|
||||||
#./hypr/waybar.nix
|
|
||||||
]
|
|
||||||
++ lib.optionals (hostname == "eva-02") [
|
|
||||||
./ghostty/ghostty.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
home.packages =
|
|
||||||
lib.optionals (! (lib.elem hostname [ "buildbox" "eva-02" ])) (with pkgs; [
|
|
||||||
#pwndbg
|
|
||||||
bambu-studio
|
|
||||||
blender
|
|
||||||
brave
|
|
||||||
desmume
|
|
||||||
gparted
|
|
||||||
# jellyfin-media-player
|
|
||||||
kdePackages.bluedevil
|
|
||||||
kdePackages.bluez-qt
|
|
||||||
kdePackages.kate
|
|
||||||
kdePackages.kdeconnect-kde
|
|
||||||
kdePackages.oxygen-sounds
|
|
||||||
kdePackages.partitionmanager
|
|
||||||
kdePackages.isoimagewriter
|
|
||||||
libreoffice-still
|
|
||||||
librewolf
|
|
||||||
localsend
|
|
||||||
lutris-unwrapped
|
|
||||||
meld
|
|
||||||
melonDS
|
|
||||||
moonlight-qt
|
|
||||||
nestopia-ue
|
|
||||||
nix-ld
|
|
||||||
obsidian
|
|
||||||
pandoc
|
|
||||||
prismlauncher
|
|
||||||
protonplus
|
|
||||||
protonup-qt
|
|
||||||
putty
|
|
||||||
pwninit
|
|
||||||
pwntools
|
|
||||||
qFlipper
|
|
||||||
r2modman
|
|
||||||
remmina
|
|
||||||
signal-desktop
|
|
||||||
spice
|
|
||||||
steam
|
|
||||||
steamcmd
|
|
||||||
swww
|
|
||||||
tor-browser
|
|
||||||
vesktop
|
|
||||||
vlc
|
|
||||||
wireshark
|
|
||||||
yubikey-agent
|
|
||||||
# rpi-imager
|
|
||||||
]
|
|
||||||
|
|
||||||
++ lib.optionals (hostname == "eva-01") [
|
|
||||||
calibre
|
|
||||||
sdrangel
|
|
||||||
sdrpp
|
|
||||||
sonic-visualiser
|
|
||||||
vscode
|
|
||||||
]
|
|
||||||
|
|
||||||
++ lib.optionals (hostname == "eva-02") [
|
|
||||||
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
++ lib.optionals (hostname == "eva-03") [
|
|
||||||
vscode
|
|
||||||
]);
|
|
||||||
|
|
||||||
# environment.sessionVariables.NIXOS_OZONE_WL = "1";
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,278 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
configPath,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
|
||||||
programs.rofi = {
|
|
||||||
enable = true;
|
|
||||||
terminal = "ghostty";
|
|
||||||
package = pkgs.rofi.override {
|
|
||||||
plugins = [ pkgs.rofi-emoji ];
|
|
||||||
};
|
|
||||||
font = "JetBrainsMono Nerd Font 12";
|
|
||||||
plugins = [
|
|
||||||
pkgs.rofi-emoji
|
|
||||||
pkgs.rofi-calc
|
|
||||||
pkgs.rofi-games
|
|
||||||
pkgs.rofi-file-browser
|
|
||||||
];
|
|
||||||
extraConfig = {
|
|
||||||
modi = "drun,run,filebrowser,emoji";
|
|
||||||
show-icons = true;
|
|
||||||
display-drun = "Apps";
|
|
||||||
display-run = "Run";
|
|
||||||
display-filebrowser = "Files";
|
|
||||||
drun-display-format = "{name}";
|
|
||||||
hover-select = true;
|
|
||||||
me-select-entry = "MouseSecondary";
|
|
||||||
me-accept-entry = "MousePrimary";
|
|
||||||
window-format = "{w} · {c} · {t}";
|
|
||||||
dpi = 1;
|
|
||||||
};
|
|
||||||
theme =
|
|
||||||
let
|
|
||||||
inherit (config.lib.formats.rasi) mkLiteral;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
"*" = {
|
|
||||||
active-background = mkLiteral "#101C2F";
|
|
||||||
active-foreground = mkLiteral "#D6CBD5";
|
|
||||||
normal-background = mkLiteral "#030508";
|
|
||||||
normal-foreground = mkLiteral "#D6CBD5";
|
|
||||||
urgent-background = mkLiteral "#2B7F48";
|
|
||||||
urgent-foreground = mkLiteral "#D6CBD5";
|
|
||||||
alternate-active-background = mkLiteral "#11606B";
|
|
||||||
alternate-active-foreground = mkLiteral "#D6CBD5";
|
|
||||||
alternate-normal-background = mkLiteral "#030508";
|
|
||||||
alternate-normal-foreground = mkLiteral "#D6CBD5";
|
|
||||||
alternate-urgent-background = mkLiteral "#030508";
|
|
||||||
alternate-urgent-foreground = mkLiteral "#D6CBD5";
|
|
||||||
selected-active-background = mkLiteral "#101C2F";
|
|
||||||
selected-active-foreground = mkLiteral "#D6CBD5";
|
|
||||||
selected-normal-background = mkLiteral "#BCADBB";
|
|
||||||
selected-normal-foreground = mkLiteral "#D6CBD5";
|
|
||||||
selected-urgent-background = mkLiteral "#2B7F48";
|
|
||||||
selected-urgent-foreground = mkLiteral "#D6CBD5";
|
|
||||||
background-color = mkLiteral "#030508";
|
|
||||||
background = mkLiteral "rgba(32,32,32,0.7)";
|
|
||||||
foreground = mkLiteral "#BCADBB";
|
|
||||||
border-color = mkLiteral "#101C2F";
|
|
||||||
|
|
||||||
background-alt = mkLiteral "@selected-active-background";
|
|
||||||
selected = mkLiteral "@selected-urgent-background";
|
|
||||||
active = mkLiteral "@selected-normal-background";
|
|
||||||
urgent = mkLiteral "@selected";
|
|
||||||
text-selected = mkLiteral "@background";
|
|
||||||
text-color = mkLiteral "@foreground";
|
|
||||||
};
|
|
||||||
|
|
||||||
"window" = {
|
|
||||||
enabled = true;
|
|
||||||
fullscreen = false;
|
|
||||||
transparency = mkLiteral "\"real\"";
|
|
||||||
cursor = mkLiteral "\"default\"";
|
|
||||||
spacing = 0;
|
|
||||||
border = mkLiteral "4px 0px 4px 0px";
|
|
||||||
border-radius = 30;
|
|
||||||
location = mkLiteral "center";
|
|
||||||
anchor = mkLiteral "center";
|
|
||||||
width = mkLiteral "50%";
|
|
||||||
background-color = mkLiteral "@background";
|
|
||||||
};
|
|
||||||
|
|
||||||
"mainbox" = {
|
|
||||||
padding = 15;
|
|
||||||
enabled = true;
|
|
||||||
orientation = mkLiteral "vertical";
|
|
||||||
children = map mkLiteral [
|
|
||||||
"inputbar"
|
|
||||||
"listbox"
|
|
||||||
];
|
|
||||||
background-color = mkLiteral "transparent";
|
|
||||||
};
|
|
||||||
|
|
||||||
"inputbar" = {
|
|
||||||
enabled = true;
|
|
||||||
padding = mkLiteral "10px 10px 100px 10px";
|
|
||||||
margin = 10;
|
|
||||||
background-color = mkLiteral "transparent";
|
|
||||||
border-radius = 25;
|
|
||||||
orientation = mkLiteral "horizontal";
|
|
||||||
children = map mkLiteral [
|
|
||||||
"entry"
|
|
||||||
"dummy"
|
|
||||||
"mode-switcher"
|
|
||||||
];
|
|
||||||
background-image = mkLiteral "url(\"${configPath}/assets/background.png\", width)";
|
|
||||||
};
|
|
||||||
|
|
||||||
"entry" = {
|
|
||||||
enabled = true;
|
|
||||||
expand = false;
|
|
||||||
width = mkLiteral "20%";
|
|
||||||
padding = 10;
|
|
||||||
border-radius = 12;
|
|
||||||
background-color = mkLiteral "@selected";
|
|
||||||
text-color = mkLiteral "@text-selected";
|
|
||||||
cursor = mkLiteral "text";
|
|
||||||
placeholder = mkLiteral "\"🖥️ Search \"";
|
|
||||||
placeholder-color = mkLiteral "inherit";
|
|
||||||
};
|
|
||||||
|
|
||||||
"listbox" = {
|
|
||||||
spacing = 10;
|
|
||||||
padding = 10;
|
|
||||||
background-color = mkLiteral "transparent";
|
|
||||||
orientation = mkLiteral "vertical";
|
|
||||||
children = map mkLiteral [
|
|
||||||
"message"
|
|
||||||
"listview"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
"listview" = {
|
|
||||||
enabled = true;
|
|
||||||
columns = 2;
|
|
||||||
lines = 6;
|
|
||||||
cycle = true;
|
|
||||||
dynamic = true;
|
|
||||||
scrollbar = true;
|
|
||||||
layout = mkLiteral "vertical";
|
|
||||||
reverse = false;
|
|
||||||
fixed-height = false;
|
|
||||||
fixed-columns = true;
|
|
||||||
spacing = 10;
|
|
||||||
background-color = mkLiteral "transparent";
|
|
||||||
border = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
"dummy" = {
|
|
||||||
expand = true;
|
|
||||||
background-color = mkLiteral "transparent";
|
|
||||||
};
|
|
||||||
|
|
||||||
"mode-switcher" = {
|
|
||||||
enabled = true;
|
|
||||||
spacing = 10;
|
|
||||||
background-color = mkLiteral "transparent";
|
|
||||||
};
|
|
||||||
|
|
||||||
"button" = {
|
|
||||||
width = mkLiteral "5%";
|
|
||||||
padding = 12;
|
|
||||||
border-radius = 12;
|
|
||||||
background-color = mkLiteral "@text-selected";
|
|
||||||
text-color = mkLiteral "@text-color";
|
|
||||||
cursor = mkLiteral "pointer";
|
|
||||||
};
|
|
||||||
|
|
||||||
"button selected" = {
|
|
||||||
background-color = mkLiteral "@selected";
|
|
||||||
text-color = mkLiteral "@text-selected";
|
|
||||||
};
|
|
||||||
|
|
||||||
"scrollbar" = {
|
|
||||||
width = 4;
|
|
||||||
border = 0;
|
|
||||||
handle-color = mkLiteral "@border-color";
|
|
||||||
handle-width = 8;
|
|
||||||
padding = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
"element" = {
|
|
||||||
enabled = true;
|
|
||||||
spacing = 10;
|
|
||||||
padding = 10;
|
|
||||||
border-radius = 12;
|
|
||||||
background-color = mkLiteral "transparent";
|
|
||||||
cursor = mkLiteral "pointer";
|
|
||||||
};
|
|
||||||
|
|
||||||
"element normal.normal" = {
|
|
||||||
background-color = mkLiteral "inherit";
|
|
||||||
text-color = mkLiteral "inherit";
|
|
||||||
};
|
|
||||||
|
|
||||||
"element normal.urgent" = {
|
|
||||||
background-color = mkLiteral "@urgent";
|
|
||||||
text-color = mkLiteral "@foreground";
|
|
||||||
};
|
|
||||||
|
|
||||||
"element normal.active" = {
|
|
||||||
background-color = mkLiteral "@active";
|
|
||||||
text-color = mkLiteral "@foreground";
|
|
||||||
};
|
|
||||||
|
|
||||||
"element selected.normal" = {
|
|
||||||
border = mkLiteral "1px 6px 1px 6px";
|
|
||||||
border-radius = 16;
|
|
||||||
border-color = mkLiteral "@selected";
|
|
||||||
background-color = mkLiteral "transparent";
|
|
||||||
text-color = mkLiteral "@selected";
|
|
||||||
};
|
|
||||||
|
|
||||||
"element selected.urgent" = {
|
|
||||||
background-color = mkLiteral "@urgent";
|
|
||||||
text-color = mkLiteral "@text-selected";
|
|
||||||
};
|
|
||||||
|
|
||||||
"element selected.active" = {
|
|
||||||
background-color = mkLiteral "@urgent";
|
|
||||||
text-color = mkLiteral "@text-selected";
|
|
||||||
};
|
|
||||||
|
|
||||||
"element alternate.normal" = {
|
|
||||||
background-color = mkLiteral "transparent";
|
|
||||||
text-color = mkLiteral "inherit";
|
|
||||||
};
|
|
||||||
|
|
||||||
"element alternate.urgent" = {
|
|
||||||
background-color = mkLiteral "transparent";
|
|
||||||
text-color = mkLiteral "inherit";
|
|
||||||
};
|
|
||||||
|
|
||||||
"element alternate.active" = {
|
|
||||||
background-color = mkLiteral "transparent";
|
|
||||||
text-color = mkLiteral "inherit";
|
|
||||||
};
|
|
||||||
|
|
||||||
"element-icon" = {
|
|
||||||
background-color = mkLiteral "transparent";
|
|
||||||
text-color = mkLiteral "inherit";
|
|
||||||
cursor = mkLiteral "inherit";
|
|
||||||
};
|
|
||||||
|
|
||||||
"element-text" = {
|
|
||||||
background-color = mkLiteral "transparent";
|
|
||||||
text-color = mkLiteral "inherit";
|
|
||||||
cursor = mkLiteral "inherit";
|
|
||||||
vertical-align = mkLiteral "0.5";
|
|
||||||
horizontal-align = mkLiteral "0.0";
|
|
||||||
};
|
|
||||||
|
|
||||||
"message" = {
|
|
||||||
background-color = mkLiteral "transparent";
|
|
||||||
border = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
"textbox" = {
|
|
||||||
padding = 12;
|
|
||||||
border-radius = 10;
|
|
||||||
background-color = mkLiteral "@background-alt";
|
|
||||||
text-color = mkLiteral "@background";
|
|
||||||
vertical-align = mkLiteral "0.5";
|
|
||||||
horizontal-align = mkLiteral "0.0";
|
|
||||||
};
|
|
||||||
|
|
||||||
"error-message" = {
|
|
||||||
padding = 12;
|
|
||||||
border-radius = 20;
|
|
||||||
background-color = mkLiteral "@background-alt";
|
|
||||||
text-color = mkLiteral "@background";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,243 +0,0 @@
|
|||||||
# Edit this configuration file to define what should be installed on
|
|
||||||
# your system. Help is available in the configuration.nix(5) man page
|
|
||||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
|
||||||
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
pkgs-unstable,
|
|
||||||
inputs,
|
|
||||||
configPath,
|
|
||||||
hostname,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports =
|
|
||||||
[ # Include the results of the hardware scan.
|
|
||||||
./hardware-configuration.nix
|
|
||||||
inputs.home-manager.nixosModules.default
|
|
||||||
# (modulesPath + "/profiles/qemu-guest.nix")
|
|
||||||
];
|
|
||||||
|
|
||||||
# Bootloader.
|
|
||||||
boot.loader.grub.enable = lib.mkDefault true;
|
|
||||||
boot.loader.grub.devices = [ "nodev" ];
|
|
||||||
|
|
||||||
nix.settings.experimental-features = ["nix-command" "flakes"];
|
|
||||||
|
|
||||||
# Nix optimizations
|
|
||||||
nix.optimise.automatic = true;
|
|
||||||
nix.settings.auto-optimise-store = true;
|
|
||||||
nix.gc = {
|
|
||||||
automatic = true;
|
|
||||||
dates = "weekly";
|
|
||||||
persistent = true;
|
|
||||||
options = "--delete-older-than 30d";
|
|
||||||
};
|
|
||||||
|
|
||||||
networking.hostName = "buildbox"; # Define your hostname.
|
|
||||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
|
||||||
|
|
||||||
# Configure network proxy if necessary
|
|
||||||
# networking.proxy.default = "http://user:password@proxy:port/";
|
|
||||||
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
|
||||||
|
|
||||||
# Enable networking
|
|
||||||
networking.networkmanager.enable = true;
|
|
||||||
|
|
||||||
virtualisation.docker.enable = true;
|
|
||||||
|
|
||||||
# Set your time zone.
|
|
||||||
time.timeZone = "America/Los_Angeles";
|
|
||||||
|
|
||||||
# Select internationalisation properties.
|
|
||||||
i18n.defaultLocale = "en_US.UTF-8";
|
|
||||||
|
|
||||||
i18n.extraLocaleSettings = {
|
|
||||||
LC_ADDRESS = "en_US.UTF-8";
|
|
||||||
LC_IDENTIFICATION = "en_US.UTF-8";
|
|
||||||
LC_MEASUREMENT = "en_US.UTF-8";
|
|
||||||
LC_MONETARY = "en_US.UTF-8";
|
|
||||||
LC_NAME = "en_US.UTF-8";
|
|
||||||
LC_NUMERIC = "en_US.UTF-8";
|
|
||||||
LC_PAPER = "en_US.UTF-8";
|
|
||||||
LC_TELEPHONE = "en_US.UTF-8";
|
|
||||||
LC_TIME = "en_US.UTF-8";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Enable the X11 windowing system.
|
|
||||||
# You can disable this if you're only using the Wayland session.
|
|
||||||
services.xserver.enable = false;
|
|
||||||
|
|
||||||
# Enable the KDE Plasma Desktop Environment.
|
|
||||||
# services.displayManager.sddm.enable = true;
|
|
||||||
# services.displayManager.sddm.wayland.enable = true;
|
|
||||||
# services.desktopManager.plasma6.enable = true;
|
|
||||||
# services.displayManager.sddm.theme = "sddm-astronaut-theme";
|
|
||||||
|
|
||||||
services.tailscale.enable = true;
|
|
||||||
|
|
||||||
# Configure keymap in X11
|
|
||||||
services.xserver.xkb = {
|
|
||||||
layout = "us";
|
|
||||||
variant = "";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Enable CUPS to print documents.
|
|
||||||
services.printing.enable = false;
|
|
||||||
|
|
||||||
# Enable sound with pipewire.
|
|
||||||
# hardware.pulseaudio.enable = false;
|
|
||||||
#hardware.pulseaudio = {
|
|
||||||
# enable = true;
|
|
||||||
# package = pkgs.pulseaudioFull;
|
|
||||||
#};
|
|
||||||
|
|
||||||
# Enable touchpad support (enabled default in most desktopManager).
|
|
||||||
# services.xserver.libinput.enable = true;
|
|
||||||
|
|
||||||
# VSCode-Server
|
|
||||||
programs.nix-ld.enable = true;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
|
||||||
programs.zsh.enable = true;
|
|
||||||
users.users.rogueking = {
|
|
||||||
isNormalUser = true;
|
|
||||||
description = "rogueking";
|
|
||||||
extraGroups = [ "networkmanager" "wheel" "docker" ];
|
|
||||||
shell = pkgs.zsh;
|
|
||||||
#packages = [ inputs.home-manager.packages.${pkgs.system}.default ];
|
|
||||||
packages = with pkgs; [
|
|
||||||
#apps
|
|
||||||
#cli
|
|
||||||
# thunderbird
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Install firefox.
|
|
||||||
programs.firefox.enable = true;
|
|
||||||
|
|
||||||
# Allow unfree packages
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
|
||||||
|
|
||||||
security.polkit.enable = true;
|
|
||||||
programs._1password.enable = true;
|
|
||||||
programs._1password-gui = {
|
|
||||||
enable = true;
|
|
||||||
# Certain features, including CLI integration and system authentication support,
|
|
||||||
# require enabling PolKit integration on some desktop environments (e.g. Plasma).
|
|
||||||
polkitPolicyOwners = [ "rogueking" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Enable OpenSSH daemon
|
|
||||||
services.openssh = {
|
|
||||||
enable = true;
|
|
||||||
ports = [ 22 ];
|
|
||||||
settings = {
|
|
||||||
PasswordAuthentication = true;
|
|
||||||
AllowUsers = [ "rogueking" ];
|
|
||||||
UseDns = true;
|
|
||||||
X11Forwarding = false;
|
|
||||||
PermitRootLogin = "no";
|
|
||||||
MaxAuthTries = 8;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
users.users."rogueking".openssh.authorizedKeys.keys = [
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINXqriPZVIuduc/J7GS1mD171LL0gIbgEjlImsxedWVX"
|
|
||||||
];
|
|
||||||
|
|
||||||
nixpkgs.config.permittedInsecurePackages = [
|
|
||||||
"qtwebengine-5.15.19"
|
|
||||||
"python3.12-ecdsa-0.19.1"
|
|
||||||
];
|
|
||||||
|
|
||||||
# List packages installed in system profile. To search, run:
|
|
||||||
# $ nix search wget
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
#apps
|
|
||||||
#cider-2
|
|
||||||
#guacamole-client
|
|
||||||
#sddm-astronaut
|
|
||||||
|
|
||||||
#cli tools
|
|
||||||
btop
|
|
||||||
curl
|
|
||||||
docker
|
|
||||||
dust
|
|
||||||
file
|
|
||||||
findutils
|
|
||||||
git
|
|
||||||
gparted
|
|
||||||
kopia
|
|
||||||
lazydocker
|
|
||||||
nettools
|
|
||||||
nix-prefetch-github
|
|
||||||
nmap
|
|
||||||
openssh
|
|
||||||
openssl
|
|
||||||
parted
|
|
||||||
plocate
|
|
||||||
ptunnel
|
|
||||||
tailscale
|
|
||||||
tlp
|
|
||||||
unzip
|
|
||||||
vim
|
|
||||||
];
|
|
||||||
|
|
||||||
home-manager = {
|
|
||||||
extraSpecialArgs = {
|
|
||||||
inherit
|
|
||||||
configPath
|
|
||||||
inputs
|
|
||||||
pkgs-unstable
|
|
||||||
hostname
|
|
||||||
;
|
|
||||||
};
|
|
||||||
users = {
|
|
||||||
"rogueking" = import ./../../home-manager/home.nix;
|
|
||||||
};
|
|
||||||
backupFileExtension = "backup";
|
|
||||||
};
|
|
||||||
|
|
||||||
#home-manager = {
|
|
||||||
# extraSpecialArgs = { inherit inputs; };
|
|
||||||
# users = {
|
|
||||||
# "rogueking" = import ../home-manager/home.nix;
|
|
||||||
# };
|
|
||||||
# backupFileExtension = "backup";
|
|
||||||
#};
|
|
||||||
|
|
||||||
|
|
||||||
# Some programs need SUID wrappers, can be configured further or are
|
|
||||||
# started in user sessions.
|
|
||||||
# programs.mtr.enable = true;
|
|
||||||
# programs.gnupg.agent = {
|
|
||||||
# enable = true;
|
|
||||||
# enableSSHSupport = true;
|
|
||||||
# };
|
|
||||||
|
|
||||||
# List services that you want to enable:
|
|
||||||
|
|
||||||
# Enable the OpenSSH daemon.
|
|
||||||
# services.openssh.enable = true;
|
|
||||||
|
|
||||||
# Open ports in the firewall.
|
|
||||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
|
||||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
|
||||||
# Or disable the firewall altogether.
|
|
||||||
# networking.firewall.enable = false;
|
|
||||||
|
|
||||||
# This value determines the NixOS release from which the default
|
|
||||||
# settings for stateful data, like file locations and database versions
|
|
||||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
|
||||||
# this value at the release version of the first install of this system.
|
|
||||||
# Before changing this value read the documentation for this option
|
|
||||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
|
||||||
system.stateVersion = "25.05"; # Did you read the comment?
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
# 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 + "/profiles/qemu-guest.nix")
|
|
||||||
];
|
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "uas" "sd_mod" ];
|
|
||||||
boot.initrd.kernelModules = [ ];
|
|
||||||
boot.kernelModules = [ ];
|
|
||||||
boot.extraModulePackages = [ ];
|
|
||||||
|
|
||||||
fileSystems."/" =
|
|
||||||
{ device = "/dev/disk/by-uuid/2387c615-e566-44ed-a708-ebd407ee16f6";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices = [ {
|
|
||||||
device = "/var/lib/swapfile";
|
|
||||||
size = 4*1024;
|
|
||||||
} ];
|
|
||||||
|
|
||||||
# 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.wlp0s20f3.useDHCP = lib.mkDefault true;
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
|
||||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
||||||
}
|
|
||||||
@@ -1,341 +0,0 @@
|
|||||||
# Edit this configuration file to define what should be installed on
|
|
||||||
# your system. Help is available in the configuration.nix(5) man page
|
|
||||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
|
||||||
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
pkgs-unstable,
|
|
||||||
inputs,
|
|
||||||
configPath,
|
|
||||||
hostname,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
# Include the results of the hardware scan.
|
|
||||||
./hardware-configuration.nix
|
|
||||||
inputs.home-manager.nixosModules.default
|
|
||||||
];
|
|
||||||
|
|
||||||
# Bootloader.
|
|
||||||
boot.loader.systemd-boot.enable = true;
|
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
|
||||||
|
|
||||||
nix.settings.experimental-features = [
|
|
||||||
"nix-command"
|
|
||||||
"flakes"
|
|
||||||
];
|
|
||||||
|
|
||||||
# Nix optimizations
|
|
||||||
nix.optimise.automatic = true;
|
|
||||||
nix.settings.auto-optimise-store = true;
|
|
||||||
nix.gc = {
|
|
||||||
automatic = true;
|
|
||||||
dates = "weekly";
|
|
||||||
persistent = true;
|
|
||||||
options = "--delete-older-than 30d";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Dynamic power managment
|
|
||||||
# powerManagement = {
|
|
||||||
# enable = true;
|
|
||||||
# cpuFreqGovernor = "powersave";
|
|
||||||
# powertop.enable = true;
|
|
||||||
# };
|
|
||||||
|
|
||||||
# Power Management
|
|
||||||
services.thermald.enable = true;
|
|
||||||
services.power-profiles-daemon.enable = false;
|
|
||||||
services.auto-cpufreq.enable = true;
|
|
||||||
services.auto-cpufreq.settings = {
|
|
||||||
battery = {
|
|
||||||
governor = "balanced";
|
|
||||||
turbo = "auto";
|
|
||||||
};
|
|
||||||
charger = {
|
|
||||||
governor = "performance";
|
|
||||||
turbo = "auto";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
services.system76-scheduler = {
|
|
||||||
enable = true;
|
|
||||||
useStockConfig = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Intel CPU integrated graphics packages
|
|
||||||
hardware.graphics.extraPackages = with pkgs; [
|
|
||||||
intel-media-driver
|
|
||||||
intel-ocl
|
|
||||||
intel-vaapi-driver
|
|
||||||
];
|
|
||||||
|
|
||||||
networking.hostName = "eva-01"; # Define your hostname.
|
|
||||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
|
||||||
|
|
||||||
# Configure network proxy if necessary
|
|
||||||
# networking.proxy.default = "http://user:password@proxy:port/";
|
|
||||||
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
|
||||||
|
|
||||||
# Enable networking
|
|
||||||
networking.networkmanager.enable = true;
|
|
||||||
|
|
||||||
virtualisation.docker.enable = true;
|
|
||||||
|
|
||||||
# Set your time zone.
|
|
||||||
time.timeZone = "America/Los_Angeles";
|
|
||||||
|
|
||||||
# Select internationalisation properties.
|
|
||||||
i18n.defaultLocale = "en_US.UTF-8";
|
|
||||||
|
|
||||||
i18n.extraLocaleSettings = {
|
|
||||||
LC_ADDRESS = "en_US.UTF-8";
|
|
||||||
LC_IDENTIFICATION = "en_US.UTF-8";
|
|
||||||
LC_MEASUREMENT = "en_US.UTF-8";
|
|
||||||
LC_MONETARY = "en_US.UTF-8";
|
|
||||||
LC_NAME = "en_US.UTF-8";
|
|
||||||
LC_NUMERIC = "en_US.UTF-8";
|
|
||||||
LC_PAPER = "en_US.UTF-8";
|
|
||||||
LC_TELEPHONE = "en_US.UTF-8";
|
|
||||||
LC_TIME = "en_US.UTF-8";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Enable the X11 windowing system.
|
|
||||||
# You can disable this if you're only using the Wayland session.
|
|
||||||
services.xserver.enable = false;
|
|
||||||
programs.xwayland.enable = true;
|
|
||||||
|
|
||||||
# Enable the KDE Plasma Desktop Environment.
|
|
||||||
services.displayManager.sddm.enable = true;
|
|
||||||
services.displayManager.sddm.wayland.enable = true;
|
|
||||||
services.desktopManager.plasma6.enable = true;
|
|
||||||
#services.displayManager.sddm.theme = "sddm-astronaut-theme";
|
|
||||||
|
|
||||||
# Enable Hyprland wayland compositor
|
|
||||||
programs.hyprland.enable = true;
|
|
||||||
environment.sessionVariables.NIXOS_OZONE_WL = "1";
|
|
||||||
|
|
||||||
# Enable XDG Desktop Portal for proper D-Bus integration
|
|
||||||
services.dbus.enable = true;
|
|
||||||
xdg.portal = {
|
|
||||||
enable = true;
|
|
||||||
wlr.enable = true;
|
|
||||||
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
|
||||||
};
|
|
||||||
|
|
||||||
services.tailscale.enable = true;
|
|
||||||
|
|
||||||
#Enable Ollama daemon
|
|
||||||
services.ollama = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs-unstable.ollama;
|
|
||||||
};
|
|
||||||
|
|
||||||
#Enable Hyprland
|
|
||||||
services.fprintd.enable = true;
|
|
||||||
services.fprintd.tod.enable = true;
|
|
||||||
services.fprintd.tod.driver = pkgs.libfprint-2-tod1-goodix;
|
|
||||||
|
|
||||||
# Configure keymap in X11
|
|
||||||
services.xserver.xkb = {
|
|
||||||
layout = "us";
|
|
||||||
variant = "";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Enable CUPS to print documents.
|
|
||||||
services.printing.enable = false;
|
|
||||||
services.avahi.enable = true;
|
|
||||||
services.avahi.nssmdns4 = true;
|
|
||||||
|
|
||||||
# Enable Smart Card
|
|
||||||
services.pcscd.enable = true;
|
|
||||||
|
|
||||||
# Enable sound with pipewire.
|
|
||||||
services.pulseaudio.enable = false;
|
|
||||||
#hardware.pulseaudio = {
|
|
||||||
# enable = true;
|
|
||||||
# package = pkgs.pulseaudioFull;
|
|
||||||
#};
|
|
||||||
hardware.bluetooth.enable = true;
|
|
||||||
security.rtkit.enable = true;
|
|
||||||
services.pipewire = {
|
|
||||||
enable = true;
|
|
||||||
alsa.enable = true;
|
|
||||||
alsa.support32Bit = true;
|
|
||||||
pulse.enable = true;
|
|
||||||
# If you want to use JACK applications, uncomment this
|
|
||||||
#jack.enable = true;
|
|
||||||
|
|
||||||
# use the example session manager (no others are packaged yet so this is enabled by default,
|
|
||||||
# no need to redefine it in your config for now)
|
|
||||||
#media-session.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Enable touchpad support (enabled default in most desktopManager).
|
|
||||||
# services.xserver.libinput.enable = true;
|
|
||||||
|
|
||||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
|
||||||
programs.zsh.enable = true;
|
|
||||||
users.users.rogueking = {
|
|
||||||
isNormalUser = true;
|
|
||||||
description = "rogueking";
|
|
||||||
extraGroups = [
|
|
||||||
"networkmanager"
|
|
||||||
"wheel"
|
|
||||||
"docker"
|
|
||||||
];
|
|
||||||
shell = pkgs.zsh;
|
|
||||||
#packages = [ inputs.home-manager.packages.${pkgs.system}.default ];
|
|
||||||
packages = with pkgs; [
|
|
||||||
#apps
|
|
||||||
#cli
|
|
||||||
# thunderbird
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Install firefox.
|
|
||||||
programs.firefox.enable = true;
|
|
||||||
|
|
||||||
# Allow unfree packages
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
|
||||||
|
|
||||||
security.polkit.enable = true;
|
|
||||||
programs._1password.enable = true;
|
|
||||||
programs._1password-gui = {
|
|
||||||
enable = true;
|
|
||||||
# Certain features, including CLI integration and system authentication support,
|
|
||||||
# require enabling PolKit integration on some desktop environments (e.g. Plasma).
|
|
||||||
polkitPolicyOwners = [ "rogueking" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
#steam
|
|
||||||
programs.steam.enable = true;
|
|
||||||
|
|
||||||
# Enable OpenSSH daemon
|
|
||||||
services.openssh = {
|
|
||||||
enable = true;
|
|
||||||
ports = [ 22 ];
|
|
||||||
settings = {
|
|
||||||
PasswordAuthentication = false;
|
|
||||||
AllowUsers = [ "rogueking" ];
|
|
||||||
UseDns = true;
|
|
||||||
X11Forwarding = false;
|
|
||||||
PermitRootLogin = "no";
|
|
||||||
MaxAuthTries = "20";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
users.users."rogueking".openssh.authorizedKeys.keys = [
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINXqriPZVIuduc/J7GS1mD171LL0gIbgEjlImsxedWVX"
|
|
||||||
];
|
|
||||||
|
|
||||||
# Firewall
|
|
||||||
networking.firewall = {
|
|
||||||
enable = true;
|
|
||||||
allowedTCPPorts = [
|
|
||||||
22
|
|
||||||
# 80
|
|
||||||
# 443
|
|
||||||
];
|
|
||||||
logRefusedConnections = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# List packages installed in system profile. To search, run:
|
|
||||||
# $ nix search wget
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
#apps
|
|
||||||
#cider-2
|
|
||||||
fprintd
|
|
||||||
guacamole-client
|
|
||||||
#sddm-astronaut
|
|
||||||
|
|
||||||
#cli tools
|
|
||||||
aircrack-ng
|
|
||||||
android-tools
|
|
||||||
btop
|
|
||||||
curl
|
|
||||||
docker
|
|
||||||
dust
|
|
||||||
file
|
|
||||||
findutils
|
|
||||||
git
|
|
||||||
goose-cli
|
|
||||||
hcxdumptool
|
|
||||||
hcxtools
|
|
||||||
kopia
|
|
||||||
lazydocker
|
|
||||||
metasploit
|
|
||||||
nettools
|
|
||||||
nix-prefetch-github
|
|
||||||
nmap
|
|
||||||
openssh
|
|
||||||
openssl
|
|
||||||
plocate
|
|
||||||
ptunnel
|
|
||||||
tailscale
|
|
||||||
tlp
|
|
||||||
unzip
|
|
||||||
vim
|
|
||||||
wifite2
|
|
||||||
wirelesstools
|
|
||||||
|
|
||||||
#fonts
|
|
||||||
nerd-fonts.hack
|
|
||||||
nerd-fonts.fira-code
|
|
||||||
|
|
||||||
#unstable
|
|
||||||
#pkgs-unstable.vllm
|
|
||||||
];
|
|
||||||
|
|
||||||
home-manager = {
|
|
||||||
extraSpecialArgs = {
|
|
||||||
inherit
|
|
||||||
configPath
|
|
||||||
inputs
|
|
||||||
pkgs-unstable
|
|
||||||
hostname
|
|
||||||
;
|
|
||||||
};
|
|
||||||
users = {
|
|
||||||
"rogueking" = import ./../../home-manager/home.nix;
|
|
||||||
};
|
|
||||||
backupFileExtension = "backup";
|
|
||||||
};
|
|
||||||
|
|
||||||
#home-manager = {
|
|
||||||
# extraSpecialArgs = { inherit inputs; };
|
|
||||||
# users = {
|
|
||||||
# "rogueking" = import ../home-manager/home.nix;
|
|
||||||
# };
|
|
||||||
# backupFileExtension = "backup";
|
|
||||||
#};
|
|
||||||
|
|
||||||
# Some programs need SUID wrappers, can be configured further or are
|
|
||||||
# started in user sessions.
|
|
||||||
# programs.mtr.enable = true;
|
|
||||||
# programs.gnupg.agent = {
|
|
||||||
# enable = true;
|
|
||||||
# enableSSHSupport = true;
|
|
||||||
# };
|
|
||||||
|
|
||||||
# List services that you want to enable:
|
|
||||||
|
|
||||||
# Enable the OpenSSH daemon.
|
|
||||||
# services.openssh.enable = true;
|
|
||||||
|
|
||||||
# Open ports in the firewall.
|
|
||||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
|
||||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
|
||||||
# Or disable the firewall altogether.
|
|
||||||
# networking.firewall.enable = false;
|
|
||||||
|
|
||||||
# This value determines the NixOS release from which the default
|
|
||||||
# settings for stateful data, like file locations and database versions
|
|
||||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
|
||||||
# this value at the release version of the first install of this system.
|
|
||||||
# Before changing this value read the documentation for this option
|
|
||||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
|
||||||
system.stateVersion = "25.05"; # Did you read the comment?
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
# 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" "thunderbolt" "nvme" "uas" "sd_mod" ];
|
|
||||||
boot.initrd.kernelModules = [ ];
|
|
||||||
boot.kernelModules = [ "kvm-intel" ];
|
|
||||||
boot.extraModulePackages = [ ];
|
|
||||||
|
|
||||||
fileSystems."/" =
|
|
||||||
{ device = "/dev/disk/by-uuid/0ec1b4fd-ca0f-4938-a038-37a69ec00b21";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/boot" =
|
|
||||||
{ device = "/dev/disk/by-uuid/2066-E44D";
|
|
||||||
fsType = "vfat";
|
|
||||||
options = [ "fmask=0077" "dmask=0077" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices = [ {
|
|
||||||
device = "/var/lib/swapfile";
|
|
||||||
size = 8*1024;
|
|
||||||
} ];
|
|
||||||
|
|
||||||
# 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.wlp0s20f3.useDHCP = lib.mkDefault true;
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
|
||||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
||||||
}
|
|
||||||
@@ -1,193 +0,0 @@
|
|||||||
# Edit this configuration file to define what should be installed on
|
|
||||||
# your system. Help is available in the configuration.nix(5) man page
|
|
||||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
|
||||||
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
pkgs-unstable,
|
|
||||||
inputs,
|
|
||||||
configPath,
|
|
||||||
hostname,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
|
||||||
nix.settings.experimental-features = ["nix-command" "flakes"];
|
|
||||||
|
|
||||||
# Nix optimizations
|
|
||||||
nix.optimise.automatic = true;
|
|
||||||
# nix.settings.auto-optimise-store = true;
|
|
||||||
nix.gc = {
|
|
||||||
automatic = true;
|
|
||||||
interval = [{
|
|
||||||
Hour = 2;
|
|
||||||
Minute = 30;
|
|
||||||
Weekday = 7;
|
|
||||||
}];
|
|
||||||
# persistent = true;
|
|
||||||
options = "--delete-older-than 30d";
|
|
||||||
};
|
|
||||||
|
|
||||||
networking.hostName = "eva-02"; # Define your hostname.
|
|
||||||
# Configure network proxy if necessary
|
|
||||||
# networking.proxy.default = "http://user:password@proxy:port/";
|
|
||||||
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
|
||||||
|
|
||||||
# Set your time zone.
|
|
||||||
time.timeZone = "America/Los_Angeles";
|
|
||||||
|
|
||||||
# Enable the X11 windowing system.
|
|
||||||
# You can disable this if you're only using the Wayland session.
|
|
||||||
# services.xserver.enable = true; # Enable for Darwin compatibility
|
|
||||||
|
|
||||||
# Enable sound with pipewire.
|
|
||||||
# hardware.pulseaudio.enable = false;
|
|
||||||
#hardware.pulseaudio = {
|
|
||||||
# enable = true;
|
|
||||||
# package = pkgs.pulseaudioFull;
|
|
||||||
#};
|
|
||||||
|
|
||||||
# Enable Touch ID
|
|
||||||
security.pam.services.sudo_local.touchIdAuth = true;
|
|
||||||
|
|
||||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
|
||||||
system.primaryUser = "rogueking";
|
|
||||||
programs.zsh.enable = true;
|
|
||||||
users.users.rogueking = {
|
|
||||||
# isNormalUser = true;
|
|
||||||
description = "rogueking";
|
|
||||||
# extraGroups = [ "admin" "staff" "wheel" "docker" ];
|
|
||||||
home = "/Users/rogueking";
|
|
||||||
shell = pkgs.zsh;
|
|
||||||
packages = with pkgs; [
|
|
||||||
#apps
|
|
||||||
#cli
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
homebrew = {
|
|
||||||
enable = true;
|
|
||||||
user = "rogueking";
|
|
||||||
#onActivation.autoUpdate = true;
|
|
||||||
brews = [
|
|
||||||
"docker"
|
|
||||||
"esptool"
|
|
||||||
"git-lfs"
|
|
||||||
"huggingface-cli"
|
|
||||||
"putty"
|
|
||||||
"tailscale"
|
|
||||||
];
|
|
||||||
casks = [
|
|
||||||
"1password"
|
|
||||||
"1password-cli"
|
|
||||||
"bambu-studio"
|
|
||||||
"blender"
|
|
||||||
"brave-browser"
|
|
||||||
"ghostty"
|
|
||||||
"imhex"
|
|
||||||
"jellyfin-media-player"
|
|
||||||
"jordanbaird-ice"
|
|
||||||
"localsend"
|
|
||||||
"melonds"
|
|
||||||
"moonlight"
|
|
||||||
"obsidian"
|
|
||||||
"signal"
|
|
||||||
"steam"
|
|
||||||
"vesktop"
|
|
||||||
"visual-studio-code"
|
|
||||||
"vlc"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Install firefox.
|
|
||||||
# programs.firefox.enable = true;
|
|
||||||
|
|
||||||
# Allow unfree packages
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
|
||||||
|
|
||||||
# Enable OpenSSH daemon
|
|
||||||
# services.openssh = {
|
|
||||||
# enable = true;
|
|
||||||
# # ports = [ 22 ];
|
|
||||||
# settings = {
|
|
||||||
# PasswordAuthentication = true;
|
|
||||||
# AllowUsers = [ "rogueking" ];
|
|
||||||
# UseDns = true;
|
|
||||||
# X11Forwarding = false;
|
|
||||||
# PermitRootLogin = "no";
|
|
||||||
# MaxAuthTries = 8;
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
|
|
||||||
users.users."rogueking".openssh.authorizedKeys.keys = [
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINXqriPZVIuduc/J7GS1mD171LL0gIbgEjlImsxedWVX"
|
|
||||||
];
|
|
||||||
|
|
||||||
# List packages installed in system profile. To search, run:
|
|
||||||
# $ nix search wget
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
#apps
|
|
||||||
|
|
||||||
#cli tools
|
|
||||||
btop
|
|
||||||
curl
|
|
||||||
docker
|
|
||||||
dust
|
|
||||||
file
|
|
||||||
findutils
|
|
||||||
git
|
|
||||||
kopia
|
|
||||||
lazydocker
|
|
||||||
nettools
|
|
||||||
nix-prefetch-github
|
|
||||||
nmap
|
|
||||||
openssh
|
|
||||||
openssl
|
|
||||||
ptunnel
|
|
||||||
unzip
|
|
||||||
vim
|
|
||||||
];
|
|
||||||
|
|
||||||
fonts.packages = with pkgs; [
|
|
||||||
nerd-fonts.hack
|
|
||||||
nerd-fonts.fira-code
|
|
||||||
];
|
|
||||||
|
|
||||||
home-manager = {
|
|
||||||
extraSpecialArgs = {
|
|
||||||
inherit
|
|
||||||
configPath
|
|
||||||
inputs
|
|
||||||
pkgs-unstable
|
|
||||||
hostname
|
|
||||||
;
|
|
||||||
};
|
|
||||||
users = {
|
|
||||||
"rogueking" = import ./../../home-manager/home.nix;
|
|
||||||
};
|
|
||||||
backupFileExtension = "backup";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Some programs need SUID wrappers, can be configured further or are
|
|
||||||
# started in user sessions.
|
|
||||||
# programs.mtr.enable = true;
|
|
||||||
# programs.gnupg.agent = {
|
|
||||||
# enable = true;
|
|
||||||
# enableSSHSupport = true;
|
|
||||||
# };
|
|
||||||
|
|
||||||
# List services that you want to enable:
|
|
||||||
|
|
||||||
# Enable the OpenSSH daemon.
|
|
||||||
# services.openssh.enable = true;
|
|
||||||
|
|
||||||
# Open ports in the firewall.
|
|
||||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
|
||||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
|
||||||
# Or disable the firewall altogether.
|
|
||||||
# networking.firewall.enable = false;
|
|
||||||
|
|
||||||
system.stateVersion = 6;
|
|
||||||
}
|
|
||||||
@@ -1,349 +0,0 @@
|
|||||||
# Edit this configuration file to define what should be installed on
|
|
||||||
# your system. Help is available in the configuration.nix(5) man page
|
|
||||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
|
||||||
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
configPath,
|
|
||||||
hostname,
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
pkgs-unstable,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports =
|
|
||||||
[ # Include the results of the hardware scan.
|
|
||||||
./hardware-configuration.nix
|
|
||||||
inputs.home-manager.nixosModules.default
|
|
||||||
];
|
|
||||||
|
|
||||||
#Kernel
|
|
||||||
boot.kernelPackages = pkgs.linuxKernel.packages.linux_zen;
|
|
||||||
|
|
||||||
# Bootloader.
|
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
|
||||||
boot.loader.systemd-boot.enable = true;
|
|
||||||
#{
|
|
||||||
# enable = true;
|
|
||||||
# windows = {
|
|
||||||
# "11-Pro" = {
|
|
||||||
# title = "Windows 11 Pro";
|
|
||||||
# efiDeviceHandle = "HD3c";
|
|
||||||
# sortKey = "z_windows";
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
|
|
||||||
nix.settings.experimental-features = ["nix-command" "flakes"];
|
|
||||||
|
|
||||||
# Nix optimizations
|
|
||||||
nix.optimise.automatic = true;
|
|
||||||
nix.settings.auto-optimise-store = true;
|
|
||||||
nix.gc = {
|
|
||||||
automatic = true;
|
|
||||||
dates = "weekly";
|
|
||||||
persistent = true;
|
|
||||||
options = "--delete-older-than 30d";
|
|
||||||
};
|
|
||||||
|
|
||||||
networking.hostName = "eva-03"; # Define your hostname.
|
|
||||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
|
||||||
|
|
||||||
# Configure network proxy if necessary
|
|
||||||
# networking.proxy.default = "http://user:password@proxy:port/";
|
|
||||||
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
|
||||||
|
|
||||||
# Enable networking
|
|
||||||
networking.networkmanager.enable = true;
|
|
||||||
|
|
||||||
virtualisation.docker.enable = true;
|
|
||||||
|
|
||||||
# Enable OpenGL
|
|
||||||
hardware.graphics = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Load nvidia driver for Xorg and Wayland
|
|
||||||
services.xserver.videoDrivers = ["nvidia"];
|
|
||||||
|
|
||||||
hardware.nvidia = {
|
|
||||||
|
|
||||||
# Modesetting is required.
|
|
||||||
modesetting.enable = true;
|
|
||||||
|
|
||||||
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
|
|
||||||
# Enable this if you have graphical corruption issues or application crashes after waking
|
|
||||||
# up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
|
|
||||||
# of just the bare essentials.
|
|
||||||
# powerManagement.enable = false;
|
|
||||||
|
|
||||||
# Fine-grained power management. Turns off GPU when not in use.
|
|
||||||
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
|
|
||||||
# powerManagement.finegrained = false;
|
|
||||||
|
|
||||||
# Use the NVidia open source kernel module (not to be confused with the
|
|
||||||
# independent third-party "nouveau" open source driver).
|
|
||||||
# Support is limited to the Turing and later architectures. Full list of
|
|
||||||
# supported GPUs is at:
|
|
||||||
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
|
|
||||||
# Only available from driver 515.43.04+
|
|
||||||
open = false;
|
|
||||||
|
|
||||||
# Enable the Nvidia settings menu,
|
|
||||||
# accessible via `nvidia-settings`.
|
|
||||||
nvidiaSettings = true;
|
|
||||||
|
|
||||||
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
|
||||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Set your time zone.
|
|
||||||
time.timeZone = "America/Los_Angeles";
|
|
||||||
|
|
||||||
# Select internationalisation properties.
|
|
||||||
i18n.defaultLocale = "en_US.UTF-8";
|
|
||||||
|
|
||||||
i18n.extraLocaleSettings = {
|
|
||||||
LC_ADDRESS = "en_US.UTF-8";
|
|
||||||
LC_IDENTIFICATION = "en_US.UTF-8";
|
|
||||||
LC_MEASUREMENT = "en_US.UTF-8";
|
|
||||||
LC_MONETARY = "en_US.UTF-8";
|
|
||||||
LC_NAME = "en_US.UTF-8";
|
|
||||||
LC_NUMERIC = "en_US.UTF-8";
|
|
||||||
LC_PAPER = "en_US.UTF-8";
|
|
||||||
LC_TELEPHONE = "en_US.UTF-8";
|
|
||||||
LC_TIME = "en_US.UTF-8";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Enable the X11 windowing system.
|
|
||||||
# You can disable this if you're only using the Wayland session.
|
|
||||||
services.xserver.enable = false;
|
|
||||||
programs.xwayland.enable = true;
|
|
||||||
|
|
||||||
# Enable the KDE Plasma Desktop Environment.
|
|
||||||
services.displayManager.sddm.enable = true;
|
|
||||||
services.displayManager.sddm.wayland.enable = true;
|
|
||||||
services.desktopManager.plasma6.enable = true;
|
|
||||||
#services.displayManager.sddm.theme = "sddm-astronaut-theme";
|
|
||||||
|
|
||||||
# Enable Hyprland wayland compositor
|
|
||||||
programs.hyprland.enable = true;
|
|
||||||
environment.sessionVariables.NIXOS_OZONE_WL = "1";
|
|
||||||
|
|
||||||
# XRDP
|
|
||||||
services.xrdp.enable = true;
|
|
||||||
services.xrdp.defaultWindowManager = "startplasma-x11";
|
|
||||||
services.xrdp.openFirewall = true;
|
|
||||||
|
|
||||||
# Enable Tailscale
|
|
||||||
services.tailscale = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs-unstable.tailscale;
|
|
||||||
};
|
|
||||||
|
|
||||||
#Enable Ollama daemon
|
|
||||||
#services.ollama.enable = true;
|
|
||||||
|
|
||||||
# Enable ollama
|
|
||||||
services.ollama = {
|
|
||||||
enable = false;
|
|
||||||
host = "0.0.0.0";
|
|
||||||
openFirewall = true;
|
|
||||||
acceleration = "cuda";
|
|
||||||
package = pkgs-unstable.ollama;
|
|
||||||
loadModels = [
|
|
||||||
"deepcoder:14b"
|
|
||||||
"gemma3:12b-it-qat"
|
|
||||||
"gemma3:27b-it-qat"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
services.fprintd.enable = true;
|
|
||||||
services.fprintd.tod.enable = true;
|
|
||||||
services.fprintd.tod.driver = pkgs.libfprint-2-tod1-goodix;
|
|
||||||
|
|
||||||
# Configure keymap in X11
|
|
||||||
services.xserver.xkb = {
|
|
||||||
layout = "us";
|
|
||||||
variant = "";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Enable CUPS to print documents.
|
|
||||||
services.printing.enable = false;
|
|
||||||
|
|
||||||
# Enable sound with pipewire.
|
|
||||||
services.pulseaudio.enable = false;
|
|
||||||
#hardware.pulseaudio = {
|
|
||||||
# enable = true;
|
|
||||||
# package = pkgs.pulseaudioFull;
|
|
||||||
#};
|
|
||||||
hardware.bluetooth.enable = true;
|
|
||||||
security.rtkit.enable = true;
|
|
||||||
services.pipewire = {
|
|
||||||
enable = true;
|
|
||||||
alsa.enable = true;
|
|
||||||
alsa.support32Bit = true;
|
|
||||||
pulse.enable = true;
|
|
||||||
# If you want to use JACK applications, uncomment this
|
|
||||||
#jack.enable = true;
|
|
||||||
|
|
||||||
# use the example session manager (no others are packaged yet so this is enabled by default,
|
|
||||||
# no need to redefine it in your config for now)
|
|
||||||
#media-session.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Enable touchpad support (enabled default in most desktopManager).
|
|
||||||
# services.xserver.libinput.enable = true;
|
|
||||||
|
|
||||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
|
||||||
programs.zsh.enable = true;
|
|
||||||
users.users.rogueking = {
|
|
||||||
isNormalUser = true;
|
|
||||||
description = "rogueking";
|
|
||||||
extraGroups = [ "networkmanager" "wheel" "docker" ];
|
|
||||||
shell = pkgs.zsh;
|
|
||||||
#packages = [ inputs.home-manager.packages.${pkgs.system}.default ];
|
|
||||||
packages = with pkgs; [
|
|
||||||
#apps
|
|
||||||
#cli
|
|
||||||
# thunderbird
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Install firefox.
|
|
||||||
programs.firefox.enable = true;
|
|
||||||
|
|
||||||
# Enable all firmware
|
|
||||||
hardware.enableAllFirmware = true;
|
|
||||||
|
|
||||||
# Allow unfree packages
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
|
||||||
|
|
||||||
security.polkit.enable = true;
|
|
||||||
programs._1password.enable = true;
|
|
||||||
programs._1password-gui = {
|
|
||||||
enable = true;
|
|
||||||
# Certain features, including CLI integration and system authentication support,
|
|
||||||
# require enabling PolKit integration on some desktop environments (e.g. Plasma).
|
|
||||||
polkitPolicyOwners = [ "rogueking" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
#steam
|
|
||||||
programs.steam.enable = true;
|
|
||||||
|
|
||||||
# Enable OpenSSH daemon
|
|
||||||
services.openssh = {
|
|
||||||
enable = true;
|
|
||||||
ports = [ 22 ];
|
|
||||||
settings = {
|
|
||||||
PasswordAuthentication = false;
|
|
||||||
AllowUsers = [ "rogueking" ];
|
|
||||||
UseDns = true;
|
|
||||||
X11Forwarding = false;
|
|
||||||
PermitRootLogin = "no";
|
|
||||||
MaxAuthTries = "20";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
users.users."rogueking".openssh.authorizedKeys.keys = [
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINXqriPZVIuduc/J7GS1mD171LL0gIbgEjlImsxedWVX"
|
|
||||||
];
|
|
||||||
|
|
||||||
# List packages installed in system profile. To search, run:
|
|
||||||
# $ nix search wget
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
#apps
|
|
||||||
#cider-2
|
|
||||||
fprintd
|
|
||||||
guacamole-client
|
|
||||||
#sddm-astronaut
|
|
||||||
polonium
|
|
||||||
|
|
||||||
#cli tools
|
|
||||||
aircrack-ng
|
|
||||||
android-tools
|
|
||||||
btop
|
|
||||||
curl
|
|
||||||
docker
|
|
||||||
dust
|
|
||||||
file
|
|
||||||
findutils
|
|
||||||
fwupd
|
|
||||||
git
|
|
||||||
hcxdumptool
|
|
||||||
hcxtools
|
|
||||||
kopia
|
|
||||||
lazydocker
|
|
||||||
metasploit
|
|
||||||
nettools
|
|
||||||
nix-prefetch-github
|
|
||||||
nmap
|
|
||||||
openssh
|
|
||||||
openssl
|
|
||||||
plocate
|
|
||||||
ptunnel
|
|
||||||
tlp
|
|
||||||
unzip
|
|
||||||
vim
|
|
||||||
wifite2
|
|
||||||
wirelesstools
|
|
||||||
|
|
||||||
#unstable
|
|
||||||
pkgs-unstable.crush
|
|
||||||
(pkgs-unstable.llama-cpp.override { cudaSupport = true; })
|
|
||||||
|
|
||||||
#fonts
|
|
||||||
nerd-fonts.hack
|
|
||||||
nerd-fonts.fira-code
|
|
||||||
|
|
||||||
];
|
|
||||||
|
|
||||||
home-manager = {
|
|
||||||
extraSpecialArgs = {
|
|
||||||
inherit
|
|
||||||
# config
|
|
||||||
configPath
|
|
||||||
inputs
|
|
||||||
pkgs-unstable
|
|
||||||
hostname
|
|
||||||
;
|
|
||||||
};
|
|
||||||
users = {
|
|
||||||
"rogueking" = import ./../../home-manager/home.nix;
|
|
||||||
};
|
|
||||||
backupFileExtension = "backup";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Some programs need SUID wrappers, can be configured further or are
|
|
||||||
# started in user sessions.
|
|
||||||
# programs.mtr.enable = true;
|
|
||||||
# programs.gnupg.agent = {
|
|
||||||
# enable = true;
|
|
||||||
# enableSSHSupport = true;
|
|
||||||
# };
|
|
||||||
|
|
||||||
# List services that you want to enable:
|
|
||||||
|
|
||||||
# Enable the OpenSSH daemon.
|
|
||||||
# services.openssh.enable = true;
|
|
||||||
|
|
||||||
# Open ports in the firewall.
|
|
||||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
|
||||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
|
||||||
# Or disable the firewall altogether.
|
|
||||||
# networking.firewall.enable = false;
|
|
||||||
|
|
||||||
# This value determines the NixOS release from which the default
|
|
||||||
# settings for stateful data, like file locations and database versions
|
|
||||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
|
||||||
# this value at the release version of the first install of this system.
|
|
||||||
# Before changing this value read the documentation for this option
|
|
||||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
|
||||||
system.stateVersion = "25.05"; # Did you read the comment?
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
# 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" "usbhid" "sd_mod" ];
|
|
||||||
boot.initrd.kernelModules = [ ];
|
|
||||||
boot.kernelModules = [ "kvm-intel" ];
|
|
||||||
boot.extraModulePackages = [ ];
|
|
||||||
|
|
||||||
fileSystems."/" =
|
|
||||||
{ device = "/dev/disk/by-uuid/c8250302-044c-4be5-89b8-a07706a8dedf";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/boot" =
|
|
||||||
{ device = "/dev/disk/by-uuid/E81D-0813";
|
|
||||||
fsType = "vfat";
|
|
||||||
options = [ "fmask=0077" "dmask=0077" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices =
|
|
||||||
[ { device = "/dev/disk/by-uuid/d8666f92-b7cf-40fb-b305-d16a84d79fa0"; }
|
|
||||||
];
|
|
||||||
|
|
||||||
# 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.enp0s31f6.useDHCP = lib.mkDefault true;
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
|
||||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
||||||
}
|
|
||||||
31
install.sh
Normal file
31
install.sh
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
!#/bin/bash
|
||||||
|
echo "Intalling nix and home-manager"
|
||||||
|
|
||||||
|
sh <(curl -L https://nixos.org/nix/install) --no-daemon
|
||||||
|
|
||||||
|
mkdir -p ~/.config/nix
|
||||||
|
echo "experimental-features = nix-command flakes" >>~/.config/nix/nix.conf
|
||||||
|
|
||||||
|
. ~/.nix-profile/etc/profile.d/nix.sh
|
||||||
|
|
||||||
|
nix-channel --add https://nixos.org/channels/nixos-24.11 nixpkgs
|
||||||
|
nix-channel --add https://github.com/nix-community/home-manager/archive/release-24.11.tar.gz home-manager
|
||||||
|
nix-channel --update
|
||||||
|
|
||||||
|
nix-shell '<home-manager>' -A install
|
||||||
|
|
||||||
|
cp -r home-manager/ ~/.config/
|
||||||
|
|
||||||
|
home-manager switch
|
||||||
|
|
||||||
|
sudo echo "/home/$USER/.nix-profile/bin/zsh" | sudo tee -a /etc/shells
|
||||||
|
|
||||||
|
. ~/.nix-profile/etc/profile.d/nix.sh
|
||||||
|
|
||||||
|
chsh -s /home/$USER/.nix-profile/bin/zsh $USER
|
||||||
|
|
||||||
|
source ~/.zshrc
|
||||||
|
|
||||||
|
#sudo echo ". ~/.nix-profile/etc/profile.d/nix.sh" | sudo tee -a ~/.bashrc
|
||||||
|
|
||||||
|
#sudo echo "zsh" | sudo tee -a ~/.bashrc
|
||||||
Reference in New Issue
Block a user