Restructuring

This commit is contained in:
2021-04-29 21:29:29 +05:30
parent 58cfa66af5
commit ecf68fec43
22 changed files with 496 additions and 27 deletions

View File

@@ -0,0 +1,30 @@
{lib, config, pkgs, ... }:
let
nvidia-offload = pkgs.writeShellScriptBin "nvidia-offload" ''
export __NV_PRIME_RENDER_OFFLOAD=1
export __NV_PRIME_RENDER_OFFLOAD_PROVIDER=NVIDIA-G0
export __GLX_VENDOR_LIBRARY_NAME=nvidia
export __VK_LAYER_NV_optimus=NVIDIA_only
exec -a "$0" "$@"
'';
in
{
environment.systemPackages = with pkgs; [
nvidia-offload
];
hardware = {
opengl = {
driSupport32Bit = true;
#package = pkgs.mesa_drivers;
enable = true;
};
nvidia = {
prime = {
offload = { enable = true; };
intelBusId = "PCI:0:2:0";
nvidiaBusId = "PCI:1:0:0";
};
modesetting = { enable = true; };
};
};
}

View File

@@ -0,0 +1,7 @@
{ config, lib, pkgs, modulesPath, ... }:
{
powerManagement = {
cpuFreqGovernor = lib.mkDefault "powersave";
};
}

1
Satori/README.md Normal file
View File

@@ -0,0 +1 @@
Satori is my home laptop

View File

@@ -0,0 +1,62 @@
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols
{
include "pc+us(colemak)+inet(evdev)+terminate(ctrl_alt_bksp)"
key <TLDE> { [ grave, asciitilde, dead_tilde, asciitilde ] };
key <AE01> { [ 1, exclam, exclamdown, onesuperior ] };
key <AE02> { [ 2, at, masculine, twosuperior ] };
key <AE03> { [ 3, numbersign, ordfeminine, threesuperior ] };
key <AE04> { [ 4, dollar, cent, sterling ] };
key <AE05> { [ 5, percent, EuroSign, yen ] };
key <AE06> { [ 6, asciicircum, hstroke, Hstroke ] };
key <AE07> { [ 7, ampersand, eth, ETH ] };
key <AE08> { [ 8, asterisk, thorn, THORN ] };
key <AE09> { [ 9, parenleft, leftsinglequotemark, leftdoublequotemark ] };
key <AE10> { [ 0, parenright, rightsinglequotemark, rightdoublequotemark ] };
key <AE11> { [ minus, underscore, endash, emdash ] };
key <AE12> { [ equal, plus, multiply, division ] };
key <AD01> { [ q, Q, adiaeresis, Adiaeresis ] };
key <AD02> { [ w, W, aring, Aring ] };
key <AD03> { [ f, F, atilde, Atilde ] };
key <AD04> { [ p, P, oslash, Ooblique ] };
key <AD05> { [ b, B, dead_breve, asciitilde ] };
key <AD06> { [ j, J, dstroke, Dstroke ] };
key <AD07> { [ l, L, lstroke, Lstroke ] };
key <AD08> { [ u, U, uacute, Uacute ] };
key <AD09> { [ y, Y, udiaeresis, Udiaeresis ] };
key <AD10> { [ semicolon, colon, odiaeresis, Odiaeresis ] };
key <AD11> { [ bracketleft, braceleft, guillemotleft, 0x1002039 ] };
key <AD12> { [ bracketright, braceright, guillemotright, 0x100203a ] };
key <BKSL> { [ backslash, bar, asciitilde, asciitilde ] };
key <AC01> { [ a, A, aacute, Aacute ] };
key <AC02> { [ r, R, dead_grave, asciitilde ] };
key <AC03> { [ s, S, ssharp, asciitilde ] };
key <AC04> { [ t, T, dead_acute, dead_doubleacute ] };
key <AC05> { [ g, G, dead_ogonek, asciitilde ] };
key <AC06> { [ m, M, dead_macron, asciitilde ] };
key <AC07> { [ n, N, ntilde, Ntilde ] };
key <AC08> { [ e, E, eacute, Eacute ] };
key <AC09> { [ i, I, iacute, Iacute ] };
key <AC10> { [ o, O, oacute, Oacute ] };
key <AC11> { [ apostrophe, quotedbl, otilde, Otilde ] };
key <AB01> { [ z, Z, ae, AE ] };
key <AB02> { [ x, X, dead_circumflex, asciitilde ] };
key <AB03> { [ c, C, ccedilla, Ccedilla ] };
key <AB04> { [ d, D, dead_diaeresis, asciitilde ] };
key <AB05> { [ v, V, oe, OE ] };
key <AB06> { [ k, K, dead_abovering, asciitilde ] };
key <AB07> { [ h, H, dead_caron, asciitilde ] };
key <AB08> { [ comma, less, dead_cedilla, asciitilde ] };
key <AB09> { [ period, greater, dead_abovedot, asciitilde ] };
key <AB10> { [ slash, question, questiondown, asciitilde ] };
key <CAPS> { [ Caps_Lock, Caps_Lock, Caps_Lock, Caps_Lock ] };
key <LSGT> { [ minus, underscore, endash, emdash ] };
key <SPCE> { [ space, space, space, nobreakspace ] };
include "level3(ralt_switch)"
};
xkb_geometry { include "pc(pc104)" };
};

10
Satori/Stuff/fonts.nix Normal file
View File

@@ -0,0 +1,10 @@
{lib, config, pkgs, ... }:
{
fonts.fonts = with pkgs; [
fira-mono
font-awesome-ttf
powerline-fonts
vistafonts
];
}

26
Satori/Stuff/services.nix Normal file
View File

@@ -0,0 +1,26 @@
{lib, config, pkgs, ... }:
{
systemd.services.nbfc = {
wantedBy = [ "multi-user.target" ];
description = "Notebook Fancontrol";
serviceConfig = {
Type = "forking";
Restart = "on-failure";
ExecStart = "${pkgs.mono}/bin/mono-service -l:/run/nbfc.pid -m:NbfcService /opt/nbfc/NbfcService.exe";
ExecStop = "kill -SIGTERM $(cat /run/nbfc.pid)";
PIDFile = "/run/nbfc.pid";
};
};
services = {
tor.enable = true;
logmein-hamachi.enable = true;
};
# services.picom = {
# enable = true;
# fade = true;
# shadow = true;
# activeOpacity = 0.96;
# inactiveOpacity = 0.86;
# };
}

33
Satori/Stuff/sound.nix Normal file
View File

@@ -0,0 +1,33 @@
{lib, config, pkgs, ... }:
{
services.pipewire = {
enable = true;
alsa = {
enable = true;
support32Bit = true;
};
pulse = {
enable = true;
};
config.pipewire = {
context.properties = {
default.clock.min-quantum = 8;
};
};
config.pipewire-pulse = {
context.modules = {
pulse.min.req = "4/48000";
pulse.min.quantum = "4/24000";
};
stream.properties = {
node.latency = "4/24000";
};
};
};
sound.enable = true;
# hardware = {
# pulseaudio.enable = true;
# pulseaudio.support32Bit = true;
# };
}

10
Satori/Stuff/users.nix Normal file
View File

@@ -0,0 +1,10 @@
{lib, config, pkgs, ... }:
{
users.users.natto = {
isNormalUser = true;
shell = pkgs.fish;
home = "/home/natto";
extraGroups = [ "wheel" "video" "audio" ];
};
}

43
Satori/Stuff/xorg.nix Normal file
View File

@@ -0,0 +1,43 @@
{ config, lib, pkgs, modulesPath, ... }:
#let
# compiledLayout = pkgs.runCommand "keyboard-layout" {} ''
# ${pkgs.xorg.xkbcomp}/bin/xkbcomp ${./colemak-dh.xkb} $out
# '';
#in
{
services = {
xserver = {
enable = true;
libinput= {
enable = true;
# mouse = {
# accelSpeed = "0";
# };
touchpad = {
middleEmulation = false;
clickMethod = "buttonareas";
tapping = true;
naturalScrolling =true;
};
};
displayManager = {
startx = {
enable = true;
};
# sessionCommands = "${pkgs.xorg.xkbcomp}/bin/xkbcomp ${compiledLayout} $DISPLAY";
};
# extraLayouts = {
# colemak-dh = {
# description = "Colemak with MOD-dh";
# languages = [ "eng" ];
# symbolsFile = ./colemak-dh;
# };
# };
videoDrivers = [ "nvidia" ];
layout = "us";
xkbVariant = "colemak";
};
};
}

41
Satori/boot.nix Normal file
View File

@@ -0,0 +1,41 @@
{ config, lib, pkgs, modulesPath, ... }:
{
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
boot = {
kernelPackages = pkgs.linuxPackages_zen;
kernelPatches = [
{
name = "zenwithmuqqs";
patch = null;
structuredExtraConfig = with lib.kernel; {
SCHED_MUQSS = yes;
};
ignoreConfigErrors = true;
}
];
initrd={
availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod"];
kernelModules = [ ];
};
kernelModules = [ "kvm-intel"];
extraModulePackages = [ config.boot.kernelPackages.nvidia_x11 ];
loader = {
efi = {
canTouchEfiVariables = true;
efiSysMountPoint = "/boot/efi";
};
grub = {
enable = true;
useOSProber = true;
efiSupport = true;
device = "nodev";
splashImage = "/etc/cirno.png"; #hehe
splashMode = "stretch";
configurationName = "nixbruh";
};
};
kernelParams = [ "nvidia-drm.modeset=1" "intel_pstate=active"];
};
}

13
Satori/configuration.nix Normal file
View File

@@ -0,0 +1,13 @@
{lib, config, pkgs, ... }:
{
imports =
[
./hardware.nix
./stuff.nix
./pkgs.nix
./networking.nix
./boot.nix
];
system.stateVersion = "20.09";
}

48
Satori/hardware.nix Normal file
View File

@@ -0,0 +1,48 @@
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[
(modulesPath + "/installer/scan/not-detected.nix")
./Hardware/power.nix
./Hardware/graphicshit.nix
];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/4c02ddf5-d00e-4d84-856f-c327ae44d047";
fsType = "btrfs";
};
fileSystems."/boot/efi" =
{ device = "/dev/disk/by-uuid/58B1-4631";
fsType = "vfat";
};
fileSystems."/home" =
{ device = "/dev/nvme0n1p6";
fsType = "ext4";
};
fileSystems."/mnt/Stuff" =
{ device = "/dev/sda2";
fsType = "ntfs";
options = ["uid=natto" "gid=users" "umask=0022" "rw"];
};
fileSystems."/mnt/Games" =
{ device = "/dev/sda4";
fsType = "ntfs";
options = ["uid=natto" "gid=users" "umask=0022" "rw"];
};
fileSystems."/mnt/Extra" =
{ device = "/dev/sda3";
fsType = "ntfs";
options = ["uid=natto" "gid=users" "umask=0022" "rw"];
};
fileSystems."/mnt/LinuxGames" =
{ device = "/dev/sda5";
fsType = "btrfs";
options = ["rw"];
};
swapDevices = [ {device = "/dev/nvme0n1p7";} ];
}

20
Satori/networking.nix Normal file
View File

@@ -0,0 +1,20 @@
{lib, config, pkgs, ... }:
{
networking = {
hostName = "Satori";
wireless.enable = true; # Enables wireless support via wpa_supplicant.
interfaces = {
enp7s0.useDHCP = true;
wlp0s20f3 = {
useDHCP = true;
ipv4.addresses = [ {
prefixLength = 24;
address = "192.168.0.109";
} ];
};
};
defaultGateway = "192.168.0.1";
nameservers = [ "192.168.0.1" ];
};
}

60
Satori/pkgs.nix Normal file
View File

@@ -0,0 +1,60 @@
{lib, config, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
mpd_discord_richpresence
customscripts
xclip
dunst
xorg.xkbcomp
glibc
proxychains
#qt5.qmake
xorg.xmodmap
ffmpeg
p7zip
git
glxinfo
sox
libmpdclient
lxappearance
jq
mono
vim
mpd
wineWowPackages.staging
neofetch
tor-browser-bundle-bin
w3m
gnumake
pciutils
jdk
gcc
ntfs3g
python38
luajit
neovim
htop
nodejs
wget
ripgrep
patchelf
doas
feh
sxiv
mpv
dwm
dmenu
st
kbd
picom
ncmpcpp
];
programs.steam.enable = true;
nix = {
package = pkgs.nixUnstable;
extraOptions = ''
experimental-features = nix-command flakes
'';
};
}

42
Satori/stuff.nix Normal file
View File

@@ -0,0 +1,42 @@
{lib, config, pkgs, ... }:
{
imports = [
./Stuff/sound.nix
./Stuff/fonts.nix
./Stuff/users.nix
./Stuff/services.nix
./Stuff/xorg.nix
];
time.timeZone = "Asia/Kolkata";
environment = {
sessionVariables = {
QT_QPA_PLATFORMTHEME = "gtk3";
QT_X11_NO_MITSHM="1";
};
};
security={
sudo.enable = false;
doas = {
enable = true;
extraRules = [
{
users = [ "natto" ];
keepEnv = true;
persist = true;
}
];
};
};
nix.gc = {
automatic = false;
dates = "20:15";
};
nixpkgs.config.allowUnfree = true;
programs = {
fish.enable = true;
dconf.enable = true;
};
nixpkgs.config.allowBroken = true;
nix.extraOptions = ''experimental-features = nix-command flakes ca-references'';
}

View File

@@ -14,11 +14,6 @@
}; };
services = { services = {
tor.enable = true; tor.enable = true;
mysql = {
enable = true;
package = pkgs.mariadb;
};
openssh.enable = true;
logmein-hamachi.enable = true; logmein-hamachi.enable = true;
}; };
# services.picom = { # services.picom = {

16
flake.lock generated
View File

@@ -1,20 +1,5 @@
{ {
"nodes": { "nodes": {
"flake-utils": {
"locked": {
"lastModified": 1619345332,
"narHash": "sha256-qHnQkEp1uklKTpx3MvKtY6xzgcqXDsz5nLilbbuL+3A=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "2ebf2558e5bf978c7fb8ea927dfaed8fefab2e28",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1619464443, "lastModified": 1619464443,
@@ -33,7 +18,6 @@
}, },
"root": { "root": {
"inputs": { "inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs",
"stable": "stable" "stable": "stable"
} }

View File

@@ -3,23 +3,24 @@
stable.url = "github:nixos/nixpkgs/nixos-20.09"; stable.url = "github:nixos/nixpkgs/nixos-20.09";
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
}; };
outputs = inputs@{self, nixpkgs, stable, flake-utils,... }: outputs = inputs@{self, nixpkgs, stable,... }:
let let
system = "x86_64-linux"; system = "x86_64-linux";
in in
{ {
overlays = { overlays = {
overridesandshit = import ./overlays/overridesandshit.nix; overridesandshit = import ./overlays/overridesandshit.nix;
packages = import ./overlays/packages.nix;
}; };
pkgs = import nixpkgs { pkgs = import nixpkgs {
inherit system; inherit system;
config.allowUnfree = true; config.allowUnfree = true;
overlays = builtins.attrValues self.overlays; overlays = builtins.attrValues self.overlays;
}; };
nixosConfigurations.nixchod = nixpkgs.lib.nixosSystem { nixosConfigurations.Satori = nixpkgs.lib.nixosSystem {
system = "${system}"; system = "${system}";
modules = [ modules = [
./configuration.nix ./Satori/configuration.nix
{ nixpkgs.pkgs = self.pkgs; } { nixpkgs.pkgs = self.pkgs; }
]; ];
}; };

View File

@@ -0,0 +1,16 @@
{lib,stdenv,fetchFromGitHub}:
stdenv.mkDerivation rec{
name = "customscripts";
src = fetchFromGitHub {
owner = "idcretard";
repo = "custom-scripts";
rev = "a996a52831316cc2c282904352654bd20c82f7bd";
sha256 = "sha256-nw21YmcmQMF8NADnuHOc7eF2Yaj/r/1mYBn77fYK7s8=";
};
unpackPhase = ":";
installPhase = ''
mkdir -p $out/bin
cp -r $src/* $out/bin
for x in $out/bin/*;do chmod +x "$x";done
'';
}

View File

@@ -0,0 +1,26 @@
{lib, stdenv, fetchFromGitHub, discord-rpc, cmake, libmpdclient}:
with lib;
stdenv.mkDerivation rec{
name = "mpd_discord_richpresence";
src = fetchFromGitHub {
owner = "justas-d";
repo = "mpd-rich-presence-discord";
rev = "ced628d3eaf3f18c5eff286b0955c605616348ee";
sha256 = "0vl31sdgxalbnc4d4fggzqs2vsssibn53pjm6wj596cfkfpdf4y3";
};
buildInputs = [
libmpdclient
cmake
discord-rpc
];
configurePhase = ''
cmake .
'';
buildPhase = ''
make
'';
installPhase = ''
mkdir -p $out/bin
cp mpd_discord_richpresence $out/bin/
'';
}

4
overlays/packages.nix Normal file
View File

@@ -0,0 +1,4 @@
final: prev: {
mpd_discord_richpresence = prev.callPackage ./mpd-rpc {};
customscripts = prev.callPackage ./customscripts {};
}

View File

@@ -1,9 +1,6 @@
{lib, config, pkgs, ... }: {lib, config, pkgs, ... }:
{ {
imports = [
./Packages/override.nix
];
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
xclip xclip
dunst dunst