Nix fmt rfc style (more or less)
This commit is contained in:
parent
e7496c447a
commit
515f098644
146 changed files with 2607 additions and 906 deletions
|
|
@ -3,15 +3,20 @@
|
||||||
, xclip
|
, xclip
|
||||||
, coreutils
|
, coreutils
|
||||||
, terminal-command ? "kitty -e"
|
, terminal-command ? "kitty -e"
|
||||||
|
,
|
||||||
}:
|
}:
|
||||||
# 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" ''
|
||||||
PATH=$PATH:"${lib.makeBinPath [ coreutils xclip ]}"
|
PATH=$PATH:"${
|
||||||
|
lib.makeBinPath [
|
||||||
|
coreutils
|
||||||
|
xclip
|
||||||
|
]
|
||||||
|
}"
|
||||||
tmp_file=$(mktemp)
|
tmp_file=$(mktemp)
|
||||||
xclip -out -selection -clipboard > $tmp_file
|
xclip -out -selection -clipboard > $tmp_file
|
||||||
${terminal-command} $VISUAL $tmp_file || ${terminal-command} $EDITOR $tmp_file
|
${terminal-command} $VISUAL $tmp_file || ${terminal-command} $EDITOR $tmp_file
|
||||||
xclip -in -selection clipboard < $tmp_file
|
xclip -in -selection clipboard < $tmp_file
|
||||||
rm $tmp_file
|
rm $tmp_file
|
||||||
''
|
''
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,7 @@
|
||||||
{ pkgs ? import <nixos> { inherit system; }, system ? builtins.currentSystem }:
|
{ pkgs ? import <nixos> { inherit system; }
|
||||||
|
, system ? builtins.currentSystem
|
||||||
|
,
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
self = {
|
self = {
|
||||||
clipedit = pkgs.callPackage ./clipedit { };
|
clipedit = pkgs.callPackage ./clipedit { };
|
||||||
|
|
|
||||||
|
|
@ -4,11 +4,18 @@
|
||||||
, libnotify
|
, libnotify
|
||||||
, coreutils
|
, coreutils
|
||||||
, keyboard_name ? "AT Translated Set 2 keyboard"
|
, keyboard_name ? "AT Translated Set 2 keyboard"
|
||||||
|
,
|
||||||
}:
|
}:
|
||||||
writeShellScriptBin "keyboard-switch" ''
|
writeShellScriptBin "keyboard-switch" ''
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
PATH=$PATH:"${lib.makeBinPath [ coreutils xorg.xinput libnotify ]}"
|
PATH=$PATH:"${
|
||||||
|
lib.makeBinPath [
|
||||||
|
coreutils
|
||||||
|
xorg.xinput
|
||||||
|
libnotify
|
||||||
|
]
|
||||||
|
}"
|
||||||
fconfig="''${XDG_DATA_HOME:-$HOME/.local/share}/keyboard-switch.state"
|
fconfig="''${XDG_DATA_HOME:-$HOME/.local/share}/keyboard-switch.state"
|
||||||
if [ ! -f $fconfig ]; then
|
if [ ! -f $fconfig ]; then
|
||||||
echo "Creating config file"
|
echo "Creating config file"
|
||||||
|
|
@ -31,5 +38,3 @@ writeShellScriptBin "keyboard-switch" ''
|
||||||
echo 'disabled' > $fconfig
|
echo 'disabled' > $fconfig
|
||||||
fi
|
fi
|
||||||
''
|
''
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,8 +10,10 @@
|
||||||
, palette ? rice.palette.palette { }
|
, palette ? rice.palette.palette { }
|
||||||
, ...
|
, ...
|
||||||
}:
|
}:
|
||||||
let strPalette = lib.nix-rice.palette.toRGBAHex palette;
|
let
|
||||||
in writeScriptBin "lockscreen" ''
|
strPalette = lib.nix-rice.palette.toRGBAHex palette;
|
||||||
|
in
|
||||||
|
writeScriptBin "lockscreen" ''
|
||||||
# Using font package ${font.package}
|
# Using font package ${font.package}
|
||||||
${i3lock-color}/bin/i3lock-color \
|
${i3lock-color}/bin/i3lock-color \
|
||||||
--insidever-color="${strPalette.normal.green}" \
|
--insidever-color="${strPalette.normal.green}" \
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,10 @@
|
||||||
{ lib, stdenv, fetchFromGitHub, sddm, qt5 }:
|
{ lib
|
||||||
|
, stdenv
|
||||||
|
, fetchFromGitHub
|
||||||
|
, sddm
|
||||||
|
, qt5
|
||||||
|
,
|
||||||
|
}:
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
pname = "sddm-sugar-dark";
|
pname = "sddm-sugar-dark";
|
||||||
version = "2023-02-17";
|
version = "2023-02-17";
|
||||||
|
|
@ -35,4 +41,3 @@ stdenv.mkDerivation {
|
||||||
platforms = lib.platforms.all;
|
platforms = lib.platforms.all;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,10 @@
|
||||||
{ lib, stdenv, fetchFromGitHub, fira-mono, wallpaper ? null }:
|
{ lib
|
||||||
|
, stdenv
|
||||||
|
, fetchFromGitHub
|
||||||
|
, fira-mono
|
||||||
|
, wallpaper ? null
|
||||||
|
,
|
||||||
|
}:
|
||||||
with lib;
|
with lib;
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
pname = "sddm-theme-clairvoyance";
|
pname = "sddm-theme-clairvoyance";
|
||||||
|
|
@ -13,10 +19,12 @@ stdenv.mkDerivation {
|
||||||
|
|
||||||
buildInputs = [ fira-mono ];
|
buildInputs = [ fira-mono ];
|
||||||
|
|
||||||
installPhase = ''
|
installPhase =
|
||||||
|
''
|
||||||
mkdir -p $out/usr/share/sddm/themes/
|
mkdir -p $out/usr/share/sddm/themes/
|
||||||
cp -a . $out/usr/share/sddm/themes/clairvoyance
|
cp -a . $out/usr/share/sddm/themes/clairvoyance
|
||||||
'' + optionalString (wallpaper != null) ''
|
''
|
||||||
|
+ optionalString (wallpaper != null) ''
|
||||||
cp ${wallpaper} $out/usr/share/sddm/themes/clairvoyance/Assets/Background.jpg
|
cp ${wallpaper} $out/usr/share/sddm/themes/clairvoyance/Assets/Background.jpg
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@
|
||||||
, coreutils
|
, coreutils
|
||||||
, writeScriptBin
|
, writeScriptBin
|
||||||
, backgrounds_directory ? "$HOME/Immagini/Sfondi"
|
, backgrounds_directory ? "$HOME/Immagini/Sfondi"
|
||||||
|
,
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
find = "${findutils}/bin/find";
|
find = "${findutils}/bin/find";
|
||||||
|
|
|
||||||
|
|
@ -11,8 +11,10 @@
|
||||||
, palette ? rice.palette.palette { }
|
, palette ? rice.palette.palette { }
|
||||||
, ...
|
, ...
|
||||||
}:
|
}:
|
||||||
let strPalette = lib.nix-rice.palette.toRgbaShortHex palette;
|
let
|
||||||
in writeScriptBin "way-lockscreen" ''
|
strPalette = lib.nix-rice.palette.toRgbaShortHex palette;
|
||||||
|
in
|
||||||
|
writeScriptBin "way-lockscreen" ''
|
||||||
# Using font package ${font.package}
|
# Using font package ${font.package}
|
||||||
${swaylock}/bin/swaylock \
|
${swaylock}/bin/swaylock \
|
||||||
--color "${strPalette.primary.background}" \
|
--color "${strPalette.primary.background}" \
|
||||||
|
|
@ -35,4 +37,3 @@ in writeScriptBin "way-lockscreen" ''
|
||||||
# --indicator-radius 120 \
|
# --indicator-radius 120 \
|
||||||
# --indicator-thickness 15 \
|
# --indicator-thickness 15 \
|
||||||
''
|
''
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,16 +4,20 @@
|
||||||
, coreutils
|
, coreutils
|
||||||
, editor ? "hx"
|
, editor ? "hx"
|
||||||
, terminal-command ? "kitty -e"
|
, terminal-command ? "kitty -e"
|
||||||
|
,
|
||||||
}:
|
}:
|
||||||
# 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 "wl-clipedit" ''
|
writeShellScriptBin "wl-clipedit" ''
|
||||||
PATH=$PATH:"${lib.makeBinPath [ coreutils wl-clipboard ]}"
|
PATH=$PATH:"${
|
||||||
|
lib.makeBinPath [
|
||||||
|
coreutils
|
||||||
|
wl-clipboard
|
||||||
|
]
|
||||||
|
}"
|
||||||
tmp_file=$(mktemp)
|
tmp_file=$(mktemp)
|
||||||
wl-paste -t 'text/plain;charset=utf-8' -n > "$tmp_file"
|
wl-paste -t 'text/plain;charset=utf-8' -n > "$tmp_file"
|
||||||
${terminal-command} ''${VISUAL:-''${EDITOR:-${editor}}} "$tmp_file"
|
${terminal-command} ''${VISUAL:-''${EDITOR:-${editor}}} "$tmp_file"
|
||||||
wl-copy -t 'text/plain;charset=utf-8' -n < "$tmp_file"
|
wl-copy -t 'text/plain;charset=utf-8' -n < "$tmp_file"
|
||||||
rm "$tmp_file"
|
rm "$tmp_file"
|
||||||
''
|
''
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
11
default.nix
11
default.nix
|
|
@ -1,10 +1,13 @@
|
||||||
(import
|
(import
|
||||||
(
|
(
|
||||||
let lock = builtins.fromJSON (builtins.readFile ./flake.lock); in
|
let
|
||||||
|
lock = builtins.fromJSON (builtins.readFile ./flake.lock);
|
||||||
|
in
|
||||||
fetchTarball {
|
fetchTarball {
|
||||||
url = lock.nodes.flake-compat.locked.url or "https://github.com/edolstra/flake-compat/archive/${lock.nodes.flake-compat.locked.rev}.tar.gz";
|
url =
|
||||||
|
lock.nodes.flake-compat.locked.url
|
||||||
|
or "https://github.com/edolstra/flake-compat/archive/${lock.nodes.flake-compat.locked.rev}.tar.gz";
|
||||||
sha256 = lock.nodes.flake-compat.locked.narHash;
|
sha256 = lock.nodes.flake-compat.locked.narHash;
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
{ src = ./.; }
|
{ src = ./.; }).defaultNix
|
||||||
).defaultNix
|
|
||||||
|
|
|
||||||
308
flake.nix
308
flake.nix
|
|
@ -6,19 +6,53 @@
|
||||||
|
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/release-24.05";
|
nixpkgs.url = "github:NixOS/nixpkgs/release-24.05";
|
||||||
nixpkgs-u.url = "github:NixOS/nixpkgs/nixos-unstable";
|
nixpkgs-u.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
home-manager = { url = "github:nix-community/home-manager/release-24.05"; inputs.nixpkgs.follows = "nixpkgs"; };
|
home-manager = {
|
||||||
|
url = "github:nix-community/home-manager/release-24.05";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
# 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"; }; };
|
||||||
|
|
||||||
agenix = { url = "github:ryantm/agenix"; inputs.nixpkgs.follows = "nixpkgs"; };
|
agenix = {
|
||||||
deploy-rs = { url = "github:serokell/deploy-rs"; inputs = { nixpkgs.follows = "nixpkgs"; }; };
|
url = "github:ryantm/agenix";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
deploy-rs = {
|
||||||
|
url = "github:serokell/deploy-rs";
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
};
|
||||||
flake-utils.url = "github:numtide/flake-utils";
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
nix-rice.url = "github:bertof/nix-rice";
|
nix-rice.url = "github:bertof/nix-rice";
|
||||||
nixos-generators = { url = "github:nix-community/nixos-generators"; inputs = { nixpkgs.follows = "nixpkgs"; }; };
|
nixos-generators = {
|
||||||
|
url = "github:nix-community/nixos-generators";
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
};
|
||||||
nixos-hardware.url = "github:NixOS/nixos-hardware";
|
nixos-hardware.url = "github:NixOS/nixos-hardware";
|
||||||
pre-commit-hooks = { url = "github:cachix/pre-commit-hooks.nix"; inputs = { nixpkgs.follows = "nixpkgs"; }; };
|
pre-commit-hooks = {
|
||||||
|
url = "github:cachix/pre-commit-hooks.nix";
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = { self, nixpkgs, nixpkgs-u, home-manager, agenix, deploy-rs, flake-utils, nixos-generators, nixos-hardware, nix-rice, pre-commit-hooks, ... }:
|
outputs =
|
||||||
|
{ self
|
||||||
|
, nixpkgs
|
||||||
|
, nixpkgs-u
|
||||||
|
, home-manager
|
||||||
|
, agenix
|
||||||
|
, deploy-rs
|
||||||
|
, flake-utils
|
||||||
|
, nixos-generators
|
||||||
|
, nixos-hardware
|
||||||
|
, nix-rice
|
||||||
|
, pre-commit-hooks
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
config = {
|
config = {
|
||||||
allowUnfree = true;
|
allowUnfree = true;
|
||||||
|
|
@ -33,8 +67,14 @@
|
||||||
overlays = [
|
overlays = [
|
||||||
# Combine stable and unstable packages
|
# Combine stable and unstable packages
|
||||||
(self: _: {
|
(self: _: {
|
||||||
stable_pkgs = import nixpkgs { inherit config overlays; inherit (self) system; };
|
stable_pkgs = import nixpkgs {
|
||||||
unstable_pkgs = import nixpkgs-u { inherit config overlays; inherit (self) system; };
|
inherit config overlays;
|
||||||
|
inherit (self) system;
|
||||||
|
};
|
||||||
|
unstable_pkgs = import nixpkgs-u {
|
||||||
|
inherit config overlays;
|
||||||
|
inherit (self) system;
|
||||||
|
};
|
||||||
})
|
})
|
||||||
|
|
||||||
# Nix rice
|
# Nix rice
|
||||||
|
|
@ -45,24 +85,47 @@
|
||||||
(self: super: {
|
(self: super: {
|
||||||
clipedit = self.callPackage ./custom/clipedit { };
|
clipedit = self.callPackage ./custom/clipedit { };
|
||||||
wl-clipedit = self.callPackage ./custom/wl-clipedit { };
|
wl-clipedit = self.callPackage ./custom/wl-clipedit { };
|
||||||
update-background = self.callPackage ./custom/update-background { backgrounds_directory = "$HOME/Immagini/Sfondi/1080+/1440+"; };
|
update-background = self.callPackage ./custom/update-background {
|
||||||
lockscreen = self.callPackage ./custom/lockscreen { palette = self.rice.colorPalette; font = self.rice.font.normal; };
|
backgrounds_directory = "$HOME/Immagini/Sfondi/1080+/1440+";
|
||||||
way-lockscreen = self.callPackage ./custom/way-lockscreen { palette = self.rice.colorPalette; font = self.rice.font.normal; };
|
};
|
||||||
sddm-theme-clairvoyance = self.callPackage ./custom/sddm-theme-clairvoyance { wallpaper = ./wallpapers/background.jpg; };
|
lockscreen = self.callPackage ./custom/lockscreen {
|
||||||
|
palette = self.rice.colorPalette;
|
||||||
|
font = self.rice.font.normal;
|
||||||
|
};
|
||||||
|
way-lockscreen = self.callPackage ./custom/way-lockscreen {
|
||||||
|
palette = self.rice.colorPalette;
|
||||||
|
font = self.rice.font.normal;
|
||||||
|
};
|
||||||
|
sddm-theme-clairvoyance = self.callPackage ./custom/sddm-theme-clairvoyance {
|
||||||
|
wallpaper = ./wallpapers/background.jpg;
|
||||||
|
};
|
||||||
keyboard-switch = self.callPackage ./custom/keyboard-switch { };
|
keyboard-switch = self.callPackage ./custom/keyboard-switch { };
|
||||||
sddm-sugar-dark = self.callPackage ./custom/sddm-sugar-dark { };
|
sddm-sugar-dark = self.callPackage ./custom/sddm-sugar-dark { };
|
||||||
google-chrome = super.google-chrome.override { commandLineArgs = [ "--password-store=gnome" "--force-dark-mode" ]; };
|
google-chrome = super.google-chrome.override {
|
||||||
|
commandLineArgs = [
|
||||||
|
"--password-store=gnome"
|
||||||
|
"--force-dark-mode"
|
||||||
|
];
|
||||||
|
};
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
basic = with flake-utils.lib;
|
basic =
|
||||||
eachDefaultSystem (system:
|
with flake-utils.lib;
|
||||||
let pkgs = import nixpkgs { inherit system config overlays; };
|
eachDefaultSystem (
|
||||||
in {
|
system:
|
||||||
|
let
|
||||||
|
pkgs = import nixpkgs { inherit system config overlays; };
|
||||||
|
in
|
||||||
|
{
|
||||||
checks = {
|
checks = {
|
||||||
pre-commit-check = pre-commit-hooks.lib.${system}.run {
|
pre-commit-check = pre-commit-hooks.lib.${system}.run {
|
||||||
src = ./.;
|
src = ./.;
|
||||||
hooks = { deadnix.enable = true; nixpkgs-fmt.enable = true; statix.enable = true; };
|
hooks = {
|
||||||
|
deadnix.enable = true;
|
||||||
|
nixpkgs-fmt.enable = true;
|
||||||
|
statix.enable = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -78,15 +141,30 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
formatter = pkgs.nixpkgs-fmt;
|
formatter = pkgs.nixpkgs-fmt;
|
||||||
});
|
}
|
||||||
|
);
|
||||||
|
|
||||||
nix_configuration = {
|
nix_configuration = {
|
||||||
nixpkgs = { inherit overlays config; };
|
nixpkgs = {
|
||||||
|
inherit overlays config;
|
||||||
|
};
|
||||||
nix = {
|
nix = {
|
||||||
inherit (config) extraOptions;
|
inherit (config) extraOptions;
|
||||||
registry = {
|
registry = {
|
||||||
stable = { from = { id = "stable"; type = "indirect"; }; flake = nixpkgs; };
|
stable = {
|
||||||
unstable = { from = { id = "unstable"; type = "indirect"; }; flake = nixpkgs-u; };
|
from = {
|
||||||
|
id = "stable";
|
||||||
|
type = "indirect";
|
||||||
|
};
|
||||||
|
flake = nixpkgs;
|
||||||
|
};
|
||||||
|
unstable = {
|
||||||
|
from = {
|
||||||
|
id = "unstable";
|
||||||
|
type = "indirect";
|
||||||
|
};
|
||||||
|
flake = nixpkgs-u;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
@ -94,7 +172,12 @@
|
||||||
# Home manager configuration
|
# Home manager configuration
|
||||||
homeManagerModules = [
|
homeManagerModules = [
|
||||||
home-manager.nixosModules.default
|
home-manager.nixosModules.default
|
||||||
{ home-manager = { useGlobalPkgs = true; useUserPackages = true; }; }
|
{
|
||||||
|
home-manager = {
|
||||||
|
useGlobalPkgs = true;
|
||||||
|
useUserPackages = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
# homeManagerUModules = [
|
# homeManagerUModules = [
|
||||||
|
|
@ -112,9 +195,15 @@
|
||||||
age.secrets = {
|
age.secrets = {
|
||||||
# oauth_proxy_client_credentials.file = ./secrets/oauth_proxy_client_credentials.age;
|
# oauth_proxy_client_credentials.file = ./secrets/oauth_proxy_client_credentials.age;
|
||||||
# spotify_password = { file = ./secrets/spotify_password.age; owner = "bertof"; };
|
# spotify_password = { file = ./secrets/spotify_password.age; owner = "bertof"; };
|
||||||
wg_psk = { file = ./secrets/wg_psk.age; };
|
wg_psk = {
|
||||||
baldur_wg_priv = { file = ./secrets/baldur_wg_priv.age; };
|
file = ./secrets/wg_psk.age;
|
||||||
oppo_wg_priv = { file = ./secrets/oppo_wg_priv.age; };
|
};
|
||||||
|
baldur_wg_priv = {
|
||||||
|
file = ./secrets/baldur_wg_priv.age;
|
||||||
|
};
|
||||||
|
oppo_wg_priv = {
|
||||||
|
file = ./secrets/oppo_wg_priv.age;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -130,7 +219,9 @@
|
||||||
nixosConfigurations = {
|
nixosConfigurations = {
|
||||||
thor = nixpkgs.lib.nixosSystem {
|
thor = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
modules = commonModules ++ [
|
modules =
|
||||||
|
commonModules
|
||||||
|
++ [
|
||||||
./modules/nixos/server
|
./modules/nixos/server
|
||||||
|
|
||||||
./instances/thor/hardware-configuration.nix
|
./instances/thor/hardware-configuration.nix
|
||||||
|
|
@ -151,9 +242,9 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
./modules/nixos/musa.nix
|
./modules/nixos/musa.nix
|
||||||
] ++ homeManagerModules ++ [
|
]
|
||||||
{ home-manager.users.bertof = import ./instances/thor/hm.nix; }
|
++ homeManagerModules
|
||||||
];
|
++ [{ home-manager.users.bertof = import ./instances/thor/hm.nix; }];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
@ -175,28 +266,20 @@
|
||||||
./modules/nixos/steam.nix
|
./modules/nixos/steam.nix
|
||||||
|
|
||||||
./modules/nixos/hyprland.nix
|
./modules/nixos/hyprland.nix
|
||||||
{
|
{ home-manager.users.bertof.imports = [ ./modules/hm/hyprland.nix ]; }
|
||||||
home-manager.users.bertof.imports = [
|
|
||||||
./modules/hm/hyprland.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
./modules/nixos/musa.nix
|
./modules/nixos/musa.nix
|
||||||
] ++ homeManagerModules ++ [
|
] ++ homeManagerModules ++ [{ home-manager.users.bertof = import ./instances/odin/hm.nix; }];
|
||||||
{ home-manager.users.bertof = import ./instances/odin/hm.nix; }
|
|
||||||
];
|
|
||||||
in
|
in
|
||||||
rec {
|
rec {
|
||||||
odin-nvidia = nixpkgs.lib.nixosSystem {
|
odin-nvidia = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
modules = commonModules ++ odinCommonModules
|
modules = commonModules ++ odinCommonModules ++ [ ./instances/odin/configuration-nvidia.nix ];
|
||||||
++ [ ./instances/odin/configuration-nvidia.nix ];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
odin-intel = nixpkgs.lib.nixosSystem {
|
odin-intel = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
modules = commonModules ++ odinCommonModules
|
modules = commonModules ++ odinCommonModules ++ [ ./instances/odin/configuration-intel.nix ];
|
||||||
++ [ ./instances/odin/configuration-intel.nix ];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
odin = odin-intel;
|
odin = odin-intel;
|
||||||
|
|
@ -207,7 +290,9 @@
|
||||||
nixosConfigurations = {
|
nixosConfigurations = {
|
||||||
heimdall = nixpkgs.lib.nixosSystem {
|
heimdall = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
modules = commonModules ++ [
|
modules =
|
||||||
|
commonModules
|
||||||
|
++ [
|
||||||
nixos-hardware.nixosModules.common-cpu-amd
|
nixos-hardware.nixosModules.common-cpu-amd
|
||||||
nixos-hardware.nixosModules.common-gpu-amd
|
nixos-hardware.nixosModules.common-gpu-amd
|
||||||
nixos-hardware.nixosModules.common-pc-ssd
|
nixos-hardware.nixosModules.common-pc-ssd
|
||||||
|
|
@ -223,9 +308,9 @@
|
||||||
./modules/nixos/rclone.nix
|
./modules/nixos/rclone.nix
|
||||||
./modules/nixos/nextcloud.nix
|
./modules/nixos/nextcloud.nix
|
||||||
# ./modules/nixos/ntfy.nix
|
# ./modules/nixos/ntfy.nix
|
||||||
] ++ homeManagerModules ++ [
|
]
|
||||||
{ home-manager.users.bertof = import ./instances/heimdall/hm.nix; }
|
++ homeManagerModules
|
||||||
];
|
++ [{ home-manager.users.bertof = import ./instances/heimdall/hm.nix; }];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
@ -234,11 +319,24 @@
|
||||||
nixosConfigurations = {
|
nixosConfigurations = {
|
||||||
freya = nixpkgs.lib.nixosSystem {
|
freya = nixpkgs.lib.nixosSystem {
|
||||||
system = "aarch64-linux";
|
system = "aarch64-linux";
|
||||||
modules = commonModules ++ [
|
modules =
|
||||||
|
commonModules
|
||||||
|
++ [
|
||||||
nixos-hardware.nixosModules.raspberry-pi-4
|
nixos-hardware.nixosModules.raspberry-pi-4
|
||||||
({ lib, ... }: {
|
(
|
||||||
boot.supportedFilesystems = lib.mkForce [ "btrfs" "reiserfs" "vfat" "f2fs" "xfs" "ntfs" "cifs" ];
|
{ lib, ... }:
|
||||||
})
|
{
|
||||||
|
boot.supportedFilesystems = lib.mkForce [
|
||||||
|
"btrfs"
|
||||||
|
"reiserfs"
|
||||||
|
"vfat"
|
||||||
|
"f2fs"
|
||||||
|
"xfs"
|
||||||
|
"ntfs"
|
||||||
|
"cifs"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
)
|
||||||
./modules/nixos/server
|
./modules/nixos/server
|
||||||
|
|
||||||
./instances/freya/hardware-configuration.nix
|
./instances/freya/hardware-configuration.nix
|
||||||
|
|
@ -250,9 +348,9 @@
|
||||||
./modules/nixos/minio.nix
|
./modules/nixos/minio.nix
|
||||||
# ./modules/nixos/nextcloud.nix
|
# ./modules/nixos/nextcloud.nix
|
||||||
./modules/nixos/ntfy.nix
|
./modules/nixos/ntfy.nix
|
||||||
] ++ homeManagerModules ++ [
|
]
|
||||||
{ home-manager.users.bertof = import ./instances/freya/hm.nix; }
|
++ homeManagerModules
|
||||||
];
|
++ [{ home-manager.users.bertof = import ./instances/freya/hm.nix; }];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
@ -282,7 +380,9 @@
|
||||||
nixosConfigurations = {
|
nixosConfigurations = {
|
||||||
loki = nixpkgs.lib.nixosSystem {
|
loki = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
modules = commonModules ++ [
|
modules =
|
||||||
|
commonModules
|
||||||
|
++ [
|
||||||
./modules/nixos/server
|
./modules/nixos/server
|
||||||
|
|
||||||
nixos-hardware.nixosModules.common-cpu-intel
|
nixos-hardware.nixosModules.common-cpu-intel
|
||||||
|
|
@ -291,43 +391,108 @@
|
||||||
./instances/loki/configuration.nix
|
./instances/loki/configuration.nix
|
||||||
|
|
||||||
./modules/nixos/users/tiziano.nix
|
./modules/nixos/users/tiziano.nix
|
||||||
] ++ homeManagerModules ++ [{
|
]
|
||||||
|
++ homeManagerModules
|
||||||
|
++ [
|
||||||
|
{
|
||||||
home-manager.users.bertof = import ./instances/loki/hm.nix;
|
home-manager.users.bertof = import ./instances/loki/hm.nix;
|
||||||
home-manager.users.tiziano = import ./instances/loki/hm_tiziano.nix;
|
home-manager.users.tiziano = import ./instances/loki/hm_tiziano.nix;
|
||||||
}];
|
}
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
deployments = {
|
deployments = {
|
||||||
# Deploy-rs checks
|
# Deploy-rs checks
|
||||||
checks = builtins.mapAttrs
|
checks = builtins.mapAttrs (_system: deployLib: deployLib.deployChecks self.deploy) deploy-rs.lib;
|
||||||
(_system: deployLib: deployLib.deployChecks self.deploy)
|
|
||||||
deploy-rs.lib;
|
|
||||||
|
|
||||||
# Map nodes to Deploy-rs deployments
|
# Map nodes to Deploy-rs deployments
|
||||||
deploy.nodes = {
|
deploy.nodes = {
|
||||||
baldur = { hostname = "baldur.bertof.net"; profiles.system = { user = "root"; path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.baldur; }; };
|
baldur = {
|
||||||
freya = { hostname = "freya.tsn"; profiles.system = { user = "root"; path = deploy-rs.lib.aarch64-linux.activate.nixos self.nixosConfigurations.freya; }; };
|
hostname = "baldur.bertof.net";
|
||||||
heimdall = { hostname = "heimdall.tsn"; profiles.system = { user = "root"; path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.heimdall; }; };
|
profiles.system = {
|
||||||
loki = { hostname = "loki.tsn"; profiles.system = { user = "root"; path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.loki; }; };
|
user = "root";
|
||||||
odin = { hostname = "odin.tsn"; profiles.system = { user = "root"; path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.odin; }; };
|
path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.baldur;
|
||||||
thor = { hostname = "thor.tsn"; profiles.system = { user = "root"; path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.thor; }; };
|
};
|
||||||
|
};
|
||||||
|
freya = {
|
||||||
|
hostname = "freya.tsn";
|
||||||
|
profiles.system = {
|
||||||
|
user = "root";
|
||||||
|
path = deploy-rs.lib.aarch64-linux.activate.nixos self.nixosConfigurations.freya;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
heimdall = {
|
||||||
|
hostname = "heimdall.tsn";
|
||||||
|
profiles.system = {
|
||||||
|
user = "root";
|
||||||
|
path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.heimdall;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
loki = {
|
||||||
|
hostname = "loki.tsn";
|
||||||
|
profiles.system = {
|
||||||
|
user = "root";
|
||||||
|
path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.loki;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
odin = {
|
||||||
|
hostname = "odin.tsn";
|
||||||
|
profiles.system = {
|
||||||
|
user = "root";
|
||||||
|
path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.odin;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
thor = {
|
||||||
|
hostname = "thor.tsn";
|
||||||
|
profiles.system = {
|
||||||
|
user = "root";
|
||||||
|
path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.thor;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
images = with flake-utils.lib; eachSystem [ system.x86_64-linux system.aarch64-linux ] (system: {
|
images =
|
||||||
|
with flake-utils.lib;
|
||||||
|
eachSystem
|
||||||
|
[
|
||||||
|
system.x86_64-linux
|
||||||
|
system.aarch64-linux
|
||||||
|
]
|
||||||
|
(system: {
|
||||||
packages = {
|
packages = {
|
||||||
# Installer ISO
|
# Installer ISO
|
||||||
install-iso = nixos-generators.nixosGenerate { inherit system; modules = installerModules; format = "install-iso"; };
|
install-iso = nixos-generators.nixosGenerate {
|
||||||
|
inherit system;
|
||||||
|
modules = installerModules;
|
||||||
|
format = "install-iso";
|
||||||
|
};
|
||||||
# RAW base image
|
# RAW base image
|
||||||
raw-base-image = nixos-generators.nixosGenerate { system = flake-utils.lib.system.x86_64-linux; modules = installerModules; format = "raw-efi"; };
|
raw-base-image = nixos-generators.nixosGenerate {
|
||||||
|
system = flake-utils.lib.system.x86_64-linux;
|
||||||
|
modules = installerModules;
|
||||||
|
format = "raw-efi";
|
||||||
|
};
|
||||||
# VMDK base image
|
# VMDK base image
|
||||||
vmdk-base-image = nixos-generators.nixosGenerate { system = flake-utils.lib.system.x86_64-linux; modules = installerModules; format = "vmware"; };
|
vmdk-base-image = nixos-generators.nixosGenerate {
|
||||||
|
system = flake-utils.lib.system.x86_64-linux;
|
||||||
|
modules = installerModules;
|
||||||
|
format = "vmware";
|
||||||
|
};
|
||||||
# Aarch64 base image
|
# Aarch64 base image
|
||||||
aarch64-base-image = nixos-generators.nixosGenerate { system = flake-utils.lib.system.aarch64-linux; modules = installerModules; format = "sd-aarch64"; };
|
aarch64-base-image = nixos-generators.nixosGenerate {
|
||||||
|
system = flake-utils.lib.system.aarch64-linux;
|
||||||
|
modules = installerModules;
|
||||||
|
format = "sd-aarch64";
|
||||||
|
};
|
||||||
# Installer DigitalOcean
|
# Installer DigitalOcean
|
||||||
do-image = nixos-generators.nixosGenerate { inherit system; modules = installerModules; format = "do"; };
|
do-image = nixos-generators.nixosGenerate {
|
||||||
|
inherit system;
|
||||||
|
modules = installerModules;
|
||||||
|
format = "do";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -344,4 +509,3 @@
|
||||||
images
|
images
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -43,4 +43,3 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,9 +7,16 @@
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
growPartition = true;
|
growPartition = true;
|
||||||
kernelParams = [ "console=ttyS0" "panic=1" "boot.panic_on_fail" ];
|
kernelParams = [
|
||||||
|
"console=ttyS0"
|
||||||
|
"panic=1"
|
||||||
|
"boot.panic_on_fail"
|
||||||
|
];
|
||||||
initrd.kernelModules = [ "virtio_scsi" ];
|
initrd.kernelModules = [ "virtio_scsi" ];
|
||||||
kernelModules = [ "virtio_pci" "virtio_net" ];
|
kernelModules = [
|
||||||
|
"virtio_pci"
|
||||||
|
"virtio_net"
|
||||||
|
];
|
||||||
loader = {
|
loader = {
|
||||||
grub.device = "/dev/sda";
|
grub.device = "/dev/sda";
|
||||||
timeout = 0;
|
timeout = 0;
|
||||||
|
|
@ -24,13 +31,20 @@
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
pathsToLink = [ "/share/zsh" ];
|
pathsToLink = [ "/share/zsh" ];
|
||||||
systemPackages = [ pkgs.helix pkgs.zellij pkgs.kitty.terminfo ];
|
systemPackages = [
|
||||||
|
pkgs.helix
|
||||||
|
pkgs.zellij
|
||||||
|
pkgs.kitty.terminfo
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
i18n.defaultLocale = "it_IT.UTF-8";
|
i18n.defaultLocale = "it_IT.UTF-8";
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
gnupg.agent = { enable = true; enableSSHSupport = true; };
|
gnupg.agent = {
|
||||||
|
enable = true;
|
||||||
|
enableSSHSupport = true;
|
||||||
|
};
|
||||||
zsh.enable = true;
|
zsh.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -65,29 +79,40 @@
|
||||||
recommendedTlsSettings = true;
|
recommendedTlsSettings = true;
|
||||||
virtualHosts =
|
virtualHosts =
|
||||||
let
|
let
|
||||||
ssl = { enableACME = true; forceSSL = true; };
|
ssl = {
|
||||||
|
enableACME = true;
|
||||||
|
forceSSL = true;
|
||||||
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
"me.bertof.net" = ssl // {
|
"me.bertof.net" = ssl // {
|
||||||
locations."/".extraConfig =
|
locations."/".extraConfig = "rewrite ^/(.*)$ https://homes.di.unimi.it/berto/$1 redirect ;";
|
||||||
"rewrite ^/(.*)$ https://homes.di.unimi.it/berto/$1 redirect ;";
|
|
||||||
};
|
};
|
||||||
"home-assistant.bertof.net" = ssl // {
|
"home-assistant.bertof.net" = ssl // {
|
||||||
locations."/" = { proxyPass = "http://loki.tsn:8123/"; proxyWebsockets = true; };
|
locations."/" = {
|
||||||
|
proxyPass = "http://loki.tsn:8123/";
|
||||||
|
proxyWebsockets = true;
|
||||||
|
};
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
proxy_pass_header Authorization;
|
proxy_pass_header Authorization;
|
||||||
proxy_buffering off;
|
proxy_buffering off;
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
"s3.bertof.net" = ssl // {
|
"s3.bertof.net" = ssl // {
|
||||||
locations."/" = { proxyPass = "http://heimdall.tsn:9000/"; proxyWebsockets = true; };
|
locations."/" = {
|
||||||
|
proxyPass = "http://heimdall.tsn:9000/";
|
||||||
|
proxyWebsockets = true;
|
||||||
|
};
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
proxy_pass_header Authorization;
|
proxy_pass_header Authorization;
|
||||||
proxy_buffering off;
|
proxy_buffering off;
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
"hass.bertof.net" = ssl // {
|
"hass.bertof.net" = ssl // {
|
||||||
locations."/" = { proxyPass = "http://heimdall.tsn:8123/"; proxyWebsockets = true; };
|
locations."/" = {
|
||||||
|
proxyPass = "http://heimdall.tsn:8123/";
|
||||||
|
proxyWebsockets = true;
|
||||||
|
};
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
proxy_pass_header Authorization;
|
proxy_pass_header Authorization;
|
||||||
proxy_buffering off;
|
proxy_buffering off;
|
||||||
|
|
@ -120,14 +145,37 @@
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
"radarr.bertof.net" = ssl // { locations."/" = { proxyPass = "http://heimdall.tsn:7878/"; proxyWebsockets = true; }; };
|
"radarr.bertof.net" = ssl // {
|
||||||
"sonarr.bertof.net" = ssl // { locations."/" = { proxyPass = "http://heimdall.tsn:8989/"; proxyWebsockets = true; }; };
|
locations."/" = {
|
||||||
"lidarr.bertof.net" = ssl // { locations."/" = { proxyPass = "http://heimdall.tsn:8686/"; proxyWebsockets = true; }; };
|
proxyPass = "http://heimdall.tsn:7878/";
|
||||||
|
proxyWebsockets = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"sonarr.bertof.net" = ssl // {
|
||||||
|
locations."/" = {
|
||||||
|
proxyPass = "http://heimdall.tsn:8989/";
|
||||||
|
proxyWebsockets = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"lidarr.bertof.net" = ssl // {
|
||||||
|
locations."/" = {
|
||||||
|
proxyPass = "http://heimdall.tsn:8686/";
|
||||||
|
proxyWebsockets = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
# "ombi.bertof.net" = ssl // { locations."/" = { proxyPass = "http://heimdall.tsn:5000/"; proxyWebsockets = true; }; };
|
# "ombi.bertof.net" = ssl // { locations."/" = { proxyPass = "http://heimdall.tsn:5000/"; proxyWebsockets = true; }; };
|
||||||
"jellyfin.bertof.net" = ssl // { locations."/" = { proxyPass = "http://heimdall.tsn:8096/"; proxyWebsockets = true; }; };
|
"jellyfin.bertof.net" = ssl // {
|
||||||
|
locations."/" = {
|
||||||
|
proxyPass = "http://heimdall.tsn:8096/";
|
||||||
|
proxyWebsockets = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
openssh = { enable = true; openFirewall = true; };
|
};
|
||||||
|
};
|
||||||
|
openssh = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
};
|
||||||
# wgautomesh = {
|
# wgautomesh = {
|
||||||
# enable = true;
|
# enable = true;
|
||||||
# settings = {
|
# settings = {
|
||||||
|
|
@ -136,7 +184,10 @@
|
||||||
# };
|
# };
|
||||||
};
|
};
|
||||||
|
|
||||||
security.acme = { acceptTerms = true; defaults.email = "filippo.berto95@gmail.com"; };
|
security.acme = {
|
||||||
|
acceptTerms = true;
|
||||||
|
defaults.email = "filippo.berto95@gmail.com";
|
||||||
|
};
|
||||||
|
|
||||||
users.users.bertof = {
|
users.users.bertof = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
|
|
@ -174,8 +225,15 @@
|
||||||
firewall = {
|
firewall = {
|
||||||
enable = true;
|
enable = true;
|
||||||
allowPing = true;
|
allowPing = true;
|
||||||
allowedTCPPorts = [ 80 443 53 ];
|
allowedTCPPorts = [
|
||||||
allowedUDPPorts = [ 53 51820 ];
|
80
|
||||||
|
443
|
||||||
|
53
|
||||||
|
];
|
||||||
|
allowedUDPPorts = [
|
||||||
|
53
|
||||||
|
51820
|
||||||
|
];
|
||||||
# interfaces.ens3.allowedTCPPorts = [ 52123 53 ];
|
# interfaces.ens3.allowedTCPPorts = [ 52123 53 ];
|
||||||
# interfaces.ens3.allowedUDPPorts = [ 53 ];
|
# interfaces.ens3.allowedUDPPorts = [ 53 ];
|
||||||
# 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'';
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,13 @@
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
initrd = {
|
initrd = {
|
||||||
availableKernelModules = [ "ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" ];
|
availableKernelModules = [
|
||||||
|
"ata_piix"
|
||||||
|
"uhci_hcd"
|
||||||
|
"virtio_pci"
|
||||||
|
"virtio_scsi"
|
||||||
|
"sd_mod"
|
||||||
|
];
|
||||||
kernelModules = [ ];
|
kernelModules = [ ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -19,6 +25,9 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
swapDevices = [
|
swapDevices = [
|
||||||
{ device = "/swapfile"; size = 1024 * 1; }
|
{
|
||||||
|
device = "/swapfile";
|
||||||
|
size = 1024 * 1;
|
||||||
|
}
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,14 @@
|
||||||
{ pkgs, ... }: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
home = {
|
home = {
|
||||||
language.base = "it_IT.UTF-8";
|
language.base = "it_IT.UTF-8";
|
||||||
keyboard = {
|
keyboard = {
|
||||||
layout = "it";
|
layout = "it";
|
||||||
options = [ "terminate:ctrl_alt_bksp" "compose:rctrl" "grp:menu_toggle" ];
|
options = [
|
||||||
|
"terminate:ctrl_alt_bksp"
|
||||||
|
"compose:rctrl"
|
||||||
|
"grp:menu_toggle"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
packages = builtins.attrValues { inherit (pkgs) nix-prefetch-scripts; };
|
packages = builtins.attrValues { inherit (pkgs) nix-prefetch-scripts; };
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,13 @@
|
||||||
{ ... }: {
|
{ ... }:
|
||||||
|
{
|
||||||
home = {
|
home = {
|
||||||
language.base = "it_IT.UTF-8";
|
language.base = "it_IT.UTF-8";
|
||||||
keyboard = {
|
keyboard = {
|
||||||
layout = "it";
|
layout = "it";
|
||||||
options = [ "terminate:ctrl_alt_bksp" "compose:rctrl" ];
|
options = [
|
||||||
|
"terminate:ctrl_alt_bksp"
|
||||||
|
"compose:rctrl"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,24 @@
|
||||||
{ pkgs, lib, config, ... }:
|
{ pkgs
|
||||||
|
, lib
|
||||||
|
, config
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
hosts = import ../../hosts.nix;
|
hosts = import ../../hosts.nix;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
||||||
age.secrets = {
|
age.secrets = {
|
||||||
ntfy-freya = { file = ../../secrets/ntfy-freya.age; owner = "bertof"; };
|
ntfy-freya = {
|
||||||
|
file = ../../secrets/ntfy-freya.age;
|
||||||
|
owner = "bertof";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
console = { font = "Lat2-Terminus16"; keyMap = "it"; };
|
console = {
|
||||||
|
font = "Lat2-Terminus16";
|
||||||
|
keyMap = "it";
|
||||||
|
};
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
pathsToLink = [ "/share/zsh" ];
|
pathsToLink = [ "/share/zsh" ];
|
||||||
|
|
@ -20,7 +30,10 @@ in
|
||||||
enable = true;
|
enable = true;
|
||||||
# package = pkgs.bluezFull;
|
# package = pkgs.bluezFull;
|
||||||
};
|
};
|
||||||
opengl = { enable = true; driSupport = true; };
|
opengl = {
|
||||||
|
enable = true;
|
||||||
|
driSupport = true;
|
||||||
|
};
|
||||||
raspberry-pi."4" = {
|
raspberry-pi."4" = {
|
||||||
# audio.enable = true; # AUDIO
|
# audio.enable = true; # AUDIO
|
||||||
fkms-3d.enable = true; # GPU
|
fkms-3d.enable = true; # GPU
|
||||||
|
|
@ -52,7 +65,10 @@ in
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
dconf.enable = true;
|
dconf.enable = true;
|
||||||
gnupg.agent = { enable = true; enableSSHSupport = true; };
|
gnupg.agent = {
|
||||||
|
enable = true;
|
||||||
|
enableSSHSupport = true;
|
||||||
|
};
|
||||||
zsh.enable = true;
|
zsh.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -77,14 +93,24 @@ in
|
||||||
blueman.enable = true;
|
blueman.enable = true;
|
||||||
dbus.packages = [ pkgs.dconf ];
|
dbus.packages = [ pkgs.dconf ];
|
||||||
gnome.gnome-keyring.enable = true;
|
gnome.gnome-keyring.enable = true;
|
||||||
openssh = { enable = true; openFirewall = true; };
|
openssh = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
};
|
||||||
# xserver = {
|
# xserver = {
|
||||||
# enable = true;
|
# enable = true;
|
||||||
# desktopManager.retroarch = { enable = true; package = pkgs.retroarchFull; };
|
# desktopManager.retroarch = { enable = true; package = pkgs.retroarchFull; };
|
||||||
# };
|
# };
|
||||||
|
|
||||||
fail2ban = { enable = true; bantime-increment.enable = true; };
|
fail2ban = {
|
||||||
plex = { enable = true; openFirewall = true; group = "users"; };
|
enable = true;
|
||||||
|
bantime-increment.enable = true;
|
||||||
|
};
|
||||||
|
plex = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
group = "users";
|
||||||
|
};
|
||||||
# jellyfin = { enable = true; openFirewall = true; group = "users"; };
|
# jellyfin = { enable = true; openFirewall = true; group = "users"; };
|
||||||
|
|
||||||
home-assistant = {
|
home-assistant = {
|
||||||
|
|
@ -246,11 +272,13 @@ in
|
||||||
# "!secret famiglia_t_chat_id"
|
# "!secret famiglia_t_chat_id"
|
||||||
# ];
|
# ];
|
||||||
# }];
|
# }];
|
||||||
tts = [{
|
tts = [
|
||||||
|
{
|
||||||
platform = "google_translate";
|
platform = "google_translate";
|
||||||
language = "it";
|
language = "it";
|
||||||
# tld = "it";
|
# tld = "it";
|
||||||
}];
|
}
|
||||||
|
];
|
||||||
};
|
};
|
||||||
configDir = "/var/lib/hass";
|
configDir = "/var/lib/hass";
|
||||||
configWritable = true;
|
configWritable = true;
|
||||||
|
|
@ -336,12 +364,18 @@ in
|
||||||
prometheus = {
|
prometheus = {
|
||||||
enable = true;
|
enable = true;
|
||||||
exporters = {
|
exporters = {
|
||||||
node = { enable = true; enabledCollectors = [ "systemd" ]; };
|
node = {
|
||||||
|
enable = true;
|
||||||
|
enabledCollectors = [ "systemd" ];
|
||||||
|
};
|
||||||
process = {
|
process = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings.process_names = [
|
settings.process_names = [
|
||||||
# Remove nix store path from process name
|
# Remove nix store path from process name
|
||||||
{ name = "{{.Matches.Wrapped}} {{ .Matches.Args }}"; cmdline = [ "^/nix/store[^ ]*/(?P<Wrapped>[^ /]*) (?P<Args>.*)" ]; }
|
{
|
||||||
|
name = "{{.Matches.Wrapped}} {{ .Matches.Args }}";
|
||||||
|
cmdline = [ "^/nix/store[^ ]*/(?P<Wrapped>[^ /]*) (?P<Args>.*)" ];
|
||||||
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
systemd.enable = true;
|
systemd.enable = true;
|
||||||
|
|
@ -352,15 +386,21 @@ in
|
||||||
scrapeConfigs = [
|
scrapeConfigs = [
|
||||||
{
|
{
|
||||||
job_name = "node";
|
job_name = "node";
|
||||||
static_configs = [{ targets = [ "localhost:${toString config.services.prometheus.exporters.node.port}" ]; }];
|
static_configs = [
|
||||||
|
{ targets = [ "localhost:${toString config.services.prometheus.exporters.node.port}" ]; }
|
||||||
|
];
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
job_name = "process";
|
job_name = "process";
|
||||||
static_configs = [{ targets = [ "localhost:${toString config.services.prometheus.exporters.process.port}" ]; }];
|
static_configs = [
|
||||||
|
{ targets = [ "localhost:${toString config.services.prometheus.exporters.process.port}" ]; }
|
||||||
|
];
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
job_name = "systemd";
|
job_name = "systemd";
|
||||||
static_configs = [{ targets = [ "localhost:${toString config.services.prometheus.exporters.systemd.port}" ]; }];
|
static_configs = [
|
||||||
|
{ targets = [ "localhost:${toString config.services.prometheus.exporters.systemd.port}" ]; }
|
||||||
|
];
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
retentionTime = "15d";
|
retentionTime = "15d";
|
||||||
|
|
@ -368,15 +408,29 @@ in
|
||||||
|
|
||||||
snapper.configs =
|
snapper.configs =
|
||||||
let
|
let
|
||||||
common = { TIMELINE_CREATE = true; TIMELINE_CLEANUP = true; };
|
common = {
|
||||||
|
TIMELINE_CREATE = true;
|
||||||
|
TIMELINE_CLEANUP = true;
|
||||||
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
bertof = lib.recursiveUpdate common { SUBVOLUME = "/mnt/raid/bertof/"; ALLOW_USERS = [ "bertof" ]; };
|
bertof = lib.recursiveUpdate common {
|
||||||
tiziano = lib.recursiveUpdate common { SUBVOLUME = "/mnt/raid/tiziano/"; ALLOW_USERS = [ "tiziano" ]; };
|
SUBVOLUME = "/mnt/raid/bertof/";
|
||||||
condiviso = lib.recursiveUpdate common { SUBVOLUME = "/mnt/raid/condiviso"; ALLOW_USERS = [ "bertof" "tiziano" ]; };
|
ALLOW_USERS = [ "bertof" ];
|
||||||
|
};
|
||||||
|
tiziano = lib.recursiveUpdate common {
|
||||||
|
SUBVOLUME = "/mnt/raid/tiziano/";
|
||||||
|
ALLOW_USERS = [ "tiziano" ];
|
||||||
|
};
|
||||||
|
condiviso = lib.recursiveUpdate common {
|
||||||
|
SUBVOLUME = "/mnt/raid/condiviso";
|
||||||
|
ALLOW_USERS = [
|
||||||
|
"bertof"
|
||||||
|
"tiziano"
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
time.timeZone = "Europe/Rome";
|
time.timeZone = "Europe/Rome";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,15 @@
|
||||||
{ lib, modulesPath, ... }:
|
{ lib, modulesPath, ... }:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
|
||||||
];
|
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
extraModulePackages = [ ];
|
extraModulePackages = [ ];
|
||||||
initrd = {
|
initrd = {
|
||||||
availableKernelModules = [ "xhci_pci" "uas" "usb_storage" ];
|
availableKernelModules = [
|
||||||
|
"xhci_pci"
|
||||||
|
"uas"
|
||||||
|
"usb_storage"
|
||||||
|
];
|
||||||
kernelModules = [ ];
|
kernelModules = [ ];
|
||||||
};
|
};
|
||||||
kernelModules = [ ];
|
kernelModules = [ ];
|
||||||
|
|
@ -26,7 +28,10 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
swapDevices = [
|
swapDevices = [
|
||||||
{ device = "/swapfile"; size = 1024 * 4; }
|
{
|
||||||
|
device = "/swapfile";
|
||||||
|
size = 1024 * 4;
|
||||||
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,22 @@
|
||||||
{ pkgs, ... }: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
home = {
|
home = {
|
||||||
language.base = "it_IT.UTF-8";
|
language.base = "it_IT.UTF-8";
|
||||||
keyboard = {
|
keyboard = {
|
||||||
layout = "it";
|
layout = "it";
|
||||||
options = [ "terminate:ctrl_alt_bksp" "compose:rctrl" ];
|
options = [
|
||||||
|
"terminate:ctrl_alt_bksp"
|
||||||
|
"compose:rctrl"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
packages = builtins.attrValues {
|
packages = builtins.attrValues {
|
||||||
inherit (pkgs)
|
inherit (pkgs)
|
||||||
cava gallery-dl procps wireguard-tools httpie;
|
cava
|
||||||
|
gallery-dl
|
||||||
|
procps
|
||||||
|
wireguard-tools
|
||||||
|
httpie
|
||||||
|
;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,8 @@
|
||||||
{ pkgs, lib, config, ... }:
|
{ pkgs
|
||||||
|
, lib
|
||||||
|
, config
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
hosts = import ../../hosts.nix;
|
hosts = import ../../hosts.nix;
|
||||||
in
|
in
|
||||||
|
|
@ -12,7 +16,10 @@ in
|
||||||
efi.canTouchEfiVariables = true;
|
efi.canTouchEfiVariables = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
console = { font = "Lat2-Terminus16"; keyMap = "it"; };
|
console = {
|
||||||
|
font = "Lat2-Terminus16";
|
||||||
|
keyMap = "it";
|
||||||
|
};
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
pathsToLink = [ "/share/zsh" ];
|
pathsToLink = [ "/share/zsh" ];
|
||||||
|
|
@ -24,7 +31,10 @@ in
|
||||||
enable = true;
|
enable = true;
|
||||||
# package = pkgs.bluezFull;
|
# package = pkgs.bluezFull;
|
||||||
};
|
};
|
||||||
opengl = { enable = true; driSupport = true; };
|
opengl = {
|
||||||
|
enable = true;
|
||||||
|
driSupport = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
i18n.defaultLocale = "it_IT.UTF-8";
|
i18n.defaultLocale = "it_IT.UTF-8";
|
||||||
|
|
@ -52,7 +62,10 @@ in
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
dconf.enable = true;
|
dconf.enable = true;
|
||||||
gnupg.agent = { enable = true; enableSSHSupport = true; };
|
gnupg.agent = {
|
||||||
|
enable = true;
|
||||||
|
enableSSHSupport = true;
|
||||||
|
};
|
||||||
zsh.enable = true;
|
zsh.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -61,7 +74,14 @@ in
|
||||||
'';
|
'';
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
grafana = { enable = true; settings.server = { http_addr = "0.0.0.0"; domain = "bertof.net"; root_url = "https://grafana.bertof.net/"; }; };
|
grafana = {
|
||||||
|
enable = true;
|
||||||
|
settings.server = {
|
||||||
|
http_addr = "0.0.0.0";
|
||||||
|
domain = "bertof.net";
|
||||||
|
root_url = "https://grafana.bertof.net/";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
# avahi = {
|
# avahi = {
|
||||||
# enable = true;
|
# enable = true;
|
||||||
|
|
@ -79,15 +99,29 @@ in
|
||||||
# blueman.enable = true;
|
# blueman.enable = true;
|
||||||
# dbus.packages = [ pkgs.dconf ];
|
# dbus.packages = [ pkgs.dconf ];
|
||||||
# gnome.gnome-keyring.enable = true;
|
# gnome.gnome-keyring.enable = true;
|
||||||
openssh = { enable = true; openFirewall = true; };
|
openssh = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
};
|
||||||
# # xserver = {
|
# # xserver = {
|
||||||
# # enable = true;
|
# # enable = true;
|
||||||
# # desktopManager.retroarch = { enable = true; package = pkgs.retroarchFull; };
|
# # desktopManager.retroarch = { enable = true; package = pkgs.retroarchFull; };
|
||||||
# # };
|
# # };
|
||||||
#
|
#
|
||||||
fail2ban = { enable = true; bantime-increment.enable = true; };
|
fail2ban = {
|
||||||
plex = { enable = true; openFirewall = true; group = "users"; };
|
enable = true;
|
||||||
jellyfin = { enable = true; openFirewall = true; group = "users"; };
|
bantime-increment.enable = true;
|
||||||
|
};
|
||||||
|
plex = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
group = "users";
|
||||||
|
};
|
||||||
|
jellyfin = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
group = "users";
|
||||||
|
};
|
||||||
#
|
#
|
||||||
home-assistant = {
|
home-assistant = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
@ -248,11 +282,13 @@ in
|
||||||
# "!secret famiglia_t_chat_id"
|
# "!secret famiglia_t_chat_id"
|
||||||
# ];
|
# ];
|
||||||
# }];
|
# }];
|
||||||
tts = [{
|
tts = [
|
||||||
|
{
|
||||||
platform = "google_translate";
|
platform = "google_translate";
|
||||||
language = "it";
|
language = "it";
|
||||||
# tld = "it";
|
# tld = "it";
|
||||||
}];
|
}
|
||||||
|
];
|
||||||
};
|
};
|
||||||
configDir = "/var/lib/hass";
|
configDir = "/var/lib/hass";
|
||||||
configWritable = true;
|
configWritable = true;
|
||||||
|
|
@ -338,36 +374,73 @@ in
|
||||||
prometheus = {
|
prometheus = {
|
||||||
enable = true;
|
enable = true;
|
||||||
exporters = {
|
exporters = {
|
||||||
node = { enable = true; enabledCollectors = [ "systemd" ]; };
|
node = {
|
||||||
|
enable = true;
|
||||||
|
enabledCollectors = [ "systemd" ];
|
||||||
|
};
|
||||||
process = {
|
process = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings.process_names = [
|
settings.process_names = [
|
||||||
# Remove nix store path from process name
|
# Remove nix store path from process name
|
||||||
{ name = "{{.Matches.Wrapped}} {{ .Matches.Args }}"; cmdline = [ "^/nix/store[^ ]*/(?P<Wrapped>[^ /]*) (?P<Args>.*)" ]; }
|
{
|
||||||
|
name = "{{.Matches.Wrapped}} {{ .Matches.Args }}";
|
||||||
|
cmdline = [ "^/nix/store[^ ]*/(?P<Wrapped>[^ /]*) (?P<Args>.*)" ];
|
||||||
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
systemd.enable = true;
|
systemd.enable = true;
|
||||||
};
|
};
|
||||||
globalConfig = { scrape_interval = "10s"; };
|
globalConfig = {
|
||||||
|
scrape_interval = "10s";
|
||||||
|
};
|
||||||
scrapeConfigs = [
|
scrapeConfigs = [
|
||||||
{ job_name = "node"; static_configs = [{ targets = [ "localhost:${toString config.services.prometheus.exporters.node.port}" ]; }]; }
|
{
|
||||||
{ job_name = "process"; static_configs = [{ targets = [ "localhost:${toString config.services.prometheus.exporters.process.port}" ]; }]; }
|
job_name = "node";
|
||||||
{ job_name = "systemd"; static_configs = [{ targets = [ "localhost:${toString config.services.prometheus.exporters.systemd.port}" ]; }]; }
|
static_configs = [
|
||||||
|
{ targets = [ "localhost:${toString config.services.prometheus.exporters.node.port}" ]; }
|
||||||
|
];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
job_name = "process";
|
||||||
|
static_configs = [
|
||||||
|
{ targets = [ "localhost:${toString config.services.prometheus.exporters.process.port}" ]; }
|
||||||
|
];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
job_name = "systemd";
|
||||||
|
static_configs = [
|
||||||
|
{ targets = [ "localhost:${toString config.services.prometheus.exporters.systemd.port}" ]; }
|
||||||
|
];
|
||||||
|
}
|
||||||
];
|
];
|
||||||
retentionTime = "15d";
|
retentionTime = "15d";
|
||||||
};
|
};
|
||||||
|
|
||||||
snapper.configs =
|
snapper.configs =
|
||||||
let
|
let
|
||||||
common = { TIMELINE_CREATE = true; TIMELINE_CLEANUP = true; };
|
common = {
|
||||||
|
TIMELINE_CREATE = true;
|
||||||
|
TIMELINE_CLEANUP = true;
|
||||||
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
bertof = lib.recursiveUpdate common { SUBVOLUME = "/mnt/raid/bertof/"; ALLOW_USERS = [ "bertof" ]; };
|
bertof = lib.recursiveUpdate common {
|
||||||
tiziano = lib.recursiveUpdate common { SUBVOLUME = "/mnt/raid/tiziano/"; ALLOW_USERS = [ "tiziano" ]; };
|
SUBVOLUME = "/mnt/raid/bertof/";
|
||||||
condiviso = lib.recursiveUpdate common { SUBVOLUME = "/mnt/raid/condiviso"; ALLOW_USERS = [ "bertof" "tiziano" ]; };
|
ALLOW_USERS = [ "bertof" ];
|
||||||
|
};
|
||||||
|
tiziano = lib.recursiveUpdate common {
|
||||||
|
SUBVOLUME = "/mnt/raid/tiziano/";
|
||||||
|
ALLOW_USERS = [ "tiziano" ];
|
||||||
|
};
|
||||||
|
condiviso = lib.recursiveUpdate common {
|
||||||
|
SUBVOLUME = "/mnt/raid/condiviso";
|
||||||
|
ALLOW_USERS = [
|
||||||
|
"bertof"
|
||||||
|
"tiziano"
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
time.timeZone = "Europe/Rome";
|
time.timeZone = "Europe/Rome";
|
||||||
|
|
||||||
|
|
@ -393,4 +466,3 @@ in
|
||||||
|
|
||||||
system.stateVersion = "24.05";
|
system.stateVersion = "24.05";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,26 @@
|
||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
# and may be overwritten by future invocations. Please make changes
|
# and may be overwritten by future invocations. Please make changes
|
||||||
# to /etc/nixos/configuration.nix instead.
|
# to /etc/nixos/configuration.nix instead.
|
||||||
{ config, lib, modulesPath, ... }:
|
{ config
|
||||||
|
, lib
|
||||||
|
, modulesPath
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
initrd = {
|
initrd = {
|
||||||
availableKernelModules = [ "xhci_pci" "ahci" "ehci_pci" "nvme" "usb_storage" "usbhid" "sd_mod" ];
|
availableKernelModules = [
|
||||||
|
"xhci_pci"
|
||||||
|
"ahci"
|
||||||
|
"ehci_pci"
|
||||||
|
"nvme"
|
||||||
|
"usb_storage"
|
||||||
|
"usbhid"
|
||||||
|
"sd_mod"
|
||||||
|
];
|
||||||
kernelModules = [ ];
|
kernelModules = [ ];
|
||||||
};
|
};
|
||||||
kernelModules = [ "kvm-amd" ];
|
kernelModules = [ "kvm-amd" ];
|
||||||
|
|
@ -29,7 +41,10 @@
|
||||||
"/boot" = {
|
"/boot" = {
|
||||||
device = "/dev/disk/by-uuid/7F42-D513";
|
device = "/dev/disk/by-uuid/7F42-D513";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
options = [ "fmask=0022" "dmask=0022" ];
|
options = [
|
||||||
|
"fmask=0022"
|
||||||
|
"dmask=0022"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -47,4 +62,3 @@
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,22 @@
|
||||||
{ pkgs, ... }: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
home = {
|
home = {
|
||||||
language.base = "it_IT.UTF-8";
|
language.base = "it_IT.UTF-8";
|
||||||
keyboard = {
|
keyboard = {
|
||||||
layout = "it";
|
layout = "it";
|
||||||
options = [ "terminate:ctrl_alt_bksp" "compose:rctrl" ];
|
options = [
|
||||||
|
"terminate:ctrl_alt_bksp"
|
||||||
|
"compose:rctrl"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
packages = builtins.attrValues {
|
packages = builtins.attrValues {
|
||||||
inherit (pkgs)
|
inherit (pkgs)
|
||||||
cava gallery-dl procps wireguard-tools httpie;
|
cava
|
||||||
|
gallery-dl
|
||||||
|
procps
|
||||||
|
wireguard-tools
|
||||||
|
httpie
|
||||||
|
;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -22,4 +31,3 @@
|
||||||
|
|
||||||
home.stateVersion = "22.11";
|
home.stateVersion = "22.11";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,16 +5,28 @@ in
|
||||||
{
|
{
|
||||||
|
|
||||||
age.secrets = {
|
age.secrets = {
|
||||||
ntfy-loki = { file = ../../secrets/ntfy-loki.age; owner = "bertof"; };
|
ntfy-loki = {
|
||||||
|
file = ../../secrets/ntfy-loki.age;
|
||||||
|
owner = "bertof";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
binfmt.emulatedSystems = [ "armv7l-linux" "aarch64-linux" ];
|
binfmt.emulatedSystems = [
|
||||||
|
"armv7l-linux"
|
||||||
|
"aarch64-linux"
|
||||||
|
];
|
||||||
# kernelPackages = pkgs.linuxPackages_latest;
|
# kernelPackages = pkgs.linuxPackages_latest;
|
||||||
loader = { systemd-boot.enable = true; efi.canTouchEfiVariables = true; };
|
loader = {
|
||||||
|
systemd-boot.enable = true;
|
||||||
|
efi.canTouchEfiVariables = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
console = { font = "Lat2-Terminus16"; keyMap = "it"; };
|
console = {
|
||||||
|
font = "Lat2-Terminus16";
|
||||||
|
keyMap = "it";
|
||||||
|
};
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
pathsToLink = [ "/share/zsh" ];
|
pathsToLink = [ "/share/zsh" ];
|
||||||
|
|
@ -36,7 +48,12 @@ in
|
||||||
opengl = {
|
opengl = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extraPackages = builtins.attrValues {
|
extraPackages = builtins.attrValues {
|
||||||
inherit (pkgs) intel-media-driver libvdpau-va-gl vaapiIntel vaapiVdpau;
|
inherit (pkgs)
|
||||||
|
intel-media-driver
|
||||||
|
libvdpau-va-gl
|
||||||
|
vaapiIntel
|
||||||
|
vaapiVdpau
|
||||||
|
;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -81,16 +98,29 @@ in
|
||||||
};
|
};
|
||||||
# bazarr = { enable = true; openFirewall = true; group = "users"; };
|
# bazarr = { enable = true; openFirewall = true; group = "users"; };
|
||||||
blueman.enable = true;
|
blueman.enable = true;
|
||||||
dbus = { packages = [ pkgs.dconf ]; implementation = "broker"; };
|
dbus = {
|
||||||
esphome = { enable = true; openFirewall = true; };
|
packages = [ pkgs.dconf ];
|
||||||
|
implementation = "broker";
|
||||||
|
};
|
||||||
|
esphome = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
};
|
||||||
# fail2ban = { enable = true; bantime-increment.enable = true; };
|
# fail2ban = { enable = true; bantime-increment.enable = true; };
|
||||||
gnome.gnome-keyring.enable = true;
|
gnome.gnome-keyring.enable = true;
|
||||||
gvfs.enable = true;
|
gvfs.enable = true;
|
||||||
# jackett = { enable = true; openFirewall = true; group = "users"; };
|
# jackett = { enable = true; openFirewall = true; group = "users"; };
|
||||||
jellyfin = { enable = true; openFirewall = true; group = "users"; };
|
jellyfin = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
group = "users";
|
||||||
|
};
|
||||||
logind.lidSwitch = "ignore";
|
logind.lidSwitch = "ignore";
|
||||||
# node-red = { enable = true; openFirewall = true; withNpmAndGcc = true; };
|
# node-red = { enable = true; openFirewall = true; withNpmAndGcc = true; };
|
||||||
openssh = { enable = true; openFirewall = true; };
|
openssh = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
};
|
||||||
# plex = { enable = true; openFirewall = true; group = "users"; };
|
# plex = { enable = true; openFirewall = true; group = "users"; };
|
||||||
power-profiles-daemon.enable = true;
|
power-profiles-daemon.enable = true;
|
||||||
# prowlarr = { enable = true; openFirewall = true; };
|
# prowlarr = { enable = true; openFirewall = true; };
|
||||||
|
|
@ -201,7 +231,11 @@ in
|
||||||
};
|
};
|
||||||
tiziano = {
|
tiziano = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
extraGroups = [ "audio" "input" "video" ];
|
extraGroups = [
|
||||||
|
"audio"
|
||||||
|
"input"
|
||||||
|
"video"
|
||||||
|
];
|
||||||
openssh.authorizedKeys.keys = [
|
openssh.authorizedKeys.keys = [
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMExwtJFk6HjySrTZwJH67SOHC3hlL28NO4oe2GXsv6k"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMExwtJFk6HjySrTZwJH67SOHC3hlL28NO4oe2GXsv6k"
|
||||||
];
|
];
|
||||||
|
|
@ -241,8 +275,7 @@ in
|
||||||
138 # SYNCTHING
|
138 # SYNCTHING
|
||||||
3702 # SAMBA-WSDD
|
3702 # SAMBA-WSDD
|
||||||
];
|
];
|
||||||
extraCommands =
|
extraCommands = "iptables -t raw -A OUTPUT -p udp -m udp --dport 137 -j CT --helper netbios-ns";
|
||||||
"iptables -t raw -A OUTPUT -p udp -m udp --dport 137 -j CT --helper netbios-ns";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
virtualisation = {
|
virtualisation = {
|
||||||
|
|
@ -306,9 +339,21 @@ in
|
||||||
assist_pipeline = { };
|
assist_pipeline = { };
|
||||||
# bluetooth = { };
|
# bluetooth = { };
|
||||||
camera = [
|
camera = [
|
||||||
{ platform = "local_file"; file_path = "/tmp/doods_camera_camera_cancello.jpg"; name = "File DOODS2 Camera cancello"; }
|
{
|
||||||
{ platform = "local_file"; file_path = "/tmp/doods_camera_camera_vialetto.jpg"; name = "File DOODS2 Camera vialetto"; }
|
platform = "local_file";
|
||||||
{ platform = "local_file"; file_path = "/tmp/doods_camera_camera_garage.jpg"; name = "File DOODS2 Camera garage"; }
|
file_path = "/tmp/doods_camera_camera_cancello.jpg";
|
||||||
|
name = "File DOODS2 Camera cancello";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
platform = "local_file";
|
||||||
|
file_path = "/tmp/doods_camera_camera_vialetto.jpg";
|
||||||
|
name = "File DOODS2 Camera vialetto";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
platform = "local_file";
|
||||||
|
file_path = "/tmp/doods_camera_camera_garage.jpg";
|
||||||
|
name = "File DOODS2 Camera garage";
|
||||||
|
}
|
||||||
];
|
];
|
||||||
cloud = { };
|
cloud = { };
|
||||||
config = { };
|
config = { };
|
||||||
|
|
@ -322,14 +367,30 @@ in
|
||||||
url = "http://localhost:8080";
|
url = "http://localhost:8080";
|
||||||
detector = "default";
|
detector = "default";
|
||||||
source = [
|
source = [
|
||||||
{ entity_id = "camera.camera_camera_cancello"; name = "DOODS2 Camera cancello"; }
|
{
|
||||||
{ entity_id = "camera.camera_camera_vialetto"; name = "DOODS2 Camera vialetto"; }
|
entity_id = "camera.camera_camera_cancello";
|
||||||
{ entity_id = "camera.camera_camera_garage"; name = "DOODS2 Camera garage"; }
|
name = "DOODS2 Camera cancello";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
entity_id = "camera.camera_camera_vialetto";
|
||||||
|
name = "DOODS2 Camera vialetto";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
entity_id = "camera.camera_camera_garage";
|
||||||
|
name = "DOODS2 Camera garage";
|
||||||
|
}
|
||||||
];
|
];
|
||||||
confidence = 60;
|
confidence = 60;
|
||||||
file_out = "/tmp/doods_{{ camera_entity.split('.')[1] }}.jpg";
|
file_out = "/tmp/doods_{{ camera_entity.split('.')[1] }}.jpg";
|
||||||
scan_interval = 5;
|
scan_interval = 5;
|
||||||
labels = [ "bicycle" "car" "cat" "dog" "person" "truck" ];
|
labels = [
|
||||||
|
"bicycle"
|
||||||
|
"car"
|
||||||
|
"cat"
|
||||||
|
"dog"
|
||||||
|
"person"
|
||||||
|
"truck"
|
||||||
|
];
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
# esphome = { };
|
# esphome = { };
|
||||||
|
|
@ -384,11 +445,13 @@ in
|
||||||
# "!secret famiglia_t_chat_id"
|
# "!secret famiglia_t_chat_id"
|
||||||
# ];
|
# ];
|
||||||
# }];
|
# }];
|
||||||
tts = [{
|
tts = [
|
||||||
|
{
|
||||||
platform = "google_translate";
|
platform = "google_translate";
|
||||||
language = "it";
|
language = "it";
|
||||||
# tld = "it";
|
# tld = "it";
|
||||||
}];
|
}
|
||||||
|
];
|
||||||
};
|
};
|
||||||
configDir = "/var/lib/hass";
|
configDir = "/var/lib/hass";
|
||||||
configWritable = true;
|
configWritable = true;
|
||||||
|
|
@ -473,21 +536,44 @@ in
|
||||||
services.prometheus = {
|
services.prometheus = {
|
||||||
enable = true;
|
enable = true;
|
||||||
exporters = {
|
exporters = {
|
||||||
node = { enable = true; enabledCollectors = [ "systemd" ]; };
|
node = {
|
||||||
|
enable = true;
|
||||||
|
enabledCollectors = [ "systemd" ];
|
||||||
|
};
|
||||||
process = {
|
process = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings.process_names = [
|
settings.process_names = [
|
||||||
# Remove nix store path from process name
|
# Remove nix store path from process name
|
||||||
{ name = "{{.Matches.Wrapped}} {{ .Matches.Args }}"; cmdline = [ "^/nix/store[^ ]*/(?P<Wrapped>[^ /]*) (?P<Args>.*)" ]; }
|
{
|
||||||
|
name = "{{.Matches.Wrapped}} {{ .Matches.Args }}";
|
||||||
|
cmdline = [ "^/nix/store[^ ]*/(?P<Wrapped>[^ /]*) (?P<Args>.*)" ];
|
||||||
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
systemd.enable = true;
|
systemd.enable = true;
|
||||||
};
|
};
|
||||||
globalConfig = { scrape_interval = "10s"; };
|
globalConfig = {
|
||||||
|
scrape_interval = "10s";
|
||||||
|
};
|
||||||
scrapeConfigs = [
|
scrapeConfigs = [
|
||||||
{ job_name = "node"; static_configs = [{ targets = [ "localhost:${toString config.services.prometheus.exporters.node.port}" ]; }]; }
|
{
|
||||||
{ job_name = "process"; static_configs = [{ targets = [ "localhost:${toString config.services.prometheus.exporters.process.port}" ]; }]; }
|
job_name = "node";
|
||||||
{ job_name = "systemd"; static_configs = [{ targets = [ "localhost:${toString config.services.prometheus.exporters.systemd.port}" ]; }]; }
|
static_configs = [
|
||||||
|
{ targets = [ "localhost:${toString config.services.prometheus.exporters.node.port}" ]; }
|
||||||
|
];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
job_name = "process";
|
||||||
|
static_configs = [
|
||||||
|
{ targets = [ "localhost:${toString config.services.prometheus.exporters.process.port}" ]; }
|
||||||
|
];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
job_name = "systemd";
|
||||||
|
static_configs = [
|
||||||
|
{ targets = [ "localhost:${toString config.services.prometheus.exporters.systemd.port}" ]; }
|
||||||
|
];
|
||||||
|
}
|
||||||
];
|
];
|
||||||
retentionTime = "15d";
|
retentionTime = "15d";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,26 @@
|
||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
# and may be overwritten by future invocations. Please make changes
|
# and may be overwritten by future invocations. Please make changes
|
||||||
# to /etc/nixos/configuration.nix instead.
|
# to /etc/nixos/configuration.nix instead.
|
||||||
{ config, lib, modulesPath, ... }:
|
{ config
|
||||||
|
, lib
|
||||||
|
, modulesPath
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
initrd = {
|
initrd = {
|
||||||
availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "uas" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
|
availableKernelModules = [
|
||||||
|
"xhci_pci"
|
||||||
|
"ehci_pci"
|
||||||
|
"ahci"
|
||||||
|
"uas"
|
||||||
|
"usb_storage"
|
||||||
|
"sd_mod"
|
||||||
|
"rtsx_pci_sdmmc"
|
||||||
|
];
|
||||||
kernelModules = [ ];
|
kernelModules = [ ];
|
||||||
};
|
};
|
||||||
kernelModules = [ "kvm-intel" ];
|
kernelModules = [ "kvm-intel" ];
|
||||||
|
|
@ -46,10 +58,12 @@
|
||||||
# };
|
# };
|
||||||
};
|
};
|
||||||
|
|
||||||
swapDevices = [{
|
swapDevices = [
|
||||||
|
{
|
||||||
device = "/swapfile";
|
device = "/swapfile";
|
||||||
size = 1024 * 4;
|
size = 1024 * 4;
|
||||||
}];
|
}
|
||||||
|
];
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,10 @@
|
||||||
language.base = "it_IT.UTF-8";
|
language.base = "it_IT.UTF-8";
|
||||||
keyboard = {
|
keyboard = {
|
||||||
layout = "it";
|
layout = "it";
|
||||||
options = [ "terminate:ctrl_alt_bksp" "compose:rctrl" ];
|
options = [
|
||||||
|
"terminate:ctrl_alt_bksp"
|
||||||
|
"compose:rctrl"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,10 @@
|
||||||
language.base = "it_IT.UTF-8";
|
language.base = "it_IT.UTF-8";
|
||||||
keyboard = {
|
keyboard = {
|
||||||
layout = "it";
|
layout = "it";
|
||||||
options = [ "terminate:ctrl_alt_bksp" "compose:rctrl" ];
|
options = [
|
||||||
|
"terminate:ctrl_alt_bksp"
|
||||||
|
"compose:rctrl"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,18 @@
|
||||||
{ config, pkgs, lib, ... }:
|
{ config
|
||||||
|
, pkgs
|
||||||
|
, lib
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
age.secrets = {
|
age.secrets = {
|
||||||
ntfy-odin = { file = ../../secrets/ntfy-odin.age; owner = "bertof"; };
|
ntfy-odin = {
|
||||||
|
file = ../../secrets/ntfy-odin.age;
|
||||||
|
owner = "bertof";
|
||||||
|
};
|
||||||
odin_wg_priv.file = ../../secrets/odin_wg_priv.age;
|
odin_wg_priv.file = ../../secrets/odin_wg_priv.age;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
# Use the systemd-boot EFI boot loader.
|
# Use the systemd-boot EFI boot loader.
|
||||||
boot = {
|
boot = {
|
||||||
# kernelPackages = pkgs.linuxPackages_latest;
|
# kernelPackages = pkgs.linuxPackages_latest;
|
||||||
|
|
@ -15,11 +20,20 @@
|
||||||
# kernelPackages = pkgs.linuxPackages_6_8;
|
# kernelPackages = pkgs.linuxPackages_6_8;
|
||||||
kernelParams = [ "acpi_osi=Linux-Dell-Video" ];
|
kernelParams = [ "acpi_osi=Linux-Dell-Video" ];
|
||||||
initrd.checkJournalingFS = true; # Use same ACPI identifier as Dell Ubuntu
|
initrd.checkJournalingFS = true; # Use same ACPI identifier as Dell Ubuntu
|
||||||
loader = { systemd-boot = { enable = true; editor = false; }; efi.canTouchEfiVariables = true; };
|
loader = {
|
||||||
|
systemd-boot = {
|
||||||
|
enable = true;
|
||||||
|
editor = false;
|
||||||
|
};
|
||||||
|
efi.canTouchEfiVariables = true;
|
||||||
|
};
|
||||||
extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ];
|
extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ];
|
||||||
|
|
||||||
# Cross-build arm
|
# Cross-build arm
|
||||||
binfmt.emulatedSystems = [ "armv7l-linux" "aarch64-linux" ];
|
binfmt.emulatedSystems = [
|
||||||
|
"armv7l-linux"
|
||||||
|
"aarch64-linux"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
hardware = {
|
hardware = {
|
||||||
|
|
@ -33,14 +47,21 @@
|
||||||
driSupport = true;
|
driSupport = true;
|
||||||
driSupport32Bit = true;
|
driSupport32Bit = true;
|
||||||
extraPackages = builtins.attrValues {
|
extraPackages = builtins.attrValues {
|
||||||
inherit (pkgs) intel-media-driver vaapiIntel vaapiVdpau libvdpau-va-gl;
|
inherit (pkgs)
|
||||||
|
intel-media-driver
|
||||||
|
vaapiIntel
|
||||||
|
vaapiVdpau
|
||||||
|
libvdpau-va-gl
|
||||||
|
;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Tablet
|
# Tablet
|
||||||
opentabletdriver = { enable = true; daemon.enable = true; };
|
opentabletdriver = {
|
||||||
|
enable = true;
|
||||||
|
daemon.enable = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
networking = {
|
networking = {
|
||||||
hostName = "odin";
|
hostName = "odin";
|
||||||
|
|
@ -113,7 +134,10 @@
|
||||||
options = "eurosign:e,terminate:ctrl_alt_bksp,compose:rctrl,grp:menu_toggle";
|
options = "eurosign:e,terminate:ctrl_alt_bksp,compose:rctrl,grp:menu_toggle";
|
||||||
};
|
};
|
||||||
|
|
||||||
displayManager.gdm = { enable = true; autoSuspend = false; };
|
displayManager.gdm = {
|
||||||
|
enable = true;
|
||||||
|
autoSuspend = false;
|
||||||
|
};
|
||||||
# displayManager.sddm = {
|
# displayManager.sddm = {
|
||||||
# enable = true;
|
# enable = true;
|
||||||
# autoNumlock = true;
|
# autoNumlock = true;
|
||||||
|
|
@ -121,7 +145,10 @@
|
||||||
# "${pkgs.sddm-theme-clairvoyance}/usr/share/sddm/themes/clairvoyance";
|
# "${pkgs.sddm-theme-clairvoyance}/usr/share/sddm/themes/clairvoyance";
|
||||||
# };
|
# };
|
||||||
};
|
};
|
||||||
displayManager = { enable = true; defaultSession = "hyprland"; };
|
displayManager = {
|
||||||
|
enable = true;
|
||||||
|
defaultSession = "hyprland";
|
||||||
|
};
|
||||||
libinput.enable = true;
|
libinput.enable = true;
|
||||||
|
|
||||||
keybase.enable = true;
|
keybase.enable = true;
|
||||||
|
|
@ -130,7 +157,10 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
pulse.enable = true;
|
pulse.enable = true;
|
||||||
jack.enable = true;
|
jack.enable = true;
|
||||||
alsa = { enable = true; support32Bit = true; };
|
alsa = {
|
||||||
|
enable = true;
|
||||||
|
support32Bit = true;
|
||||||
|
};
|
||||||
# media-session.enable = true;
|
# media-session.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -145,7 +175,10 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
# Disable auto handling of power button
|
# Disable auto handling of power button
|
||||||
logind = { powerKey = "ignore"; lidSwitch = "hibernate"; };
|
logind = {
|
||||||
|
powerKey = "ignore";
|
||||||
|
lidSwitch = "hibernate";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Set your time zone.
|
# Set your time zone.
|
||||||
|
|
@ -160,22 +193,43 @@
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
pathsToLink = [ "/share/zsh" ];
|
pathsToLink = [ "/share/zsh" ];
|
||||||
sessionVariables.LD_LIBRARY_PATH = lib.mkForce
|
sessionVariables.LD_LIBRARY_PATH = lib.mkForce "${config.services.pipewire.package.jack}/lib"; # Temporary fix for WebKitGTK
|
||||||
"${config.services.pipewire.package.jack}/lib"; # Temporary fix for WebKitGTK
|
systemPackages = builtins.attrValues {
|
||||||
systemPackages = builtins.attrValues { inherit (pkgs) tmux helix vim git ntfs3g; };
|
inherit (pkgs)
|
||||||
|
tmux
|
||||||
|
helix
|
||||||
|
vim
|
||||||
|
git
|
||||||
|
ntfs3g
|
||||||
|
;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||||
users.users.bertof = {
|
users.users.bertof = {
|
||||||
isNormalUser = true;
|
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;
|
shell = pkgs.zsh;
|
||||||
};
|
};
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
dconf.enable = true;
|
dconf.enable = true;
|
||||||
flashrom.enable = true;
|
flashrom.enable = true;
|
||||||
gnupg.agent = { enable = true; enableSSHSupport = true; };
|
gnupg.agent = {
|
||||||
|
enable = true;
|
||||||
|
enableSSHSupport = true;
|
||||||
|
};
|
||||||
steam = {
|
steam = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.steam.override {
|
package = pkgs.steam.override {
|
||||||
|
|
@ -267,7 +321,10 @@
|
||||||
power-profiles-daemon.enable = true;
|
power-profiles-daemon.enable = true;
|
||||||
fprintd = {
|
fprintd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
tod = { enable = true; driver = pkgs.libfprint-2-tod1-goodix; };
|
tod = {
|
||||||
|
enable = true;
|
||||||
|
driver = pkgs.libfprint-2-tod1-goodix;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -286,7 +343,6 @@
|
||||||
# updater.enable = true;
|
# updater.enable = true;
|
||||||
# };
|
# };
|
||||||
|
|
||||||
|
|
||||||
# services.teamviewer.enable = true;
|
# services.teamviewer.enable = true;
|
||||||
|
|
||||||
# Virtualisation
|
# Virtualisation
|
||||||
|
|
@ -294,12 +350,14 @@
|
||||||
# vswitch.enable = true;
|
# vswitch.enable = true;
|
||||||
# docker.enable = true;
|
# docker.enable = true;
|
||||||
kvmgt.enable = true;
|
kvmgt.enable = true;
|
||||||
libvirtd = { enable = true; qemu.swtpm.enable = true; };
|
libvirtd = {
|
||||||
|
enable = true;
|
||||||
|
qemu.swtpm.enable = true;
|
||||||
|
};
|
||||||
podman.enable = true;
|
podman.enable = true;
|
||||||
# virtualbox.host.enable = true;
|
# virtualbox.host.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
security.sudo.extraConfig = ''
|
security.sudo.extraConfig = ''
|
||||||
Defaults pwfeedback
|
Defaults pwfeedback
|
||||||
'';
|
'';
|
||||||
|
|
@ -308,9 +366,7 @@
|
||||||
|
|
||||||
nixpkgs.config = {
|
nixpkgs.config = {
|
||||||
allowUnfree = true;
|
allowUnfree = true;
|
||||||
packageOverrides = pkgs: {
|
packageOverrides = pkgs: { steam = pkgs.steam.override { extraPkgs = pkgs: [ pkgs.icu ]; }; };
|
||||||
steam = pkgs.steam.override { extraPkgs = pkgs: [ pkgs.icu ]; };
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
zramSwap.enable = true;
|
zramSwap.enable = true;
|
||||||
|
|
@ -323,4 +379,3 @@
|
||||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||||
system.stateVersion = "22.11"; # Did you read the comment?
|
system.stateVersion = "22.11"; # Did you read the comment?
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
{
|
{
|
||||||
boot = {
|
boot = {
|
||||||
initrd.kernelModules = [ "i915" ];
|
initrd.kernelModules = [ "i915" ];
|
||||||
blacklistedKernelModules = [ "nouveau" "nvidia" ];
|
blacklistedKernelModules = [
|
||||||
|
"nouveau"
|
||||||
|
"nvidia"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
# This runs only Intel and nvidia does not drain power.
|
# This runs only Intel and nvidia does not drain power.
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,16 @@
|
||||||
# Edit this configuration file to define what should be installed on
|
# Edit this configuration file to define what should be installed on
|
||||||
# your system. Help is available in the configuration.nix(5) man page
|
# your system. Help is available in the configuration.nix(5) man page
|
||||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||||
{ pkgs, lib, config, ... }: {
|
{ pkgs
|
||||||
|
, lib
|
||||||
|
, config
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
|
||||||
boot = { initrd.kernelModules = [ "i915" ]; };
|
boot = {
|
||||||
|
initrd.kernelModules = [ "i915" ];
|
||||||
|
};
|
||||||
|
|
||||||
hardware.nvidia = {
|
hardware.nvidia = {
|
||||||
# modesetting.enable = true;
|
# modesetting.enable = true;
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,23 @@
|
||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
# and may be overwritten by future invocations. Please make changes
|
# and may be overwritten by future invocations. Please make changes
|
||||||
# to /etc/nixos/configuration.nix instead.
|
# to /etc/nixos/configuration.nix instead.
|
||||||
{ config, lib, modulesPath, ... }:
|
{ config
|
||||||
|
, lib
|
||||||
|
, modulesPath
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
initrd = {
|
initrd = {
|
||||||
availableKernelModules = [ "xhci_pci" "ahci" "nvme" "sd_mod" ];
|
availableKernelModules = [
|
||||||
|
"xhci_pci"
|
||||||
|
"ahci"
|
||||||
|
"nvme"
|
||||||
|
"sd_mod"
|
||||||
|
];
|
||||||
kernelModules = [ ];
|
kernelModules = [ ];
|
||||||
};
|
};
|
||||||
kernelModules = [ "kvm-intel" ];
|
kernelModules = [ "kvm-intel" ];
|
||||||
|
|
@ -19,52 +28,92 @@
|
||||||
"/" = {
|
"/" = {
|
||||||
device = "/dev/disk/by-uuid/c6e3d4df-4861-48a5-8107-d6fd1addad8c";
|
device = "/dev/disk/by-uuid/c6e3d4df-4861-48a5-8107-d6fd1addad8c";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "space_cache=v2" "subvol=@root" "x-gvfs-hide" ];
|
options = [
|
||||||
|
"space_cache=v2"
|
||||||
|
"subvol=@root"
|
||||||
|
"x-gvfs-hide"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
"/nix" = {
|
"/nix" = {
|
||||||
device = "/dev/disk/by-uuid/c6e3d4df-4861-48a5-8107-d6fd1addad8c";
|
device = "/dev/disk/by-uuid/c6e3d4df-4861-48a5-8107-d6fd1addad8c";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "space_cache=v2" "subvol=@nix" "x-gvfs-hide" ];
|
options = [
|
||||||
|
"space_cache=v2"
|
||||||
|
"subvol=@nix"
|
||||||
|
"x-gvfs-hide"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
"/home/bertof" = {
|
"/home/bertof" = {
|
||||||
device = "/dev/disk/by-uuid/c6e3d4df-4861-48a5-8107-d6fd1addad8c";
|
device = "/dev/disk/by-uuid/c6e3d4df-4861-48a5-8107-d6fd1addad8c";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "space_cache=v2" "subvol=@bertof/@home" "x-gvfs-hide" ];
|
options = [
|
||||||
|
"space_cache=v2"
|
||||||
|
"subvol=@bertof/@home"
|
||||||
|
"x-gvfs-hide"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
"/home/bertof/Giochi/SSD" = {
|
"/home/bertof/Giochi/SSD" = {
|
||||||
device = "/dev/disk/by-uuid/c6e3d4df-4861-48a5-8107-d6fd1addad8c";
|
device = "/dev/disk/by-uuid/c6e3d4df-4861-48a5-8107-d6fd1addad8c";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "space_cache=v2" "subvol=@bertof/@games" "x-gvfs-hide" ];
|
options = [
|
||||||
|
"space_cache=v2"
|
||||||
|
"subvol=@bertof/@games"
|
||||||
|
"x-gvfs-hide"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
"/home/bertof/Video" = {
|
"/home/bertof/Video" = {
|
||||||
device = "/dev/disk/by-uuid/c6e3d4df-4861-48a5-8107-d6fd1addad8c";
|
device = "/dev/disk/by-uuid/c6e3d4df-4861-48a5-8107-d6fd1addad8c";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "space_cache=v2" "subvol=@bertof/@videos" "x-gvfs-hide" ];
|
options = [
|
||||||
|
"space_cache=v2"
|
||||||
|
"subvol=@bertof/@videos"
|
||||||
|
"x-gvfs-hide"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
"/home/bertof/Musica" = {
|
"/home/bertof/Musica" = {
|
||||||
device = "/dev/disk/by-uuid/c6e3d4df-4861-48a5-8107-d6fd1addad8c";
|
device = "/dev/disk/by-uuid/c6e3d4df-4861-48a5-8107-d6fd1addad8c";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "space_cache=v2" "subvol=@bertof/@music" "x-gvfs-hide" ];
|
options = [
|
||||||
|
"space_cache=v2"
|
||||||
|
"subvol=@bertof/@music"
|
||||||
|
"x-gvfs-hide"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
"/home/bertof/Immagini" = {
|
"/home/bertof/Immagini" = {
|
||||||
device = "/dev/disk/by-uuid/c6e3d4df-4861-48a5-8107-d6fd1addad8c";
|
device = "/dev/disk/by-uuid/c6e3d4df-4861-48a5-8107-d6fd1addad8c";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "space_cache=v2" "subvol=@bertof/@images" "x-gvfs-hide" ];
|
options = [
|
||||||
|
"space_cache=v2"
|
||||||
|
"subvol=@bertof/@images"
|
||||||
|
"x-gvfs-hide"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
"/home/bertof/Scaricati" = {
|
"/home/bertof/Scaricati" = {
|
||||||
device = "/dev/disk/by-uuid/c6e3d4df-4861-48a5-8107-d6fd1addad8c";
|
device = "/dev/disk/by-uuid/c6e3d4df-4861-48a5-8107-d6fd1addad8c";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "space_cache=v2" "subvol=@bertof/@downloads" "x-gvfs-hide" ];
|
options = [
|
||||||
|
"space_cache=v2"
|
||||||
|
"subvol=@bertof/@downloads"
|
||||||
|
"x-gvfs-hide"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
"/home/bertof/Documenti" = {
|
"/home/bertof/Documenti" = {
|
||||||
device = "/dev/disk/by-uuid/c6e3d4df-4861-48a5-8107-d6fd1addad8c";
|
device = "/dev/disk/by-uuid/c6e3d4df-4861-48a5-8107-d6fd1addad8c";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "space_cache=v2" "subvol=@bertof/@documents" "x-gvfs-hide" ];
|
options = [
|
||||||
|
"space_cache=v2"
|
||||||
|
"subvol=@bertof/@documents"
|
||||||
|
"x-gvfs-hide"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
"/home/bertof/Documenti/Git" = {
|
"/home/bertof/Documenti/Git" = {
|
||||||
device = "/dev/disk/by-uuid/c6e3d4df-4861-48a5-8107-d6fd1addad8c";
|
device = "/dev/disk/by-uuid/c6e3d4df-4861-48a5-8107-d6fd1addad8c";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "space_cache=v2" "subvol=@bertof/@git" "x-gvfs-hide" ];
|
options = [
|
||||||
|
"space_cache=v2"
|
||||||
|
"subvol=@bertof/@git"
|
||||||
|
"x-gvfs-hide"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
"/boot" = {
|
"/boot" = {
|
||||||
device = "/dev/disk/by-uuid/82DB-3444";
|
device = "/dev/disk/by-uuid/82DB-3444";
|
||||||
|
|
@ -72,9 +121,7 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
swapDevices = [
|
swapDevices = [{ device = "/dev/disk/by-uuid/5f3cf424-2bd8-4352-a778-1bb067cb5700"; }];
|
||||||
{ device = "/dev/disk/by-uuid/5f3cf424-2bd8-4352-a778-1bb067cb5700"; }
|
|
||||||
];
|
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
|
|
@ -90,6 +137,5 @@
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
||||||
hardware.cpu.intel.updateMicrocode =
|
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,15 @@
|
||||||
{ pkgs, ... }: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
home = {
|
home = {
|
||||||
language.base = "it_IT.UTF-8";
|
language.base = "it_IT.UTF-8";
|
||||||
keyboard = {
|
keyboard = {
|
||||||
layout = "it,us,us";
|
layout = "it,us,us";
|
||||||
variant = ",,colemak";
|
variant = ",,colemak";
|
||||||
options = [ "terminate:ctrl_alt_bksp" "compose:rctrl" "grp:menu_toggle" ];
|
options = [
|
||||||
|
"terminate:ctrl_alt_bksp"
|
||||||
|
"compose:rctrl"
|
||||||
|
"grp:menu_toggle"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
packages = builtins.attrValues {
|
packages = builtins.attrValues {
|
||||||
inherit (pkgs)
|
inherit (pkgs)
|
||||||
|
|
@ -62,7 +67,9 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services = { gnome-keyring.enable = true; };
|
services = {
|
||||||
|
gnome-keyring.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
xsession = {
|
xsession = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,26 @@
|
||||||
{ lib, config, pkgs, ... }:
|
{ lib
|
||||||
|
, config
|
||||||
|
, pkgs
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
{
|
{
|
||||||
|
|
||||||
age.secrets = {
|
age.secrets = {
|
||||||
thor_wg_priv = { file = ../../secrets/thor_wg_priv.age; };
|
thor_wg_priv = {
|
||||||
ntfy-thor = { file = ../../secrets/ntfy-thor.age; owner = "bertof"; };
|
file = ../../secrets/thor_wg_priv.age;
|
||||||
|
};
|
||||||
|
ntfy-thor = {
|
||||||
|
file = ../../secrets/ntfy-thor.age;
|
||||||
|
owner = "bertof";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
kernelModules = [ "hid-nintendo" ];
|
kernelModules = [ "hid-nintendo" ];
|
||||||
binfmt.emulatedSystems = [ "armv7l-linux" "aarch64-linux" ];
|
binfmt.emulatedSystems = [
|
||||||
|
"armv7l-linux"
|
||||||
|
"aarch64-linux"
|
||||||
|
];
|
||||||
# kernelPackages = pkgs.linuxPackages_latest;
|
# kernelPackages = pkgs.linuxPackages_latest;
|
||||||
# kernelPackages = pkgs.linuxPackages_6_1;
|
# kernelPackages = pkgs.linuxPackages_6_1;
|
||||||
extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ];
|
extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ];
|
||||||
|
|
@ -42,7 +54,14 @@
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
pathsToLink = [ "/share/zsh" ];
|
pathsToLink = [ "/share/zsh" ];
|
||||||
systemPackages = builtins.attrValues { inherit (pkgs) git helix tmux vim; };
|
systemPackages = builtins.attrValues {
|
||||||
|
inherit (pkgs)
|
||||||
|
git
|
||||||
|
helix
|
||||||
|
tmux
|
||||||
|
vim
|
||||||
|
;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
hardware = {
|
hardware = {
|
||||||
|
|
@ -61,7 +80,6 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
opengl.enable = true;
|
opengl.enable = true;
|
||||||
bluetooth = {
|
bluetooth = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
@ -69,7 +87,10 @@
|
||||||
};
|
};
|
||||||
enableRedistributableFirmware = true;
|
enableRedistributableFirmware = true;
|
||||||
pulseaudio.enable = false;
|
pulseaudio.enable = false;
|
||||||
opentabletdriver = { enable = true; daemon.enable = true; };
|
opentabletdriver = {
|
||||||
|
enable = true;
|
||||||
|
daemon.enable = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
i18n.defaultLocale = "it_IT.UTF-8";
|
i18n.defaultLocale = "it_IT.UTF-8";
|
||||||
|
|
@ -100,15 +121,24 @@
|
||||||
wg-quick.interfaces = {
|
wg-quick.interfaces = {
|
||||||
wg0 = {
|
wg0 = {
|
||||||
autostart = false;
|
autostart = false;
|
||||||
address = [ "10.0.0.4/24" "fdc9:281f:04d7:9ee9::4/64" ];
|
address = [
|
||||||
dns = [ "10.0.0.1" "fdc9:281f:04d7:9ee9::1" ];
|
"10.0.0.4/24"
|
||||||
|
"fdc9:281f:04d7:9ee9::4/64"
|
||||||
|
];
|
||||||
|
dns = [
|
||||||
|
"10.0.0.1"
|
||||||
|
"fdc9:281f:04d7:9ee9::1"
|
||||||
|
];
|
||||||
privateKeyFile = config.age.secrets.thor_wg_priv.path;
|
privateKeyFile = config.age.secrets.thor_wg_priv.path;
|
||||||
|
|
||||||
peers = [
|
peers = [
|
||||||
{
|
{
|
||||||
# baldur
|
# baldur
|
||||||
# allowedIPs = [ "10.0.0.3/32" "fdc9:281f:04d7:9ee9::3/128" ];
|
# allowedIPs = [ "10.0.0.3/32" "fdc9:281f:04d7:9ee9::3/128" ];
|
||||||
allowedIPs = [ "0.0.0.0/0" "::/0" ];
|
allowedIPs = [
|
||||||
|
"0.0.0.0/0"
|
||||||
|
"::/0"
|
||||||
|
];
|
||||||
endpoint = "baldur.bertof.net:51820";
|
endpoint = "baldur.bertof.net:51820";
|
||||||
presharedKeyFile = config.age.secrets.wg_psk.path;
|
presharedKeyFile = config.age.secrets.wg_psk.path;
|
||||||
publicKey = "K57ikgFSR1O0CXWBxfQEu7uxSOsp3ePj/NMRets5pVc=";
|
publicKey = "K57ikgFSR1O0CXWBxfQEu7uxSOsp3ePj/NMRets5pVc=";
|
||||||
|
|
@ -117,19 +147,28 @@
|
||||||
# odin
|
# odin
|
||||||
publicKey = "LDBhvzeYmHJ0z5ch+N559GWjT3It1gZvGR/9WtCfURw=";
|
publicKey = "LDBhvzeYmHJ0z5ch+N559GWjT3It1gZvGR/9WtCfURw=";
|
||||||
presharedKeyFile = config.age.secrets.wg_psk.path;
|
presharedKeyFile = config.age.secrets.wg_psk.path;
|
||||||
allowedIPs = [ "10.0.0.2/24" "fdc9:281f:04d7:9ee9::2/128" ];
|
allowedIPs = [
|
||||||
|
"10.0.0.2/24"
|
||||||
|
"fdc9:281f:04d7:9ee9::2/128"
|
||||||
|
];
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
# oppo
|
# oppo
|
||||||
publicKey = "OBk6bHKuIYLwD7cwjmAuMn57jXqbDwCL52jhQxiHnnA=";
|
publicKey = "OBk6bHKuIYLwD7cwjmAuMn57jXqbDwCL52jhQxiHnnA=";
|
||||||
presharedKeyFile = config.age.secrets.wg_psk.path;
|
presharedKeyFile = config.age.secrets.wg_psk.path;
|
||||||
allowedIPs = [ "10.0.0.3/24" "fdc9:281f:04d7:9ee9::3/128" ];
|
allowedIPs = [
|
||||||
|
"10.0.0.3/24"
|
||||||
|
"fdc9:281f:04d7:9ee9::3/128"
|
||||||
|
];
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
# thor
|
# thor
|
||||||
publicKey = "rpwR6n4IE96VZAmQDBufsWE/a9G7d8fpkvY1OwsbOhk=";
|
publicKey = "rpwR6n4IE96VZAmQDBufsWE/a9G7d8fpkvY1OwsbOhk=";
|
||||||
presharedKeyFile = config.age.secrets.wg_psk.path;
|
presharedKeyFile = config.age.secrets.wg_psk.path;
|
||||||
allowedIPs = [ "10.0.0.4/24" "fdc9:281f:04d7:9ee9::4/128" ];
|
allowedIPs = [
|
||||||
|
"10.0.0.4/24"
|
||||||
|
"fdc9:281f:04d7:9ee9::4/128"
|
||||||
|
];
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
@ -159,7 +198,10 @@
|
||||||
# daemon.enable = true;
|
# daemon.enable = true;
|
||||||
# updater.enable = true;
|
# updater.enable = true;
|
||||||
# };
|
# };
|
||||||
dbus = { packages = [ pkgs.dconf ]; implementation = "broker"; };
|
dbus = {
|
||||||
|
packages = [ pkgs.dconf ];
|
||||||
|
implementation = "broker";
|
||||||
|
};
|
||||||
gnome.gnome-keyring.enable = true;
|
gnome.gnome-keyring.enable = true;
|
||||||
gvfs = {
|
gvfs = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
@ -168,10 +210,16 @@
|
||||||
# joycond.enable = true;
|
# joycond.enable = true;
|
||||||
keybase.enable = true;
|
keybase.enable = true;
|
||||||
onedrive.enable = true;
|
onedrive.enable = true;
|
||||||
openssh = { enable = true; openFirewall = true; };
|
openssh = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
};
|
||||||
pipewire = {
|
pipewire = {
|
||||||
enable = true;
|
enable = true;
|
||||||
alsa = { enable = true; support32Bit = true; };
|
alsa = {
|
||||||
|
enable = true;
|
||||||
|
support32Bit = true;
|
||||||
|
};
|
||||||
jack.enable = true;
|
jack.enable = true;
|
||||||
pulse.enable = true;
|
pulse.enable = true;
|
||||||
# media-session.enable = true;
|
# media-session.enable = true;
|
||||||
|
|
@ -206,17 +254,22 @@
|
||||||
xserver = {
|
xserver = {
|
||||||
enable = true;
|
enable = true;
|
||||||
desktopManager.gnome.enable = true;
|
desktopManager.gnome.enable = true;
|
||||||
displayManager.gdm = { enable = true; autoSuspend = false; };
|
displayManager.gdm = {
|
||||||
|
enable = true;
|
||||||
|
autoSuspend = false;
|
||||||
|
};
|
||||||
# windowManager.bspwm = { enable = true; };
|
# windowManager.bspwm = { enable = true; };
|
||||||
videoDrivers = [ "nvidia" ];
|
videoDrivers = [ "nvidia" ];
|
||||||
xkb = {
|
xkb = {
|
||||||
layout = "us,it";
|
layout = "us,it";
|
||||||
options = "eurosign:e,terminate:ctrl_alt_bksp,compose:rctrl,grp:menu_toggle";
|
options = "eurosign:e,terminate:ctrl_alt_bksp,compose:rctrl,grp:menu_toggle";
|
||||||
};
|
};
|
||||||
xrandrHeads = [{
|
xrandrHeads = [
|
||||||
|
{
|
||||||
primary = true;
|
primary = true;
|
||||||
output = "DP-2";
|
output = "DP-2";
|
||||||
}];
|
}
|
||||||
|
];
|
||||||
};
|
};
|
||||||
# gnome.gnome-remote-desktop.enable = true;
|
# gnome.gnome-remote-desktop.enable = true;
|
||||||
};
|
};
|
||||||
|
|
@ -226,7 +279,9 @@
|
||||||
security = {
|
security = {
|
||||||
tpm2.enable = true;
|
tpm2.enable = true;
|
||||||
rtkit.enable = true;
|
rtkit.enable = true;
|
||||||
pam.services = { autounlock_gnome_keyring.enableGnomeKeyring = true; };
|
pam.services = {
|
||||||
|
autounlock_gnome_keyring.enableGnomeKeyring = true;
|
||||||
|
};
|
||||||
sudo.extraConfig = ''
|
sudo.extraConfig = ''
|
||||||
Defaults pwfeedback
|
Defaults pwfeedback
|
||||||
'';
|
'';
|
||||||
|
|
@ -261,9 +316,7 @@
|
||||||
|
|
||||||
nixpkgs.config = {
|
nixpkgs.config = {
|
||||||
allowUnfree = true;
|
allowUnfree = true;
|
||||||
packageOverrides = pkgs: {
|
packageOverrides = pkgs: { steam = pkgs.steam.override { extraPkgs = pkgs: [ pkgs.icu ]; }; };
|
||||||
steam = pkgs.steam.override { extraPkgs = pkgs: [ pkgs.icu ]; };
|
|
||||||
};
|
|
||||||
# cudaSupport = true;
|
# cudaSupport = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,14 @@
|
||||||
boot = {
|
boot = {
|
||||||
extraModulePackages = [ ];
|
extraModulePackages = [ ];
|
||||||
initrd = {
|
initrd = {
|
||||||
availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
|
availableKernelModules = [
|
||||||
|
"nvme"
|
||||||
|
"xhci_pci"
|
||||||
|
"ahci"
|
||||||
|
"usb_storage"
|
||||||
|
"usbhid"
|
||||||
|
"sd_mod"
|
||||||
|
];
|
||||||
kernelModules = [ "dm-snapshot" ];
|
kernelModules = [ "dm-snapshot" ];
|
||||||
};
|
};
|
||||||
kernelModules = [ "kvm-amd" ];
|
kernelModules = [ "kvm-amd" ];
|
||||||
|
|
@ -19,7 +26,13 @@
|
||||||
"/" = {
|
"/" = {
|
||||||
device = "/dev/disk/by-uuid/6c06428e-c296-4ef1-8429-62bafb860126";
|
device = "/dev/disk/by-uuid/6c06428e-c296-4ef1-8429-62bafb860126";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "subvol=@root" "x-gvfs-hide" "space_cache=v2" "discard" "compress-force=zstd:1" ];
|
options = [
|
||||||
|
"subvol=@root"
|
||||||
|
"x-gvfs-hide"
|
||||||
|
"space_cache=v2"
|
||||||
|
"discard"
|
||||||
|
"compress-force=zstd:1"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
"/boot" = {
|
"/boot" = {
|
||||||
device = "/dev/disk/by-uuid/B9D2-255C";
|
device = "/dev/disk/by-uuid/B9D2-255C";
|
||||||
|
|
@ -28,17 +41,32 @@
|
||||||
"/home/bertof" = {
|
"/home/bertof" = {
|
||||||
device = "/dev/disk/by-uuid/6c06428e-c296-4ef1-8429-62bafb860126";
|
device = "/dev/disk/by-uuid/6c06428e-c296-4ef1-8429-62bafb860126";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "subvol=@home_bertof" "x-gvfs-hide" "space_cache=v2" "discard" "compress-force=zstd:1" ];
|
options = [
|
||||||
|
"subvol=@home_bertof"
|
||||||
|
"x-gvfs-hide"
|
||||||
|
"space_cache=v2"
|
||||||
|
"discard"
|
||||||
|
"compress-force=zstd:1"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
"/nix" = {
|
"/nix" = {
|
||||||
device = "/dev/disk/by-uuid/6c06428e-c296-4ef1-8429-62bafb860126";
|
device = "/dev/disk/by-uuid/6c06428e-c296-4ef1-8429-62bafb860126";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "subvol=@nix" "x-gvfs-hide" "space_cache=v2" "discard" "compress-force=zstd:1" ];
|
options = [
|
||||||
|
"subvol=@nix"
|
||||||
|
"x-gvfs-hide"
|
||||||
|
"space_cache=v2"
|
||||||
|
"discard"
|
||||||
|
"compress-force=zstd:1"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
swapDevices = [
|
swapDevices = [
|
||||||
{ device = "/dev/disk/by-uuid/dee188e4-4ff8-417c-9419-b7f00ecb9989"; }
|
{ device = "/dev/disk/by-uuid/dee188e4-4ff8-417c-9419-b7f00ecb9989"; }
|
||||||
{ device = "/swapfile"; size = 1024 * 32; }
|
{
|
||||||
|
device = "/swapfile";
|
||||||
|
size = 1024 * 32;
|
||||||
|
}
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,15 @@
|
||||||
{ pkgs, ... }: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
home = {
|
home = {
|
||||||
language.base = "it_IT.UTF-8";
|
language.base = "it_IT.UTF-8";
|
||||||
keyboard = {
|
keyboard = {
|
||||||
layout = "us,it";
|
layout = "us,it";
|
||||||
variant = ",colemak,";
|
variant = ",colemak,";
|
||||||
options = [ "terminate:ctrl_alt_bksp" "compose:rctrl" "grp:menu_toggle" ];
|
options = [
|
||||||
|
"terminate:ctrl_alt_bksp"
|
||||||
|
"compose:rctrl"
|
||||||
|
"grp:menu_toggle"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
packages = builtins.attrValues {
|
packages = builtins.attrValues {
|
||||||
inherit (pkgs)
|
inherit (pkgs)
|
||||||
|
|
@ -58,13 +63,13 @@
|
||||||
# seahorse
|
# seahorse
|
||||||
totem
|
totem
|
||||||
;
|
;
|
||||||
inherit (pkgs.unstable_pkgs)
|
inherit (pkgs.unstable_pkgs) heroic;
|
||||||
heroic
|
|
||||||
;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services = { gnome-keyring.enable = true; };
|
services = {
|
||||||
|
gnome-keyring.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
../../modules/hm/__basic.nix
|
../../modules/hm/__basic.nix
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,24 @@
|
||||||
{ pkgs, ... }: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
home = {
|
home = {
|
||||||
language.base = "it_IT.UTF-8";
|
language.base = "it_IT.UTF-8";
|
||||||
packages = builtins.attrValues {
|
packages = builtins.attrValues {
|
||||||
inherit (pkgs)
|
inherit (pkgs)
|
||||||
fd file htop mmv-go neofetch nixos-option pv ripgrep unrar unzip wget
|
fd
|
||||||
xclip yq zip;
|
file
|
||||||
|
htop
|
||||||
|
mmv-go
|
||||||
|
neofetch
|
||||||
|
nixos-option
|
||||||
|
pv
|
||||||
|
ripgrep
|
||||||
|
unrar
|
||||||
|
unzip
|
||||||
|
wget
|
||||||
|
xclip
|
||||||
|
yq
|
||||||
|
zip
|
||||||
|
;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -27,11 +27,13 @@ in
|
||||||
programs.alacritty = {
|
programs.alacritty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
key_bindings = [{
|
key_bindings = [
|
||||||
|
{
|
||||||
key = "Return";
|
key = "Return";
|
||||||
mods = "Control|Shift";
|
mods = "Control|Shift";
|
||||||
action = "SpawnNewInstance";
|
action = "SpawnNewInstance";
|
||||||
}];
|
}
|
||||||
|
];
|
||||||
# env.TERM = "xterm-256color";
|
# env.TERM = "xterm-256color";
|
||||||
env = {
|
env = {
|
||||||
TERM = "alacritty";
|
TERM = "alacritty";
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,7 @@
|
||||||
let
|
let
|
||||||
dell-laptop = {
|
dell-laptop = {
|
||||||
dpi = 96;
|
dpi = 96;
|
||||||
fingerprint =
|
fingerprint = "00ffffffffffff0030e43f0500000000001a010495221378eaa1c59459578f27205054000000010101010101010101010101010101012e3680a070381f403020350058c21000001a5c2b80a070381f403020350058c21000001a000000fe0034584b3133803135365746360a000000000000413196001000000a010a202000c5";
|
||||||
"00ffffffffffff0030e43f0500000000001a010495221378eaa1c59459578f27205054000000010101010101010101010101010101012e3680a070381f403020350058c21000001a5c2b80a070381f403020350058c21000001a000000fe0034584b3133803135365746360a000000000000413196001000000a010a202000c5";
|
|
||||||
mode = "1920x1080";
|
mode = "1920x1080";
|
||||||
};
|
};
|
||||||
schermo_lab_dp = {
|
schermo_lab_dp = {
|
||||||
|
|
@ -22,7 +21,9 @@
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
odin-nvidia = {
|
odin-nvidia = {
|
||||||
fingerprint = { "eDP-1-1" = dell-laptop.fingerprint; };
|
fingerprint = {
|
||||||
|
"eDP-1-1" = dell-laptop.fingerprint;
|
||||||
|
};
|
||||||
config = {
|
config = {
|
||||||
"eDP-1-1" = {
|
"eDP-1-1" = {
|
||||||
inherit (dell-laptop) mode dpi;
|
inherit (dell-laptop) mode dpi;
|
||||||
|
|
@ -32,7 +33,9 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
odin-intel = {
|
odin-intel = {
|
||||||
fingerprint = { "eDP1" = dell-laptop.fingerprint; };
|
fingerprint = {
|
||||||
|
"eDP1" = dell-laptop.fingerprint;
|
||||||
|
};
|
||||||
config = {
|
config = {
|
||||||
"eDP1" = {
|
"eDP1" = {
|
||||||
inherit (dell-laptop) mode dpi;
|
inherit (dell-laptop) mode dpi;
|
||||||
|
|
@ -111,10 +114,8 @@
|
||||||
|
|
||||||
thor-default = {
|
thor-default = {
|
||||||
fingerprint = {
|
fingerprint = {
|
||||||
"DP-2" =
|
"DP-2" = "00ffffffffffff001e6d7f5ba1c60a00011f0104b53c22789f8cb5af4f43ab260e5054254b007140818081c0a9c0b300d1c08100d1cf09ec00a0a0a0675030203a0055502100001a000000fd0030901ee63c000a202020202020000000fc004c4720554c545241474541520a000000ff003130314e5454514c533230390a017102031a7123090607e305c000e606050160592846100403011f136fc200a0a0a0555030203a0055502100001a565e00a0a0a029503020350055502100001a5aa000a0a0a0465030203a005550210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000da";
|
||||||
"00ffffffffffff001e6d7f5ba1c60a00011f0104b53c22789f8cb5af4f43ab260e5054254b007140818081c0a9c0b300d1c08100d1cf09ec00a0a0a0675030203a0055502100001a000000fd0030901ee63c000a202020202020000000fc004c4720554c545241474541520a000000ff003130314e5454514c533230390a017102031a7123090607e305c000e606050160592846100403011f136fc200a0a0a0555030203a0055502100001a565e00a0a0a029503020350055502100001a5aa000a0a0a0465030203a005550210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000da";
|
"HDMI-0" = "00ffffffffffff004c2d2c0d443650302e19010380341d782a5295a556549d250e5054bb8c00b30081c0810081809500a9c001010101023a801871382d40582c450009252100001e000000fd0030481e5216000a202020202020000000fc00433234463339300a2020202020000000ff00485451483330353636370a20200163020324f14690041f131203230907078301000067030c001000802b681a00000101304800011d00bc52d01e20b828554009252100001e8c0ad090204031200c4055000925210000188c0ad08a20e02d10103e9600092521000018215280a07238304088c8350009252100001c00000000000000000000000000000000000000fa";
|
||||||
"HDMI-0" =
|
|
||||||
"00ffffffffffff004c2d2c0d443650302e19010380341d782a5295a556549d250e5054bb8c00b30081c0810081809500a9c001010101023a801871382d40582c450009252100001e000000fd0030481e5216000a202020202020000000fc00433234463339300a2020202020000000ff00485451483330353636370a20200163020324f14690041f131203230907078301000067030c001000802b681a00000101304800011d00bc52d01e20b828554009252100001e8c0ad090204031200c4055000925210000188c0ad08a20e02d10103e9600092521000018215280a07238304088c8350009252100001c00000000000000000000000000000000000000fa";
|
|
||||||
};
|
};
|
||||||
config = {
|
config = {
|
||||||
"DP-2" = {
|
"DP-2" = {
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,9 @@
|
||||||
programs.bash = {
|
programs.bash = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableVteIntegration = true;
|
enableVteIntegration = true;
|
||||||
shellAliases = { ".." = "cd .."; };
|
shellAliases = {
|
||||||
|
".." = "cd ..";
|
||||||
|
};
|
||||||
|
|
||||||
bashrcExtra = ''
|
bashrcExtra = ''
|
||||||
source $HOME/.profile
|
source $HOME/.profile
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
{ pkgs, ... }: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
home.packages = builtins.attrValues {
|
home.packages = builtins.attrValues {
|
||||||
inherit (pkgs) calibre;
|
inherit (pkgs) calibre;
|
||||||
inherit (pkgs.unstable_pkgs) mangal;
|
inherit (pkgs.unstable_pkgs) mangal;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,14 @@
|
||||||
{ pkgs, config, lib, ... }: {
|
{ pkgs
|
||||||
home.packages = [ pkgs.bitwarden ] ++
|
, config
|
||||||
lib.optionals config.programs.rofi.enable (builtins.attrValues {
|
, lib
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
home.packages =
|
||||||
|
[ pkgs.bitwarden ]
|
||||||
|
++ lib.optionals config.programs.rofi.enable (
|
||||||
|
builtins.attrValues {
|
||||||
# inherit (pkgs.unstable_pkgs) rbw rofi-rbw pinentry-gtk2;
|
# inherit (pkgs.unstable_pkgs) rbw rofi-rbw pinentry-gtk2;
|
||||||
});
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1 +1,4 @@
|
||||||
{ pkgs, ... }: { home.packages = [ pkgs.blender ]; }
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
home.packages = [ pkgs.blender ];
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs, ... }: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
home.packages = [ (pkgs.blender.override { cudaSupport = true; }) ];
|
home.packages = [ (pkgs.blender.override { cudaSupport = true; }) ];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
let tomlGenerate = (pkgs.formats.toml { }).generate "bottom-toml";
|
let
|
||||||
in {
|
tomlGenerate = (pkgs.formats.toml { }).generate "bottom-toml";
|
||||||
|
in
|
||||||
|
{
|
||||||
home.packages = [ pkgs.bottom ];
|
home.packages = [ pkgs.bottom ];
|
||||||
xdg.configFile."bottom/bottom.toml".source = tomlGenerate {
|
xdg.configFile."bottom/bottom.toml".source = tomlGenerate {
|
||||||
"flags" = {
|
"flags" = {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,18 @@
|
||||||
{ pkgs, lib, ... }:
|
{ pkgs, lib, ... }:
|
||||||
let
|
let
|
||||||
xsetroot = "${pkgs.xorg.xsetroot}/bin/xsetroot";
|
xsetroot = "${pkgs.xorg.xsetroot}/bin/xsetroot";
|
||||||
monitorPages = [ "Ⅰ" "Ⅱ" "Ⅲ" "Ⅳ" "Ⅴ" "Ⅵ" "Ⅶ" "Ⅷ" "Ⅸ" "Ⅹ" ];
|
monitorPages = [
|
||||||
|
"Ⅰ"
|
||||||
|
"Ⅱ"
|
||||||
|
"Ⅲ"
|
||||||
|
"Ⅳ"
|
||||||
|
"Ⅴ"
|
||||||
|
"Ⅵ"
|
||||||
|
"Ⅶ"
|
||||||
|
"Ⅷ"
|
||||||
|
"Ⅸ"
|
||||||
|
"Ⅹ"
|
||||||
|
];
|
||||||
monitorPagesString = lib.strings.concatStringsSep " " monitorPages;
|
monitorPagesString = lib.strings.concatStringsSep " " monitorPages;
|
||||||
monitorSetupScript = pkgs.writeShellScript "monitorSetupScript" ''
|
monitorSetupScript = pkgs.writeShellScript "monitorSetupScript" ''
|
||||||
for monitor in $(bspc query -M --names); do
|
for monitor in $(bspc query -M --names); do
|
||||||
|
|
@ -50,9 +61,15 @@ in
|
||||||
};
|
};
|
||||||
# monitors = builtins.foldl' (acc: monitor: acc // { ${monitor} = monitorPages; }) { } monitors;
|
# monitors = builtins.foldl' (acc: monitor: acc // { ${monitor} = monitorPages; }) { } monitors;
|
||||||
rules = {
|
rules = {
|
||||||
"*" = { follow = true; };
|
"*" = {
|
||||||
"Zathura" = { state = "tiled"; };
|
follow = true;
|
||||||
"Yad" = { state = "floating"; };
|
};
|
||||||
|
"Zathura" = {
|
||||||
|
state = "tiled";
|
||||||
|
};
|
||||||
|
"Yad" = {
|
||||||
|
state = "floating";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
startupPrograms = [
|
startupPrograms = [
|
||||||
"${monitorSetupScript}" # Setup monitors
|
"${monitorSetupScript}" # Setup monitors
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,15 @@
|
||||||
{ pkgs, config, lib, ... }: {
|
{ pkgs
|
||||||
|
, config
|
||||||
|
, lib
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
|
{
|
||||||
home.packages =
|
home.packages =
|
||||||
lib.optionals config.programs.helix.enable
|
lib.optionals config.programs.helix.enable
|
||||||
(builtins.attrValues {
|
(
|
||||||
inherit (pkgs) clang-tools cmake-language-server;
|
builtins.attrValues { inherit (pkgs) clang-tools cmake-language-server; }
|
||||||
}) ++
|
)
|
||||||
lib.optionals config.programs.kakoune.enable (builtins.attrValues {
|
++ lib.optionals config.programs.kakoune.enable (
|
||||||
inherit (pkgs) clang-tools cmake-language-server;
|
builtins.attrValues { inherit (pkgs) clang-tools cmake-language-server; }
|
||||||
});
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,21 @@
|
||||||
{ config, pkgs, lib, ... }: {
|
{ config
|
||||||
home.packages = lib.optionals config.programs.helix.enable
|
, pkgs
|
||||||
(builtins.attrValues {
|
, lib
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
home.packages =
|
||||||
|
lib.optionals config.programs.helix.enable
|
||||||
|
(
|
||||||
|
builtins.attrValues {
|
||||||
inherit (pkgs) yaml-language-server taplo-cli;
|
inherit (pkgs) yaml-language-server taplo-cli;
|
||||||
inherit (pkgs.nodePackages) vscode-langservers-extracted;
|
inherit (pkgs.nodePackages) vscode-langservers-extracted;
|
||||||
}) ++ lib.optionals config.programs.kakoune.enable (builtins.attrValues {
|
}
|
||||||
|
)
|
||||||
|
++ 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;
|
||||||
});
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
{ pkgs, ... }: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
home.packages = builtins.attrValues { inherit (pkgs.unstable_pkgs.jetbrains) datagrip jdk; };
|
home.packages = builtins.attrValues { inherit (pkgs.unstable_pkgs.jetbrains) datagrip jdk; };
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,14 @@
|
||||||
{ pkgs, config, lib, ... }: {
|
{ pkgs
|
||||||
home.packages = (builtins.attrValues { inherit (pkgs) docker-compose; })
|
, config
|
||||||
++ lib.optionals config.programs.helix.enable (builtins.attrValues { inherit (pkgs.nodePackages) dockerfile-language-server-nodejs; });
|
, lib
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
home.packages =
|
||||||
|
(builtins.attrValues { inherit (pkgs) docker-compose; })
|
||||||
|
++ lib.optionals config.programs.helix.enable (
|
||||||
|
builtins.attrValues { inherit (pkgs.nodePackages) dockerfile-language-server-nodejs; }
|
||||||
|
);
|
||||||
home.shellAliases = {
|
home.shellAliases = {
|
||||||
"dkcd" = "docker-compose down";
|
"dkcd" = "docker-compose down";
|
||||||
"dkc" = "docker-compose";
|
"dkc" = "docker-compose";
|
||||||
|
|
@ -8,4 +16,3 @@
|
||||||
"dk" = "docker";
|
"dk" = "docker";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,15 @@
|
||||||
{ pkgs, lib, config, ... }: {
|
{ pkgs
|
||||||
|
, lib
|
||||||
|
, config
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
|
{
|
||||||
programs.go = {
|
programs.go = {
|
||||||
enable = true;
|
enable = true;
|
||||||
goPath = ".go";
|
goPath = ".go";
|
||||||
};
|
};
|
||||||
|
|
||||||
home.packages =
|
home.packages =
|
||||||
(lib.optionals config.programs.helix.enable [ pkgs.gopls ]) ++
|
(lib.optionals config.programs.helix.enable [ pkgs.gopls ])
|
||||||
(lib.optionals config.programs.kakoune.enable [ pkgs.gopls ]);
|
++ (lib.optionals config.programs.kakoune.enable [ pkgs.gopls ]);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,16 @@
|
||||||
{ pkgs, lib, config, ... }: {
|
{ pkgs
|
||||||
home.packages = lib.optionals config.programs.helix.enable
|
, lib
|
||||||
(builtins.attrValues {
|
, config
|
||||||
inherit (pkgs.nodePackages) typescript-language-server;
|
, ...
|
||||||
}) ++ lib.optionals config.programs.kakoune.enable (builtins.attrValues {
|
}:
|
||||||
inherit (pkgs.nodePackages) typescript-language-server;
|
{
|
||||||
});
|
home.packages =
|
||||||
|
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; }
|
||||||
|
);
|
||||||
programs.neovim.withNodeJs = true;
|
programs.neovim.withNodeJs = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
{ pkgs, ... }: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
home = {
|
home = {
|
||||||
shellAliases = { "k" = "kubectl"; };
|
shellAliases = {
|
||||||
|
"k" = "kubectl";
|
||||||
|
};
|
||||||
packages = [
|
packages = [
|
||||||
(pkgs.wrapHelm pkgs.kubernetes-helm {
|
(pkgs.wrapHelm pkgs.kubernetes-helm {
|
||||||
plugins = builtins.attrValues {
|
plugins = builtins.attrValues {
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,26 @@
|
||||||
{ pkgs, config, lib, ... }: {
|
{ pkgs
|
||||||
home.packages = [ pkgs.bibtool pkgs.texlive.combined.scheme-full ]
|
, config
|
||||||
|
, lib
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
home.packages =
|
||||||
|
[
|
||||||
|
pkgs.bibtool
|
||||||
|
pkgs.texlive.combined.scheme-full
|
||||||
|
]
|
||||||
++ 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
|
||||||
|
;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
home.file.".latexmkrc".text = ''
|
home.file.".latexmkrc".text = ''
|
||||||
$pdf_previewer = 'zathura %O %S';
|
$pdf_previewer = 'zathura %O %S';
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,12 @@
|
||||||
{ pkgs, lib, config, ... }: {
|
{ pkgs
|
||||||
|
, lib
|
||||||
|
, config
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
|
{
|
||||||
home.packages = [
|
home.packages = [
|
||||||
pkgs.pandoc
|
pkgs.pandoc
|
||||||
# pkgs.pandoc-drawio-filter
|
# pkgs.pandoc-drawio-filter
|
||||||
# pkgs.pandoc-imagine
|
# pkgs.pandoc-imagine
|
||||||
]
|
] ++ lib.optionals config.programs.helix.enable [ pkgs.marksman ];
|
||||||
++ lib.optionals config.programs.helix.enable [
|
|
||||||
pkgs.marksman
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,19 @@
|
||||||
{ pkgs, config, lib, ... }: {
|
{ pkgs
|
||||||
|
, config
|
||||||
|
, lib
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
|
{
|
||||||
home.packages =
|
home.packages =
|
||||||
(builtins.attrValues { inherit (pkgs) nixpkgs-fmt nixfmt-classic nix-prefetch-scripts nixpkgs-review nix-tree; })
|
(builtins.attrValues {
|
||||||
|
inherit (pkgs)
|
||||||
|
nixpkgs-fmt
|
||||||
|
nixfmt-classic
|
||||||
|
nix-prefetch-scripts
|
||||||
|
nixpkgs-review
|
||||||
|
nix-tree
|
||||||
|
;
|
||||||
|
})
|
||||||
++ lib.optionals config.programs.helix.enable [ pkgs.nil ]
|
++ lib.optionals config.programs.helix.enable [ pkgs.nil ]
|
||||||
++ lib.optionals config.programs.kakoune.enable [ pkgs.rnix-lsp ];
|
++ lib.optionals config.programs.kakoune.enable [ pkgs.rnix-lsp ];
|
||||||
programs.neovim.plugins = [ pkgs.vimPlugins.vim-nix ];
|
programs.neovim.plugins = [ pkgs.vimPlugins.vim-nix ];
|
||||||
|
|
|
||||||
|
|
@ -1,22 +1,26 @@
|
||||||
{ pkgs, lib, config, ... }:
|
{ pkgs
|
||||||
|
, lib
|
||||||
|
, config
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
py = pkgs.python3;
|
py = pkgs.python3;
|
||||||
pyPkgs = py.pkgs;
|
pyPkgs = py.pkgs;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
home.packages = [ py pyPkgs.black ] ++
|
home.packages =
|
||||||
lib.optionals config.programs.helix.enable ((builtins.attrValues {
|
[
|
||||||
inherit (pyPkgs)
|
py
|
||||||
python-lsp-server
|
pyPkgs.black
|
||||||
pyls-flake8
|
]
|
||||||
pyls-isort;
|
++ lib.optionals config.programs.helix.enable (
|
||||||
}) ++ pyPkgs.python-lsp-server.optional-dependencies.all) ++
|
(builtins.attrValues { inherit (pyPkgs) python-lsp-server pyls-flake8 pyls-isort; })
|
||||||
lib.optionals config.programs.kakoune.enable ((builtins.attrValues {
|
++ pyPkgs.python-lsp-server.optional-dependencies.all
|
||||||
inherit (pyPkgs)
|
)
|
||||||
python-lsp-server
|
++ lib.optionals config.programs.kakoune.enable (
|
||||||
pyls-flake8
|
(builtins.attrValues { inherit (pyPkgs) python-lsp-server pyls-flake8 pyls-isort; })
|
||||||
pyls-isort;
|
++ pyPkgs.python-lsp-server.optional-dependencies.all
|
||||||
}) ++ pyPkgs.python-lsp-server.optional-dependencies.all);
|
);
|
||||||
programs.neovim.withPython3 = true;
|
programs.neovim.withPython3 = true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,21 +1,52 @@
|
||||||
{ pkgs, lib, config, ... }:
|
{ pkgs
|
||||||
let tomlGenerate = (pkgs.formats.toml { }).generate; in
|
, lib
|
||||||
|
, config
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
tomlGenerate = (pkgs.formats.toml { }).generate;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
home.packages = (builtins.attrValues {
|
home.packages =
|
||||||
|
(builtins.attrValues {
|
||||||
inherit (pkgs)
|
inherit (pkgs)
|
||||||
bacon cargo cargo-audit cargo-criterion cargo-deadlinks cargo-expand
|
bacon
|
||||||
cargo-flamegraph cargo-fuzz cargo-hack cargo-hakari cargo-inspect
|
cargo
|
||||||
cargo-modules cargo-outdated cargo-profiler cargo-release cargo-show-asm
|
cargo-audit
|
||||||
cargo-spellcheck cargo-tarpaulin cargo-udeps cargo-watch cargo-workspaces
|
cargo-criterion
|
||||||
clippy rustc rustfmt;
|
cargo-deadlinks
|
||||||
|
cargo-expand
|
||||||
|
cargo-flamegraph
|
||||||
|
cargo-fuzz
|
||||||
|
cargo-hack
|
||||||
|
cargo-hakari
|
||||||
|
cargo-inspect
|
||||||
|
cargo-modules
|
||||||
|
cargo-outdated
|
||||||
|
cargo-profiler
|
||||||
|
cargo-release
|
||||||
|
cargo-show-asm
|
||||||
|
cargo-spellcheck
|
||||||
|
cargo-tarpaulin
|
||||||
|
cargo-udeps
|
||||||
|
cargo-watch
|
||||||
|
cargo-workspaces
|
||||||
|
clippy
|
||||||
|
rustc
|
||||||
|
rustfmt
|
||||||
|
;
|
||||||
# cargo-about
|
# cargo-about
|
||||||
# cargo-auditable
|
# cargo-auditable
|
||||||
# cargo-deny
|
# cargo-deny
|
||||||
# cargo-deps
|
# cargo-deps
|
||||||
# cargo-feature
|
# cargo-feature
|
||||||
})
|
})
|
||||||
++ lib.optionals config.programs.helix.enable (builtins.attrValues { inherit (pkgs) lldb rust-analyzer; })
|
++ lib.optionals config.programs.helix.enable (
|
||||||
++ lib.optionals config.programs.kakoune.enable (builtins.attrValues { inherit (pkgs) rust-analyzer; });
|
builtins.attrValues { inherit (pkgs) lldb rust-analyzer; }
|
||||||
|
)
|
||||||
|
++ lib.optionals config.programs.kakoune.enable (
|
||||||
|
builtins.attrValues { inherit (pkgs) rust-analyzer; }
|
||||||
|
);
|
||||||
|
|
||||||
home.file.".cargo/config.toml".source = tomlGenerate "cargo-config" {
|
home.file.".cargo/config.toml".source = tomlGenerate "cargo-config" {
|
||||||
build.rustc-wrapper = "${pkgs.sccache}/bin/sccache";
|
build.rustc-wrapper = "${pkgs.sccache}/bin/sccache";
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs, ... }: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
home.packages = [ pkgs.httpie ];
|
home.packages = [ pkgs.httpie ];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
{ pkgs, ... }: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
home.packages = [ pkgs.easyeffects ];
|
home.packages = [ pkgs.easyeffects ];
|
||||||
services.easyeffects.enable = true;
|
services.easyeffects.enable = true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,4 +5,3 @@
|
||||||
enableZshIntegration = true;
|
enableZshIntegration = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,17 @@
|
||||||
{ pkgs, ... }: {
|
{ pkgs, ... }:
|
||||||
fonts.fontconfig = { enable = true; };
|
{
|
||||||
|
fonts.fontconfig = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
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
|
||||||
|
;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -48,10 +48,8 @@ let
|
||||||
"gfg" = "git ls-files | grep";
|
"gfg" = "git ls-files | grep";
|
||||||
"gignored" = ''git ls-files -v \| grep"^[[ :lower: ]]"'';
|
"gignored" = ''git ls-files -v \| grep"^[[ :lower: ]]"'';
|
||||||
"glo" = "git log --oneline --decorate";
|
"glo" = "git log --oneline --decorate";
|
||||||
"glols" =
|
"glols" = "git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --stat";
|
||||||
"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";
|
||||||
"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";
|
"glog" = "git log --oneline --decorate --graph";
|
||||||
"gloga" = "git log --oneline --decorate --graph --all";
|
"gloga" = "git log --oneline --decorate --graph --all";
|
||||||
"gm" = "git merge";
|
"gm" = "git merge";
|
||||||
|
|
@ -140,5 +138,12 @@ in
|
||||||
bash.shellAliases = shellAliases;
|
bash.shellAliases = shellAliases;
|
||||||
zsh.shellAliases = shellAliases;
|
zsh.shellAliases = shellAliases;
|
||||||
};
|
};
|
||||||
home.packages = builtins.attrValues { inherit (pkgs) gh git-secret glab meld; };
|
home.packages = builtins.attrValues {
|
||||||
|
inherit (pkgs)
|
||||||
|
gh
|
||||||
|
git-secret
|
||||||
|
glab
|
||||||
|
meld
|
||||||
|
;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,14 @@
|
||||||
rules = [
|
rules = [
|
||||||
{
|
{
|
||||||
name = "Nvidia2screens";
|
name = "Nvidia2screens";
|
||||||
outputs_connected = [ "HDMI-0" "eDP-1-1" ];
|
outputs_connected = [
|
||||||
configure_column = [ "HDMI-0" "eDP-1-1" ];
|
"HDMI-0"
|
||||||
|
"eDP-1-1"
|
||||||
|
];
|
||||||
|
configure_column = [
|
||||||
|
"HDMI-0"
|
||||||
|
"eDP-1-1"
|
||||||
|
];
|
||||||
primary = "HDMI-0";
|
primary = "HDMI-0";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
{ pkgs, ... }: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
gtk = {
|
gtk = {
|
||||||
enable = true;
|
enable = true;
|
||||||
font = pkgs.rice.font.normal;
|
font = pkgs.rice.font.normal;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
let thumbnailer = "${pkgs.libheif.bin}/bin/heif-thumbnailer";
|
let
|
||||||
in {
|
thumbnailer = "${pkgs.libheif.bin}/bin/heif-thumbnailer";
|
||||||
|
in
|
||||||
|
{
|
||||||
# home.packages = [
|
# home.packages = [
|
||||||
# pkgs.libheif.bin
|
# pkgs.libheif.bin
|
||||||
# ];
|
# ];
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,13 @@
|
||||||
{ pkgs, ... }: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
home = {
|
home = {
|
||||||
sessionVariables = { EDITOR = "hx"; VISUAL = "hx"; };
|
sessionVariables = {
|
||||||
shellAliases = { x = "hx"; };
|
EDITOR = "hx";
|
||||||
|
VISUAL = "hx";
|
||||||
|
};
|
||||||
|
shellAliases = {
|
||||||
|
x = "hx";
|
||||||
|
};
|
||||||
packages = builtins.attrValues {
|
packages = builtins.attrValues {
|
||||||
inherit (pkgs) nil; # Nix language server
|
inherit (pkgs) nil; # Nix language server
|
||||||
# inherit desktopItem;
|
# inherit desktopItem;
|
||||||
|
|
@ -10,10 +16,12 @@
|
||||||
programs.helix = {
|
programs.helix = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.unstable_pkgs.helix;
|
package = pkgs.unstable_pkgs.helix;
|
||||||
languages.language = [{
|
languages.language = [
|
||||||
|
{
|
||||||
name = "nix";
|
name = "nix";
|
||||||
auto-format = true;
|
auto-format = true;
|
||||||
}];
|
}
|
||||||
|
];
|
||||||
languages.language-server = {
|
languages.language-server = {
|
||||||
nil.config.nil = {
|
nil.config.nil = {
|
||||||
formatting.command = [ "nixpkgs-fmt" ];
|
formatting.command = [ "nixpkgs-fmt" ];
|
||||||
|
|
@ -82,24 +90,56 @@
|
||||||
{
|
{
|
||||||
base16 = {
|
base16 = {
|
||||||
"ui.menu" = transparent;
|
"ui.menu" = transparent;
|
||||||
"ui.menu.selected" = { modifiers = [ "reversed" ]; };
|
"ui.menu.selected" = {
|
||||||
"ui.linenr" = { fg = gray; bg = dark-gray; };
|
modifiers = [ "reversed" ];
|
||||||
"ui.popup" = { modifiers = [ "reversed" ]; };
|
};
|
||||||
"ui.linenr.selected" = { fg = white; bg = black; modifiers = [ "bold" ]; };
|
"ui.linenr" = {
|
||||||
"ui.selection" = { fg = black; bg = blue; };
|
fg = gray;
|
||||||
"ui.selection.primary" = { modifiers = [ "reversed" ]; };
|
bg = dark-gray;
|
||||||
"comment" = { fg = gray; };
|
};
|
||||||
"ui.statusline" = { fg = white; bg = dark-gray; };
|
"ui.popup" = {
|
||||||
"ui.statusline.inactive" = { fg = dark-gray; bg = white; };
|
modifiers = [ "reversed" ];
|
||||||
"ui.help" = { fg = dark-gray; bg = white; };
|
};
|
||||||
"ui.cursor" = { 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" = red;
|
||||||
"variable.builtin" = orange;
|
"variable.builtin" = orange;
|
||||||
"constant.numeric" = orange;
|
"constant.numeric" = orange;
|
||||||
"constant" = orange;
|
"constant" = orange;
|
||||||
"attributes" = yellow;
|
"attributes" = yellow;
|
||||||
"type" = yellow;
|
"type" = yellow;
|
||||||
"ui.cursor.match" = { fg = yellow; modifiers = [ "underlined" ]; };
|
"ui.cursor.match" = {
|
||||||
|
fg = yellow;
|
||||||
|
modifiers = [ "underlined" ];
|
||||||
|
};
|
||||||
"string" = green;
|
"string" = green;
|
||||||
"variable.other.member" = red;
|
"variable.other.member" = red;
|
||||||
"constant.character.escape" = cyan;
|
"constant.character.escape" = cyan;
|
||||||
|
|
@ -112,8 +152,12 @@
|
||||||
"diff.plus" = green;
|
"diff.plus" = green;
|
||||||
"diff.delta" = yellow;
|
"diff.delta" = yellow;
|
||||||
"diff.minus" = red;
|
"diff.minus" = red;
|
||||||
"diagnostic" = { modifiers = [ "underlined" ]; };
|
"diagnostic" = {
|
||||||
"ui.gutter" = { bg = black; };
|
modifiers = [ "underlined" ];
|
||||||
|
};
|
||||||
|
"ui.gutter" = {
|
||||||
|
bg = black;
|
||||||
|
};
|
||||||
"info" = blue;
|
"info" = blue;
|
||||||
"hint" = dark-gray;
|
"hint" = dark-gray;
|
||||||
"debug" = dark-gray;
|
"debug" = dark-gray;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,9 @@
|
||||||
{ pkgs, lib, nixosConfig, ... }: {
|
{ pkgs
|
||||||
|
, lib
|
||||||
|
, nixosConfig
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
|
{
|
||||||
systemd.user.services."bluetooth-keyboard" = {
|
systemd.user.services."bluetooth-keyboard" = {
|
||||||
Unit = {
|
Unit = {
|
||||||
Description = "Disable the laptop keyboard when the bluetooth keyboard is connected";
|
Description = "Disable the laptop keyboard when the bluetooth keyboard is connected";
|
||||||
|
|
@ -9,7 +14,14 @@
|
||||||
Service = {
|
Service = {
|
||||||
Type = "simple";
|
Type = "simple";
|
||||||
ExecStart = pkgs.writeShellScript "bluetooth-keyboard.sh" ''
|
ExecStart = pkgs.writeShellScript "bluetooth-keyboard.sh" ''
|
||||||
PATH=$PATH:${lib.makeBinPath [pkgs.coreutils pkgs.gnugrep pkgs.libnotify nixosConfig.programs.hyprland.package]}
|
PATH=$PATH:${
|
||||||
|
lib.makeBinPath [
|
||||||
|
pkgs.coreutils
|
||||||
|
pkgs.gnugrep
|
||||||
|
pkgs.libnotify
|
||||||
|
nixosConfig.programs.hyprland.package
|
||||||
|
]
|
||||||
|
}
|
||||||
BLUETOOTH_DEVICE="keychron-k1-max-keyboard"
|
BLUETOOTH_DEVICE="keychron-k1-max-keyboard"
|
||||||
LAPTOP_DEVICE="at-translated-set-2-keyboard"
|
LAPTOP_DEVICE="at-translated-set-2-keyboard"
|
||||||
STATUS_FILE="$XDG_RUNTIME_DIR/bluetooth_keyboard.status"
|
STATUS_FILE="$XDG_RUNTIME_DIR/bluetooth_keyboard.status"
|
||||||
|
|
@ -49,4 +61,3 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
{ nixosConfig, pkgs, ... }: {
|
{ nixosConfig, pkgs, ... }:
|
||||||
|
{
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
./kitty.nix
|
./kitty.nix
|
||||||
|
|
@ -12,7 +13,29 @@
|
||||||
./hyprland-bluetooth-keyboard.nix
|
./hyprland-bluetooth-keyboard.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
home.packages = builtins.attrValues { inherit (pkgs) blueman brillo gamescope grimblast networkmanagerapplet wireplumber playerctl swaylock swww walker way-lockscreen waybar wl-clipboard wl-clipedit wlogout wofi wofi-emoji wtype xdg-desktop-portal-gtk; };
|
home.packages = builtins.attrValues {
|
||||||
|
inherit (pkgs)
|
||||||
|
blueman
|
||||||
|
brillo
|
||||||
|
gamescope
|
||||||
|
grimblast
|
||||||
|
networkmanagerapplet
|
||||||
|
wireplumber
|
||||||
|
playerctl
|
||||||
|
swaylock
|
||||||
|
swww
|
||||||
|
walker
|
||||||
|
way-lockscreen
|
||||||
|
waybar
|
||||||
|
wl-clipboard
|
||||||
|
wl-clipedit
|
||||||
|
wlogout
|
||||||
|
wofi
|
||||||
|
wofi-emoji
|
||||||
|
wtype
|
||||||
|
xdg-desktop-portal-gtk
|
||||||
|
;
|
||||||
|
};
|
||||||
|
|
||||||
# wayland.windowManager.hyprland = { };
|
# wayland.windowManager.hyprland = { };
|
||||||
|
|
||||||
|
|
@ -52,14 +75,17 @@
|
||||||
monitor=eDP-1,preferred,320x1440,1
|
monitor=eDP-1,preferred,320x1440,1
|
||||||
monitor=DP-1,preferred,0x0,1
|
monitor=DP-1,preferred,0x0,1
|
||||||
''
|
''
|
||||||
else ""
|
else
|
||||||
|
""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
||||||
|
|
||||||
# Execute your favorite apps at launch
|
# Execute your favorite apps at launch
|
||||||
exec-once = ${if nixosConfig.networking.hostName == "thor" then "xrandr --output DP-2 --primary" else "true"} & swww init & nm-applet & blueman-applet & systemctl --user start hyprland-login.target
|
exec-once = ${
|
||||||
|
if nixosConfig.networking.hostName == "thor" then "xrandr --output DP-2 --primary" else "true"
|
||||||
|
} & swww init & nm-applet & blueman-applet & systemctl --user start hyprland-login.target
|
||||||
|
|
||||||
# Source a file (multi-file configs)
|
# Source a file (multi-file configs)
|
||||||
# source = ~/.config/hypr/myColors.conf
|
# source = ~/.config/hypr/myColors.conf
|
||||||
|
|
|
||||||
|
|
@ -1 +1,5 @@
|
||||||
{ programs.info = { enable = true; }; }
|
{
|
||||||
|
programs.info = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
{ pkgs, ... }: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
home.packages = [
|
home.packages = [
|
||||||
(pkgs.jellyfin-media-player.overrideAttrs (old: {
|
(pkgs.jellyfin-media-player.overrideAttrs (old: {
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
let tomlGenerate = (pkgs.formats.toml { }).generate; in
|
let
|
||||||
|
tomlGenerate = (pkgs.formats.toml { }).generate;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
# TODO: switch to module on next release
|
# TODO: switch to module on next release
|
||||||
|
|
||||||
|
|
@ -16,7 +18,11 @@ let tomlGenerate = (pkgs.formats.toml { }).generate; in
|
||||||
display = {
|
display = {
|
||||||
mode = "default";
|
mode = "default";
|
||||||
collapse_preview = true;
|
collapse_preview = true;
|
||||||
column_ratio = [ 1 3 4 ];
|
column_ratio = [
|
||||||
|
1
|
||||||
|
3
|
||||||
|
4
|
||||||
|
];
|
||||||
show_borders = true;
|
show_borders = true;
|
||||||
show_hidden = false;
|
show_hidden = false;
|
||||||
show_icons = true;
|
show_icons = true;
|
||||||
|
|
@ -44,37 +50,102 @@ let tomlGenerate = (pkgs.formats.toml { }).generate; in
|
||||||
|
|
||||||
class = {
|
class = {
|
||||||
audio_default = [
|
audio_default = [
|
||||||
{ command = "mpv"; args = [ "--" ]; }
|
{
|
||||||
{ command = "mediainfo"; confirm_exit = true; }
|
command = "mpv";
|
||||||
|
args = [ "--" ];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
command = "mediainfo";
|
||||||
|
confirm_exit = true;
|
||||||
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
image_default = [
|
image_default = [
|
||||||
{ command = "geeqie"; fork = true; silent = true; }
|
{
|
||||||
{ command = "qimgv"; args = [ "--" ]; fork = true; silent = true; }
|
command = "geeqie";
|
||||||
{ command = "krita"; args = [ "--" ]; fork = true; silent = true; }
|
fork = true;
|
||||||
{ command = "exiftool"; confirm_exit = true; }
|
silent = true;
|
||||||
{ command = "swappy"; args = [ "-f" ]; fork = true; }
|
}
|
||||||
|
{
|
||||||
|
command = "qimgv";
|
||||||
|
args = [ "--" ];
|
||||||
|
fork = true;
|
||||||
|
silent = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
command = "krita";
|
||||||
|
args = [ "--" ];
|
||||||
|
fork = true;
|
||||||
|
silent = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
command = "exiftool";
|
||||||
|
confirm_exit = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
command = "swappy";
|
||||||
|
args = [ "-f" ];
|
||||||
|
fork = true;
|
||||||
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
video_default = [
|
video_default = [
|
||||||
{ command = "mpv"; args = [ "--" ]; fork = true; silent = true; }
|
{
|
||||||
{ command = "mediainfo"; confirm_exit = true; }
|
command = "mpv";
|
||||||
{ command = "mpv"; args = [ "--mute" "on" "--" ]; fork = true; silent = true; }
|
args = [ "--" ];
|
||||||
|
fork = true;
|
||||||
|
silent = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
command = "mediainfo";
|
||||||
|
confirm_exit = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
command = "mpv";
|
||||||
|
args = [
|
||||||
|
"--mute"
|
||||||
|
"on"
|
||||||
|
"--"
|
||||||
|
];
|
||||||
|
fork = true;
|
||||||
|
silent = true;
|
||||||
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
text_default = [
|
text_default = [
|
||||||
{ command = "hx"; }
|
{ command = "hx"; }
|
||||||
{ command = "micro"; }
|
{ command = "micro"; }
|
||||||
{ command = "gedit"; fork = true; silent = true; }
|
{
|
||||||
{ command = "bat"; args = [ "--paging=always" ]; }
|
command = "gedit";
|
||||||
|
fork = true;
|
||||||
|
silent = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
command = "bat";
|
||||||
|
args = [ "--paging=always" ];
|
||||||
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
reader_default = [
|
reader_default = [
|
||||||
{ command = "evince"; fork = true; silent = true; }
|
{
|
||||||
{ command = "zathura"; fork = true; silent = true; }
|
command = "evince";
|
||||||
|
fork = true;
|
||||||
|
silent = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
command = "zathura";
|
||||||
|
fork = true;
|
||||||
|
silent = true;
|
||||||
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
libreoffice_default = [{ command = "libreoffice"; fork = true; silent = true; }];
|
libreoffice_default = [
|
||||||
|
{
|
||||||
|
command = "libreoffice";
|
||||||
|
fork = true;
|
||||||
|
silent = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
extension = {
|
extension = {
|
||||||
|
|
@ -92,12 +163,28 @@ let tomlGenerate = (pkgs.formats.toml { }).generate; in
|
||||||
webp."inherit" = "image_default";
|
webp."inherit" = "image_default";
|
||||||
|
|
||||||
svg.app_list = [
|
svg.app_list = [
|
||||||
{ command = "inkview"; fork = true; silent = true; }
|
{
|
||||||
{ command = "inkscape"; fork = true; silent = true; }
|
command = "inkview";
|
||||||
|
fork = true;
|
||||||
|
silent = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
command = "inkscape";
|
||||||
|
fork = true;
|
||||||
|
silent = true;
|
||||||
|
}
|
||||||
];
|
];
|
||||||
tiff.app_list = [
|
tiff.app_list = [
|
||||||
{ command = "qimgv"; fork = true; silent = true; }
|
{
|
||||||
{ command = "krita"; fork = true; silent = true; }
|
command = "qimgv";
|
||||||
|
fork = true;
|
||||||
|
silent = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
command = "krita";
|
||||||
|
fork = true;
|
||||||
|
silent = true;
|
||||||
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
## audio formats
|
## audio formats
|
||||||
|
|
@ -165,46 +252,122 @@ let tomlGenerate = (pkgs.formats.toml { }).generate; in
|
||||||
|
|
||||||
# archive formats
|
# archive formats
|
||||||
"7z".app_list = [
|
"7z".app_list = [
|
||||||
{ command = "7z"; args = [ "x" ]; confirm_exit = true; }
|
{
|
||||||
{ command = "file-roller"; fork = true; silent = true; }
|
command = "7z";
|
||||||
|
args = [ "x" ];
|
||||||
|
confirm_exit = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
command = "file-roller";
|
||||||
|
fork = true;
|
||||||
|
silent = true;
|
||||||
|
}
|
||||||
];
|
];
|
||||||
bz2.app_list = [
|
bz2.app_list = [
|
||||||
{ command = "tar"; args = [ "-xvjf" ]; confirm_exit = true; }
|
{
|
||||||
{ command = "file-roller"; fork = true; silent = true; }
|
command = "tar";
|
||||||
|
args = [ "-xvjf" ];
|
||||||
|
confirm_exit = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
command = "file-roller";
|
||||||
|
fork = true;
|
||||||
|
silent = true;
|
||||||
|
}
|
||||||
];
|
];
|
||||||
gz.app_list = [
|
gz.app_list = [
|
||||||
{ command = "tar"; args = [ "-xvzf" ]; confirm_exit = true; }
|
{
|
||||||
{ command = "file-roller"; fork = true; silent = true; }
|
command = "tar";
|
||||||
|
args = [ "-xvzf" ];
|
||||||
|
confirm_exit = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
command = "file-roller";
|
||||||
|
fork = true;
|
||||||
|
silent = true;
|
||||||
|
}
|
||||||
];
|
];
|
||||||
tar.app_list = [
|
tar.app_list = [
|
||||||
{ command = "tar"; args = [ "-xvf" ]; confirm_exit = true; }
|
{
|
||||||
{ command = "file-roller"; fork = true; silent = true; }
|
command = "tar";
|
||||||
|
args = [ "-xvf" ];
|
||||||
|
confirm_exit = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
command = "file-roller";
|
||||||
|
fork = true;
|
||||||
|
silent = true;
|
||||||
|
}
|
||||||
];
|
];
|
||||||
tgz.app_list = [
|
tgz.app_list = [
|
||||||
{ command = "tar"; args = [ "-xvzf" ]; confirm_exit = true; }
|
{
|
||||||
{ command = "file-roller"; fork = true; silent = true; }
|
command = "tar";
|
||||||
|
args = [ "-xvzf" ];
|
||||||
|
confirm_exit = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
command = "file-roller";
|
||||||
|
fork = true;
|
||||||
|
silent = true;
|
||||||
|
}
|
||||||
];
|
];
|
||||||
rar.app_list = [
|
rar.app_list = [
|
||||||
{ command = "unrar"; args = [ "x" ]; confirm_exit = true; }
|
{
|
||||||
{ command = "file-roller"; fork = true; silent = true; }
|
command = "unrar";
|
||||||
|
args = [ "x" ];
|
||||||
|
confirm_exit = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
command = "file-roller";
|
||||||
|
fork = true;
|
||||||
|
silent = true;
|
||||||
|
}
|
||||||
];
|
];
|
||||||
xz.app_list = [
|
xz.app_list = [
|
||||||
{ command = "tar"; args = [ "-xvJf" ]; confirm_exit = true; }
|
{
|
||||||
{ command = "file-roller"; fork = true; silent = true; }
|
command = "tar";
|
||||||
|
args = [ "-xvJf" ];
|
||||||
|
confirm_exit = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
command = "file-roller";
|
||||||
|
fork = true;
|
||||||
|
silent = true;
|
||||||
|
}
|
||||||
];
|
];
|
||||||
zip.app_list = [
|
zip.app_list = [
|
||||||
{ command = "unzip"; confirm_exit = true; }
|
{
|
||||||
{ command = "file-roller"; fork = true; silent = true; }
|
command = "unzip";
|
||||||
|
confirm_exit = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
command = "file-roller";
|
||||||
|
fork = true;
|
||||||
|
silent = true;
|
||||||
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
# misc formats
|
# misc formats
|
||||||
aup.app_list = [{ command = "audacity"; fork = true; silent = true; }];
|
aup.app_list = [
|
||||||
|
{
|
||||||
|
command = "audacity";
|
||||||
|
fork = true;
|
||||||
|
silent = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
m3u.app_list = [
|
m3u.app_list = [
|
||||||
{ command = "micro"; }
|
{ command = "micro"; }
|
||||||
{ command = "mpv"; }
|
{ command = "mpv"; }
|
||||||
{ command = "gedit"; fork = true; silent = true; }
|
{
|
||||||
{ command = "bat"; confirm_exit = true; }
|
command = "gedit";
|
||||||
|
fork = true;
|
||||||
|
silent = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
command = "bat";
|
||||||
|
confirm_exit = true;
|
||||||
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
odt."inherit" = "libreoffice_default";
|
odt."inherit" = "libreoffice_default";
|
||||||
|
|
@ -221,13 +384,32 @@ let tomlGenerate = (pkgs.formats.toml { }).generate; in
|
||||||
|
|
||||||
pdf."inherit" = "reader_default";
|
pdf."inherit" = "reader_default";
|
||||||
|
|
||||||
kra.app_list = [{ command = "krita"; fork = true; silent = true; }];
|
kra.app_list = [
|
||||||
kdenlive.app_list = [{ command = "kdenlive"; fork = true; silent = true; }];
|
{
|
||||||
|
command = "krita";
|
||||||
|
fork = true;
|
||||||
|
silent = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
kdenlive.app_list = [
|
||||||
|
{
|
||||||
|
command = "kdenlive";
|
||||||
|
fork = true;
|
||||||
|
silent = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
tex.app_list = [
|
tex.app_list = [
|
||||||
{ command = "micro"; }
|
{ command = "micro"; }
|
||||||
{ command = "gedit"; fork = true; silent = true; }
|
{
|
||||||
{ command = "bat"; confirm_exit = true; }
|
command = "gedit";
|
||||||
|
fork = true;
|
||||||
|
silent = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
command = "bat";
|
||||||
|
confirm_exit = true;
|
||||||
|
}
|
||||||
{ command = "pdflatex"; }
|
{ command = "pdflatex"; }
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
@ -246,10 +428,22 @@ let tomlGenerate = (pkgs.formats.toml { }).generate; in
|
||||||
|
|
||||||
"joshuto/bookmarks.toml".source = tomlGenerate "joshuto-bookmarks.toml" {
|
"joshuto/bookmarks.toml".source = tomlGenerate "joshuto-bookmarks.toml" {
|
||||||
bookmark = [
|
bookmark = [
|
||||||
{ path = "/"; key = "r"; }
|
{
|
||||||
{ path = "~/"; key = "h"; }
|
path = "/";
|
||||||
{ path = "~/Scaricati"; key = "d"; }
|
key = "r";
|
||||||
{ path = "~/Syncthing"; key = "s"; }
|
}
|
||||||
|
{
|
||||||
|
path = "~/";
|
||||||
|
key = "h";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
path = "~/Scaricati";
|
||||||
|
key = "d";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
path = "~/Syncthing";
|
||||||
|
key = "s";
|
||||||
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,17 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
let joystickwakeCmd = "${pkgs.joystickwake}/bin/joystickwake";
|
let
|
||||||
in {
|
joystickwakeCmd = "${pkgs.joystickwake}/bin/joystickwake";
|
||||||
|
in
|
||||||
|
{
|
||||||
systemd.user.services."joystickwake" = {
|
systemd.user.services."joystickwake" = {
|
||||||
Unit = {
|
Unit = {
|
||||||
Description = "Keep lockscreen from activating";
|
Description = "Keep lockscreen from activating";
|
||||||
After = [ "graphical-session.target" ];
|
After = [ "graphical-session.target" ];
|
||||||
PartOf = [ "graphical-session.target" ];
|
PartOf = [ "graphical-session.target" ];
|
||||||
};
|
};
|
||||||
Install = { WantedBy = [ "graphical-session.target" ]; };
|
Install = {
|
||||||
|
WantedBy = [ "graphical-session.target" ];
|
||||||
|
};
|
||||||
Service = {
|
Service = {
|
||||||
Type = "simple";
|
Type = "simple";
|
||||||
ExecStart = joystickwakeCmd;
|
ExecStart = joystickwakeCmd;
|
||||||
|
|
|
||||||
|
|
@ -1 +1,5 @@
|
||||||
{ programs.jq = { enable = true; }; }
|
{
|
||||||
|
programs.jq = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
let
|
let
|
||||||
themeBuilder = palette:
|
themeBuilder =
|
||||||
with palette; ''
|
palette: with palette; ''
|
||||||
set-face global value rgb:${normal.magenta},default
|
set-face global value rgb:${normal.magenta},default
|
||||||
set-face global type rgb:${bright.white},default
|
set-face global type rgb:${bright.white},default
|
||||||
set-face global identifier rgb:${normal.cyan},default
|
set-face global identifier rgb:${normal.cyan},default
|
||||||
|
|
@ -64,8 +64,12 @@ let
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
programs = {
|
programs = {
|
||||||
bash.shellAliases = { k = "kak"; };
|
bash.shellAliases = {
|
||||||
zsh.shellAliases = { k = "kak"; };
|
k = "kak";
|
||||||
|
};
|
||||||
|
zsh.shellAliases = {
|
||||||
|
k = "kak";
|
||||||
|
};
|
||||||
kakoune = {
|
kakoune = {
|
||||||
enable = true;
|
enable = true;
|
||||||
config = {
|
config = {
|
||||||
|
|
@ -270,8 +274,9 @@ in
|
||||||
home.packages = packages;
|
home.packages = packages;
|
||||||
|
|
||||||
# THEME FILE
|
# THEME FILE
|
||||||
xdg.configFile."kak/colors/nord.kak".text = themeBuilder
|
xdg.configFile."kak/colors/nord.kak".text = themeBuilder (
|
||||||
(pkgs.lib.nix-rice.palette.toRgbShortHex pkgs.rice.colorPalette);
|
pkgs.lib.nix-rice.palette.toRgbShortHex pkgs.rice.colorPalette
|
||||||
|
);
|
||||||
|
|
||||||
xdg.configFile."kak-lsp/kak-lsp.toml".text = ''
|
xdg.configFile."kak-lsp/kak-lsp.toml".text = ''
|
||||||
snippet_support = false
|
snippet_support = false
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
{ pkgs, ... }: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
config.systemd.user.services.keepassxc = {
|
config.systemd.user.services.keepassxc = {
|
||||||
Unit = {
|
Unit = {
|
||||||
Description = "KeePassXC password manager";
|
Description = "KeePassXC password manager";
|
||||||
|
|
@ -6,8 +7,12 @@
|
||||||
Partof = [ "graphical-session.target" ];
|
Partof = [ "graphical-session.target" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
Install = { WantedBy = [ "graphical-session.target" ]; };
|
Install = {
|
||||||
|
WantedBy = [ "graphical-session.target" ];
|
||||||
|
};
|
||||||
|
|
||||||
Service = { ExecStart = "${pkgs.keepassxc}/bin/keepassxc"; };
|
Service = {
|
||||||
|
ExecStart = "${pkgs.keepassxc}/bin/keepassxc";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,10 @@
|
||||||
programs.keychain = {
|
programs.keychain = {
|
||||||
enable = true;
|
enable = true;
|
||||||
keys = [ "id_ed25519" ];
|
keys = [ "id_ed25519" ];
|
||||||
agents = [ "gpg" "ssh" ];
|
agents = [
|
||||||
|
"gpg"
|
||||||
|
"ssh"
|
||||||
|
];
|
||||||
enableBashIntegration = true;
|
enableBashIntegration = true;
|
||||||
enableZshIntegration = true;
|
enableZshIntegration = true;
|
||||||
enableXsessionIntegration = true;
|
enableXsessionIntegration = true;
|
||||||
|
|
|
||||||
|
|
@ -1 +1,4 @@
|
||||||
{ pkgs, ... }: { home.packages = [ pkgs.kicad ]; }
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
home.packages = [ pkgs.kicad ];
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,25 @@
|
||||||
let
|
let
|
||||||
strPalette = pkgs.lib.nix-rice.palette.toRgbHex {
|
strPalette = pkgs.lib.nix-rice.palette.toRgbHex {
|
||||||
inherit (pkgs.rice.colorPalette)
|
inherit (pkgs.rice.colorPalette)
|
||||||
background foreground color0 color1 color2 color3 color4 color5 color6
|
background
|
||||||
color7 color8 color9 color10 color11 color12 color13 color14 color15;
|
foreground
|
||||||
|
color0
|
||||||
|
color1
|
||||||
|
color2
|
||||||
|
color3
|
||||||
|
color4
|
||||||
|
color5
|
||||||
|
color6
|
||||||
|
color7
|
||||||
|
color8
|
||||||
|
color9
|
||||||
|
color10
|
||||||
|
color11
|
||||||
|
color12
|
||||||
|
color13
|
||||||
|
color14
|
||||||
|
color15
|
||||||
|
;
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
@ -16,8 +33,7 @@ in
|
||||||
update_check_interval = 0;
|
update_check_interval = 0;
|
||||||
background_opacity = toString pkgs.rice.opacity;
|
background_opacity = toString pkgs.rice.opacity;
|
||||||
close_on_child_death = "yes";
|
close_on_child_death = "yes";
|
||||||
clipboard_control =
|
clipboard_control = "write-clipboard write-primary read-clipboard read-primary";
|
||||||
"write-clipboard write-primary read-clipboard read-primary";
|
|
||||||
disable_ligatures = "never";
|
disable_ligatures = "never";
|
||||||
editor = "kak";
|
editor = "kak";
|
||||||
} // strPalette;
|
} // strPalette;
|
||||||
|
|
|
||||||
|
|
@ -68,20 +68,25 @@ in
|
||||||
source = previewer;
|
source = previewer;
|
||||||
# keybinding = "i";
|
# keybinding = "i";
|
||||||
};
|
};
|
||||||
keybindings = { "<c-f>" = "$EDITOR $(fzf)"; };
|
keybindings = {
|
||||||
|
"<c-f>" = "$EDITOR $(fzf)";
|
||||||
|
};
|
||||||
commands = {
|
commands = {
|
||||||
mkdir = ''''${{
|
mkdir = ''
|
||||||
|
''${{
|
||||||
printf "Directory name: "
|
printf "Directory name: "
|
||||||
read ans
|
read ans
|
||||||
mkdir $ans
|
mkdir $ans
|
||||||
}}'';
|
}}'';
|
||||||
mkfile = ''''${{
|
mkfile = ''
|
||||||
|
''${{
|
||||||
printf "File name: "
|
printf "File name: "
|
||||||
read ans
|
read ans
|
||||||
$VISUAL $ans
|
$VISUAL $ans
|
||||||
}}'';
|
}}'';
|
||||||
|
|
||||||
trash = ''''${{
|
trash = ''
|
||||||
|
''${{
|
||||||
files=$(printf "$fx" | tr '\n' ';')
|
files=$(printf "$fx" | tr '\n' ';')
|
||||||
while [ "$files" ]; do
|
while [ "$files" ]; do
|
||||||
file=''${files%%;*}
|
file=''${files%%;*}
|
||||||
|
|
@ -94,19 +99,23 @@ in
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
}}'';
|
}}'';
|
||||||
restore_trash = ''''${{
|
restore_trash = ''
|
||||||
|
''${{
|
||||||
trash-restore
|
trash-restore
|
||||||
}}'';
|
}}'';
|
||||||
|
|
||||||
z = ''''${{
|
z = ''
|
||||||
|
''${{
|
||||||
result="$(zoxide query --exclude "$PWD" -- "$@")"
|
result="$(zoxide query --exclude "$PWD" -- "$@")"
|
||||||
lf -remote "send $id cd '$result'"
|
lf -remote "send $id cd '$result'"
|
||||||
}}'';
|
}}'';
|
||||||
zi = ''''${{
|
zi = ''
|
||||||
|
''${{
|
||||||
result="$(zoxide query -i -- "$@")"
|
result="$(zoxide query -i -- "$@")"
|
||||||
lf -remote "send $id cd '$result'"
|
lf -remote "send $id cd '$result'"
|
||||||
}}'';
|
}}'';
|
||||||
extract = ''''${{
|
extract = ''
|
||||||
|
''${{
|
||||||
set -f
|
set -f
|
||||||
case $f in
|
case $f in
|
||||||
*.tar.bz|*.tar.bz2|*.tbz|*.tbz2) tar xjvf $f;;
|
*.tar.bz|*.tar.bz2|*.tbz|*.tbz2) tar xjvf $f;;
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,9 @@ in
|
||||||
After = [ "graphical-session-pre.target" ];
|
After = [ "graphical-session-pre.target" ];
|
||||||
PartOf = [ "graphical-session.target" ];
|
PartOf = [ "graphical-session.target" ];
|
||||||
};
|
};
|
||||||
Install = { WantedBy = [ "graphical-session.target" ]; };
|
Install = {
|
||||||
|
WantedBy = [ "graphical-session.target" ];
|
||||||
|
};
|
||||||
Service = {
|
Service = {
|
||||||
Type = "simple";
|
Type = "simple";
|
||||||
ExecStart = libinputGesturesCmd;
|
ExecStart = libinputGesturesCmd;
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,7 @@
|
||||||
{ pkgs, ... }: {
|
{ pkgs, ... }:
|
||||||
home.packages = [ pkgs.lutris pkgs.winePackages.full ];
|
{
|
||||||
|
home.packages = [
|
||||||
|
pkgs.lutris
|
||||||
|
pkgs.winePackages.full
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
let strPalette = pkgs.lib.nix-rice.palette.toRgbShortHex pkgs.rice.colorPalette;
|
let
|
||||||
in {
|
strPalette = pkgs.lib.nix-rice.palette.toRgbShortHex pkgs.rice.colorPalette;
|
||||||
|
in
|
||||||
|
{
|
||||||
programs.mangohud = {
|
programs.mangohud = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# enableSessionWide = true;
|
# enableSessionWide = true;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
let megasyncCmd = "${pkgs.megacmd}/bin/mega-cmd-server";
|
let
|
||||||
in {
|
megasyncCmd = "${pkgs.megacmd}/bin/mega-cmd-server";
|
||||||
|
in
|
||||||
|
{
|
||||||
home.packages = [ pkgs.megacmd ];
|
home.packages = [ pkgs.megacmd ];
|
||||||
|
|
||||||
systemd.user.services."mega-cmd-server" = {
|
systemd.user.services."mega-cmd-server" = {
|
||||||
|
|
@ -9,7 +11,9 @@ in {
|
||||||
After = [ "default.target" ];
|
After = [ "default.target" ];
|
||||||
PartOf = [ "default.target" ];
|
PartOf = [ "default.target" ];
|
||||||
};
|
};
|
||||||
Install = { WantedBy = [ "default.target" ]; };
|
Install = {
|
||||||
|
WantedBy = [ "default.target" ];
|
||||||
|
};
|
||||||
Service = {
|
Service = {
|
||||||
Type = "simple";
|
Type = "simple";
|
||||||
ExecStart = megasyncCmd;
|
ExecStart = megasyncCmd;
|
||||||
|
|
|
||||||
|
|
@ -1 +1,7 @@
|
||||||
{ pkgs, ... }: { home.packages = [ pkgs.gnome.nautilus pkgs.gnome.sushi ]; }
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
home.packages = [
|
||||||
|
pkgs.gnome.nautilus
|
||||||
|
pkgs.gnome.sushi
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs, ... }: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
home.packages = builtins.attrValues { inherit (pkgs.cinnamon) nemo; };
|
home.packages = builtins.attrValues { inherit (pkgs.cinnamon) nemo; };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1 +1,5 @@
|
||||||
{ programs.noti = { enable = true; }; }
|
{
|
||||||
|
programs.noti = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,14 @@
|
||||||
{ nixosConfig, pkgs, config, ... }:
|
{ nixosConfig
|
||||||
|
, pkgs
|
||||||
|
, config
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
inherit (nixosConfig.networking) hostName;
|
inherit (nixosConfig.networking) hostName;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
home.packages = [ pkgs.ntfy-sh ];
|
home.packages = [ pkgs.ntfy-sh ];
|
||||||
xdg.configFile."ntfy/client.yml".source = config.lib.file.mkOutOfStoreSymlink nixosConfig.age.secrets."ntfy-${hostName}".path;
|
xdg.configFile."ntfy/client.yml".source =
|
||||||
|
config.lib.file.mkOutOfStoreSymlink
|
||||||
|
nixosConfig.age.secrets."ntfy-${hostName}".path;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
{ pkgs, ... }: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
programs.obs-studio = {
|
programs.obs-studio = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.obs-studio;
|
package = pkgs.obs-studio;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
{ pkgs, ... }: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
home.packages = builtins.attrValues {
|
home.packages = builtins.attrValues {
|
||||||
inherit (pkgs) hunspell libreoffice-fresh;
|
inherit (pkgs) hunspell libreoffice-fresh;
|
||||||
inherit (pkgs.hunspellDicts) en_GB-large en_US-large it_IT;
|
inherit (pkgs.hunspellDicts) en_GB-large en_US-large it_IT;
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,17 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
let onedriveCmd = "${pkgs.onedrive}/bin/onedrive --monitor";
|
let
|
||||||
in {
|
onedriveCmd = "${pkgs.onedrive}/bin/onedrive --monitor";
|
||||||
|
in
|
||||||
|
{
|
||||||
systemd.user.services."onedrive" = {
|
systemd.user.services."onedrive" = {
|
||||||
Unit = {
|
Unit = {
|
||||||
Description = "OneDrive synchronization service";
|
Description = "OneDrive synchronization service";
|
||||||
After = [ "network.target" ];
|
After = [ "network.target" ];
|
||||||
PartOf = [ "default.target" ];
|
PartOf = [ "default.target" ];
|
||||||
};
|
};
|
||||||
Install = { WantedBy = [ "default.target" ]; };
|
Install = {
|
||||||
|
WantedBy = [ "default.target" ];
|
||||||
|
};
|
||||||
Service = {
|
Service = {
|
||||||
ExecStart = onedriveCmd;
|
ExecStart = onedriveCmd;
|
||||||
Restart = "always";
|
Restart = "always";
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,19 @@
|
||||||
{ pkgs, ... }: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
programs.password-store = {
|
programs.password-store = {
|
||||||
package = pkgs.pass.withExtensions (ext: (builtins.attrValues {
|
package = pkgs.pass.withExtensions (
|
||||||
|
ext:
|
||||||
|
(builtins.attrValues {
|
||||||
inherit (ext)
|
inherit (ext)
|
||||||
# pass-audit
|
# pass-audit
|
||||||
pass-checkup
|
pass-checkup
|
||||||
pass-import
|
pass-import
|
||||||
pass-otp
|
pass-otp
|
||||||
pass-tomb
|
pass-tomb
|
||||||
pass-update;
|
pass-update
|
||||||
}));
|
;
|
||||||
|
})
|
||||||
|
);
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,9 @@
|
||||||
{ nixosConfig, config, pkgs, lib, ... }:
|
{ nixosConfig
|
||||||
|
, config
|
||||||
|
, pkgs
|
||||||
|
, lib
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
inherit (pkgs.rice) colorPalette opacity;
|
inherit (pkgs.rice) colorPalette opacity;
|
||||||
inherit (pkgs.lib) nix-rice;
|
inherit (pkgs.lib) nix-rice;
|
||||||
|
|
@ -48,7 +53,13 @@ let
|
||||||
wait
|
wait
|
||||||
'';
|
'';
|
||||||
powermenu = pkgs.writeShellScript "powermenu" ''
|
powermenu = pkgs.writeShellScript "powermenu" ''
|
||||||
PATH=$PATH:"${lib.makeBinPath [ pkgs.rofi pkgs.rofi-power-menu pkgs.zsh ]}"
|
PATH=$PATH:"${
|
||||||
|
lib.makeBinPath [
|
||||||
|
pkgs.rofi
|
||||||
|
pkgs.rofi-power-menu
|
||||||
|
pkgs.zsh
|
||||||
|
]
|
||||||
|
}"
|
||||||
zsh -c 'rofi -show menu -modi "menu:rofi-power-menu --choices=shutdown/reboot/hibernate/logout"'
|
zsh -c 'rofi -show menu -modi "menu:rofi-power-menu --choices=shutdown/reboot/hibernate/logout"'
|
||||||
'';
|
'';
|
||||||
colors = nix-rice.palette.toARGBHex rec {
|
colors = nix-rice.palette.toARGBHex rec {
|
||||||
|
|
@ -99,9 +110,7 @@ let
|
||||||
bottom.size = 0;
|
bottom.size = 0;
|
||||||
};
|
};
|
||||||
font = [
|
font = [
|
||||||
"${pkgs.rice.font.monospace.name}:size=${
|
"${pkgs.rice.font.monospace.name}:size=${toString pkgs.rice.font.monospace.size};2"
|
||||||
toString pkgs.rice.font.monospace.size
|
|
||||||
};2"
|
|
||||||
# "Font Awesome 6 Free:size=14;0"
|
# "Font Awesome 6 Free:size=14;0"
|
||||||
# "Noto Color Emoji:size=2;2"
|
# "Noto Color Emoji:size=2;2"
|
||||||
"Noto Sans Symbols2:size=${toString pkgs.rice.font.monospace.size};2"
|
"Noto Sans Symbols2:size=${toString pkgs.rice.font.monospace.size};2"
|
||||||
|
|
@ -116,7 +125,14 @@ let
|
||||||
wm-restack = "bspwm";
|
wm-restack = "bspwm";
|
||||||
};
|
};
|
||||||
|
|
||||||
ramp = [ "▂" "▃" "▄" "▅" "▆" "▇" ];
|
ramp = [
|
||||||
|
"▂"
|
||||||
|
"▃"
|
||||||
|
"▄"
|
||||||
|
"▅"
|
||||||
|
"▆"
|
||||||
|
"▇"
|
||||||
|
];
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
home.packages = builtins.attrValues {
|
home.packages = builtins.attrValues {
|
||||||
|
|
@ -139,13 +155,14 @@ in
|
||||||
'';
|
'';
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
"settings" = { screenchange-reload = false; };
|
"settings" = {
|
||||||
|
screenchange-reload = false;
|
||||||
|
};
|
||||||
|
|
||||||
"bar/primary" = lib.recursiveUpdate commonBar {
|
"bar/primary" = lib.recursiveUpdate commonBar {
|
||||||
modules-left = "bspwm";
|
modules-left = "bspwm";
|
||||||
# modules-center =
|
# modules-center =
|
||||||
modules-right =
|
modules-right = "player pulseaudio temperature cpu memory battery keyboard-switch notifications powermenu date";
|
||||||
"player pulseaudio temperature cpu memory battery keyboard-switch notifications powermenu date";
|
|
||||||
tray = {
|
tray = {
|
||||||
position = "right";
|
position = "right";
|
||||||
padding = 1;
|
padding = 1;
|
||||||
|
|
@ -155,8 +172,7 @@ in
|
||||||
"bar/secondary" = lib.recursiveUpdate commonBar {
|
"bar/secondary" = lib.recursiveUpdate commonBar {
|
||||||
modules-left = "bspwm";
|
modules-left = "bspwm";
|
||||||
# modules-center =
|
# modules-center =
|
||||||
modules-right =
|
modules-right = "player pulseaudio temperature cpu memory battery keyboard-switch notifications powermenu date";
|
||||||
"player pulseaudio temperature cpu memory battery keyboard-switch notifications powermenu date";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
"module/battery" = {
|
"module/battery" = {
|
||||||
|
|
@ -167,14 +183,30 @@ in
|
||||||
full.at = 98;
|
full.at = 98;
|
||||||
|
|
||||||
animation = {
|
animation = {
|
||||||
charging = { text = [ "" "" "" "" "" ]; framerate = "750"; };
|
charging = {
|
||||||
discharging = { text = [ "" "" "" "" "" ]; framerate = "750"; };
|
text = [
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
];
|
||||||
|
framerate = "750";
|
||||||
|
};
|
||||||
|
discharging = {
|
||||||
|
text = [
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
];
|
||||||
|
framerate = "750";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
format = {
|
format = {
|
||||||
charging = lib.recursiveUpdate colors.selected {
|
charging = lib.recursiveUpdate colors.selected { text = "<animation-charging> <label-charging>"; };
|
||||||
text = "<animation-charging> <label-charging>";
|
|
||||||
};
|
|
||||||
discharging = lib.recursiveUpdate colors.active {
|
discharging = lib.recursiveUpdate colors.active {
|
||||||
text = "<animation-discharging> <label-discharging>";
|
text = "<animation-discharging> <label-discharging>";
|
||||||
};
|
};
|
||||||
|
|
@ -204,7 +236,9 @@ in
|
||||||
{
|
{
|
||||||
focused = lib.recursiveUpdate common colors.selected;
|
focused = lib.recursiveUpdate common colors.selected;
|
||||||
occupied = lib.recursiveUpdate common colors.active;
|
occupied = lib.recursiveUpdate common colors.active;
|
||||||
urgent = lib.recursiveUpdate (lib.recursiveUpdate common colors.active) { background = colors.alert; };
|
urgent = lib.recursiveUpdate (lib.recursiveUpdate common colors.active) {
|
||||||
|
background = colors.alert;
|
||||||
|
};
|
||||||
empty = lib.recursiveUpdate common colors.normal;
|
empty = lib.recursiveUpdate common colors.normal;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
@ -220,10 +254,16 @@ in
|
||||||
"module/date" = {
|
"module/date" = {
|
||||||
type = "internal/date";
|
type = "internal/date";
|
||||||
format = colors.normal;
|
format = colors.normal;
|
||||||
date = { alt = "%Y-%m-%d"; text = "%a %d/%m/%y"; };
|
date = {
|
||||||
|
alt = "%Y-%m-%d";
|
||||||
|
text = "%a %d/%m/%y";
|
||||||
|
};
|
||||||
interval = "1";
|
interval = "1";
|
||||||
label = "%date% %time%";
|
label = "%date% %time%";
|
||||||
time = { alt = "%H:%M:%S"; text = "%H:%M"; };
|
time = {
|
||||||
|
alt = "%H:%M:%S";
|
||||||
|
text = "%H:%M";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
"module/memory" = {
|
"module/memory" = {
|
||||||
|
|
@ -237,9 +277,15 @@ in
|
||||||
"module/pulseaudio" = {
|
"module/pulseaudio" = {
|
||||||
interval = 2;
|
interval = 2;
|
||||||
bar.volume = {
|
bar.volume = {
|
||||||
empty = { text = "─"; };
|
empty = {
|
||||||
fill = { text = "─"; };
|
text = "─";
|
||||||
indicator = { text = "|"; };
|
};
|
||||||
|
fill = {
|
||||||
|
text = "─";
|
||||||
|
};
|
||||||
|
indicator = {
|
||||||
|
text = "|";
|
||||||
|
};
|
||||||
width = "10";
|
width = "10";
|
||||||
foreground = [
|
foreground = [
|
||||||
colors.green
|
colors.green
|
||||||
|
|
@ -252,18 +298,19 @@ in
|
||||||
colors.red
|
colors.red
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
click.right =
|
click.right = "${pgrep} pavucontrol && ${pkill} pavucontrol || ${pavucontrol}";
|
||||||
"${pgrep} pavucontrol && ${pkill} pavucontrol || ${pavucontrol}";
|
|
||||||
format = {
|
format = {
|
||||||
padding = 1;
|
padding = 1;
|
||||||
muted = colors.active;
|
muted = colors.active;
|
||||||
volume = lib.recursiveUpdate colors.normal {
|
volume = lib.recursiveUpdate colors.normal { text = "<ramp-volume> <label-volume>"; };
|
||||||
text = "<ramp-volume> <label-volume>";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
label.muted.text = " muted";
|
label.muted.text = " muted";
|
||||||
label.volume.text = "%percentage%%";
|
label.volume.text = "%percentage%%";
|
||||||
ramp.volume = [ "" "" "" ];
|
ramp.volume = [
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
];
|
||||||
type = "internal/pulseaudio";
|
type = "internal/pulseaudio";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -279,7 +326,13 @@ in
|
||||||
text = "%temperature-c%";
|
text = "%temperature-c%";
|
||||||
warn = "%temperature-c%";
|
warn = "%temperature-c%";
|
||||||
};
|
};
|
||||||
ramp.text = [ "" "" "" "" "" ];
|
ramp.text = [
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
];
|
||||||
thermal.zone = if nixosConfig.networking.hostName == "odin" then 8 else 0;
|
thermal.zone = if nixosConfig.networking.hostName == "odin" then 8 else 0;
|
||||||
type = "internal/temperature";
|
type = "internal/temperature";
|
||||||
warn.temperature = "90";
|
warn.temperature = "90";
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,10 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
let
|
let
|
||||||
systemLibFolder = "/run/current-system/sw/lib/";
|
systemLibFolder = "/run/current-system/sw/lib/";
|
||||||
userLibFolder =
|
userLibFolder = "$HOME/.local/state/nix/profiles/home-manager/home-path/lib";
|
||||||
"$HOME/.local/state/nix/profiles/home-manager/home-path/lib";
|
|
||||||
variables = {
|
variables = {
|
||||||
DSSI_PATH = "$HOME/.dssi:${userLibFolder}/dssi:${systemLibFolder}/dssi";
|
DSSI_PATH = "$HOME/.dssi:${userLibFolder}/dssi:${systemLibFolder}/dssi";
|
||||||
LADSPA_PATH =
|
LADSPA_PATH = "$HOME/.ladspa:${userLibFolder}/ladspa:${systemLibFolder}/ladspa";
|
||||||
"$HOME/.ladspa:${userLibFolder}/ladspa:${systemLibFolder}/ladspa";
|
|
||||||
LV2_PATH = "$HOME/.lv2:${userLibFolder}/lv2:${systemLibFolder}/lv2";
|
LV2_PATH = "$HOME/.lv2:${userLibFolder}/lv2:${systemLibFolder}/lv2";
|
||||||
LXVST_PATH = "$HOME/.lxvst:${userLibFolder}/lxvst:${systemLibFolder}/lxvst";
|
LXVST_PATH = "$HOME/.lxvst:${userLibFolder}/lxvst:${systemLibFolder}/lxvst";
|
||||||
VST_PATH = "$HOME/.vst:${userLibFolder}/vst:${systemLibFolder}/vst";
|
VST_PATH = "$HOME/.vst:${userLibFolder}/vst:${systemLibFolder}/vst";
|
||||||
|
|
@ -16,12 +14,35 @@ in
|
||||||
{
|
{
|
||||||
home.packages = builtins.attrValues {
|
home.packages = builtins.attrValues {
|
||||||
inherit (pkgs)
|
inherit (pkgs)
|
||||||
ardour breeze-icons carla mixxx rnnoise
|
ardour
|
||||||
|
breeze-icons
|
||||||
|
carla
|
||||||
|
mixxx
|
||||||
|
rnnoise
|
||||||
#mamba
|
#mamba
|
||||||
# zrythm
|
# zrythm
|
||||||
|
|
||||||
# Plugins
|
# Plugins
|
||||||
aeolus artyFX autotalent boops calf cardinal fluidsynth geonkick giada lsp-plugins samplv1 sfizz surge surge-XT talentedhack vocproc x42-plugins zita-at1 zyn-fusion zynaddsubfx
|
aeolus
|
||||||
|
artyFX
|
||||||
|
autotalent
|
||||||
|
boops
|
||||||
|
calf
|
||||||
|
cardinal
|
||||||
|
fluidsynth
|
||||||
|
geonkick
|
||||||
|
giada
|
||||||
|
lsp-plugins
|
||||||
|
samplv1
|
||||||
|
sfizz
|
||||||
|
surge
|
||||||
|
surge-XT
|
||||||
|
talentedhack
|
||||||
|
vocproc
|
||||||
|
x42-plugins
|
||||||
|
zita-at1
|
||||||
|
zyn-fusion
|
||||||
|
zynaddsubfx
|
||||||
# helm
|
# helm
|
||||||
# noise-repellent
|
# noise-repellent
|
||||||
# speech-denoiser
|
# speech-denoiser
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
{ pkgs, ... }: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
home.packages = builtins.attrValues {
|
home.packages = builtins.attrValues {
|
||||||
inherit (pkgs) python3;
|
inherit (pkgs) python3;
|
||||||
inherit (pkgs.unstable_pkgs.jetbrains) pycharm-professional jdk;
|
inherit (pkgs.unstable_pkgs.jetbrains) pycharm-professional jdk;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
{ pkgs, ... }: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
home.packages = builtins.attrValues {
|
home.packages = builtins.attrValues {
|
||||||
inherit (pkgs)
|
inherit (pkgs)
|
||||||
# mendeley # Reference manager
|
# mendeley # Reference manager
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
{ pkgs, ... }: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
|
||||||
home.packages = builtins.attrValues {
|
home.packages = builtins.attrValues {
|
||||||
inherit (pkgs)
|
inherit (pkgs)
|
||||||
|
|
@ -15,7 +16,9 @@
|
||||||
location = "center";
|
location = "center";
|
||||||
font = "${pkgs.rice.font.monospace.name} ${toString pkgs.rice.font.monospace.size}";
|
font = "${pkgs.rice.font.monospace.name} ${toString pkgs.rice.font.monospace.size}";
|
||||||
plugins = [ pkgs.rofi-calc ];
|
plugins = [ pkgs.rofi-calc ];
|
||||||
extraConfig = { modi = "drun,run,ssh,window,calc"; };
|
extraConfig = {
|
||||||
|
modi = "drun,run,ssh,window,calc";
|
||||||
|
};
|
||||||
terminal = "alacritty";
|
terminal = "alacritty";
|
||||||
theme = "onedark";
|
theme = "onedark";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,12 @@
|
||||||
{ pkgs, ... }: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
services.screen-locker = {
|
services.screen-locker = {
|
||||||
enable = true;
|
enable = true;
|
||||||
lockCmd = "${pkgs.lockscreen}/bin/lockscreen";
|
lockCmd = "${pkgs.lockscreen}/bin/lockscreen";
|
||||||
inactiveInterval = 2; # minutes
|
inactiveInterval = 2; # minutes
|
||||||
xautolock.extraOptions = [ "-secure" "-lockaftersleep" ];
|
xautolock.extraOptions = [
|
||||||
|
"-secure"
|
||||||
|
"-lockaftersleep"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
{ pkgs, ... }: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
home.packages = builtins.attrValues {
|
home.packages = builtins.attrValues {
|
||||||
inherit (pkgs)
|
inherit (pkgs)
|
||||||
nmap# RECOGNITION
|
nmap# RECOGNITION
|
||||||
|
|
@ -8,7 +9,9 @@
|
||||||
# altair
|
# altair
|
||||||
# burpsuite
|
# burpsuite
|
||||||
|
|
||||||
bintools ghidra-bin radare2# REVERSING
|
bintools
|
||||||
|
ghidra-bin
|
||||||
|
radare2# REVERSING
|
||||||
# cutter
|
# cutter
|
||||||
|
|
||||||
# INFRASTRUCTURE
|
# INFRASTRUCTURE
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
{ nixosConfig, ... }: {
|
{ nixosConfig, ... }:
|
||||||
|
{
|
||||||
services.spotifyd = {
|
services.spotifyd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings.global = {
|
settings.global = {
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,10 @@
|
||||||
programs.ssh = {
|
programs.ssh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
compression = true;
|
compression = true;
|
||||||
matchBlocks = { "*" = { identityFile = "~/.ssh/id_ed25519"; }; };
|
matchBlocks = {
|
||||||
|
"*" = {
|
||||||
|
identityFile = "~/.ssh/id_ed25519";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,10 @@
|
||||||
hostname.format = "[$hostname]($style) "; # Disable ssh symbol
|
hostname.format = "[$hostname]($style) "; # Disable ssh symbol
|
||||||
# line_break.disabled = true; # Prompt in one line
|
# line_break.disabled = true; # Prompt in one line
|
||||||
nix_shell.symbol = "❄️ "; # better soacing
|
nix_shell.symbol = "❄️ "; # better soacing
|
||||||
python.python_binary = [ "python3" "python2" ];
|
python.python_binary = [
|
||||||
|
"python3"
|
||||||
|
"python2"
|
||||||
|
];
|
||||||
status = {
|
status = {
|
||||||
disabled = false; # enable module
|
disabled = false; # enable module
|
||||||
format = "[$symbol $status]($style) "; # nicer status format
|
format = "[$symbol $status]($style) "; # nicer status format
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue