framework-2024-05-25-15-41-10
This commit is contained in:
@ -9,7 +9,6 @@ in
|
|||||||
imports =
|
imports =
|
||||||
[
|
[
|
||||||
/etc/nixos/hardware-configuration.nix
|
/etc/nixos/hardware-configuration.nix
|
||||||
../configs/gui.nix
|
|
||||||
../configs/docker.nix
|
../configs/docker.nix
|
||||||
../configs/libvirt.nix
|
../configs/libvirt.nix
|
||||||
../configs/common.nix
|
../configs/common.nix
|
||||||
|
@ -15,7 +15,6 @@ in
|
|||||||
[
|
[
|
||||||
<nixos-hardware/lenovo/thinkpad/x1-extreme>
|
<nixos-hardware/lenovo/thinkpad/x1-extreme>
|
||||||
/etc/nixos/hardware-configuration.nix
|
/etc/nixos/hardware-configuration.nix
|
||||||
../configs/gui.nix
|
|
||||||
../configs/docker.nix
|
../configs/docker.nix
|
||||||
../configs/libvirt.nix
|
../configs/libvirt.nix
|
||||||
../configs/common.nix
|
../configs/common.nix
|
||||||
|
207
config.json
Executable file
207
config.json
Executable file
@ -0,0 +1,207 @@
|
|||||||
|
{
|
||||||
|
"defaultStrategy": "agile",
|
||||||
|
"strategyOnDischarging": "",
|
||||||
|
"batteryChargingStatusPath": "",
|
||||||
|
"strategies": {
|
||||||
|
"sleep": {
|
||||||
|
"fanSpeedUpdateFrequency": 5,
|
||||||
|
"movingAverageInterval": 40,
|
||||||
|
"speedCurve": [
|
||||||
|
{
|
||||||
|
"temp": 0,
|
||||||
|
"speed": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"lazyest": {
|
||||||
|
"fanSpeedUpdateFrequency": 5,
|
||||||
|
"movingAverageInterval": 40,
|
||||||
|
"speedCurve": [
|
||||||
|
{
|
||||||
|
"temp": 0,
|
||||||
|
"speed": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"temp": 45,
|
||||||
|
"speed": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"temp": 65,
|
||||||
|
"speed": 25
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"temp": 70,
|
||||||
|
"speed": 35
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"temp": 75,
|
||||||
|
"speed": 50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"temp": 85,
|
||||||
|
"speed": 100
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"lazy": {
|
||||||
|
"fanSpeedUpdateFrequency": 5,
|
||||||
|
"movingAverageInterval": 30,
|
||||||
|
"speedCurve": [
|
||||||
|
{
|
||||||
|
"temp": 0,
|
||||||
|
"speed": 15
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"temp": 50,
|
||||||
|
"speed": 15
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"temp": 65,
|
||||||
|
"speed": 25
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"temp": 70,
|
||||||
|
"speed": 35
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"temp": 75,
|
||||||
|
"speed": 50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"temp": 85,
|
||||||
|
"speed": 100
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"medium": {
|
||||||
|
"fanSpeedUpdateFrequency": 5,
|
||||||
|
"movingAverageInterval": 30,
|
||||||
|
"speedCurve": [
|
||||||
|
{
|
||||||
|
"temp": 0,
|
||||||
|
"speed": 15
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"temp": 40,
|
||||||
|
"speed": 15
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"temp": 60,
|
||||||
|
"speed": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"temp": 70,
|
||||||
|
"speed": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"temp": 75,
|
||||||
|
"speed": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"temp": 85,
|
||||||
|
"speed": 100
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"agile": {
|
||||||
|
"fanSpeedUpdateFrequency": 3,
|
||||||
|
"movingAverageInterval": 15,
|
||||||
|
"speedCurve": [
|
||||||
|
{
|
||||||
|
"temp": 0,
|
||||||
|
"speed": 15
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"temp": 40,
|
||||||
|
"speed": 15
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"temp": 60,
|
||||||
|
"speed": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"temp": 70,
|
||||||
|
"speed": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"temp": 75,
|
||||||
|
"speed": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"temp": 85,
|
||||||
|
"speed": 100
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"very-agile": {
|
||||||
|
"fanSpeedUpdateFrequency": 2,
|
||||||
|
"movingAverageInterval": 5,
|
||||||
|
"speedCurve": [
|
||||||
|
{
|
||||||
|
"temp": 0,
|
||||||
|
"speed": 15
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"temp": 40,
|
||||||
|
"speed": 15
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"temp": 60,
|
||||||
|
"speed": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"temp": 70,
|
||||||
|
"speed": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"temp": 75,
|
||||||
|
"speed": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"temp": 85,
|
||||||
|
"speed": 100
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"deaf": {
|
||||||
|
"fanSpeedUpdateFrequency": 2,
|
||||||
|
"movingAverageInterval": 5,
|
||||||
|
"speedCurve": [
|
||||||
|
{
|
||||||
|
"temp": 0,
|
||||||
|
"speed": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"temp": 40,
|
||||||
|
"speed": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"temp": 50,
|
||||||
|
"speed": 50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"temp": 60,
|
||||||
|
"speed": 100
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"aeolus": {
|
||||||
|
"fanSpeedUpdateFrequency": 2,
|
||||||
|
"movingAverageInterval": 5,
|
||||||
|
"speedCurve": [
|
||||||
|
{
|
||||||
|
"temp": 0,
|
||||||
|
"speed": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"temp": 40,
|
||||||
|
"speed": 50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"temp": 65,
|
||||||
|
"speed": 100
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,24 +1,23 @@
|
|||||||
{ config, pkgs, lib, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
let
|
let
|
||||||
unstable = import <nixos-unstable> {
|
unstable = import <nixos-unstable> {
|
||||||
config.allowUnfree = true;
|
config.allowUnfree = true;
|
||||||
config.packageOverrides = pkgs: {
|
config.packageOverrides = pkgs: {
|
||||||
steam = pkgs.steam.override {
|
steam = pkgs.steam.override {
|
||||||
extraPkgs = pkgs: with unstable.pkgs; [
|
extraPkgs = pkgs: with unstable.pkgs; [
|
||||||
gamescope
|
gamescope
|
||||||
mangohud
|
mangohud
|
||||||
ncurses6
|
ncurses6
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
lutris = pkgs.lutris.override {
|
lutris = pkgs.lutris.override {
|
||||||
extraPkgs = pkgs: with unstable.pkgs; [
|
extraPkgs = pkgs: with unstable.pkgs; [
|
||||||
gamescope
|
gamescope
|
||||||
mangohud
|
mangohud
|
||||||
];
|
];
|
||||||
};
|
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
programs.steam = {
|
programs.steam = {
|
||||||
|
@ -29,8 +29,12 @@
|
|||||||
gnomeExtensions.blur-my-shell
|
gnomeExtensions.blur-my-shell
|
||||||
gnomeExtensions.vitals
|
gnomeExtensions.vitals
|
||||||
gnomeExtensions.dash-to-dock
|
gnomeExtensions.dash-to-dock
|
||||||
gnomeExtensions.syncthing-indicator
|
# gnomeExtensions.syncthing-indicator
|
||||||
pantheon.elementary-icon-theme
|
pantheon.elementary-icon-theme
|
||||||
|
|
||||||
|
flat-remix-icon-theme
|
||||||
|
flat-remix-gtk
|
||||||
|
flat-remix-gnome
|
||||||
];
|
];
|
||||||
|
|
||||||
environment.gnome.excludePackages = (with pkgs; [ gnome-tour ])
|
environment.gnome.excludePackages = (with pkgs; [ gnome-tour ])
|
||||||
|
@ -1,84 +0,0 @@
|
|||||||
{ config, pkgs, ... }:
|
|
||||||
let
|
|
||||||
unstable = import <nixos-unstable> {
|
|
||||||
config = {
|
|
||||||
allowUnfree = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
|
||||||
|
|
||||||
networking = {
|
|
||||||
firewall.enable = false;
|
|
||||||
networkmanager = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.systemPackages = with unstable.pkgs; [
|
|
||||||
glxinfo
|
|
||||||
gparted
|
|
||||||
libsecret
|
|
||||||
gnome.simple-scan
|
|
||||||
];
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
dconf.enable = true;
|
|
||||||
adb.enable = true;
|
|
||||||
ssh = {
|
|
||||||
startAgent = true;
|
|
||||||
};
|
|
||||||
# gnupg.agent = {
|
|
||||||
# enable = true;
|
|
||||||
# pinentryFlavor = "curses";
|
|
||||||
# # enableSSHSupport = true;
|
|
||||||
# };
|
|
||||||
};
|
|
||||||
|
|
||||||
fonts = {
|
|
||||||
enableDefaultPackages = true;
|
|
||||||
fontDir.enable = true;
|
|
||||||
|
|
||||||
packages = with pkgs; [
|
|
||||||
# (nerdfonts.override { fonts = [ "Liberation" ]; })
|
|
||||||
nerdfonts
|
|
||||||
corefonts
|
|
||||||
google-fonts
|
|
||||||
liberation_ttf
|
|
||||||
libertinus
|
|
||||||
gyre-fonts
|
|
||||||
noto-fonts
|
|
||||||
noto-fonts-cjk
|
|
||||||
noto-fonts-emoji
|
|
||||||
noto-fonts-extra
|
|
||||||
|
|
||||||
open-sans
|
|
||||||
stix-two
|
|
||||||
twemoji-color-font
|
|
||||||
];
|
|
||||||
|
|
||||||
# fontconfig = {
|
|
||||||
# enable = true;
|
|
||||||
# antialias = true;
|
|
||||||
# defaultFonts = {
|
|
||||||
# # monospace = [ "Fira Mono" ];
|
|
||||||
# serif = [ "Linux Libertine" ];
|
|
||||||
# sansSerif = [ "Open Sans" ];
|
|
||||||
# emoji = [ "Twitter Color Emoji" ];
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware.bluetooth.enable = true;
|
|
||||||
hardware.sane.enable = true;
|
|
||||||
|
|
||||||
services = {
|
|
||||||
# mullvad-vpn.enable = true;
|
|
||||||
gvfs.enable = true;
|
|
||||||
# etesync-dav = {
|
|
||||||
# enable = true;
|
|
||||||
# apiUrl = "https://etesync.szczepan.ski/";
|
|
||||||
# };
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,5 +1,4 @@
|
|||||||
{ config, pkgs, lib, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
virtualisation = {
|
virtualisation = {
|
||||||
libvirtd = {
|
libvirtd = {
|
||||||
@ -10,7 +9,7 @@
|
|||||||
ovmf = {
|
ovmf = {
|
||||||
enable = true;
|
enable = true;
|
||||||
packages = [
|
packages = [
|
||||||
(pkgs.unstable.OVMF.override {
|
(pkgs.OVMF.override {
|
||||||
secureBoot = true;
|
secureBoot = true;
|
||||||
tpmSupport = true;
|
tpmSupport = true;
|
||||||
}).fd
|
}).fd
|
||||||
|
@ -32,14 +32,14 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
systemd.user.services = {
|
systemd.user.services = {
|
||||||
monitor = {
|
# monitor = {
|
||||||
description = "indicator-monitor";
|
# description = "indicator-monitor";
|
||||||
wantedBy = [ "graphical-session.target" ];
|
# wantedBy = [ "graphical-session.target" ];
|
||||||
partOf = [ "graphical-session.target" ];
|
# partOf = [ "graphical-session.target" ];
|
||||||
serviceConfig = {
|
# serviceConfig = {
|
||||||
ExecStart = "${pkgs.monitor}/bin/com.github.stsdc.monitor";
|
# ExecStart = "${pkgs.monitor}/bin/com.github.stsdc.monitor";
|
||||||
};
|
# };
|
||||||
};
|
# };
|
||||||
|
|
||||||
indicatorapp = {
|
indicatorapp = {
|
||||||
description = "indicator-application-gtk3";
|
description = "indicator-application-gtk3";
|
||||||
|
@ -6,6 +6,19 @@
|
|||||||
kdeconnect.enable = true;
|
kdeconnect.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
libsForQt5.kalk
|
||||||
|
libsForQt5.plasma-browser-integration
|
||||||
|
];
|
||||||
|
|
||||||
|
environment.plasma5.excludePackages = with pkgs.libsForQt5; [
|
||||||
|
# plasma-browser-integration
|
||||||
|
konsole
|
||||||
|
oxygen
|
||||||
|
];
|
||||||
|
|
||||||
|
environment.etc."chromium/native-messaging-hosts/org.kde.plasma.browser_integration.json".source = "${pkgs.plasma-browser-integration}/etc/chromium/native-messaging-hosts/org.kde.plasma.browser_integration.json";
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
xserver = {
|
xserver = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -1,11 +1,77 @@
|
|||||||
{ config, pkgs, lib, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
with builtins;
|
|
||||||
let
|
let
|
||||||
unstable = import <nixos-unstable> { config.allowUnfree = true; };
|
unstable = import <nixos-unstable> { config.allowUnfree = true; };
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = [ <home-manager/nixos> ];
|
imports = [ <home-manager/nixos> ];
|
||||||
|
networking = {
|
||||||
|
firewall.enable = false;
|
||||||
|
networkmanager = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
fonts = {
|
||||||
|
enableDefaultPackages = true;
|
||||||
|
fontDir.enable = true;
|
||||||
|
|
||||||
|
packages = with pkgs; [
|
||||||
|
# (nerdfonts.override { fonts = [ "Liberation" ]; })
|
||||||
|
nerdfonts
|
||||||
|
corefonts
|
||||||
|
google-fonts
|
||||||
|
liberation_ttf
|
||||||
|
libertinus
|
||||||
|
gyre-fonts
|
||||||
|
noto-fonts
|
||||||
|
noto-fonts-cjk
|
||||||
|
noto-fonts-emoji
|
||||||
|
noto-fonts-extra
|
||||||
|
|
||||||
|
open-sans
|
||||||
|
stix-two
|
||||||
|
twemoji-color-font
|
||||||
|
];
|
||||||
|
|
||||||
|
# fontconfig = {
|
||||||
|
# enable = true;
|
||||||
|
# antialias = true;
|
||||||
|
# defaultFonts = {
|
||||||
|
# # monospace = [ "Fira Mono" ];
|
||||||
|
# serif = [ "Linux Libertine" ];
|
||||||
|
# sansSerif = [ "Open Sans" ];
|
||||||
|
# emoji = [ "Twitter Color Emoji" ];
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
};
|
||||||
|
|
||||||
|
hardware = {
|
||||||
|
bluetooth.enable = true;
|
||||||
|
sane.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
services = {
|
||||||
|
gvfs.enable = true;
|
||||||
|
# mullvad-vpn.enable = true;
|
||||||
|
|
||||||
|
# etesync-dav = {
|
||||||
|
# enable = true;
|
||||||
|
# apiUrl = "https://etesync.szczepan.ski/";
|
||||||
|
# };
|
||||||
|
};
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
adb.enable = true;
|
||||||
|
ssh = {
|
||||||
|
startAgent = true;
|
||||||
|
};
|
||||||
|
# dconf.enable = true;
|
||||||
|
# gnupg.agent = {
|
||||||
|
# enable = true;
|
||||||
|
# pinentryFlavor = "curses";
|
||||||
|
# # enableSSHSupport = true;
|
||||||
|
# };
|
||||||
|
};
|
||||||
|
|
||||||
environment.systemPackages = with unstable.pkgs; [
|
environment.systemPackages = with unstable.pkgs; [
|
||||||
xfce.catfish
|
xfce.catfish
|
||||||
@ -14,7 +80,6 @@ in
|
|||||||
espeak-ng
|
espeak-ng
|
||||||
handbrake
|
handbrake
|
||||||
insomnia
|
insomnia
|
||||||
libreoffice
|
|
||||||
meld
|
meld
|
||||||
nextcloud-client
|
nextcloud-client
|
||||||
pinta
|
pinta
|
||||||
@ -27,11 +92,13 @@ in
|
|||||||
grsync
|
grsync
|
||||||
virt-manager
|
virt-manager
|
||||||
rustdesk
|
rustdesk
|
||||||
|
glxinfo
|
||||||
|
gparted
|
||||||
|
gnome.simple-scan
|
||||||
];
|
];
|
||||||
|
|
||||||
home-manager.users.alex = { pkgs, ... }: {
|
home-manager.users.alex = { pkgs, ... }: {
|
||||||
# services = { syncthing = { enable = true; }; };
|
# services = { syncthing = { enable = true; }; };
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
vscode = {
|
vscode = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@ -47,14 +114,6 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
git = {
|
|
||||||
extraConfig = {
|
|
||||||
credential.helper = "${
|
|
||||||
pkgs.git.override { withLibsecret = true; }
|
|
||||||
}/bin/git-credential-libsecret";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
kitty = {
|
kitty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
|
182
home/bin/trim-check
Executable file
182
home/bin/trim-check
Executable file
@ -0,0 +1,182 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# This script is provided "as is" without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement.
|
||||||
|
#
|
||||||
|
# License GPL2
|
||||||
|
#
|
||||||
|
# by desgua 2014/04/29
|
||||||
|
|
||||||
|
function CLEAN {
|
||||||
|
cd "$pasta"
|
||||||
|
[ -f test-trim-by-desgua ] && rm test-trim-by-desgua && echo "Temp file removed"
|
||||||
|
echo "Goodbye"
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
trap 'echo ; echo "Aborted." ; CLEAN; echo ; exit 0' INT HUP
|
||||||
|
|
||||||
|
if [[ "$(echo $USER)" != "root" ]]; then
|
||||||
|
|
||||||
|
read -n 1 -p 'Become root? [Y/n]' a
|
||||||
|
if [[ $a == "Y" || $a == "y" || $a == "" ]]; then
|
||||||
|
sudo $0 $1
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
echo "
|
||||||
|
This script needs root privilege.
|
||||||
|
"
|
||||||
|
exit 1
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
name=$(echo $0 | sed 's/.*\///')
|
||||||
|
if [ $# -ne 1 ]; then
|
||||||
|
|
||||||
|
echo "
|
||||||
|
Usage: $name /folder/to/test/
|
||||||
|
|
||||||
|
"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
pasta=$1
|
||||||
|
|
||||||
|
read -n 1 -p 'Use fstrim? [y/N]' a
|
||||||
|
if [[ $a == "Y" || $a == "y" ]]; then
|
||||||
|
fs=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
method=
|
||||||
|
while [[ "$method" != "1" && "$method" != "2" ]]; do
|
||||||
|
read -n 1 -s -p 'Choose a method:
|
||||||
|
[1] hdparm (will fail in LUKS on LVM)
|
||||||
|
[2] filefrag (warning: you may have to force quit - close the terminal - in some cases of success trim if you see an output that never ends)
|
||||||
|
' method
|
||||||
|
done
|
||||||
|
|
||||||
|
function SDATEST {
|
||||||
|
disk=$(fdisk -l | grep /dev/nvme0n1)
|
||||||
|
if [ "$disk" == "" ]; then
|
||||||
|
echo "
|
||||||
|
fdisk did not found /dev/nvme0n1
|
||||||
|
"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function TEST {
|
||||||
|
echo "Entrying /" ; echo
|
||||||
|
cd $pasta
|
||||||
|
echo "Creating the file test-trim-by-desgua at $pasta" ; echo
|
||||||
|
dd if=/dev/urandom of=test-trim-by-desgua count=10 bs=512k
|
||||||
|
echo "Syncing and sleeping 2 seconds." ; echo
|
||||||
|
sync
|
||||||
|
sleep 2
|
||||||
|
|
||||||
|
hdparm --fibmap test-trim-by-desgua
|
||||||
|
lbab=$(hdparm --fibmap test-trim-by-desgua | tail -n1 | awk '{ print $2 }')
|
||||||
|
|
||||||
|
echo "As you can see, the file was created and its LBA begins at $lbab" ; echo
|
||||||
|
|
||||||
|
echo "Syncing and sleeping 2 seconds." ; echo
|
||||||
|
sync
|
||||||
|
sleep 2
|
||||||
|
|
||||||
|
echo "Removing file test-trim-by-desgua" ; echo
|
||||||
|
rm test-trim-by-desgua
|
||||||
|
|
||||||
|
trap 'echo ; echo ; echo "Aborted." ; echo ; exit 0' INT
|
||||||
|
echo "Syncing and sleeping 2 seconds." ; echo
|
||||||
|
sync
|
||||||
|
sleep 2
|
||||||
|
|
||||||
|
if [[ "$fs" == "1" ]]; then
|
||||||
|
echo "fstrim $pasta && sleep 2" ; echo
|
||||||
|
fstrim $pasta
|
||||||
|
sleep 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "This is readed from sector $lbab: "
|
||||||
|
hdparm --read-sector $lbab /dev/nvme0n1
|
||||||
|
|
||||||
|
pass=$(hdparm --read-sector $lbab /dev/nvme0n1 | grep "0000 0000 0000 0000")
|
||||||
|
|
||||||
|
if [[ $pass == "" ]]; then
|
||||||
|
echo "
|
||||||
|
Trim failed...
|
||||||
|
You should see only 0000 0000 0000 0000 ...
|
||||||
|
"
|
||||||
|
else
|
||||||
|
echo "Success!!!"
|
||||||
|
fi
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function LUKSTEST {
|
||||||
|
# Reference: https://unix.stackexchange.com/questions/85865/trim-with-lvm-and-dm-crypt#
|
||||||
|
echo 1 > /proc/sys/vm/drop_caches
|
||||||
|
cd $pasta
|
||||||
|
echo "Creating a \"yes\" file."
|
||||||
|
yes | dd iflag=fullblock bs=1M count=1 of=test-trim-by-desgua
|
||||||
|
|
||||||
|
#position=`filefrag -s -v test-trim-by-desgua | grep "eof" | awk '{ print $3 }'`
|
||||||
|
position=`filefrag -s -v test-trim-by-desgua | grep "eof" | sed 's| ||g ; s|.*255:|| ; s|\.\..*||'`
|
||||||
|
[[ "$position" == "" ]] && echo "Could not find the position of the file. Are you on a LUKS on LVM?" && CLEAN;
|
||||||
|
|
||||||
|
device=`df test-trim-by-desgua | grep "dev/" | awk '{ print $1 }'`
|
||||||
|
|
||||||
|
yes=`dd bs=4096 skip=$position count=256 if=$device | hexdump -C`
|
||||||
|
|
||||||
|
echo "In the next line you should see a pattern like:
|
||||||
|
00000000 79 0a 79 0a 79 0a 79 0a 79 0a 79 0a 79 0a 79 0a |y.y.y.y.y.y.y.y.|
|
||||||
|
$yes
|
||||||
|
"
|
||||||
|
|
||||||
|
if [[ "`echo "$yes" | grep "y.y.y"`" == "" ]]; then
|
||||||
|
echo "The pattern could not be checked. Something went wrong. Exiting."
|
||||||
|
CLEAN;
|
||||||
|
else
|
||||||
|
echo "Pattern confirmed."
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Removing the temp file."
|
||||||
|
rm test-trim-by-desgua
|
||||||
|
|
||||||
|
echo "Syncing."
|
||||||
|
sync
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
if [[ "$fs" == "1" ]]; then
|
||||||
|
echo "fstrim -v $pasta && sleep 2" ; echo
|
||||||
|
fstrim -v $pasta
|
||||||
|
sleep 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Drop cache
|
||||||
|
echo 1 > /proc/sys/vm/drop_caches
|
||||||
|
|
||||||
|
echo "In the next line you should **NOT** see a yes pattern like:
|
||||||
|
00000000 79 0a 79 0a 79 0a 79 0a 79 0a 79 0a 79 0a 79 0a |y.y.y.y.y.y.y.y.|
|
||||||
|
If you see, then trim is not working:
|
||||||
|
`dd bs=4096 skip=$position count=256 if=$device | hexdump -C`"
|
||||||
|
|
||||||
|
yes=`dd bs=4096 skip=$position count=256 if=$device | hexdump -C`
|
||||||
|
if [[ "`echo "$yes" | grep "y.y.y"`" != "" ]]; then
|
||||||
|
echo "TRIM not working."
|
||||||
|
else
|
||||||
|
echo "TRIM is working!"
|
||||||
|
fi
|
||||||
|
CLEAN;
|
||||||
|
}
|
||||||
|
|
||||||
|
if [[ "$method" == "1" ]]; then
|
||||||
|
SDATEST;
|
||||||
|
TEST;
|
||||||
|
elif [[ "$method" == "2" ]]; then
|
||||||
|
LUKSTEST;
|
||||||
|
fi
|
||||||
|
exit 0
|
@ -11,7 +11,6 @@ in
|
|||||||
../configs/common.nix
|
../configs/common.nix
|
||||||
../configs/docker.nix
|
../configs/docker.nix
|
||||||
../configs/games.nix
|
../configs/games.nix
|
||||||
../configs/gui.nix
|
|
||||||
../configs/libvirt.nix
|
../configs/libvirt.nix
|
||||||
../configs/pantheon.nix
|
../configs/pantheon.nix
|
||||||
../configs/user-gui.nix
|
../configs/user-gui.nix
|
||||||
|
@ -4,7 +4,8 @@ let
|
|||||||
be = import ../configs/borg-exclude.nix;
|
be = import ../configs/borg-exclude.nix;
|
||||||
secrets = import ../configs/secrets.nix;
|
secrets = import ../configs/secrets.nix;
|
||||||
wireguard = import ../configs/wireguard.nix;
|
wireguard = import ../configs/wireguard.nix;
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
imports = [
|
imports = [
|
||||||
<nixos-hardware/framework/13-inch/12th-gen-intel>
|
<nixos-hardware/framework/13-inch/12th-gen-intel>
|
||||||
<home-manager/nixos>
|
<home-manager/nixos>
|
||||||
@ -13,7 +14,6 @@ in {
|
|||||||
../configs/common.nix
|
../configs/common.nix
|
||||||
../configs/docker.nix
|
../configs/docker.nix
|
||||||
../configs/games.nix
|
../configs/games.nix
|
||||||
../configs/gui.nix
|
|
||||||
../configs/libvirt.nix
|
../configs/libvirt.nix
|
||||||
../configs/plasma.nix
|
../configs/plasma.nix
|
||||||
../configs/user-gui.nix
|
../configs/user-gui.nix
|
||||||
@ -24,20 +24,22 @@ in {
|
|||||||
boot = {
|
boot = {
|
||||||
initrd.systemd.enable = true;
|
initrd.systemd.enable = true;
|
||||||
loader = {
|
loader = {
|
||||||
# systemd-boot.enable = true;
|
# grub = {
|
||||||
grub = {
|
# enable = true;
|
||||||
enable = true;
|
# device = "nodev";
|
||||||
device = "nodev";
|
# useOSProber = true;
|
||||||
useOSProber = true;
|
# efiSupport = true;
|
||||||
efiSupport = true;
|
# };
|
||||||
};
|
systemd-boot.enable = true;
|
||||||
efi = { canTouchEfiVariables = true; };
|
efi = { canTouchEfiVariables = true; };
|
||||||
};
|
};
|
||||||
plymouth.enable = true;
|
plymouth.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
nixpkgs.config.packageOverrides = pkgs: {
|
nixpkgs.config.packageOverrides = pkgs: {
|
||||||
vaapiIntel = pkgs.vaapiIntel.override { enableHybridCodec = true; };
|
intel-vaapi-driver =
|
||||||
|
pkgs.intel-vaapi-driver.override { enableHybridCodec = true; };
|
||||||
};
|
};
|
||||||
|
|
||||||
# nixpkgs.localSystem = {
|
# nixpkgs.localSystem = {
|
||||||
@ -46,6 +48,8 @@ in {
|
|||||||
# system = "x86_64-linux";
|
# system = "x86_64-linux";
|
||||||
# };
|
# };
|
||||||
|
|
||||||
|
# nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
|
||||||
nix.settings.system-features =
|
nix.settings.system-features =
|
||||||
[ "nixos-test" "benchmark" "big-parallel" "kvm" "gccarch-alderlake" ];
|
[ "nixos-test" "benchmark" "big-parallel" "kvm" "gccarch-alderlake" ];
|
||||||
|
|
||||||
@ -77,7 +81,7 @@ in {
|
|||||||
opengl = {
|
opengl = {
|
||||||
enable = true;
|
enable = true;
|
||||||
driSupport32Bit = true;
|
driSupport32Bit = true;
|
||||||
extraPackages = with pkgs; [ intel-media-driver ];
|
extraPackages = with pkgs; [ intel-media-driver intel-vaapi-driver ];
|
||||||
};
|
};
|
||||||
pulseaudio.enable = false;
|
pulseaudio.enable = false;
|
||||||
};
|
};
|
||||||
@ -87,7 +91,18 @@ in {
|
|||||||
# rtkit is optional but recommended
|
# rtkit is optional but recommended
|
||||||
services = {
|
services = {
|
||||||
power-profiles-daemon.enable = true;
|
power-profiles-daemon.enable = true;
|
||||||
fw-fanctrl.enable = true;
|
colord.enable = true;
|
||||||
|
|
||||||
|
fw-fanctrl = {
|
||||||
|
enable = true;
|
||||||
|
configJsonPath = "/home/alex/nixos-config/config.json";
|
||||||
|
};
|
||||||
|
|
||||||
|
xserver.displayManager.autoLogin = {
|
||||||
|
enable = true;
|
||||||
|
user = "alex";
|
||||||
|
};
|
||||||
|
|
||||||
pipewire = {
|
pipewire = {
|
||||||
enable = true;
|
enable = true;
|
||||||
alsa.enable = true;
|
alsa.enable = true;
|
||||||
@ -115,6 +130,8 @@ in {
|
|||||||
extraPruneArgs = "--save-space --list --stats";
|
extraPruneArgs = "--save-space --list --stats";
|
||||||
exclude = map (x: "/home/alex/" + x) be.borg-exclude;
|
exclude = map (x: "/home/alex/" + x) be.borg-exclude;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
tailscale.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
powerManagement = {
|
powerManagement = {
|
||||||
@ -126,6 +143,8 @@ in {
|
|||||||
DefaultTimeoutStopSec=10s
|
DefaultTimeoutStopSec=10s
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
# systemd.services.nix-daemon.serviceConfig.LimitNOFILE = 40960;
|
||||||
|
|
||||||
environment.systemPackages = with unstable.pkgs; [
|
environment.systemPackages = with unstable.pkgs; [
|
||||||
rustdesk
|
rustdesk
|
||||||
cinnamon.warpinator
|
cinnamon.warpinator
|
||||||
@ -149,11 +168,11 @@ in {
|
|||||||
}];
|
}];
|
||||||
|
|
||||||
# Partition swapfile is on (after LUKS decryption)
|
# Partition swapfile is on (after LUKS decryption)
|
||||||
boot.resumeDevice = "/dev/disk/by-uuid/e5472308-de8b-4e60-91f4-4e7f194dad76";
|
boot.resumeDevice = "/dev/disk/by-uuid/5549d49d-165e-4a45-973e-6a32a63e31be";
|
||||||
|
|
||||||
# Resume Offset is offset of swapfile
|
# Resume Offset is offset of swapfile
|
||||||
# https://wiki.archlinux.org/title/Power_management/Suspend_and_hibernate#Hibernation_into_swap_file
|
# https://wiki.archlinux.org/title/Power_management/Suspend_and_hibernate#Hibernation_into_swap_file
|
||||||
boot.kernelParams = [ "mem_sleep_default=deep" "resume_offset=40241152" ];
|
boot.kernelParams = [ "mem_sleep_default=deep" "resume_offset=190937088" ];
|
||||||
|
|
||||||
# Suspend-then-hibernate everywhere
|
# Suspend-then-hibernate everywhere
|
||||||
services.logind = {
|
services.logind = {
|
||||||
@ -164,7 +183,7 @@ in {
|
|||||||
IdleActionSec=2m
|
IdleActionSec=2m
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
systemd.sleep.extraConfig = "HibernateDelaySec=60m";
|
systemd.sleep.extraConfig = "HibernateDelaySec=20m";
|
||||||
|
|
||||||
home-manager.users.alex.services.barrier.client = {
|
home-manager.users.alex.services.barrier.client = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -8,7 +8,6 @@ in {
|
|||||||
../configs/user.nix
|
../configs/user.nix
|
||||||
../configs/docker.nix
|
../configs/docker.nix
|
||||||
../configs/pantheon.nix
|
../configs/pantheon.nix
|
||||||
../configs/gui.nix
|
|
||||||
../configs/user-gui.nix
|
../configs/user-gui.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -10,7 +10,6 @@ in
|
|||||||
/etc/nixos/hardware-configuration.nix
|
/etc/nixos/hardware-configuration.nix
|
||||||
../configs/common.nix
|
../configs/common.nix
|
||||||
../configs/docker.nix
|
../configs/docker.nix
|
||||||
../configs/gui.nix
|
|
||||||
../configs/libvirt.nix
|
../configs/libvirt.nix
|
||||||
../configs/plasma.nix
|
../configs/plasma.nix
|
||||||
../configs/user-gui.nix
|
../configs/user-gui.nix
|
||||||
@ -99,7 +98,7 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
# Enable sound.
|
# Enable sound.
|
||||||
|
|
||||||
# hardware.pulseaudio = {
|
# hardware.pulseaudio = {
|
||||||
# enable = true;
|
# enable = true;
|
||||||
# support32Bit = true;
|
# support32Bit = true;
|
||||||
|
Reference in New Issue
Block a user