2024-04-04 02:50:30 -07:00
{ pkgs , . . . }: {
2023-07-17 16:41:11 -07:00
environment . systemPackages = with pkgs ; [
2024-04-09 10:51:12 -07:00
# fw-ectool
framework-tool
2024-04-04 02:50:30 -07:00
nvtopPackages . amd
2023-07-17 16:41:11 -07:00
] ;
2024-04-04 02:50:30 -07:00
services . power-profiles-daemon . enable = true ;
2024-03-18 14:50:43 -07:00
services . fwupd . enable = true ;
services . fprintd . enable = true ;
2023-07-18 11:12:40 -07:00
2024-04-04 02:50:30 -07:00
# stop using this: https://community.frame.work/t/tracking-ppd-v-tlp-for-amd-ryzen-7040/39423/9?u=ghett_klapson
# powerManagement.powertop.enable = false;
# systemd.services.powertop = {
# wantedBy = ["multi-user.target"];
# after = ["multi-user.target"];
# path = [pkgs.kmod];
# serviceConfig = {
# Type = "oneshot";
# RemainAfterExit = "yes";
# ExecStart = "${pkgs.powertop}/bin/powertop --auto-tune";
# ExecStartPost = "/bin/sh -c 'for f in $(grep -l \"Keyboard\\|Preonic\\|Razer\\|Macropad\" /sys/bus/usb/devices/*/product | sed \"s/product/power\\\\/control/\"); do echo on >| '$f'; done'";
# };
# };
2024-03-20 17:29:48 -07:00
2024-03-24 17:08:49 -07:00
environment . etc = {
" l i b i n p u t / l o c a l - o v e r r i d e s . q u i r k s " . text = "
# MatchUdevType=touchpad
# MatchDMIModalias=dmi:*svnFramework:pnLaptop*
# AttrEventCode=-BTN_RIGHT
2024-03-20 17:29:48 -07:00
2024-03-24 17:08:49 -07:00
[ Framework Laptop 16 Keyboard Module ]
MatchName = Framework Laptop 16 Keyboard Module *
# MatchUdevType=keyboard
# MatchDMIModalias=dmi:*svnFramework:pnLaptop16*
AttrKeyboardIntegration = internal " ;
} ;
2024-03-20 17:29:48 -07:00
2024-03-29 12:51:49 -07:00
services . snapper . configs = {
home = {
SUBVOLUME = " / h o m e " ;
ALLOW_USERS = [ " t a o " ] ;
TIMELINE_CREATE = true ;
TIMELINE_CLEANUP = true ;
TIMELINE_LIMIT_HOURLY = " 5 " ;
TIMELINE_LIMIT_DAILY = " 7 " ;
} ;
} ;
services . snapper . snapshotInterval = " * : 0 / 5 " ;
2024-03-18 14:50:43 -07:00
services . xserver . displayManager . defaultSession = " p l a s m a " ;
2024-04-12 00:26:20 -07:00
services . displayManager . sddm . wayland . enable = true ;
2024-03-18 14:50:43 -07:00
2024-04-01 16:36:43 -07:00
services . udev . extraRules = ''
ACTION = = " a d d " , SUBSYSTEM = = " b a c k l i g h t " , RUN + = " ${ pkgs . coreutils } / b i n / c h g r p v i d e o / s y s / c l a s s / b a c k l i g h t / % k / b r i g h t n e s s "
ACTION = = " a d d " , SUBSYSTEM = = " b a c k l i g h t " , RUN + = " ${ pkgs . coreutils } / b i n / c h m o d g + w / s y s / c l a s s / b a c k l i g h t / % k / b r i g h t n e s s "
'' ;
2024-03-24 16:39:32 -07:00
boot . kernelPackages = pkgs . linuxPackages_latest ;
boot . initrd . availableKernelModules = [
" n v m e "
" s d _ m o d "
" t h u n d e r b o l t "
" u s b _ s t o r a g e "
" x h c i _ p c i "
" u s b h i d "
" u a s "
] ;
boot . kernelParams = [
# "mem_sleep_default=deep"
# "nvme.noacpi=1"
2024-04-04 02:50:30 -07:00
" a m d g p u . a b m l e v e l = 1 "
2024-03-24 16:39:32 -07:00
] ;
boot . kernelModules = [ " k v m - a m d " ] ;
2024-04-04 02:50:30 -07:00
# boot.extraModulePackages = [ ];
2024-03-24 16:39:32 -07:00
powerManagement . cpuFreqGovernor = " p o w e r s a v e " ;
systemd . sleep . extraConfig = " H i b e r n a t e D e l a y S e c = 1 8 0 m " ;
2024-03-19 18:12:55 -07:00
fileSystems . " / h o m e / t a o / g a m e s " = {
device = " / d e v / d i s k / b y - u u i d / d 9 7 a 8 1 d c - 6 6 9 c - 4 1 d 1 - 9 1 2 b - 8 2 9 f 8 8 f d 6 f 6 9 " ;
fsType = " b t r f s " ;
options = [ " s u b v o l = / h o m e / t a o / g a m e s " " n o s u i d " " n o d e v " " n o a t i m e " " c o m p r e s s - f o r c e = z s t d : 3 " " u s e r s " " r w " " e x e c " " d i s c a r d = a s y n c " ] ;
} ;
2024-03-18 14:50:43 -07:00
fileSystems . " / h o m e " = {
2024-03-19 18:12:55 -07:00
device = " / d e v / d i s k / b y - u u i d / d 9 7 a 8 1 d c - 6 6 9 c - 4 1 d 1 - 9 1 2 b - 8 2 9 f 8 8 f d 6 f 6 9 " ;
2024-03-18 14:50:43 -07:00
fsType = " b t r f s " ;
2024-03-18 22:45:19 -07:00
options = [ " s u b v o l = h o m e " " n o a t i m e " " c o m p r e s s - f o r c e = z s t d : 3 " " d i s c a r d = a s y n c " ] ;
2024-03-18 14:50:43 -07:00
} ;
fileSystems . " / " = {
2024-03-19 18:12:55 -07:00
device = " / d e v / d i s k / b y - u u i d / d 9 7 a 8 1 d c - 6 6 9 c - 4 1 d 1 - 9 1 2 b - 8 2 9 f 8 8 f d 6 f 6 9 " ;
2024-03-18 14:50:43 -07:00
fsType = " b t r f s " ;
2024-03-19 18:12:55 -07:00
options = [ " n o a t i m e " " c o m p r e s s - f o r c e = z s t d : 3 " " d i s c a r d = a s y n c " ] ;
} ;
fileSystems . " / b o o t " = {
device = " / d e v / d i s k / b y - u u i d / 8 E 2 8 - E 5 3 F " ;
fsType = " v f a t " ;
2024-03-18 14:50:43 -07:00
} ;
2024-03-18 22:45:19 -07:00
swapDevices = [ { device = " / d e v / d i s k / b y - u u i d / 3 6 2 1 6 5 2 1 - d b 4 6 - 4 b b 0 - 8 9 9 4 - 3 8 a 3 6 d 5 c 4 5 2 8 " ; } ] ;
2024-03-18 14:50:43 -07:00
2023-07-17 16:41:11 -07:00
networking . hostName = " N O l a p t o p " ;
2023-07-11 00:38:39 -07:00
}