Switch to nixpkgs-fmt formatter

This commit is contained in:
Filippo Berto 2023-02-24 09:24:21 +01:00
parent 36f6903639
commit ca59cb8f3c
Signed by: bertof
GPG key ID: 9DBF7E6A1D2CE9ED
45 changed files with 695 additions and 606 deletions

View file

@ -82,46 +82,48 @@ with lib; {
recommendedOptimisation = true; recommendedOptimisation = true;
recommendedGzipSettings = true; recommendedGzipSettings = true;
recommendedTlsSettings = true; recommendedTlsSettings = true;
virtualHosts = let virtualHosts =
ssl = { let
enableACME = true; ssl = {
forceSSL = true; enableACME = true;
}; forceSSL = true;
loki = "172.23.254.55";
in {
"unimi.bertof.net" = ssl // {
locations."/".extraConfig =
"rewrite ^/(.*)$ https://homes.di.unimi.it/berto/$1 redirect ;";
};
"home-assistant.bertof.net" = ssl // {
locations."/" = {
proxyPass = "http://${loki}:8123/";
proxyWebsockets = true;
}; };
extraConfig = '' loki = "172.23.254.55";
proxy_pass_header Authorization; in
proxy_buffering off; {
''; "unimi.bertof.net" = ssl // {
}; locations."/".extraConfig =
"radarr.bertof.net" = ssl // { "rewrite ^/(.*)$ https://homes.di.unimi.it/berto/$1 redirect ;";
locations."/" = { };
proxyPass = "http://${loki}:7878/"; "home-assistant.bertof.net" = ssl // {
proxyWebsockets = true; locations."/" = {
proxyPass = "http://${loki}:8123/";
proxyWebsockets = true;
};
extraConfig = ''
proxy_pass_header Authorization;
proxy_buffering off;
'';
};
"radarr.bertof.net" = ssl // {
locations."/" = {
proxyPass = "http://${loki}:7878/";
proxyWebsockets = true;
};
};
"sonarr.bertof.net" = ssl // {
locations."/" = {
proxyPass = "http://${loki}:8989/";
proxyWebsockets = true;
};
};
"jellyfin.bertof.net" = ssl // {
locations."/" = {
proxyPass = "http://${loki}:8096/";
proxyWebsockets = true;
};
}; };
}; };
"sonarr.bertof.net" = ssl // {
locations."/" = {
proxyPass = "http://${loki}:8989/";
proxyWebsockets = true;
};
};
"jellyfin.bertof.net" = ssl // {
locations."/" = {
proxyPass = "http://${loki}:8096/";
proxyWebsockets = true;
};
};
};
}; };
openssh = { openssh = {
enable = true; enable = true;

View file

@ -1,5 +1,10 @@
{ writeShellScriptBin, lib, xclip, coreutils, terminal-command ? "kitty sh -c" { writeShellScriptBin
, editor-command ? "hx" }: , lib
, xclip
, coreutils
, terminal-command ? "kitty sh -c"
, editor-command ? "hx"
}:
# 64 │ function clipcopy() { xclip -in -selection clipboard < "${1:-/dev/stdin}"; } # 64 │ function clipcopy() { xclip -in -selection clipboard < "${1:-/dev/stdin}"; }
# 65 │ function clippaste() { xclip -out -selection clipboard; } clip # 65 │ function clippaste() { xclip -out -selection clipboard; } clip
writeShellScriptBin "clipedit" '' writeShellScriptBin "clipedit" ''

View file

@ -9,4 +9,5 @@ let
update-background = pkgs.callPackage ./update-background { }; update-background = pkgs.callPackage ./update-background { };
vital-synth = pkgs.callPackage ./vital-synth { }; vital-synth = pkgs.callPackage ./vital-synth { };
}; };
in self in
self

View file

@ -1,7 +1,15 @@
{ lib, rice, roboto, i3lock-color, writeScriptBin, font ? { { lib
package = roboto; , rice
name = "Roboto"; , roboto
}, palette ? rice.palette.palette { }, ... }: , i3lock-color
, writeScriptBin
, font ? {
package = roboto;
name = "Roboto";
}
, palette ? rice.palette.palette { }
, ...
}:
let strPalette = lib.nix-rice.palette.toRGBAHex palette; let strPalette = lib.nix-rice.palette.toRGBAHex palette;
in writeScriptBin "lockscreen" '' in writeScriptBin "lockscreen" ''
# Using font package ${font.package} # Using font package ${font.package}

View file

@ -1,10 +1,17 @@
{ feh, glib, findutils, gnugrep, coreutils, writeScriptBin { feh
, backgrounds_directory ? "$HOME/Immagini/Sfondi" }: , glib
, findutils
, gnugrep
, coreutils
, writeScriptBin
, backgrounds_directory ? "$HOME/Immagini/Sfondi"
}:
let let
find = "${findutils}/bin/find"; find = "${findutils}/bin/find";
grep = "${gnugrep}/bin/grep"; grep = "${gnugrep}/bin/grep";
shuf = "${coreutils}/bin/shuf"; shuf = "${coreutils}/bin/shuf";
in writeScriptBin "update-background" '' in
writeScriptBin "update-background" ''
#!/bin/sh #!/bin/sh
if [ $# -eq 0 ]; then if [ $# -eq 0 ]; then
image=`${find} ${backgrounds_directory} -type f | ${grep} -v "/\." | ${shuf} -n 1` image=`${find} ${backgrounds_directory} -type f | ${grep} -v "/\." | ${shuf} -n 1`

View file

@ -43,9 +43,20 @@
}; };
}; };
outputs = { self, nixpkgs, nixpkgs-u, home-manager, agenix, deploy-rs outputs =
, flake-utils, nixos-generators, nixos-hardware, nix-rice, pre-commit-hooks { self
, tex2nix }: , nixpkgs
, nixpkgs-u
, home-manager
, agenix
, deploy-rs
, flake-utils
, nixos-generators
, nixos-hardware
, nix-rice
, pre-commit-hooks
, tex2nix
}:
let let
config = { config = {
allowUnfree = true; allowUnfree = true;
@ -98,16 +109,14 @@
eachDefaultSystem (system: eachDefaultSystem (system:
let pkgs = import nixpkgs { inherit system config overlays; }; let pkgs = import nixpkgs { inherit system config overlays; };
in { in {
formatter = pkgs.writeShellScriptBin "formatter" '' formatter = pkgs.nixpkgs-fmt;
${pkgs.findutils}/bin/find . -name '*.nix' -exec ${pkgs.nixfmt}/bin/nixfmt {} \+
'';
checks = { checks = {
pre-commit-check = pre-commit-hooks.lib.${system}.run { pre-commit-check = pre-commit-hooks.lib.${system}.run {
src = ./.; src = ./.;
hooks = { hooks = {
deadnix.enable = true; deadnix.enable = true;
nixfmt.enable = true; nixpkgs-fmt.enable = true;
statix.enable = true; statix.enable = true;
}; };
}; };
@ -235,37 +244,39 @@
}; };
odinConfig = { odinConfig = {
nixosConfigurations = let nixosConfigurations =
odinCommonModules = [ let
nixos-hardware.nixosModules.common-cpu-intel odinCommonModules = [
nixos-hardware.nixosModules.common-pc-laptop nixos-hardware.nixosModules.common-cpu-intel
nixos-hardware.nixosModules.common-pc-laptop-ssd nixos-hardware.nixosModules.common-pc-laptop
./odin/hardware-configuration.nix nixos-hardware.nixosModules.common-pc-laptop-ssd
./odin/common_configuration.nix ./odin/hardware-configuration.nix
./odin/common_configuration.nix
./nixos_modules/pro_audio.nix ./nixos_modules/pro_audio.nix
./nixos_modules/sesar.nix ./nixos_modules/sesar.nix
./nixos_modules/pentablet.nix ./nixos_modules/pentablet.nix
./nixos_modules/steam-link.nix ./nixos_modules/steam-link.nix
./nixos_modules/kdeconnect.nix ./nixos_modules/kdeconnect.nix
{ home-manager.users.bertof = import ./odin/hm.nix; } { home-manager.users.bertof = import ./odin/hm.nix; }
]; ];
in rec { in
odin-nvidia = nixpkgs.lib.nixosSystem { rec {
system = "x86_64-linux"; odin-nvidia = nixpkgs.lib.nixosSystem {
modules = commonModules ++ odinCommonModules system = "x86_64-linux";
++ [ ./odin/configuration-nvidia.nix ]; modules = commonModules ++ odinCommonModules
++ [ ./odin/configuration-nvidia.nix ];
};
odin-intel = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = commonModules ++ odinCommonModules
++ [ ./odin/configuration-intel.nix ];
};
odin = odin-intel;
}; };
odin-intel = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = commonModules ++ odinCommonModules
++ [ ./odin/configuration-intel.nix ];
};
odin = odin-intel;
};
}; };
# freyaConfig = { # freyaConfig = {
@ -380,7 +391,8 @@
}; };
}); });
in builtins.foldl' nixpkgs.lib.recursiveUpdate { } [ in
builtins.foldl' nixpkgs.lib.recursiveUpdate { } [
basic basic
thorConfig thorConfig
odinConfig odinConfig

View file

@ -21,7 +21,8 @@ let
}; };
}; };
}; };
in { in
{
# Include fonts packages # Include fonts packages
home.packages = [ pkgs.rice.font.monospace.package ]; home.packages = [ pkgs.rice.font.monospace.package ];
programs.alacritty = { programs.alacritty = {

View file

@ -1,100 +1,102 @@
{ {
programs.autorandr = { programs.autorandr = {
enable = true; enable = true;
profiles = let profiles =
dell-laptop = { let
dpi = 96; dell-laptop = {
fingerprint = dpi = 96;
"00ffffffffffff0030e43f0500000000001a010495221378eaa1c59459578f27205054000000010101010101010101010101010101012e3680a070381f403020350058c21000001a5c2b80a070381f403020350058c21000001a000000fe0034584b3133803135365746360a000000000000413196001000000a010a202000c5"; fingerprint =
mode = "1920x1080"; "00ffffffffffff0030e43f0500000000001a010495221378eaa1c59459578f27205054000000010101010101010101010101010101012e3680a070381f403020350058c21000001a5c2b80a070381f403020350058c21000001a000000fe0034584b3133803135365746360a000000000000413196001000000a010a202000c5";
}; mode = "1920x1080";
in { };
odin-nvidia = { in
fingerprint = { "eDP-1-1" = dell-laptop.fingerprint; }; {
config = { odin-nvidia = {
"eDP-1-1" = { fingerprint = { "eDP-1-1" = dell-laptop.fingerprint; };
inherit (dell-laptop) mode dpi; config = {
primary = true; "eDP-1-1" = {
crtc = 0; 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;
};
};
};
odin-intel-laboratorio-dock-dell = {
fingerprint = {
"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";
};
};
};
odin-intel-laboratorio = {
fingerprint = {
"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";
};
};
};
thor-default = {
fingerprint = {
"DP-2" =
"00ffffffffffff001e6d7f5ba1c60a00011f0104b53c22789f8cb5af4f43ab260e5054254b007140818081c0a9c0b300d1c08100d1cf09ec00a0a0a0675030203a0055502100001a000000fd0030901ee63c000a202020202020000000fc004c4720554c545241474541520a000000ff003130314e5454514c533230390a017102031a7123090607e305c000e606050160592846100403011f136fc200a0a0a0555030203a0055502100001a565e00a0a0a029503020350055502100001a5aa000a0a0a0465030203a005550210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000da";
"HDMI-0" =
"00ffffffffffff004c2d2c0d443650302e19010380341d782a5295a556549d250e5054bb8c00b30081c0810081809500a9c001010101023a801871382d40582c450009252100001e000000fd0030481e5216000a202020202020000000fc00433234463339300a2020202020000000ff00485451483330353636370a20200163020324f14690041f131203230907078301000067030c001000802b681a00000101304800011d00bc52d01e20b828554009252100001e8c0ad090204031200c4055000925210000188c0ad08a20e02d10103e9600092521000018215280a07238304088c8350009252100001c00000000000000000000000000000000000000fa";
};
config = {
"DP-2" = {
crtc = 0;
mode = "2560x1440";
position = "1080x162";
primary = true;
dpi = 96;
};
"HDMI-0" = {
crtc = 1;
mode = "1920x1080";
position = "0x0";
rotate = "right";
dpi = 96;
};
}; };
}; };
}; };
odin-intel = {
fingerprint = { "eDP1" = dell-laptop.fingerprint; };
config = {
"eDP1" = {
inherit (dell-laptop) mode dpi;
primary = true;
crtc = 0;
};
};
};
odin-intel-laboratorio-dock-dell = {
fingerprint = {
"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";
};
};
};
odin-intel-laboratorio = {
fingerprint = {
"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";
};
};
};
thor-default = {
fingerprint = {
"DP-2" =
"00ffffffffffff001e6d7f5ba1c60a00011f0104b53c22789f8cb5af4f43ab260e5054254b007140818081c0a9c0b300d1c08100d1cf09ec00a0a0a0675030203a0055502100001a000000fd0030901ee63c000a202020202020000000fc004c4720554c545241474541520a000000ff003130314e5454514c533230390a017102031a7123090607e305c000e606050160592846100403011f136fc200a0a0a0555030203a0055502100001a565e00a0a0a029503020350055502100001a5aa000a0a0a0465030203a005550210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000da";
"HDMI-0" =
"00ffffffffffff004c2d2c0d443650302e19010380341d782a5295a556549d250e5054bb8c00b30081c0810081809500a9c001010101023a801871382d40582c450009252100001e000000fd0030481e5216000a202020202020000000fc00433234463339300a2020202020000000ff00485451483330353636370a20200163020324f14690041f131203230907078301000067030c001000802b681a00000101304800011d00bc52d01e20b828554009252100001e8c0ad090204031200c4055000925210000188c0ad08a20e02d10103e9600092521000018215280a07238304088c8350009252100001c00000000000000000000000000000000000000fa";
};
config = {
"DP-2" = {
crtc = 0;
mode = "2560x1440";
position = "1080x162";
primary = true;
dpi = 96;
};
"HDMI-0" = {
crtc = 1;
mode = "1920x1080";
position = "0x0";
rotate = "right";
dpi = 96;
};
};
};
};
}; };
} }

View file

@ -13,7 +13,8 @@ let
systemctl --user restart kdeconnect-indicator # Restart polybar systemctl --user restart kdeconnect-indicator # Restart polybar
''; '';
strPalette = palette.toRGBHex pkgs.rice.colorPalette; strPalette = palette.toRGBHex pkgs.rice.colorPalette;
in { in
{
xsession.windowManager.bspwm = { xsession.windowManager.bspwm = {
enable = true; enable = true;
settings = { settings = {

View file

@ -2,7 +2,8 @@
let let
strPalette = pkgs.lib.nix-rice.palette.toRgbHex pkgs.rice.colorPalette; strPalette = pkgs.lib.nix-rice.palette.toRgbHex pkgs.rice.colorPalette;
fmtString = str: "'${str}'"; fmtString = str: "'${str}'";
in { in
{
home.packages = [ pkgs.cava ]; home.packages = [ pkgs.cava ];
xdg.configFile."cava/config".text = lib.generators.toINI { } { xdg.configFile."cava/config".text = lib.generators.toINI { } {

View file

@ -1,8 +1,9 @@
{ pkgs, config, lib, ... }: { { pkgs, config, lib, ... }: {
home.packages = home.packages =
lib.optionals config.programs.helix.enable builtins.attrValues { lib.optionals config.programs.helix.enable builtins.attrValues
inherit (pkgs) clang-tools cmake-language-server; {
} ++ lib.optionals config.programs.kakoune.enable builtins.attrValues { inherit (pkgs) clang-tools cmake-language-server;
} ++ lib.optionals config.programs.kakoune.enable builtins.attrValues {
inherit (pkgs) clang-tools cmake-language-server; inherit (pkgs) clang-tools cmake-language-server;
}; };
} }

View file

@ -1,9 +1,10 @@
{ config, pkgs, lib, ... }: { { config, pkgs, lib, ... }: {
home.packages = home.packages =
lib.optionals config.programs.helix.enable builtins.attrValues { lib.optionals config.programs.helix.enable builtins.attrValues
inherit (pkgs) yaml-language-server taplo-cli; {
inherit (pkgs.nodePackages) vscode-langservers-extracted; inherit (pkgs) yaml-language-server taplo-cli;
} ++ lib.optionals config.programs.kakoune.enable builtins.attrValues { inherit (pkgs.nodePackages) vscode-langservers-extracted;
} ++ lib.optionals config.programs.kakoune.enable builtins.attrValues {
inherit (pkgs) yaml-language-server; inherit (pkgs) yaml-language-server;
inherit (pkgs.nodePackages) vscode-langservers-extracted; inherit (pkgs.nodePackages) vscode-langservers-extracted;
}; };

View file

@ -1,8 +1,9 @@
{ pkgs, lib, config, ... }: { { pkgs, lib, config, ... }: {
home.packages = home.packages =
lib.optionals config.programs.helix.enable builtins.attrValues { lib.optionals config.programs.helix.enable builtins.attrValues
inherit (pkgs.nodePackages) typescript-language-server; {
} ++ lib.optionals config.programs.kakoune.enable builtins.attrValues { inherit (pkgs.nodePackages) typescript-language-server;
} ++ lib.optionals config.programs.kakoune.enable builtins.attrValues {
inherit (pkgs.nodePackages) typescript-language-server; inherit (pkgs.nodePackages) typescript-language-server;
}; };
programs.neovim.withNodeJs = true; programs.neovim.withNodeJs = true;

View file

@ -2,7 +2,7 @@
home.packages = [ pkgs.bibtool pkgs.texlive.combined.scheme-medium ] home.packages = [ pkgs.bibtool pkgs.texlive.combined.scheme-medium ]
++ lib.optionals config.programs.helix.enable [ pkgs.texlab ] ++ lib.optionals config.programs.helix.enable [ pkgs.texlab ]
++ lib.optionals config.programs.kakoune.enable (builtins.attrValues { ++ lib.optionals config.programs.kakoune.enable (builtins.attrValues {
inherit (pkgs) texlab aspell; inherit (pkgs) texlab aspell;
inherit (pkgs.aspellDicts) en en-computers en-science it; inherit (pkgs.aspellDicts) en en-computers en-science it;
}); });
} }

View file

@ -1,7 +1,8 @@
{ pkgs, config, lib, ... }: { { pkgs, config, lib, ... }: {
home.packages = builtins.attrValues { home.packages = builtins.attrValues
inherit (pkgs) nixpkgs-fmt nixfmt nix-prefetch-scripts nix-review nix-tree; {
} ++ lib.optionals config.programs.helix.enable [ pkgs.nil ] inherit (pkgs) nixpkgs-fmt nixfmt nix-prefetch-scripts nix-review nix-tree;
++ lib.optionals config.programs.kakoune.enable [ pkgs.rnix-lsp ]; } ++ lib.optionals config.programs.helix.enable [ pkgs.nil ]
++ lib.optionals config.programs.kakoune.enable [ pkgs.rnix-lsp ];
programs.neovim.plugins = [ pkgs.vimPlugins.vim-nix ]; programs.neovim.plugins = [ pkgs.vimPlugins.vim-nix ];
} }

View file

@ -1,9 +1,9 @@
{ pkgs, lib, config, ... }: { { pkgs, lib, config, ... }: {
home.packages = [ pkgs.black ] home.packages = [ pkgs.black ]
++ lib.optionals config.programs.helix.enable builtins.attrValues { ++ lib.optionals config.programs.helix.enable builtins.attrValues {
inherit (pkgs.python3Packages) python-lsp-server pyls-flake8 pyls-isort; inherit (pkgs.python3Packages) python-lsp-server pyls-flake8 pyls-isort;
} ++ lib.optionals config.programs.kakoune.enable builtins.attrValues { } ++ lib.optionals config.programs.kakoune.enable builtins.attrValues {
inherit (pkgs.python3Packages) python-lsp-server pyls-flake8 pyls-isort; inherit (pkgs.python3Packages) python-lsp-server pyls-flake8 pyls-isort;
}; };
programs.neovim.withPython3 = true; programs.neovim.withPython3 = true;
} }

View file

@ -1,19 +1,20 @@
{ pkgs, lib, config, ... }: { { pkgs, lib, config, ... }: {
home.packages = builtins.attrValues { home.packages = builtins.attrValues
inherit (pkgs) {
bacon cargo cargo-audit cargo-criterion cargo-deadlinks cargo-expand inherit (pkgs)
cargo-flamegraph cargo-fuzz cargo-hack cargo-hakari cargo-inspect bacon cargo cargo-audit cargo-criterion cargo-deadlinks cargo-expand
cargo-modules cargo-outdated cargo-profiler cargo-release cargo-show-asm cargo-flamegraph cargo-fuzz cargo-hack cargo-hakari cargo-inspect
cargo-spellcheck cargo-tarpaulin cargo-udeps cargo-watch cargo-workspaces cargo-modules cargo-outdated cargo-profiler cargo-release cargo-show-asm
clippy rustc rustfmt; cargo-spellcheck cargo-tarpaulin cargo-udeps cargo-watch cargo-workspaces
# cargo-about clippy rustc rustfmt;
# cargo-auditable # cargo-about
# cargo-deny # cargo-auditable
# cargo-deps # cargo-deny
# cargo-feature # cargo-deps
# cargo-feature
} ++ lib.optionals config.programs.helix.enable } ++ lib.optionals config.programs.helix.enable
(builtins.attrValues { inherit (pkgs) lldb rust-analyzer; }) (builtins.attrValues { inherit (pkgs) lldb rust-analyzer; })
++ lib.optionals config.programs.kakoune.enable ++ lib.optionals config.programs.kakoune.enable
(builtins.attrValues { inherit (pkgs) rust-analyzer; }); (builtins.attrValues { inherit (pkgs) rust-analyzer; });
} }

View file

@ -5,4 +5,5 @@ let
theme = themes.ironhand; theme = themes.ironhand;
enableFPS = true; enableFPS = true;
}; };
in { home.packages = [ package ]; } in
{ home.packages = [ package ]; }

View file

@ -3,7 +3,7 @@
home.packages = builtins.attrValues { home.packages = builtins.attrValues {
inherit (pkgs) inherit (pkgs)
dejavu_fonts noto-fonts noto-fonts-extra noto-fonts-cjk-sans font-awesome dejavu_fonts noto-fonts noto-fonts-extra noto-fonts-cjk-sans font-awesome
corefonts # Microsoft fonts corefonts# Microsoft fonts
vistafonts; vistafonts;
}; };
} }

View file

@ -87,7 +87,8 @@ let
"gup" = "git pull --rebase"; "gup" = "git pull --rebase";
"gupv" = "git pull --rebase -v"; "gupv" = "git pull --rebase -v";
}; };
in { in
{
programs.git = { programs.git = {
enable = true; enable = true;
userName = "Filippo Berto"; userName = "Filippo Berto";

View file

@ -28,4 +28,5 @@ let
user-themes user-themes
# vitals # vitals
]; ];
in { home.packages = [ pkgs.gnome.gnome-tweaks ] ++ gnomeExtensions; } in
{ home.packages = [ pkgs.gnome.gnome-tweaks ] ++ gnomeExtensions; }

View file

@ -26,7 +26,8 @@ let
"text/x-c++" "text/x-c++"
]; ];
}; };
in { in
{
programs.bash.shellAliases = { x = "hx"; }; programs.bash.shellAliases = { x = "hx"; };
programs.zsh.shellAliases = { x = "hx"; }; programs.zsh.shellAliases = { x = "hx"; };
home.sessionVariables = { home.sessionVariables = {
@ -40,95 +41,101 @@ in {
programs.helix = { programs.helix = {
enable = true; enable = true;
package = pkgs.unstable_pkgs.helix; package = pkgs.unstable_pkgs.helix;
languages = [ ]; languages = [{
name = "nix";
formatter = { command = "nixpkgs-fmt"; };
# config = { nil = { formatting = { command = "nixpkgs-fmt"; }; }; };
}];
settings = { settings = {
theme = "ayu_mirage"; theme = "ayu_mirage";
editor.lsp.display-messages = true; editor.lsp.display-messages = true;
editor.scrolloff = 5; editor.scrolloff = 5;
editor.true-color = true; editor.true-color = true;
editor.soft-wrap.enable = true; # editor.soft-wrap.enable = true;
keys.normal = { keys.normal = {
"C-A-l" = ":format"; "C-A-l" = ":format";
"C-A-r" = ":reload"; "C-A-r" = ":reload";
"C-A-S-r" = ":reload-all"; "C-A-S-r" = ":reload-all";
}; };
}; };
themes = let themes =
transparent = "none"; let
gray = "#665c54"; transparent = "none";
dark-gray = "#3c3836"; gray = "#665c54";
white = "#fbf1c7"; dark-gray = "#3c3836";
black = "#282828"; white = "#fbf1c7";
red = "#fb4934"; black = "#282828";
green = "#b8bb26"; red = "#fb4934";
yellow = "#fabd2f"; green = "#b8bb26";
orange = "#fe8019"; yellow = "#fabd2f";
blue = "#83a598"; orange = "#fe8019";
magenta = "#d3869b"; blue = "#83a598";
cyan = "#8ec07c"; magenta = "#d3869b";
in { cyan = "#8ec07c";
base16 = { in
"ui.menu" = transparent; {
"ui.menu.selected" = { modifiers = [ "reversed" ]; }; base16 = {
"ui.linenr" = { "ui.menu" = transparent;
fg = gray; "ui.menu.selected" = { modifiers = [ "reversed" ]; };
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.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.cursor" = { modifiers = [ "reversed" ]; };
"variable" = red;
"variable.builtin" = orange;
"constant.numeric" = orange;
"constant" = orange;
"attributes" = yellow;
"type" = yellow;
"ui.cursor.match" = {
fg = yellow;
modifiers = [ "underlined" ];
};
"string" = green;
"variable.other.member" = red;
"constant.character.escape" = cyan;
"function" = blue;
"constructor" = blue;
"special" = blue;
"keyword" = magenta;
"label" = magenta;
"namespace" = blue;
"diff.plus" = green;
"diff.delta" = yellow;
"diff.minus" = red;
"diagnostic" = { modifiers = [ "underlined" ]; };
"ui.gutter" = { bg = black; };
"info" = blue;
"hint" = dark-gray;
"debug" = dark-gray;
"warning" = yellow;
"error" = red;
}; };
"ui.popup" = { modifiers = [ "reversed" ]; };
"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.cursor" = { modifiers = [ "reversed" ]; };
"variable" = red;
"variable.builtin" = orange;
"constant.numeric" = orange;
"constant" = orange;
"attributes" = yellow;
"type" = yellow;
"ui.cursor.match" = {
fg = yellow;
modifiers = [ "underlined" ];
};
"string" = green;
"variable.other.member" = red;
"constant.character.escape" = cyan;
"function" = blue;
"constructor" = blue;
"special" = blue;
"keyword" = magenta;
"label" = magenta;
"namespace" = blue;
"diff.plus" = green;
"diff.delta" = yellow;
"diff.minus" = red;
"diagnostic" = { modifiers = [ "underlined" ]; };
"ui.gutter" = { bg = black; };
"info" = blue;
"hint" = dark-gray;
"debug" = dark-gray;
"warning" = yellow;
"error" = red;
}; };
};
}; };
} }

View file

@ -61,7 +61,8 @@ let
inherit desktopItem; inherit desktopItem;
}; };
in { in
{
programs.bash.shellAliases = { k = "kak"; }; programs.bash.shellAliases = { k = "kak"; };
programs.zsh.shellAliases = { k = "kak"; }; programs.zsh.shellAliases = { k = "kak"; };
home.packages = packages; home.packages = packages;

View file

@ -5,7 +5,8 @@ let
background foreground color0 color1 color2 color3 color4 color5 color6 background foreground color0 color1 color2 color3 color4 color5 color6
color7 color8 color9 color10 color11 color12 color13 color14 color15; color7 color8 color9 color10 color11 color12 color13 color14 color15;
}; };
in { in
{
programs.kitty = { programs.kitty = {
enable = true; enable = true;
settings = { settings = {

View file

@ -17,7 +17,8 @@ let
${pkgs.pistol}/bin/pistol "$file" ${pkgs.pistol}/bin/pistol "$file"
''; '';
in { in
{
programs.lf = { programs.lf = {
enable = true; enable = true;
settings = { settings = {

View file

@ -2,7 +2,8 @@
let let
libinputGesturesCmd = "${pkgs.libinput-gestures}/bin/libinput-gestures"; libinputGesturesCmd = "${pkgs.libinput-gestures}/bin/libinput-gestures";
xdotool = "${pkgs.xdotool}/bin/xdotool"; xdotool = "${pkgs.xdotool}/bin/xdotool";
in { in
{
systemd.user.services."libinput-gestures" = { systemd.user.services."libinput-gestures" = {
Unit = { Unit = {
Description = "Touchpad gestures"; Description = "Touchpad gestures";

View file

@ -109,7 +109,8 @@ let
}; };
ramp = [ "" "" "" "" "" "" ]; ramp = [ "" "" "" "" "" "" ];
in { in
{
home.packages = builtins.attrValues { home.packages = builtins.attrValues {
inherit (pkgs) noto-fonts material-design-icons noto-fonts-cjk-sans; inherit (pkgs) noto-fonts material-design-icons noto-fonts-cjk-sans;
# emojione # emojione
@ -190,20 +191,22 @@ in {
type = "internal/bspwm"; type = "internal/bspwm";
format = "<label-state>"; format = "<label-state>";
label = let label =
common = { let
padding = 1; common = {
# separator = " "; padding = 1;
text = "%name%"; # separator = " ";
text = "%name%";
};
in
{
focused = recursiveUpdate common colors.selected;
occupied = recursiveUpdate common colors.active;
urgent = recursiveUpdate (recursiveUpdate common colors.active) {
background = colors.alert;
};
empty = recursiveUpdate common colors.normal;
}; };
in {
focused = recursiveUpdate common colors.selected;
occupied = recursiveUpdate common colors.active;
urgent = recursiveUpdate (recursiveUpdate common colors.active) {
background = colors.alert;
};
empty = recursiveUpdate common colors.normal;
};
}; };
"module/cpu" = { "module/cpu" = {
@ -298,40 +301,42 @@ in {
open = recursiveUpdate colors.normal { text = ""; }; open = recursiveUpdate colors.normal { text = ""; };
close = recursiveUpdate colors.normal { text = ""; }; close = recursiveUpdate colors.normal { text = ""; };
}; };
menu = [[ menu = [
{ [
text = ""; {
exec = confirm_command { text = "";
cmd = logout; exec = confirm_command {
title = "Logout"; cmd = logout;
text = "Do you want to logout?"; title = "Logout";
}; text = "Do you want to logout?";
} };
{ }
text = ""; {
exec = confirm_command { text = "";
cmd = "${systemctl} reboot"; exec = confirm_command {
title = "Reboot"; cmd = "${systemctl} reboot";
text = "Do you want to reboot?"; title = "Reboot";
}; text = "Do you want to reboot?";
} };
{ }
text = ""; {
exec = confirm_command { text = "";
cmd = "${systemctl} hibernate"; exec = confirm_command {
title = "Hibernate"; cmd = "${systemctl} hibernate";
text = "Do you want to hibernate?"; title = "Hibernate";
}; text = "Do you want to hibernate?";
} };
{ }
text = ""; {
exec = confirm_command { text = "";
cmd = "${shutdown} now"; exec = confirm_command {
title = "Shutdown"; cmd = "${shutdown} now";
text = "Do you want to shutdown?"; title = "Shutdown";
}; text = "Do you want to shutdown?";
} };
]]; }
]
];
}; };
"module/notifications" = { "module/notifications" = {

View file

@ -13,7 +13,8 @@ let
VST_PATH = "$HOME/.vst:${userLibFolder}/vst:${systemLibFolder}/vst"; VST_PATH = "$HOME/.vst:${userLibFolder}/vst:${systemLibFolder}/vst";
VST3_PATH = "$HOME/.vst3:${userLibFolder}/vst3:${systemLibFolder}/vst3"; VST3_PATH = "$HOME/.vst3:${userLibFolder}/vst3:${systemLibFolder}/vst3";
}; };
in { in
{
home.packages = builtins.attrValues { home.packages = builtins.attrValues {
inherit (pkgs) inherit (pkgs)
carla rnnoise ardour carla rnnoise ardour

View file

@ -1,8 +1,8 @@
{ pkgs, ... }: { { pkgs, ... }: {
home.packages = builtins.attrValues { home.packages = builtins.attrValues {
inherit (pkgs.unstable_pkgs) inherit (pkgs.unstable_pkgs)
# mendeley # Reference manager # mendeley # Reference manager
obsidian # Note manager obsidian# Note manager
; ;
}; };
} }

View file

@ -1,18 +1,18 @@
{ pkgs, ... }: { { pkgs, ... }: {
home.packages = builtins.attrValues { home.packages = builtins.attrValues {
inherit (pkgs) inherit (pkgs)
nmap # RECOGNITION nmap# RECOGNITION
# WEB # WEB
httpie httpie
# altair # altair
# burpsuite # burpsuite
bintools ghidra-bin radare2 # REVERSING bintools ghidra-bin radare2# REVERSING
# cutter # cutter
# INFRASTRUCTURE # INFRASTRUCTURE
# cocktail-bar-cli # cocktail-bar-cli
; ;
}; };
} }

View file

@ -5,97 +5,99 @@
]; ];
home.packages = builtins.attrValues { home.packages = builtins.attrValues {
inherit (pkgs) inherit (pkgs)
# bc # bc
bsp-layout clipedit lockscreen terminator; # required by bsp-layout bsp-layout clipedit lockscreen terminator; # required by bsp-layout
}; };
services.sxhkd = let services.sxhkd =
primaryTerminal = "kitty"; let
secondaryTerminal = "terminator"; primaryTerminal = "kitty";
fileManager = "nautilus"; secondaryTerminal = "terminator";
secondaryFileManager = "thunar"; fileManager = "nautilus";
emojiChooser = "rofimoji --skin-tone light -a copy"; secondaryFileManager = "thunar";
yad = "${pkgs.yad}/bin/yad"; emojiChooser = "rofimoji --skin-tone light -a copy";
notify = "${pkgs.libnotify}/bin/notify-send"; yad = "${pkgs.yad}/bin/yad";
pamixer = "${pkgs.pamixer}/bin/pamixer"; notify = "${pkgs.libnotify}/bin/notify-send";
playerctl = "${pkgs.playerctl}/bin/playerctl"; pamixer = "${pkgs.pamixer}/bin/pamixer";
xbacklight = "${pkgs.xorg.xbacklight}/bin/xbacklight"; playerctl = "${pkgs.playerctl}/bin/playerctl";
resetBspwm = pkgs.writeShellScript "resetBspwm" '' xbacklight = "${pkgs.xorg.xbacklight}/bin/xbacklight";
bspc wm -r resetBspwm = pkgs.writeShellScript "resetBspwm" ''
systemctl --user restart polybar # Restart polybar bspc wm -r
''; systemctl --user restart polybar # Restart polybar
moveAllNodesToPrimary = pkgs.writeShellScript "moveAllNodesToPrimary" ''
comm -23 <(bspc query -N | sort) <(bspc query -m primary -N | sort) | while read n; do bspc node $n -m primary; done
'';
notifyVolume = pkgs.writeShellScript "notifyVolume" ''
volume=`${pamixer} --get-volume`
${notify} -r 1 -h "int:value:$volume" "Volume $volume%"
'';
notifyBrightness = pkgs.writeShellScript "notifyBrightness" ''
level=`printf "%.0f" $(${xbacklight} -get)`
${notify} -r 2 -h "int:value:$level" "Luminosità $level"
'';
in {
enable = true;
keybindings = {
"alt + Tab" = "rofi -show window";
"Print" = "${pkgs.gnome.gnome-screenshot}/bin/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 + m" = "lockscreen";
"super + alt + p" = "autorandr -c";
"super + alt + shift + p" = "arandr";
"super + alt + q" = ''
${yad} --question --center --on-top --sticky --timeout=30 --timeout-indicator=bottom --image=gnome-shutdown --title "Shutdown" --text "Do you want to shutdown?" && bspc quit
''; '';
"super + alt + o" = "${moveAllNodesToPrimary}"; moveAllNodesToPrimary = pkgs.writeShellScript "moveAllNodesToPrimary" ''
"super + alt + r" = "${resetBspwm}"; comm -23 <(bspc query -N | sort) <(bspc query -m primary -N | sort) | while read n; do bspc node $n -m primary; done
"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" = "${pkgs.update-background}/bin/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 + space" = "bspc node -p cancel";
"super + e {_,+shift}" = "{${fileManager},${secondaryFileManager}}";
"super + shift + p" = "clipedit";
"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 + {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 + {_,shift + } c" = "bspc node -f {next,prev}.local";
"super + {_,shift + } space" = "rofi -show {drun,run}";
"super + shift + ctrl + d" = "rofi -show ssh";
"super + alt + 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" = notifyVolume = pkgs.writeShellScript "notifyVolume" ''
"{${primaryTerminal} , ${secondaryTerminal}}"; volume=`${pamixer} --get-volume`
"super + {_,shift + } w" = "bspc node -{c,k}"; ${notify} -r 1 -h "int:value:$volume" "Volume $volume%"
"super + {t,shift + t,s,f}" = '';
"bspc node -t {tiled,pseudo_tiled,floating,fullscreen}"; notifyBrightness = pkgs.writeShellScript "notifyBrightness" ''
# "super + y" = "bspc node newest.marked.local -n newest.!automatic.local"; level=`printf "%.0f" $(${xbacklight} -get)`
"XF86Audio{LowerVolume,Mute,RaiseVolume}" = ${notify} -r 2 -h "int:value:$level" "Luminosità $level"
"${pamixer} {-d 2 -u,-t,-i 2 -u} && ${notifyVolume}"; '';
"XF86Audio{Next,Play,Prev}" = "${playerctl} {next,play-pause,previous}"; in
"super + alt + {Right,Down,Left}" = {
"${playerctl} {next,play-pause,previous}"; enable = true;
"XF86MonBrightness{Up,Down}" = keybindings = {
" ${xbacklight} -{inc,dec} 10 && ${notifyBrightness}"; "alt + Tab" = "rofi -show window";
"Print" = "${pkgs.gnome.gnome-screenshot}/bin/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 + m" = "lockscreen";
"super + alt + p" = "autorandr -c";
"super + alt + shift + p" = "arandr";
"super + alt + q" = ''
${yad} --question --center --on-top --sticky --timeout=30 --timeout-indicator=bottom --image=gnome-shutdown --title "Shutdown" --text "Do you want to shutdown?" && bspc quit
'';
"super + alt + o" = "${moveAllNodesToPrimary}";
"super + alt + r" = "${resetBspwm}";
"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" = "${pkgs.update-background}/bin/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 + space" = "bspc node -p cancel";
"super + e {_,+shift}" = "{${fileManager},${secondaryFileManager}}";
"super + shift + p" = "clipedit";
"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 + {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 + {_,shift + } c" = "bspc node -f {next,prev}.local";
"super + {_,shift + } space" = "rofi -show {drun,run}";
"super + shift + ctrl + d" = "rofi -show ssh";
"super + alt + 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 + } w" = "bspc node -{c,k}";
"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";
"XF86Audio{LowerVolume,Mute,RaiseVolume}" =
"${pamixer} {-d 2 -u,-t,-i 2 -u} && ${notifyVolume}";
"XF86Audio{Next,Play,Prev}" = "${playerctl} {next,play-pause,previous}";
"super + alt + {Right,Down,Left}" =
"${playerctl} {next,play-pause,previous}";
"XF86MonBrightness{Up,Down}" =
" ${xbacklight} -{inc,dec} 10 && ${notifyBrightness}";
};
}; };
};
} }

View file

@ -26,7 +26,8 @@ let
bright.cyan bright.cyan
bright.white bright.white
]; ];
in { in
{
home.packages = [ pkgs.terminator ]; home.packages = [ pkgs.terminator ];
xdg.configFile."terminator/config".text = with strPalette; '' xdg.configFile."terminator/config".text = with strPalette; ''

View file

@ -3,7 +3,8 @@ with pkgs.lib.nix-rice;
let let
strPalette = palette.toRGBHex pkgs.rice.colorPalette; strPalette = palette.toRGBHex pkgs.rice.colorPalette;
font = pkgs.rice.font.normal; font = pkgs.rice.font.normal;
in { in
{
services.twmn = { services.twmn = {
enable = true; enable = true;
text = { text = {

View file

@ -75,11 +75,17 @@ let
categories = [ "AudioVideo" ]; categories = [ "AudioVideo" ];
} }
]; ];
webAppBuilder = { desktopName webAppBuilder =
, name ? builtins.replaceStrings [ " " ] [ "_" ] desktopName, link { desktopName
, icon ? lib.toLower name, comment ? null, categories ? [ "Network" ] }: , name ? builtins.replaceStrings [ " " ] [ "_" ] desktopName
, link
, icon ? lib.toLower name
, comment ? null
, categories ? [ "Network" ]
}:
pkgs.makeDesktopItem { pkgs.makeDesktopItem {
inherit name icon desktopName comment categories; inherit name icon desktopName comment categories;
exec = cmd link; exec = cmd link;
}; };
in { home.packages = map webAppBuilder links; } in
{ home.packages = map webAppBuilder links; }

View file

@ -19,7 +19,8 @@ let
shutDownScreens = pkgs.writeShellScript "shutdown_screens" '' shutDownScreens = pkgs.writeShellScript "shutdown_screens" ''
${xsetCmd} dpms force off ${xsetCmd} dpms force off
''; '';
in { in
{
services.xidlehook = { services.xidlehook = {
enable = true; enable = true;
package = pkgs.writeScriptBin "xidlehook" '' package = pkgs.writeScriptBin "xidlehook" ''

View file

@ -132,40 +132,42 @@ with lib; {
load printers = no load printers = no
smb encrypt = required smb encrypt = required
''; '';
shares = let shares =
common = { let
"public" = "no"; common = {
"writeable" = "yes"; "public" = "no";
"create mask" = "0700"; "writeable" = "yes";
"directory mask" = "2700"; "create mask" = "0700";
"browseable" = "yes"; "directory mask" = "2700";
"guest ok" = "no"; "browseable" = "yes";
"read only" = "no"; "guest ok" = "no";
"force group" = "users"; "read only" = "no";
"force group" = "users";
};
in
{
bertof = recursiveUpdate common {
path = "/home/bertof/";
comment = "Bertof samba share";
"force user" = "bertof";
"valid users" = "bertof";
};
tiziano = recursiveUpdate common {
path = "/home/tiziano/";
comment = "Tiziano samba share";
"force user" = "tiziano";
"valid users" = "tiziano";
};
condiviso = recursiveUpdate common {
path = "/mnt/raid0/condiviso";
comment = "Samba share condiviso";
"valid users" = "bertof tiziano";
"create mask" = "0770";
"directory mask" = "2770";
"force create mode" = "0660";
"force directory mode" = "2770";
};
}; };
in {
bertof = recursiveUpdate common {
path = "/home/bertof/";
comment = "Bertof samba share";
"force user" = "bertof";
"valid users" = "bertof";
};
tiziano = recursiveUpdate common {
path = "/home/tiziano/";
comment = "Tiziano samba share";
"force user" = "tiziano";
"valid users" = "tiziano";
};
condiviso = recursiveUpdate common {
path = "/mnt/raid0/condiviso";
comment = "Samba share condiviso";
"valid users" = "bertof tiziano";
"create mask" = "0770";
"directory mask" = "2770";
"force create mode" = "0660";
"force directory mode" = "2770";
};
};
}; };
smartd.enable = true; smartd.enable = true;
sonarr = { sonarr = {
@ -239,55 +241,57 @@ with lib; {
}; };
services.snapper = { services.snapper = {
configs = let configs =
commonExtraConfig = '' let
TIMELINE_CREATE=yes commonExtraConfig = ''
TIMELINE_CLEANUP=yes TIMELINE_CREATE=yes
''; TIMELINE_CLEANUP=yes
in {
bertof_raid0 = {
subvolume = "/home/bertof/raid0";
extraConfig = ''
ALLOW_USERS="bertof"
${commonExtraConfig}
''; '';
in
{
bertof_raid0 = {
subvolume = "/home/bertof/raid0";
extraConfig = ''
ALLOW_USERS="bertof"
${commonExtraConfig}
'';
};
tiziano_raid0 = {
subvolume = "/home/tiziano/raid0";
extraConfig = ''
ALLOW_USERS="tiziano"
${commonExtraConfig}
'';
};
bertof_raid1 = {
subvolume = "/home/bertof/raid1";
extraConfig = ''
ALLOW_USERS="bertof"
${commonExtraConfig}
'';
};
tiziano_raid1 = {
subvolume = "/home/tiziano/raid1";
extraConfig = ''
ALLOW_USERS="tiziano"
${commonExtraConfig}
'';
};
condiviso_raid0 = {
subvolume = "/mnt/raid0/condiviso";
extraConfig = ''
ALLOW_USERS="bertof tiziano"
${commonExtraConfig}
'';
};
condiviso_raid1 = {
subvolume = "/mnt/raid1/condiviso";
extraConfig = ''
ALLOW_USERS="bertof tiziano"
${commonExtraConfig}
'';
};
}; };
tiziano_raid0 = {
subvolume = "/home/tiziano/raid0";
extraConfig = ''
ALLOW_USERS="tiziano"
${commonExtraConfig}
'';
};
bertof_raid1 = {
subvolume = "/home/bertof/raid1";
extraConfig = ''
ALLOW_USERS="bertof"
${commonExtraConfig}
'';
};
tiziano_raid1 = {
subvolume = "/home/tiziano/raid1";
extraConfig = ''
ALLOW_USERS="tiziano"
${commonExtraConfig}
'';
};
condiviso_raid0 = {
subvolume = "/mnt/raid0/condiviso";
extraConfig = ''
ALLOW_USERS="bertof tiziano"
${commonExtraConfig}
'';
};
condiviso_raid1 = {
subvolume = "/mnt/raid1/condiviso";
extraConfig = ''
ALLOW_USERS="bertof tiziano"
${commonExtraConfig}
'';
};
};
}; };
networking.firewall = { networking.firewall = {

View file

@ -77,7 +77,8 @@ let
STOP STOP
''; '';
}; };
in { in
{
networking = { 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" ]; };

View file

@ -6,7 +6,8 @@ let
filterAttrs (_k: v: v.fsType == "btrfs") config.fileSystems; filterAttrs (_k: v: v.fsType == "btrfs") config.fileSystems;
btrfsDevices = btrfsDevices =
unique (attrValues (mapAttrs (_: v: v.device) btrfsFileSystems)); unique (attrValues (mapAttrs (_: v: v.device) btrfsFileSystems));
in { in
{
services.btrfs.autoScrub = { services.btrfs.autoScrub = {
enable = btrfsDevices != [ ]; enable = btrfsDevices != [ ];
fileSystems = btrfsDevices; fileSystems = btrfsDevices;

View file

@ -4,7 +4,8 @@ let
url = url =
"https://github.com/notracking/hosts-blocklists/raw/master/dnsmasq/dnsmasq.blacklist.txt"; "https://github.com/notracking/hosts-blocklists/raw/master/dnsmasq/dnsmasq.blacklist.txt";
}; };
in { in
{
networking.firewall.allowedTCPPorts = [ 53 ]; networking.firewall.allowedTCPPorts = [ 53 ];
networking.firewall.allowedUDPPorts = [ 53 ]; networking.firewall.allowedUDPPorts = [ 53 ];

View file

@ -3,8 +3,9 @@
let let
user_keys = user: user_keys = user:
lib.optionals (builtins.hasAttr "bertof" config.users.users) lib.optionals (builtins.hasAttr "bertof" config.users.users)
config.users.users.${user}.openssh.authorizedKeys.keys; config.users.users.${user}.openssh.authorizedKeys.keys;
in { in
{
# nix.buildMachines # nix.buildMachines
nix.distributedBuilds = true; nix.distributedBuilds = true;

View file

@ -171,33 +171,35 @@ with lib; {
services.smartd.enable = true; services.smartd.enable = true;
services.snapper = { services.snapper = {
configs = let configs =
bertofExtraConfig = '' let
ALLOW_USERS="bertof" bertofExtraConfig = ''
TIMELINE_CREATE=yes ALLOW_USERS="bertof"
TIMELINE_CLEANUP=yes TIMELINE_CREATE=yes
''; TIMELINE_CLEANUP=yes
common = { extraConfig = bertofExtraConfig; }; '';
in { common = { extraConfig = bertofExtraConfig; };
bertof_home = recursiveUpdate common { subvolume = "/home/bertof"; }; in
bertof_music = {
recursiveUpdate common { subvolume = "/home/bertof/Musica"; }; bertof_home = recursiveUpdate common { subvolume = "/home/bertof"; };
bertof_downloads = bertof_music =
recursiveUpdate common { subvolume = "/home/bertof/Scaricati"; }; recursiveUpdate common { subvolume = "/home/bertof/Musica"; };
bertof_images = bertof_downloads =
recursiveUpdate common { subvolume = "/home/bertof/Immagini"; }; recursiveUpdate common { subvolume = "/home/bertof/Scaricati"; };
bertof_videos = bertof_images =
recursiveUpdate common { subvolume = "/home/bertof/Video"; }; recursiveUpdate common { subvolume = "/home/bertof/Immagini"; };
bertof_documents = bertof_videos =
recursiveUpdate common { subvolume = "/home/bertof/Documenti"; }; recursiveUpdate common { subvolume = "/home/bertof/Video"; };
bertof_games_ssd = bertof_documents =
recursiveUpdate common { subvolume = "/home/bertof/Giochi/SSD"; }; recursiveUpdate common { subvolume = "/home/bertof/Documenti"; };
bertof_games_sata = bertof_games_ssd =
recursiveUpdate common { subvolume = "/home/bertof/Giochi/SATA"; }; recursiveUpdate common { subvolume = "/home/bertof/Giochi/SSD"; };
# bertof_games_hdd = recursiveUpdate common { subvolume = "/home/bertof/Giochi/HDD"; }; bertof_games_sata =
bertof_git = recursiveUpdate common { subvolume = "/home/bertof/Giochi/SATA"; };
recursiveUpdate common { subvolume = "/home/bertof/Documenti/Git"; }; # bertof_games_hdd = recursiveUpdate common { subvolume = "/home/bertof/Giochi/HDD"; };
}; bertof_git =
recursiveUpdate common { subvolume = "/home/bertof/Documenti/Git"; };
};
}; };
services.dbus = { services.dbus = {

View file

@ -8,29 +8,29 @@
}; };
packages = builtins.attrValues { packages = builtins.attrValues {
inherit (pkgs) inherit (pkgs)
# element-desktop # matrix client # element-desktop # matrix client
# evolution # evolution
# freecad # freecad
# lutris # lutris
# minecraft # minecraft
# mycrypto # mycrypto
# pcmanfm # pcmanfm
# pulseaudio # pulseaudio
# retroarchFull # retroarchFull
# signal-desktop # signal-desktop
# slack # slack
# wineFull # wineFull
arandr authy bitwarden cava discord dmenu droidcam easyeffects evince arandr authy bitwarden cava discord dmenu droidcam easyeffects evince
gallery-dl krita meld openvpn p7zip pavucontrol pentablet-driver postman gallery-dl krita meld openvpn p7zip pavucontrol pentablet-driver postman
procps pulseaudio shotwell skypeforlinux spotify tdesktop teams procps pulseaudio shotwell skypeforlinux spotify tdesktop teams
thunderbird transmission-gtk virt-manager virt-viewer wireguard-tools thunderbird transmission-gtk virt-manager virt-viewer wireguard-tools
xournalpp zoom-us gucharmap handbrake httpie inkscape; xournalpp zoom-us gucharmap handbrake httpie inkscape;
inherit (pkgs.gnome) inherit (pkgs.gnome)
# geary # geary
# gnome-boxes # gnome-boxes
# gnome-calendar # gnome-calendar
# gnome-sound-recorder # gnome-sound-recorder
# seahorse # seahorse
eog file-roller gnome-font-viewer gnome-screenshot gnome-system-monitor eog file-roller gnome-font-viewer gnome-screenshot gnome-system-monitor
totem; totem;
inherit (pkgs.jetbrains) datagrip; inherit (pkgs.jetbrains) datagrip;

View file

@ -18,7 +18,8 @@ let
loki = loki =
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICeomEH/27XFlOjQ/GTO2mo8qPMHTbzLIsX0dloxXfhb"; "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICeomEH/27XFlOjQ/GTO2mo8qPMHTbzLIsX0dloxXfhb";
systems = [ odin thor baldur loki ]; systems = [ odin thor baldur loki ];
in { in
{
# "oauth_proxy_client_credentials.age".publicKeys = users ++ systems; # "oauth_proxy_client_credentials.age".publicKeys = users ++ systems;
"spotify_password.age".publicKeys = users ++ systems; "spotify_password.age".publicKeys = users ++ systems;
} }

View file

@ -122,17 +122,19 @@ with lib; {
power-profiles-daemon.enable = true; power-profiles-daemon.enable = true;
smartd.enable = true; smartd.enable = true;
snapper = { snapper = {
configs = let configs =
common = { let
extraConfig = '' common = {
ALLOW_USERS="bertof" extraConfig = ''
TIMELINE_CREATE=yes ALLOW_USERS="bertof"
TIMELINE_CLEANUP=yes TIMELINE_CREATE=yes
''; TIMELINE_CLEANUP=yes
'';
};
in
{
bertof_home = recursiveUpdate common { subvolume = "/home/bertof"; };
}; };
in {
bertof_home = recursiveUpdate common { subvolume = "/home/bertof"; };
};
}; };
thermald.enable = true; thermald.enable = true;
xserver = { xserver = {

View file

@ -8,18 +8,18 @@
}; };
packages = builtins.attrValues { packages = builtins.attrValues {
inherit (pkgs) inherit (pkgs)
# electrum # electrum
# element-desktop # matrix client # element-desktop # matrix client
# evolution # evolution
# freecad # freecad
# lutris # lutris
# minecraft # minecraft
# mycrypto # mycrypto
# pcmanfm # pcmanfm
# pulseaudio # pulseaudio
# signal-desktop # signal-desktop
# slack # slack
# wineFull # wineFull
arandr authy bitwarden discord dmenu docker-compose docker-machine arandr authy bitwarden discord dmenu docker-compose docker-machine
droidcam easyeffects evince filelight gallery-dl gucharmap handbrake droidcam easyeffects evince filelight gallery-dl gucharmap handbrake
httpie inkscape krita meld openvpn p7zip pavucontrol pcsx2 httpie inkscape krita meld openvpn p7zip pavucontrol pcsx2
@ -27,11 +27,11 @@
skypeforlinux spotify tdesktop teams thunderbird transmission-gtk skypeforlinux spotify tdesktop teams thunderbird transmission-gtk
virt-manager virt-viewer wireguard-tools xournalpp zoom-us; virt-manager virt-viewer wireguard-tools xournalpp zoom-us;
inherit (pkgs.gnome) inherit (pkgs.gnome)
# geary # geary
# gnome-boxes # gnome-boxes
# gnome-calendar # gnome-calendar
# gnome-sound-recorder # gnome-sound-recorder
# seahorse # seahorse
eog file-roller gnome-font-viewer gnome-screenshot gnome-system-monitor eog file-roller gnome-font-viewer gnome-screenshot gnome-system-monitor
totem; totem;
inherit (pkgs.jetbrains) datagrip; inherit (pkgs.jetbrains) datagrip;