Split t490 configuration

This commit is contained in:
Oliver Davies 2025-01-05 13:56:55 +00:00
parent 96bbb1934a
commit 8dd338d8d5
10 changed files with 140 additions and 105 deletions

View file

@ -25,62 +25,17 @@
};
};
services.throttled.enable = true;
services.thermald.enable = true;
services.power-profiles-daemon.enable = false;
systemd.extraConfig = ''
DefaultTimeoutStopSec=10s
'';
networking.networkmanager.enable = true;
services.xserver = {
enable = true;
xkb = {
layout = "gb";
variant = "";
};
};
services.avahi.enable = true;
services.avahi.nssmdns4 = true;
services.avahi.openFirewall = true;
services.printing.enable = true;
hardware.pulseaudio.enable = false;
hardware.bluetooth.enable = true;
security = {
polkit.enable = true;
rtkit.enable = true;
};
services.pipewire = {
enable = true;
alsa = {
enable = true;
support32Bit = true;
};
pulse.enable = true;
};
users.users.${username} = {
extraGroups = [ "media" ];
packages = with pkgs; [
android-tools
via
];
};
users.groups.media = { };
environment.systemPackages = with pkgs; [
gtypist
rclone
@ -90,10 +45,6 @@
ytfzf
];
services.openssh.enable = true;
programs.dconf.enable = true;
zramSwap.enable = true;
nix = {
@ -107,67 +58,13 @@
settings = {
auto-optimise-store = true;
experimental-features = [
"nix-command"
"flakes"
];
warn-dirty = false;
};
};
# Make Caps lock work as an Escape key on press and Ctrl on hold.
services.interception-tools =
let
dfkConfig = pkgs.writeText "dual-function-keys.yaml" ''
MAPPINGS:
- KEY: KEY_CAPSLOCK
TAP: KEY_ESC
HOLD: KEY_LEFTCTRL
'';
in
{
enable = true;
plugins = pkgs.lib.mkForce [ pkgs.interception-tools-plugins.dual-function-keys ];
udevmonConfig = ''
- JOB: "${pkgs.interception-tools}/bin/intercept -g $DEVNODE | ${pkgs.interception-tools-plugins.dual-function-keys}/bin/dual-function-keys -c ${dfkConfig} | ${pkgs.interception-tools}/bin/uinput -d $DEVNODE"
DEVICE:
NAME: "AT Translated Set 2 keyboard"
EVENTS:
EV_KEY: [[KEY_CAPSLOCK, KEY_ESC, KEY_LEFTCTRL]]
'';
};
services.gvfs.enable = true;
programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;
pinentryPackage = pkgs.pinentry-qt;
};
programs.firefox = {
enable = true;
languagePacks = [ "en-GB" ];
preferences = {
"intl.accept_languages" = "en-GB, en";
"intl.regional_prefs.use_os_locales" = true;
};
};
services.blueman.enable = true;
services.cron = {
enable = true;
systemCronJobs = [ "* * * * * opdavies /home/${username}/.local/bin/notify-battery" ];
};
services.auto-cpufreq.enable = true;
services.udev = {
enable = true;
extraRules = ''
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0660", GROUP="users", TAG+="uaccess", TAG+="udev-acl"
'';
};
}

View file

@ -4,6 +4,10 @@
../../users/opdavies
./configuration.nix
./hardware.nix
./programs.nix
./services
./users.nix
];
features = {

View file

@ -0,0 +1,7 @@
{
hardware = {
bluetooth.enable = true;
pulseaudio.enable = false;
};
}

View file

@ -0,0 +1,22 @@
{ pkgs, ... }:
{
programs.dconf.enable = true;
programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;
pinentryPackage = pkgs.pinentry-qt;
};
programs.firefox = {
enable = true;
languagePacks = [ "en-GB" ];
preferences = {
"intl.accept_languages" = "en-GB, en";
"intl.regional_prefs.use_os_locales" = true;
};
};
}

View file

@ -0,0 +1,35 @@
{ username, ... }:
{
imports = [
./interception-tools.nix
./sound.nix
./xserver.nix
./udev.nix
];
services = {
auto-cpufreq.enable = true;
avahi = {
enable = true;
nssmdns4 = true;
openFirewall = true;
};
blueman.enable = true;
cron = {
enable = true;
systemCronJobs = [ "* * * * * opdavies /home/${username}/.local/bin/notify-battery" ];
};
gvfs.enable = true;
openssh.enable = true;
power-profiles-daemon.enable = false;
printing.enable = true;
throttled.enable = true;
thermald.enable = true;
};
}

View file

@ -0,0 +1,25 @@
{ pkgs, ... }:
{
# Make Caps lock work as an Escape key on press and Ctrl on hold.
services.interception-tools =
let
dfkConfig = pkgs.writeText "dual-function-keys.yaml" ''
MAPPINGS:
- KEY: KEY_CAPSLOCK
TAP: KEY_ESC
HOLD: KEY_LEFTCTRL
'';
in
{
enable = true;
plugins = pkgs.lib.mkForce [ pkgs.interception-tools-plugins.dual-function-keys ];
udevmonConfig = ''
- JOB: "${pkgs.interception-tools}/bin/intercept -g $DEVNODE | ${pkgs.interception-tools-plugins.dual-function-keys}/bin/dual-function-keys -c ${dfkConfig} | ${pkgs.interception-tools}/bin/uinput -d $DEVNODE"
DEVICE:
NAME: "AT Translated Set 2 keyboard"
EVENTS:
EV_KEY: [[KEY_CAPSLOCK, KEY_ESC, KEY_LEFTCTRL]]
'';
};
}

View file

@ -0,0 +1,12 @@
{
services.pipewire = {
enable = true;
alsa = {
enable = true;
support32Bit = true;
};
pulse.enable = true;
};
}

View file

@ -0,0 +1,9 @@
{
services.udev = {
enable = true;
extraRules = ''
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0660", GROUP="users", TAG+="uaccess", TAG+="udev-acl"
'';
};
}

View file

@ -0,0 +1,10 @@
{
services.xserver = {
enable = true;
xkb = {
layout = "gb";
variant = "";
};
};
}

14
nix/hosts/t490/users.nix Normal file
View file

@ -0,0 +1,14 @@
{ pkgs, username, ... }:
{
users.users.${username} = {
extraGroups = [ "media" ];
packages = with pkgs; [
android-tools
via
];
};
users.groups.media = { };
}