dentritic refactor

This commit is contained in:
elwrcl committed 2026-07-30 22:58:52 +03:00
1 parent fc386c4053
commit 301ad158d5
140 files changed
+2285 -2622

No files matched your search

-47
View File
@@ -1,47 +0,0 @@
{
pkgs,
lib,
inputs,
...
}:
{
imports = [ ];
environment.systemPackages = [ pkgs.efibootmgr ];
nixpkgs.overlays = [ inputs.nix-cachyos-kernel.overlays.pinned ];
boot.kernelPackages = pkgs.cachyosKernels.linuxPackages-cachyos-bore-lto;
boot.kernelParams = [
"mitigations=off"
"nmi_watchdog=1"
"transparent_hugepage=madvise"
];
boot.kernelModules = [
"tcp_bbr"
"sch_fq"
];
boot.kernel.sysctl = {
"net.core.default_qdisc" = "fq";
"net.ipv4.tcp_congestion_control" = "bbr";
"kernel.softlockup_panic" = 1;
"kernel.hardlockup_panic" = 1;
"kernel.hung_task_panic" = 1;
"kernel.panic" = 50;
};
boot.loader = {
timeout = 5;
efi = {
canTouchEfiVariables = false;
efiSysMountPoint = "/boot";
};
systemd-boot = {
enable = true;
configurationLimit = 5;
};
};
}
+48
View File
@@ -0,0 +1,48 @@
{ ... }:
{
flake.nixosModules.common-boot =
{
pkgs,
inputs,
...
}:
{
environment.systemPackages = [ pkgs.efibootmgr ];
nixpkgs.overlays = [ inputs.nix-cachyos-kernel.overlays.pinned ];
boot.kernelPackages = pkgs.cachyosKernels.linuxPackages-cachyos-bore-lto;
boot.kernelParams = [
"mitigations=off"
"nmi_watchdog=1"
"transparent_hugepage=madvise"
];
boot.kernelModules = [
"tcp_bbr"
"sch_fq"
];
boot.kernel.sysctl = {
"net.core.default_qdisc" = "fq";
"net.ipv4.tcp_congestion_control" = "bbr";
"kernel.softlockup_panic" = 1;
"kernel.hardlockup_panic" = 1;
"kernel.hung_task_panic" = 1;
"kernel.panic" = 50;
};
boot.loader = {
timeout = 5;
efi = {
canTouchEfiVariables = false;
efiSysMountPoint = "/boot";
};
systemd-boot = {
enable = true;
configurationLimit = 5;
};
};
};
}
+58
View File
@@ -0,0 +1,58 @@
{ ... }:
{
flake.nixosModules.common-fonts =
{ pkgs, ... }:
{
fonts = {
packages = with pkgs; [
nerd-fonts.jetbrains-mono
nerd-fonts.caskaydia-cove
noto-fonts-color-emoji
noto-fonts-cjk-serif
noto-fonts-cjk-sans
nerd-fonts.hurmit
noto-fonts
ipaexfont
];
fontconfig = {
enable = true;
antialias = true;
hinting = {
enable = true;
style = "slight";
autohint = false;
};
subpixel = {
rgba = "rgb";
lcdfilter = "default";
};
defaultFonts = {
serif = [
"JetBrainsMono Nerd Font"
"Noto Serif CJK JP"
"Noto Serif"
"IPAexMincho"
];
sansSerif = [
"JetBrainsMono Nerd Font"
"Noto Sans CJK JP"
"Noto Sans"
"IPAexGothic"
];
monospace = [
"JetBrainsMono Nerd Font Mono"
"JetBrainsMono Nerd Font"
"Noto Sans Mono CJK JP"
"Noto Sans CJK JP"
"IPAexGothic"
];
emoji = [ "Noto Color Emoji" ];
};
};
};
};
}
+27
View File
@@ -0,0 +1,27 @@
{ ... }:
{
commonModules.common-git =
{ pkgs, lib, ... }:
let
base = ''
[user]
name = elwrcl
email = elwerici@proton.me
signingkey = 5EA48F7312A42B84
[commit]
gpgsign = true
[tag]
gpgsign = true
'';
darwinExtra = ''
[credential]
helper = osxkeychain
'';
gitconfig = pkgs.writeText "gitconfig" (base + lib.optionalString pkgs.stdenv.isDarwin darwinExtra);
in
{
environment.variables.GIT_CONFIG_SYSTEM = "${gitconfig}";
};
}
@@ -0,0 +1,19 @@
{ ... }:
{
flake.nixosModules.common-kmscon =
{ pkgs, ... }:
{
fonts.packages = [
pkgs.nerd-fonts.jetbrains-mono
];
services.kmscon = {
enable = true;
config = {
font-name = "JetBrainsMono Nerd Font";
font-size = 18;
hwaccel = true;
};
};
};
}
@@ -0,0 +1,41 @@
{ ... }:
{
flake.nixosModules.common-locale =
{ ... }:
{
time.timeZone = "Europe/Istanbul";
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "tr_TR.UTF-8";
LC_IDENTIFICATION = "tr_TR.UTF-8";
LC_MEASUREMENT = "tr_TR.UTF-8";
LC_MONETARY = "tr_TR.UTF-8";
LC_NAME = "tr_TR.UTF-8";
LC_NUMERIC = "tr_TR.UTF-8";
LC_PAPER = "tr_TR.UTF-8";
LC_TELEPHONE = "tr_TR.UTF-8";
LC_TIME = "tr_TR.UTF-8";
};
services.timesyncd.enable = false;
services.chrony = {
enable = true;
extraConfig = ''
makestep 1.0 -1
server 162.159.200.1 iburst
server 216.239.35.0 iburst
server time.cloudflare.com iburst
server time.google.com iburst
'';
};
systemd.services.chronyd = {
after = [ "network-online.target" ];
wants = [ "network-online.target" ];
};
console.font = "LatArCyrHeb-16";
system.stateVersion = "25.05";
console.keyMap = "trq";
console.earlySetup = true;
};
}
+44
View File
@@ -0,0 +1,44 @@
{ ... }:
{
flake.nixosModules.common-nix =
{ ... }:
{
nix.settings = {
experimental-features = [
"nix-command"
"flakes"
];
max-jobs = 4;
cores = 4;
substituters = [
"https://cache.nixos.org"
"https://nix-community.cachix.org"
"https://ezkea.cachix.org"
"https://noctalia.cachix.org"
"https://hyprland.cachix.org"
"https://attic.xuyh0120.win/lantian"
"https://soryu-kernel.cachix.org"
];
trusted-public-keys = [
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"ezkea.cachix.org-1:ioBmUbJTZIKsHmWWXPe1FSFbeVe+afhfgqgTSNd34eI="
"noctalia.cachix.org-1:pCOR47nnMEo5thcxNDtzWpOxNFQsBRglJzxWPp3dkU4="
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
"lantian:EeAUQ+W+6r7EtwnmYjeVwx5kOGEBpjlBfPlzGlTNvHc="
"soryu-kernel.cachix.org-1:2/Tm90ibGjLQWo/uX4qo/kbFB5yjQG/CzfE1oelHdWw="
];
};
documentation = {
man.enable = true;
doc.enable = false;
info.enable = false;
nixos.enable = false;
};
programs.nix-ld.enable = true;
};
}
@@ -0,0 +1,206 @@
{ ... }:
{
flake.nixosModules.common-packages =
{
pkgs,
inputs,
system,
...
}:
let
uxplay-fixed = pkgs.uxplay.override {
avahi = pkgs.avahi.override { withLibdnssdCompat = true; };
};
in
{
environment.systemPackages = with pkgs; [
# apps
onlyoffice-desktopeditors
whatsapp-electron
telegram-desktop
prismlauncher
moonlight-qt
qbittorrent
antigravity
obs-studio
localsend
picotool
sunshine
spotify
equibop
heroic
loupe
gimp
wine
# file-manager
kdePackages.kdegraphics-thumbnailers
kdePackages.plasma-integration
kdePackages.breeze-icons
kdePackages.kio-extras
kdePackages.qtwayland
kdePackages.kio-admin
kdePackages.kio-fuse
kdePackages.kservice
kdePackages.konsole
kdePackages.dolphin
kdePackages.qtsvg
kdePackages.ark
kdePackages.kio
kdePackages.kdf
nautilus
# utils
poppler-utils
wl-clipboard
wf-recorder
tesseract
mpvpaper
swappy
slurp
grim
# phone
libimobiledevice
android-tools
uxplay-fixed
usbmuxd
libmtp
jmtpfs
scrcpy
ifuse
# agents
github-copilot-cli
claude-mergetool
claude-monitor
claude-code
# cli
fastfetch
trash-cli
lazyjj
jj-fzf
meld
jujutsu
tailscale
dos2unix
autossh
ani-cli
zoxide
cachix
direnv
rsync
unzip
kitty
tree
tldr
perf
file
wget
fish
htop
tmux
btop
yazi
zip
eza
bat
git
rar
jq
fd
# hardware
xkeyboard-config
intel-gpu-tools
smartmontools
brightnessctl
gsmartcontrol
vulkan-tools
libva-utils
mesa-demos
lm_sensors
exfatprogs
dmidecode
libsecret
apfs-fuse
gptfdisk
pciutils
usbutils
hfsprogs
dmg2img
ddcutil
clinfo
hidapi
parted
p7zip
xar
# themes/icons
whitesur-icon-theme
whitesur-gtk-theme
gnome-themes-extra
whitesur-kde
adwaita-qt6
adwaita-qt
# langs
alejandra
binutils
python3
rustup
nodejs
jdk25
gcc
ghc
zig
lua
glm
go
# dev tools
jdt-language-server
rust-analyzer
clang-tools
cargo-tauri
pkg-config
gnumake
openssl
pyright
rustfmt
lazygit
nixfmt
zellij
sqlite
aubio
delta
trunk
nixd
nil
uv
# editors
lite-xl
neovim
vscode
# media
ffmpegthumbnailer
imagemagick
pavucontrol
pamixer
ffmpeg
yt-dlp
cava
mpv
inputs.zen-browser.packages.${system}.default
inputs.nix-alien.packages.${system}.nix-alien
inputs.noctalia.packages.${system}.default
inputs.copetch.packages.${system}.default
inputs.helium.packages.${system}.default
pkgs.qt6Packages.qtwebsockets
];
};
}
+39
View File
@@ -0,0 +1,39 @@
{ ... }:
{
flake.nixosModules.common-users =
{ pkgs, ... }:
{
users.users.elars = {
isNormalUser = true;
linger = true;
description = "elars";
extraGroups = [
"networkmanager"
"libvirtd"
"scanner"
"plugdev"
"docker"
"video"
"input"
"audio"
"wheel"
"lp"
];
shell = pkgs.zsh;
};
programs.nh = {
enable = true;
clean.enable = true;
clean.extraArgs = "--keep-since 4d --keep 3";
flake = "/home/elars/copland";
};
programs.zsh = {
enable = true;
enableCompletion = true;
autosuggestions.enable = true;
syntaxHighlighting.enable = true;
};
};
}
-15
View File
@@ -1,15 +0,0 @@
{ ... }:
{
imports = [
../home/git.nix
./boot
./desktop
./gaming
./hardware
./networking
./services
./system
./users
./virtualization
];
}
-7
View File
@@ -1,7 +0,0 @@
{ ... }:
{
imports = [
./pipewire.nix
];
}
-39
View File
@@ -1,39 +0,0 @@
{ ... }:
{
services.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
wireplumber.enable = true;
extraConfig.pipewire."10-realtime" = {
"context.modules" = [
{
name = "libpipewire-module-rt";
args = {
"nice.level" = -15;
"rt.prio" = 88;
"rt.time.soft" = 200000;
"rt.time.hard" = 400000;
};
flags = [
"ifexists"
"nofail"
];
}
];
};
extraConfig.pipewire."92-quantum" = {
"context.properties" = {
"default.clock.rate" = 48000;
"default.clock.allowed-rates" = [ 48000 ];
"default.clock.quantum" = 1024;
"default.clock.min-quantum" = 1024;
"default.clock.max-quantum" = 1024;
};
};
};
}
-58
View File
@@ -1,58 +0,0 @@
{ pkgs, ... }:
{
imports = [
./display
./window-managers
./audio
];
xdg = {
mime = {
enable = true;
defaultApplications = {
# gui
"text/html" = "zen-beta.desktop";
"x-scheme-handler/http" = "zen-beta.desktop";
"x-scheme-handler/https" = "zen-beta.desktop";
"x-scheme-handler/about" = "zen-beta.desktop";
"x-scheme-handler/unknown" = "zen-beta.desktop";
"x-scheme-handler/steam" = "steam.desktop";
# media
"image/png" = "org.gnome.Loupe.desktop";
"image/jpeg" = "org.gnome.Loupe.desktop";
"image/gif" = "org.gnome.Loupe.desktop";
"image/bmp" = "org.gnome.Loupe.desktop";
"image/svg+xml" = "org.gnome.Loupe.desktop";
"image/webp" = "org.gnome.Loupe.desktop";
"image/tiff" = "org.gnome.Loupe.desktop";
"video/mp4" = "mpv.desktop";
"video/x-matroska" = "mpv.desktop";
"video/webm" = "mpv.desktop";
"video/avi" = "mpv.desktop";
"video/quicktime" = "mpv.desktop";
"audio/mpeg" = "mpv.desktop";
"audio/flac" = "mpv.desktop";
"audio/ogg" = "mpv.desktop";
# text
"text/plain" = "code.desktop";
"text/x-rust" = "code.desktop";
"text/x-nix" = "code.desktop";
"text/x-csrc" = "code.desktop";
"text/x-chdr" = "code.desktop";
"text/x-python" = "code.desktop";
"text/x-shellscript" = "code.desktop";
"application/json" = "code.desktop";
"application/x-shellscript" = "code.desktop";
};
};
menus.enable = true;
};
environment.etc."xdg/menus/applications.menu".text =
builtins.readFile "${pkgs.kdePackages.plasma-workspace}/etc/xdg/menus/plasma-applications.menu";
}
@@ -0,0 +1,42 @@
{ ... }:
{
flake.nixosModules.desktop-audio =
{ ... }:
{
services.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
wireplumber.enable = true;
extraConfig.pipewire."10-realtime" = {
"context.modules" = [
{
name = "libpipewire-module-rt";
args = {
"nice.level" = -15;
"rt.prio" = 88;
"rt.time.soft" = 200000;
"rt.time.hard" = 400000;
};
flags = [
"ifexists"
"nofail"
];
}
];
};
extraConfig.pipewire."92-quantum" = {
"context.properties" = {
"default.clock.rate" = 48000;
"default.clock.allowed-rates" = [ 48000 ];
"default.clock.quantum" = 1024;
"default.clock.min-quantum" = 1024;
"default.clock.max-quantum" = 1024;
};
};
};
};
}
@@ -0,0 +1,32 @@
{ ... }:
{
flake.nixosModules.desktop-display =
{ ... }:
{
services.xserver.enable = true;
services.displayManager.ly = {
enable = true;
settings = {
animation = "colormix";
colormix_col1 = "0x00FFFFFF";
colormix_col2 = "0x00808080";
colormix_col3 = "0x00080808";
bigclock = "en";
bigclock_12hr = false;
fg = "0x00FFFFFF";
bg = "0x00000000";
border_fg = "0x00FFFFFF";
error_fg = "0x01FF0000";
blank_box = true;
hide_borders = false;
margin_box_h = 2;
margin_box_v = 1;
};
};
services.xserver.xkb = {
layout = "tr";
variant = "";
};
};
}
@@ -0,0 +1,12 @@
{ ... }:
{
flake.nixosModules.desktop-niri =
{ pkgs, ... }:
{
programs.niri.enable = true;
environment.systemPackages = with pkgs; [
xwayland-satellite
];
};
}
@@ -0,0 +1,55 @@
{ ... }:
{
flake.nixosModules.desktop-xdg-mime =
{ pkgs, ... }:
{
xdg = {
mime = {
enable = true;
defaultApplications = {
# gui
"text/html" = "zen-beta.desktop";
"x-scheme-handler/http" = "zen-beta.desktop";
"x-scheme-handler/https" = "zen-beta.desktop";
"x-scheme-handler/about" = "zen-beta.desktop";
"x-scheme-handler/unknown" = "zen-beta.desktop";
"x-scheme-handler/steam" = "steam.desktop";
# media
"image/png" = "org.gnome.Loupe.desktop";
"image/jpeg" = "org.gnome.Loupe.desktop";
"image/gif" = "org.gnome.Loupe.desktop";
"image/bmp" = "org.gnome.Loupe.desktop";
"image/svg+xml" = "org.gnome.Loupe.desktop";
"image/webp" = "org.gnome.Loupe.desktop";
"image/tiff" = "org.gnome.Loupe.desktop";
"video/mp4" = "mpv.desktop";
"video/x-matroska" = "mpv.desktop";
"video/webm" = "mpv.desktop";
"video/avi" = "mpv.desktop";
"video/quicktime" = "mpv.desktop";
"audio/mpeg" = "mpv.desktop";
"audio/flac" = "mpv.desktop";
"audio/ogg" = "mpv.desktop";
# text
"text/plain" = "code.desktop";
"text/x-rust" = "code.desktop";
"text/x-nix" = "code.desktop";
"text/x-csrc" = "code.desktop";
"text/x-chdr" = "code.desktop";
"text/x-python" = "code.desktop";
"text/x-shellscript" = "code.desktop";
"application/json" = "code.desktop";
"application/x-shellscript" = "code.desktop";
};
};
menus.enable = true;
};
environment.etc."xdg/menus/applications.menu".text =
builtins.readFile "${pkgs.kdePackages.plasma-workspace}/etc/xdg/menus/plasma-applications.menu";
};
}
-29
View File
@@ -1,29 +0,0 @@
{ ... }:
{
services.xserver.enable = true;
services.displayManager.ly = {
enable = true;
settings = {
animation = "colormix";
colormix_col1 = "0x00FFFFFF";
colormix_col2 = "0x00808080";
colormix_col3 = "0x00080808";
bigclock = "en";
bigclock_12hr = false;
fg = "0x00FFFFFF";
bg = "0x00000000";
border_fg = "0x00FFFFFF";
error_fg = "0x01FF0000";
blank_box = true;
hide_borders = false;
margin_box_h = 2;
margin_box_v = 1;
};
};
services.xserver.xkb = {
layout = "tr";
variant = "";
};
}
@@ -1,7 +0,0 @@
{ ... }:
{
imports = [
./niri.nix
];
}
@@ -1,34 +0,0 @@
{ pkgs, inputs, ... }:
{
programs.hyprland = {
enable = true;
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
portalPackage =
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
xwayland.enable = true;
withUWSM = true;
};
xdg.portal = {
enable = true;
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
config.hyprland.default = [
"hyprland"
"gtk"
];
};
services = {
dbus.enable = true;
};
security.polkit.enable = true;
environment.systemPackages = with pkgs; [
glib
dconf
dconf-editor
xdg-utils
xdg-user-dirs
];
}
@@ -1,8 +0,0 @@
{ pkgs, ... }:
{
programs.niri.enable = true;
environment.systemPackages = with pkgs; [
xwayland-satellite
];
}
@@ -1,9 +0,0 @@
{ pkgs, ... }:
{
programs.sway = {
enable = true;
wrapperFeatures.gtk = true;
extraPackages = with pkgs; [ foot dmenu ];
};
}
-17
View File
@@ -1,17 +0,0 @@
{ pkgs, ... }:
{
imports = [
./steam
];
programs.gamemode = {
enable = true;
enableRenice = true;
};
environment.systemPackages = with pkgs; [
protonup-qt
mangohud
];
}
@@ -0,0 +1,16 @@
{ ... }:
{
flake.nixosModules.gaming-gamemode =
{ pkgs, ... }:
{
programs.gamemode = {
enable = true;
enableRenice = true;
};
environment.systemPackages = with pkgs; [
protonup-qt
mangohud
];
};
}
+26
View File
@@ -0,0 +1,26 @@
{ ... }:
{
flake.nixosModules.gaming-steam =
{ pkgs, ... }:
{
programs.steam = {
enable = true;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true;
protontricks.enable = true;
extraCompatPackages = with pkgs; [
proton-ge-bin
];
};
programs.gamescope = {
enable = true;
capSysNice = true;
env = {
INTEL_DEBUG = "noccs";
};
};
hardware.steam-hardware.enable = true;
};
}
-22
View File
@@ -1,22 +0,0 @@
{ pkgs, ... }:
{
programs.steam = {
enable = true;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true;
protontricks.enable = true;
extraCompatPackages = with pkgs; [
proton-ge-bin
];
};
programs.gamescope = {
enable = true;
capSysNice = true;
env = {
INTEL_DEBUG = "noccs";
};
};
hardware.steam-hardware.enable = true;
}
@@ -1,5 +0,0 @@
{ ... }:
{
hardware.bluetooth.enable = true;
}
-9
View File
@@ -1,9 +0,0 @@
{ ... }:
{
imports = [
./bluetooth
./graphics
./udev
];
}
-10
View File
@@ -1,10 +0,0 @@
{ pkgs, ... }:
{
hardware.graphics.extraPackages = with pkgs; [
amdvlk
rocmPackages.clr.icd
];
services.xserver.videoDrivers = [ "amdgpu" ];
}
@@ -1,36 +0,0 @@
{ config, lib, pkgs, ... }:
let
driver = config.elars.hardware.graphics.driver;
in
{
options.elars.hardware.graphics.driver = lib.mkOption {
type = lib.types.enum [
"intel"
"amd"
"nvidia"
"hybrid-amd-nvidia"
];
default = "intel";
};
config = lib.mkMerge [
{
hardware.graphics = {
enable = true;
enable32Bit = true;
};
}
(lib.mkIf (driver == "intel") (import ./intel.nix { inherit config lib pkgs; }))
(lib.mkIf (driver == "amd") (import ./amd.nix { inherit config lib pkgs; }))
(lib.mkIf (driver == "nvidia") (import ./nvidia.nix { inherit config lib pkgs; }))
(lib.mkIf (driver == "hybrid-amd-nvidia") (
lib.mkMerge [
(import ./amd.nix { inherit config lib pkgs; })
(import ./nvidia.nix { inherit config lib pkgs; })
(import ./prime.nix { inherit config lib pkgs; })
]
))
];
}
-44
View File
@@ -1,44 +0,0 @@
{ pkgs, ... }:
let
wayland-intel-vaapi-driver = pkgs.intel-vaapi-driver.overrideAttrs (oldAttrs: {
version = "2.4.4-wayland-fix";
src = pkgs.fetchFromGitHub {
owner = "irql-notlessorequal";
repo = "intel-vaapi-driver";
rev = "929e936ec1f451a5daa12b0c7367687b712b8c2c";
hash = "sha256-tZ1rZ+4bRxarcFQhP8V2Mfz0sJ5rBgHYLu2ulrQwL+U=";
};
});
wayland-intel-vaapi-driver-32 = pkgs.pkgsi686Linux.intel-vaapi-driver.overrideAttrs (oldAttrs: {
version = "2.4.4-wayland-fix";
src = pkgs.fetchFromGitHub {
owner = "irql-notlessorequal";
repo = "intel-vaapi-driver";
rev = "929e936ec1f451a5daa12b0c7367687b712b8c2c";
hash = "sha256-tZ1rZ+4bRxarcFQhP8V2Mfz0sJ5rBgHYLu2ulrQwL+U=";
};
});
#hasvk14-layer = pkgs.callPackage ./vk { };
#hasvk14-layer-32 = pkgs.pkgsi686Linux.callPackage ./vk { };
in
{
hardware.graphics = {
extraPackages = [
#hasvk14-layer
wayland-intel-vaapi-driver
pkgs.libvdpau-va-gl
pkgs.pocl
];
extraPackages32 = [
#hasvk14-layer-32
wayland-intel-vaapi-driver-32
pkgs.pkgsi686Linux.libvdpau-va-gl
];
};
services.xserver.videoDrivers = [ "modesetting" ];
environment.variables = {
LIBVA_DRIVER_NAME = "i965";
};
}
@@ -1,12 +0,0 @@
{ config, ... }:
{
services.xserver.videoDrivers = [ "nvidia" ];
hardware.nvidia = {
modesetting.enable = true;
open = false;
nvidiaSettings = true;
package = config.boot.kernelPackages.nvidiaPackages.stable;
};
}
@@ -1,9 +0,0 @@
{ ... }:
{
hardware.nvidia.prime = {
offload.enable = true;
amdgpuBusId = "PCI:X:X:X";
nvidiaBusId = "PCI:X:X:X";
};
}
@@ -1,28 +0,0 @@
{ pkgs }:
let
is32 = pkgs.stdenv.hostPlatform.system == "i686-linux";
layerName = "VK_LAYER_hasvk14_version_override" + pkgs.lib.optionalString is32 "_32";
in
pkgs.stdenv.mkDerivation {
name = "vulkan-layer-hasvk14" + pkgs.lib.optionalString is32 "-32bit";
src = ./.;
buildInputs = [ pkgs.vulkan-headers ];
buildPhase = ''
$CC -shared -fPIC -O2 -o libVkLayer_hasvk14.so hasvk14_layer.c \
-I${pkgs.vulkan-headers}/include
'';
installPhase = ''
mkdir -p $out/lib $out/share/vulkan/implicit_layer.d
cp libVkLayer_hasvk14.so $out/lib/
substitute hasvk14_layer.json \
$out/share/vulkan/implicit_layer.d/hasvk14_layer.json \
--subst-var out \
--subst-var-by layer_name "${layerName}"
'';
}
@@ -1,199 +0,0 @@
/*
* Vulkan implicit layer forces VK 1.4.x (e.g. 1.4.348 via headers)
*/
#include <vulkan/vulkan.h>
#include <vulkan/vk_layer.h>
#include <string.h>
static PFN_vkGetInstanceProcAddr g_next_gipa = NULL;
static PFN_vkGetPhysicalDeviceProperties g_next_gdp = NULL;
static PFN_vkGetPhysicalDeviceProperties2 g_next_gdp2 = NULL;
static PFN_vkGetPhysicalDeviceFeatures g_next_gdf = NULL;
static PFN_vkGetPhysicalDeviceFeatures2 g_next_gdf2 = NULL;
#define HASVK14_API_VERSION VK_MAKE_API_VERSION(0, 1, 4, VK_HEADER_VERSION)
#define INTEL_VENDOR_ID 0x8086
static int is_intel_below_14(uint32_t vendorID, uint32_t apiVersion)
{
return vendorID == INTEL_VENDOR_ID && VK_API_VERSION_MAJOR(apiVersion) == 1 && VK_API_VERSION_MINOR(apiVersion) < 4;
}
static int is_intel_device(VkPhysicalDevice device)
{
if (!g_next_gdp) return 0;
VkPhysicalDeviceProperties props;
g_next_gdp(device, &props);
return props.vendorID == INTEL_VENDOR_ID;
}
static void patch_features(VkPhysicalDeviceFeatures *f)
{
f->shaderInt16 = VK_TRUE;
}
VKAPI_ATTR VkResult VKAPI_CALL
HaVK14_EnumerateInstanceVersion(uint32_t *pApiVersion)
{
*pApiVersion = HASVK14_API_VERSION;
return VK_SUCCESS;
}
VKAPI_ATTR VkResult VKAPI_CALL
HaVK14_CreateInstance(const VkInstanceCreateInfo *pCreateInfo,
const VkAllocationCallbacks *pAllocator,
VkInstance *pInstance)
{
VkLayerInstanceCreateInfo *link =
(VkLayerInstanceCreateInfo *)pCreateInfo->pNext;
while (link &&
!(link->sType == VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO &&
link->function == VK_LAYER_LINK_INFO))
link = (VkLayerInstanceCreateInfo *)link->pNext;
if (!link)
return VK_ERROR_INITIALIZATION_FAILED;
g_next_gipa = link->u.pLayerInfo->pfnNextGetInstanceProcAddr;
link->u.pLayerInfo = link->u.pLayerInfo->pNext;
PFN_vkCreateInstance next_ci =
(PFN_vkCreateInstance)g_next_gipa(NULL, "vkCreateInstance");
VkResult res = next_ci(pCreateInfo, pAllocator, pInstance);
if (res != VK_SUCCESS)
return res;
g_next_gdp = (PFN_vkGetPhysicalDeviceProperties)
g_next_gipa(*pInstance, "vkGetPhysicalDeviceProperties");
g_next_gdp2 = (PFN_vkGetPhysicalDeviceProperties2)
g_next_gipa(*pInstance, "vkGetPhysicalDeviceProperties2");
if (!g_next_gdp2)
{
g_next_gdp2 = (PFN_vkGetPhysicalDeviceProperties2)
g_next_gipa(*pInstance, "vkGetPhysicalDeviceProperties2KHR");
}
g_next_gdf = (PFN_vkGetPhysicalDeviceFeatures)
g_next_gipa(*pInstance, "vkGetPhysicalDeviceFeatures");
g_next_gdf2 = (PFN_vkGetPhysicalDeviceFeatures2)
g_next_gipa(*pInstance, "vkGetPhysicalDeviceFeatures2");
if (!g_next_gdf2)
{
g_next_gdf2 = (PFN_vkGetPhysicalDeviceFeatures2)
g_next_gipa(*pInstance, "vkGetPhysicalDeviceFeatures2KHR");
}
return VK_SUCCESS;
}
VKAPI_ATTR void VKAPI_CALL
HaVK14_GetPhysicalDeviceProperties(VkPhysicalDevice device,
VkPhysicalDeviceProperties *props)
{
if (g_next_gdp)
g_next_gdp(device, props);
if (props && is_intel_below_14(props->vendorID, props->apiVersion))
{
props->apiVersion = HASVK14_API_VERSION;
}
}
VKAPI_ATTR void VKAPI_CALL
HaVK14_GetPhysicalDeviceProperties2(VkPhysicalDevice device,
VkPhysicalDeviceProperties2 *props2)
{
if (g_next_gdp2)
g_next_gdp2(device, props2);
if (!props2)
return;
VkPhysicalDeviceProperties *props = &props2->properties;
if (!is_intel_below_14(props->vendorID, props->apiVersion))
return;
props->apiVersion = HASVK14_API_VERSION;
VkBaseOutStructure *s = (VkBaseOutStructure *)props2->pNext;
while (s)
{
if (s->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES)
{
VkPhysicalDeviceVulkan12Properties *p12 =
(VkPhysicalDeviceVulkan12Properties *)s;
p12->conformanceVersion = (VkConformanceVersion){1, 4, 1, 1};
}
if (s->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES)
{
VkPhysicalDeviceDriverProperties *drv =
(VkPhysicalDeviceDriverProperties *)s;
drv->conformanceVersion = (VkConformanceVersion){1, 4, 1, 1};
}
s = s->pNext;
}
}
VKAPI_ATTR void VKAPI_CALL
HaVK14_GetPhysicalDeviceFeatures(VkPhysicalDevice device,
VkPhysicalDeviceFeatures *features)
{
if (g_next_gdf)
g_next_gdf(device, features);
if (features && is_intel_device(device))
patch_features(features);
}
VKAPI_ATTR void VKAPI_CALL
HaVK14_GetPhysicalDeviceFeatures2(VkPhysicalDevice device,
VkPhysicalDeviceFeatures2 *features2)
{
if (g_next_gdf2)
g_next_gdf2(device, features2);
if (!features2 || !is_intel_device(device))
return;
patch_features(&features2->features);
/* Also patch Vulkan 1.1/1.2 feature structs in pNext chain */
VkBaseOutStructure *s = (VkBaseOutStructure *)features2->pNext;
while (s)
{
if (s->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES)
{
VkPhysicalDeviceShaderDrawParametersFeatures *f =
(VkPhysicalDeviceShaderDrawParametersFeatures *)s;
f->shaderDrawParameters = VK_TRUE;
}
if (s->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES)
{
VkPhysicalDeviceVulkan12Features *f12 =
(VkPhysicalDeviceVulkan12Features *)s;
f12->shaderInt8 = VK_TRUE;
f12->storageBuffer8BitAccess = VK_TRUE;
f12->uniformAndStorageBuffer8BitAccess = VK_TRUE;
}
s = s->pNext;
}
}
VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL
HaVK14_GetInstanceProcAddr(VkInstance instance, const char *pName)
{
#define INTERCEPT(fn) \
if (strcmp(pName, "vk" #fn) == 0) \
return (PFN_vkVoidFunction)HaVK14_##fn;
INTERCEPT(GetInstanceProcAddr)
INTERCEPT(EnumerateInstanceVersion)
INTERCEPT(CreateInstance)
INTERCEPT(GetPhysicalDeviceProperties)
INTERCEPT(GetPhysicalDeviceProperties2)
INTERCEPT(GetPhysicalDeviceFeatures)
INTERCEPT(GetPhysicalDeviceFeatures2)
if (strcmp(pName, "vkGetPhysicalDeviceProperties2KHR") == 0)
return (PFN_vkVoidFunction)HaVK14_GetPhysicalDeviceProperties2;
if (strcmp(pName, "vkGetPhysicalDeviceFeatures2KHR") == 0)
return (PFN_vkVoidFunction)HaVK14_GetPhysicalDeviceFeatures2;
#undef INTERCEPT
return g_next_gipa ? g_next_gipa(instance, pName) : NULL;
}
@@ -1,17 +0,0 @@
{
"file_format_version": "1.1.2",
"layer": {
"name": "@layer_name@",
"type": "GLOBAL",
"library_path": "@out@/lib/libVkLayer_hasvk14.so",
"api_version": "1.4.0",
"implementation_version": "1",
"description": "Intel Hard Graphics",
"functions": {
"vkGetInstanceProcAddr": "HaVK14_GetInstanceProcAddr"
},
"disable_environment": {
"DISABLE_HASVK14_LAYER": "1"
}
}
}
-21
View File
@@ -1,21 +0,0 @@
{ ... }:
{
programs.gpu-screen-recorder.enable = true;
services.udev.extraRules = ''
KERNEL=="ttyACM[0-9]*", MODE="0666"
KERNEL=="ttyUSB[0-9]*", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="12d1", MODE="0666", GROUP="plugdev"
'';
services.udisks2.enable = true;
services.gnome.sushi.enable = true;
services.gvfs.enable = true;
security.polkit.extraConfig = ''
polkit.addRule(function(action, subject) {
if (action.id.match("org.freedesktop.udisks2.") &&
subject.isInGroup("wheel")) {
return polkit.Result.YES;
}
});
'';
}
+8
View File
@@ -0,0 +1,8 @@
{ ... }:
{
flake.nixosModules.hw-bluetooth =
{ ... }:
{
hardware.bluetooth.enable = true;
};
}
+116
View File
@@ -0,0 +1,116 @@
{ ... }:
{
flake.nixosModules.hw-graphics =
{
config,
lib,
pkgs,
...
}:
let
driver = config.elars.hardware.graphics.driver;
amd = {
hardware.graphics.extraPackages = with pkgs; [
amdvlk
rocmPackages.clr.icd
];
services.xserver.videoDrivers = [ "amdgpu" ];
};
intel =
let
wayland-intel-vaapi-driver = pkgs.intel-vaapi-driver.overrideAttrs (oldAttrs: {
version = "2.4.4-wayland-fix";
src = pkgs.fetchFromGitHub {
owner = "irql-notlessorequal";
repo = "intel-vaapi-driver";
rev = "929e936ec1f451a5daa12b0c7367687b712b8c2c";
hash = "sha256-tZ1rZ+4bRxarcFQhP8V2Mfz0sJ5rBgHYLu2ulrQwL+U=";
};
});
wayland-intel-vaapi-driver-32 = pkgs.pkgsi686Linux.intel-vaapi-driver.overrideAttrs (oldAttrs: {
version = "2.4.4-wayland-fix";
src = pkgs.fetchFromGitHub {
owner = "irql-notlessorequal";
repo = "intel-vaapi-driver";
rev = "929e936ec1f451a5daa12b0c7367687b712b8c2c";
hash = "sha256-tZ1rZ+4bRxarcFQhP8V2Mfz0sJ5rBgHYLu2ulrQwL+U=";
};
});
#hasvk14-layer = pkgs.callPackage ./vk { };
#hasvk14-layer-32 = pkgs.pkgsi686Linux.callPackage ./vk { };
in
{
hardware.graphics = {
extraPackages = [
#hasvk14-layer
wayland-intel-vaapi-driver
pkgs.libvdpau-va-gl
pkgs.pocl
];
extraPackages32 = [
#hasvk14-layer-32
wayland-intel-vaapi-driver-32
pkgs.pkgsi686Linux.libvdpau-va-gl
];
};
services.xserver.videoDrivers = [ "modesetting" ];
environment.variables = {
LIBVA_DRIVER_NAME = "i965";
};
};
nvidia = {
services.xserver.videoDrivers = [ "nvidia" ];
hardware.nvidia = {
modesetting.enable = true;
open = false;
nvidiaSettings = true;
package = config.boot.kernelPackages.nvidiaPackages.stable;
};
};
prime = {
hardware.nvidia.prime = {
offload.enable = true;
amdgpuBusId = "PCI:X:X:X";
nvidiaBusId = "PCI:X:X:X";
};
};
in
{
options.elars.hardware.graphics.driver = lib.mkOption {
type = lib.types.enum [
"intel"
"amd"
"nvidia"
"hybrid-amd-nvidia"
];
default = "intel";
};
config = lib.mkMerge [
{
hardware.graphics = {
enable = true;
enable32Bit = true;
};
}
(lib.mkIf (driver == "intel") intel)
(lib.mkIf (driver == "amd") amd)
(lib.mkIf (driver == "nvidia") nvidia)
(lib.mkIf (driver == "hybrid-amd-nvidia") (
lib.mkMerge [
amd
nvidia
prime
]
))
];
};
}
+24
View File
@@ -0,0 +1,24 @@
{ ... }:
{
flake.nixosModules.hw-udev =
{ ... }:
{
programs.gpu-screen-recorder.enable = true;
services.udev.extraRules = ''
KERNEL=="ttyACM[0-9]*", MODE="0666"
KERNEL=="ttyUSB[0-9]*", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="12d1", MODE="0666", GROUP="plugdev"
'';
services.udisks2.enable = true;
services.gnome.sushi.enable = true;
services.gvfs.enable = true;
security.polkit.extraConfig = ''
polkit.addRule(function(action, subject) {
if (action.id.match("org.freedesktop.udisks2.") &&
subject.isInGroup("wheel")) {
return polkit.Result.YES;
}
});
'';
};
}
@@ -0,0 +1,26 @@
{ ... }:
{
flake.nixosModules.net-network-manager =
{ ... }:
{
networking.hostName = "copland";
networking.networkmanager.enable = true;
services.resolved = {
enable = true;
settings = {
Resolve = {
DNS = "1.1.1.1";
DNSOverTLS = "yes";
DNSSEC = "false";
Domains = [ "~." ];
FallbackDNS = [
"1.1.1.1"
"8.8.8.8"
];
};
};
};
};
}
+39
View File
@@ -0,0 +1,39 @@
{ ... }:
{
flake.nixosModules.net-vpn =
{ ... }:
{
services.zapret = {
enable = true;
params = [
"--filter-tcp=80"
"--dpi-desync=fake,multisplit"
"--dpi-desync-split-pos=method+2"
"--dpi-desync-fooling=md5sig"
"--new"
"--filter-tcp=443"
"--dpi-desync=fake,multidisorder"
"--dpi-desync-split-pos=1,midsld"
"--dpi-desync-fooling=badseq,md5sig"
"--new"
"--filter-udp=443"
"--dpi-desync=fake"
"--dpi-desync-repeats=6"
];
};
networking.enableIPv6 = false;
networking.firewall.extraCommands = ''
iptables -I OUTPUT -p tcp -m multiport --dports 80,443 -m connbytes --connbytes-dir=original --connbytes-mode=packets --connbytes 1:9 -j NFQUEUE --queue-num 200 --queue-bypass
iptables -I OUTPUT -p udp --dport 443 -m connbytes --connbytes-dir=original --connbytes-mode=packets --connbytes 1:9 -j NFQUEUE --queue-num 200 --queue-bypass
iptables -I OUTPUT -m mark --mark 0x40000000/0x40000000 -j RETURN
'';
networking.firewall.extraStopCommands = ''
iptables -D OUTPUT -p tcp -m multiport --dports 80,443 -m connbytes --connbytes-dir=original --connbytes-mode=packets --connbytes 1:9 -j NFQUEUE --queue-num 200 --queue-bypass || true
iptables -D OUTPUT -p udp --dport 443 -m connbytes --connbytes-dir=original --connbytes-mode=packets --connbytes 1:9 -j NFQUEUE --queue-num 200 --queue-bypass || true
iptables -D OUTPUT -m mark --mark 0x40000000/0x40000000 -j RETURN || true
'';
};
}
-8
View File
@@ -1,8 +0,0 @@
{ ... }:
{
imports = [
./vpn
./network-manager
];
}
@@ -1,23 +0,0 @@
{ ... }:
{
networking.hostName = "copland";
networking.networkmanager.enable = true;
services.resolved = {
enable = true;
settings = {
Resolve = {
DNS = "1.1.1.1";
DNSOverTLS = "yes";
DNSSEC = "false";
Domains = [ "~." ];
FallbackDNS = [
"1.1.1.1"
"8.8.8.8"
];
};
};
};
}
-36
View File
@@ -1,36 +0,0 @@
{ ... }:
{
services.zapret = {
enable = true;
params = [
"--filter-tcp=80"
"--dpi-desync=fake,multisplit"
"--dpi-desync-split-pos=method+2"
"--dpi-desync-fooling=md5sig"
"--new"
"--filter-tcp=443"
"--dpi-desync=fake,multidisorder"
"--dpi-desync-split-pos=1,midsld"
"--dpi-desync-fooling=badseq,md5sig"
"--new"
"--filter-udp=443"
"--dpi-desync=fake"
"--dpi-desync-repeats=6"
];
};
networking.enableIPv6 = false;
networking.firewall.extraCommands = ''
iptables -I OUTPUT -p tcp -m multiport --dports 80,443 -m connbytes --connbytes-dir=original --connbytes-mode=packets --connbytes 1:9 -j NFQUEUE --queue-num 200 --queue-bypass
iptables -I OUTPUT -p udp --dport 443 -m connbytes --connbytes-dir=original --connbytes-mode=packets --connbytes 1:9 -j NFQUEUE --queue-num 200 --queue-bypass
iptables -I OUTPUT -m mark --mark 0x40000000/0x40000000 -j RETURN
'';
networking.firewall.extraStopCommands = ''
iptables -D OUTPUT -p tcp -m multiport --dports 80,443 -m connbytes --connbytes-dir=original --connbytes-mode=packets --connbytes 1:9 -j NFQUEUE --queue-num 200 --queue-bypass || true
iptables -D OUTPUT -p udp --dport 443 -m connbytes --connbytes-dir=original --connbytes-mode=packets --connbytes 1:9 -j NFQUEUE --queue-num 200 --queue-bypass || true
iptables -D OUTPUT -m mark --mark 0x40000000/0x40000000 -j RETURN || true
'';
}
@@ -1,8 +0,0 @@
{ ... }:
{
programs.appimage = {
enable = true;
binfmt = true;
};
}
-15
View File
@@ -1,15 +0,0 @@
{ ... }:
{
imports = [
./appimage
./flatpak
./fwupd
./kde_connect
./ollama
./performance
./printing
./security
./ssh
];
}
@@ -1,5 +0,0 @@
{ ... }:
{
services.flatpak.enable = true;
}
-5
View File
@@ -1,5 +0,0 @@
{ ... }:
{
services.fwupd.enable = true;
}
@@ -1,5 +0,0 @@
{ ... }:
{
programs.kdeconnect.enable = true;
}
@@ -1,5 +0,0 @@
{ ... }:
{
services.ollama.enable = true;
}
@@ -1,7 +0,0 @@
{ ... }:
{
services.irqbalance.enable = true;
services.power-profiles-daemon.enable = true;
services.upower.enable = true;
}
@@ -1,28 +0,0 @@
{ pkgs, ... }:
{
services.printing = {
enable = true;
drivers = [
pkgs.cnijfilter2
pkgs.gutenprint
pkgs.gutenprintBin
];
};
services.avahi = {
enable = true;
nssmdns4 = true;
openFirewall = true;
publish = {
enable = true;
addresses = true;
userServices = true;
};
};
hardware.sane = {
enable = true;
extraBackends = [ pkgs.sane-airscan ];
};
}
@@ -1,19 +0,0 @@
{ pkgs, ... }:
{
programs.gnupg.agent = {
enable = true;
enableSSHSupport = false;
};
security.wrappers = {
gsr-kms-server = {
source = "${pkgs.gpu-screen-recorder}/bin/gsr-kms-server";
owner = "root";
group = "root";
permissions = "u+rx,g+rx,o+rx";
};
};
services.gnome.gnome-keyring.enable = true;
}
@@ -0,0 +1,11 @@
{ ... }:
{
flake.nixosModules.service-appimage =
{ ... }:
{
programs.appimage = {
enable = true;
binfmt = true;
};
};
}
@@ -0,0 +1,8 @@
{ ... }:
{
flake.nixosModules.service-docker =
{ ... }:
{
virtualisation.docker.enable = true;
};
}
@@ -0,0 +1,8 @@
{ ... }:
{
flake.nixosModules.service-flatpak =
{ ... }:
{
services.flatpak.enable = true;
};
}
@@ -0,0 +1,8 @@
{ ... }:
{
flake.nixosModules.service-fwupd =
{ ... }:
{
services.fwupd.enable = true;
};
}
@@ -0,0 +1,8 @@
{ ... }:
{
flake.nixosModules.service-kde-connect =
{ ... }:
{
programs.kdeconnect.enable = true;
};
}
@@ -0,0 +1,8 @@
{ ... }:
{
flake.nixosModules.service-ollama =
{ ... }:
{
services.ollama.enable = true;
};
}
@@ -0,0 +1,10 @@
{ ... }:
{
flake.nixosModules.service-performance =
{ ... }:
{
services.irqbalance.enable = true;
services.power-profiles-daemon.enable = true;
services.upower.enable = true;
};
}
@@ -0,0 +1,31 @@
{ ... }:
{
flake.nixosModules.service-printing =
{ pkgs, ... }:
{
services.printing = {
enable = true;
drivers = [
pkgs.cnijfilter2
pkgs.gutenprint
pkgs.gutenprintBin
];
};
services.avahi = {
enable = true;
nssmdns4 = true;
openFirewall = true;
publish = {
enable = true;
addresses = true;
userServices = true;
};
};
hardware.sane = {
enable = true;
extraBackends = [ pkgs.sane-airscan ];
};
};
}
@@ -0,0 +1,22 @@
{ ... }:
{
flake.nixosModules.service-security =
{ pkgs, ... }:
{
programs.gnupg.agent = {
enable = true;
enableSSHSupport = false;
};
security.wrappers = {
gsr-kms-server = {
source = "${pkgs.gpu-screen-recorder}/bin/gsr-kms-server";
owner = "root";
group = "root";
permissions = "u+rx,g+rx,o+rx";
};
};
services.gnome.gnome-keyring.enable = true;
};
}
@@ -0,0 +1,9 @@
{ ... }:
{
flake.nixosModules.service-ssh =
{ ... }:
{
services.openssh.enable = true;
services.tailscale.enable = true;
};
}
@@ -0,0 +1,9 @@
{ ... }:
{
flake.nixosModules.service-virt-manager =
{ ... }:
{
virtualisation.libvirtd.enable = true;
programs.virt-manager.enable = true;
};
}
-6
View File
@@ -1,6 +0,0 @@
{ ... }:
{
services.openssh.enable = true;
services.tailscale.enable = true;
}
-10
View File
@@ -1,10 +0,0 @@
{ ... }:
{
imports = [
./locale
./nix
./fonts
./kmscon
];
}
-55
View File
@@ -1,55 +0,0 @@
{ pkgs, ... }:
{
fonts = {
packages = with pkgs; [
nerd-fonts.jetbrains-mono
nerd-fonts.caskaydia-cove
noto-fonts-color-emoji
noto-fonts-cjk-serif
noto-fonts-cjk-sans
nerd-fonts.hurmit
noto-fonts
ipaexfont
];
fontconfig = {
enable = true;
antialias = true;
hinting = {
enable = true;
style = "slight";
autohint = false;
};
subpixel = {
rgba = "rgb";
lcdfilter = "default";
};
defaultFonts = {
serif = [
"JetBrainsMono Nerd Font"
"Noto Serif CJK JP"
"Noto Serif"
"IPAexMincho"
];
sansSerif = [
"JetBrainsMono Nerd Font"
"Noto Sans CJK JP"
"Noto Sans"
"IPAexGothic"
];
monospace = [
"JetBrainsMono Nerd Font Mono"
"JetBrainsMono Nerd Font"
"Noto Sans Mono CJK JP"
"Noto Sans CJK JP"
"IPAexGothic"
];
emoji = [ "Noto Color Emoji" ];
};
};
};
}
-16
View File
@@ -1,16 +0,0 @@
{ pkgs, ... }:
{
fonts.packages = [
pkgs.nerd-fonts.jetbrains-mono
];
services.kmscon = {
enable = true;
config = {
font-name = "JetBrainsMono Nerd Font";
font-size = 18;
hwaccel = true;
};
};
}
-38
View File
@@ -1,38 +0,0 @@
{ ... }:
{
time.timeZone = "Europe/Istanbul";
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "tr_TR.UTF-8";
LC_IDENTIFICATION = "tr_TR.UTF-8";
LC_MEASUREMENT = "tr_TR.UTF-8";
LC_MONETARY = "tr_TR.UTF-8";
LC_NAME = "tr_TR.UTF-8";
LC_NUMERIC = "tr_TR.UTF-8";
LC_PAPER = "tr_TR.UTF-8";
LC_TELEPHONE = "tr_TR.UTF-8";
LC_TIME = "tr_TR.UTF-8";
};
services.timesyncd.enable = false;
services.chrony = {
enable = true;
extraConfig = ''
makestep 1.0 -1
server 162.159.200.1 iburst
server 216.239.35.0 iburst
server time.cloudflare.com iburst
server time.google.com iburst
'';
};
systemd.services.chronyd = {
after = [ "network-online.target" ];
wants = [ "network-online.target" ];
};
console.font = "LatArCyrHeb-16";
system.stateVersion = "25.05";
console.keyMap = "trq";
console.earlySetup = true;
}
-41
View File
@@ -1,41 +0,0 @@
{ ... }:
{
nix.settings = {
experimental-features = [
"nix-command"
"flakes"
];
max-jobs = 4;
cores = 4;
substituters = [
"https://cache.nixos.org"
"https://nix-community.cachix.org"
"https://ezkea.cachix.org"
"https://noctalia.cachix.org"
"https://hyprland.cachix.org"
"https://attic.xuyh0120.win/lantian"
"https://soryu-kernel.cachix.org"
];
trusted-public-keys = [
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"ezkea.cachix.org-1:ioBmUbJTZIKsHmWWXPe1FSFbeVe+afhfgqgTSNd34eI="
"noctalia.cachix.org-1:pCOR47nnMEo5thcxNDtzWpOxNFQsBRglJzxWPp3dkU4="
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
"lantian:EeAUQ+W+6r7EtwnmYjeVwx5kOGEBpjlBfPlzGlTNvHc="
"soryu-kernel.cachix.org-1:2/Tm90ibGjLQWo/uX4qo/kbFB5yjQG/CzfE1oelHdWw="
];
};
documentation = {
man.enable = true;
doc.enable = false;
info.enable = false;
nixos.enable = false;
};
programs.nix-ld.enable = true;
}
-36
View File
@@ -1,36 +0,0 @@
{ pkgs, ... }:
{
users.users.elars = {
isNormalUser = true;
linger = true;
description = "elars";
extraGroups = [
"networkmanager"
"libvirtd"
"scanner"
"plugdev"
"docker"
"video"
"input"
"audio"
"wheel"
"lp"
];
shell = pkgs.zsh;
};
programs.nh = {
enable = true;
clean.enable = true;
clean.extraArgs = "--keep-since 4d --keep 3";
flake = "/home/elars/copland";
};
programs.zsh = {
enable = true;
enableCompletion = true;
autosuggestions.enable = true;
syntaxHighlighting.enable = true;
};
}
-8
View File
@@ -1,8 +0,0 @@
{ ... }:
{
imports = [
./docker
./virt-manager
];
}
@@ -1,5 +0,0 @@
{ ... }:
{
virtualisation.docker.enable = true;
}
@@ -1,6 +0,0 @@
{ ... }:
{
virtualisation.libvirtd.enable = true;
programs.virt-manager.enable = true;
}