@@ -0,0 +1,228 @@
{ config , pkgs , lib , . . . }:
let
unstable = import <nixos-unstable> { config . allowUnfree = true ; } ;
in
{
imports =
[ # Include the results of the hardware scan.
/etc/nixos/hardware-configuration.nix
# ./vscode.nix
../../configs/gui.nix
../../configs/virtualisation.nix
] ;
# Use the systemd-boot EFI boot loader.
fileSystems . " / " . options = [ " n o a t i m e " " d i s c a r d " ] ;
fileSystems . " / b o o t " . options = [ " n o a t i m e " " d i s c a r d " ] ;
fileSystems . " / m n t / s e c o n d " = {
device = " / d e v / d i s k / b y - u u i d / 4 9 c 0 4 c 9 1 - 7 5 2 d - 4 d f f - b 4 d 9 - 4 0 a 0 b 9 a 7 b f 7 c " ;
fsType = " e x t 4 " ;
options = [ " n o a t i m e " " d i s c a r d " ] ;
} ;
boot . loader . grub . enable = true ;
boot . loader . grub . version = 2 ;
boot . loader . grub . device = " n o d e v " ;
boot . loader . grub . efiSupport = true ;
boot . loader . efi . canTouchEfiVariables = true ;
boot . loader . grub . gfxmodeEfi = " 1 0 2 4 x 7 6 8 " ;
boot . initrd . kernelModules = [ " a m d g p u " ] ;
boot . plymouth . enable = true ;
boot . extraModulePackages = with pkgs . linuxPackages ; [ it87 ] ;
boot . kernelModules = [ " i t 8 7 " ] ;
boot . tmpOnTmpfs = true ;
networking . hostName = " d e s k t o p " ; # Define your hostname.
# Set your time zone.
time . timeZone = " E u r o p e / B e r l i n " ;
# 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 . enp8s0 . useDHCP = true ;
networking . interfaces . wlp6s0 . useDHCP = true ;
console = {
font = " l a t a r c y r h e b - s u n 3 2 " ;
keyMap = " u s " ;
} ;
hardware . fancontrol . enable = true ;
hardware . fancontrol . config = ''
I N T E R V A L = 1 0
D E V P A T H = h w m o n 2 = d e v i c e s / p l a t f o r m / i t 8 7 . 6 5 6
D E V N A M E = h w m o n 2 = i t 8 6 6 5
F C T E M P S = h w m o n 2 / p w m 3 = h w m o n 2 / t e m p 1 _ i n p u t h w m o n 2 / p w m 2 = h w m o n 2 / t e m p 1 _ i n p u t h w m o n 2 / p w m 1 = h w m o n 2 / t e m p 1 _ i n p u t
F C F A N S = h w m o n 2 / p w m 3 = h w m o n 2 / f a n 2 _ i n p u t h w m o n 2 / p w m 2 = h w m o n 2 / f a n 1 _ i n p u t h w m o n 2 / p w m 1 =
M I N T E M P = h w m o n 2 / p w m 3 = 6 0 h w m o n 2 / p w m 2 = 6 0 h w m o n 2 / p w m 1 = 6 0
M A X T E M P = h w m o n 2 / p w m 3 = 7 5 h w m o n 2 / p w m 2 = 7 5 h w m o n 2 / p w m 1 = 7 5
M I N S T A R T = h w m o n 2 / p w m 3 = 5 1 h w m o n 2 / p w m 2 = 5 1 h w m o n 2 / p w m 1 = 5 1
M I N S T O P = h w m o n 2 / p w m 3 = 5 1 h w m o n 2 / p w m 2 = 5 1 h w m o n 2 / p w m 1 = 5 1
M I N P W M = h w m o n 2 / p w m 1 = 5 1 h w m o n 2 / p w m 2 = 5 1 h w m o n 2 / p w m 3 = 5 1
M A X P W M = h w m o n 2 / p w m 3 = 1 2 7 h w m o n 2 / p w m 2 = 2 0 4
'' ;
hardware . cpu . amd . updateMicrocode = true ;
hardware . opengl . extraPackages = with pkgs ; [
rocm-opencl-icd
rocm-opencl-runtime
amdvlk
] ;
hardware . opengl = {
driSupport = true ;
driSupport32Bit = true ;
} ;
# Enable the X11 windowing system.
services . xserver . enable = true ;
services . xserver . desktopManager . pantheon . enable = true ;
services . xserver . desktopManager . pantheon . extraWingpanelIndicators = [ pkgs . pantheon . wingpanel-indicator-nightlight ] ;
services . xserver . videoDrivers = [ " a m d g p u " ] ;
fonts . fonts = with pkgs ; [
open-sans
roboto-mono
noto-fonts
noto-fonts-cjk
noto-fonts-emoji
liberation_ttf
fira-code
fira-code-symbols
mplus-outline-fonts
dina-font
proggyfonts
] ;
# Enable CUPS to print documents.
services . printing . enable = true ;
# Enable sound.
sound . enable = true ;
hardware . pulseaudio . enable = true ;
hardware . pulseaudio . support32Bit = true ;
# Define a user account. Don't forget to set a password with ‘ passwd’ .
users = {
defaultUserShell = pkgs . zsh ;
users . alex = {
isNormalUser = true ;
extraGroups = [ " w h e e l " " d o c k e r " " n e t w o r k m a n a g e r " " l i b v i r t d " ] ;
} ;
} ;
nixpkgs . config . chromium . commandLineArgs = " - - e n a b l e - f e a t u r e s = W e b U I D a r k M o d e , N a t i v e N o t i f i c a t i o n s , V a a p i V i d e o D e c o d e r - - i g n o r e - g p u - b l o c k l i s t - - u s e - g l = d e s k t o p - - f o r c e - d a r k - m o d e - - d i s k - c a c h e - d i r = / t m p / c a c h e " ;
programs . chromium = {
enable = true ;
extensions = [
" c b n i p b d p g c n c a g h p h l j j i c f g m k o n f l e e " # Axel Springer Blocker
" c j p a l h d l n b p a f i a m e j d n h c p h j b k e i a g m " # uBlock Origin
" m n j g g c d m j o c b b b h a e p d h c h n c a h n b g o n e " # SponsorBlock for YouTube
" h j d o p l c n n d g i b l o o c c e n c g c g g c o i h i g g " # Terms of Service; Didn’ t Read
" g c b o m m k c l m c l p c h l l f j e k c d o n p m e j b d p " # HTTPS Everywhere
" o b o o n a k e m o f p a l c g g h o c f o a d o f i d j k k k " # KeePassXC-Browser
" f p l o i o n m j g e c l b k e m i p m k o g o a o h c d b i g " # Page load time
" e g n j h c i a i e e i i o h k n c h a k c o d b p g j n c h h " # Tab Wrangler
" f n a i c d f f f l n o f j p p b a g i b e o e d n h n b j h g " # Floccus bookmarks
] ;
extraOpts = {
" B r o w s e r S i g n i n " = 0 ;
" S y n c D i s a b l e d " = true ;
" P a s s w o r d M a n a g e r E n a b l e d " = false ;
" A u t o f i l l A d d r e s s E n a b l e d " = true ;
" A u t o f i l l C r e d i t C a r d E n a b l e d " = false ;
" B u i l t I n D n s C l i e n t E n a b l e d " = false ;
" M e t r i c s R e p o r t i n g E n a b l e d " = true ;
" S e a r c h S u g g e s t E n a b l e d " = false ;
" A l t e r n a t e E r r o r P a g e s E n a b l e d " = false ;
" U r l K e y e d A n o n y m i z e d D a t a C o l l e c t i o n E n a b l e d " = false ;
" S p e l l c h e c k E n a b l e d " = true ;
" S p e l l c h e c k L a n g u a g e " = [
" d e "
" e n - U S "
] ;
" C l o u d P r i n t S u b m i t E n a b l e d " = false ;
} ;
} ;
programs . zsh = {
enable = true ;
enableCompletion = true ;
autosuggestions . enable = true ;
syntaxHighlighting . enable = true ;
ohMyZsh = {
enable = true ;
theme = " a g n o s t e r " ;
plugins = [
" c p "
" c o m m o n - a l i a s e s "
" d o c k e r "
" s y s t e m d "
" w d "
" k u b e c t l "
" g i t "
] ;
} ;
} ;
nixpkgs . config . allowUnfree = true ;
environment . systemPackages = with pkgs ; [
ack
dfc
git
glances
# home-manager
htop
ncdu
zsh
ruby
pstree
pciutils
borgbackup
bpytop
broot
bwm_ng
nodejs
sshfs
tealdeer
tree
lm_sensors
] ;
# 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. 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 = " 2 1 . 0 5 " ; # Did you read the comment?
}