Compare commits
8 Commits
62c14b3cdd
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| cc938db477 | |||
| b372f990c3 | |||
| 5c02123317 | |||
| fd8cb9c0c8 | |||
| e58d5a7a18 | |||
| 1b9d24ce15 | |||
| 5f16717f9b | |||
| f5ad771953 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -22,7 +22,6 @@ gqrx/
|
|||||||
gtk-*.0/
|
gtk-*.0/
|
||||||
htop/
|
htop/
|
||||||
inkscape/
|
inkscape/
|
||||||
hypr/
|
|
||||||
lazygit/
|
lazygit/
|
||||||
libreoffice/
|
libreoffice/
|
||||||
libvirt/
|
libvirt/
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
/nix/store/fx1yq3cxgk9bq588csvpl56i4030c6fj-home-manager-files/.config/Kvantum/Base16Kvantum
|
/nix/store/p19lx2ymg13qw3abnkc5x1v3hj8r6zix-home-manager-files/.config/Kvantum/Base16Kvantum
|
||||||
@@ -1 +1 @@
|
|||||||
/nix/store/fx1yq3cxgk9bq588csvpl56i4030c6fj-home-manager-files/.config/Kvantum/kvantum.kvconfig
|
/nix/store/p19lx2ymg13qw3abnkc5x1v3hj8r6zix-home-manager-files/.config/Kvantum/kvantum.kvconfig
|
||||||
@@ -1 +1 @@
|
|||||||
/nix/store/fx1yq3cxgk9bq588csvpl56i4030c6fj-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/fx1yq3cxgk9bq588csvpl56i4030c6fj-home-manager-files/.config/autostart/stylix-activate-kde.desktop
|
/nix/store/p19lx2ymg13qw3abnkc5x1v3hj8r6zix-home-manager-files/.config/autostart/stylix-activate-kde.desktop
|
||||||
74
home-manager/flake.lock
generated
74
home-manager/flake.lock
generated
@@ -97,11 +97,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1772983984,
|
"lastModified": 1773451839,
|
||||||
"narHash": "sha256-IcpFi8DLx0NvVuiDT2vsPH4b78QH9mNDtGofBW1pUDo=",
|
"narHash": "sha256-a7yGiEC2Nh4z7b5aR9sTPDnFOt7ykYQ3yU/MEdhKUWA=",
|
||||||
"owner": "sadjow",
|
"owner": "sadjow",
|
||||||
"repo": "claude-code-nix",
|
"repo": "claude-code-nix",
|
||||||
"rev": "acc49fb45863d92670817d184b2e2aed8e8c9fd1",
|
"rev": "e64e47c888e3eb19d8c58c91046310582634271c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -118,11 +118,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1773004139,
|
"lastModified": 1773189244,
|
||||||
"narHash": "sha256-K1wp5XjvUiSa4nwdavMaudCCLbr/4eZOKteF1Md4fM0=",
|
"narHash": "sha256-ctI2WntyGzjz7tCcGcG+l+ryV6fJsDvAySPtJH7ia+4=",
|
||||||
"owner": "sadjow",
|
"owner": "sadjow",
|
||||||
"repo": "codex-cli-nix",
|
"repo": "codex-cli-nix",
|
||||||
"rev": "66895d1bf70a994e66eb5fdc48b2810ef75a1bd2",
|
"rev": "60da592dbbfceec9adb8b84ea49e88b6663976ae",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -264,11 +264,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1772985285,
|
"lastModified": 1773422513,
|
||||||
"narHash": "sha256-wEEmvfqJcl9J0wyMgMrj1TixOgInBW/6tLPhWGoZE3s=",
|
"narHash": "sha256-MPjR48roW7CUMU6lu0+qQGqj92Kuh3paIulMWFZy+NQ=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "5be5d8245cbc7bc0c09fbb5f38f23f223c543f85",
|
"rev": "ef12a9a2b0f77c8fa3dda1e7e494fca668909056",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -285,11 +285,11 @@
|
|||||||
"rust-overlay": "rust-overlay"
|
"rust-overlay": "rust-overlay"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1772873838,
|
"lastModified": 1773171230,
|
||||||
"narHash": "sha256-pFh7J2fBqsZvZrD26zfOj30qTM8+7PLZsNSLX+VOcUA=",
|
"narHash": "sha256-ZiGGjRL2H67GcL6BvZV99khW++aHpJ2NA4n71qZiJ9A=",
|
||||||
"owner": "niri-wm",
|
"owner": "niri-wm",
|
||||||
"repo": "niri",
|
"repo": "niri",
|
||||||
"rev": "5393902dd22e9d540438ee178775f1e488eea724",
|
"rev": "4a7e443b6c816e4f673f6e25cc0a5aa37697d667",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -301,11 +301,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1772773019,
|
"lastModified": 1773389992,
|
||||||
"narHash": "sha256-E1bxHxNKfDoQUuvriG71+f+s/NT0qWkImXsYZNFFfCs=",
|
"narHash": "sha256-wvfdLLWJ2I9oEpDd9PfMA8osfIZicoQ5MT1jIwNs9Tk=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "aca4d95fce4914b3892661bcb80b8087293536c6",
|
"rev": "c06b4ae3d6599a672a6210b7021d699c351eebda",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -339,11 +339,11 @@
|
|||||||
"noctalia-qs": "noctalia-qs"
|
"noctalia-qs": "noctalia-qs"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1773058465,
|
"lastModified": 1773498808,
|
||||||
"narHash": "sha256-i4fKQGI3z86KzYbx1ZThAAMhJsmYT40yJC5xvhmKyQA=",
|
"narHash": "sha256-YnSRPOQC+fwSE3aA2C1rt9zaI4i3S4LTYY/3fqmRM4s=",
|
||||||
"owner": "noctalia-dev",
|
"owner": "noctalia-dev",
|
||||||
"repo": "noctalia-shell",
|
"repo": "noctalia-shell",
|
||||||
"rev": "9536553dc5a6df38470b2a178d88f2c44a69cd2a",
|
"rev": "793771cd770431443d71e30ceede201048435a04",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -357,14 +357,15 @@
|
|||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"noctalia",
|
"noctalia",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
],
|
||||||
|
"systems": "systems_4"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1772673824,
|
"lastModified": 1773175685,
|
||||||
"narHash": "sha256-TLHXPoELZA6VeuzC1Zpx+MnSsYzrJs+DSieMgfjAOJc=",
|
"narHash": "sha256-YOkWzVq7opym1ovJvSCvqpG6OCDGJwPo/EPeRxcGay4=",
|
||||||
"owner": "noctalia-dev",
|
"owner": "noctalia-dev",
|
||||||
"repo": "noctalia-qs",
|
"repo": "noctalia-qs",
|
||||||
"rev": "f8531192cd09b9ea2e78d18e9cfc9d3dba498690",
|
"rev": "6b9eceefde3d47ca83c544b54bcdd358be4cbd2f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -405,11 +406,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1772925576,
|
"lastModified": 1773480707,
|
||||||
"narHash": "sha256-mMoiXABDtkSJxCYDrkhJ/TrrJf5M46oUfIlJvv2gkZ0=",
|
"narHash": "sha256-VkuO1LWpK7tS/YDmxJSDeONEwt1RFLPfOucQJwKnsV0=",
|
||||||
"owner": "outfoxxed",
|
"owner": "outfoxxed",
|
||||||
"repo": "quickshell",
|
"repo": "quickshell",
|
||||||
"rev": "15a84097653593dd15fad59a56befc2b7bdc270d",
|
"rev": "1b2519d9f3d963e575b8a1ef08fab47c7af0d1b3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -461,11 +462,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1773025773,
|
"lastModified": 1773457417,
|
||||||
"narHash": "sha256-Wik8+xApNfldpUFjPmJkPdg0RrvUPSWGIZis+A/0N1w=",
|
"narHash": "sha256-waABTSxPdbxml4BhcabHhyQF02Qnj27qRU4ard0mTQo=",
|
||||||
"owner": "oxalica",
|
"owner": "oxalica",
|
||||||
"repo": "rust-overlay",
|
"repo": "rust-overlay",
|
||||||
"rev": "3c06fdbbd36ff60386a1e590ee0cd52dcd1892bf",
|
"rev": "055977c30249484010750e03074c744dcdaa0d23",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -487,7 +488,7 @@
|
|||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"nur": "nur",
|
"nur": "nur",
|
||||||
"systems": "systems_4",
|
"systems": "systems_5",
|
||||||
"tinted-foot": "tinted-foot",
|
"tinted-foot": "tinted-foot",
|
||||||
"tinted-kitty": "tinted-kitty",
|
"tinted-kitty": "tinted-kitty",
|
||||||
"tinted-schemes": "tinted-schemes",
|
"tinted-schemes": "tinted-schemes",
|
||||||
@@ -554,6 +555,21 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems_4": {
|
"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": {
|
"locked": {
|
||||||
"lastModified": 1681028828,
|
"lastModified": 1681028828,
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
|||||||
@@ -51,28 +51,13 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = { nixpkgs, nixpkgs-pre-ad01, home-manager, rust-overlay, stylix, niri, codex-cli-nix, claude-code-nix, binaryninja, ... }@inputs:
|
outputs = inputs: {
|
||||||
let
|
homeConfigurations.lusia = inputs.home-manager.lib.homeManagerConfiguration {
|
||||||
system = "x86_64-linux";
|
pkgs = inputs.nixpkgs.legacyPackages.x86_64-linux;
|
||||||
pinnedPkgs = nixpkgs-pre-ad01.legacyPackages.${system};
|
|
||||||
in {
|
|
||||||
homeConfigurations.lusia = home-manager.lib.homeManagerConfiguration {
|
|
||||||
pkgs = nixpkgs.legacyPackages.${system};
|
|
||||||
|
|
||||||
modules = [
|
modules = [
|
||||||
stylix.homeModules.stylix
|
inputs.stylix.homeModules.stylix
|
||||||
./noctalia.nix
|
|
||||||
./home.nix
|
./home.nix
|
||||||
({ pkgs, ... }: {
|
|
||||||
nixpkgs.overlays = [
|
|
||||||
rust-overlay.overlays.default
|
|
||||||
(final: prev: {
|
|
||||||
gqrx = pinnedPkgs.gqrx;
|
|
||||||
krita = pinnedPkgs.krita;
|
|
||||||
})
|
|
||||||
];
|
|
||||||
home.packages = [ pkgs.rustup ];
|
|
||||||
})
|
|
||||||
];
|
];
|
||||||
|
|
||||||
extraSpecialArgs = { inherit inputs; };
|
extraSpecialArgs = { inherit inputs; };
|
||||||
|
|||||||
@@ -1,255 +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.username = "lusia";
|
||||||
home.homeDirectory = "/home/lusia";
|
home.homeDirectory = "/home/lusia";
|
||||||
home.stateVersion = "24.11";
|
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";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# 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;
|
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";
|
|
||||||
|
|
||||||
targets.qt.enable = true;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|||||||
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
|
||||||
|
}
|
||||||
|
|
||||||
@@ -164,7 +164,7 @@ binds {
|
|||||||
}
|
}
|
||||||
// Utility shortcuts
|
// Utility shortcuts
|
||||||
Mod+L {
|
Mod+L {
|
||||||
spawn "noctalia-shell" "ipc" "call" "lockScreen" "lock"
|
spawn "hyprlock"
|
||||||
}
|
}
|
||||||
// Mod-Shift-/, which is usually the same as Mod-?,
|
// Mod-Shift-/, which is usually the same as Mod-?,
|
||||||
// shows a list of important hotkeys.
|
// shows a list of important hotkeys.
|
||||||
|
|||||||
@@ -1,361 +1,53 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
imports = [
|
||||||
[ # Include the results of the hardware scan.
|
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
|
|
||||||
|
./modules/boot/bootloader.nix
|
||||||
|
./modules/boot/kernel.nix
|
||||||
|
./modules/boot/plymouth.nix
|
||||||
|
./modules/boot/tpm.nix
|
||||||
|
|
||||||
|
./modules/desktop/fonts.nix
|
||||||
|
./modules/desktop/greetd.nix
|
||||||
|
./modules/desktop/xdg.nix
|
||||||
|
./modules/desktop/xwayland.nix
|
||||||
|
|
||||||
|
./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
|
||||||
];
|
];
|
||||||
|
|
||||||
# Use the systemd-boot EFI boot loader.
|
|
||||||
boot.loader.systemd-boot.enable = true;
|
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
|
||||||
boot.resumeDevice = "/dev/mapper/luksroot";
|
|
||||||
|
|
||||||
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
|
|
||||||
'';
|
|
||||||
|
|
||||||
# Blacklist built-in RTL modules
|
|
||||||
boot.blacklistedKernelModules = [
|
|
||||||
"dvb_usb_rtl28xxu"
|
|
||||||
"rtl2832"
|
|
||||||
"rtl2830"
|
|
||||||
];
|
|
||||||
|
|
||||||
# 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";
|
time.timeZone = "Europe/Warsaw";
|
||||||
|
|
||||||
# Select internationalisation properties.
|
|
||||||
i18n.defaultLocale = "en_US.UTF-8";
|
i18n.defaultLocale = "en_US.UTF-8";
|
||||||
console = {
|
console.keyMap = "pl";
|
||||||
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;
|
|
||||||
})
|
|
||||||
];
|
|
||||||
|
|
||||||
hardware.enableAllFirmware = true;
|
hardware.enableAllFirmware = true;
|
||||||
services.openssh.enable = true;
|
|
||||||
security.sudo.enable = true;
|
|
||||||
|
|
||||||
# Enable virtualisation
|
|
||||||
virtualisation.libvirtd.enable = true;
|
|
||||||
systemd.services.virt-secret-init-encryption.enable = false; # broken on NixOS, hardcodes /usr/bin/sh
|
|
||||||
|
|
||||||
# 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;
|
nixpkgs.config.allowUnfree = true;
|
||||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||||
|
|
||||||
# Enable Bluetooth (but it will be blocked by default to save power)
|
system.stateVersion = "24.11";
|
||||||
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?
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
42
nixos/flake.lock
generated
42
nixos/flake.lock
generated
@@ -1,45 +1,12 @@
|
|||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
"home-manager": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": "nixpkgs"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1772985285,
|
|
||||||
"narHash": "sha256-wEEmvfqJcl9J0wyMgMrj1TixOgInBW/6tLPhWGoZE3s=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "home-manager",
|
|
||||||
"rev": "5be5d8245cbc7bc0c09fbb5f38f23f223c543f85",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"id": "home-manager",
|
|
||||||
"type": "indirect"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1772773019,
|
"lastModified": 1773389992,
|
||||||
"narHash": "sha256-E1bxHxNKfDoQUuvriG71+f+s/NT0qWkImXsYZNFFfCs=",
|
"narHash": "sha256-wvfdLLWJ2I9oEpDd9PfMA8osfIZicoQ5MT1jIwNs9Tk=",
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "aca4d95fce4914b3892661bcb80b8087293536c6",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_2": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1772773019,
|
|
||||||
"narHash": "sha256-E1bxHxNKfDoQUuvriG71+f+s/NT0qWkImXsYZNFFfCs=",
|
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "aca4d95fce4914b3892661bcb80b8087293536c6",
|
"rev": "c06b4ae3d6599a672a6210b7021d699c351eebda",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -51,8 +18,7 @@
|
|||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"home-manager": "home-manager",
|
"nixpkgs": "nixpkgs"
|
||||||
"nixpkgs": "nixpkgs_2"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -5,14 +5,10 @@
|
|||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = inputs@{ nixpkgs, home-manager, ... }: {
|
outputs = inputs: {
|
||||||
nixosConfigurations = {
|
nixosConfigurations.lusia-laptop = inputs.nixpkgs.lib.nixosSystem {
|
||||||
lusia-laptop = nixpkgs.lib.nixosSystem {
|
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
modules = [
|
modules = [ ./configuration.nix ];
|
||||||
./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,
|
"customLaunchPrefixEnabled": false,
|
||||||
"density": "default",
|
"density": "default",
|
||||||
"enableClipPreview": true,
|
"enableClipPreview": true,
|
||||||
|
"enableClipboardChips": true,
|
||||||
"enableClipboardHistory": false,
|
"enableClipboardHistory": false,
|
||||||
|
"enableClipboardSmartIcons": true,
|
||||||
"enableSessionSearch": true,
|
"enableSessionSearch": true,
|
||||||
"enableSettingsSearch": true,
|
"enableSettingsSearch": true,
|
||||||
"enableWindowsSearch": true,
|
"enableWindowsSearch": true,
|
||||||
@@ -23,7 +25,6 @@
|
|||||||
"showIconBackground": true,
|
"showIconBackground": true,
|
||||||
"sortByMostUsed": true,
|
"sortByMostUsed": true,
|
||||||
"terminalCommand": "kitty -e",
|
"terminalCommand": "kitty -e",
|
||||||
"useApp2Unit": false,
|
|
||||||
"viewMode": "list"
|
"viewMode": "list"
|
||||||
},
|
},
|
||||||
"audio": {
|
"audio": {
|
||||||
@@ -47,6 +48,7 @@
|
|||||||
"contentPadding": 2,
|
"contentPadding": 2,
|
||||||
"density": "default",
|
"density": "default",
|
||||||
"displayMode": "always_visible",
|
"displayMode": "always_visible",
|
||||||
|
"enableExclusionZoneInset": true,
|
||||||
"floating": true,
|
"floating": true,
|
||||||
"fontScale": 1,
|
"fontScale": 1,
|
||||||
"frameRadius": 12,
|
"frameRadius": 12,
|
||||||
@@ -276,6 +278,7 @@
|
|||||||
"desktopWidgets": {
|
"desktopWidgets": {
|
||||||
"enabled": false,
|
"enabled": false,
|
||||||
"gridSnap": false,
|
"gridSnap": false,
|
||||||
|
"gridSnapScale": false,
|
||||||
"monitorWidgets": [
|
"monitorWidgets": [
|
||||||
{
|
{
|
||||||
"name": "eDP-1",
|
"name": "eDP-1",
|
||||||
@@ -560,7 +563,7 @@
|
|||||||
"showHeader": true,
|
"showHeader": true,
|
||||||
"showKeybinds": true
|
"showKeybinds": true
|
||||||
},
|
},
|
||||||
"settingsVersion": 57,
|
"settingsVersion": 58,
|
||||||
"systemMonitor": {
|
"systemMonitor": {
|
||||||
"batteryCriticalThreshold": 5,
|
"batteryCriticalThreshold": 5,
|
||||||
"batteryWarningThreshold": 20,
|
"batteryWarningThreshold": 20,
|
||||||
@@ -600,7 +603,8 @@
|
|||||||
"scrollbarAlwaysVisible": true,
|
"scrollbarAlwaysVisible": true,
|
||||||
"settingsPanelMode": "centered",
|
"settingsPanelMode": "centered",
|
||||||
"settingsPanelSideBarCardStyle": false,
|
"settingsPanelSideBarCardStyle": false,
|
||||||
"tooltipsEnabled": true
|
"tooltipsEnabled": true,
|
||||||
|
"translucentWidgets": false
|
||||||
},
|
},
|
||||||
"wallpaper": {
|
"wallpaper": {
|
||||||
"automationEnabled": false,
|
"automationEnabled": false,
|
||||||
|
|||||||
Reference in New Issue
Block a user