Compare commits
12 Commits
2d4ae9ef98
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| cc938db477 | |||
| b372f990c3 | |||
| 5c02123317 | |||
| fd8cb9c0c8 | |||
| e58d5a7a18 | |||
| 1b9d24ce15 | |||
| 5f16717f9b | |||
| f5ad771953 | |||
| 62c14b3cdd | |||
| 8669253399 | |||
| 5416a157c2 | |||
| 56272e024c |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -22,7 +22,6 @@ gqrx/
|
||||
gtk-*.0/
|
||||
htop/
|
||||
inkscape/
|
||||
hypr/
|
||||
lazygit/
|
||||
libreoffice/
|
||||
libvirt/
|
||||
|
||||
1
Kvantum/Base16Kvantum
Symbolic link
1
Kvantum/Base16Kvantum
Symbolic link
@@ -0,0 +1 @@
|
||||
/nix/store/p19lx2ymg13qw3abnkc5x1v3hj8r6zix-home-manager-files/.config/Kvantum/Base16Kvantum
|
||||
1
Kvantum/kvantum.kvconfig
Symbolic link
1
Kvantum/kvantum.kvconfig
Symbolic link
@@ -0,0 +1 @@
|
||||
/nix/store/p19lx2ymg13qw3abnkc5x1v3hj8r6zix-home-manager-files/.config/Kvantum/kvantum.kvconfig
|
||||
@@ -1 +1 @@
|
||||
/nix/store/2qyj9b0srxijc0spmdragvm2x650aiml-home-manager-files/.config/autostart/stylix-activate-gnome.desktop
|
||||
/nix/store/p19lx2ymg13qw3abnkc5x1v3hj8r6zix-home-manager-files/.config/autostart/stylix-activate-gnome.desktop
|
||||
@@ -1 +1 @@
|
||||
/nix/store/2qyj9b0srxijc0spmdragvm2x650aiml-home-manager-files/.config/autostart/stylix-activate-kde.desktop
|
||||
/nix/store/p19lx2ymg13qw3abnkc5x1v3hj8r6zix-home-manager-files/.config/autostart/stylix-activate-kde.desktop
|
||||
231
home-manager/flake.lock
generated
231
home-manager/flake.lock
generated
@@ -1,21 +1,5 @@
|
||||
{
|
||||
"nodes": {
|
||||
"advisory-db": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1770535588,
|
||||
"narHash": "sha256-zi+Ote4H/hbhKoAFpgEqYh04CEoOdgK8LSd53Pt/8AU=",
|
||||
"owner": "rustsec",
|
||||
"repo": "advisory-db",
|
||||
"rev": "1c176c03f6d76499a541a4598932837f9f4642ad",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "rustsec",
|
||||
"repo": "advisory-db",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"base16": {
|
||||
"inputs": {
|
||||
"fromYaml": "fromYaml"
|
||||
@@ -113,11 +97,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1772674260,
|
||||
"narHash": "sha256-6Ks0v3VtZ6KKzZiCJXFTjH2oTXPaVFBpijji3xCSN/E=",
|
||||
"lastModified": 1773451839,
|
||||
"narHash": "sha256-a7yGiEC2Nh4z7b5aR9sTPDnFOt7ykYQ3yU/MEdhKUWA=",
|
||||
"owner": "sadjow",
|
||||
"repo": "claude-code-nix",
|
||||
"rev": "4f5e65a89966a7de18b8449e60895209310f075f",
|
||||
"rev": "e64e47c888e3eb19d8c58c91046310582634271c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -134,11 +118,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1772679832,
|
||||
"narHash": "sha256-Osdir489CIBJkcmRcV0if204+tosauqm+Kn6nO3+AIg=",
|
||||
"lastModified": 1773189244,
|
||||
"narHash": "sha256-ctI2WntyGzjz7tCcGcG+l+ryV6fJsDvAySPtJH7ia+4=",
|
||||
"owner": "sadjow",
|
||||
"repo": "codex-cli-nix",
|
||||
"rev": "fcf491b98303c51bfcb72992aaa546ef4f339123",
|
||||
"rev": "60da592dbbfceec9adb8b84ea49e88b6663976ae",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -147,40 +131,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"crane": {
|
||||
"locked": {
|
||||
"lastModified": 1770419512,
|
||||
"narHash": "sha256-o8Vcdz6B6bkiGUYkZqFwH3Pv1JwZyXht3dMtS7RchIo=",
|
||||
"owner": "ipetkov",
|
||||
"repo": "crane",
|
||||
"rev": "2510f2cbc3ccd237f700bb213756a8f35c32d8d7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "ipetkov",
|
||||
"repo": "crane",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"fenix": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs",
|
||||
"rust-analyzer-src": "rust-analyzer-src"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1770534122,
|
||||
"narHash": "sha256-7pA+q0JjEpECX9aBT4x4b2IRQuGIYKGwksZTuSm2EA8=",
|
||||
"owner": "nix-community",
|
||||
"repo": "fenix",
|
||||
"rev": "0c9a447b32ee7af5cd2ad73aaf1bcfa09287a619",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "fenix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"firefox-gnome-theme": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
@@ -314,11 +264,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1772633327,
|
||||
"narHash": "sha256-jl+DJB2DUx7EbWLRng+6HNWW/1/VQOnf0NsQB4PlA7I=",
|
||||
"lastModified": 1773422513,
|
||||
"narHash": "sha256-MPjR48roW7CUMU6lu0+qQGqj92Kuh3paIulMWFZy+NQ=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "5a75730e6f21ee624cbf86f4915c6e7489c74acc",
|
||||
"rev": "ef12a9a2b0f77c8fa3dda1e7e494fca668909056",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -329,36 +279,33 @@
|
||||
},
|
||||
"niri": {
|
||||
"inputs": {
|
||||
"advisory-db": "advisory-db",
|
||||
"crane": "crane",
|
||||
"fenix": "fenix",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-tracy": "nixpkgs-tracy",
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
"rust-overlay": "rust-overlay"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1770946924,
|
||||
"narHash": "sha256-XpZyA6pkdtve0vRpiDiaDkWXavmh6quJ4TAv1w2Ic9s=",
|
||||
"owner": "Lukrecjaaa",
|
||||
"lastModified": 1773171230,
|
||||
"narHash": "sha256-ZiGGjRL2H67GcL6BvZV99khW++aHpJ2NA4n71qZiJ9A=",
|
||||
"owner": "niri-wm",
|
||||
"repo": "niri",
|
||||
"rev": "defcdd8c3f4262311b08e7c22c513b15a9965842",
|
||||
"rev": "4a7e443b6c816e4f673f6e25cc0a5aa37697d667",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Lukrecjaaa",
|
||||
"owner": "niri-wm",
|
||||
"ref": "wip/branch",
|
||||
"repo": "niri",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1770197578,
|
||||
"narHash": "sha256-AYqlWrX09+HvGs8zM6ebZ1pwUqjkfpnv8mewYwAo+iM=",
|
||||
"lastModified": 1773389992,
|
||||
"narHash": "sha256-wvfdLLWJ2I9oEpDd9PfMA8osfIZicoQ5MT1jIwNs9Tk=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "00c21e4c93d963c50d4c0c89bfa84ed6e0694df2",
|
||||
"rev": "c06b4ae3d6599a672a6210b7021d699c351eebda",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -384,54 +331,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-tracy": {
|
||||
"locked": {
|
||||
"lastModified": 1769755524,
|
||||
"narHash": "sha256-WdOgKw0aDi71hrGy7Zi0kTHEIGJFGB2lWBO32rAPgYA=",
|
||||
"owner": "davidkern",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "c15c8f34f27eeece2b38f570f676f3ec62a85122",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "davidkern",
|
||||
"ref": "tracy-split-package",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1770107345,
|
||||
"narHash": "sha256-tbS0Ebx2PiA1FRW8mt8oejR0qMXmziJmPaU1d4kYY9g=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "4533d9293756b63904b7238acb84ac8fe4c8c2c4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1772624091,
|
||||
"narHash": "sha256-QKyJ0QGWBn6r0invrMAK8dmJoBYWoOWy7lN+UHzW1jc=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "80bdc1e5ce51f56b19791b52b2901187931f5353",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"noctalia": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@@ -440,11 +339,11 @@
|
||||
"noctalia-qs": "noctalia-qs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1772722465,
|
||||
"narHash": "sha256-pj3/yHp0UgiOw83ZwkS8AVQxM4LFjlsEZC9uuZOvljo=",
|
||||
"lastModified": 1773498808,
|
||||
"narHash": "sha256-YnSRPOQC+fwSE3aA2C1rt9zaI4i3S4LTYY/3fqmRM4s=",
|
||||
"owner": "noctalia-dev",
|
||||
"repo": "noctalia-shell",
|
||||
"rev": "979a150e44ee855360e674a867ecf5750d380e65",
|
||||
"rev": "793771cd770431443d71e30ceede201048435a04",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -458,14 +357,15 @@
|
||||
"nixpkgs": [
|
||||
"noctalia",
|
||||
"nixpkgs"
|
||||
]
|
||||
],
|
||||
"systems": "systems_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1772673824,
|
||||
"narHash": "sha256-TLHXPoELZA6VeuzC1Zpx+MnSsYzrJs+DSieMgfjAOJc=",
|
||||
"lastModified": 1773175685,
|
||||
"narHash": "sha256-YOkWzVq7opym1ovJvSCvqpG6OCDGJwPo/EPeRxcGay4=",
|
||||
"owner": "noctalia-dev",
|
||||
"repo": "noctalia-qs",
|
||||
"rev": "f8531192cd09b9ea2e78d18e9cfc9d3dba498690",
|
||||
"rev": "6b9eceefde3d47ca83c544b54bcdd358be4cbd2f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -506,11 +406,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1772695593,
|
||||
"narHash": "sha256-kS8IgyBauCuOIgUcX4ajko6Szn4FPLCfwcEGfTv7RDc=",
|
||||
"lastModified": 1773480707,
|
||||
"narHash": "sha256-VkuO1LWpK7tS/YDmxJSDeONEwt1RFLPfOucQJwKnsV0=",
|
||||
"owner": "outfoxxed",
|
||||
"repo": "quickshell",
|
||||
"rev": "5721955686a474b814c27bc0ec743f86e473ac4f",
|
||||
"rev": "1b2519d9f3d963e575b8a1ef08fab47c7af0d1b3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -526,43 +426,47 @@
|
||||
"codex-cli-nix": "codex-cli-nix",
|
||||
"home-manager": "home-manager",
|
||||
"niri": "niri",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs-pre-ad01": "nixpkgs-pre-ad01",
|
||||
"noctalia": "noctalia",
|
||||
"quickshell": "quickshell",
|
||||
"rust-overlay": "rust-overlay",
|
||||
"rust-overlay": "rust-overlay_2",
|
||||
"stylix": "stylix"
|
||||
}
|
||||
},
|
||||
"rust-analyzer-src": {
|
||||
"flake": false,
|
||||
"rust-overlay": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"niri",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1770470239,
|
||||
"narHash": "sha256-0hooiH069rm+xUwRa20+Cj0mvTN6IQy797f3qPLbjsY=",
|
||||
"owner": "rust-lang",
|
||||
"repo": "rust-analyzer",
|
||||
"rev": "fc5544304143d4bfd10fbf8839b1010c15e1491e",
|
||||
"lastModified": 1757989933,
|
||||
"narHash": "sha256-9cpKYWWPCFhgwQTww8S94rTXgg8Q8ydFv9fXM6I8xQM=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "8249aa3442fb9b45e615a35f39eca2fe5510d7c3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "rust-lang",
|
||||
"ref": "nightly",
|
||||
"repo": "rust-analyzer",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"rust-overlay": {
|
||||
"rust-overlay_2": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1772679930,
|
||||
"narHash": "sha256-FxYmdacqrdDVeE9QqZKTIpNLjv2B8GSKssgwlZuTR98=",
|
||||
"lastModified": 1773457417,
|
||||
"narHash": "sha256-waABTSxPdbxml4BhcabHhyQF02Qnj27qRU4ard0mTQo=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "9b741db17141331fdb26270a1b66b81be8be9edd",
|
||||
"rev": "055977c30249484010750e03074c744dcdaa0d23",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -584,7 +488,7 @@
|
||||
"nixpkgs"
|
||||
],
|
||||
"nur": "nur",
|
||||
"systems": "systems_4",
|
||||
"systems": "systems_5",
|
||||
"tinted-foot": "tinted-foot",
|
||||
"tinted-kitty": "tinted-kitty",
|
||||
"tinted-schemes": "tinted-schemes",
|
||||
@@ -651,6 +555,21 @@
|
||||
}
|
||||
},
|
||||
"systems_4": {
|
||||
"locked": {
|
||||
"lastModified": 1689347949,
|
||||
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default-linux",
|
||||
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default-linux",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_5": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
@@ -745,24 +664,6 @@
|
||||
"repo": "base16-zed",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"treefmt-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1770228511,
|
||||
"narHash": "sha256-wQ6NJSuFqAEmIg2VMnLdCnUc0b7vslUohqqGGD+Fyxk=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "337a4fe074be1042a35086f15481d763b8ddc0e7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
};
|
||||
|
||||
niri = {
|
||||
url = "github:Lukrecjaaa/niri";
|
||||
url = "github:niri-wm/niri/wip/branch";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
@@ -51,31 +51,16 @@
|
||||
};
|
||||
};
|
||||
|
||||
outputs = { nixpkgs, nixpkgs-pre-ad01, home-manager, rust-overlay, stylix, niri, codex-cli-nix, claude-code-nix, binaryninja, ... }@inputs:
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
pinnedPkgs = nixpkgs-pre-ad01.legacyPackages.${system};
|
||||
in {
|
||||
homeConfigurations.lusia = home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
outputs = inputs: {
|
||||
homeConfigurations.lusia = inputs.home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = inputs.nixpkgs.legacyPackages.x86_64-linux;
|
||||
|
||||
modules = [
|
||||
stylix.homeModules.stylix
|
||||
./noctalia.nix
|
||||
./home.nix
|
||||
({ pkgs, ... }: {
|
||||
nixpkgs.overlays = [
|
||||
rust-overlay.overlays.default
|
||||
(final: prev: {
|
||||
gqrx = pinnedPkgs.gqrx;
|
||||
krita = pinnedPkgs.krita;
|
||||
})
|
||||
];
|
||||
home.packages = [ pkgs.rustup ];
|
||||
})
|
||||
];
|
||||
modules = [
|
||||
inputs.stylix.homeModules.stylix
|
||||
./home.nix
|
||||
];
|
||||
|
||||
extraSpecialArgs = { inherit inputs; };
|
||||
};
|
||||
extraSpecialArgs = { inherit inputs; };
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,264 +1,18 @@
|
||||
{ config, pkgs, inputs, ... }:
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./modules/overlays.nix
|
||||
./modules/packages.nix
|
||||
./modules/theming.nix
|
||||
./modules/programs/git.nix
|
||||
./modules/programs/gpg-agent.nix
|
||||
./modules/programs/obs-studio.nix
|
||||
];
|
||||
|
||||
home.username = "lusia";
|
||||
home.homeDirectory = "/home/lusia";
|
||||
home.stateVersion = "24.11";
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
home.packages = with pkgs; [
|
||||
# Window manager & desktop environment
|
||||
inputs.niri.packages.${pkgs.stdenv.hostPlatform.system}.niri
|
||||
swayidle
|
||||
swww
|
||||
kanshi
|
||||
|
||||
# System utilities & monitoring
|
||||
btop
|
||||
htop
|
||||
fastfetch
|
||||
dua
|
||||
nh
|
||||
dconf
|
||||
gparted
|
||||
mission-center
|
||||
gnome-software
|
||||
|
||||
# CLI tools & utilities
|
||||
ripgrep
|
||||
fd
|
||||
jq
|
||||
entr
|
||||
mdcat
|
||||
sshpass
|
||||
exiftool
|
||||
|
||||
# File managers & compression tools
|
||||
yazi
|
||||
nautilus
|
||||
file-roller
|
||||
p7zip
|
||||
unzip
|
||||
zip
|
||||
unrar
|
||||
|
||||
# Media viewers & players
|
||||
loupe
|
||||
evince
|
||||
vlc
|
||||
mpv
|
||||
zathura
|
||||
|
||||
# SDR
|
||||
gqrx
|
||||
gnuradio
|
||||
gnuradioPackages.lora_sdr
|
||||
|
||||
# Media creation & editing
|
||||
gimp
|
||||
blender
|
||||
ffmpeg
|
||||
yt-dlp
|
||||
waifu2x-converter-cpp
|
||||
libheif
|
||||
upscayl
|
||||
inkscape
|
||||
|
||||
# Office & productivity
|
||||
libreoffice-fresh
|
||||
gnome-text-editor
|
||||
gnome-calculator
|
||||
obsidian
|
||||
simple-scan
|
||||
system-config-printer
|
||||
|
||||
# Development tools
|
||||
neovim
|
||||
vscode.fhs
|
||||
lazygit
|
||||
cargo-cross
|
||||
cargo-generate
|
||||
probe-rs-tools
|
||||
elf2uf2-rs
|
||||
dbeaver-bin
|
||||
gnome-boxes
|
||||
cutecom
|
||||
inputs.binaryninja.packages.${pkgs.stdenv.hostPlatform.system}.binary-ninja-free-wayland
|
||||
|
||||
# AI development tools
|
||||
inputs.claude-code-nix.packages.${pkgs.stdenv.hostPlatform.system}.default
|
||||
inputs.codex-cli-nix.packages.${pkgs.stdenv.hostPlatform.system}.default
|
||||
gemini-cli
|
||||
|
||||
# Internet & networking
|
||||
firefox-bin
|
||||
filezilla
|
||||
qbittorrent
|
||||
tor-browser
|
||||
nmap
|
||||
gnome-network-displays
|
||||
|
||||
# Privacy & security
|
||||
gnupg
|
||||
pinentry-qt
|
||||
kdePackages.kleopatra
|
||||
monero-gui
|
||||
|
||||
# Python & AI
|
||||
python314
|
||||
openai-whisper
|
||||
|
||||
# Document processing
|
||||
tectonic
|
||||
mermaid-cli
|
||||
|
||||
# Theming
|
||||
pywal
|
||||
pywalfox-native
|
||||
morewaita-icon-theme
|
||||
|
||||
# Astronomy
|
||||
stellarium
|
||||
kstars
|
||||
|
||||
# Wrap PrismLauncher to fix Minecraft GLFW Wayland issues
|
||||
(pkgs.symlinkJoin {
|
||||
name = "prismlauncher";
|
||||
paths = [ pkgs.prismlauncher ];
|
||||
buildInputs = [ pkgs.makeWrapper ];
|
||||
postBuild = ''
|
||||
wrapProgram $out/bin/prismlauncher \
|
||||
--set SDL_VIDEODRIVER "x11"
|
||||
'';
|
||||
})
|
||||
|
||||
# Wrap Krita to work with XWayland (Krita doesn't support native Wayland)
|
||||
(pkgs.symlinkJoin {
|
||||
name = "krita";
|
||||
paths = [ pkgs.krita ];
|
||||
buildInputs = [ pkgs.makeWrapper ];
|
||||
postBuild = ''
|
||||
wrapProgram $out/bin/krita \
|
||||
--set DISPLAY ":0" \
|
||||
--set QT_AUTO_SCREEN_SCALE_FACTOR "0" \
|
||||
--set QT_SCALE_FACTOR "2" \
|
||||
--set QT_FONT_DPI "96"
|
||||
'';
|
||||
})
|
||||
];
|
||||
|
||||
# Set dark mode and Nautilus preferences
|
||||
dconf = {
|
||||
enable = true;
|
||||
settings = {
|
||||
"org/gnome/desktop/interface" = {
|
||||
color-scheme = "prefer-dark";
|
||||
};
|
||||
"org/gnome/nautilus/preferences" = {
|
||||
show-image-thumbnails = "always";
|
||||
};
|
||||
};
|
||||
};
|
||||
# Set morewaita as the default icon theme
|
||||
gtk = {
|
||||
enable = true;
|
||||
|
||||
iconTheme = {
|
||||
name = "MoreWaita";
|
||||
package = pkgs.morewaita-icon-theme;
|
||||
};
|
||||
|
||||
# Stylix manages theme, commenting out manual config
|
||||
# theme = {
|
||||
# name = "Adwaita-dark";
|
||||
# package = pkgs.gnome-themes-extra;
|
||||
# };
|
||||
|
||||
cursorTheme = {
|
||||
name = "Adwaita";
|
||||
package = pkgs.adwaita-icon-theme;
|
||||
};
|
||||
|
||||
# Force dark mode preference for GTK3
|
||||
gtk3.extraConfig = {
|
||||
gtk-application-prefer-dark-theme = 1;
|
||||
};
|
||||
|
||||
# Force dark mode preference for GTK4
|
||||
gtk4.extraConfig = {
|
||||
gtk-application-prefer-dark-theme = 1;
|
||||
};
|
||||
};
|
||||
|
||||
home.pointerCursor = {
|
||||
name = "Adwaita";
|
||||
package = pkgs.adwaita-icon-theme;
|
||||
size = 24;
|
||||
gtk.enable = true;
|
||||
x11 = {
|
||||
enable = true;
|
||||
defaultCursor = "Adwaita";
|
||||
};
|
||||
};
|
||||
|
||||
qt = {
|
||||
enable = true;
|
||||
platformTheme.name = "adwaita";
|
||||
style = {
|
||||
name = "adwaita-dark";
|
||||
};
|
||||
};
|
||||
|
||||
# Enable and configure git
|
||||
programs.git = {
|
||||
enable = true;
|
||||
settings = {
|
||||
user.name = "Lukrecja Pleskaczyńska";
|
||||
user.email = "lukrecjaaa@proton.me";
|
||||
credential.helper = "store";
|
||||
http."https://git.bgs.local:3000/" = {
|
||||
sslCAInfo = "/home/lusia/VSTech-vpn/bgs-git-ca.crt";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Configure GPG agent with pinentry
|
||||
services.gpg-agent = {
|
||||
enable = true;
|
||||
pinentry.package = pkgs.pinentry-qt;
|
||||
enableSshSupport = true;
|
||||
};
|
||||
|
||||
# OBS with plugins
|
||||
programs.obs-studio = {
|
||||
enable = true;
|
||||
|
||||
plugins = with pkgs.obs-studio-plugins; [
|
||||
wlrobs
|
||||
obs-backgroundremoval
|
||||
obs-pipewire-audio-capture
|
||||
obs-vaapi
|
||||
];
|
||||
};
|
||||
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
# Stylix theming
|
||||
stylix = {
|
||||
enable = true;
|
||||
|
||||
# Wallpaper required by Stylix (even though we use swww to actually display it)
|
||||
image = ./wallpaper;
|
||||
|
||||
# Use pywal's color scheme instead of extracting from image
|
||||
# sync-colors.sh will generate colors.yaml here
|
||||
base16Scheme = ./colors.yaml;
|
||||
|
||||
# Use dark mode
|
||||
polarity = "dark";
|
||||
|
||||
# Disable Qt theming (it's janky and doesn't apply everywhere)
|
||||
# targets.qt.enable = false;
|
||||
};
|
||||
}
|
||||
|
||||
18
home-manager/modules/overlays.nix
Normal file
18
home-manager/modules/overlays.nix
Normal file
@@ -0,0 +1,18 @@
|
||||
{ pkgs, inputs, ... }:
|
||||
|
||||
let
|
||||
system = pkgs.stdenv.hostPlatform.system;
|
||||
pinnedPkgs = inputs.nixpkgs-pre-ad01.legacyPackages.${system};
|
||||
in {
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
nixpkgs.overlays = [
|
||||
inputs.rust-overlay.overlays.default
|
||||
(final: prev: {
|
||||
gqrx = pinnedPkgs.gqrx;
|
||||
krita = pinnedPkgs.krita;
|
||||
})
|
||||
];
|
||||
|
||||
home.packages = [ pkgs.rustup ];
|
||||
}
|
||||
145
home-manager/modules/packages.nix
Normal file
145
home-manager/modules/packages.nix
Normal file
@@ -0,0 +1,145 @@
|
||||
{ pkgs, inputs, ... }:
|
||||
|
||||
let
|
||||
system = pkgs.stdenv.hostPlatform.system;
|
||||
in {
|
||||
home.packages = with pkgs; [
|
||||
# Window manager & desktop environment
|
||||
inputs.niri.packages.${system}.niri
|
||||
inputs.noctalia.packages.${system}.default
|
||||
inputs.quickshell.packages.${system}.default
|
||||
swayidle
|
||||
swww
|
||||
kanshi
|
||||
hyprlock
|
||||
|
||||
# System utilities & monitoring
|
||||
btop
|
||||
htop
|
||||
fastfetch
|
||||
dua
|
||||
nh
|
||||
dconf
|
||||
gparted
|
||||
mission-center
|
||||
gnome-software
|
||||
|
||||
# CLI tools & utilities
|
||||
ripgrep
|
||||
fd
|
||||
jq
|
||||
entr
|
||||
mdcat
|
||||
sshpass
|
||||
exiftool
|
||||
|
||||
# File managers & compression tools
|
||||
yazi
|
||||
nautilus
|
||||
file-roller
|
||||
p7zip
|
||||
unzip
|
||||
zip
|
||||
unrar
|
||||
|
||||
# Media viewers & players
|
||||
loupe
|
||||
evince
|
||||
vlc
|
||||
mpv
|
||||
zathura
|
||||
|
||||
# SDR
|
||||
gqrx
|
||||
gnuradio
|
||||
gnuradioPackages.lora_sdr
|
||||
|
||||
# Media creation & editing
|
||||
gimp
|
||||
blender
|
||||
ffmpeg
|
||||
yt-dlp
|
||||
waifu2x-converter-cpp
|
||||
libheif
|
||||
upscayl
|
||||
inkscape
|
||||
|
||||
# Office & productivity
|
||||
libreoffice-fresh
|
||||
gnome-text-editor
|
||||
gnome-calculator
|
||||
obsidian
|
||||
simple-scan
|
||||
system-config-printer
|
||||
|
||||
# Development tools
|
||||
neovim
|
||||
vscode.fhs
|
||||
lazygit
|
||||
cargo-cross
|
||||
cargo-generate
|
||||
probe-rs-tools
|
||||
elf2uf2-rs
|
||||
dbeaver-bin
|
||||
gnome-boxes
|
||||
cutecom
|
||||
inputs.binaryninja.packages.${system}.binary-ninja-free-wayland
|
||||
helix
|
||||
|
||||
# AI development tools
|
||||
inputs.claude-code-nix.packages.${system}.default
|
||||
inputs.codex-cli-nix.packages.${system}.default
|
||||
gemini-cli
|
||||
|
||||
# Internet & networking
|
||||
firefox-bin
|
||||
filezilla
|
||||
qbittorrent
|
||||
tor-browser
|
||||
nmap
|
||||
gnome-network-displays
|
||||
|
||||
# Privacy & security
|
||||
gnupg
|
||||
pinentry-qt
|
||||
kdePackages.kleopatra
|
||||
monero-gui
|
||||
|
||||
# Python & AI
|
||||
python314
|
||||
openai-whisper
|
||||
|
||||
# Document processing
|
||||
tectonic
|
||||
mermaid-cli
|
||||
|
||||
# Astronomy
|
||||
stellarium
|
||||
kstars
|
||||
|
||||
# Wrap PrismLauncher to fix Minecraft GLFW Wayland issues
|
||||
(pkgs.symlinkJoin {
|
||||
name = "prismlauncher";
|
||||
paths = [ pkgs.prismlauncher ];
|
||||
buildInputs = [ pkgs.makeWrapper ];
|
||||
postBuild = ''
|
||||
wrapProgram $out/bin/prismlauncher \
|
||||
--set SDL_VIDEODRIVER "x11"
|
||||
'';
|
||||
})
|
||||
|
||||
# Wrap Krita to work with XWayland (Krita doesn't support native Wayland)
|
||||
(pkgs.symlinkJoin {
|
||||
name = "krita";
|
||||
paths = [ pkgs.krita ];
|
||||
buildInputs = [ pkgs.makeWrapper ];
|
||||
postBuild = ''
|
||||
wrapProgram $out/bin/krita \
|
||||
--set DISPLAY ":0" \
|
||||
--set QT_AUTO_SCREEN_SCALE_FACTOR "0" \
|
||||
--set QT_SCALE_FACTOR "2" \
|
||||
--set QT_FONT_DPI "96"
|
||||
'';
|
||||
})
|
||||
];
|
||||
}
|
||||
15
home-manager/modules/programs/git.nix
Normal file
15
home-manager/modules/programs/git.nix
Normal file
@@ -0,0 +1,15 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
programs.git = {
|
||||
enable = true;
|
||||
settings = {
|
||||
user.name = "Lukrecja Pleskaczyńska";
|
||||
user.email = "lukrecjaaa@proton.me";
|
||||
credential.helper = "store";
|
||||
http."https://git.bgs.local:3000/" = {
|
||||
sslCAInfo = "/home/lusia/VSTech-vpn/bgs-git-ca.crt";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
9
home-manager/modules/programs/gpg-agent.nix
Normal file
9
home-manager/modules/programs/gpg-agent.nix
Normal file
@@ -0,0 +1,9 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
services.gpg-agent = {
|
||||
enable = true;
|
||||
pinentry.package = pkgs.pinentry-qt;
|
||||
enableSshSupport = true;
|
||||
};
|
||||
}
|
||||
13
home-manager/modules/programs/obs-studio.nix
Normal file
13
home-manager/modules/programs/obs-studio.nix
Normal file
@@ -0,0 +1,13 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.obs-studio = {
|
||||
enable = true;
|
||||
plugins = with pkgs.obs-studio-plugins; [
|
||||
wlrobs
|
||||
obs-backgroundremoval
|
||||
obs-pipewire-audio-capture
|
||||
obs-vaapi
|
||||
];
|
||||
};
|
||||
}
|
||||
62
home-manager/modules/theming.nix
Normal file
62
home-manager/modules/theming.nix
Normal file
@@ -0,0 +1,62 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
stylix = {
|
||||
enable = true;
|
||||
image = ../wallpaper;
|
||||
base16Scheme = ../colors.yaml;
|
||||
polarity = "dark";
|
||||
targets.qt.enable = true;
|
||||
};
|
||||
|
||||
dconf = {
|
||||
enable = true;
|
||||
settings = {
|
||||
"org/gnome/desktop/interface" = {
|
||||
color-scheme = "prefer-dark";
|
||||
};
|
||||
"org/gnome/nautilus/preferences" = {
|
||||
show-image-thumbnails = "always";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
gtk = {
|
||||
enable = true;
|
||||
|
||||
iconTheme = {
|
||||
name = "MoreWaita";
|
||||
package = pkgs.morewaita-icon-theme;
|
||||
};
|
||||
|
||||
cursorTheme = {
|
||||
name = "Adwaita";
|
||||
package = pkgs.adwaita-icon-theme;
|
||||
};
|
||||
|
||||
gtk3.extraConfig = {
|
||||
gtk-application-prefer-dark-theme = 1;
|
||||
};
|
||||
|
||||
gtk4.extraConfig = {
|
||||
gtk-application-prefer-dark-theme = 1;
|
||||
};
|
||||
};
|
||||
|
||||
home.pointerCursor = {
|
||||
name = "Adwaita";
|
||||
package = pkgs.adwaita-icon-theme;
|
||||
size = 24;
|
||||
gtk.enable = true;
|
||||
x11 = {
|
||||
enable = true;
|
||||
defaultCursor = "Adwaita";
|
||||
};
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
pywal
|
||||
pywalfox-native
|
||||
morewaita-icon-theme
|
||||
];
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
{ pkgs, inputs, ... }:
|
||||
{
|
||||
# import the home manager module
|
||||
#imports = [
|
||||
# inputs.noctalia.homeModules.default
|
||||
#];
|
||||
|
||||
# Install the package
|
||||
home.packages = [
|
||||
inputs.noctalia.packages.${pkgs.stdenv.hostPlatform.system}.default
|
||||
inputs.quickshell.packages.${pkgs.stdenv.hostPlatform.system}.default
|
||||
];
|
||||
|
||||
# configure options
|
||||
#programs.noctalia-shell = {
|
||||
# enable = true;
|
||||
#};
|
||||
}
|
||||
73
hypr/hyprlock.conf
Normal file
73
hypr/hyprlock.conf
Normal file
@@ -0,0 +1,73 @@
|
||||
$font = Monospace
|
||||
|
||||
general {
|
||||
hide_cursor = false
|
||||
}
|
||||
|
||||
animations {
|
||||
enabled = true
|
||||
bezier = linear, 1, 1, 0, 0
|
||||
animation = fadeIn, 1, 5, linear
|
||||
animation = fadeOut, 1, 5, linear
|
||||
animation = inputFieldDots, 1, 2, linear
|
||||
}
|
||||
|
||||
background {
|
||||
monitor =
|
||||
path = screenshot
|
||||
blur_passes = 4
|
||||
}
|
||||
|
||||
source = $HOME/.cache/wal/colors-hyprland.conf
|
||||
|
||||
input-field {
|
||||
monitor =
|
||||
size = 20%, 5%
|
||||
outline_thickness = 3
|
||||
inner_color = rgba(0, 0, 0, 0.0) # no fill
|
||||
|
||||
outer_color = $color1 $color2 45deg
|
||||
check_color = $color3 $color4 120deg
|
||||
fail_color = $color5 $color6 40deg
|
||||
|
||||
font_color = $color15
|
||||
fade_on_empty = false
|
||||
rounding = 32
|
||||
|
||||
font_family = $font
|
||||
placeholder_text = unlock me :3
|
||||
fail_text = wrong you fucking idiot >:3
|
||||
|
||||
dots_text_format = ❤
|
||||
dots_size = 0.5
|
||||
dots_spacing = 0.3
|
||||
|
||||
position = 0, -20
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# TIME
|
||||
label {
|
||||
monitor =
|
||||
text = $TIME
|
||||
font_size = 90
|
||||
font_family = $font
|
||||
|
||||
position = 0, 165
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# DATE
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:60000] date +"%A, %d %B %Y"
|
||||
font_size = 25
|
||||
font_family = $font
|
||||
|
||||
position = 0, 75
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
layout {
|
||||
blur {
|
||||
noise 0.1
|
||||
passes 3
|
||||
radius 10
|
||||
}
|
||||
gaps 5
|
||||
background-color "transparent"
|
||||
always-center-single-column
|
||||
@@ -85,34 +80,63 @@ window-rule {
|
||||
}
|
||||
window-rule {
|
||||
match app-id="kitty"
|
||||
blur {
|
||||
on
|
||||
|
||||
background-effect {
|
||||
blur true
|
||||
noise 0.1
|
||||
xray true
|
||||
}
|
||||
}
|
||||
window-rule {
|
||||
match app-id="kitty" is-floating=true
|
||||
|
||||
background-effect {
|
||||
blur true
|
||||
noise 0.1
|
||||
xray false
|
||||
}
|
||||
}
|
||||
window-rule {
|
||||
match app-id="code"
|
||||
opacity 0.85
|
||||
blur {
|
||||
on
|
||||
|
||||
background-effect {
|
||||
blur true
|
||||
noise 0.1
|
||||
xray true
|
||||
}
|
||||
}
|
||||
window-rule {
|
||||
match app-id="code" is-floating=true
|
||||
|
||||
background-effect {
|
||||
blur true
|
||||
noise 0.1
|
||||
xray false
|
||||
}
|
||||
}
|
||||
window-rule {
|
||||
match app-id="org.gnome.Nautilus"
|
||||
opacity 0.85
|
||||
blur {
|
||||
on
|
||||
|
||||
background-effect {
|
||||
blur true
|
||||
noise 0.1
|
||||
xray true
|
||||
}
|
||||
}
|
||||
window-rule {
|
||||
match app-id="org.gnome.Nautilus" is-floating=true
|
||||
|
||||
background-effect {
|
||||
blur true
|
||||
noise 0.1
|
||||
xray false
|
||||
}
|
||||
}
|
||||
layer-rule {
|
||||
match namespace="^quickshell-overview$"
|
||||
}
|
||||
// Disable blur on Noctalia bar and panel surfaces
|
||||
layer-rule {
|
||||
match namespace="^noctalia-"
|
||||
blur {
|
||||
off
|
||||
}
|
||||
}
|
||||
binds {
|
||||
// Core Noctalia binds
|
||||
Mod+Space {
|
||||
@@ -140,7 +164,7 @@ binds {
|
||||
}
|
||||
// Utility shortcuts
|
||||
Mod+L {
|
||||
spawn "noctalia-shell" "ipc" "call" "lockScreen" "lock"
|
||||
spawn "hyprlock"
|
||||
}
|
||||
// Mod-Shift-/, which is usually the same as Mod-?,
|
||||
// shows a list of important hotkeys.
|
||||
|
||||
@@ -1,360 +1,53 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ # Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
|
||||
# Use the systemd-boot EFI boot loader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
boot.resumeDevice = "/dev/mapper/luksroot";
|
||||
./modules/boot/bootloader.nix
|
||||
./modules/boot/kernel.nix
|
||||
./modules/boot/plymouth.nix
|
||||
./modules/boot/tpm.nix
|
||||
|
||||
boot.extraModprobeConfig = ''
|
||||
options mt7921_common disable_clc=1
|
||||
options atkbd reset=1 softrepeat=1
|
||||
options i8042 nomux=1 reset=1 nopnp=1 kbdreset=1 direct=1 dumbkbd=1
|
||||
'';
|
||||
./modules/desktop/fonts.nix
|
||||
./modules/desktop/greetd.nix
|
||||
./modules/desktop/xdg.nix
|
||||
./modules/desktop/xwayland.nix
|
||||
|
||||
# Blacklist built-in RTL modules
|
||||
boot.blacklistedKernelModules = [
|
||||
"dvb_usb_rtl28xxu"
|
||||
"rtl2832"
|
||||
"rtl2830"
|
||||
./modules/filesystems.nix
|
||||
|
||||
./modules/hardware/bluetooth.nix
|
||||
./modules/hardware/gpu.nix
|
||||
./modules/hardware/power.nix
|
||||
./modules/hardware/rtl-sdr.nix
|
||||
./modules/hardware/scanner.nix
|
||||
./modules/hardware/tablet.nix
|
||||
./modules/hardware/udev.nix
|
||||
|
||||
./modules/networking/general.nix
|
||||
./modules/networking/tailscale.nix
|
||||
./modules/networking/vpn.nix
|
||||
|
||||
./modules/packages.nix
|
||||
|
||||
./modules/services/flatpak.nix
|
||||
./modules/services/printing.nix
|
||||
./modules/services/smb.nix
|
||||
./modules/services/ssh.nix
|
||||
|
||||
./modules/users.nix
|
||||
./modules/virtualization.nix
|
||||
./modules/wireshark.nix
|
||||
];
|
||||
|
||||
# Kernel parameters for power saving
|
||||
boot.kernelParams = [
|
||||
# CRITICAL FIX: Disable ACPI for i8042 (ASUS BIOS bug workaround)
|
||||
"i8042.noacpi" # Disable buggy ASUS ACPI keyboard controller
|
||||
"i8042.reset=1" # Force reset i8042
|
||||
"i8042.nomux=1" # No multiplexing
|
||||
"i8042.nopnp=1" # Ignore PnP detection
|
||||
"atkbd.softrepeat=1" # Software key repeat
|
||||
"amd_pstate=active" # Use AMD P-State driver for better power management
|
||||
"amd_pstate.shared_mem=1"
|
||||
# "pcie_aspm.policy=powersupersave" # Aggressive PCIe power management
|
||||
"amdgpu.gpu_recovery=1" # Enable automatic GPU recovery
|
||||
"amdgpu.runpm=0" # Disable runtime PM (major hang cause)
|
||||
###"amdgpu.dcdebugmask=0x400"
|
||||
#"amdgpu.dcdebugmask=0x10" # Disable PSR (panel self-refresh)
|
||||
#"amdgpu.ppfeaturemask=0xf7fff" # Disable GFXOFF
|
||||
];
|
||||
|
||||
# Disable TPM
|
||||
systemd.tpm2.enable = false;
|
||||
boot.initrd.systemd.tpm2.enable = false;
|
||||
|
||||
# Enable swap file
|
||||
swapDevices = [{ device = "/swap/swapfile"; }];
|
||||
|
||||
# Override btrfs mount options from hardware-configuration.nix
|
||||
fileSystems."/" = {
|
||||
options = [ "subvol=@" "compress=zstd" "space_cache=v2" "noatime"
|
||||
"lazytime" "ssd" "discard=async" ];
|
||||
};
|
||||
|
||||
fileSystems."/home" = {
|
||||
options = [ "subvol=@home" "compress=zstd" "space_cache=v2" "noatime"
|
||||
"lazytime" "ssd" "discard=async" ];
|
||||
};
|
||||
|
||||
fileSystems."/var/log" = {
|
||||
options = [ "subvol=@log" "compress=zstd" "space_cache=v2" "noatime"
|
||||
"lazytime" "ssd" "discard=async" ];
|
||||
};
|
||||
|
||||
fileSystems."/swap" = {
|
||||
options = [ "subvol=@swap" "noatime" "ssd" "discard=async" ];
|
||||
};
|
||||
|
||||
# Enable NetworkManager and set network host name
|
||||
networking.networkmanager.enable = true;
|
||||
networking.hostName = "lusia-laptop";
|
||||
|
||||
# NetworkManager power saving for WiFi
|
||||
networking.networkmanager.wifi.powersave = true;
|
||||
|
||||
# Enable Tailscale
|
||||
services.tailscale.enable = true;
|
||||
|
||||
# Trust the Tailscale interface
|
||||
networking.firewall.trustedInterfaces = [ "tailscale0" ];
|
||||
|
||||
# Disable reverse path filtering for Tailscale, change kernel writeback options
|
||||
boot.kernel.sysctl = {
|
||||
"net.ipv4.conf.tailscale0.rp_filter" = 0;
|
||||
"vm.dirty_ratio" = 10;
|
||||
"vm.dirty_background_ratio" = 5;
|
||||
"vm.swappiness" = 10;
|
||||
};
|
||||
|
||||
# Enable resolved
|
||||
services.resolved.enable = true;
|
||||
|
||||
# Set DNS
|
||||
networking.nameservers = [ "9.9.9.9" ];
|
||||
|
||||
# OpenVPN services
|
||||
# VSTech VPN (with DNS for bgs.local domain)
|
||||
services.openvpn.servers.vstech = {
|
||||
config = ''
|
||||
client
|
||||
remote 51.83.143.81
|
||||
proto udp
|
||||
port 649
|
||||
dev tun
|
||||
topology subnet
|
||||
ca /home/lusia/VSTech-vpn/ca.crt
|
||||
cert /home/lusia/VSTech-vpn/Klient251.crt
|
||||
key /home/lusia/VSTech-vpn/Klient251.inline
|
||||
tls-crypt /home/lusia/VSTech-vpn/ta.key
|
||||
|
||||
auth sha512
|
||||
data-ciphers aes-256-cbc
|
||||
data-ciphers-fallback aes-256-cbc
|
||||
key-direction 1
|
||||
keepalive 10 120
|
||||
'';
|
||||
updateResolvConf = false;
|
||||
|
||||
# Manually set DNS after connection
|
||||
up = ''
|
||||
${pkgs.systemd}/bin/resolvectl dns $dev 10.10.10.1
|
||||
${pkgs.systemd}/bin/resolvectl domain $dev bgs.local
|
||||
'';
|
||||
|
||||
down = ''
|
||||
${pkgs.systemd}/bin/resolvectl revert $dev
|
||||
'';
|
||||
};
|
||||
|
||||
# CAT VPN
|
||||
services.openvpn.servers.cat = {
|
||||
config = ''
|
||||
client
|
||||
remote 79.133.193.211
|
||||
proto tcp
|
||||
port 1194
|
||||
dev tun
|
||||
topology subnet
|
||||
ca /home/lusia/vpn/ca.crt
|
||||
cert /home/lusia/vpn/client18.crt
|
||||
key /home/lusia/vpn/client18.key
|
||||
|
||||
auth sha256
|
||||
data-ciphers AES-256-CBC
|
||||
key-direction 1
|
||||
'';
|
||||
updateResolvConf = true;
|
||||
};
|
||||
|
||||
# Enable upower service
|
||||
services.upower.enable = true;
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "Europe/Warsaw";
|
||||
|
||||
# Select internationalisation properties.
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
console = {
|
||||
keyMap = "pl";
|
||||
};
|
||||
|
||||
# Enable fish
|
||||
programs.fish.enable = true;
|
||||
|
||||
# Enable greetd with tuigreet
|
||||
services.greetd = {
|
||||
enable = true;
|
||||
settings = {
|
||||
default_session = {
|
||||
command = "${pkgs.tuigreet}/bin/tuigreet --time --cmd niri-session";
|
||||
user = "greeter";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Essential for niri
|
||||
security.polkit.enable = true;
|
||||
services.gnome.gnome-keyring.enable = true;
|
||||
|
||||
# XDG Portal for file pickers or screen sharing
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
extraPortals = [ pkgs.xdg-desktop-portal-gtk
|
||||
pkgs.xdg-desktop-portal-gnome ];
|
||||
config = {
|
||||
common = {
|
||||
default = [ "gtk" ];
|
||||
"org.freedesktop.impl.portal.ScreenCast" = [ "gnome" ];
|
||||
"org.freedesktop.impl.portal.Screenshot" = [ "gnome" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Enable dconf
|
||||
programs.dconf.enable = true;
|
||||
|
||||
users.groups.plugdev = {};
|
||||
|
||||
users.users.lusia = {
|
||||
isNormalUser = true;
|
||||
description = "Lukrecja";
|
||||
extraGroups = [ "wheel" "networkmanager" "docker" "plugdev" "scanner" "lp" "wireshark" "libvirtd" "kvm" "vboxusers" "dialout" ];
|
||||
initialPassword = "pass";
|
||||
shell = pkgs.fish;
|
||||
};
|
||||
|
||||
# Import udev rules for probe-rs
|
||||
services.udev.packages = [
|
||||
(pkgs.writeTextFile {
|
||||
name = "probe-rs-udev-rules";
|
||||
destination = "/etc/udev/rules.d/69-probe-rs.rules";
|
||||
text = builtins.readFile ./udev-rules/69-probe-rs.rules;
|
||||
})
|
||||
];
|
||||
console.keyMap = "pl";
|
||||
|
||||
hardware.enableAllFirmware = true;
|
||||
services.openssh.enable = true;
|
||||
security.sudo.enable = true;
|
||||
|
||||
# Enable virtualisation
|
||||
virtualisation.libvirtd.enable = true;
|
||||
|
||||
# Enable VirtualBox
|
||||
virtualisation.virtualbox.host.enable = true;
|
||||
virtualisation.virtualbox.host.enableExtensionPack = true;
|
||||
|
||||
# Enable xwayland
|
||||
programs.xwayland.enable = true;
|
||||
|
||||
# Set a session variable for icon theme
|
||||
environment.sessionVariables = rec {
|
||||
QT_QPA_PLATFORMTHEME = "qt5ct";
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
git
|
||||
curl
|
||||
wget
|
||||
vim
|
||||
fish
|
||||
kitty
|
||||
#asusctl
|
||||
powertop # For monitoring power consumption
|
||||
openvpn
|
||||
nodejs
|
||||
gnumake
|
||||
gcc
|
||||
cmake
|
||||
xwayland-satellite
|
||||
busybox
|
||||
libdecor
|
||||
file
|
||||
cifs-utils
|
||||
samba
|
||||
gvfs
|
||||
];
|
||||
|
||||
# Enable Wireshark with proper groups
|
||||
programs.wireshark.enable = true;
|
||||
programs.wireshark.package = pkgs.wireshark;
|
||||
|
||||
# Fonts
|
||||
fonts.packages = with pkgs; [
|
||||
noto-fonts
|
||||
noto-fonts-cjk-sans
|
||||
noto-fonts-color-emoji
|
||||
pkgs.nerd-fonts.fira-code
|
||||
];
|
||||
|
||||
# For SMB shares
|
||||
services.gvfs.enable = true;
|
||||
|
||||
# Printers
|
||||
services.avahi = {
|
||||
enable = true;
|
||||
nssmdns4 = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
|
||||
services.printing = {
|
||||
enable = true;
|
||||
drivers = with pkgs; [
|
||||
cups-filters
|
||||
cups-browsed
|
||||
];
|
||||
};
|
||||
|
||||
# Enable Flatpaks
|
||||
services.flatpak.enable = true;
|
||||
|
||||
# Enable Docker
|
||||
virtualisation.docker.enable = true;
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
|
||||
# Enable Bluetooth (but it will be blocked by default to save power)
|
||||
hardware.bluetooth.enable = true;
|
||||
hardware.bluetooth.powerOnBoot = false; # Don't power on bluetooth at boot
|
||||
|
||||
hardware.sane.enable = true;
|
||||
|
||||
# Configure epsonds for network scanning
|
||||
environment.etc."sane.d/epsonds.conf".text = ''
|
||||
net EPSOND80395.local
|
||||
'';
|
||||
|
||||
# Enable OpenTabletDriver
|
||||
hardware.opentabletdriver.enable = true;
|
||||
hardware.uinput.enable = true;
|
||||
|
||||
# Enable kernel modules
|
||||
boot.kernelModules = [ "uinput" "usbmon" "kvm-amd" ];
|
||||
|
||||
# Enable PPD for power options
|
||||
services.power-profiles-daemon.enable = true;
|
||||
|
||||
# Enable AMD GPU graphics acceleration
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
enable32Bit = true; # For 32-bit applications/games
|
||||
};
|
||||
|
||||
# Enable RTL-SDL module
|
||||
hardware.rtl-sdr.enable = true;
|
||||
|
||||
# Open ports in the firewall.
|
||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||
# Or disable the firewall altogether.
|
||||
# networking.firewall.enable = false;
|
||||
|
||||
# Copy the NixOS configuration file and link it from the resulting system
|
||||
# (/run/current-system/configuration.nix). This is useful in case you
|
||||
# accidentally delete configuration.nix.
|
||||
# system.copySystemConfiguration = true;
|
||||
|
||||
# This option defines the first version of NixOS you have installed on this particular machine,
|
||||
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
|
||||
#
|
||||
# Most users should NEVER change this value after the initial install, for any reason,
|
||||
# even if you've upgraded your system to a new NixOS release.
|
||||
#
|
||||
# This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
|
||||
# so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how
|
||||
# to actually do that.
|
||||
#
|
||||
# This value being lower than the current NixOS release does NOT mean your system is
|
||||
# out of date, out of support, or vulnerable.
|
||||
#
|
||||
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
|
||||
# and migrated your data accordingly.
|
||||
#
|
||||
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
|
||||
system.stateVersion = "24.11"; # Did you read the comment?
|
||||
|
||||
system.stateVersion = "24.11";
|
||||
}
|
||||
|
||||
42
nixos/flake.lock
generated
42
nixos/flake.lock
generated
@@ -1,45 +1,12 @@
|
||||
{
|
||||
"nodes": {
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1772516620,
|
||||
"narHash": "sha256-2r4cKdqCVlQkvcTcLUMxmsmAYZZxCMd//w/PnDnukTE=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "2b9504d5a0169d4940a312abe2df2c5658db8de9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "home-manager",
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1770841267,
|
||||
"narHash": "sha256-9xejG0KoqsoKEGp2kVbXRlEYtFFcDTHjidiuX8hGO44=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "ec7c70d12ce2fc37cb92aff673dcdca89d187bae",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1772433332,
|
||||
"narHash": "sha256-izhTDFKsg6KeVBxJS9EblGeQ8y+O8eCa6RcW874vxEc=",
|
||||
"lastModified": 1773389992,
|
||||
"narHash": "sha256-wvfdLLWJ2I9oEpDd9PfMA8osfIZicoQ5MT1jIwNs9Tk=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "cf59864ef8aa2e178cccedbe2c178185b0365705",
|
||||
"rev": "c06b4ae3d6599a672a6210b7021d699c351eebda",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -51,8 +18,7 @@
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"home-manager": "home-manager",
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -5,14 +5,10 @@
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
};
|
||||
|
||||
outputs = inputs@{ nixpkgs, home-manager, ... }: {
|
||||
nixosConfigurations = {
|
||||
lusia-laptop = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
./configuration.nix
|
||||
];
|
||||
};
|
||||
outputs = inputs: {
|
||||
nixosConfigurations.lusia-laptop = inputs.nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
modules = [ ./configuration.nix ];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
home.username = "lusia";
|
||||
home.homeDirectory = "/home/lusia";
|
||||
home.stateVersion = "24.11";
|
||||
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
programs.home-manager.enable = true;
|
||||
}
|
||||
11
nixos/modules/boot/bootloader.nix
Normal file
11
nixos/modules/boot/bootloader.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
boot.resumeDevice = "/dev/mapper/luksroot";
|
||||
boot.consoleLogLevel = 3;
|
||||
boot.initrd.systemd.enable = true;
|
||||
boot.initrd.verbose = false;
|
||||
boot.loader.timeout = 0;
|
||||
}
|
||||
29
nixos/modules/boot/kernel.nix
Normal file
29
nixos/modules/boot/kernel.nix
Normal file
@@ -0,0 +1,29 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
boot.extraModprobeConfig = ''
|
||||
options mt7921_common disable_clc=1
|
||||
options atkbd reset=1 softrepeat=1
|
||||
options i8042 nomux=1 reset=1 nopnp=1 kbdreset=1 direct=1 dumbkbd=1
|
||||
'';
|
||||
|
||||
boot.kernelParams = [
|
||||
# CRITICAL FIX: Disable ACPI for i8042 (ASUS BIOS bug workaround)
|
||||
"i8042.noacpi"
|
||||
"i8042.reset=1"
|
||||
"i8042.nomux=1"
|
||||
"i8042.nopnp=1"
|
||||
"atkbd.softrepeat=1"
|
||||
# AMD P-State driver for better power management
|
||||
"amd_pstate=active"
|
||||
"amd_pstate.shared_mem=1"
|
||||
# GPU
|
||||
"amdgpu.gpu_recovery=1"
|
||||
"amdgpu.runpm=0"
|
||||
"quiet"
|
||||
"udev.log_level=3"
|
||||
"systemd.show_status=auto"
|
||||
];
|
||||
|
||||
boot.kernelModules = [ "usbmon" ];
|
||||
}
|
||||
8
nixos/modules/boot/plymouth.nix
Normal file
8
nixos/modules/boot/plymouth.nix
Normal file
@@ -0,0 +1,8 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
boot.plymouth = {
|
||||
enable = true;
|
||||
theme = "bgrt";
|
||||
};
|
||||
}
|
||||
6
nixos/modules/boot/tpm.nix
Normal file
6
nixos/modules/boot/tpm.nix
Normal file
@@ -0,0 +1,6 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
systemd.tpm2.enable = false;
|
||||
boot.initrd.systemd.tpm2.enable = false;
|
||||
}
|
||||
10
nixos/modules/desktop/fonts.nix
Normal file
10
nixos/modules/desktop/fonts.nix
Normal file
@@ -0,0 +1,10 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
fonts.packages = with pkgs; [
|
||||
noto-fonts
|
||||
noto-fonts-cjk-sans
|
||||
noto-fonts-color-emoji
|
||||
nerd-fonts.fira-code
|
||||
];
|
||||
}
|
||||
13
nixos/modules/desktop/greetd.nix
Normal file
13
nixos/modules/desktop/greetd.nix
Normal file
@@ -0,0 +1,13 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
services.greetd = {
|
||||
enable = true;
|
||||
settings = {
|
||||
default_session = {
|
||||
command = "${pkgs.tuigreet}/bin/tuigreet --time --cmd niri-session";
|
||||
user = "greeter";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
22
nixos/modules/desktop/xdg.nix
Normal file
22
nixos/modules/desktop/xdg.nix
Normal file
@@ -0,0 +1,22 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
security.polkit.enable = true;
|
||||
services.gnome.gnome-keyring.enable = true;
|
||||
programs.dconf.enable = true;
|
||||
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
extraPortals = [
|
||||
pkgs.xdg-desktop-portal-gtk
|
||||
pkgs.xdg-desktop-portal-gnome
|
||||
];
|
||||
config = {
|
||||
common = {
|
||||
default = [ "gtk" ];
|
||||
"org.freedesktop.impl.portal.ScreenCast" = [ "gnome" ];
|
||||
"org.freedesktop.impl.portal.Screenshot" = [ "gnome" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
9
nixos/modules/desktop/xwayland.nix
Normal file
9
nixos/modules/desktop/xwayland.nix
Normal file
@@ -0,0 +1,9 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
programs.xwayland.enable = true;
|
||||
|
||||
environment.sessionVariables = {
|
||||
QT_QPA_PLATFORMTHEME = "qt5ct";
|
||||
};
|
||||
}
|
||||
27
nixos/modules/filesystems.nix
Normal file
27
nixos/modules/filesystems.nix
Normal file
@@ -0,0 +1,27 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
fileSystems."/" = {
|
||||
options = [ "subvol=@" "compress=zstd" "space_cache=v2" "noatime" "lazytime" "ssd" "discard=async" ];
|
||||
};
|
||||
|
||||
fileSystems."/home" = {
|
||||
options = [ "subvol=@home" "compress=zstd" "space_cache=v2" "noatime" "lazytime" "ssd" "discard=async" ];
|
||||
};
|
||||
|
||||
fileSystems."/var/log" = {
|
||||
options = [ "subvol=@log" "compress=zstd" "space_cache=v2" "noatime" "lazytime" "ssd" "discard=async" ];
|
||||
};
|
||||
|
||||
fileSystems."/swap" = {
|
||||
options = [ "subvol=@swap" "noatime" "ssd" "discard=async" ];
|
||||
};
|
||||
|
||||
swapDevices = [{ device = "/swap/swapfile"; }];
|
||||
|
||||
boot.kernel.sysctl = {
|
||||
"vm.dirty_ratio" = 10;
|
||||
"vm.dirty_background_ratio" = 5;
|
||||
"vm.swappiness" = 10;
|
||||
};
|
||||
}
|
||||
6
nixos/modules/hardware/bluetooth.nix
Normal file
6
nixos/modules/hardware/bluetooth.nix
Normal file
@@ -0,0 +1,6 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
hardware.bluetooth.enable = true;
|
||||
hardware.bluetooth.powerOnBoot = false;
|
||||
}
|
||||
8
nixos/modules/hardware/gpu.nix
Normal file
8
nixos/modules/hardware/gpu.nix
Normal file
@@ -0,0 +1,8 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
enable32Bit = true;
|
||||
};
|
||||
}
|
||||
6
nixos/modules/hardware/power.nix
Normal file
6
nixos/modules/hardware/power.nix
Normal file
@@ -0,0 +1,6 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
services.upower.enable = true;
|
||||
services.power-profiles-daemon.enable = true;
|
||||
}
|
||||
11
nixos/modules/hardware/rtl-sdr.nix
Normal file
11
nixos/modules/hardware/rtl-sdr.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
hardware.rtl-sdr.enable = true;
|
||||
|
||||
boot.blacklistedKernelModules = [
|
||||
"dvb_usb_rtl28xxu"
|
||||
"rtl2832"
|
||||
"rtl2830"
|
||||
];
|
||||
}
|
||||
9
nixos/modules/hardware/scanner.nix
Normal file
9
nixos/modules/hardware/scanner.nix
Normal file
@@ -0,0 +1,9 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
hardware.sane.enable = true;
|
||||
|
||||
environment.etc."sane.d/epsonds.conf".text = ''
|
||||
net EPSOND80395.local
|
||||
'';
|
||||
}
|
||||
7
nixos/modules/hardware/tablet.nix
Normal file
7
nixos/modules/hardware/tablet.nix
Normal file
@@ -0,0 +1,7 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
hardware.opentabletdriver.enable = true;
|
||||
hardware.uinput.enable = true;
|
||||
boot.kernelModules = [ "uinput" ];
|
||||
}
|
||||
11
nixos/modules/hardware/udev.nix
Normal file
11
nixos/modules/hardware/udev.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
services.udev.packages = [
|
||||
(pkgs.writeTextFile {
|
||||
name = "probe-rs-udev-rules";
|
||||
destination = "/etc/udev/rules.d/69-probe-rs.rules";
|
||||
text = builtins.readFile ../../udev-rules/69-probe-rs.rules;
|
||||
})
|
||||
];
|
||||
}
|
||||
11
nixos/modules/networking/general.nix
Normal file
11
nixos/modules/networking/general.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
networking.hostName = "lusia-laptop";
|
||||
networking.networkmanager.enable = true;
|
||||
networking.networkmanager.wifi.powersave = true;
|
||||
|
||||
networking.nameservers = [ "9.9.9.9" ];
|
||||
|
||||
services.resolved.enable = true;
|
||||
}
|
||||
11
nixos/modules/networking/tailscale.nix
Normal file
11
nixos/modules/networking/tailscale.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
services.tailscale.enable = true;
|
||||
|
||||
networking.firewall.trustedInterfaces = [ "tailscale0" ];
|
||||
|
||||
boot.kernel.sysctl = {
|
||||
"net.ipv4.conf.tailscale0.rp_filter" = 0;
|
||||
};
|
||||
}
|
||||
55
nixos/modules/networking/vpn.nix
Normal file
55
nixos/modules/networking/vpn.nix
Normal file
@@ -0,0 +1,55 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
# VSTech VPN (with DNS for bgs.local domain)
|
||||
services.openvpn.servers.vstech = {
|
||||
config = ''
|
||||
client
|
||||
remote 51.83.143.81
|
||||
proto udp
|
||||
port 649
|
||||
dev tun
|
||||
topology subnet
|
||||
ca /home/lusia/VSTech-vpn/ca.crt
|
||||
cert /home/lusia/VSTech-vpn/Klient251.crt
|
||||
key /home/lusia/VSTech-vpn/Klient251.inline
|
||||
tls-crypt /home/lusia/VSTech-vpn/ta.key
|
||||
|
||||
auth sha512
|
||||
data-ciphers aes-256-cbc
|
||||
data-ciphers-fallback aes-256-cbc
|
||||
key-direction 1
|
||||
keepalive 10 120
|
||||
'';
|
||||
updateResolvConf = false;
|
||||
|
||||
up = ''
|
||||
${pkgs.systemd}/bin/resolvectl dns $dev 10.10.10.1
|
||||
${pkgs.systemd}/bin/resolvectl domain $dev bgs.local
|
||||
'';
|
||||
|
||||
down = ''
|
||||
${pkgs.systemd}/bin/resolvectl revert $dev
|
||||
'';
|
||||
};
|
||||
|
||||
# CAT VPN
|
||||
services.openvpn.servers.cat = {
|
||||
config = ''
|
||||
client
|
||||
remote 79.133.193.211
|
||||
proto tcp
|
||||
port 1194
|
||||
dev tun
|
||||
topology subnet
|
||||
ca /home/lusia/vpn/ca.crt
|
||||
cert /home/lusia/vpn/client18.crt
|
||||
key /home/lusia/vpn/client18.key
|
||||
|
||||
auth sha256
|
||||
data-ciphers AES-256-CBC
|
||||
key-direction 1
|
||||
'';
|
||||
updateResolvConf = true;
|
||||
};
|
||||
}
|
||||
25
nixos/modules/packages.nix
Normal file
25
nixos/modules/packages.nix
Normal file
@@ -0,0 +1,25 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
git
|
||||
curl
|
||||
wget
|
||||
vim
|
||||
fish
|
||||
kitty
|
||||
powertop
|
||||
openvpn
|
||||
nodejs
|
||||
gnumake
|
||||
gcc
|
||||
cmake
|
||||
xwayland-satellite
|
||||
busybox
|
||||
libdecor
|
||||
file
|
||||
cifs-utils
|
||||
samba
|
||||
gvfs
|
||||
];
|
||||
}
|
||||
5
nixos/modules/services/flatpak.nix
Normal file
5
nixos/modules/services/flatpak.nix
Normal file
@@ -0,0 +1,5 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
services.flatpak.enable = true;
|
||||
}
|
||||
17
nixos/modules/services/printing.nix
Normal file
17
nixos/modules/services/printing.nix
Normal file
@@ -0,0 +1,17 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
services.avahi = {
|
||||
enable = true;
|
||||
nssmdns4 = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
|
||||
services.printing = {
|
||||
enable = true;
|
||||
drivers = with pkgs; [
|
||||
cups-filters
|
||||
cups-browsed
|
||||
];
|
||||
};
|
||||
}
|
||||
5
nixos/modules/services/smb.nix
Normal file
5
nixos/modules/services/smb.nix
Normal file
@@ -0,0 +1,5 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
services.gvfs.enable = true;
|
||||
}
|
||||
5
nixos/modules/services/ssh.nix
Normal file
5
nixos/modules/services/ssh.nix
Normal file
@@ -0,0 +1,5 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
services.openssh.enable = true;
|
||||
}
|
||||
16
nixos/modules/users.nix
Normal file
16
nixos/modules/users.nix
Normal file
@@ -0,0 +1,16 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
users.groups.plugdev = {};
|
||||
|
||||
users.users.lusia = {
|
||||
isNormalUser = true;
|
||||
description = "Lukrecja";
|
||||
extraGroups = [ "wheel" "networkmanager" "docker" "plugdev" "scanner" "lp" "wireshark" "libvirtd" "kvm" "vboxusers" "dialout" ];
|
||||
initialPassword = "pass";
|
||||
shell = pkgs.fish;
|
||||
};
|
||||
|
||||
programs.fish.enable = true;
|
||||
security.sudo.enable = true;
|
||||
}
|
||||
12
nixos/modules/virtualization.nix
Normal file
12
nixos/modules/virtualization.nix
Normal file
@@ -0,0 +1,12 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
virtualisation.libvirtd.enable = true;
|
||||
|
||||
virtualisation.virtualbox.host.enable = true;
|
||||
virtualisation.virtualbox.host.enableExtensionPack = true;
|
||||
|
||||
virtualisation.docker.enable = true;
|
||||
|
||||
boot.kernelModules = [ "kvm-amd" ];
|
||||
}
|
||||
6
nixos/modules/wireshark.nix
Normal file
6
nixos/modules/wireshark.nix
Normal file
@@ -0,0 +1,6 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.wireshark.enable = true;
|
||||
programs.wireshark.package = pkgs.wireshark;
|
||||
}
|
||||
@@ -8,7 +8,9 @@
|
||||
"customLaunchPrefixEnabled": false,
|
||||
"density": "default",
|
||||
"enableClipPreview": true,
|
||||
"enableClipboardChips": true,
|
||||
"enableClipboardHistory": false,
|
||||
"enableClipboardSmartIcons": true,
|
||||
"enableSessionSearch": true,
|
||||
"enableSettingsSearch": true,
|
||||
"enableWindowsSearch": true,
|
||||
@@ -23,14 +25,13 @@
|
||||
"showIconBackground": true,
|
||||
"sortByMostUsed": true,
|
||||
"terminalCommand": "kitty -e",
|
||||
"useApp2Unit": false,
|
||||
"viewMode": "list"
|
||||
},
|
||||
"audio": {
|
||||
"cavaFrameRate": 60,
|
||||
"mprisBlacklist": [
|
||||
],
|
||||
"preferredPlayer": "",
|
||||
"spectrumFrameRate": 60,
|
||||
"visualizerType": "linear",
|
||||
"volumeFeedback": false,
|
||||
"volumeFeedbackSoundFile": "",
|
||||
@@ -41,18 +42,19 @@
|
||||
"autoHideDelay": 500,
|
||||
"autoShowDelay": 150,
|
||||
"backgroundOpacity": 0,
|
||||
"barType": "simple",
|
||||
"barType": "floating",
|
||||
"capsuleColorKey": "none",
|
||||
"capsuleOpacity": 1,
|
||||
"contentPadding": 2,
|
||||
"density": "default",
|
||||
"displayMode": "always_visible",
|
||||
"floating": false,
|
||||
"enableExclusionZoneInset": true,
|
||||
"floating": true,
|
||||
"fontScale": 1,
|
||||
"frameRadius": 12,
|
||||
"frameThickness": 8,
|
||||
"hideOnOverview": false,
|
||||
"marginHorizontal": 5,
|
||||
"marginHorizontal": 8,
|
||||
"marginVertical": 5,
|
||||
"middleClickAction": "none",
|
||||
"middleClickCommand": "",
|
||||
@@ -196,10 +198,6 @@
|
||||
},
|
||||
"calendar": {
|
||||
"cards": [
|
||||
{
|
||||
"enabled": true,
|
||||
"id": "timer-card"
|
||||
},
|
||||
{
|
||||
"enabled": true,
|
||||
"id": "weather-card"
|
||||
@@ -280,7 +278,13 @@
|
||||
"desktopWidgets": {
|
||||
"enabled": false,
|
||||
"gridSnap": false,
|
||||
"gridSnapScale": false,
|
||||
"monitorWidgets": [
|
||||
{
|
||||
"name": "eDP-1",
|
||||
"widgets": [
|
||||
]
|
||||
}
|
||||
],
|
||||
"overviewEnabled": true
|
||||
},
|
||||
@@ -327,6 +331,7 @@
|
||||
"clockStyle": "custom",
|
||||
"compactLockScreen": true,
|
||||
"dimmerOpacity": 0.6,
|
||||
"enableBlurBehind": true,
|
||||
"enableLockScreenCountdown": true,
|
||||
"enableLockScreenMediaControls": false,
|
||||
"enableShadows": true,
|
||||
@@ -438,6 +443,10 @@
|
||||
"manualSunset": "18:30",
|
||||
"nightTemp": "4000"
|
||||
},
|
||||
"noctaliaPerformance": {
|
||||
"disableDesktopWidgets": true,
|
||||
"disableWallpaper": true
|
||||
},
|
||||
"notifications": {
|
||||
"backgroundOpacity": 1,
|
||||
"clearDismissed": true,
|
||||
@@ -513,34 +522,48 @@
|
||||
"command": "",
|
||||
"countdownEnabled": true,
|
||||
"enabled": true,
|
||||
"keybind": "4"
|
||||
"keybind": "3"
|
||||
},
|
||||
{
|
||||
"action": "logout",
|
||||
"command": "",
|
||||
"countdownEnabled": true,
|
||||
"enabled": true,
|
||||
"keybind": "5"
|
||||
"keybind": "4"
|
||||
},
|
||||
{
|
||||
"action": "shutdown",
|
||||
"command": "",
|
||||
"countdownEnabled": true,
|
||||
"enabled": true,
|
||||
"keybind": "6"
|
||||
"keybind": "5"
|
||||
},
|
||||
{
|
||||
"action": "hibernate",
|
||||
"command": "",
|
||||
"countdownEnabled": true,
|
||||
"enabled": true,
|
||||
"keybind": "3"
|
||||
"keybind": "6"
|
||||
},
|
||||
{
|
||||
"action": "userspaceReboot",
|
||||
"command": "",
|
||||
"countdownEnabled": true,
|
||||
"enabled": false,
|
||||
"keybind": ""
|
||||
},
|
||||
{
|
||||
"action": "rebootToUefi",
|
||||
"command": "",
|
||||
"countdownEnabled": true,
|
||||
"enabled": true,
|
||||
"keybind": "7"
|
||||
}
|
||||
],
|
||||
"showHeader": true,
|
||||
"showKeybinds": true
|
||||
},
|
||||
"settingsVersion": 55,
|
||||
"settingsVersion": 58,
|
||||
"systemMonitor": {
|
||||
"batteryCriticalThreshold": 5,
|
||||
"batteryWarningThreshold": 20,
|
||||
@@ -577,9 +600,11 @@
|
||||
"fontFixedScale": 0.8,
|
||||
"panelBackgroundOpacity": 0.4,
|
||||
"panelsAttachedToBar": true,
|
||||
"scrollbarAlwaysVisible": true,
|
||||
"settingsPanelMode": "centered",
|
||||
"settingsPanelSideBarCardStyle": false,
|
||||
"tooltipsEnabled": true
|
||||
"tooltipsEnabled": true,
|
||||
"translucentWidgets": false
|
||||
},
|
||||
"wallpaper": {
|
||||
"automationEnabled": false,
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
{
|
||||
"LuaSnip": { "branch": "master", "commit": "73813308abc2eaeff2bc0d3f2f79270c491be9d7" },
|
||||
"NvChad": { "branch": "v2.5", "commit": "f107fabe11ac8013dc3435ecd5382bee872b1584" },
|
||||
"base46": { "branch": "v3.0", "commit": "db58475d3fd2a16f9b1467d6895e3c4c195ed7dd" },
|
||||
"blink.cmp": { "branch": "main", "commit": "b19413d214068f316c78978b08264ed1c41830ec" },
|
||||
"conform.nvim": { "branch": "master", "commit": "fbcb4fa7f34bfea9be702ffff481a8e336ebf6ed" },
|
||||
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
|
||||
"gitsigns.nvim": { "branch": "main", "commit": "1ee5c1fd068c81f9dd06483e639c2aa4587dc197" },
|
||||
"indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
|
||||
"mason.nvim": { "branch": "main", "commit": "ad7146aa61dcaeb54fa900144d768f040090bff0" },
|
||||
"NvChad": { "branch": "v2.5", "commit": "f437558f23c8f50c36cd09748121ab2c822e8ec9" },
|
||||
"base46": { "branch": "v3.0", "commit": "884b990dcdbe07520a0892da6ba3e8d202b46337" },
|
||||
"blink.cmp": { "branch": "main", "commit": "4b18c32adef2898f95cdef6192cbd5796c1a332d" },
|
||||
"conform.nvim": { "branch": "master", "commit": "40dcec5555f960b0a04340d76eabdf4efe78599d" },
|
||||
"friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" },
|
||||
"gitsigns.nvim": { "branch": "main", "commit": "7c4faa3540d0781a28588cafbd4dd187a28ac6e3" },
|
||||
"indent-blankline.nvim": { "branch": "master", "commit": "d28a3f70721c79e3c5f6693057ae929f3d9c0a03" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
|
||||
"mason.nvim": { "branch": "main", "commit": "44d1e90e1f66e077268191e3ee9d2ac97cc18e65" },
|
||||
"menu": { "branch": "main", "commit": "7a0a4a2896b715c066cfbe320bdc048091874cc6" },
|
||||
"minty": { "branch": "main", "commit": "aafc9e8e0afe6bf57580858a2849578d8d8db9e0" },
|
||||
"nvim-autopairs": { "branch": "master", "commit": "23320e75953ac82e559c610bec5a90d9c6dfa743" },
|
||||
"nvim-autopairs": { "branch": "master", "commit": "59bce2eef357189c3305e25bc6dd2d138c1683f5" },
|
||||
"nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "ac98db2f9f06a56498ec890a96928774eae412c3" },
|
||||
"nvim-tree.lua": { "branch": "master", "commit": "e397756d2a79d74314ea4cd3efc41300e91c0ff0" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "2163c54bb6cfec53e3e555665ada945b8c8331b9" },
|
||||
"nvim-tree.lua": { "branch": "master", "commit": "4b30847c91d498446cb8440c03031359b045e050" },
|
||||
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
|
||||
"nvim-web-devicons": { "branch": "master", "commit": "b8221e42cf7287c4dcde81f232f58d7b947c210d" },
|
||||
"nvim-web-devicons": { "branch": "master", "commit": "737cf6c657898d0c697311d79d361288a1343d50" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
|
||||
"telescope.nvim": { "branch": "master", "commit": "b4da76be54691e854d3e0e02c36b0245f945c2c7" },
|
||||
"telescope.nvim": { "branch": "master", "commit": "5255aa27c422de944791318024167ad5d40aad20" },
|
||||
"ui": { "branch": "v3.0", "commit": "03b9718140375e7f3f5e4f3e04bc2b6c907440ec" },
|
||||
"volt": { "branch": "main", "commit": "620de1321f275ec9d80028c68d1b88b409c0c8b1" },
|
||||
"which-key.nvim": { "branch": "main", "commit": "b4177e3eaf15fe5eb8357ebac2286d488be1ed00" }
|
||||
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user