This commit is contained in:
Martin Benonisen 2024-12-04 16:15:54 +01:00
parent 9e6943c72d
commit 977e20f19f
Signed by: mbeno
SSH Key Fingerprint: SHA256:iAzOA1WUAxocdh/WRWXcSg5nw2dJ1aDCvPuT+3ZjkwI
12 changed files with 135 additions and 188 deletions

12
flake.lock generated
View File

@ -7,11 +7,11 @@
]
},
"locked": {
"lastModified": 1733045511,
"narHash": "sha256-n8AldXJRNVMm2UZ6yN0HwVxlARY2Cm/uhdOw76tQ0OI=",
"lastModified": 1733317578,
"narHash": "sha256-anN/LcP5IuqEARvhPETg1vnbyG3IQ0wdvSAYEJfIQzA=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "4964f3c6fc17ae4578e762d3dc86b10fe890860e",
"rev": "ad48eb25cd0b00ce730da00fa1f8e6e6c27b397d",
"type": "github"
},
"original": {
@ -23,11 +23,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1732837521,
"narHash": "sha256-jNRNr49UiuIwaarqijgdTR2qLPifxsVhlJrKzQ8XUIE=",
"lastModified": 1733212471,
"narHash": "sha256-M1+uCoV5igihRfcUKrr1riygbe73/dzNnzPsmaLCmpo=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "970e93b9f82e2a0f3675757eb0bfc73297cc6370",
"rev": "55d15ad12a74eb7d4646254e13638ad0c4128776",
"type": "github"
},
"original": {

View File

@ -1 +1 @@
{ imports = [ ./users.nix ./services.nix ./hardware.nix ./fonts.nix ./security.nix ./programs.nix ]; }
{ imports = [ ./users.nix ./services ./hardware.nix ./fonts.nix ./security.nix ./programs.nix ]; }

View File

@ -8,6 +8,10 @@
hardware = {
enableRedistributableFirmware = true;
cpu.intel.updateMicrocode = true;
pulseaudio = {
enable =true;
support32Bit = true;
};
graphics =
{
enable = true;

View File

@ -56,46 +56,7 @@
bottles
vkd3d-proton
vk-bootstrap
(lutris.override {
steamSupport = true;
extraLibraries = pkgs: [
liboggz
libgudev
speex
libogg
flac
graphene
libvpx
];
extraPkgs = pkgs: [
libvpx
libogg
liboggz
flac
graphene
gst_all_1.gstreamer
# Common plugins like "filesrc" to combine within e.g. gst-launch
gst_all_1.gst-plugins-base
# Specialized plugins separated by quality
gst_all_1.gst-plugins-good
gst_all_1.gst-plugins-bad
gst_all_1.gst-plugins-ugly
# Plugins to reuse ffmpeg to play almost every video format
gst_all_1.gst-libav
# Support the Video Audio (Hardware) Acceleration API
gst_all_1.gst-vaapi
openssl
nghttp2
libidn2
rtmpdump
libpsl
curl
krb5
keyutils
# List library dependencies here
];
})
lutris
sipcalc
xdg-utils
pass

View File

@ -1,139 +0,0 @@
{ config, pkgs, ... }: {
security.rtkit.enable = true;
services.fwupd.enable = true;
networking = {
wireless = {
enable = false;
networks = {
# "bennynet" = {
# pskRaw = "85e8f17e02f4b4df5ddc9b95d1a4256b3c2608fcc8dfa1860b693d06c2a0bf1f";
# };
};
};
firewall = {
enable = true;
allowedTCPPorts = [ 22 ];
extraCommands = "iptables -A INPUT -s 192.168.0.0/16 -j ACCEPT";
};
};
programs.dconf.enable = true;
services.gnome.gnome-keyring.enable = true;
security.pam.services.i3.enableGnomeKeyring = true;
environment.extraInit = ''
xset s off -dpms
'';
security.polkit.enable = true;
services = {
# prometheus = {
# scrapeConfigs = [
# {
# job_name = "chrysalis";
# static_configs = [{
# targets = [ "127.0.0.1:${toString config.services.prometheus.exporters.node.port}" ];
# }];
# }
# ];
#
# exporters = {
# node = {
# enable = true;
# enabledCollectors = [ "systemd" "processes" ];
# port = 9002;
# };
# };
#
# enable = true;
# port = 9001;
# };
#
# grafana = {
# enable = true;
# settings = {
# server = {
# # Listening Address
# http_addr = "127.0.0.1";
# # and Port
# http_port = 3000;
# # Grafana needs to know on which domain and URL it's running
# serve_from_sub_path = true;
# };
# };
# };
displayManager =
{
defaultSession = "none+i3";
autoLogin.enable = true;
autoLogin.user = "mbeno";
};
logind.extraConfig = "IdleAction=ignore";
xserver = {
exportConfiguration = true;
enable = true;
xkb.layout = "us,no";
xkb.variant = "qwerty";
xkb.options = "grp:lalt_lshift_toggle";
desktopManager = {
xterm.enable = false;
};
videoDrivers = [ "nvidia" ];
deviceSection = ''
Option "TearFree" "False"
Option "VariableRefresh" "true"
'';
xrandrHeads = [
{
output = "DP-2";
primary = true;
monitorConfig = "
Option \"TargetRefresh\" \"144\"
Option \"Primary\" \"true\"
Option \"PreferredMode\" \"2560x1440\"
Option \"DPMS\" \"true\"
";
}
{
output = "DP-0";
primary = false;
monitorConfig = "
Option \"TargetRefresh\" \"144\"
Option \"Primary\" \"false\"
Option \"PreferredMode\" \"1920x1080\"
";
}
];
screenSection =
''
Option "metamodes" "DP-2: 2560x1440_144 +0+0, DP-0: 1920x1080_144 +2560+0"
'';
windowManager.i3 = {
enable = true;
extraPackages = with pkgs; [
dmenu #application launcher most people use
i3status # gives you the default i3 status bar
i3lock
# i3lock #default i3 screen locker
i3blocks #if you are planning on using i3blocks over i3status
polybar
rofi
nitrogen
];
};
};
};
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
services.pcscd.enable = true;
services.dbus.packages = [ pkgs.gcr ];
services.openssh = {
enable = true;
settings.PasswordAuthentication = true;
};
}

12
system/services/audio.nix Normal file
View File

@ -0,0 +1,12 @@
{ config, pkgs, ... }: {
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
# If you want to use JACK applications, uncomment this
#jack.enable = true;
};
}

View File

@ -0,0 +1,24 @@
{ config, pkgs, ... }: {
services.fwupd.enable = true;
programs.dconf.enable = true;
services.gnome.gnome-keyring.enable = true;
security.pam.services.i3.enableGnomeKeyring = true;
environment.extraInit = ''
xset s off -dpms
'';
security.polkit.enable = true;
services.pcscd.enable = true;
services.dbus.packages = [ pkgs.gcr ];
services.openssh = {
enable = true;
settings.PasswordAuthentication = true;
};
imports =
[ ./networking.nix
./audio.nix
./xserver.nix
./vscode.nix
];
}

View File

@ -0,0 +1,19 @@
{ config, pkgs, ... }: {
networking = {
wireless = {
enable = false;
networks = {
# "bennynet" = {
# pskRaw = "85e8f17e02f4b4df5ddc9b95d1a4256b3c2608fcc8dfa1860b693d06c2a0bf1f";
# };
};
};
firewall = {
enable = true;
allowedTCPPorts = [ 22 ];
extraCommands = "iptables -A INPUT -s 192.168.0.0/16 -j ACCEPT";
};
};
}

View File

@ -0,0 +1,66 @@
{ config, pkgs, ... }: {
services = {
displayManager =
{
defaultSession = "none+i3";
autoLogin.enable = true;
autoLogin.user = "mbeno";
};
logind.extraConfig = "IdleAction=ignore";
xserver = {
exportConfiguration = true;
enable = true;
xkb.layout = "us,no";
xkb.variant = "qwerty";
xkb.options = "grp:lalt_lshift_toggle";
desktopManager = {
xterm.enable = false;
};
videoDrivers = [ "nvidia" ];
deviceSection = ''
Option "TearFree" "False"
Option "VariableRefresh" "true"
'';
xrandrHeads = [
{
output = "DP-2";
primary = true;
monitorConfig = "
Option \"TargetRefresh\" \"144\"
Option \"Primary\" \"true\"
Option \"PreferredMode\" \"2560x1440\"
Option \"DPMS\" \"true\"
";
}
{
output = "DP-0";
primary = false;
monitorConfig = "
Option \"TargetRefresh\" \"144\"
Option \"Primary\" \"false\"
Option \"PreferredMode\" \"1920x1080\"
";
}
];
screenSection =
''
Option "metamodes" "DP-2: 2560x1440_144 +0+0, DP-0: 1920x1080_144 +2560+0"
'';
windowManager.i3 = {
enable = true;
extraPackages = with pkgs; [
dmenu #application launcher most people use
i3status # gives you the default i3 status bar
i3lock
# i3lock #default i3 screen locker
i3blocks #if you are planning on using i3blocks over i3status
polybar
rofi
nitrogen
];
};
};
};
}

View File

@ -6,7 +6,7 @@
shell = pkgs.zsh;
isNormalUser = true;
description = "Martin";
extraGroups = [ "networkmanager" "wheel" "docker" ];
extraGroups = [ "networkmanager" "wheel" "docker" "audio" ];
packages = with pkgs; [
alacritty
mumble

View File

@ -18,7 +18,6 @@
plugins = with pkgs.obs-studio-plugins; [
wlrobs
obs-backgroundremoval
# obs-pipewire-audio-capture
obs-vkcapture
obs-nvfbc

View File

@ -21,6 +21,7 @@
"window.titleBarStyle" = "custom";
"editor.formatOnSave" = true;
"nix.enableLanguageServer" = true;
"nix.serverPath" = "nil";
};
};
}