mirror of
https://github.com/elwrcl/copnix.git
synced 2026-10-31 14:28:02 +03:00
dentritic refactor
This commit is contained in:
140 files changed
+2285
-2622
No files matched your search
@@ -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;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -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;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -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" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -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;
|
||||
};
|
||||
}
|
||||
@@ -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
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -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;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
../home/git.nix
|
||||
./boot
|
||||
./desktop
|
||||
./gaming
|
||||
./hardware
|
||||
./networking
|
||||
./services
|
||||
./system
|
||||
./users
|
||||
./virtualization
|
||||
];
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./pipewire.nix
|
||||
];
|
||||
}
|
||||
@@ -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;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -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";
|
||||
};
|
||||
}
|
||||
@@ -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 ];
|
||||
};
|
||||
}
|
||||
@@ -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
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -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;
|
||||
};
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./bluetooth
|
||||
./graphics
|
||||
./udev
|
||||
];
|
||||
}
|
||||
@@ -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; })
|
||||
]
|
||||
))
|
||||
];
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
});
|
||||
'';
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{ ... }:
|
||||
{
|
||||
flake.nixosModules.hw-bluetooth =
|
||||
{ ... }:
|
||||
{
|
||||
hardware.bluetooth.enable = true;
|
||||
};
|
||||
}
|
||||
@@ -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
|
||||
]
|
||||
))
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -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"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -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
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -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"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -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;
|
||||
};
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./appimage
|
||||
./flatpak
|
||||
./fwupd
|
||||
./kde_connect
|
||||
./ollama
|
||||
./performance
|
||||
./printing
|
||||
./security
|
||||
./ssh
|
||||
];
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
services.flatpak.enable = true;
|
||||
}
|
||||
@@ -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;
|
||||
};
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
services.openssh.enable = true;
|
||||
services.tailscale.enable = true;
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./locale
|
||||
./nix
|
||||
./fonts
|
||||
./kmscon
|
||||
];
|
||||
}
|
||||
@@ -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" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -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;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
};
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
Reference in new issue
Block a user