mirror of
https://github.com/deltathetawastaken/dotfiles.git
synced 2025-12-06 07:16:37 +03:00
277 lines
7.1 KiB
Nix
277 lines
7.1 KiB
Nix
# Edit this configuration file to define what should be installed on
|
||
# your system. Help is available in the configuration.nix(5) man page
|
||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||
|
||
{ inputs, stable, unstable, config, pkgs, ... }:
|
||
|
||
{
|
||
time.timeZone = "Europe/Moscow";
|
||
i18n.defaultLocale = "en_US.UTF-8";
|
||
|
||
i18n.extraLocaleSettings = {
|
||
#LC_TIME = "ru_RU.UTF-8";
|
||
LC_ALL = "en_US.UTF-8";
|
||
};
|
||
|
||
hardware.opengl = {
|
||
enable = true;
|
||
driSupport = true;
|
||
driSupport32Bit = true;
|
||
};
|
||
|
||
nixpkgs.overlays = [
|
||
(final: prev: {
|
||
gnome = prev.gnome.overrideScope' (gnomeFinal: gnomePrev: {
|
||
mutter = gnomePrev.mutter.overrideAttrs (old: {
|
||
src = pkgs.fetchgit {
|
||
url = "https://gitlab.gnome.org/vanvugt/mutter.git";
|
||
# GNOME 45: triple-buffering-v4-45
|
||
rev = "0b896518b2028d9c4d6ea44806d093fd33793689";
|
||
sha256 = "sha256-mzNy5GPlB2qkI2KEAErJQzO//uo8yO0kPQUwvGDwR4w=";
|
||
};
|
||
});
|
||
});
|
||
})
|
||
];
|
||
|
||
environment.sessionVariables = {
|
||
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
|
||
QT_QPA_PLATFORM = "wayland";
|
||
STEAM_FORCE_DESKTOPUI_SCALING = "2";
|
||
NIXOS_OZONE_WL = "1";
|
||
};
|
||
|
||
services.dnscrypt-proxy2 = {
|
||
enable = true;
|
||
settings = {
|
||
ipv6_servers = true;
|
||
require_dnssec = true;
|
||
server_names = [ "cloudflare" ];
|
||
};
|
||
};
|
||
|
||
systemd.services.dnscrypt-proxy2.serviceConfig = {
|
||
StateDirectory = "dnscrypt-proxy";
|
||
};
|
||
|
||
networking = {
|
||
hostName = "dlaptop";
|
||
nameservers = [ "127.0.0.1" "::1" ];
|
||
networkmanager.dns = "none";
|
||
networkmanager.enable = true;
|
||
firewall = {
|
||
enable = false;
|
||
};
|
||
};
|
||
|
||
security = {
|
||
sudo.wheelNeedsPassword = false;
|
||
wrappers = {
|
||
firejail = {
|
||
source = "${pkgs.firejail.out}/bin/firejail";
|
||
};
|
||
};
|
||
pam.loginLimits = [{
|
||
domain = "@users";
|
||
item = "rtprio";
|
||
type = "-";
|
||
value = 1;
|
||
}];
|
||
pam.services.swaylock = { };
|
||
rtkit.enable = true;
|
||
};
|
||
|
||
powerManagement.enable = true;
|
||
services.power-profiles-daemon.enable = false;
|
||
services.tlp = {
|
||
enable = true;
|
||
settings = {
|
||
CPU_SCALING_GOVERNOR_ON_AC = "powersave";
|
||
CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
|
||
|
||
CPU_ENERGY_PERF_POLICY_ON_BAT = "power";
|
||
CPU_ENERGY_PERF_POLICY_ON_AC = "balance_performance";
|
||
|
||
CPU_SCALING_MAX_FREQ_ON_AC = 6600000;
|
||
CPU_SCALING_MAX_FREQ_ON_BAT = 1600000;
|
||
|
||
PLATFORM_PROFILE_ON_AC = "balanced";
|
||
PLATFORM_PROFILE_ON_BAT = "low-power";
|
||
|
||
#Trubo boost control
|
||
CPU_BOOST_ON_AC = 1;
|
||
CPU_BOOST_ON_BAT = 0;
|
||
CPU_HWP_DYN_BOOST_ON_AC = 1;
|
||
CPU_HWP_DYN_BOOST_ON_BAT = 0;
|
||
|
||
#Optional helps save long term battery health
|
||
#START_CHARGE_THRESH_BAT0 = 40; # 40 and bellow it starts to charge
|
||
#STOP_CHARGE_THRESH_BAT0 = 80; # 80 and above it stops charging
|
||
|
||
};
|
||
};
|
||
|
||
services.xserver = {
|
||
enable = true;
|
||
videoDrivers = [ "modesetting" ];
|
||
displayManager = {
|
||
gdm.enable = true;
|
||
autoLogin = {
|
||
enable = false;
|
||
user = "delta";
|
||
};
|
||
};
|
||
desktopManager.gnome.enable = true;
|
||
layout = "us";
|
||
xkbVariant = "";
|
||
excludePackages = [ pkgs.xterm ];
|
||
};
|
||
|
||
services.gnome = {
|
||
gnome-browser-connector.enable = false;
|
||
gnome-initial-setup.enable = false;
|
||
gnome-online-accounts.enable = false;
|
||
};
|
||
|
||
services.flatpak.enable = true;
|
||
services.printing.enable = true;
|
||
|
||
services.pipewire = {
|
||
enable = true;
|
||
wireplumber.enable = true;
|
||
alsa.enable = true;
|
||
alsa.support32Bit = true;
|
||
pulse.enable = true;
|
||
};
|
||
|
||
sound = {
|
||
enable = true;
|
||
extraConfig = "\n";
|
||
};
|
||
hardware.pulseaudio.enable = false;
|
||
|
||
services.tailscale.enable = true;
|
||
services.blueman.enable = true;
|
||
services.tumbler.enable = true;
|
||
services.gvfs.enable = true;
|
||
services.udev.packages = [ pkgs.gnome.gnome-settings-daemon ];
|
||
|
||
programs.thunar.enable = true;
|
||
programs.firejail.enable = true;
|
||
programs.hyprland.enable = true;
|
||
programs.xfconf.enable = true;
|
||
programs.dconf.enable = true;
|
||
programs.virt-manager.enable = true;
|
||
programs.steam.enable = true;
|
||
programs.gamemode.enable = true;
|
||
programs.thunar.plugins = with pkgs.xfce; [
|
||
thunar-archive-plugin
|
||
thunar-volman
|
||
];
|
||
|
||
xdg.ausl.extraPortals = with pkgs; [ xdg-desktop-ausl-hyprland ];
|
||
|
||
environment = {
|
||
gnome.excludePackages = [
|
||
#pkgs.gnome-connections
|
||
#pkgs.gnome-console
|
||
pkgs.gnome-text-editor
|
||
pkgs.gnome-tour
|
||
#pkgs.gnome.adwaita-icon-theme
|
||
pkgs.gnome.epiphany # browser
|
||
#pkgs.gnome.evince # pdf + office files
|
||
#pkgs.gnome.file-roller #archive explorer
|
||
pkgs.gnome.geary
|
||
pkgs.gnome.gnome-backgrounds
|
||
pkgs.gnome.gnome-calendar
|
||
pkgs.gnome.gnome-characters
|
||
pkgs.gnome.gnome-clocks
|
||
pkgs.gnome.gnome-contacts
|
||
pkgs.gnome.gnome-font-viewer
|
||
pkgs.gnome.gnome-logs
|
||
pkgs.gnome.gnome-maps
|
||
pkgs.gnome.gnome-music
|
||
#pkgs.gnome.gnome-themes-extra
|
||
pkgs.gnome.gnome-weather
|
||
#pkgs.gnome.nautilus
|
||
pkgs.gnome.simple-scan
|
||
pkgs.gnome.sushi
|
||
pkgs.gnome.totem
|
||
pkgs.gnome.yelp
|
||
pkgs.orca
|
||
];
|
||
};
|
||
|
||
virtualisation = {
|
||
podman = {
|
||
enable = true;
|
||
dockerCompat = true;
|
||
};
|
||
spiceUSBRedirection.enable = true;
|
||
libvirtd.enable = true;
|
||
};
|
||
|
||
environment.systemPackages = with pkgs; [
|
||
gnomeExtensions.appindicator
|
||
gnomeExtensions.activate-window-by-title
|
||
gnomeExtensions.unite
|
||
gnomeExtensions.tailscale-qs
|
||
gnomeExtensions.gsconnect
|
||
gnomeExtensions.clipboard-indicator
|
||
gnomeExtensions.tiling-assistant
|
||
#gnomeExtensions.wintile-windows-10-window-tiling-for-gnome
|
||
gnomeExtensions.advanced-alttab-window-switcher
|
||
gnome.gnome-tweaks
|
||
mojave-gtk-theme
|
||
adw-gtk3
|
||
any-nix-shell
|
||
openconnect
|
||
oath-toolkit
|
||
expect
|
||
ffmpegthumbnailer
|
||
webp-pixbuf-loader
|
||
freetype
|
||
poppler
|
||
f3d
|
||
nufraw-thumbnailer
|
||
unstable.curl
|
||
#firefox_nightly
|
||
#inputs.anyrun.packages.${pkgs.system}.anyrun
|
||
inputs.telegram-desktop-patched.packages.${pkgs.system}.default
|
||
];
|
||
|
||
users.users.socks = {
|
||
group = "socks";
|
||
isSystemUser = true;
|
||
};
|
||
users.groups.socks = { };
|
||
|
||
systemd.services.singboxaus = {
|
||
enable = true;
|
||
description = "avoid censorship";
|
||
wantedBy = [ "multi-user.target" ];
|
||
serviceConfig = {
|
||
Restart = "on-failure";
|
||
RestartSec = "15";
|
||
User = "socks";
|
||
Group = "socks";
|
||
};
|
||
script = "sing-box run -c /etc/sing-box/config.json";
|
||
path = with unstable; [
|
||
shadowsocks-libev
|
||
shadowsocks-v2ray-plugin
|
||
sing-box
|
||
];
|
||
};
|
||
|
||
systemd.services.NetworkManager-wait-online.enable = false;
|
||
|
||
# This value determines the NixOS release from which the default
|
||
# settings for stateful data, like file locations and database versions
|
||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||
# this value at the release version of the first install of this system.
|
||
# Before changing this value read the documentation for this option
|
||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||
system.stateVersion = "23.11"; # Did you read the comment?
|
||
}
|