initial commit
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
||||
services = {
|
||||
displayManager.cosmic-greeter.enable = true;
|
||||
desktopManager.cosmic.enable = true;
|
||||
desktopManager.cosmic.xwayland.enable = true;
|
||||
desktopManager.cosmic.showExcludedPkgsWarning = false;
|
||||
system76-scheduler.enable = true;
|
||||
};
|
||||
|
||||
environment.sessionVariables.COSMIC_DATA_CONTROL_ENABLED = 1;
|
||||
environment.systemPackages = with pkgs; [
|
||||
gnome-disk-utility
|
||||
];
|
||||
environment.cosmic.excludePackages = with pkgs; [
|
||||
cosmic-files
|
||||
cosmic-term
|
||||
cosmic-player
|
||||
cosmic-screenshot
|
||||
];
|
||||
programs.kdeconnect = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
extraPortals = [ pkgs.xdg-desktop-portal-cosmic ];
|
||||
config.common.default = "*";
|
||||
};
|
||||
|
||||
programs.firefox.preferences = {
|
||||
# disable libadwaita theming for Firefox
|
||||
"widget.gtk.libadwaita-colors.enabled" = false;
|
||||
};
|
||||
|
||||
imports = [
|
||||
./thunar.nix
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
||||
services = {
|
||||
displayManager.gdm.enable = true;
|
||||
desktopManager.gnome.enable = true;
|
||||
# Para desabilitar a instalação do conjunto de aplicativos do GNOME e ficar apenas com o shell do GNOME.
|
||||
gnome.core-apps.enable = false;
|
||||
gnome.core-developer-tools.enable = false;
|
||||
gnome.games.enable = false;
|
||||
udev.packages = [ pkgs.gnome-settings-daemon ];
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
gnomeExtensions.blur-my-shell
|
||||
gnomeExtensions.dash-to-dock
|
||||
gnomeExtensions.just-perfection
|
||||
gnomeExtensions.arc-menu
|
||||
gnomeExtensions.appindicator
|
||||
gnomeExtensions.valent
|
||||
gnomeExtensions.forge
|
||||
gnomeExtensions.clipboard-indicator
|
||||
gnomeExtensions.media-controls
|
||||
gnomeExtensions.sound-output-device-chooser
|
||||
gnomeExtensions.quick-settings-audio-panel
|
||||
xdg-desktop-portal-gnome
|
||||
valent
|
||||
gnome-tweaks
|
||||
gnome-shell
|
||||
gnome-extension-manager
|
||||
refine
|
||||
alacarte
|
||||
dconf
|
||||
];
|
||||
environment.gnome.excludePackages = with pkgs; [
|
||||
gnome-tour
|
||||
gnome-user-docs
|
||||
];
|
||||
|
||||
qt = {
|
||||
enable = true;
|
||||
platformTheme = "gnome";
|
||||
style = "adwaita-dark";
|
||||
};
|
||||
|
||||
programs.kdeconnect = {
|
||||
enable = true;
|
||||
package = pkgs.valent;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
||||
imports = [
|
||||
#./cosmic.nix
|
||||
#./gnome.nix
|
||||
#./kde.nix
|
||||
./niri/niri.nix
|
||||
|
||||
];
|
||||
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
||||
## Ativar ambiente gráfico KDE Plasma 6 e gerenciador de login
|
||||
services = {
|
||||
desktopManager.plasma6.enable = true;
|
||||
};
|
||||
services.displayManager.plasma-login-manager = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
programs.kdeconnect.enable = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
kdePackages.partitionmanager
|
||||
kdePackages.filelight
|
||||
kdePackages.qtmultimedia
|
||||
kdePackages.kcalc
|
||||
kdePackages.sddm-kcm
|
||||
kdePackages.wallpaper-engine-plugin
|
||||
kdePackages.krdp
|
||||
kdePackages.accounts-qt
|
||||
];
|
||||
|
||||
environment.plasma6.excludePackages = with pkgs.kdePackages; [
|
||||
plasma-browser-integration
|
||||
# konsole
|
||||
elisa
|
||||
];
|
||||
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
extraPortals = [ pkgs.kdePackages.xdg-desktop-portal-kde ];
|
||||
config.common.default = "*";
|
||||
};
|
||||
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
||||
programs.dms-shell = {
|
||||
enable = true;
|
||||
package = inputs.dms.packages.${pkgs.stdenv.hostPlatform.system}.default;
|
||||
#quickshell.package = inputs.quickshell.packages.${pkgs.stdenv.hostPlatform.system}.quickshell;
|
||||
|
||||
systemd = {
|
||||
enable = true; # Systemd service for auto-start
|
||||
restartIfChanged = true; # Auto-restart dms.service when dms-shell changes
|
||||
};
|
||||
|
||||
plugins = {
|
||||
dankBitwarden.enable = true;
|
||||
dankKDEConnect.enable = true;
|
||||
linuxWallpaperEngine.enable = true;
|
||||
nvidiaGpuMonitor.enable = true;
|
||||
};
|
||||
|
||||
# Core features
|
||||
enableSystemMonitoring = true; # System monitoring widgets (dgop)
|
||||
enableVPN = true; # VPN management widget
|
||||
enableDynamicTheming = true; # Wallpaper-based theming (matugen)
|
||||
enableAudioWavelength = true; # Audio visualizer (cava)
|
||||
enableCalendarEvents = false; # Calendar integration (khal)
|
||||
};
|
||||
|
||||
imports = [
|
||||
inputs.dms.nixosModules.dank-material-shell
|
||||
inputs.dms-plugin-registry.modules.default
|
||||
inputs.dms.nixosModules.greeter
|
||||
];
|
||||
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
||||
nixpkgs.overlays = [ inputs.niri.overlays.niri ];
|
||||
programs.niri = {
|
||||
enable = true;
|
||||
package = pkgs.niri-unstable;
|
||||
};
|
||||
|
||||
imports = [
|
||||
./thunar.nix
|
||||
./dms.nix
|
||||
#./noctalia.nix
|
||||
];
|
||||
|
||||
services.dbus.enable = true;
|
||||
security.polkit.enable = true;
|
||||
systemd.user.services.niri-flake-polkit.enable = false;
|
||||
programs.xwayland.enable = true;
|
||||
programs.kdeconnect.enable = true;
|
||||
|
||||
services = {
|
||||
greetd =
|
||||
let
|
||||
session = {
|
||||
#command = "${pkgs.hyprland}/bin/Hyprland";
|
||||
command = "${pkgs.niri}/bin/niri-session";
|
||||
user = "gui";
|
||||
};
|
||||
in
|
||||
{
|
||||
enable = true;
|
||||
settings = {
|
||||
terminal.vt = 1;
|
||||
default_session = session;
|
||||
initial_session = session;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
dgop
|
||||
];
|
||||
|
||||
#systemd.user.services.polkit-gnome-authentication-agent-1 = {
|
||||
#description = "polkit-gnome-authentication-agent-1";
|
||||
#wantedBy = [ "graphical-session.target" ];
|
||||
#after = [ "graphical-session.target" ];
|
||||
#serviceConfig = {
|
||||
# Type = "simple";
|
||||
# ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
|
||||
# Restart = "on-failure";
|
||||
# RestartSec = 1;
|
||||
# TimeoutStopSec = 10;
|
||||
#};
|
||||
#};
|
||||
|
||||
#xdg.portal = {
|
||||
# enable = true;
|
||||
# config = {
|
||||
# niri."org.freedesktop.impl.portal.FileChooser" = "gtk";
|
||||
# niri.default = "gnome";
|
||||
# common.default = "gnome";
|
||||
# obs.default = "gnome";
|
||||
# };
|
||||
# extraPortals = with pkgs; [
|
||||
# xdg-desktop-portal-gnome
|
||||
# xdg-desktop-portal-gtk
|
||||
# ];
|
||||
#};
|
||||
|
||||
#xdg.portal = {
|
||||
# enable = true;
|
||||
# extraPortals = [
|
||||
# pkgs.xdg-desktop-portal-gnome
|
||||
# pkgs.xdg-desktop-portal-gtk
|
||||
# pkgs.xdg-desktop-portal-wlr
|
||||
# ];
|
||||
# config.common.default = "*1";
|
||||
#};
|
||||
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{ pkgs, inputs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
inputs.noctalia.packages.${pkgs.stdenv.hostPlatform.system}.default
|
||||
];
|
||||
|
||||
nix.settings = {
|
||||
extra-substituters = [ "https://noctalia.cachix.org" ];
|
||||
extra-trusted-public-keys = [
|
||||
"noctalia.cachix.org-1:pCOR47nnMEo5thcxNDtzWpOxNFQsBRglJzxWPp3dkU4="
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
||||
programs.xfconf.enable = true;
|
||||
|
||||
programs.thunar = {
|
||||
enable = true;
|
||||
|
||||
plugins = with pkgs; [
|
||||
thunar-archive-plugin
|
||||
thunar-vcs-plugin
|
||||
thunar-volman
|
||||
];
|
||||
};
|
||||
|
||||
services = {
|
||||
gvfs.enable = true;
|
||||
tumbler.enable = true;
|
||||
};
|
||||
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
||||
imports = [
|
||||
./pkgsconfig.nix
|
||||
./pkgs.nix
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
||||
## Permitir pacotes não-livres
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
## Aplicativos sociais
|
||||
bitwarden-desktop
|
||||
sunshine
|
||||
tailscale
|
||||
|
||||
## inputs
|
||||
inputs.zen-browser.packages.${stdenv.hostPlatform.system}.default
|
||||
inputs.shiru.packages.${pkgs.stdenv.hostPlatform.system}.default
|
||||
|
||||
## Utilitários do sistema e dev tools
|
||||
nh
|
||||
home-manager
|
||||
vulkan-tools
|
||||
vulkan-loader
|
||||
vulkan-utility-libraries
|
||||
gcc
|
||||
ethtool
|
||||
efibootmgr
|
||||
docker-compose
|
||||
distroshelf
|
||||
distrobox
|
||||
freerdp
|
||||
dmidecode
|
||||
i2c-tools
|
||||
gitFull
|
||||
kdePackages.partitionmanager
|
||||
usbutils
|
||||
openrgb
|
||||
winetricks
|
||||
#wineWowPackages.staging
|
||||
wine
|
||||
haguichi
|
||||
logmein-hamachi
|
||||
zerotierone
|
||||
kdePackages.ark
|
||||
loupe
|
||||
lazygit
|
||||
gnumake
|
||||
onlyoffice-desktopeditors
|
||||
adwaita-qt
|
||||
adwaita-qt6
|
||||
winboat
|
||||
xwayland-satellite
|
||||
linux-wallpaperengine
|
||||
#kdePackages.polkit-qt-1
|
||||
kdePackages.krdp
|
||||
cloudflared
|
||||
|
||||
## inputs stable
|
||||
#inputs.nixpkgs-stable.legacyPackages.${pkgs.stdenv.hostPlatform.system}
|
||||
];
|
||||
|
||||
programs.gpu-screen-recorder.enable = true;
|
||||
services.logmein-hamachi.enable = true;
|
||||
programs.haguichi.enable = true;
|
||||
|
||||
nixpkgs.config.permittedInsecurePackages = [
|
||||
"electron-38.8.4"
|
||||
];
|
||||
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
||||
## configuraçao da steam
|
||||
programs = {
|
||||
steam = {
|
||||
enable = true;
|
||||
remotePlay.openFirewall = true;
|
||||
dedicatedServer.openFirewall = true;
|
||||
localNetworkGameTransfers.openFirewall = true;
|
||||
};
|
||||
gamescope.enable = true;
|
||||
gamemode.enable = true;
|
||||
};
|
||||
|
||||
## Configuraçoes do obs
|
||||
|
||||
#programs.obs-studio = {
|
||||
# enable = true;
|
||||
# #optional Nvidia hardware acceleration
|
||||
# package = (
|
||||
# pkgs.obs-studio.override {
|
||||
# cudaSupport = true;
|
||||
# }
|
||||
# );
|
||||
# plugins = with pkgs.obs-studio-plugins; [
|
||||
# wlrobs
|
||||
# obs-pipewire-audio-capture
|
||||
# obs-gstreamer
|
||||
# obs-vkcapture
|
||||
# ];
|
||||
# #enableVirtualCamera = true;
|
||||
#};
|
||||
|
||||
## Configuraçoes do LACT
|
||||
environment.systemPackages = with pkgs; [ lact ];
|
||||
systemd.services.lact = {
|
||||
description = "GPU Control Daemon";
|
||||
after = [ "multi-user.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.lact}/bin/lact daemon";
|
||||
};
|
||||
enable = true;
|
||||
};
|
||||
|
||||
## Fontes
|
||||
fonts.fontDir.enable = true;
|
||||
fonts.fontconfig.enable = true;
|
||||
fonts.packages = with pkgs; [
|
||||
nerd-fonts.jetbrains-mono
|
||||
nerd-fonts.ubuntu-mono
|
||||
nerd-fonts.ubuntu-sans
|
||||
nerd-fonts.dejavu-sans-mono
|
||||
nerd-fonts.fira-code
|
||||
nerd-fonts.overpass
|
||||
noto-fonts
|
||||
liberation_ttf
|
||||
dejavu_fonts
|
||||
];
|
||||
|
||||
## OpenRGB
|
||||
services.hardware.openrgb = {
|
||||
enable = true;
|
||||
motherboard = "amd";
|
||||
package = pkgs.openrgb-with-all-plugins; # enable all plugins
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
||||
## Configuração da internet
|
||||
networking = {
|
||||
networkmanager.enable = true;
|
||||
interfaces.enp9s0.wakeOnLan.enable = true;
|
||||
firewall.allowedTCPPorts = [ 22 ];
|
||||
firewall.allowedUDPPorts = [
|
||||
];
|
||||
};
|
||||
## Ativar Bluetooth
|
||||
hardware.bluetooth.enable = true;
|
||||
|
||||
## Configuração de áudio
|
||||
services = {
|
||||
pulseaudio.enable = false;
|
||||
pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
#jack.enable = true; # Descomente se usar aplicações JACK
|
||||
};
|
||||
};
|
||||
security.rtkit.enable = true;
|
||||
|
||||
## Configuraçao de idioma
|
||||
|
||||
## Definir fuso horário
|
||||
time.timeZone = "America/Bahia";
|
||||
|
||||
## Configurações de idioma e localidade
|
||||
i18n = {
|
||||
defaultLocale = "pt_BR.UTF-8";
|
||||
extraLocaleSettings = {
|
||||
LC_ADDRESS = "pt_BR.UTF-8";
|
||||
LC_IDENTIFICATION = "pt_BR.UTF-8";
|
||||
LC_MEASUREMENT = "pt_BR.UTF-8";
|
||||
LC_MONETARY = "pt_BR.UTF-8";
|
||||
LC_NAME = "pt_BR.UTF-8";
|
||||
LC_NUMERIC = "pt_BR.UTF-8";
|
||||
LC_PAPER = "pt_BR.UTF-8";
|
||||
LC_TELEPHONE = "pt_BR.UTF-8";
|
||||
LC_TIME = "pt_BR.UTF-8";
|
||||
};
|
||||
};
|
||||
|
||||
## Configurar layout do teclado no X11 e console
|
||||
services.xserver.xkb = {
|
||||
layout = "br";
|
||||
variant = "";
|
||||
};
|
||||
console.keyMap = "br-abnt2";
|
||||
|
||||
## Alias do fish
|
||||
programs.fish.shellAliases = {
|
||||
# upd = "sudo nix flake update --flake /etc/nixos && sudo nixos-rebuild switch --flake path:/etc/nixos#Alfa";
|
||||
upd = "nh home switch -a -u && nh os switch -a";
|
||||
gitupdate = "git add . && git commit && git push origin main";
|
||||
};
|
||||
|
||||
## Config do fish
|
||||
programs.fish.enable = true;
|
||||
programs.bash = {
|
||||
interactiveShellInit = ''
|
||||
if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
|
||||
then
|
||||
shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION=""
|
||||
exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
|
||||
fi '';
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
||||
imports = [
|
||||
./cfsystem.nix
|
||||
./nixhelper.nix
|
||||
./nvidia.nix
|
||||
./patchs.nix
|
||||
./self-host.nix
|
||||
./kernel.nix
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
||||
boot.kernelPackages =
|
||||
let
|
||||
customKernel =
|
||||
inputs.nix-cachyos-kernel.legacyPackages.x86_64-linux.linuxPackages-cachyos-latest.kernel.override
|
||||
{
|
||||
processorOpt = "native";
|
||||
|
||||
lto = "thin";
|
||||
|
||||
scheduler = "bore";
|
||||
|
||||
};
|
||||
in
|
||||
pkgs.linuxPackagesFor customKernel;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
||||
programs = {
|
||||
## nix-ld
|
||||
nix-ld = {
|
||||
enable = true;
|
||||
libraries = with pkgs; [ ];
|
||||
};
|
||||
## nh
|
||||
nh = {
|
||||
enable = true;
|
||||
clean.enable = true;
|
||||
clean.extraArgs = "--keep-since 8d --keep 7";
|
||||
flake = "/etc/nixos"; # sets NH_OS_FLAKE variable for you
|
||||
};
|
||||
## appimage
|
||||
appimage = {
|
||||
enable = true;
|
||||
binfmt = true;
|
||||
};
|
||||
## Cache
|
||||
ccache.enable = true;
|
||||
ccache.cacheDir = "/var/cache/ccache";
|
||||
};
|
||||
|
||||
nix = {
|
||||
settings = {
|
||||
cores = 0;
|
||||
max-jobs = "auto";
|
||||
auto-optimise-store = true;
|
||||
extra-sandbox-paths = [ "/var/cache/ccache" ];
|
||||
};
|
||||
|
||||
## Lix
|
||||
package = pkgs.lixPackageSets.latest.lix;
|
||||
|
||||
## ativaçao do flakes
|
||||
settings.experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
nixPath = lib.mapAttrsToList (key: _: "${key}=flake:${key}") config.nix.registry;
|
||||
registry = lib.mapAttrs (_: value: { flake = value; }) (
|
||||
lib.filterAttrs (_: value: lib.isType "flake" value) inputs
|
||||
);
|
||||
settings.flake-registry = "";
|
||||
};
|
||||
|
||||
services = {
|
||||
flatpak = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
||||
## Driver da nvidia proprietario
|
||||
|
||||
services.xserver.videoDrivers = [ "nvidia" ];
|
||||
hardware = {
|
||||
graphics.enable = true;
|
||||
nvidia.open = false; # # Se sua placa for pascal pra cima troque isso para true
|
||||
nvidia.package = config.boot.kernelPackages.nvidiaPackages.legacy_580;
|
||||
};
|
||||
|
||||
## Teste sobre o nvk nao recomendo usar
|
||||
|
||||
#services.xserver.videoDrivers = [ "nouveau" ];
|
||||
#hardware.graphics = {
|
||||
# enable = true;
|
||||
# extraPackages = with pkgs; [
|
||||
# mesa
|
||||
# ];
|
||||
#};
|
||||
|
||||
#hardware.enableRedistributableFirmware = true;
|
||||
#environment.variables = {
|
||||
# MESA_VK_DRIVER_OVERRIDE = "nvk";
|
||||
# VK_ICD_FILENAMES = "/run/opengl-driver/share/vulkan/icd.d/nouveau_icd.x86_64.json";
|
||||
#};
|
||||
}
|
||||
@@ -0,0 +1,114 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
||||
## Variaveis de ambiente contendo o aumento de cache para placas da nvidia
|
||||
environment.variables = {
|
||||
__GL_SHADER_DISK_CACHE_SIZE = "12000000000";
|
||||
VK_LAYER_PATH = "${pkgs.vulkan-validation-layers}/share/vulkan/explicit_layer.d";
|
||||
};
|
||||
|
||||
## Configuraçoes de boot para otimzar o kernel e alguns patchs para nvidia
|
||||
boot = {
|
||||
modprobeConfig.enable = true;
|
||||
kernelModules = [ "tcp_bbr" ];
|
||||
extraModprobeConfig = "options nvidia NVreg_UsePageAttributeTable=1 \
|
||||
NVreg_InitializeSystemMemoryAllocations=0 \
|
||||
NVreg_DynamicPowerManagement=0x02";
|
||||
kernel.sysctl = {
|
||||
"kernel.split_lock_mitigate" = 0;
|
||||
"kernel.nmi_watchdog" = 0;
|
||||
"net.core.netdev_max_backlog" = 4096;
|
||||
"fs.file-max" = 2097152;
|
||||
"net.ipv4.tcp_congestion_control" = "bbr";
|
||||
};
|
||||
};
|
||||
|
||||
services = {
|
||||
|
||||
earlyoom = {
|
||||
enable = true;
|
||||
freeSwapThreshold = 2;
|
||||
freeMemThreshold = 2;
|
||||
extraArgs = [
|
||||
"-g"
|
||||
"--avoid"
|
||||
"'^(X|plasma.*|konsole|kwin|wayland|gnome.*)$'"
|
||||
];
|
||||
};
|
||||
|
||||
## Otimizaçao do Udev para placas de Video da Nvidia
|
||||
udev = {
|
||||
enable = true;
|
||||
extraRules = ''
|
||||
# Enable runtime PM for NVIDIA VGA/3D controller devices on driver bind
|
||||
ACTION=="add|bind", SUBSYSTEM=="pci", DRIVERS=="nvidia", \
|
||||
ATTR{vendor}=="0x10de", ATTR{class}=="0x03[0-9]*", \
|
||||
TEST=="power/control", ATTR{power/control}="auto"
|
||||
|
||||
# Disable runtime PM for NVIDIA VGA/3D controller devices on driver unbind
|
||||
ACTION=="remove|unbind", SUBSYSTEM=="pci", DRIVERS=="nvidia", \
|
||||
ATTR{vendor}=="0x10de", ATTR{class}=="0x03[0-9]*", \
|
||||
TEST=="power/control", ATTR{power/control}="on"
|
||||
|
||||
# enable udev xiaomi
|
||||
SUBSYSTEM=="usb", ATTR{idVendor}=="2717", MODE="0666", GROUP="plugdev"
|
||||
'';
|
||||
};
|
||||
|
||||
preload-ng = {
|
||||
enable = true;
|
||||
settings = {
|
||||
cycle = 15;
|
||||
memTotal = -5;
|
||||
memFree = 70;
|
||||
memCached = 10;
|
||||
memBuffers = 50;
|
||||
minSize = 1000000;
|
||||
processes = 60;
|
||||
sortStrategy = 0;
|
||||
autoSave = 1800;
|
||||
mapPrefix = "/nix/store/;/run/current-system/;!/";
|
||||
exePrefix = "/nix/store/;/run/current-system/;!/";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.set-min-free-mem = {
|
||||
description = "Set vm.min_free_kbytes dynamically";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "local-fs.target" ];
|
||||
serviceConfig = {
|
||||
User = "root";
|
||||
RemainAfterExit = true;
|
||||
};
|
||||
script = ''
|
||||
TOTAL_MEM=$(${pkgs.gawk}/bin/awk '/MemTotal/ {printf "%.0f", $2 * 0.01}' /proc/meminfo)
|
||||
if [ -z "$TOTAL_MEM" ] || [ "$TOTAL_MEM" -eq 0 ]; then
|
||||
echo "Failed to calculate memory size" >&2
|
||||
exit 1
|
||||
fi
|
||||
${pkgs.sysctl}/bin/sysctl -w vm.min_free_kbytes=$TOTAL_MEM
|
||||
'';
|
||||
};
|
||||
|
||||
## sistema de compressao compressao brtfs
|
||||
fileSystems = {
|
||||
"/" = {
|
||||
options = [ "compress=zstd:3" ];
|
||||
};
|
||||
};
|
||||
|
||||
## confiuraçao da zram
|
||||
zramSwap = {
|
||||
enable = true;
|
||||
memoryPercent = 40;
|
||||
algorithm = "zstd";
|
||||
};
|
||||
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
||||
## tailscale
|
||||
services.tailscale = {
|
||||
enable = true;
|
||||
extraUpFlags = [
|
||||
"--exit-node-allow-lan-access=true"
|
||||
"--ssh"
|
||||
"--accept-dns=true"
|
||||
];
|
||||
};
|
||||
networking.nftables.enable = true;
|
||||
networking.firewall = {
|
||||
enable = true;
|
||||
allowedTCPPorts = [
|
||||
47984
|
||||
47989
|
||||
48910
|
||||
];
|
||||
allowedUDPPortRanges = [
|
||||
{
|
||||
from = 47998;
|
||||
to = 48000;
|
||||
}
|
||||
{
|
||||
from = 48002;
|
||||
to = 48010;
|
||||
}
|
||||
];
|
||||
trustedInterfaces = [ "tailscale0" ];
|
||||
allowedUDPPorts = [ config.services.tailscale.port ];
|
||||
};
|
||||
|
||||
## Configuraçao de Docker
|
||||
|
||||
boot.kernel.sysctl = {
|
||||
"net.ipv4.ip_unprivileged_port_start" = 53;
|
||||
"net.ipv6.conf.all.forwarding" = true;
|
||||
};
|
||||
|
||||
users.users.gui.extraGroups = [ "docker" ];
|
||||
users.groups.docker.gid = 131;
|
||||
virtualisation.docker = {
|
||||
enable = true;
|
||||
|
||||
#rootless = {
|
||||
# enable = true;
|
||||
# setSocketVariable = true;
|
||||
#};
|
||||
};
|
||||
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
services.sunshine = {
|
||||
enable = true;
|
||||
autoStart = true;
|
||||
capSysAdmin = true;
|
||||
openFirewall = true;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{ config, lib, inputs, pkgs, ... }: {
|
||||
|
||||
imports = [
|
||||
./configs/imp.nix
|
||||
./DE/impde.nix
|
||||
./Pkgs/imp_pkgs.nix
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
||||
## starship
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
settings = lib.importTOML "${config.programs.starship.package}/share/starship/presets/nerd-font-symbols.toml";
|
||||
enableFishIntegration = true;
|
||||
};
|
||||
|
||||
## Configuraçao Git
|
||||
programs.git.settings = {
|
||||
enable = true;
|
||||
user.email = "darkgui@protonmail.com";
|
||||
user.name = "DarkGui";
|
||||
credential.helper = "store";
|
||||
};
|
||||
|
||||
## Pacotes extras
|
||||
fonts.fontconfig.enable = true;
|
||||
home.packages = with pkgs; [
|
||||
|
||||
## Fish
|
||||
fishPlugins.done
|
||||
fishPlugins.fzf-fish
|
||||
fishPlugins.forgit
|
||||
fishPlugins.hydro
|
||||
fzf
|
||||
fishPlugins.grc
|
||||
grc
|
||||
|
||||
## Fontes
|
||||
nerd-fonts.jetbrains-mono
|
||||
nerd-fonts.ubuntu-mono
|
||||
nerd-fonts.ubuntu-sans
|
||||
nerd-fonts.dejavu-sans-mono
|
||||
nerd-fonts.fira-code
|
||||
nerd-fonts.overpass
|
||||
noto-fonts
|
||||
liberation_ttf
|
||||
dejavu_fonts
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
||||
imports = [
|
||||
./configs/cfhome.nix
|
||||
./pkgs/pkgs.nix
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
## pacotes home-manager
|
||||
home.packages = with pkgs; [
|
||||
|
||||
## aplicativos sociais
|
||||
telegram-desktop
|
||||
pear-desktop
|
||||
teams-for-linux
|
||||
#(discord.override {withVencord = true;})
|
||||
(discord.override { withEquicord = true; })
|
||||
jellyfin-desktop
|
||||
|
||||
## Jogos
|
||||
lutris
|
||||
faugus-launcher
|
||||
heroic
|
||||
prismlauncher
|
||||
steam
|
||||
adwsteamgtk
|
||||
ryubing
|
||||
xclicker
|
||||
#mangojuice
|
||||
goverlay
|
||||
mangohud
|
||||
protonplus
|
||||
hydralauncher
|
||||
lsfg-vk
|
||||
lsfg-vk-ui
|
||||
android-tools
|
||||
zed-editor
|
||||
nil
|
||||
nixd
|
||||
|
||||
## Utilitários do sistema e dev tools
|
||||
fastfetch
|
||||
flameshot
|
||||
#handbrake
|
||||
easyeffects
|
||||
qbittorrent
|
||||
cpu-x
|
||||
git
|
||||
btop-cuda
|
||||
vscodium
|
||||
flatpak
|
||||
wget
|
||||
kitty
|
||||
vlc
|
||||
tree
|
||||
python314
|
||||
unrar
|
||||
droidcam
|
||||
motrix
|
||||
mission-center
|
||||
nodejs
|
||||
lxappearance
|
||||
nwg-look
|
||||
#rustdesk
|
||||
anydesk
|
||||
libargon2
|
||||
openssl_oqs
|
||||
icu
|
||||
|
||||
## Dev
|
||||
godot
|
||||
|
||||
];
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user