Reformat + swap odin SSD

This commit is contained in:
Filippo Berto 2022-09-01 15:11:16 +02:00
parent 1bc27dde82
commit 2f3d05a802
No known key found for this signature in database
GPG key ID: FE98AE5EC52B1056
83 changed files with 1448 additions and 931 deletions

View file

@ -1,6 +1,5 @@
{ pkgs, lib, ... }:
with lib;
{
with lib; {
# boot = {
# # binfmt.emulatedSystems = [ "armv7l-linux" "aarch64-linux" ];
# # kernelPackages = pkgs.linuxPackages_5_18;
@ -24,8 +23,14 @@ with lib;
programs = {
dconf.enable = true;
gnupg.agent = { enable = true; enableSSHSupport = true; };
zsh = { enable = true; syntaxHighlighting.enable = true; };
gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
zsh = {
enable = true;
syntaxHighlighting.enable = true;
};
};
networking = {
@ -56,14 +61,22 @@ with lib;
# bazarr = { enable = true; openFirewall = true; group = "users"; };
# blueman.enable = true;
dbus.packages = with pkgs; [ dconf ];
fail2ban = { enable = true; bantime-increment.enable = true; };
fail2ban = {
enable = true;
bantime-increment.enable = true;
};
# gnome.gnome-keyring.enable = true;
# gvfs = { enable = true; package = mkForce pkgs.gnome3.gvfs; };
# jackett = { enable = true; openFirewall = true; group = "users"; };
# jellyfin = { enable = true; openFirewall = true; group = "users"; };
# logind.lidSwitch = "ignore";
# node-red = { enable = true; openFirewall = true; withNpmAndGcc = true; };
openssh = { enable = true; openFirewall = true; permitRootLogin = "no"; passwordAuthentication = false; };
openssh = {
enable = true;
openFirewall = true;
permitRootLogin = "no";
passwordAuthentication = false;
};
# plex = { enable = true; openFirewall = true; group = "users"; };
# power-profiles-daemon.enable = true;
# radarr = { enable = true; openFirewall = true; group = "users"; };
@ -104,7 +117,17 @@ with lib;
users.users.bertof = {
isNormalUser = true;
extraGroups = [ "audio" "input" "docker" "libvirtd" "network" "networkmanager" "usb" "video" "wheel" ];
extraGroups = [
"audio"
"input"
"docker"
"libvirtd"
"network"
"networkmanager"
"usb"
"video"
"wheel"
];
shell = pkgs.zsh;
};
@ -142,7 +165,6 @@ with lib;
# };
# };
# systemd.packages = with pkgs; [ syncthing ];
# systemd.services =
# let
@ -230,7 +252,6 @@ with lib;
# };
# };
security.sudo.extraConfig = ''
Defaults pwfeedback
'';

View file

@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{ pkgs, ... }: {
nixpkgs.overlays = [
(_: _: {
devEnvironment = (import ./environment.nix) {

View file

@ -1,6 +1,4 @@
{ pkgs ? import <nixos> { inherit system; }
, system ? builtins.currentSystem
}:
{ pkgs ? import <nixos> { inherit system; }, system ? builtins.currentSystem }:
let
self = with pkgs; {

View file

@ -3,14 +3,15 @@
, roboto
, i3lock-color
, writeScriptBin
, font ? { package = roboto; name = "Roboto"; }
, font ? {
package = roboto;
name = "Roboto";
}
, palette ? rice.palette.palette { }
, ...
}:
let
strPalette = lib.rice.palette.toRGBAHex palette;
in
writeScriptBin "lockscreen" ''
let strPalette = lib.rice.palette.toRGBAHex palette;
in writeScriptBin "lockscreen" ''
#!/bin/sh
# Using font package ${font.package}
${i3lock-color}/bin/i3lock-color \

170
flake.nix
View file

@ -3,17 +3,41 @@
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/release-22.05";
home-manager = { url = "github:nix-community/home-manager/release-22.05"; inputs.nixpkgs.follows = "nixpkgs"; };
home-manager = {
url = "github:nix-community/home-manager/release-22.05";
inputs.nixpkgs.follows = "nixpkgs";
};
nixpkgs-u.url = "github:NixOS/nixpkgs/nixos-unstable";
home-manager-u = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs-u"; };
home-manager-u = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs-u";
};
flake-utils.url = "github:numtide/flake-utils";
nixos-hardware.url = "github:NixOS/nixos-hardware";
nix-rice = { url = "github:bertof/nix-rice"; inputs = { inxpkgs.follows = "nixpkgs-u"; flake-utils.follows = "flake-utils"; }; };
pre-commit-hooks = { url = "github:cachix/pre-commit-hooks.nix"; inputs = { nixpkgs.follows = "nixpkgs-u"; flake-utils.follows = "flake-utils"; }; };
tex2nix = { url = "github:Mic92/tex2nix"; inputs = { nixpkgs.follows = "nixpkgs-u"; flake-utils.follows = "flake-utils"; }; };
nix-rice = {
url = "github:bertof/nix-rice";
inputs = {
inxpkgs.follows = "nixpkgs-u";
flake-utils.follows = "flake-utils";
};
};
pre-commit-hooks = {
url = "github:cachix/pre-commit-hooks.nix";
inputs = {
nixpkgs.follows = "nixpkgs-u";
flake-utils.follows = "flake-utils";
};
};
tex2nix = {
url = "github:Mic92/tex2nix";
inputs = {
nixpkgs.follows = "nixpkgs-u";
flake-utils.follows = "flake-utils";
};
};
};
outputs =
@ -30,13 +54,25 @@
}:
let
overlaysBuilder = system: [
(_: _: { inherit (tex2nix.packages.${system}) tex2nix; stable = pkgs { inherit system; }; unstable = pkgs-u { inherit system; }; })
(_: _: {
inherit (tex2nix.packages.${system}) tex2nix;
stable = pkgs { inherit system; };
unstable = pkgs-u { inherit system; };
})
(nix-rice.overlays.default)
(import ./rice.nix)
(final: _: {
update-background = final.callPackage ./custom/update-background { backgrounds_directory = "$HOME/Immagini/Sfondi/1080+/1440+"; };
lockscreen = final.callPackage ./custom/lockscreen { palette = final.rice.colorPalette; font = final.rice.font.normal; };
sddm-theme-clairvoyance = final.callPackage ./custom/sddm-theme-clairvoyance { wallpaper = ./wallpapers/comfy_waves.jpg; };
update-background = final.callPackage ./custom/update-background {
backgrounds_directory = "$HOME/Immagini/Sfondi/1080+/1440+";
};
lockscreen = final.callPackage ./custom/lockscreen {
palette = final.rice.colorPalette;
font = final.rice.font.normal;
};
sddm-theme-clairvoyance =
final.callPackage ./custom/sddm-theme-clairvoyance {
wallpaper = ./wallpapers/comfy_waves.jpg;
};
})
];
defaultConfig = {
@ -44,10 +80,18 @@
allowUnfree = true;
permittedInsecurePackages = [ "electron-9.4.4" ]; # authy dependency
};
nixpkgsSettings = { system, overlays ? overlaysBuilder system, config ? defaultConfig }: { inherit system overlays config; };
nixpkgsSettings =
{ system, overlays ? overlaysBuilder system, config ? defaultConfig }: {
inherit system overlays config;
};
pkgs = s: import nixpkgs (nixpkgsSettings s);
pkgs-u = s: import nixpkgs-u (nixpkgsSettings s);
homeManagerSettings = { home-manager = { useGlobalPkgs = true; useUserPackages = true; }; };
homeManagerSettings = {
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
};
};
commonBaseModules = [
./nixos_modules/bertof_user.nix
@ -79,22 +123,22 @@
odinIntelModules = [ ./odin/configuration-intel.nix ];
odinNvidiaModules = [ ./odin/configuration-nvidia.nix ];
odinIntelBuilder = { extraModules ? [ ] }: nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
modules =
[{ nixpkgs = nixpkgsSettings { inherit system; }; }] ++
commonBaseModules ++ odinBaseModules ++ odinIntelModules ++
(homeManagerModules { bertof = import ./odin/hm.nix; }) ++
extraModules;
};
odinNvidiaBuilder = { extraModules ? [ ] }: nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
modules =
[{ nixpkgs = nixpkgsSettings { inherit system; }; }] ++
commonBaseModules ++ odinBaseModules ++ odinNvidiaModules ++
(homeManagerModules { bertof = import ./odin/hm.nix; }) ++
extraModules;
};
odinIntelBuilder = { extraModules ? [ ] }:
nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
modules = [{ nixpkgs = nixpkgsSettings { inherit system; }; }]
++ commonBaseModules ++ odinBaseModules ++ odinIntelModules
++ (homeManagerModules { bertof = import ./odin/hm.nix; })
++ extraModules;
};
odinNvidiaBuilder = { extraModules ? [ ] }:
nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
modules = [{ nixpkgs = nixpkgsSettings { inherit system; }; }]
++ commonBaseModules ++ odinBaseModules ++ odinNvidiaModules
++ (homeManagerModules { bertof = import ./odin/hm.nix; })
++ extraModules;
};
thorBaseModules = [
./thor/hardware-configuration.nix
@ -102,14 +146,14 @@
nixos-hardware.nixosModules.common-pc-ssd
./thor/configuration.nix
];
thorBuilder = { extraModules ? [ ] }: nixpkgs-u.lib.nixosSystem rec {
system = "x86_64-linux";
modules =
[{ nixpkgs = nixpkgsSettings { inherit system; }; }] ++
commonBaseModules ++ thorBaseModules ++
(homeManagerUModules { bertof = import ./thor/hm.nix; }) ++
extraModules;
};
thorBuilder = { extraModules ? [ ] }:
nixpkgs-u.lib.nixosSystem rec {
system = "x86_64-linux";
modules = [{ nixpkgs = nixpkgsSettings { inherit system; }; }]
++ commonBaseModules ++ thorBaseModules
++ (homeManagerUModules { bertof = import ./thor/hm.nix; })
++ extraModules;
};
lokiBaseModules = [
./loki/hardware-configuration.nix
@ -117,39 +161,38 @@
nixos-hardware.nixosModules.common-pc-ssd
./loki/configuration.nix
];
lokiBuilder = { extraModules ? [ ] }: nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
modules =
[{ nixpkgs = nixpkgsSettings { inherit system; }; }] ++
commonBaseModules ++ lokiBaseModules ++
(homeManagerModules { bertof = import ./loki/hm.nix; }) ++
extraModules;
};
lokiBuilder = { extraModules ? [ ] }:
nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
modules = [{ nixpkgs = nixpkgsSettings { inherit system; }; }]
++ commonBaseModules ++ lokiBaseModules
++ (homeManagerModules { bertof = import ./loki/hm.nix; })
++ extraModules;
};
freyaBaseModules = [
# ./freya/hardware-configuration.nix
nixos-hardware.nixosModules.raspberry-pi."4"
./freya/configuration.nix
];
freyaBuilder = { extraModules ? [ ] }: nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
modules =
[{ nixpkgs = nixpkgsSettings { inherit system; }; }] ++
commonBaseModules ++ freyaBaseModules ++
(homeManagerModules { bertof = import ./freya/hm.nix; }) ++
extraModules;
};
freyaBuilder = { extraModules ? [ ] }:
nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
modules = [{ nixpkgs = nixpkgsSettings { inherit system; }; }]
++ commonBaseModules ++ freyaBaseModules
++ (homeManagerModules { bertof = import ./freya/hm.nix; })
++ extraModules;
};
baldurBaseModules = [
./baldur/configuration.nix
];
balurBuilder = { extraModules ? [ ] }: nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
modules = [{ nixpkgs = nixpkgsSettings { inherit system; }; }] ++
commonBaseModules ++ baldurBaseModules ++
(homeManagerModules { bertof = import ./baldur/hm.nix; }) ++
extraModules;
};
baldurBaseModules = [ ./baldur/configuration.nix ];
balurBuilder = { extraModules ? [ ] }:
nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
modules = [{ nixpkgs = nixpkgsSettings { inherit system; }; }]
++ commonBaseModules ++ baldurBaseModules
++ (homeManagerModules { bertof = import ./baldur/hm.nix; })
++ extraModules;
};
in
(flake-utils.lib.eachDefaultSystem (system: rec {
packages = pkgs-u { inherit system; };
@ -157,7 +200,10 @@
checks = {
pre-commit-check = pre-commit-hooks.lib.${system}.run {
src = ./.;
hooks = { nixpkgs-fmt.enable = true; nix-linter.enable = true; };
hooks = {
nixpkgs-fmt.enable = true;
nix-linter.enable = true;
};
};
};

View file

@ -1,6 +1,5 @@
{ pkgs, lib, ... }:
with lib;
{
with lib; {
boot = {
binfmt.emulatedSystems = [ "armv7l-linux" "aarch64-linux" ];
kernelPackages = pkgs.linuxPackages_5_18;
@ -24,8 +23,14 @@ with lib;
programs = {
dconf.enable = true;
gnupg.agent = { enable = true; enableSSHSupport = true; };
zsh = { enable = true; syntaxHighlighting.enable = true; };
gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
zsh = {
enable = true;
syntaxHighlighting.enable = true;
};
};
networking = {
@ -63,7 +68,12 @@ with lib;
# jellyfin = { enable = true; openFirewall = true; group = "users"; };
# logind.lidSwitch = "ignore";
# node-red = { enable = true; openFirewall = true; withNpmAndGcc = true; };
openssh = { enable = true; openFirewall = true; permitRootLogin = "no"; passwordAuthentication = false; };
openssh = {
enable = true;
openFirewall = true;
permitRootLogin = "no";
passwordAuthentication = false;
};
# plex = { enable = true; openFirewall = true; group = "users"; };
# power-profiles-daemon.enable = true;
# radarr = { enable = true; openFirewall = true; group = "users"; };
@ -136,7 +146,10 @@ with lib;
# };
# };
# };
smartd = { enable = true; notifications.x11.enable = true; };
smartd = {
enable = true;
notifications.x11.enable = true;
};
# sonarr = { enable = true; openFirewall = true; group = "users"; };
thermald.enable = true;
# transmission = {
@ -173,7 +186,17 @@ with lib;
users.users = {
bertof = {
isNormalUser = true;
extraGroups = [ "audio" "input" "docker" "libvirtd" "network" "networkmanager" "usb" "video" "wheel" ];
extraGroups = [
"audio"
"input"
"docker"
"libvirtd"
"network"
"networkmanager"
"usb"
"video"
"wheel"
];
shell = pkgs.zsh;
};
# tiziano = {

View file

@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{ pkgs, ... }: {
nixpkgs.overlays = [
(_: _: {
devEnvironment = (import ./environment.nix) {

View file

@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{ pkgs, ... }: {
home = {
language.base = "it_IT.UTF-8";
packages = with pkgs; [

View file

@ -1,31 +1,32 @@
{ pkgs, ... }:
let
strPalette = with pkgs.rice; pkgs.lib.rice.palette.toRgbHex rec {
inherit (colorPalette) normal bright;
dim = colorPalette.dark;
strPalette = with pkgs.rice;
pkgs.lib.rice.palette.toRgbHex rec {
inherit (colorPalette) normal bright;
dim = colorPalette.dark;
primary = {
background = normal.black;
foreground = normal.white;
dim_foreground = dim.white;
};
cursor = {
cursor = normal.white;
text = normal.black;
};
vi_mode_cursor = {
cursor = normal.white;
text = normal.black;
};
selection.background = dim.blue;
search = {
matches.background = dim.cyan;
bar = {
foreground = dim.cyan;
background = dim.yellow;
primary = {
background = normal.black;
foreground = normal.white;
dim_foreground = dim.white;
};
cursor = {
cursor = normal.white;
text = normal.black;
};
vi_mode_cursor = {
cursor = normal.white;
text = normal.black;
};
selection.background = dim.blue;
search = {
matches.background = dim.cyan;
bar = {
foreground = dim.cyan;
background = dim.yellow;
};
};
};
};
in
{
# Include fonts packages
@ -45,10 +46,11 @@ in
# hide_when_typing = true;
hints.modifiers = "Control";
};
colors = with pkgs.rice; strPalette // {
selection.text = "CellForeground";
search.matches.foreground = "CellForeground";
};
colors = with pkgs.rice;
strPalette // {
selection.text = "CellForeground";
search.matches.foreground = "CellForeground";
};
};
};
}

View file

@ -1,7 +0,0 @@
{ pkgs, ... }:
{
programs.zsh.enable = true;
programs.zsh.initExtra = ''
source <(${pkgs.any-nix-shell}/bin/any-nix-shell zsh --info-right)
'';
}

View file

@ -5,7 +5,8 @@
let
dell-laptop = {
dpi = 96;
fingerprint = "00ffffffffffff0030e43f0500000000001a010495221378eaa1c59459578f27205054000000010101010101010101010101010101012e3680a070381f403020350058c21000001a5c2b80a070381f403020350058c21000001a000000fe0034584b3133803135365746360a000000000000413196001000000a010a202000c5";
fingerprint =
"00ffffffffffff0030e43f0500000000001a010495221378eaa1c59459578f27205054000000010101010101010101010101010101012e3680a070381f403020350058c21000001a5c2b80a070381f403020350058c21000001a000000fe0034584b3133803135365746360a000000000000413196001000000a010a202000c5";
mode = "1920x1080";
};
in
@ -13,43 +14,87 @@
odin-nvidia = {
fingerprint = { "eDP-1-1" = dell-laptop.fingerprint; };
config = {
"eDP-1-1" = { inherit (dell-laptop) mode dpi; primary = true; crtc = 0; };
"eDP-1-1" = {
inherit (dell-laptop) mode dpi;
primary = true;
crtc = 0;
};
};
};
odin-intel = {
fingerprint = { "eDP1" = dell-laptop.fingerprint; };
config = {
"eDP1" = { inherit (dell-laptop) mode dpi; primary = true; crtc = 0; };
"eDP1" = {
inherit (dell-laptop) mode dpi;
primary = true;
crtc = 0;
};
};
};
odin-intel-laboratorio-dock-dell = {
fingerprint = {
"DP1-3" = "00ffffffffffff0010ac10d04c36453221110103682b1b78ee8db0a2544a9c25115054a54b00714f818001010101010101010101010121399030621a274068b03600ae0e1100001c000000ff00434b3632373738413245364c0a000000fd00384b1e530f000a202020202020000000fc0044454c4c20453230375746500a0088";
"DP1-3" =
"00ffffffffffff0010ac10d04c36453221110103682b1b78ee8db0a2544a9c25115054a54b00714f818001010101010101010101010121399030621a274068b03600ae0e1100001c000000ff00434b3632373738413245364c0a000000fd00384b1e530f000a202020202020000000fc0044454c4c20453230375746500a0088";
"eDP1" = dell-laptop.fingerprint;
};
config = {
"DP1-3" = { crtc = 1; mode = "1680x1050"; position = "120x0"; primary = true; dpi = 96; };
"eDP1" = { inherit (dell-laptop) mode dpi; crtc = 0; position = "0x1080"; };
"DP1-3" = {
crtc = 1;
mode = "1680x1050";
position = "120x0";
primary = true;
dpi = 96;
};
"eDP1" = {
inherit (dell-laptop) mode dpi;
crtc = 0;
position = "0x1080";
};
};
};
odin-intel-laboratorio = {
fingerprint = {
"DP1-3" = "00ffffffffffff0010ac71404c473344281601030e331d78eadd45a3554fa027125054a54b00714f8180d1c001010101010101010101023a801871382d40582c4500fe1f1100001e000000ff004b463837593241364433474c0a000000fc0044454c4c205532333132484d0a000000fd00384c1e5311000a2020202020200081";
"DP1-3" =
"00ffffffffffff0010ac71404c473344281601030e331d78eadd45a3554fa027125054a54b00714f8180d1c001010101010101010101023a801871382d40582c4500fe1f1100001e000000ff004b463837593241364433474c0a000000fc0044454c4c205532333132484d0a000000fd00384c1e5311000a2020202020200081";
"eDP1" = dell-laptop.fingerprint;
};
config = {
"DP1-3" = { crtc = 1; mode = "1920x1080"; position = "0x0"; primary = true; dpi = 96; };
"eDP1" = { inherit (dell-laptop) mode dpi; crtc = 0; position = "0x1080"; };
"DP1-3" = {
crtc = 1;
mode = "1920x1080";
position = "0x0";
primary = true;
dpi = 96;
};
"eDP1" = {
inherit (dell-laptop) mode dpi;
crtc = 0;
position = "0x1080";
};
};
};
thor-two-screens = {
fingerprint = {
"DP-4" = "00ffffffffffff001e6d7f5ba1c60a00011f0104b53c22789f8cb5af4f43ab260e5054254b007140818081c0a9c0b300d1c08100d1cf09ec00a0a0a0675030203a0055502100001a000000fd0030901ee63c000a202020202020000000fc004c4720554c545241474541520a000000ff003130314e5454514c533230390a017102031a7123090607e305c000e606050160592846100403011f136fc200a0a0a0555030203a0055502100001a565e00a0a0a029503020350055502100001a5aa000a0a0a0465030203a005550210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000da";
"HDMI-0" = "00ffffffffffff004c2d2c0d443650302e19010380341d782a5295a556549d250e5054bb8c00b30081c0810081809500a9c001010101023a801871382d40582c450009252100001e000000fd0030481e5216000a202020202020000000fc00433234463339300a2020202020000000ff00485451483330353636370a20200163020324f14690041f131203230907078301000067030c001000802b681a00000101304800011d00bc52d01e20b828554009252100001e8c0ad090204031200c4055000925210000188c0ad08a20e02d10103e9600092521000018215280a07238304088c8350009252100001c00000000000000000000000000000000000000fa";
"DP-4" =
"00ffffffffffff001e6d7f5ba1c60a00011f0104b53c22789f8cb5af4f43ab260e5054254b007140818081c0a9c0b300d1c08100d1cf09ec00a0a0a0675030203a0055502100001a000000fd0030901ee63c000a202020202020000000fc004c4720554c545241474541520a000000ff003130314e5454514c533230390a017102031a7123090607e305c000e606050160592846100403011f136fc200a0a0a0555030203a0055502100001a565e00a0a0a029503020350055502100001a5aa000a0a0a0465030203a005550210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000da";
"HDMI-0" =
"00ffffffffffff004c2d2c0d443650302e19010380341d782a5295a556549d250e5054bb8c00b30081c0810081809500a9c001010101023a801871382d40582c450009252100001e000000fd0030481e5216000a202020202020000000fc00433234463339300a2020202020000000ff00485451483330353636370a20200163020324f14690041f131203230907078301000067030c001000802b681a00000101304800011d00bc52d01e20b828554009252100001e8c0ad090204031200c4055000925210000188c0ad08a20e02d10103e9600092521000018215280a07238304088c8350009252100001c00000000000000000000000000000000000000fa";
};
config = {
"DP-4" = { crtc = 0; mode = "2560x1440"; position = "1080x162"; primary = true; dpi = 96; };
"HDMI-0" = { crtc = 1; mode = "1920x1080"; position = "0x0"; rotate = "right"; dpi = 96; };
"DP-4" = {
crtc = 0;
mode = "2560x1440";
position = "1080x162";
primary = true;
dpi = 96;
};
"HDMI-0" = {
crtc = 1;
mode = "1920x1080";
position = "0x0";
rotate = "right";
dpi = 96;
};
};
};
};

View file

@ -1,8 +1,6 @@
{ pkgs, ... }:
let
tomlGenerate = (pkgs.formats.toml { }).generate "bottom-toml";
in
{
let tomlGenerate = (pkgs.formats.toml { }).generate "bottom-toml";
in {
home.packages = with pkgs; [ bottom ];
xdg.configFile."bottom/bottom.toml".source = tomlGenerate {
"flags" = {

View file

@ -1,11 +1,14 @@
{ pkgs, lib, ... }:
let
strPalette = with pkgs.rice; pkgs.lib.rice.palette.toRgbHex colorPalette;
fmtString = str: "\'${str}\'";
fmtString = str: "'${str}'";
in
{
xdg.configFile."cava/config".text = lib.generators.toINI { } {
general = { bar_width = 1; bar_spacing = 1; };
general = {
bar_width = 1;
bar_spacing = 1;
};
color = {
gradient = 1;
gradient_count = 5;

View file

@ -1,6 +1 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
clang-tools
];
}
{ pkgs, ... }: { home.packages = with pkgs; [ clang-tools ]; }

View file

@ -1,8 +1,6 @@
{ pkgs, ... }:
let
palette = pkgs.lib.rice.palette.toRGBHex pkgs.rice.colorPalette;
in
{
let palette = pkgs.lib.rice.palette.toRGBHex pkgs.rice.colorPalette;
in {
home.packages = with pkgs; [ dunst rice.font.normal.package ];
services.dunst = {
enable = true;

View file

@ -1,3 +1 @@
{
services.easyeffects.enable = true;
}
{ services.easyeffects.enable = true; }

View file

@ -1,8 +1,5 @@
{ pkgs, ... }:
{
fonts.fontconfig = {
enable = true;
};
{ pkgs, ... }: {
fonts.fontconfig = { enable = true; };
home.packages = with pkgs; [
dejavu_fonts
noto-fonts

View file

@ -44,11 +44,13 @@ let
"gdw" = "git diff --word-diff";
"gf" = "git fetch";
"gfa" = "git fetch --all --prune";
"gfg" = "git ls-files \| grep";
"gfg" = "git ls-files | grep";
"gignored" = ''git ls-files -v \| grep"^[[ :lower: ]]"'';
"glo" = "git log --oneline --decorate";
"glols" = "git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --stat";
"glola" = "git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --all";
"glols" =
"git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --stat";
"glola" =
"git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --all";
"glog" = "git log --oneline --decorate --graph";
"gloga" = "git log --oneline --decorate --graph --all";
"gm" = "git merge";
@ -117,10 +119,5 @@ in
};
programs.bash.shellAliases = shellAliases;
programs.zsh.shellAliases = shellAliases;
home.packages = with pkgs; [
gh
git-secret
glab
meld
];
home.packages = with pkgs; [ gh git-secret glab meld ];
}

View file

@ -4,7 +4,5 @@
goPath = ".go";
};
home.packages = with pkgs; [
gopls
];
home.packages = with pkgs; [ gopls ];
}

View file

@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{ pkgs, ... }: {
gtk = with pkgs.rice; {
enable = true;
font = font.normal;

View file

@ -1,36 +1,37 @@
{ pkgs, ... }:
{
{ pkgs, ... }: {
programs.bash.shellAliases = { x = "hx"; };
programs.zsh.shellAliases = { x = "hx"; };
home.sessionVariables = { EDITOR = "hx"; VISUAL = "hx"; };
home.sessionVariables = {
EDITOR = "hx";
VISUAL = "hx";
};
home.packages = [
(pkgs.makeDesktopItem
{
name = "helix";
exec = "hx %F";
icon = "helix";
desktopName = "Helix";
comment = "Helix text editor";
terminal = true;
categories = [ "Development" ];
mimeTypes = [
"text/english"
"text/plain"
"text/x-makefile"
"text/x-c++hdr"
"text/x-c++src"
"text/x-chdr"
"text/x-csrc"
"text/x-java"
"text/x-moc"
"text/x-pascal"
"text/x-tcl"
"text/x-tex"
"application/x-shellscript"
"text/x-c"
"text/x-c++"
];
})
(pkgs.makeDesktopItem {
name = "helix";
exec = "hx %F";
icon = "helix";
desktopName = "Helix";
comment = "Helix text editor";
terminal = true;
categories = [ "Development" ];
mimeTypes = [
"text/english"
"text/plain"
"text/x-makefile"
"text/x-c++hdr"
"text/x-c++src"
"text/x-chdr"
"text/x-csrc"
"text/x-java"
"text/x-moc"
"text/x-pascal"
"text/x-tcl"
"text/x-tex"
"application/x-shellscript"
"text/x-c"
"text/x-c++"
];
})
];
programs.helix = {
enable = true;
@ -65,15 +66,34 @@
base16 = {
"ui.menu" = transparent;
"ui.menu.selected" = { modifiers = [ "reversed" ]; };
"ui.linenr" = { fg = gray; bg = dark-gray; };
"ui.linenr" = {
fg = gray;
bg = dark-gray;
};
"ui.popup" = { modifiers = [ "reversed" ]; };
"ui.linenr.selected" = { fg = white; bg = black; modifiers = [ "bold" ]; };
"ui.selection" = { fg = black; bg = blue; };
"ui.linenr.selected" = {
fg = white;
bg = black;
modifiers = [ "bold" ];
};
"ui.selection" = {
fg = black;
bg = blue;
};
"ui.selection.primary" = { modifiers = [ "reversed" ]; };
"comment" = { fg = gray; };
"ui.statusline" = { fg = white; bg = dark-gray; };
"ui.statusline.inactive" = { fg = dark-gray; bg = white; };
"ui.help" = { fg = dark-gray; bg = white; };
"ui.statusline" = {
fg = white;
bg = dark-gray;
};
"ui.statusline.inactive" = {
fg = dark-gray;
bg = white;
};
"ui.help" = {
fg = dark-gray;
bg = white;
};
"ui.cursor" = { modifiers = [ "reversed" ]; };
"variable" = red;
"variable.builtin" = orange;
@ -81,7 +101,10 @@
"constant" = orange;
"attributes" = yellow;
"type" = yellow;
"ui.cursor.match" = { fg = yellow; modifiers = [ "underlined" ]; };
"ui.cursor.match" = {
fg = yellow;
modifiers = [ "underlined" ];
};
"string" = green;
"variable.other.member" = red;
"constant.character.escape" = cyan;

View file

@ -1,5 +1 @@
{
programs.info = {
enable = true;
};
}
{ programs.info = { enable = true; }; }

View file

@ -1,3 +1 @@
{
programs.java.enable = true;
}
{ programs.java.enable = true; }

View file

@ -1,7 +1,2 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
flow
];
}
{ pkgs, ... }: { home.packages = with pkgs; [ flow ]; }

View file

@ -1,17 +1,13 @@
{ pkgs, ... }:
let
joystickwakeCmd = "${pkgs.joystickwake}/bin/joystickwake";
in
{
let joystickwakeCmd = "${pkgs.joystickwake}/bin/joystickwake";
in {
systemd.user.services."joystickwake" = {
Unit = {
Description = "Keep lockscreen from activating";
After = [ "graphical-session.target" ];
PartOf = [ "graphical-session.target" ];
};
Install = {
WantedBy = [ "graphical-session.target" ];
};
Install = { WantedBy = [ "graphical-session.target" ]; };
Service = {
Type = "simple";
ExecStart = joystickwakeCmd;

View file

@ -1,5 +1 @@
{
programs.jq = {
enable = true;
};
}
{ programs.jq = { enable = true; }; }

View file

@ -1,33 +1,34 @@
{ pkgs, ... }:
let
themeBuilder = palette: with palette; ''
set-face global value rgb:${normal.magenta},default
set-face global type rgb:${bright.white},default
set-face global identifier rgb:${normal.cyan},default
set-face global string rgb:${normal.green},default
set-face global error rgb:${normal.red},default
set-face global keyword rgb:${normal.blue},default
set-face global operator rgb:${normal.blue},default
set-face global attribute rgb:${bright.blue},default
set-face global comment rgb:${bright.blue},default
set-face global meta rgb:${normal.yellow},default
set-face global Default rgb:${normal.white},default
set-face global PrimarySelection rgb:${normal.black},rgb:${dark.yellow}
set-face global SecondarySelection rgb:${normal.black},rgb:${dark.white}
set-face global PrimaryCursor rgb:${normal.black},rgb:${normal.yellow}
set-face global SecondaryCursor rgb:${normal.black},rgb:${normal.white}
set-face global MenuForeground rgb:${normal.white},rgb:${bright.black}
set-face global MenuBackground default,rgb:${normal.black}
set-face global MenuInfo default,rgb:${normal.black}
set-face global Information rgb:${dark.black},rgb:${normal.cyan}
set-face global StatusLine rgb:${normal.white},rgb:${normal.black}
set-face global StatusLineMode rgb:${normal.blue},rgb:${normal.black}
set-face global StatusLineInfo rgb:${normal.blue},rgb:${normal.black}
set-face global StatusLineValue rgb:${normal.blue},rgb:${normal.black}
set-face global StatusCursor rgb:${dark.black},rgb:${normal.yellow}
set-face global Prompt rgb:${normal.cyan},rgb:${normal.black}
set-face global BufferPadding default,default
'';
themeBuilder = palette:
with palette; ''
set-face global value rgb:${normal.magenta},default
set-face global type rgb:${bright.white},default
set-face global identifier rgb:${normal.cyan},default
set-face global string rgb:${normal.green},default
set-face global error rgb:${normal.red},default
set-face global keyword rgb:${normal.blue},default
set-face global operator rgb:${normal.blue},default
set-face global attribute rgb:${bright.blue},default
set-face global comment rgb:${bright.blue},default
set-face global meta rgb:${normal.yellow},default
set-face global Default rgb:${normal.white},default
set-face global PrimarySelection rgb:${normal.black},rgb:${dark.yellow}
set-face global SecondarySelection rgb:${normal.black},rgb:${dark.white}
set-face global PrimaryCursor rgb:${normal.black},rgb:${normal.yellow}
set-face global SecondaryCursor rgb:${normal.black},rgb:${normal.white}
set-face global MenuForeground rgb:${normal.white},rgb:${bright.black}
set-face global MenuBackground default,rgb:${normal.black}
set-face global MenuInfo default,rgb:${normal.black}
set-face global Information rgb:${dark.black},rgb:${normal.cyan}
set-face global StatusLine rgb:${normal.white},rgb:${normal.black}
set-face global StatusLineMode rgb:${normal.blue},rgb:${normal.black}
set-face global StatusLineInfo rgb:${normal.blue},rgb:${normal.black}
set-face global StatusLineValue rgb:${normal.blue},rgb:${normal.black}
set-face global StatusCursor rgb:${dark.black},rgb:${normal.yellow}
set-face global Prompt rgb:${normal.cyan},rgb:${normal.black}
set-face global BufferPadding default,default
'';
packages = with pkgs; [
yaml-language-server
@ -40,33 +41,32 @@ let
aspellDicts.en-science
aspellDicts.it
(pkgs.makeDesktopItem
{
name = "kakoune";
exec = "kak %F";
icon = "kakoune";
desktopName = "Kakoune";
comment = "Kakoune text editor";
terminal = true;
categories = [ "Development" ];
mimeTypes = [
"text/english"
"text/plain"
"text/x-makefile"
"text/x-c++hdr"
"text/x-c++src"
"text/x-chdr"
"text/x-csrc"
"text/x-java"
"text/x-moc"
"text/x-pascal"
"text/x-tcl"
"text/x-tex"
"application/x-shellscript"
"text/x-c"
"text/x-c++"
];
})
(pkgs.makeDesktopItem {
name = "kakoune";
exec = "kak %F";
icon = "kakoune";
desktopName = "Kakoune";
comment = "Kakoune text editor";
terminal = true;
categories = [ "Development" ];
mimeTypes = [
"text/english"
"text/plain"
"text/x-makefile"
"text/x-c++hdr"
"text/x-c++src"
"text/x-chdr"
"text/x-csrc"
"text/x-java"
"text/x-moc"
"text/x-pascal"
"text/x-tcl"
"text/x-tex"
"application/x-shellscript"
"text/x-c"
"text/x-c++"
];
})
];
in
@ -81,40 +81,166 @@ in
tabStop = 2;
indentWidth = 2;
alignWithTabs = true;
scrollOff = { lines = 5; columns = 3; };
ui = { setTitle = true; changeColors = true; enableMouse = true; };
wrapLines = { enable = true; word = true; };
numberLines = { enable = true; highlightCursor = true; };
scrollOff = {
lines = 5;
columns = 3;
};
ui = {
setTitle = true;
changeColors = true;
enableMouse = true;
};
wrapLines = {
enable = true;
word = true;
};
numberLines = {
enable = true;
highlightCursor = true;
};
keyMappings = [
{ mode = "normal"; docstring = "Edit file"; key = "<c-e>"; effect = ":edit<space>"; }
{ mode = "user"; docstring = "Code actions"; key = "a"; effect = ":lsp-code-actions<ret>"; }
{ mode = "user"; docstring = "Comment block"; key = "b"; effect = ":comment-block<ret>"; }
{ mode = "user"; docstring = "Comment line"; key = "l"; effect = ":comment-line<ret>"; }
{ mode = "user"; docstring = "Copy to clipboard"; key = "y"; effect = "<a-|>${pkgs.xclip}/bin/xclip -i -selection clipboard<ret>"; }
{ mode = "user"; docstring = "Format code with formatter"; key = "f"; effect = ":format<ret>"; }
{ mode = "user"; docstring = "Format code with LSP"; key = "F"; effect = ":lsp-formatting-sync<ret>"; }
{ mode = "user"; docstring = "Jump to definition"; key = "d"; effect = ":lsp-definition<ret>"; }
{ mode = "user"; docstring = "Rename object"; key = "r"; effect = ":lsp-rename-prompt<ret>"; }
{ mode = "user"; docstring = "Jump to type definition"; key = "t"; effect = ":lsp-type-definition<ret>"; }
{ mode = "user"; docstring = "List project diagnostics"; key = "i"; effect = ":lsp-diagnostics<ret>"; }
{ mode = "user"; docstring = "Paste from clipboard (after)"; key = "P"; effect = "<a-!>${pkgs.xclip}/bin/xclip -selection clipboard -o<ret>"; }
{ mode = "user"; docstring = "Paste from clipboard (before)"; key = "p"; effect = "!${pkgs.xclip}/bin/xclip -selection clipboard -o<ret>"; }
{ mode = "user"; docstring = "Show hover info"; key = "q"; effect = ":lsp-hover<ret>"; }
{ mode = "user"; docstring = "Spellcheck English"; key = "S"; effect = ":spell en<ret>"; }
{ mode = "user"; docstring = "Spellcheck"; key = "s"; effect = ":spell "; }
{ mode = "normal"; docstring = "Try next snippet placeholder"; key = "<c-n>"; effect = "<a-;>: insert-c-n<ret>"; }
{
mode = "normal";
docstring = "Edit file";
key = "<c-e>";
effect = ":edit<space>";
}
{
mode = "user";
docstring = "Code actions";
key = "a";
effect = ":lsp-code-actions<ret>";
}
{
mode = "user";
docstring = "Comment block";
key = "b";
effect = ":comment-block<ret>";
}
{
mode = "user";
docstring = "Comment line";
key = "l";
effect = ":comment-line<ret>";
}
{
mode = "user";
docstring = "Copy to clipboard";
key = "y";
effect = "<a-|>${pkgs.xclip}/bin/xclip -i -selection clipboard<ret>";
}
{
mode = "user";
docstring = "Format code with formatter";
key = "f";
effect = ":format<ret>";
}
{
mode = "user";
docstring = "Format code with LSP";
key = "F";
effect = ":lsp-formatting-sync<ret>";
}
{
mode = "user";
docstring = "Jump to definition";
key = "d";
effect = ":lsp-definition<ret>";
}
{
mode = "user";
docstring = "Rename object";
key = "r";
effect = ":lsp-rename-prompt<ret>";
}
{
mode = "user";
docstring = "Jump to type definition";
key = "t";
effect = ":lsp-type-definition<ret>";
}
{
mode = "user";
docstring = "List project diagnostics";
key = "i";
effect = ":lsp-diagnostics<ret>";
}
{
mode = "user";
docstring = "Paste from clipboard (after)";
key = "P";
effect = "<a-!>${pkgs.xclip}/bin/xclip -selection clipboard -o<ret>";
}
{
mode = "user";
docstring = "Paste from clipboard (before)";
key = "p";
effect = "!${pkgs.xclip}/bin/xclip -selection clipboard -o<ret>";
}
{
mode = "user";
docstring = "Show hover info";
key = "q";
effect = ":lsp-hover<ret>";
}
{
mode = "user";
docstring = "Spellcheck English";
key = "S";
effect = ":spell en<ret>";
}
{
mode = "user";
docstring = "Spellcheck";
key = "s";
effect = ":spell ";
}
{
mode = "normal";
docstring = "Try next snippet placeholder";
key = "<c-n>";
effect = "<a-;>: insert-c-n<ret>";
}
# { mode = "normal"; docstring = "Search"; key = "/"; effect = "/(?i)"; }
# { mode = "normal"; docstring = "Reverse search"; key = "<a-/>"; effect = "<a-/>(?i)"; }
];
hooks = with pkgs; [
{ name = "BufCreate"; option = ".*"; commands = "editorconfig-load"; }
{
name = "BufCreate";
option = ".*";
commands = "editorconfig-load";
}
# { name = "ModuleLoaded"; option = "auto-pairs"; commands = "auto-pairs-enable"; }
{ name = "ModuleLoaded"; option = "powerline"; commands = "powerline-enable; powerline-start"; }
{ name = "BufSetOption"; option = "filetype=latex"; commands = "set-option buffer formatcmd latexindent"; }
{ name = "BufSetOption"; option = "filetype=python"; commands = "set-option buffer formatcmd 'black -'"; }
{ name = "BufSetOption"; option = "filetype=(markdown|html|json|yaml|css|scss|less)"; commands = "set-option buffer formatcmd prettier"; }
{ name = "BufSetOption"; option = "filetype=rust"; commands = "set-option buffer formatcmd 'rustfmt'"; }
{ name = "BufSetOption"; option = "filetype=sh"; commands = "set-option buffer formatcmd 'rustfmt'"; }
{
name = "ModuleLoaded";
option = "powerline";
commands = "powerline-enable; powerline-start";
}
{
name = "BufSetOption";
option = "filetype=latex";
commands = "set-option buffer formatcmd latexindent";
}
{
name = "BufSetOption";
option = "filetype=python";
commands = "set-option buffer formatcmd 'black -'";
}
{
name = "BufSetOption";
option = "filetype=(markdown|html|json|yaml|css|scss|less)";
commands = "set-option buffer formatcmd prettier";
}
{
name = "BufSetOption";
option = "filetype=rust";
commands = "set-option buffer formatcmd 'rustfmt'";
}
{
name = "BufSetOption";
option = "filetype=sh";
commands = "set-option buffer formatcmd 'rustfmt'";
}
];
# TODO add more formatters from https://github.com/mawww/kakoune/wiki/Format
};
@ -148,7 +274,8 @@ in
};
# THEME FILE
xdg.configFile."kak/colors/nord.kak".text = themeBuilder (pkgs.lib.rice.palette.toRgbShortHex pkgs.rice.colorPalette);
xdg.configFile."kak/colors/nord.kak".text =
themeBuilder (pkgs.lib.rice.palette.toRgbShortHex pkgs.rice.colorPalette);
xdg.configFile."kak-lsp/kak-lsp.toml".text = ''
snippet_support = false

View file

@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{ pkgs, ... }: {
config.systemd.user.services.keepassxc = {
Unit = {
Description = "KeePassXC password manager";

View file

@ -1,25 +1,26 @@
{ pkgs, ... }:
let
strPalette = with pkgs.rice; pkgs.lib.rice.palette.toRgbHex rec {
foreground = colorPalette.normal.white;
background = colorPalette.normal.black;
color0 = colorPalette.normal.black;
color1 = colorPalette.normal.red;
color2 = colorPalette.normal.green;
color3 = colorPalette.normal.yellow;
color4 = colorPalette.normal.blue;
color5 = colorPalette.normal.magenta;
color6 = colorPalette.normal.cyan;
color7 = colorPalette.normal.white;
color8 = colorPalette.bright.black;
color9 = colorPalette.bright.red;
color10 = colorPalette.bright.green;
color11 = colorPalette.bright.yellow;
color12 = colorPalette.bright.blue;
color13 = colorPalette.bright.magenta;
color14 = colorPalette.bright.cyan;
color15 = colorPalette.bright.white;
};
strPalette = with pkgs.rice;
pkgs.lib.rice.palette.toRgbHex rec {
foreground = colorPalette.normal.white;
background = colorPalette.normal.black;
color0 = colorPalette.normal.black;
color1 = colorPalette.normal.red;
color2 = colorPalette.normal.green;
color3 = colorPalette.normal.yellow;
color4 = colorPalette.normal.blue;
color5 = colorPalette.normal.magenta;
color6 = colorPalette.normal.cyan;
color7 = colorPalette.normal.white;
color8 = colorPalette.bright.black;
color9 = colorPalette.bright.red;
color10 = colorPalette.bright.green;
color11 = colorPalette.bright.yellow;
color12 = colorPalette.bright.blue;
color13 = colorPalette.bright.magenta;
color14 = colorPalette.bright.cyan;
color15 = colorPalette.bright.white;
};
in
{
programs.kitty = {
@ -32,7 +33,8 @@ in
update_check_interval = 0;
background_opacity = toString pkgs.rice.opacity;
close_on_child_death = "yes";
clipboard_control = "write-clipboard write-primary read-clipboard read-primary";
clipboard_control =
"write-clipboard write-primary read-clipboard read-primary";
disable_ligatures = "never";
editor = "kak";
} // strPalette;

View file

@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{ pkgs, ... }: {
home.packages = with pkgs; [
bibtool
tex2nix

View file

@ -34,43 +34,46 @@ in
source = lf_kitty_preview;
# keybinding = "i";
};
keybindings = {
"<c-f>" = "$EDITOR $(fzf)";
};
keybindings = { "<c-f>" = "$EDITOR $(fzf)"; };
commands = {
"z" = ''''${{
result="$(zoxide query --exclude "$PWD" -- "$@")"
lf -remote "send $id cd '$result'"
}}'';
"zi" = ''''${{
result="$(zoxide query -i -- "$@")"
lf -remote "send $id cd '$result'"
}}'';
"extract" = ''''${{
set -f
case $f in
*.tar.bz|*.tar.bz2|*.tbz|*.tbz2) tar xjvf $f;;
*.tar.gz|*.tgz) tar xzvf $f;;
*.tar.xz|*.txz) tar xJvf $f;;
*.zip) unzip $f;;
*.rar) unrar x $f;;
*.7z) 7z x $f;;
esac
}}'';
"tar" = ''''${{
set -f
mkdir $1
cp -r $fx $1
tar czf $1.tar.gz $1
rm -rf $1
}}'';
"zip" = ''''${{
set -f
mkdir $1
cp -r $fx $1
zip -r $1.zip $1
rm -rf $1
}}'';
"z" = ''
''${{
result="$(zoxide query --exclude "$PWD" -- "$@")"
lf -remote "send $id cd '$result'"
}}'';
"zi" = ''
''${{
result="$(zoxide query -i -- "$@")"
lf -remote "send $id cd '$result'"
}}'';
"extract" = ''
''${{
set -f
case $f in
*.tar.bz|*.tar.bz2|*.tbz|*.tbz2) tar xjvf $f;;
*.tar.gz|*.tgz) tar xzvf $f;;
*.tar.xz|*.txz) tar xJvf $f;;
*.zip) unzip $f;;
*.rar) unrar x $f;;
*.7z) 7z x $f;;
esac
}}'';
"tar" = ''
''${{
set -f
mkdir $1
cp -r $fx $1
tar czf $1.tar.gz $1
rm -rf $1
}}'';
"zip" = ''
''${{
set -f
mkdir $1
cp -r $fx $1
zip -r $1.zip $1
rm -rf $1
}}'';
};
extraConfig = ''
set cleaner ${lf_kitty_cleaner}

View file

@ -10,9 +10,7 @@ in
After = [ "graphical-session-pre.target" ];
PartOf = [ "graphical-session.target" ];
};
Install = {
WantedBy = [ "graphical-session.target" ];
};
Install = { WantedBy = [ "graphical-session.target" ]; };
Service = {
Type = "simple";
ExecStart = libinputGesturesCmd;

View file

@ -1,3 +1 @@
{
services.lorri.enable = true;
}
{ services.lorri.enable = true; }

View file

@ -3,7 +3,38 @@
enable = true;
enableSessionWide = true;
settings = {
toggle_fps_limit = "F1";
legacy_layout = false;
gpu_stats = true;
gpu_temp = true;
gpu_text = "GPU";
cpu_stats = true;
cpu_temp = true;
cpu_color = "2e97cb";
cpu_text = "CPU";
io_color = "a491d3";
vram = true;
vram_color = "ad64c1";
ram = true;
ram_color = "c26693";
fps = true;
engine_color = "eb5b5b";
gpu_color = "2e9762";
wine_color = "eb5b5b";
frame_timing = 1;
frametime_color = "00ff00";
media_player_color = "ffffff";
background_alpha = 0.4;
font_size = 24;
background_color = "020202";
position = "top-left";
text_color = "ffffff";
round_corners = 0;
toggle_hud = "Shift_L+F12";
toggle_logging = "Shift_L+F2";
upload_log = "F5";
output_folder = "/home/bertof";
media_player_name = "spotify";
};
};
}

View file

@ -1,11 +1,7 @@
{ pkgs, ... }:
let
megasyncCmd = "${pkgs.megacmd}/bin/mega-cmd-server";
in
{
home.packages = [
pkgs.megacmd
];
let megasyncCmd = "${pkgs.megacmd}/bin/mega-cmd-server";
in {
home.packages = [ pkgs.megacmd ];
systemd.user.services."mega-cmd-server" = {
Unit = {
@ -13,9 +9,7 @@ in
After = [ "default.target" ];
PartOf = [ "default.target" ];
};
Install = {
WantedBy = [ "default.target" ];
};
Install = { WantedBy = [ "default.target" ]; };
Service = {
Type = "simple";
ExecStart = megasyncCmd;

View file

@ -1,4 +1 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [ gnome.nautilus ];
}
{ pkgs, ... }: { home.packages = with pkgs; [ gnome.nautilus ]; }

View file

@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{ pkgs, ... }: {
programs.nix-index = {
enable = true;
enableBashIntegration = true;
@ -20,7 +19,11 @@
timers."nix-index" = {
Unit.Description = "Daily update the nix-locate database";
Timer = { OnCalendar = "daily"; Persistent = true; Unit = "nix-index.service"; };
Timer = {
OnCalendar = "daily";
Persistent = true;
Unit = "nix-index.service";
};
Install.WantedBy = [ "timers.target" ];
};
};

View file

@ -1,5 +1 @@
{
programs.noti = {
enable = true;
};
}
{ programs.noti = { enable = true; }; }

View file

@ -1,5 +1 @@
{
programs.nushell = {
enable = true;
};
}
{ programs.nushell = { enable = true; }; }

View file

@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{ pkgs, ... }: {
programs.obs-studio = {
enable = true;
package = pkgs.obs-studio;

View file

@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{ pkgs, ... }: {
home.packages = with pkgs; [
# libreoffice-fresh
onlyoffice-bin

View file

@ -1,17 +1,13 @@
{ pkgs, ... }:
let
onedriveCmd = "${pkgs.unstable.onedrive}/bin/onedrive --monitor";
in
{
let onedriveCmd = "${pkgs.unstable.onedrive}/bin/onedrive --monitor";
in {
systemd.user.services."onedrive" = {
Unit = {
Description = "OneDrive synchronization service";
After = [ "network.target" ];
PartOf = [ "default.target" ];
};
Install = {
WantedBy = [ "default.target" ];
};
Install = { WantedBy = [ "default.target" ]; };
Service = {
ExecStart = onedriveCmd;
Restart = "always";

View file

@ -1,5 +1 @@
{
programs.password-store = {
enable = true;
};
}
{ programs.password-store = { enable = true; }; }

View file

@ -9,7 +9,8 @@ let
pgrep = "${pkgs.procps}/bin/pgrep";
pkill = "${pkgs.procps}/bin/pkill";
playerCtl = "${pkgs.playerctl}/bin/playerctl";
playerStatus = "${playerCtl} -f '{{emoji(status)}} {{title}} - {{artist}}' metadata | ${head} -c 60";
playerStatus =
"${playerCtl} -f '{{emoji(status)}} {{title}} - {{artist}}' metadata | ${head} -c 60";
systemctl = "${pkgs.systemd}/bin/systemctl";
loginctl = "${pkgs.systemd}/bin/loginctl";
shutdown = "${pkgs.systemd}/bin/shutdown";
@ -17,39 +18,39 @@ let
session=`${loginctl} session-status | ${pkgs.coreutils}/bin/head -n 1 | ${pkgs.gawk}/bin/awk '{print $1}'`
${loginctl} terminate-session $session
'';
colors = with pkgs.lib.rice; let
alpha = 255 * opacity;
in
palette.toARGBHex rec {
colors = with pkgs.lib.rice;
let alpha = 255 * opacity;
in palette.toARGBHex rec {
normal = {
foreground = colorPalette.normal.white;
background = color.setAlphaRgba alpha (colorPalette.normal.black);
underline = colorPalette.dark.blue;
normal = {
foreground = colorPalette.normal.white;
background = color.setAlphaRgba alpha (colorPalette.normal.black);
underline = colorPalette.dark.blue;
};
active = {
foreground = colorPalette.bright.white;
background = color.setAlphaRgba alpha (colorPalette.normal.black);
underline = colorPalette.bright.blue;
};
selected = {
foreground = colorPalette.bright.white;
background = color.setAlphaRgba alpha
(color.brighten 10 colorPalette.bright.black);
underline = colorPalette.bright.red;
};
alert = colorPalette.bright.red;
green = colorPalette.normal.green;
yellow = colorPalette.normal.yellow;
orange = colorPalette.bright.red;
red = colorPalette.normal.red;
transparent = color.transparent;
};
active = {
foreground = colorPalette.bright.white;
background = color.setAlphaRgba alpha (colorPalette.normal.black);
underline = colorPalette.bright.blue;
};
selected = {
foreground = colorPalette.bright.white;
background = color.setAlphaRgba alpha (color.brighten 10 colorPalette.bright.black);
underline = colorPalette.bright.red;
};
alert = colorPalette.bright.red;
green = colorPalette.normal.green;
yellow = colorPalette.normal.yellow;
orange = colorPalette.bright.red;
red = colorPalette.normal.red;
transparent = color.transparent;
};
commonBar = {
locale = config.home.language.base;
monitor = "\${env:MONITOR}";
@ -61,8 +62,14 @@ let
foreground = colors.normal.foreground;
line-size = 2;
line-color = colors.normal.underline;
padding = { left = 0; right = 0; };
module.margin = { left = 0; right = 0; };
padding = {
left = 0;
right = 0;
};
module.margin = {
left = 0;
right = 0;
};
separator = " ";
border = {
color = colors.transparent;
@ -72,7 +79,9 @@ let
bottom.size = 0;
};
font = [
"${pkgs.rice.font.monospace.name}:size=${toString pkgs.rice.font.monospace.size};2"
"${pkgs.rice.font.monospace.name}:size=${
toString pkgs.rice.font.monospace.size
};2"
# "Font Awesome 6 Free:size=14;0"
# "Noto Color Emoji:size=2;2"
"Noto Sans Symbols2:size=${toString pkgs.rice.font.monospace.size};2"
@ -96,25 +105,23 @@ in
services.polybar = {
enable = true;
package = pkgs.polybarFull;
script =
''
monitor=`polybar -m | ${grep} primary | ${cut} -d":" -f1`
MONITOR=$monitor polybar primary &
monitors=(`polybar -m | ${grep} -v primary | ${cut} -d":" -f1`)
for monitor in "''${monitors[@]}"; do
MONITOR=$monitor polybar secondary &
done
'';
script = ''
monitor=`polybar -m | ${grep} primary | ${cut} -d":" -f1`
MONITOR=$monitor polybar primary &
monitors=(`polybar -m | ${grep} -v primary | ${cut} -d":" -f1`)
for monitor in "''${monitors[@]}"; do
MONITOR=$monitor polybar secondary &
done
'';
settings = {
"settings" = {
screenchange-reload = false;
};
"settings" = { screenchange-reload = false; };
"bar/primary" = recursiveUpdate commonBar {
modules-left = "bspwm";
# modules-center =
modules-right = "player pulseaudio temperature cpu memory battery date powermenu";
modules-right =
"player pulseaudio temperature cpu memory battery date powermenu";
enable-ipc = true;
tray = {
position = "right";
@ -125,7 +132,8 @@ in
"bar/secondary" = recursiveUpdate commonBar {
modules-left = "bspwm";
# modules-center =
modules-right = "player pulseaudio temperature cpu memory battery date powermenu";
modules-right =
"player pulseaudio temperature cpu memory battery date powermenu";
enable-ipc = true;
};
@ -148,8 +156,12 @@ in
};
format = {
charging = recursiveUpdate colors.selected { text = "<animation-charging> <label-charging>"; };
discharging = recursiveUpdate colors.active { text = "<animation-discharging> <label-discharging>"; };
charging = recursiveUpdate colors.selected {
text = "<animation-charging> <label-charging>";
};
discharging = recursiveUpdate colors.active {
text = "<animation-discharging> <label-discharging>";
};
full = recursiveUpdate colors.normal { text = " <label-full>"; };
};
@ -176,8 +188,13 @@ in
{
focused = recursiveUpdate colors.selected common;
occupied = recursiveUpdate colors.active common;
urgent = recursiveUpdate (recursiveUpdate colors.active common) { background = colors.alert; };
empty = recursiveUpdate (recursiveUpdate colors.normal common) { text = "󰧟"; padding = 0; };
urgent = recursiveUpdate (recursiveUpdate colors.active common) {
background = colors.alert;
};
empty = recursiveUpdate (recursiveUpdate colors.normal common) {
text = "󰧟";
padding = 0;
};
};
};
@ -230,11 +247,14 @@ in
colors.red
];
};
click.right = "${pgrep} pavucontrol && ${pkill} pavucontrol || ${pavucontrol}";
click.right =
"${pgrep} pavucontrol && ${pkill} pavucontrol || ${pavucontrol}";
format = {
padding = 1;
muted = colors.active;
volume = recursiveUpdate colors.normal { text = "<ramp-volume> <label-volume>"; };
volume = recursiveUpdate colors.normal {
text = "<ramp-volume> <label-volume>";
};
};
label.muted.text = " muted";
label.volume.text = "%percentage%%";
@ -250,7 +270,8 @@ in
underline = colors.alert;
};
};
hwmon.path = "/sys/devices/platform/coretemp.0/hwmon/hwmon5/temp1_input";
hwmon.path =
"/sys/devices/platform/coretemp.0/hwmon/hwmon5/temp1_input";
label = {
text = "%temperature-c%";
warn = "%temperature-c%";
@ -275,22 +296,46 @@ in
};
menu = [
[
({ text = "Logout"; exec = "#powermenu.open.1"; })
({ text = "Reboot"; exec = "#powermenu.open.2"; })
({ text = "Hibernate"; exec = "#powermenu.open.3"; })
({ text = "Power off"; exec = "#powermenu.open.4"; })
({
text = "Logout";
exec = "#powermenu.open.1";
})
({
text = "Reboot";
exec = "#powermenu.open.2";
})
({
text = "Hibernate";
exec = "#powermenu.open.3";
})
({
text = "Power off";
exec = "#powermenu.open.4";
})
]
[
({ text = "Logout"; exec = logout; })
({
text = "Logout";
exec = logout;
})
]
[
({ text = "Reboot"; exec = "${systemctl} reboot"; })
({
text = "Reboot";
exec = "${systemctl} reboot";
})
]
[
({ text = "Hibernate"; exec = "${systemctl} hibernate"; })
({
text = "Hibernate";
exec = "${systemctl} hibernate";
})
]
[
({ text = "Power off"; exec = "${shutdown} now"; })
({
text = "Power off";
exec = "${shutdown} now";
})
]
];
};

View file

@ -2,10 +2,12 @@
let
user = "bertof";
systemLibFolder = "/run/current-system/sw/lib/";
userLibFolder = "/nix/var/nix/profiles/per-user/${user}/home-manager/home-path/lib/";
userLibFolder =
"/nix/var/nix/profiles/per-user/${user}/home-manager/home-path/lib/";
variables = {
DSSI_PATH = "$HOME/.dssi:${userLibFolder}/dssi:${systemLibFolder}/dssi";
LADSPA_PATH = "$HOME/.ladspa:${userLibFolder}/ladspa:${systemLibFolder}/ladspa";
LADSPA_PATH =
"$HOME/.ladspa:${userLibFolder}/ladspa:${systemLibFolder}/ladspa";
LV2_PATH = "$HOME/.lv2:${userLibFolder}/lv2:${systemLibFolder}/lv2";
LXVST_PATH = "$HOME/.lxvst:${userLibFolder}/lxvst:${systemLibFolder}/lxvst";
VST_PATH = "$HOME/.vst:${userLibFolder}/vst:${systemLibFolder}/vst";

View file

@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{ pkgs, ... }: {
home.packages = with pkgs; [
jetbrains.pycharm-professional
python3

View file

@ -1,10 +1,9 @@
{ pkgs, ... }: {
home.packages = with pkgs; [
black
] ++ (with pkgs.python3Packages; [
python-lsp-server
# pyls-black # not updated to the new pylsp
pyls-flake8
pyls-isort
]);
home.packages = with pkgs;
[ black ] ++ (with pkgs.python3Packages; [
python-lsp-server
# pyls-black # not updated to the new pylsp
pyls-flake8
pyls-isort
]);
}

View file

@ -2,10 +2,10 @@
programs.rofi = {
enable = true;
location = "center";
font = "${pkgs.rice.font.monospace.name} ${toString pkgs.rice.font.monospace.size}";
extraConfig = {
modi = "drun,run,ssh,window";
};
font = "${pkgs.rice.font.monospace.name} ${
toString pkgs.rice.font.monospace.size
}";
extraConfig = { modi = "drun,run,ssh,window"; };
terminal = "kitty";
theme = "onedark";
};

View file

@ -1,8 +1,5 @@
{ pkgs, ... }:
{
home.packages = [
pkgs.rofimoji
];
{ pkgs, ... }: {
home.packages = [ pkgs.rofimoji ];
xdg.configFile."rofimoji.rc".text = ''
action=copy

View file

@ -1,10 +1,3 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
bacon
cargo
clippy
rust-analyzer
rustfmt
];
{ pkgs, ... }: {
home.packages = with pkgs; [ bacon cargo clippy rust-analyzer rustfmt ];
}

View file

@ -1,12 +1,8 @@
{ pkgs, ... }:
{
{ pkgs, ... }: {
services.screen-locker = {
enable = true;
lockCmd = "${pkgs.lockscreen}/bin/lockscreen";
inactiveInterval = 2; # minutes
xautolock.extraOptions = [
"-secure"
"-lockaftersleep"
];
xautolock.extraOptions = [ "-secure" "-lockaftersleep" ];
};
}

View file

@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{ pkgs, ... }: {
home.packages = with pkgs; [
# RECOGNITION
nmap

View file

@ -2,8 +2,6 @@
programs.ssh = {
enable = true;
compression = true;
matchBlocks = {
"*" = { identityFile = "~/.ssh/id_ed25519"; };
};
matchBlocks = { "*" = { identityFile = "~/.ssh/id_ed25519"; }; };
};
}

View file

@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{ pkgs, ... }: {
imports = [ ./nautilus.nix ];
home.packages = with pkgs; [
bc
@ -25,41 +24,55 @@
keybindings = {
"alt + Tab" = "rofi -show window";
"Print" = "gnome-screenshot";
"super + alt + {h,j,k,l}" = "bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}";
"super + alt + {h,j,k,l}" =
"bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}";
"super + alt + m" = "lockscreen";
"super + alt + p" = "autorandr -c";
"super + alt + {q,r}" = "bspc {quit,wm -r}";
"super + alt + {Right,Down,Left}" = "playerctl {next,play-pause,previous}";
"super + alt + shift + {h,j,k,l}" = "bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}";
"super + alt + {Right,Down,Left}" =
"playerctl {next,play-pause,previous}";
"super + alt + shift + {h,j,k,l}" =
"bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}";
"super + bracket{left,right}" = "bspc desktop -f {prev,next}.local";
"super + b" = "update-background";
"super + ctrl + {1-9}" = "bspc node -o 0.{1-9}";
"super + ctrl + {h,j,k,l}" = "bspc node -p {west,south,north,east}";
"super + ctrl + {m,x,y,z}" = "bspc node -g {marked,locked,sticky,private}";
"super + ctrl + shift + space" = "bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel";
"super + ctrl + {m,x,y,z}" =
"bspc node -g {marked,locked,sticky,private}";
"super + ctrl + shift + space" =
"bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel";
"super + ctrl + space" = "bspc node -p cancel";
"super + e" = fileManager;
"super + Escape" = "pkill -USR1 -x sxhkd";
"super + g" = "bspc node -s biggest";
"super + {grave,Tab}" = "bspc {node,desktop} -f last";
"super + {h,j,k,l}" = "dir={west,south,north,east}; bspc node -f $dir || bspc monitor -f $dir";
"super + {h,j,k,l}" =
"dir={west,south,north,east}; bspc node -f $dir || bspc monitor -f $dir";
"super + {Left,Down,Up,Right}" = "bspc node -v {-20 0,0 20,0 -20,20 0}";
"super + m" = "bspc desktop -l next";
"super + n {_, + shift}" = "bsp-layout {next, previous}";
"super + {o,i}" = "bspc wm -h off;bspc node {older,newer} -f;bspc wm -h on";
"super + {p,b,comma,period}" = "bspc node -f @{parent,brother,first,second}";
"super + {_,shift + }{1-9,0}" = "bspc {desktop -f,node -d} 'focused:^{1-9,10}'";
"super + {o,i}" =
"bspc wm -h off;bspc node {older,newer} -f;bspc wm -h on";
"super + {p,b,comma,period}" =
"bspc node -f @{parent,brother,first,second}";
"super + {_,shift + }{1-9,0}" =
"bspc {desktop -f,node -d} 'focused:^{1-9,10}'";
"super + {_,shift + }c" = "bspc node -f {next,prev}.local";
"super + shift + e" = emojiChooser;
"super + shift + {h,j,k,l}" = ''dir={west,south,north,east}; bspc node -s "$dir.local" --follow || bspc node -m "$dir" --follow'';
"super + {_,shift + } Return" = "{${primaryTerminal} , ${secondaryTerminal}}";
"super + shift + {h,j,k,l}" = ''
dir={west,south,north,east}; bspc node -s "$dir.local" --follow || bspc node -m "$dir" --follow'';
"super + {_,shift + } Return" =
"{${primaryTerminal} , ${secondaryTerminal}}";
"super + {_,shift + }@space " = "rofi -show {drun,run}";
"super + {_,shift + }w" = "bspc node -{c,k}";
"super + {t,shift + t,s,f}" = "bspc node -t {tiled,pseudo_tiled,floating,fullscreen}";
"super + {t,shift + t,s,f}" =
"bspc node -t {tiled,pseudo_tiled,floating,fullscreen}";
# "super + y" = "bspc node newest.marked.local -n newest.!automatic.local";
"{XF86AudioLowerVolume,XF86AudioMute,XF86AudioRaiseVolume}" = "pamixer {-d 2 -u,-t,-i 2 -u} && dunstify -r 1 Volume `pamixer --get-volume-human`";
"{XF86AudioLowerVolume,XF86AudioMute,XF86AudioRaiseVolume}" =
"pamixer {-d 2 -u,-t,-i 2 -u} && dunstify -r 1 Volume `pamixer --get-volume-human`";
"XF86Audio{Next,Play,Prev}" = "playerctl {next,play-pause,previous}";
"XF86MonBrightness{Up,Down}" = ''xbacklight -{inc,dec} 10 && dunstify -r 2 Luminosità `printf "%.0f" $(xbacklight -get)`'';
"XF86MonBrightness{Up,Down}" = ''
xbacklight -{inc,dec} 10 && dunstify -r 2 Luminosità `printf "%.0f" $(xbacklight -get)`'';
};
};
}

View file

@ -1,5 +1 @@
{
services.syncthing = {
enable = true;
};
}
{ services.syncthing = { enable = true; }; }

View file

@ -7,12 +7,29 @@ let
};
opacity = toString pkgs.rice.opacity;
font = pkgs.rice.font.monospace;
colorString = with strPalette; normal: bright: builtins.concatStringsSep ":" [ normal.black normal.red normal.green normal.yellow normal.blue normal.magenta normal.cyan normal.white bright.black bright.red bright.green bright.yellow bright.blue bright.magenta bright.cyan bright.white ];
colorString = with strPalette;
normal: bright:
builtins.concatStringsSep ":" [
normal.black
normal.red
normal.green
normal.yellow
normal.blue
normal.magenta
normal.cyan
normal.white
bright.black
bright.red
bright.green
bright.yellow
bright.blue
bright.magenta
bright.cyan
bright.white
];
in
{
home.packages = with pkgs; [
terminator
];
home.packages = with pkgs; [ terminator ];
xdg.configFile."terminator/config".text = with strPalette; ''
[global_config]

View file

@ -1,8 +1 @@
{ pkgs, ... }:
{
home.packages = with pkgs.xfce; [
thunar
tumbler
xfconf
];
}
{ pkgs, ... }: { home.packages = with pkgs.xfce; [ thunar tumbler xfconf ]; }

View file

@ -1,14 +1,10 @@
{ pkgs, ... }:
{
{ pkgs, ... }: {
programs.tmux = {
enable = true;
clock24 = true;
escapeTime = 25;
terminal = "screen-256color";
plugins = with pkgs.tmuxPlugins; [
nord
prefix-highlight
];
plugins = with pkgs.tmuxPlugins; [ nord prefix-highlight ];
extraConfig = ''
set -g mouse on
'';

View file

@ -1,8 +1,6 @@
{ pkgs, ... }:
let
update_time = "10m";
in
{
let update_time = "10m";
in {
home.packages = [ pkgs.update-background ];
systemd.user.services."update-background" = {
@ -12,9 +10,7 @@ in
PartOf = [ "graphical-session.target" ];
RequiresMountsFor = [ "/home/bertof/Immagini" ];
};
Install = {
WantedBy = [ "graphical-session.target" ];
};
Install = { WantedBy = [ "graphical-session.target" ]; };
Service = {
Type = "oneshot";
IOSchedulingClass = "idle";

View file

@ -4,17 +4,59 @@ let
# cmd = link: "google-chrome-stable --app=${link}";
cmd = link: "firefox ${link}";
links = [
{ desktopName = "Google Calendar"; link = "https://google.com/calendar"; categories = [ "Office" ]; }
{ desktopName = "Google Keep"; link = "https://keep.google.com"; categories = [ "Office" ]; }
{ desktopName = "Monkeytype"; link = "https://monkeytype.com/"; }
{ desktopName = "Netflix"; link = "https://www.netflix.com"; categories = [ "AudioVideo" ]; }
{ desktopName = "Notion"; link = "https://notion.so"; categories = [ "Office" ]; }
{ desktopName = "Prime Video"; link = "https://primevideo.com"; categories = [ "AudioVideo" ]; }
{ desktopName = "Protonmail"; link = "https://mail.protonmail.com"; categories = [ "Office" ]; }
{ desktopName = "Twitch"; link = "https://www.twitch.tv"; categories = [ "AudioVideo" ]; }
{ desktopName = "WhatsApp"; link = "https://web.whatsapp.com/"; }
{ desktopName = "YouTube"; link = "https://www.youtube.com"; categories = [ "AudioVideo" ]; }
{ desktopName = "Plex"; link = "https://app.plex.tv"; categories = [ "AudioVideo" ]; }
{
desktopName = "Google Calendar";
link = "https://google.com/calendar";
categories = [ "Office" ];
}
{
desktopName = "Google Keep";
link = "https://keep.google.com";
categories = [ "Office" ];
}
{
desktopName = "Monkeytype";
link = "https://monkeytype.com/";
}
{
desktopName = "Netflix";
link = "https://www.netflix.com";
categories = [ "AudioVideo" ];
}
{
desktopName = "Notion";
link = "https://notion.so";
categories = [ "Office" ];
}
{
desktopName = "Prime Video";
link = "https://primevideo.com";
categories = [ "AudioVideo" ];
}
{
desktopName = "Protonmail";
link = "https://mail.protonmail.com";
categories = [ "Office" ];
}
{
desktopName = "Twitch";
link = "https://www.twitch.tv";
categories = [ "AudioVideo" ];
}
{
desktopName = "WhatsApp";
link = "https://web.whatsapp.com/";
}
{
desktopName = "YouTube";
link = "https://www.youtube.com";
categories = [ "AudioVideo" ];
}
{
desktopName = "Plex";
link = "https://app.plex.tv";
categories = [ "AudioVideo" ];
}
];
webAppBuilder =
{ desktopName
@ -23,11 +65,10 @@ let
, icon ? lib.toLower name
, comment ? null
, categories ? [ "Network" ]
}: pkgs.makeDesktopItem {
}:
pkgs.makeDesktopItem {
inherit name icon desktopName comment categories;
exec = cmd link;
};
in
{
home.packages = map webAppBuilder links;
}
{ home.packages = map webAppBuilder links; }

View file

@ -10,7 +10,8 @@ let
lightLevel = 10;
saveLightLevel = "${xbacklightCmd} -get > /run/user/$UID/xbacklight_v";
lowerLight = "${xbacklightCmd} -set ${toString lightLevel}";
resetLight = "${xbacklightCmd} -set $(</run/user/$UID/xbacklight_v) || ${xbacklightCmd} -set 100";
resetLight =
"${xbacklightCmd} -set $(</run/user/$UID/xbacklight_v) || ${xbacklightCmd} -set 100";
in
{
services.xidlehook = {

View file

@ -1,8 +1,6 @@
{ pkgs, ... }:
let
strPalette = pkgs.lib.rice.palette.toRgbHex pkgs.rice.colorPalette;
in
{
let strPalette = pkgs.lib.rice.palette.toRgbHex pkgs.rice.colorPalette;
in {
programs.zathura = {
enable = true;
options = {

View file

@ -1,9 +1,5 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
nix-zsh-completions
zsh-completions
];
{ pkgs, ... }: {
home.packages = with pkgs; [ nix-zsh-completions zsh-completions ];
programs.zsh = {
enable = true;
@ -19,14 +15,8 @@
oh-my-zsh = {
enable = true;
plugins = [
"common-aliases"
"cp"
"dirhistory"
"git-auto-fetch"
"git"
"sudo"
];
plugins =
[ "common-aliases" "cp" "dirhistory" "git-auto-fetch" "git" "sudo" ];
extraConfig = "";
};

View file

@ -1,6 +1,5 @@
{ config, pkgs, lib, ... }:
with lib;
{
with lib; {
boot = {
binfmt.emulatedSystems = [ "armv7l-linux" "aarch64-linux" ];
kernelPackages = pkgs.linuxPackages_5_18;
@ -34,7 +33,12 @@ with lib;
opengl = {
enable = true;
extraPackages = with pkgs; [ intel-media-driver libvdpau-va-gl vaapiIntel vaapiVdpau ];
extraPackages = with pkgs; [
intel-media-driver
libvdpau-va-gl
vaapiIntel
vaapiVdpau
];
};
bluetooth.enable = true;
@ -44,13 +48,22 @@ with lib;
programs = {
dconf.enable = true;
gnupg.agent = { enable = true; enableSSHSupport = true; };
zsh = { enable = true; syntaxHighlighting.enable = true; };
gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
zsh = {
enable = true;
syntaxHighlighting.enable = true;
};
};
networking = {
hostName = "loki";
interfaces = { eno1.useDHCP = true; wlp7s0.useDHCP = true; };
interfaces = {
eno1.useDHCP = true;
wlp7s0.useDHCP = true;
};
networkmanager.enable = true;
useDHCP = false;
};
@ -73,21 +86,51 @@ with lib;
ssh = "${pkgs.avahi}/etc/avahi/services/ssh.service";
};
};
bazarr = { enable = true; openFirewall = true; group = "users"; };
bazarr = {
enable = true;
openFirewall = true;
group = "users";
};
blueman.enable = true;
dbus.packages = with pkgs; [ dconf ];
fail2ban = { enable = true; bantime-increment.enable = true; };
fail2ban = {
enable = true;
bantime-increment.enable = true;
};
gnome.gnome-keyring.enable = true;
gvfs = { enable = true; package = mkForce pkgs.gnome3.gvfs; };
jackett = { enable = true; openFirewall = true; group = "users"; };
jellyfin = { enable = true; openFirewall = true; group = "users"; };
gvfs = {
enable = true;
package = mkForce pkgs.gnome3.gvfs;
};
jackett = {
enable = true;
openFirewall = true;
group = "users";
};
jellyfin = {
enable = true;
openFirewall = true;
group = "users";
};
logind.lidSwitch = "ignore";
# node-red = { enable = true; openFirewall = true; withNpmAndGcc = true; };
openssh = { enable = true; openFirewall = true; permitRootLogin = "no"; passwordAuthentication = false; };
openssh = {
enable = true;
openFirewall = true;
permitRootLogin = "no";
passwordAuthentication = false;
};
# plex = { enable = true; openFirewall = true; group = "users"; };
power-profiles-daemon.enable = true;
radarr = { enable = true; openFirewall = true; group = "users"; };
samba-wsdd = { enable = true; discovery = true; };
radarr = {
enable = true;
openFirewall = true;
group = "users";
};
samba-wsdd = {
enable = true;
discovery = true;
};
samba = {
enable = true;
enableNmbd = true;
@ -156,8 +199,15 @@ with lib;
};
};
};
smartd = { enable = true; notifications.x11.enable = true; };
sonarr = { enable = true; openFirewall = true; group = "users"; };
smartd = {
enable = true;
notifications.x11.enable = true;
};
sonarr = {
enable = true;
openFirewall = true;
group = "users";
};
thermald.enable = true;
transmission = {
enable = true;
@ -181,24 +231,42 @@ with lib;
openFirewall = true;
cameras = 3;
hostname = "0.0.0.0";
database = { username = "zoneminder"; createLocally = true; };
database = {
username = "zoneminder";
createLocally = true;
};
};
mysql = {
# enable = true;
ensureUsers = [{ name = "bertof"; ensurePermissions = { "*.*" = "ALL PRIVILEGES"; }; }];
ensureUsers = [{
name = "bertof";
ensurePermissions = { "*.*" = "ALL PRIVILEGES"; };
}];
};
};
users.users = {
bertof = {
isNormalUser = true;
extraGroups = [ "audio" "input" "docker" "libvirtd" "network" "networkmanager" "usb" "video" "wheel" ];
extraGroups = [
"audio"
"input"
"docker"
"libvirtd"
"network"
"networkmanager"
"usb"
"video"
"wheel"
];
shell = pkgs.zsh;
};
tiziano = {
isNormalUser = true;
openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMExwtJFk6HjySrTZwJH67SOHC3hlL28NO4oe2GXsv6k" ];
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMExwtJFk6HjySrTZwJH67SOHC3hlL28NO4oe2GXsv6k"
];
};
jellyfin.extraGroups = [ "video" ];
};
@ -237,7 +305,6 @@ with lib;
};
};
systemd.packages = with pkgs; [ syncthing ];
systemd.services =
let
@ -246,7 +313,10 @@ with lib;
startLimitIntervalSec = 60;
startLimitBurst = 4;
after = [ "network.target" ];
environment = { STNORESTART = "yes"; STNOUPGRADE = "yes"; };
environment = {
STNORESTART = "yes";
STNOUPGRADE = "yes";
};
wantedBy = [ "default.target" ];
serviceConfig = {
Restart = "on-failure";
@ -268,18 +338,34 @@ with lib;
RestrictNamespaces = true;
RestrictRealtime = true;
RestrictSUIDSGID = true;
CapabilityBoundingSet = [ "~CAP_SYS_PTRACE" "~CAP_SYS_ADMIN" "~CAP_SETGID" "~CAP_SETUID" "~CAP_SETPCAP" "~CAP_SYS_TIME" "~CAP_KILL" ];
CapabilityBoundingSet = [
"~CAP_SYS_PTRACE"
"~CAP_SYS_ADMIN"
"~CAP_SETGID"
"~CAP_SETUID"
"~CAP_SETPCAP"
"~CAP_SYS_TIME"
"~CAP_KILL"
];
};
};
in
{
syncthing-bertof = recursiveUpdate common {
description = "Syncthing service bertof";
serviceConfig = { User = "bertof"; ExecStart = "${pkgs.syncthing}/bin/syncthing -no-browser -gui-address=0.0.0.0:8384 -home=/mnt/raid0/bertof/Syncthing/.config"; };
serviceConfig = {
User = "bertof";
ExecStart =
"${pkgs.syncthing}/bin/syncthing -no-browser -gui-address=0.0.0.0:8384 -home=/mnt/raid0/bertof/Syncthing/.config";
};
};
syncthing-tiziano = recursiveUpdate common {
description = "Syncthing service tiziano";
serviceConfig = { User = "tiziano"; ExecStart = "${pkgs.syncthing}/bin/syncthing -no-browser -gui-address=0.0.0.0:8385 -home=/mnt/raid0/tiziano/Syncthing/.config"; };
serviceConfig = {
User = "tiziano";
ExecStart =
"${pkgs.syncthing}/bin/syncthing -no-browser -gui-address=0.0.0.0:8385 -home=/mnt/raid0/tiziano/Syncthing/.config";
};
};
};
@ -299,7 +385,8 @@ with lib;
138 # SYNCTHING
3702 # SAMBA-WSDD
];
extraCommands = ''iptables -t raw -A OUTPUT -p udp -m udp --dport 137 -j CT --helper netbios-ns'';
extraCommands =
"iptables -t raw -A OUTPUT -p udp -m udp --dport 137 -j CT --helper netbios-ns";
};
virtualisation = {
@ -312,20 +399,14 @@ with lib;
oci-containers.containers = {
hass = {
image = "ghcr.io/home-assistant/home-assistant:stable";
environment = {
TZ = "Europe/Rome";
};
environment = { TZ = "Europe/Rome"; };
extraOptions = [ "--privileged" "--network=host" "--pull=always" ];
ports = [ "8123:8123" ];
volumes = [
"/var/lib/hass:/config"
"/mnt/raid0/condiviso:/media"
];
volumes = [ "/var/lib/hass:/config" "/mnt/raid0/condiviso:/media" ];
};
};
};
security.sudo.extraConfig = ''
Defaults pwfeedback
'';

View file

@ -4,68 +4,65 @@
{ config, lib, modulesPath, ... }:
{
imports =
[
(modulesPath + "/installer/scan/not-detected.nix")
];
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "uas" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
boot.initrd.availableKernelModules = [
"xhci_pci"
"ehci_pci"
"ahci"
"uas"
"usb_storage"
"sd_mod"
"rtsx_pci_sdmmc"
];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{
device = "/dev/disk/by-uuid/44c53e75-a00d-47bc-a99b-2544fe513e51";
fsType = "btrfs";
};
fileSystems."/" = {
device = "/dev/disk/by-uuid/44c53e75-a00d-47bc-a99b-2544fe513e51";
fsType = "btrfs";
};
fileSystems."/boot" =
{
device = "/dev/disk/by-uuid/8A71-E5EB";
fsType = "vfat";
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/8A71-E5EB";
fsType = "vfat";
};
fileSystems."/mnt/raid1" =
{
device = "/dev/disk/by-uuid/c84a38dc-9cc7-4762-b509-8fce1c1d95c8";
fsType = "btrfs";
};
fileSystems."/mnt/raid1" = {
device = "/dev/disk/by-uuid/c84a38dc-9cc7-4762-b509-8fce1c1d95c8";
fsType = "btrfs";
};
fileSystems."/var/lib/docker/btrfs" =
{
device = "/var/lib/docker/btrfs";
fsType = "none";
options = [ "bind" ];
};
fileSystems."/var/lib/docker/btrfs" = {
device = "/var/lib/docker/btrfs";
fsType = "none";
options = [ "bind" ];
};
fileSystems."/mnt/raid0/bertof" =
{
device = "/dev/disk/by-uuid/7ca4d382-eed7-4b49-b7d8-4b5ca139dd9c";
fsType = "btrfs";
options = [ "subvol=@bertof" ];
};
fileSystems."/mnt/raid0/bertof" = {
device = "/dev/disk/by-uuid/7ca4d382-eed7-4b49-b7d8-4b5ca139dd9c";
fsType = "btrfs";
options = [ "subvol=@bertof" ];
};
fileSystems."/mnt/raid0/tiziano" =
{
device = "/dev/disk/by-uuid/7ca4d382-eed7-4b49-b7d8-4b5ca139dd9c";
fsType = "btrfs";
options = [ "subvol=@tiziano" ];
};
fileSystems."/mnt/raid0/tiziano" = {
device = "/dev/disk/by-uuid/7ca4d382-eed7-4b49-b7d8-4b5ca139dd9c";
fsType = "btrfs";
options = [ "subvol=@tiziano" ];
};
fileSystems."/mnt/raid0/condiviso" =
{
device = "/dev/disk/by-uuid/7ca4d382-eed7-4b49-b7d8-4b5ca139dd9c";
fsType = "btrfs";
options = [ "subvol=@condiviso" ];
};
fileSystems."/mnt/raid0/condiviso" = {
device = "/dev/disk/by-uuid/7ca4d382-eed7-4b49-b7d8-4b5ca139dd9c";
fsType = "btrfs";
options = [ "subvol=@condiviso" ];
};
fileSystems."/var/lib/zoneminder/events" =
{
device = "/dev/disk/by-uuid/7ca4d382-eed7-4b49-b7d8-4b5ca139dd9c";
fsType = "btrfs";
options = [ "subvol=@zoneminder" ];
};
fileSystems."/var/lib/zoneminder/events" = {
device = "/dev/disk/by-uuid/7ca4d382-eed7-4b49-b7d8-4b5ca139dd9c";
fsType = "btrfs";
options = [ "subvol=@zoneminder" ];
};
swapDevices = [ ];
@ -79,5 +76,6 @@
networking.interfaces.wlp7s0.useDHCP = lib.mkDefault true;
# networking.interfaces.ztmjfdwjkp.useDHCP = lib.mkDefault true;
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
hardware.cpu.intel.updateMicrocode =
lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View file

@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{ pkgs, ... }: {
nixpkgs.overlays = [
(_: _: {
devEnvironment = (import ./environment.nix) {

View file

@ -1,3 +1,6 @@
{
nix.gc = { automatic = true; options = "--delete-older-than 7d"; };
nix.gc = {
automatic = true;
options = "--delete-older-than 7d";
};
}

View file

@ -2,6 +2,8 @@
users.users.bertof = {
isNormalUser = true;
extraGroups = [ "network" "networkmanager" "wheel" ];
openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN+zsSWZFFzQKnATCAvtG+iuSm4qkZHjCtHzGa9B/71W" ];
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN+zsSWZFFzQKnATCAvtG+iuSm4qkZHjCtHzGa9B/71W"
];
};
}

View file

@ -11,7 +11,6 @@ let
# done
# sudo chown hdfs:hadoop /etc/hadoop.keytab
# sudo kadmin.local -q "ank -randkey spark/my.engine";
# sudo kadmin.local -q "xst -k /etc/spark.keytab spark/my.engine";
# sudo kadmin.local -q "ktrem -k /etc/spark.keytab spark/my.engine old"
@ -82,21 +81,21 @@ in
{
networking = {
hosts = {
"127.0.0.1" = [
"ds.my.engine"
"kdc.my.engine"
"my.engine"
];
};
hosts = { "127.0.0.1" = [ "ds.my.engine" "kdc.my.engine" "my.engine" ]; };
};
services = {
spark = {
package = spark;
master = { enable = true; restartIfChanged = true; };
worker = { enable = true; restartIfChanged = true; };
master = {
enable = true;
restartIfChanged = true;
};
worker = {
enable = true;
restartIfChanged = true;
};
confDir = sparkConfDir;
};
@ -137,12 +136,14 @@ in
# NAME NODE SECURITY
"dfs.namenode.keytab.file" = hadoop_keytab_path;
"dfs.namenode.kerberos.principal" = "nn/my.engine@MY.ENGINE";
"dfs.namenode.kerberos.internal.spnego.principal" = "HTTP/my.engine@MY.ENGINE";
"dfs.namenode.kerberos.internal.spnego.principal" =
"HTTP/my.engine@MY.ENGINE";
# SECONDARY NAME NODE SECURITY
"dfs.secondary.namenode.keytab.file" = hadoop_keytab_path;
"dfs.secondary.namenode.kerberos.principal" = "nn/my.engine@MY.ENGINE";
"dfs.secondary.namenode.kerberos.internal.spnego.principal" = "HTTP/my.engine@MY.ENGINE";
"dfs.secondary.namenode.kerberos.internal.spnego.principal" =
"HTTP/my.engine@MY.ENGINE";
# DATA NODE SECURITY
"dfs.datanode.keytab.file" = hadoop_keytab_path;
@ -156,7 +157,8 @@ in
"dfs.webhdfs.enabled" = "true";
# WEB AUTHENTICATION CONFIG
"dfs.web.authentication.kerberos.principal" = "HTTP/my.engine@MY.ENGINE";
"dfs.web.authentication.kerberos.principal" =
"HTTP/my.engine@MY.ENGINE";
"dfs.web.authentication.kerberos.keytab" = hadoop_keytab_path;
"ignore.secure.ports.for.testing" = "true";
"dfs.http.policy" = "HTTP_ONLY";
@ -173,15 +175,20 @@ in
yarnSite = {
"yarn.nodemanager.admin-env" = "PATH=$PATH";
"yarn.nodemanager.aux-services" = "mapreduce_shuffle";
"yarn.nodemanager.aux-services.mapreduce_shuffle.class" = "org.apache.hadoop.mapred.ShuffleHandler";
"yarn.nodemanager.aux-services.mapreduce_shuffle.class" =
"org.apache.hadoop.mapred.ShuffleHandler";
"yarn.nodemanager.bind-host" = "0.0.0.0";
"yarn.nodemanager.container-executor.class" = "org.apache.hadoop.yarn.server.nodemanager.LinuxContainerExecutor";
"yarn.nodemanager.env-whitelist" = "JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_HOME,LANG,TZ";
"yarn.nodemanager.container-executor.class" =
"org.apache.hadoop.yarn.server.nodemanager.LinuxContainerExecutor";
"yarn.nodemanager.env-whitelist" =
"JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_HOME,LANG,TZ";
"yarn.nodemanager.linux-container-executor.group" = "hadoop";
"yarn.nodemanager.linux-container-executor.path" = "/run/wrappers/yarn-nodemanager/bin/container-executor";
"yarn.nodemanager.linux-container-executor.path" =
"/run/wrappers/yarn-nodemanager/bin/container-executor";
"yarn.nodemanager.log-dirs" = "/var/log/hadoop/yarn/nodemanager";
"yarn.resourcemanager.bind-host" = "0.0.0.0";
"yarn.resourcemanager.scheduler.class" = "org.apache.hadoop.yarn.server.resourcemanager.scheduler.fifo.FifoScheduler";
"yarn.resourcemanager.scheduler.class" =
"org.apache.hadoop.yarn.server.resourcemanager.scheduler.fifo.FifoScheduler";
"yarn.resourcemanager.keytab" = hadoop_keytab_path;
"yarn.resourcemanager.principal" = "rm/my.engine@MY.ENGINE";
@ -193,12 +200,14 @@ in
"yarn.scheduler.capacity.root.queues" = "default";
"yarn.scheduler.capacity.root.default.capacity" = 100;
# "yarn.scheduler.capacity.root.default.state" = "RUNNING";
"yarn.scheduler.capacity.root.acl_submit_applications" = "hadoop,yarn,mapred,hdfs";
"yarn.scheduler.capacity.root.acl_submit_applications" =
"hadoop,yarn,mapred,hdfs";
};
httpfsSite = {
"kerberos.realm" = "MY.ENGINE";
"httpfs.authentication.type" = "kerberos";
"httpfs.authentication.kerberos.principal " = "HTTP/my.engine@MY.ENGINE";
"httpfs.authentication.kerberos.principal " =
"HTTP/my.engine@MY.ENGINE";
"httpfs.authentication.kerberos.keytab" = hadoop_keytab_path;
"httpfs.hadoop.kerberos.principal " = "HTTP/my.engine@MY.ENGINE";
"httpfs.hadoop.kerberos.keytab" = hadoop_keytab_path;
@ -206,23 +215,52 @@ in
extraConfDirs = [ ];
hdfs = {
namenode = { enable = true; formatOnInit = true; restartIfChanged = true; };
datanode = { enable = true; restartIfChanged = true; };
journalnode = { enable = true; restartIfChanged = true; };
zkfc = { enable = false; restartIfChanged = true; }; # ZOOKEEPER DISABLED, not using High Availability setup
httpfs = { enable = true; restartIfChanged = true; };
namenode = {
enable = true;
formatOnInit = true;
restartIfChanged = true;
};
datanode = {
enable = true;
restartIfChanged = true;
};
journalnode = {
enable = true;
restartIfChanged = true;
};
zkfc = {
enable = false;
restartIfChanged = true;
}; # ZOOKEEPER DISABLED, not using High Availability setup
httpfs = {
enable = true;
restartIfChanged = true;
};
};
yarn = {
resourcemanager = { enable = true; restartIfChanged = true; };
nodemanager = { enable = true; restartIfChanged = true; useCGroups = false; };
resourcemanager = {
enable = true;
restartIfChanged = true;
};
nodemanager = {
enable = true;
restartIfChanged = true;
useCGroups = false;
};
};
};
kerberos_server = {
enable = true;
realms."MY.ENGINE".acl = [
{ principal = "*/admin"; access = "all"; }
{ principal = "*/my.engine"; access = "all"; }
{
principal = "*/admin";
access = "all";
}
{
principal = "*/my.engine";
access = "all";
}
];
};
};
@ -274,8 +312,10 @@ in
User = "spark";
Group = "spark";
WorkingDirectory = "${pkgs.spark}/lib/${pkgs.spark.untarDir}";
ExecStart = "${pkgs.spark}/lib/${pkgs.spark.untarDir}/sbin/start-history-server.sh";
ExecStop = "${pkgs.spark}/lib/${pkgs.spark.untarDir}/sbin/stop-history-server.sh";
ExecStart =
"${pkgs.spark}/lib/${pkgs.spark.untarDir}/sbin/start-history-server.sh";
ExecStop =
"${pkgs.spark}/lib/${pkgs.spark.untarDir}/sbin/stop-history-server.sh";
TimeoutSec = 300;
StartLimitBurst = 10;
Restart = "always";

View file

@ -1,10 +1,17 @@
{ ... }:
{
{ ... }: {
networking.hosts = {
"54.176.11.243" = [ "vpn.mhackeroni.it" ];
"10.100.0.50" = [ "master.cb.cloud.mhackeroni.it" "bartender.cb.cloud.mhackeroni.it" "grafana.cb.cloud.mhackeroni.it" "menu.cb.cloud.mhackeroni.it" "maitre.cb.cloud.mhackeroni.it" "accountant.cb.cloud.mhackeroni.it" ];
"10.100.0.150" = [ "flowgui.cloud.mhackeroni.it" "smb.cloud.mhackeroni.it" ];
"10.100.0.50" = [
"master.cb.cloud.mhackeroni.it"
"bartender.cb.cloud.mhackeroni.it"
"grafana.cb.cloud.mhackeroni.it"
"menu.cb.cloud.mhackeroni.it"
"maitre.cb.cloud.mhackeroni.it"
"accountant.cb.cloud.mhackeroni.it"
];
"10.100.0.150" =
[ "flowgui.cloud.mhackeroni.it" "smb.cloud.mhackeroni.it" ];
"10.100.0.200" = [ "tunniceddu.cloud.mhackeroni.it" ];
"10.100.0.250" = [ "rev.cloud.mhackeroni.it" ];
"10.100.0.66" = [ "attackerbackup.cloud.mhackeroni.it" ];

View file

@ -1,8 +1,9 @@
{ lib, ... }:
{ ... }:
let
blocklist = builtins.fetchurl {
sha256 = "sha256:16xcx2z8ziv2fbqhr4ajayxblcs4i1ckrwnf50iina9asgia18za";
url = "https://github.com/notracking/hosts-blocklists/raw/master/dnsmasq/dnsmasq.blacklist.txt";
url =
"https://github.com/notracking/hosts-blocklists/raw/master/dnsmasq/dnsmasq.blacklist.txt";
};
in
{
@ -11,16 +12,12 @@ in
services.dnsmasq = {
enable = true;
servers = [
"1.1.1.1"
"8.8.8.8"
"8.8.4.4"
];
servers = [ "1.1.1.1" "8.8.8.8" "8.8.4.4" ];
extraConfig = ''
cache-size=10000
log-queries
local-ttl=300
conf-file=${blocklist}
'';
};

View file

@ -1,17 +1,13 @@
{
services.k3s = {
enable = true;
};
services.k3s = { enable = true; };
networking.firewall = {
allowedTCPPorts = [
6443 # Kubernetes API
];
allowedTCPPortRanges = [
{
from = 9000;
to = 15000;
}
];
allowedTCPPortRanges = [{
from = 9000;
to = 15000;
}];
};
}

View file

@ -1,20 +1,12 @@
{
services.postgresql = {
enable = true;
ensureDatabases = [
"mfh"
];
ensureUsers = [
{
name = "bertof";
ensurePermissions = {
"DATABASE \"mfh\"" = "ALL PRIVILEGES";
};
}
];
ensureDatabases = [ "mfh" ];
ensureUsers = [{
name = "bertof";
ensurePermissions = { "DATABASE \"mfh\"" = "ALL PRIVILEGES"; };
}];
};
services.apache-kafka = {
enable = true;
};
services.apache-kafka = { enable = true; };
}

View file

@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{ pkgs, ... }: {
# udev rules
services.udev.extraRules = ''
KERNEL=="uinput",MODE:="0666",OPTIONS+="static_node=uinput"

View file

@ -34,10 +34,30 @@
# fileSystems."/" = { options = "noatime errors=remount-ro"; };
security.pam.loginLimits = [
{ domain = "@audio"; item = "memlock"; type = "-"; value = "unlimited"; }
{ domain = "@audio"; item = "rtprio"; type = "-"; value = "99"; }
{ domain = "@audio"; item = "nofile"; type = "soft"; value = "99999"; }
{ domain = "@audio"; item = "nofile"; type = "hard"; value = "99999"; }
{
domain = "@audio";
item = "memlock";
type = "-";
value = "unlimited";
}
{
domain = "@audio";
item = "rtprio";
type = "-";
value = "99";
}
{
domain = "@audio";
item = "nofile";
type = "soft";
value = "99999";
}
{
domain = "@audio";
item = "nofile";
type = "hard";
value = "99999";
}
];
# services = {

View file

@ -1,11 +1,7 @@
{
networking = {
hosts = {
"172.20.28.210" = [
"datanode1"
"datanode2"
"datanode3"
];
"172.20.28.210" = [ "datanode1" "datanode2" "datanode3" ];
# "172.20.28.210" = [ "*.engine.sesar.int" ];
"159.149.147.137" = [ "vcenter.sesar.int" ];
};

View file

@ -1,6 +1,5 @@
{ config, pkgs, lib, ... }:
with lib;
{
with lib; {
# Use the systemd-boot EFI boot loader.
boot.loader.systemd-boot.enable = true;
@ -16,9 +15,7 @@ with lib;
hardware.enableRedistributableFirmware = true;
# Use same ACPI identifier as Dell Ubuntu
boot.kernelParams = [
"acpi_osi=Linux-Dell-Video"
];
boot.kernelParams = [ "acpi_osi=Linux-Dell-Video" ];
networking = {
hostName = "odin";
@ -28,7 +25,10 @@ with lib;
# Per-interface useDHCP will be mandatory in the future, so this generated config
# replicates the default behaviour.
useDHCP = false;
interfaces = { enp60s0.useDHCP = true; wlp0s20f3.useDHCP = true; };
interfaces = {
enp60s0.useDHCP = true;
wlp0s20f3.useDHCP = true;
};
# Configure network proxy if necessary
# proxy.default = "http://user:password@proxy:port/";
@ -51,7 +51,6 @@ with lib;
keyMap = "it";
};
# X11 windowing system.
services.xserver = {
enable = true;
@ -71,13 +70,17 @@ with lib;
displayManager.sddm = {
enable = true;
autoNumlock = true;
theme = "${pkgs.sddm-theme-clairvoyance}/usr/share/sddm/themes/clairvoyance";
theme =
"${pkgs.sddm-theme-clairvoyance}/usr/share/sddm/themes/clairvoyance";
};
# Configure keymap in X11
layout = "it";
extraLayouts = {
eng = { languages = [ "eng" ]; description = "English layout for external keyboard"; };
eng = {
languages = [ "eng" ];
description = "English layout for external keyboard";
};
};
xkbOptions = "eurosign:e,terminate:ctrl_alt_bksp,compose:rctrl";
libinput.enable = true;
@ -86,10 +89,11 @@ with lib;
# Enable CUPS to print documents.
services.printing = {
enable = true;
drivers = with pkgs; [
gutenprint
# cups-kyocera
];
drivers = with pkgs;
[
gutenprint
# cups-kyocera
];
};
services.fwupd.enable = true;
@ -106,10 +110,14 @@ with lib;
enable = true;
pulse.enable = true;
jack.enable = true;
alsa = { enable = true; support32Bit = true; };
alsa = {
enable = true;
support32Bit = true;
};
# media-session.enable = true;
};
environment.sessionVariables.LD_LIBRARY_PATH = lib.mkForce "${config.services.pipewire.package.jack}/lib"; # Temporary fix for WebKitGTK
environment.sessionVariables.LD_LIBRARY_PATH = lib.mkForce
"${config.services.pipewire.package.jack}/lib"; # Temporary fix for WebKitGTK
# # Tablet
# hardware.opentabletdriver = {
@ -120,7 +128,18 @@ with lib;
# Define a user account. Don't forget to set a password with passwd.
users.users.bertof = {
isNormalUser = true;
extraGroups = [ "audio" "input" "docker" "flashrom" "libvirtd" "network" "networkmanager" "usb" "video" "wheel" ];
extraGroups = [
"audio"
"input"
"docker"
"flashrom"
"libvirtd"
"network"
"networkmanager"
"usb"
"video"
"wheel"
];
shell = pkgs.zsh;
};
@ -132,18 +151,29 @@ with lib;
# started in user sessions.
# programs.mtr.enable = true;
programs.flashrom.enable = true;
programs.gnupg.agent = { enable = true; enableSSHSupport = true; };
programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
programs.steam.enable = true;
services.joycond.enable = true;
programs.dconf.enable = true;
programs.zsh = { enable = true; syntaxHighlighting.enable = true; };
programs.zsh = {
enable = true;
syntaxHighlighting.enable = true;
};
# List services that you want to enable:
# Enable the OpenSSH daemon.
services.openssh = { enable = true; openFirewall = true; permitRootLogin = "no"; passwordAuthentication = false; };
services.openssh = {
enable = true;
openFirewall = true;
permitRootLogin = "no";
passwordAuthentication = false;
};
# Cooling management
services.thermald.enable = true;
@ -160,14 +190,21 @@ with lib;
in
{
bertof_home = recursiveUpdate common { subvolume = "/home/bertof"; };
bertof_music = recursiveUpdate common { subvolume = "/home/bertof/Musica"; };
bertof_downloads = recursiveUpdate common { subvolume = "/home/bertof/Scaricati"; };
bertof_images = recursiveUpdate common { subvolume = "/home/bertof/Immagini"; };
bertof_videos = recursiveUpdate common { subvolume = "/home/bertof/Video"; };
bertof_documents = recursiveUpdate common { subvolume = "/home/bertof/Documenti"; };
bertof_games_ssd = recursiveUpdate common { subvolume = "/home/bertof/Giochi/SSD"; };
bertof_music =
recursiveUpdate common { subvolume = "/home/bertof/Musica"; };
bertof_downloads =
recursiveUpdate common { subvolume = "/home/bertof/Scaricati"; };
bertof_images =
recursiveUpdate common { subvolume = "/home/bertof/Immagini"; };
bertof_videos =
recursiveUpdate common { subvolume = "/home/bertof/Video"; };
bertof_documents =
recursiveUpdate common { subvolume = "/home/bertof/Documenti"; };
bertof_games_ssd =
recursiveUpdate common { subvolume = "/home/bertof/Giochi/SSD"; };
# bertof_games_hdd = recursiveUpdate common { subvolume = "/home/bertof/Giochi/HDD"; };
bertof_git = recursiveUpdate common { subvolume = "/home/bertof/Documenti/Git"; };
bertof_git =
recursiveUpdate common { subvolume = "/home/bertof/Documenti/Git"; };
};
};
@ -175,7 +212,10 @@ with lib;
services.gnome.gnome-keyring.enable = true;
hardware.bluetooth.enable = true;
services.blueman.enable = true;
services.gvfs = { enable = true; package = lib.mkForce pkgs.gnome3.gvfs; };
services.gvfs = {
enable = true;
package = lib.mkForce pkgs.gnome3.gvfs;
};
# services.tlp.enable = false;
services.avahi = {
enable = true;
@ -194,7 +234,10 @@ with lib;
};
# SMART
services.smartd = { enable = true; notifications.x11.enable = true; };
services.smartd = {
enable = true;
notifications.x11.enable = true;
};
# FPRINTD
# services.fprintd = {
@ -205,7 +248,10 @@ with lib;
security.pam.services.xscreensaver.fprintAuth = true;
# Clamav
services.clamav = { daemon.enable = true; updater.enable = true; };
services.clamav = {
daemon.enable = true;
updater.enable = true;
};
# Power-profiles
services.power-profiles-daemon.enable = true;
@ -233,9 +279,7 @@ with lib;
nixpkgs.config = {
allowUnfree = true;
packageOverrides = pkgs: {
steam = pkgs.steam.override {
extraPkgs = pkgs: with pkgs; [ icu ];
};
steam = pkgs.steam.override { extraPkgs = pkgs: with pkgs; [ icu ]; };
};
};
nix = {

View file

@ -4,10 +4,7 @@
{ config, lib, modulesPath, ... }:
{
imports =
[
(modulesPath + "/installer/scan/not-detected.nix")
];
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "sd_mod" ];
boot.initrd.kernelModules = [ ];
@ -32,46 +29,46 @@
options = [ "x-gvfs-hide" ];
};
# fileSystems."/var/lib/docker/btrfs" =
# { device = "/nix/@root/var/lib/docker/btrfs";
# fsType = "none";
# options = [ "bind" ];
# };
fileSystems."/home/bertof" = {
device = "/dev/disk/by-uuid/c6e3d4df-4861-48a5-8107-d6fd1addad8c";
fsType = "btrfs";
options = [ "subvol=@bertof/@home" "x-gvfs-hide" ];
};
fileSystems."/home/bertof/Documenti" = {
device = "/dev/disk/by-uuid/c6e3d4df-4861-48a5-8107-d6fd1addad8c";
fsType = "btrfs";
options = [ "subvol=@bertof/@documents" "x-gvfs-hide" ];
};
fileSystems."/home/bertof/Documenti/Git" = {
device = "/dev/disk/by-uuid/c6e3d4df-4861-48a5-8107-d6fd1addad8c";
fsType = "btrfs";
options = [ "subvol=@bertof/@git" "x-gvfs-hide" ];
};
fileSystems."/home/bertof/Musica" = {
device = "/dev/disk/by-uuid/c6e3d4df-4861-48a5-8107-d6fd1addad8c";
fileSystems."/home/bertof/Immagini" = {
device = "/dev/disk/by-uuid/c2635d50-7f08-4aca-bcdd-0ac685047a64";
fsType = "btrfs";
options = [ "subvol=@bertof/@music" "x-gvfs-hide" ];
options = [ "subvol=@bertof/@images" "x-gvfs-hide" ];
};
fileSystems."/home/bertof/Video" = {
device = "/dev/disk/by-uuid/c6e3d4df-4861-48a5-8107-d6fd1addad8c";
device = "/dev/disk/by-uuid/c2635d50-7f08-4aca-bcdd-0ac685047a64";
fsType = "btrfs";
options = [ "subvol=@bertof/@videos" "x-gvfs-hide" ];
};
fileSystems."/home/bertof/Immagini" = {
device = "/dev/disk/by-uuid/c6e3d4df-4861-48a5-8107-d6fd1addad8c";
fileSystems."/home/bertof/Documenti" = {
device = "/dev/disk/by-uuid/c2635d50-7f08-4aca-bcdd-0ac685047a64";
fsType = "btrfs";
options = [ "subvol=@bertof/@images" "x-gvfs-hide" ];
options = [ "subvol=@bertof/@documents" "x-gvfs-hide" ];
};
fileSystems."/home/bertof/Musica" = {
device = "/dev/disk/by-uuid/c2635d50-7f08-4aca-bcdd-0ac685047a64";
fsType = "btrfs";
options = [ "subvol=@bertof/@music" "x-gvfs-hide" ];
};
fileSystems."/home/bertof/Scaricati" = {
device = "/dev/disk/by-uuid/c2635d50-7f08-4aca-bcdd-0ac685047a64";
fsType = "btrfs";
options = [ "subvol=@bertof/@downloads" "x-gvfs-hide" ];
};
fileSystems."/home/bertof/Giochi/SSD" = {
@ -80,10 +77,10 @@
options = [ "subvol=@bertof/@games" "x-gvfs-hide" ];
};
fileSystems."/home/bertof/Scaricati" = {
device = "/dev/disk/by-uuid/c6e3d4df-4861-48a5-8107-d6fd1addad8c";
fileSystems."/home/bertof/Giochi/SATA" = {
device = "/dev/disk/by-uuid/c2635d50-7f08-4aca-bcdd-0ac685047a64";
fsType = "btrfs";
options = [ "subvol=@bertof/@downloads" "x-gvfs-hide" ];
options = [ "subvol=@bertof/@games" "x-gvfs-hide" ];
};
swapDevices =
@ -100,5 +97,6 @@
# networking.interfaces.ztmjfdwjkp.useDHCP = lib.mkDefault true;
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
hardware.cpu.intel.updateMicrocode =
lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View file

@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{ pkgs, ... }: {
home = {
language.base = "it_IT.UTF-8";
keyboard = {
@ -43,7 +42,9 @@
# gnome.quadrapassel
# gnome.seahorse
# gnome.sushi
(google-chrome.override { commandLineArgs = [ "--password-store=gnome" "--force-dark-mode" ]; })
(google-chrome.override {
commandLineArgs = [ "--password-store=gnome" "--force-dark-mode" ];
})
gucharmap
handbrake
htop
@ -123,7 +124,6 @@
../hm_modules/python.nix
../hm_modules/rust.nix
../hm_modules/any_nix_shell.nix
../hm_modules/alacritty.nix
../hm_modules/autorandr.nix
../hm_modules/bspwm.nix

View file

@ -4,37 +4,32 @@ let
# onedark = prev.lib.rice.palette.tPalette prev.lib.rice.color.hexToRgba (import ./themes/onedark.nix);
# tomorrow-night = prev.lib.rice.palette.tPalette prev.lib.rice.color.hexToRgba (import ./themes/tomorrow-night.nix);
# mkpm = with prev.lib.rice; palette.tPalette color.hexToRgba (import ./themes/monokai-pro-machine.nix);
bloom = with prev.lib.rice; palette.tPalette color.hexToRgba (import ./themes/bloom.nix);
bloom = with prev.lib.rice;
palette.tPalette color.hexToRgba (import ./themes/bloom.nix);
in
(
rec {
rice = {
colorPalette = with prev.lib.rice; rec {
normal = palette.defaultPalette // {
inherit (bloom.normal) black red green yellow blue magenta cyan white;
};
bright = palette.brighten 10 normal // {
inherit (bloom.bright) black red green yellow blue magenta cyan white;
};
dark = palette.darken 10 normal;
(rec {
rice = {
colorPalette = with prev.lib.rice; rec {
normal = palette.defaultPalette // {
inherit (bloom.normal) black red green yellow blue magenta cyan white;
};
font = {
normal = {
name = "Cantarell";
package = final.cantarell-fonts;
size = 10;
};
monospace = {
name = "FiraCode Nerd Font Mono";
package = (
final.nerdfonts.override {
fonts = [ "FiraCode" ];
}
);
size = 10;
};
bright = palette.brighten 10 normal // {
inherit (bloom.bright) black red green yellow blue magenta cyan white;
};
opacity = 0.95;
dark = palette.darken 10 normal;
};
}
)
font = {
normal = {
name = "Cantarell";
package = final.cantarell-fonts;
size = 10;
};
monospace = {
name = "FiraCode Nerd Font Mono";
package = (final.nerdfonts.override { fonts = [ "FiraCode" ]; });
size = 10;
};
};
opacity = 0.95;
};
})

View file

@ -1,6 +1,5 @@
{ lib, config, pkgs, ... }:
with lib;
{
with lib; {
boot = {
binfmt.emulatedSystems = [ "armv7l-linux" "aarch64-linux" ];
kernelPackages = pkgs.linuxPackages_latest;
@ -28,11 +27,7 @@ with lib;
environment = {
pathsToLink = [ "/share/zsh" ];
systemPackages = with pkgs; [
kakoune
tmux
vim
];
systemPackages = with pkgs; [ kakoune tmux vim ];
};
hardware = {
@ -47,9 +42,15 @@ with lib;
programs = {
dconf.enable = true;
flashrom.enable = true;
gnupg.agent = { enable = true; enableSSHSupport = true; };
gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
steam = { enable = true; };
zsh = { enable = true; syntaxHighlighting.enable = true; };
zsh = {
enable = true;
syntaxHighlighting.enable = true;
};
};
networking = {
@ -81,12 +82,24 @@ with lib;
};
};
blueman.enable = true;
clamav = { daemon.enable = true; updater.enable = true; };
clamav = {
daemon.enable = true;
updater.enable = true;
};
dbus.packages = with pkgs; [ dconf ];
gnome.gnome-keyring.enable = true;
gvfs = { enable = true; package = pkgs.gnome3.gvfs; };
gvfs = {
enable = true;
package = pkgs.gnome3.gvfs;
};
fwupd.enable = true;
openssh = { enable = true; openFirewall = true; permitRootLogin = "no"; passwordAuthentication = false; forwardX11 = true; };
openssh = {
enable = true;
openFirewall = true;
permitRootLogin = "no";
passwordAuthentication = false;
forwardX11 = true;
};
pipewire = {
enable = true;
pulse.enable = true;
@ -98,7 +111,10 @@ with lib;
# media-session.enable = true;
};
power-profiles-daemon.enable = true;
smartd = { enable = true; notifications.x11.enable = true; };
smartd = {
enable = true;
notifications.x11.enable = true;
};
snapper = {
configs =
let
@ -126,7 +142,8 @@ with lib;
# displayManager.gdm = { enable = true; nvidiaWayland = true; };
displayManager.sddm = {
enable = true;
theme = "${pkgs.sddm-theme-clairvoyance}/usr/share/sddm/themes/clairvoyance";
theme =
"${pkgs.sddm-theme-clairvoyance}/usr/share/sddm/themes/clairvoyance";
};
layout = "us";
videoDrivers = [ "nvidia" ];
@ -135,8 +152,6 @@ with lib;
# gnome.gnome-remote-desktop.enable = true;
};
services.teamviewer.enable = true;
security = {
@ -151,7 +166,18 @@ with lib;
users.users.bertof = {
isNormalUser = true;
extraGroups = [ "audio" "input" "docker" "flashrom" "libvirtd" "network" "networkmanager" "usb" "video" "wheel" ];
extraGroups = [
"audio"
"input"
"docker"
"flashrom"
"libvirtd"
"network"
"networkmanager"
"usb"
"video"
"wheel"
];
shell = pkgs.zsh;
};
@ -166,9 +192,7 @@ with lib;
nixpkgs.config = {
allowUnfree = true;
packageOverrides = pkgs: {
steam = pkgs.steam.override {
extraPkgs = pkgs: with pkgs; [ icu ];
};
steam = pkgs.steam.override { extraPkgs = pkgs: with pkgs; [ icu ]; };
};
# cudaSupport = true;
};

View file

@ -4,42 +4,54 @@
{ modulesPath, ... }:
{
imports =
[
(modulesPath + "/installer/scan/not-detected.nix")
];
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
boot.initrd.availableKernelModules =
[ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
boot.initrd.kernelModules = [ "dm-snapshot" ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{
device = "/dev/disk/by-uuid/6c06428e-c296-4ef1-8429-62bafb860126";
fsType = "btrfs";
options = [ "subvol=@root" "x-gvfs-hide" "space_cache=v2" "discard" "compress-force=zstd:1" ];
};
fileSystems."/" = {
device = "/dev/disk/by-uuid/6c06428e-c296-4ef1-8429-62bafb860126";
fsType = "btrfs";
options = [
"subvol=@root"
"x-gvfs-hide"
"space_cache=v2"
"discard"
"compress-force=zstd:1"
];
};
fileSystems."/boot" =
{
device = "/dev/disk/by-uuid/B9D2-255C";
fsType = "vfat";
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/B9D2-255C";
fsType = "vfat";
};
fileSystems."/home/bertof" =
{
device = "/dev/disk/by-uuid/6c06428e-c296-4ef1-8429-62bafb860126";
fsType = "btrfs";
options = [ "subvol=@home_bertof" "x-gvfs-hide" "space_cache=v2" "discard" "compress-force=zstd:1" ];
};
fileSystems."/home/bertof" = {
device = "/dev/disk/by-uuid/6c06428e-c296-4ef1-8429-62bafb860126";
fsType = "btrfs";
options = [
"subvol=@home_bertof"
"x-gvfs-hide"
"space_cache=v2"
"discard"
"compress-force=zstd:1"
];
};
fileSystems."/nix" =
{
device = "/dev/disk/by-uuid/6c06428e-c296-4ef1-8429-62bafb860126";
fsType = "btrfs";
options = [ "subvol=@nix" "x-gvfs-hide" "space_cache=v2" "discard" "compress-force=zstd:1" ];
};
fileSystems."/nix" = {
device = "/dev/disk/by-uuid/6c06428e-c296-4ef1-8429-62bafb860126";
fsType = "btrfs";
options = [
"subvol=@nix"
"x-gvfs-hide"
"space_cache=v2"
"discard"
"compress-force=zstd:1"
];
};
swapDevices =
[{ device = "/dev/disk/by-uuid/dee188e4-4ff8-417c-9419-b7f00ecb9989"; }];

View file

@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{ pkgs, ... }: {
home = {
language.base = "it_IT.UTF-8";
keyboard = {
@ -36,7 +35,9 @@
gnome.gnome-screenshot
gnome.gnome-sound-recorder
# gnome.gnome-system-monitor
(google-chrome.override { commandLineArgs = [ "--password-store=gnome" "--force-dark-mode" ]; })
(google-chrome.override {
commandLineArgs = [ "--password-store=gnome" "--force-dark-mode" ];
})
gucharmap
handbrake
httpie
@ -80,9 +81,7 @@
];
};
services = {
gnome-keyring.enable = true;
};
services = { gnome-keyring.enable = true; };
imports = [
../hm_modules/__basic.nix