dotfiles/system/syl/configuration.nix

277 lines
6.8 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{ config, pkgs, callPackage, ... }:
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
];
nix = {
extraOptions = "experimental-features = nix-command flakes";
package = pkgs.nixFlakes;
};
# Use the systemd-boot EFI boot loader.
boot.kernelPackages = pkgs.linuxPackages_zen;
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
nixpkgs.config.allowUnfree = true;
boot.kernelParams = [ "mem_sleep_default=deep" ];
networking.hostName = "syl"; # Define your hostname.
networking.networkmanager.enable = true;
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
# Set your time zone.
time.timeZone = "America/Chicago";
# The global useDHCP flag is deprecated, therefore explicitly set to false here.
# Per-interface useDHCP will be mandatory in the future, so this generated config
# replicates the default behaviour.
networking.useDHCP = false;
networking.interfaces.wlp170s0.useDHCP = true;
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
# Set default shell to be dash for speed
# environment.binsh = "${pkgs.dash}/bin/dash";
environment.variables = {
EDITOR = "emacsclient -t";
VISUAL = "emacsclient -c";
};
hardware.uinput.enable = true;
nixpkgs.config.packageOverrides = pkgs: {
vaapiIntel = pkgs.vaapiIntel.override { enableHybridCodec = true; };
};
hardware.opengl = {
enable = true;
extraPackages = with pkgs; [
intel-media-driver # LIBVA_DRIVER_NAME=iHD
vaapiIntel # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium)
vaapiVdpau
libvdpau-va-gl
];
};
# Enable the X11 windowing system.
services.xserver = {
enable = true;
windowManager.awesome = {
enable = true;
package = pkgs.myAwesome;
};
};
# Enable the Plasma 5 Desktop Environment.
services.xserver.displayManager.sddm.enable = true;
services.xserver.desktopManager.plasma5.enable = true;
# Configure keymap in X11
services.xserver.layout = "us";
# services.xserver.xkbOptions = "eurosign:e";
# Enable CUPS to print documents.
services.printing.enable = true;
services.printing.drivers = [ pkgs.gutenprint pkgs.gutenprintBin pkgs.hplipWithPlugin ];
# Enabel fingerprint
services.fprintd.enable = true;
# Enable sound.
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
wireplumber.enable = true;
};
# Needed for some pipewire progs
programs.dconf.enable = true;
# Turn on flatpak
services.flatpak.enable = true;
# Some other things
services.thermald.enable = true;
services.tlp = {
enable = true;
settings = {
CPU_SCALING_GOVERNOR_ON_AC="performance";
CPU_SCALING_GOVERNOR_ON_BAT="powersave";
CPU_ENERGY_PERF_POLICY_ON_AC="balance_performance";
CPU_ENERGY_PERF_POLICY_ON_BAT="power";
SCHED_POWERSAVE_ON_AC=0;
SCHED_POWERSAVE_ON_BAT=1;
START_CHARGE_THRESH_BAT1=70;
STOP_CHARGE_THRESH_BAT1=80;
USB_ALLOWLIST="32ac:0002";
};
};
services.usbmuxd.enable = true;
services.fstrim.enable = true;
# Enable touchpad support (enabled default in most desktopManager).
services.xserver.libinput.enable = true;
programs.fish.enable = true;
programs.zsh.enable = true;
# Define a user account. Don't forget to set a password with passwd.
users.users.chris = {
isNormalUser = true;
extraGroups = [ "wheel" "networkmanager" "input" "uinput" ];
};
programs.partition-manager.enable = true;
programs.kdeconnect.enable = true;
security.pam.services.kwallet = {
name = "kwallet";
enableKwallet = true;
};
security.pam.services.sddm.enableKwallet = true;
virtualisation.waydroid.enable = true;
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
vim
wget
killall
discover
lightly-qt
pinentry
pinentry-qt
unzip
unrar
p7zip
zip
gzip
usbutils
binutils
hunspell
hunspellDicts.en_US
git
openssh
samba
ark
dash
kget
krename
kwallet-pam
plasma5Packages.kwallet
libimobiledevice
sddm-kcm
ydotool
bottles
exa
mpv
yt-dlp
rofi-emoji
nerdfonts
latte-dock
bat
libsForQt5.bismuth
libnotify
rofi-wayland
ripgrep
bc
sysstat
procs
papirus-icon-theme
phinger-cursors
plasma-hud
kde-cli-tools
macchina
meson
ninja
gnumake
gcc
gdb
clang
cmake
extra-cmake-modules
gzip
htop
btop
firefox
kate
kdialog
openlp
libreoffice-fresh
vlc
neochat
haskellPackages.greenclip
pulsemixer
any-nix-shell
wtype
spotdl
kdenlive
ffmpeg
neofetch
xdotool
fennel
];
# EMACS
services.emacs.package = with pkgs; ((emacsPackagesFor emacsPgtkNativeComp).emacsWithPackages (epkgs: [ epkgs.vterm epkgs.magit epkgs.pdf-tools ]));
nixpkgs.overlays = [
(import (builtins.fetchTarball {
url = https://github.com/nix-community/emacs-overlay/archive/master.tar.gz;
sha256 = "1pd14gigm5bznzd8k88dq9scicw1zqknm87bnqmd0z556g9ir60f";
}))
(self: super:
{
myAwesome = super.awesome.overrideAttrs (old: rec {
pname = "myAwesome";
version = "git-20220508-c539e0e";
src = super.fetchFromGitHub {
owner = "awesomeWM";
repo = "awesome";
rev = "c539e0e4350a42f813952fc28dd8490f42d934b3";
sha256 = "EDAL7NnLF2BiVI8DAlEciiZtDmwXOzCPypGTrlN/OoQ=";
};
});
}
)
];
services.emacs.enable = true;
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
# programs.gnupg.agent = {
# enable = true;
# enableSSHSupport = true;
# };
# List services that you want to enable:
# Enable the OpenSSH daemon.
# services.openssh.enable = true;
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.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. Its 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 = "21.11"; # Did you read the comment?
}